Что такое школьный алгоритмический язык
Алгоритмический язык программирования
Алгоритмический язык программирования — формальный язык, используемый для записи, реализации и изучения алгоритмов. В отличие от большинства языков программирования, алгоритмический язык не привязан к архитектуре компьютера, не содержит деталей, связанных с устройством машины.
Для изучения основ алгоритмизации применяется так называемый Русский алгоритмический язык (школьный алгоритмический язык), использующий понятные школьнику слова на русском языке.
Алголо-подобный алгоритмический язык с русским синтаксисом был введён в употребление академиком А. П. Ершовым в середине 1980-х годов, в качестве основы для «безмашинного» курса информатики.
Основные служебные слова алгоритмического языка
Логические функции и значения для составления выражений
Общий вид алгоритма
В предложении алг после названия алгоритма в круглых скобках указываются характеристики (арг, рез) и тип значения (цел, вещ, сим, лит или лог) всех входных (аргументы) и выходных (результаты) переменных. При описании массивов (таблиц) используется служебное слово таб, дополненное граничными парами по каждому индексу элементов массива.
В записи алгоритма ключевые слова обычно подчёркиваются либо выделяются полужирным шрифтом. Для выделения логических блоков применяются отступы, а парные слова начала и конца блока соединяются вертикальной чертой.
Основные алгоритмические структуры
Подробное описание основных алгоритмических структур приведено в этой статье. Ниже приводятся шаблоны составления этих структур на алгоритмическом языке.
Неполная развилка
Школьный алгоритмический язык. Урок 1. Структура программы: обзор
Основано на учебнике Босовой Людмилы Леонидовны, wikipedia.org,
При изучении информатики в школах для изучения основ алгоритмизации применяется т. н. Русский алгоритмический язык (школьный алгоритмический язык), использующий понятные школьнику слова на русском языке. Алголо-подобный алгоритмический язык с русским синтаксисом был введён в употребление академиком А. П. Ершовым в середине 1980-х годов в качестве основы для «безмашинного» курса информатики. Впервые был опубликован в учебнике «Основы информатики и вычислительной техники» в 1985 г. Язык также применялся для записи алгоритмов в учебнике А. Г. Кушниренко, Г. В. Лебедева и Р. А. Свореня «Основы информатики и вычислительной техники» для 9-10 классов (1990 г. и последующие переиздания; общий тираж составил 7 млн экземпляров).
Школьный алгоритмический язык.
Для записи алгоритмов на школьном алгоритмическом языке используется некоторое ограниченное число слов, смысл и способ употребления которых заданы раз и навсегда. Это так называемые служебные слова: алг (алгоритм), дано, надо, нач (начало), кон (конец),арг (аргумент), рез (результат) и др. При записи алгоритмов в книгах служебные слова выделяются жирным шрифтом, в тетради и на доске — подчёркиванием.
В общем виде программу на школьном алгоритмическом языке можно представить так:
В первой строке после команды алг вы указываете название вашей программы (алгоритма). Далее для нашего удобства мы можем описать данные задачи и что необходимо получить после выполнения нашего алгоритма. Строка 4 указывает на начало алгоритма, после команды нач и до команды кон необходимо описать алгоритм (записать команды для исполнителя, которые будут выполняться последовательно.
Комментарии
В настоящий момент язык переживает своё второе рождение, в связи с разработкой пакета «КуМир» для Windows и Linux. В системе используется несколько исполнителей; основные — это классические «Робот» и «Чертёжник». Пакет включен в дистрибутив ALT Linux Школьный.
Система «КуМир» разработана в НИИСИ РАН по заказу Российской академии наук и распространяется свободно на условиях лицензии GNU GPL 2.0.
В последние несколько лет школьный алгоритмический язык включается как один из предлагаемых в текстах задач ЕГЭ по информатике.
Школьный алгоритмический язык
Описание презентации по отдельным слайдам:
Описание слайда:
Школьный
алгоритмический язык
Алгоритмический язык с русским синтаксисом был введён в употребление академиком А. П. Ершовым в середине 1980-х годов, в качестве основы для «безмашинного» курса информатики.
Школьный алгоритми́ческий язык (АЯ)— формальный язык, используемый для записи, реализации и изучения алгоритмов.
Описание слайда:
Для единообразной записи алгоритмов введена система обозначений и правил – псевдокод.
В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования.
В псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций.
Примером псевдокода является школьный алгоритмический язык в русской нотации (школьный АЯ),
Описание слайда:
Основные служебные слова
Описание слайда:
Общий вид алгоритма:
алг название алгоритма (аргументы и результаты)
дано условия применимости алгоритма
надо цель выполнения алгоритма
нач описание промежуточных величин
последовательность команд (тело
алгоритма)
кон
Описание слайда:
Описание слайда:
Команды школьного АЯ
Оператор присваивания: А := В
знак «:=» означает команду заменить прежнее значение переменной, стоящей в левой части, на вычисленное значение выражения, стоящего в правой части.
Например, a:=(b+c)*4
i:=i+1
Для ввода и вывода данных используют команды
ввод имена переменных
вывод имена переменных, выражения, тексты.
Для ветвления применяют команды если и выбор,
для организации циклов — команды для и пока.
Описание слайда:
Описание слайда:
Соответствие блок-схемы и АЯ
Линейный алгоритм:
Описание слайда:
Описание слайда:
Описание слайда:
Основные понятия в алгоритмическом языке
Имена (идентификаторы) — употpебляются для обозначения
объектов пpогpаммы (пеpеменных, массивов,
функций и дp.).
МОЖНО использовать
латинские буквы (A-Z), русские буквы (А-Я)
знак подчеркивания _
заглавные и строчные буквы различаются
имя не может начинаться с цифры
Описание слайда:
Описание слайда:
Пеpеменные обозначаются именами и могут изменять
свои значения в ходе выполнения пpогpаммы:
— целые,
— вещественные,
— логические,
— символьные.
Массив (таблица) — последовательность однотипных
элементов, число которых фиксировано
и которым присвоено одно имя.
Положение элемента в массиве
однозначно определяется его индексами.
Описание слайда:
Какие операторы неправильные?
алг Ошибки
нач
цел a, b
вещ x, y
a := 5
10 := x
y := 7,8
b := 2.5
x := 2*(a + y)
a := b + x
кон
имя переменной должно быть слева от знака :=
целая и дробная часть отделяются точкой
нельзя записывать вещественное значение в целую переменную
Описание слайда:
Вывод данных
|вывод значения |переменной a
|вывод значения |переменной a и переход |на новую строчку
|вывод текста
|вывод текста и значения переменной c
вывод a
вывод a, нс
вывод «Привет!»
вывод «Ответ: «, c
вывод a, «+», b, «=», c
Описание слайда:
Команда «вывод»
цел a = 1, b = 3
вывод a, «+», b, «=», a+b
список вывода
элементы разделяются запятыми
элементы в кавычках – выводятся без изменений
выражения (элементы без кавычек) вычисляются и выводится их результат
1+3=4
Что будет выведено?
?
Описание слайда:
Что будет выведено?
цел a = 1, b = 3
вывод «a+», b, «=a+b»
a+3=a+b
цел a = 1, b = 3
вывод a, «=F(«, b, «)»
1=F(3)
цел a = 1, b = 3
вывод «a=F(«, b, «);»
цел a = 1, b = 3
вывод a+b, «>», b, «!»
цел a = 1, b = 3
вывод «F(«, b, «)=X(«, a, «)»
a=F(3)
4>3!
F(3)=X(1)
Описание слайда:
Как записать оператор «вывод»?
цел a = 1, b = 3
вывод «X(«, b, «=», a
X(3)=1
4=1+3
f(1)>f(3)
3>
1+3=?
цел a = 1, b = 3
вывод a+b, «=», a, «+», b
цел a = 1, b = 3
вывод «f(«, a, «)>f(«, b, «)»
цел a = 1, b = 3
вывод » «, b, «>»
цел a = 1, b = 3
вывод a, «+», b, «=?»
Описание слайда:
Выpажения — пpедназначаются для выполнения необходимых вычислений, состоят из констант, пеpеменных, указателей функций, объединенных знаками опеpаций.
Таблица стандартных функций
Описание слайда:
Порядок выполнения операций
вычисление выражений в скобках
умножение, деление, div, mod слева направо
сложение и вычитание слева направо
z := (5*a+c)/a*(b-c)/ b
x:=(5*c*c-d*(a+b))/((c+d)*(d-2*a))
1 2 4 5 3 6
2 3 5 4 1 10 6 9 8 7
Описание слайда:
Примеры записи арифметических выражений
Описание слайда:
Примеры записи логических выражений, истинных при выполнении указанных условий
Описание слайда:
Сложные условия
Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он фирме (вывести ответ «подходит» или «не подходит»).
Особенность: надо проверить, выполняются ли два условия одновременно.
Можно ли решить известными методами?
?
Описание слайда:
Описание слайда:
Вариант 1. Программа
алг Сотрудник
нач
цел x
вывод «Введите ваш возраст», нс
ввод x
если x >= 25 то
если x 26 слайд = 25 и x » title=»Вариант 2. Алгоритмначаловвод xданетx >= 25 и x «> = 25 и x » title=»Вариант 2. Алгоритмначаловвод xданетx >= 25 и x «>
Описание слайда:
Описание слайда:
Описание слайда:
Массив – это группа однотипных элементов, имеющих общее имя и расположенных в памяти рядом.
Особенности:
все элементы имеют один тип
весь массив имеет одно имя
все элементы расположены в памяти рядом
Примеры:
список учеников в классе
квартиры в доме
школы в городе
данные о температуре воздуха за год
Массивы
Описание слайда:
Массивы
A
массив
3
15
НОМЕР
элемента массива
(ИНДЕКС)
A[1]
A[2]
A[3]
A[4]
A[5]
ЗНАЧЕНИЕ элемента массива
A[2]
НОМЕР (ИНДЕКС)
элемента массива: 2
ЗНАЧЕНИЕ
элемента массива: 10
Описание слайда:
Объявление массивов
Зачем объявлять?
определить имя массива
определить тип массива
определить число элементов
выделить место в памяти
Массив целых чисел:
Размер через переменную:
имя
начальный индекс
конечный индекс
тип
элементов
целтаб A[ 1 : N ]
цел N = 5
N
целтаб A[ 1 : 5 ]
Описание слайда:
Объявление массивов
Массивы других типов:
Другой диапазон индексов:
вещтаб X[1:10], Y[1:20] | вещественные
X[1] := 4.25
симтаб S[1:20] | символьный
S[1] := «z»
логтаб L[1:5] | логический
L[1] := да | да или нет
целтаб Q[0:9]
вещтаб C[-5:13]
Описание слайда:
Описание слайда:
Как обработать все элементы массива?
Объявление:
Обработка:
цел N = 5
целтаб A[1:N]
| обработать A[1]
| обработать A[2]
| обработать A[3]
| обработать A[4]
| обработать A[5]
1) если N велико (1000, 1000000)?
2) при изменении N программа не должна меняться!
?
Описание слайда:
Описание слайда:
Ввод с клавиатуры:
Обработка каждого элемента:
цел N = 5, i
целтаб A[1:N]
нц для i от 1 до N
вывод «A[«,i,»]=»
ввод A[i]
кц
A[1] =
A[2] =
A[3] =
A[4] =
A[5] =
5
12
34
56
13
нц для i от 1 до N
A[i]:= A[i]+1
кц
вывод «Массив A», нс
нц для i от 1 до N
вывод A[i], » «
кц
Массив A:
6 13 35 57 14
Вывод на экран:
Описание слайда:
Максимальный элемент
Задача: найти в массиве максимальный элемент.
Алгоритм:
Решение:
считаем, что первый элемент – максимальный
просмотреть остальные элементы массива:
если очередной элемент > M,
то записать A[i] в M
вывести значение M
Описание слайда:
пока считаем,
что первый – максимальный
начать со 2-ого
перейти к следующему
нашли новый максимум
Описание слайда:
Максимальный элемент
алг Максимум
нач
цел i, N = 5, M
целтаб A[1:N]
| здесь заполнить массив
M:= A[1] | пока максимальный – A[1]
нц для i от 2 до N
если A[i] > M то M:= A[i] все
кц
вывод «Максимальный элемент «, M
кон
Описание слайда:
Максимальный элемент
M:= A[1] | пока первый – максимальный
iMax:= 1
нц для i от 2 до N | проверяем остальные
если A[i] > M то | нашли еще больше
M:= A[i] | запомнить A[i]
iMax:= i | запомнить i
все
кц
вывод «Максимальный элемент A[«,iMax,»]=»,M
Дополнение: как найти номер максимального элемента?
По номеру элемента iMax всегда можно найти его значение A[iMax]. Поэтому везде меняем M на A[iMax] и убираем переменную M.
A[iMax]
A[iMax]
Как упростить?
?
Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.
Курс повышения квалификации
Охрана труда
Курс профессиональной переподготовки
Библиотечно-библиографические и информационные знания в педагогическом процессе
Курс профессиональной переподготовки
Охрана труда
Ищем педагогов в команду «Инфоурок»
Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:
также Вы можете выбрать тип материала:
Общая информация
Похожие материалы
Повторное использование асфальтобетона
Речь и ее нарушения афазии
Рекламная кампания
Развитие черепа
Реляционная модель. Реляционная алгебра и реляционное исчисление
Раны, инфекция
Психологические подходы к рекламной деятельности
Рак поджелудочной железы
Не нашли то что искали?
Воспользуйтесь поиском по нашей базе из
5363556 материалов.
Вам будут интересны эти курсы:
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.
В России планируют создавать пространства для подростков
Время чтения: 2 минуты
Учителям предлагают 1,5 миллиона рублей за переезд в Златоуст
Время чтения: 1 минута
Педагогам Северной Осетии в 2022 году будут выплачивать надбавки за стаж
Время чтения: 2 минуты
Минобрнауки обновит перечень специальностей высшего образования
Время чтения: 1 минута
Путин поручил не считать выплаты за классное руководство в средней зарплате
Время чтения: 1 минута
Учителя Кубани смогут получить миллион рублей на взнос по ипотеке
Время чтения: 1 минута
Подарочные сертификаты
Ответственность за разрешение любых спорных моментов, касающихся самих материалов и их содержания, берут на себя пользователи, разместившие материал на сайте. Однако администрация сайта готова оказать всяческую поддержку в решении любых вопросов, связанных с работой и содержанием сайта. Если Вы заметили, что на данном сайте незаконно используются материалы, сообщите об этом администрации сайта через форму обратной связи.
Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение администрации может не совпадать с точкой зрения авторов.
Глава 7. Алгоритмы. Алгоритмизация. Алгоритмические языки
7.1. Что такое алгоритм?
Алгоpитм точное и понятное пpедписание исполнителю совеpшить последовательность действий, направленных на решение поставленной задачи. |
Название «алгоритм» произошло от латинской формы имени среднеазиатского математика аль-Хорезми Algorithmi. Алгоритм одно из основных понятий информатики и математики.
7.2. Что такое «Исполнитель алгоритма»?
Исполнитель алгоритма это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом. |
Отказы исполнителя возникают, если команда вызывается пpи недопустимом для нее состоянии сpеды.
Обычно исполнитель ничего не знает о цели алгоpитма. Он выполняет все полученные команды, не задавая вопросов «почему» и «зачем». |
7.3. Какими свойствами обладают алгоpитмы?
Основные свойства алгоритмов следующие:
Понятность для исполнителя т.е. исполнитель алгоритма должен знать, как его выполнять.
Дискpетность (прерывность, раздельность) т.е. алгоpитм должен пpедставлять пpоцесс pешения задачи как последовательное выполнение пpостых (или pанее опpеделенных) шагов (этапов).
Опpеделенность т.е. каждое пpавило алгоpитма должно быть четким, однозначным и не оставлять места для пpоизвола. Благодаpя этому свойству выполнение алгоpитма носит механический хаpактеp и не тpебует никаких дополнительных указаний или сведений о pешаемой задаче.
Pезультативность (или конечность). Это свойство состоит в том, что алгоpитм должен пpиводить к pешению задачи за конечное число шагов.
7.4. В какой форме записываются алгоритмы?
7.5. Что такое словесный способ записи алгоритмов?
Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке. |
Например. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел.
Описанный алгоритм применим к любым натуральным числам и должен приводить к решению поставленной задачи. Убедитесь в этом самостоятельно, определив с помощью этого алгоритма наибольший общий делитель чисел 125 и 75.
7.6. Что такое графический способ записи алгоритмов?
Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным.
При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий. |
В таблице 7.1 приведены наиболее часто употребляемые символы.
Название символа | Обозначение и пример заполнения | Пояснение |
Процесс | Вычислительное действие или последовательность действий | |
Решение | Проверка условий | |
Модификация | Начало цикла | |
Предопределенный процесс | Вычисления по подпрограмме, стандартной подпрограмме | |
Ввод-вывод | Ввод-вывод в общем виде | |
Пуск-останов | Начало, конец алгоритма, вход и выход в подпрограмму | |
Документ | Вывод результатов на печать |
Блок «процесс» применяется для обозначения действия или последовательности действий, изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединять в один блок. Представление отдельных операций достаточно свободно.
Блок «решение» используется для обозначения переходов управления по условию. В каждом блоке «решение» должны быть указаны вопрос, условие или сравнение, которые он определяет.
Блок «модификация» используется для организации циклических конструкций. (Слово модификация означает видоизменение, преобразование). Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и шаг изменения значения параметра для каждого повторения.
Блок «предопределенный процесс» используется для указания обращений к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращений к библиотечным подпрограммам.
7.7. Что такое псевдокод?
Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов. |
Он занимает промежуточное место между естественным и формальным языками.
С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой строны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи.
Примером псевдокода является школьный алгоритмический язык в русской нотации (школьный АЯ), описанный в учебнике А.Г. Кушниренко и др. «Основы информатики и вычислительной техники», 1991. Этот язык в дальнейшем мы будем называть просто «алгоритмический язык».
7.8. Как записываются алгоритмы на школьном алгоритмическом языке?
Основные служебные слова
алг (алгоритм) | сим (символьный) | дано | для | да |
арг (аргумент) | лит (литерный) | надо | от | нет |
рез (результат) | лог (логический) | если | до | при |
нач (начало) | таб (таблица) | то | знач | выбор |
кон (конец) | нц (начало цикла) | иначе | и | ввод |
цел (целый) | кц (конец цикла) | все | или | вывод |
вещ (вещественный) | длин (длина) | пока | не | утв |
Общий вид алгоритма: |
Команды школьного АЯ
Пример записи алгоритма на школьном АЯ
7.9. Что такое базовые алгоритмические структуры?
Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следование, ветвление, цикл. |
Характерной особенностью базовых структур является наличие в них одного входа и одного выхода.
Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне.
Примеры команд пока и для
Школьный алгоритмический язык | Язык блок-схем |
7.10. Какие циклы называют итерационными?
На каждом шаге вычислений происходит последовательное приближение и проверка условия достижения искомого результата.
Пример. Составить алгоритм вычисления суммы ряда
с заданной точностью (для данного знакочередующегося степенного ряда требуемая точность будет достигнута, когда очередное слагаемое станет по абсолютной величине меньше ).
Вычисление сумм типичная циклическая задача. Особенностью же нашей конкретной задачи является то, что число слагаемых (а, следовательно, и число повторений тела цикла) заранее неизвестно. Поэтому выполнение цикла должно завершиться в момент достижения требуемой точности.
При составлении алгоритма нужно учесть, что знаки слагаемых чередуются и степень числа х в числителях слагаемых возрастает.
Сравните эти два подхода по числу операций.
Алгоритм на школьном АЯ | Блок-схема алгоритма |
Пример вложенных циклов пока
Вычислить произведение тех элементов заданной матрицы A(10,10), которые расположены на пересечении четных строк и четных столбцов.
7.12. Чем отличается программный способ записи алгоритмов от других?
При записи алгоритма в словесной форме, в виде блок-схемы или на псевдокоде допускается определенный произвол при изображении команд. Вместе с тем такая запись точна настолько, что позволяет человеку понять суть дела и исполнить алгоритм.
Однако на практике в качестве исполнителей алгоритмов используются специальные автоматы компьютеры. Поэтому алгоритм, предназначенный для исполнения на компьютере, должен быть записан на «понятном» ему языке. И здесь на первый план выдвигается необходимость точной записи команд, не оставляющей места для произвольного толкования их исполнителем.
7.13.Что такое уровень языка программирования?
В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения.
Любой алгоритм, как мы знаем, есть последовательность предписаний, выполнив которые можно за конечное число шагов перейти от исходных данных к результату. В зависимости от степени детализации предписаний обычно определяется уровень языка программирования чем меньше детализация, тем выше уровень языка.
Языки же высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека.
7.14. Какие у машинных языков достоинства и недостатки?
Каждый компьютер имеет свой машинный язык, то есть свою совокупность машинных команд, которая отличается количеством адресов в команде, назначением информации, задаваемой в адресах, набором операций, которые может выполнить машина и др.
При программировании на машинном языке программист может держать под своим контролем каждую команду и каждую ячейку памяти, использовать все возможности имеющихся машинных операций.
Поэтому в случае, когда нужно иметь эффективную программу, в максимальной степени учитывающую специфику конкретного компьютера, вместо машинных языков используют близкие к ним машинно-ориентированные языки (ассемблеры).
7.15. Что такое язык ассемблера?
Язык ассемблера это система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде. |
Перевод программы с языка ассемблера на машинный язык осуществляется специальной программой, которая также называется ассемблером и является, по сути, простейшим транслятором.
7.16. В чем преимущества алгоритмических языков перед машинными?
7.17. Какие компоненты образуют алгоритмический язык?
Алгоритмический язык (как и любой другой язык) образуют три его составляющие: алфавит, синтаксис и семантика. |
Алфавит это фиксированный для данного языка набор основных символов, т.е. «букв алфавита», из которых должен состоять любой текст на этом языке никакие другие символы в тексте не допускаются.
Семантика определяет смысловое значение предложений языка. Являясь системой правил истолкования отдельных языковых конструкций, семантика устанавливает, какие последовательности действий описываются теми или иными фразами языка и, в конечном итоге, какой алгоритм определен данным текстом на алгоритмическом языке.
7.18. Какие понятия используют алгоритмические языки?
Каждое понятие алгоритмического языка подразумевает некоторую синтаксическую единицу (конструкцию) и определяемые ею свойства программных объектов или процесса обработки данных.
Понятие языка определяется во взаимодействии синтаксических и семантических правил. Синтаксические правила показывают, как образуется данное понятие из других понятий и букв алфавита, а семантические правила определяют свойства данного понятия |
Основными понятиями в алгоритмических языках обычно являются следующие.
Имена (идентификаторы) употpебляются для обозначения объектов пpогpаммы (пеpеменных, массивов, функций и дp.).
Выражения записываются в виде линейных последовательностей символов (без подстрочных и надстрочных символов, «многоэтажных» дробей и т.д.), что позволяет вводить их в компьютер, последовательно нажимая на соответствующие клавиши клавиатуры.
Операторы подpазделяются на исполняемые и неисполняемые. Неисполняемые опеpатоpы пpедназначены для описания данных и стpуктуpы пpогpаммы, а исполняемые для выполнения pазличных действий (напpимеp, опеpатоp пpисваивания, опеpатоpы ввода и вывода, условный оператор, операторы цикла, оператор процедуры и дp.).
7.19. Что такое стандартная функция?
При решении различных задач с помощью компьютера бывает необходимо вычислить логарифм или модуль числа, синус угла и т.д.
Таблица стандартных функций школьного алгоритмического языка
Название и математическое обозначение функции | Указатель функции | |
Абсолютная величина (модуль) | | х | | abs(x) |
Корень квадратный | sqrt(x) | |
Натуральный логарифм | ln x | ln(x) |
Десятичный логарифм | lg x | lg(x) |
Экспонента (степень числа е » 2.72) | e x | exp(x) |
Знак числа x (-1,если х 0) | sign x | sign(x) |
Целая часть х (т.е. максимальное целое число,не превосходящее х) | int(x) | |
Минимум из чисел х и y | min(x,y) | |
Максимум из чисел х и y | max(x,y) | |
Частное от деления целого х на целое y | div(x,y) | |
Остаток от деления целого х на целое y | mod(x,y) | |
Случайное число в диапазоне от 0 до х-1 | rnd(x) | |
Синус (угол в радианах) | sin x | sin(x) |
Косинус (угол в радианах) | cos x | cos(x) |
Тангенс (угол в радианах) | tg x | tg(x) |
Котангенс (угол в радианах) | ctg x | ctg(x) |
Арксинус (главное значение в радианах) | arcsin x | arcsin(x) |
Арккосинус (главное значение в радианах) | arccos x | arccos(x) |
Арктангенс (главное значение в радианах) | arctg x | arctg(x) |
Арккотангенс (главное значение в радианах) | arcctg x | arcctg(x) |
В качестве аргументов функций можно использовать константы, переменные и выражения. Например:
sin(3.05) min(a, 5) | sin(x) min(a, b) | sin(2*y+t/2) min(a+b, a*b) | sin((exp(x)+1)**2) min(min(a,b),min(c,d)) |
Каждый язык программирования имеет свой набор стандартных функций.
7.20. Как записываются арифметические выражения?
Примеры записи арифметических выражений
Математическая запись | Запись на школьном алгоритмическом языке |
x*y/z | |
x/(y*z) или x/y/z | |
(a**3+b**3)/(b*c) | |
(a[i+1]+b[i-1])/(2*x*y) | |
(-b+sqrt(b*b-4*a*c))/(2*a) | |
(x | 0.49*exp(a*a-b*b)+ln(cos(a*a))**3 |
x/(1+x*x/(3+(2*x)**3)) |
Типичные ошибки в записи выражений:
5x+1 a+sin x ((a+b)/c**3 | Пропущен знак умножения между 5 и х Аргумент x функции sin x не заключен в скобки Не хватает закрывающей скобки |
7.21. Как записываются логические выражения?
В записи логических выражений помимо арифметических операций сложения, вычитания, умножения, деления и возведения в степень используются операции отношения (больше), >= (больше или равно), = (равно), <> (не равно), а также логические операции и, или, не.
Примеры записи логических выражений, истинных при выполнении указанных условий.
7.22. Упражнения
7.1. Запишите по правилам алгоритмического языка выражения:
a) | e) |
б) | ж) |
в) | з) |
г) | и) |
д) | к) |
[ Ответ ]
7.2. Запишите в обычной математической форме арифметические выражения:
а) a/b**2; б) a+b/c+1; в) 1/a*b/c; г) a**b**c/2; д) (a**b)**c/2; е) a/b/c/d*p*q; ж) x**y**z/a/b; з) 4/3*3.14*r**3; и) b/sqrt(a*a+b); к) d*c/2/R+a**3; | л) 5*arctg(x)-arctg(y)/4; м) lg(u*(1/3)+sqrt(v)+z); н) ln(y*(-sqrt(abs(x)))); о) abs(x**(y/x)-(y/x)**(1/3)); п) sqrt((x1-x2)**2+(y1-y2)**2); р) exp(abs(x-y))*(tg(z)**2+1)**x; c) lg(sqrt(exp(x-y))+x**abs(y)+z); т) sqrt(exp(a*x)*sin(x)**n)/cos(x)**2; у) sqrt(sin(arctg(u))**2+abs(cos(v))); ф) abs(cos(x)+cos(y))**(1+sin(y)**2); |
[ Ответ ]
7.3. Вычислите значения арифметических выражений при x=1:
а) abs(x-3)/ln(exp(3))*2/lg(10000);
Решение: abs(1-3)=2; ln(exp(3))=3; lg(10000)=4; 2/3*2/4=0.33;
7.4. Запишите арифметические выражения, значениями которых являются:
а) площадь треугольника со сторонами a, b, c (a, b, c>0) и полупериметром p;
Ответ: sqrt(p*(p-a)*(p-b)*(p-c));
б) среднее арифметическое и среднее геометрическое чисел a, b, c, d;
в) расстояние от точки с координатами (x,y) до точки (0,0);
г) синус от x градусов;
д) площадь поверхности куба (длина ребра равна а);
е) радиус описанной сферы куба (длина ребра равна а);
ж) координаты точки пересечения двух прямых, заданных уравнениями
a 1 x+b 1 y+c 1 =0 и a 2 x+b 2 y+c 2 =0 (прямые не параллельны).
[ Ответ ]
7.7. Начертите на плоскости (x,y) область, в которой и только в которой истинно указанное выражение. Границу, не принадлежащую этой области, изобразите пунктиром.
а) (x =0) Ответ: | е) ((x-2)**2+y*y x/2) Ответ: |
б) (x>=0) или (y =0 г) (x+y>0) и (y =1 | ж) (x*x+y*y x*x); з) (y>=x) и (y+x>=0) и (y 1); |
[ Ответ ]
7.8. Запишите логическое выражение, которое принимает значение «истина» тогда и только тогда, когда точка с координатами (x, y) принадлежит заштрихованной области.
[ Ответ ]
в противном случае
[ Ответ ]
7.12. Постройте графики функций y(x), заданных командами если:
а) | в) |
Решение | г) |
б) | д) |
[ Ответ ]
7.13. Определите значение целочисленной переменной S после выполнения операторов:
а) | Решение
| г) | Решение
| |||||||||||||||||||||||||
б) | д) | |||||||||||||||||||||||||||
в) | е) |
[ Ответ ]
7.14. Определите значение переменной S после выполнения операторов:
а) | г) | ||||||||||||||||||||||||||||||
Решение
| Решение
| ||||||||||||||||||||||||||||||
б) | д) | ||||||||||||||||||||||||||||||
в) | е) |
[ Ответ ]
7.15. Составте алгоритмы решения задач линейной структуры (условия этих задач заимствены из учебного пособия В.М. Заварыкина, В.Г. Житомирского и М.П. Лапчика «Основы информатики и вычислительной техники», 1989):
в) в треугольнике известны три стороны a, b и c; найти радиус описанной окружности и угол A (в градусах), используя формулы: где
г) в правильной треугольной пирамиде известны сторона основания a и угол A (в градусах) наклона боковой грани к плоскости основания; найти объем и площадь полной поверхности пирамиды, используя формулы:
V=S ocн · H/2; | |
где |
д) в усеченном конусе известны радиус оснований R и r и угол A (в радианах) наклона образующей к поверхности большого основания; найти объем и площадь боковой поверхности конуса, используя формулы:
где |
e) в правильной четырехугольной пирамиде сторона основания равна a, а боковое ребро наклонено к плоскости основания под углом A; найти объем и площадь полной поверхности пирамиды и площадь сечения, проходящего через вершину пирамиды и диагональ основания d; использовать формулы:
[ Ответ ]
7.16. Составте алгоритм решения задач развлетвляющейся структуры:
а) определить, является ли треугольник с заданными сторонами a, b, c равнобедренным;
Решение:
б) определить количество положительных чисел среди заданных чисел a, b и c;
в) меньшее из двух заданных неравных чисел увеличить вдвое, а большее оставить без изменения;
г) числа a и b катеты одного прямоугольного треугольника, а c и d другого; определить, являются ли эти треугольники подобными;
д) данны три точки на плоскости; определить, какая из них ближе к началу координат;
е) определить, принадлежит ли заданная точка (x,y) плоской фигуре, являющейся кольцом с центром в начале координат, с внутренним радиусом r1 и внешним радиусом r2;
ж) упорядочить по возрастанию последовательность трех чисел a, b и c.
[ Ответ ]