Алгоритмический язык программирования - формальный язык, используемый для записи, реализации и изучения алгоритмов. В отличие от большинства языков программирования, алгоритмический язык не привязан к архитектуре компьютера, не содержит деталей, связанных с устройством машины.
Для изучения основ алгоритмизации применяется так называемый Русский алгоритмический язык (школьный алгоритмический язык), использующий понятные школьнику слова на русском языке.
Алголо-подобный алгоритмический язык с русским синтаксисом был введён в употребление академиком А. П. Ершовым в середине 1980-х годов, в качестве основы для «безмашинного» курса информатики.
Описание алгоритма
Типы данных:
Обозначение условий
Обозначение циклов
Логические функции и значения для составления выражений
Ввод-вывод
1
2
3
4
5
6
алг
название алгоритма (аргументы и результаты)
| дано
условия применимости алгоритма
| надо
цель выполнения алгоритма
нач
описание промежуточных величин
|
последовательность команд (тело алгоритма)
кон
Часть алгоритма от слова алг до слова нач называется заголовком , а часть, заключенная между словами нач и кон - телом алгоритма .
В предложении алг после названия алгоритма в круглых скобках указываются характеристики (арг , рез ) и тип значения (цел , вещ , сим , лит или лог ) всех входных (аргументы) и выходных (результаты) переменных. При описании массивов (таблиц) используется служебное слово таб , дополненное граничными парами по каждому индексу элементов массива.
В записи алгоритма ключевые слова обычно подчёркиваются либо выделяются полужирным шрифтом. Для выделения логических блоков применяются отступы, а парные слова начала и конца блока соединяются вертикальной чертой.
Подробное описание основных алгоритмических структур приведено в этой статье . Ниже приводятся шаблоны составления этих структур на алгоритмическом языке.
Неполная развилка
| если
условие
| | то
действия
| всё
Полная развилка
1
2
3
4
5
| если
условие
| | то
действия 1
| | иначе
действия 2
| всё
Ветвление
1
2
3
4
5
6
7
8
| выбор
параметр
| | при знач
значение 1
| | |
действия 1
| | при знач
значение 2
| | |
действия 2
| | иначе
| | |
действия по умолчанию
| всё
Цикл с предусловием
| нц пока
условие
| |
действия
| кц
Цикл с постусловием
Доступный и понятный материал для изучения задании 9 и 10 ОГЭ по Информатике + задания для отработки
Алгоритмический язык | ||
алг | DIM k, s AS INTEGER | Var s,k: integer; |
Решение :
Как видим, в теле цикла только одна команда s:= s + 8. Т. е. эта операция будет выполняться на каждой итерации (на каждом шаге) цикла.
В теле цикла происходит увеличение значения переменной s на 8. Так как параметр цикла увеличивается от 3 до 8 с шагом 1, то при выполнении программы тело цикла будет выполняться 6 раз (k будет равно 3, 4, 5, 6, 7, 8). Т. е. переменная s увеличитая на 8 * 6 = 48. А так как начальное значение переменной s = 8 и после выполнения программы оно увеличится на 48, то в конечном итоге значение переменной s станет равным 56.
Решение задач типа 10 ГИА по информатике
В таблице Dat хранятся данные о численности учеников в классах (Dat число учеников в первом классе, Dat – во втором и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Алгоритмический язык | ||
целтаб Dat цел k , m Dat := 20; Dat := 25 Dat := 19; Dat := 25 Dat := 26; Dat := 22 Dat := 24; Dat := 28 Dat := 26; Dat := 21 Dat := 27 m:= 0 нцдля k от 1 до 11 если Dat[k] 22 то | DIM Dat(11) AS INTEGER DIM k,m AS INTEGER Dat(1) = 20: Dat(2) = 25 Dat(3) = 19: Dat(4) = 25 Dat(5) = 26: Dat(6) = 22 Dat(7) = 24: Dat(8) = 28 Dat(9) = 26: Dat(10) = 21 Dat(11) = 27 m = 0 FOR k = 1 TO 11 IF Dat(k) 22 THEN m = m + 1 END IF NEXT k | Var k, m: integer; Begin Dat := 20; Dat := 25; Dat := 19; Dat := 25; Dat := 26; Dat := 22; Dat := 24; Dat := 28; Dat := 26; Dat := 21; Dat := 27; m:= 0; for k:= 1 to 11 do if Dat[k] 22 then begin m:= m + 1 |
Ответ: ___________________________.
Решение :
Примечание. В массиве Dat, который описан на языке Basic будет 12 элементов, так как нумерация начинается не с первого элемента, а с нулевого.
Массив Dat
Значение |
В теле цикла происходит проверка условия
Итак, правильный ответ 7.
Решение задании
по информатике
Решение задач типа 9 ГИА по информатике
Алгоритмический язык
Бейсик
алг нач цел s, k s:= 8 нц для k от 3 до 8 s:= s + 8 кц вывод s кон
Паскаль
DIM k, s AS INTEGER s = 8 FOR k = 3 TO 8 s = s + 8 NEXT k PRINT s
Var s,k: integer; Begin s:= 8; for k:= 3 to 8 do s:= s + 8; writeln(s); End.
Запишите значение переменной s, полученное в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Ответ: ___________________________.
Решение :
В таблице Dat хранятся данные о численности учеников в классах (Dat число учеников в первом классе, Datво втором и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на трёх языках программирования.
Ответ: ___________________________.
Алгоритмический язык
Бейсик
Паскаль
DIM Dat(11) AS INTEGER
DIM k,m AS INTEGER
Var k, m: integer;
целтаб Dat
Dat: array of integer;
Dat(1) = 20: Dat(2) = 25
цел k, m
Dat(3) = 19: Dat(4) = 25
Dat := 20; Dat := 25
Dat := 19; Dat := 25
Dat(5) = 26: Dat(6) = 22
Dat := 20; Dat := 25;
Dat(7) = 24: Dat(8) = 28
Dat := 26; Dat := 22
Dat := 19; Dat := 25;
Dat := 26; Dat := 22;
Dat(9) = 26: Dat(10) = 21
Dat := 24; Dat := 28
Dat(11) = 27
Dat := 24; Dat := 28;
Dat := 26; Dat := 21
Dat := 27
Dat := 26; Dat := 21;
FOR k = 1 TO 11
Dat := 27;
нц для k от 1 до 11
IF Dat(k) 22 THEN
m = m + 1
for k:= 1 to 11 do
если Dat[k] 22 то
m:= m + 1
if Dat[k] 22 then
m:= m + 1
вывод m
writeln(m)
), то его мы не учитываем, так как 22 не больше 22. Учитывать его можно было бы в том случае, если бы в сравнении стоял знак =. Итак, правильный ответ 7." width="640"
Решение:
Итак, правильный ответ 7.
| Контрольная работа
Внимание! в контрольной работе приведены вопросы и элементы кода из Pascal!
Первый вариант
Часть 1.
1. Как выглядит знак присваивания в программировании? :
2. Как называется алгоритмическая конструкция, которая состоит из последовательных действий, В строго упорядоченном порядке друг за другом следующих?
3. Какой алгоритм изображен на картинке? :
4. Выберите правильную запись программы :
5. С помощью какой команды можно узнать остаток деления числа a на b :
Часть 2.
1. Запишите значение переменной b
a:=4;
x:=10;
a:= x-a*2;
x:=a*2-x;
2. Что получиться в результате выполнения этого алгоритма? Ответ запишите :
a:=5;
b:=7;
if a>b then b:= a+b-28
else b := a * b -30;
3. Что получиться в результате выполнения этого алгоритма? Запишите значение которое получиться для переменной b
a:=7;
b:=22;
a:= b div a;
b:= b mod a;
4. Какое значение b получиться после выполнения алгоритма? Ответ запишите. (Если необходимо округлить ответ, округляйте до десятых)
a:=3;
b:=90;
for i:=1 to 4 do
b:=b/a;
Часть 3. Напишите программу.
Вводятся три числа. Вывести наименьшее число.
Второй вариант
Часть I
1. Конструкция алгоритма при котором, результате от проверки выполнения условия могут быть выполнены различные действия, называется:
2. Не равно в pascal пишется:
3. Какая запись верна:
4. На блок схеме изображена алгоритмическая конструкция:
5. Команда в pascal которая позволяет прочитать данные полученные от пользователя:
Часть 2.
1. Какое значение будет у переменной k после выполнения этого алгоритма :
a:=2;
k:=4;
a:= k+a*3;
k:=a/2-k;
2. Запишите значение переменной b после выполнения фрагмента алгоритма:
a:=7;
b:=5;
if a>b then b:= a+b+5
else b := a * b -3;
3. Запишите значение переменной b после выполнения фрагмента алгоритма:
a:=4;
b:=15;
a:= b div a;
b:= b mod a;
4. Запишите значение переменной b после выполнения фрагмента алгоритма:
a:=2;
b:=5;
for i:=1 to 5 do
b := a * b ;
5. Рассмотрите алгоритм и ответьте на вопросы:
program Chulok;
var a, b, c, y: real;
begin
writeln (‘Введите три числа’);
readln(a,b,c);
y:=a;
if b>y then y:=b;
if c>y then y:=c;
writeln ( y ) ;
end .
Часть 3. Напишите программу.
Даны два целых числа a и b ( a < b ). Вывести в порядке возрастания все целые числа, расположенные между а и b (включая сами числа a и b ), а также количество N этих чисел.
Тип данных
Описание
8-разрядные (1 байт) числа без знака в диапазоне от 0 до 255. Тип данных можно использовать при анализе ASCII-кодов символов или простейших вычислениях, в том случае, если заранее известно, что результат не превысит значения 255. Например, с помощью переменной типа Byte можно хранить количество дней в месяце, поскольку максимальное значение не превышает числа 31.
16-разрядные целые числа в интервале от -32768 до 32767. Числовой тип данных Integer часто используется для доступа к элементам массива или коллекции.
32-разрядные целые числа (4 байта) в интервале от -2 147 483 648 до 2 147 483 647. Переменные этого типа позволяют сохранять результаты арифметических выражений, в которых используются достаточно большие целые числа. Например, тип данных Long может потребоваться при расчете больших простых чисел, чисел Фибоначчи, факториала числа и т.д.
96-разрядные (12 байт) числа без знака. В дробной части записывает степень числа. При этом количество знаков после запятой может изменяться в интервале от 0 до 28. В переменных типа Decimal можно хранить сверхбольшие целые числа в интервале от -79*10 28 до 79*10 28 .
64-разрядные числа (8 байт) с плавающей точкой двойной точности для работы с числами в интервалах от -1,798E+308 до -4,941E-324 для отрицательных значений и от 4,941E-324 до 1,798E+308 для положительных значений.
Этот тип данных используется в тех случаях, когда необходима повышенная точность вычислений.
32-разрядные (4 байта) числа с плавающей точкой в диапазоне от -3,403E38 до -1,401E-45 для отрицательных чисел и от 1,401E-45 до 3,403E38 для положительных чисел.
Тип данных служит для хранения строковых значения переменной (до 2 миллиарда символов) или постоянной (64К символов) длины.
Тип данных, позволяющий работать с календарными датами и временем. В памяти компьютера тип Date представляет собой 64-разрядное число с плавающей точкой, позволяющее хранить даты в диапазоне от 1 января 100 года до 32 декабря 9999 года и время в интервале от 0:00:00 до 23:59:59.
16-разрядные числа, принимающие два значения True (все биты числа установлены в единицу, что соответствует -1) и False (все биты числа сброшены в ноль, что соответствует числу 0). Логические переменные используются при сравнении выражений, в условиях и некоторых видах циклов.
Переменная для хранения ссылок на объекты Visual Basic и других приложений
Позволяет хранить данные любых типов - числа, строки, даты и пустые значения.
Объектный тип может быть разбит на типы-категории - формы, элементы, принтеры и т. д.
Для объявления новой переменной используется инструкция Dim, синтаксис которой таков:
Dim <идентификатор> , <идентификатор1> ...
<идентификатор> - имя переменной.
<тип> - допустимый тип данных.
Например, следующая конструкция объявляет переменную V1:
Dim V1 As Integer
Тип переменной и соответственно конструкцию As можно опускать. В этом случае переменная является не типизированной. При одновременном объявлении нескольких переменных очень часто используется такая конструкция Dim A, B, C As Integer. Причем подразумевается, что все три переменные являются целыми. На самом деле это не так. Целой является лишь переменная C, а переменные B и C нетипизированы. Более правильный способ записи таков:
Dim A As Integer, B As Integer, C As Integer
Присваивание значения переменной
Начальное значение переменной равно 0 для числовых типов данных и пустой строке "" для строковых значений. В большинстве случаев это значение вполне подходит условиям задачи. Так, можно составить программу суммирования строк массива A, не обнуляя значение переменной S:
Dim S
For I = 1 To 5
S = S + A[I]
Next
Такая программа при исполнении не выдаст ошибки и правильно суммирует пять элементов массива. Но правила хорошего тона в программирования все-таки вынуждают перед использованием новой переменной присвоить ей начальное значение. К программе для суммирования элементов массива следует добавить еще одну строку:
Dim S
S = 0
For I = 1 To 5
S = S + A[I]
Next
Присвоить значение переменной можно двумя способами: в явной форме с помощью соответствующих инструкций языка Visual Basic for Application или в неявной форме, как, например, переменные цикла. В следующих примерах показаны различные способы присвоения значений переменным:
· числовая переменная
Dim Year As Integer
Year = 2003
· логическая переменная
Dim IsTrue As Boolean
IsTrue = True
· переменная типа дата
Dim BD As Date
BD = #10/4/03#
· расчет значения выражения
B = (3*(3+4))/4
· использование функций Visual Basic for Application
S = InputBox("Представьтесь, пожалуйста")
· начальное значение переменной равно 1, конечное - 5.
For I = 1 to 5
Debug.Print I
Next
· переменная I может использоваться и по завершении цикла