Чем различаются правила построения имен в школьном алгоритмическом языке и в паскале

Обновлено: 05.07.2024

Свидетельство и скидка на обучение каждому участнику

Зарегистрироваться 15–17 марта 2022 г.

Описание презентации по отдельным слайдам:

Школьный алгоритми́ческий язык (АЯ)— формальный язык, используемый для записи, реализации и изучения алгоритмов.

Для единообразной записи алгоритмов введена система обозначений и правил – псевдокод.
В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования.

В псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций.

Примером псевдокода является школьный алгоритмический язык в русской нотации (школьный АЯ),

Основные служебные слова

Общий вид алгоритма:
алг название алгоритма (аргументы и результаты)
дано условия применимости алгоритма
надо цель выполнения алгоритма
нач описание промежуточных величин
последовательность команд (тело
алгоритма)
кон

Заголовок - часть алгоритма от слова алг до слова нач.
Тело алгоритма - часть, заключенная между словами нач и кон.
В заголовке после названия алгоритма в круглых скобках указываются характеристики (арг, рез) и тип значения (цел, вещ, сим, лит или лог) всех входных (аргументы) и выходных (результаты) переменных.
При описании массивов (таблиц) используется служебное слово таб, дополненное граничными парами по каждому индексу элементов массива.

Команды школьного АЯ
Оператор присваивания: А := В
знак ": presentation-desc__item">

Пример вычисления суммы квадратов
алг Сумма квадратов (арг цел n, рез цел S)
дано n > 0
Надо S = 1*1 + 2*2 + 3*3 + . + n*n
нач цел i
ввод n; S:=0
нц для i от 1 до n S:=S+i*i
кц
вывод "S presentation-desc__item">

Цель: Познакомить учащихся с первоначальными данными нужными для разработки программ – языками программирования Паскаль, Бейсик, алгоритмический язык.

Задачи:

  • познакомить учащихся с алфавитом языков программирования Паскаль, Бейсик, алгоритмического языка;
  • познакомить учащихся со структурой программы на разных языках программирования;
  • научить учащихся записывать арифметические выражения на языках программирования Паскаль, Бейсик, алгоритмический язык;
  • выяснить сходства и различия языков программирования Паскаль, Бейсик, алгоритмического языка;
  • развитие умений использовать команды разных языков программирования для записи программы линейной структуры;

Методы обучения: объяснительно-иллюстративный, исследовательский, практический.

Оборудование и программное обеспечение:

  • компьютер;
  • проектор;
  • операционная система;
  • язык программирования Паскаль, Бейсик, алгоритмический язык.

Раздаточный материал: опорные конспекты в виде таблиц из конспекта урока Приложение.

План урока:

  1. Организационный момент.
  2. Актуализация начальных знаний учащихся.
  3. Изучение нового материала.
  4. Создание проблемной ситуации. Закрепление знаний.
  5. Проверка и самопроверка. Анализ полученных результатов.
  6. Подведение итогов урока. Домашнее задание.

Ход урока

I. Организационный момент

Доклад дежурных. Приветствие учителя.

II. Актуализация начальных знаний учащихся.

Языки программирования являются искусственными языками со строго определенным синтаксисом и семантикой, поэтому они не допускают свободного толкования инструкций, характерного для естественного языка.

III. Изучение нового материала.

Алгоритмом называется понятное и точное предписание (указание) исполнителю совершить определенную последовательность действий для достижения поставленной цели для решения поставленной задачи.

Алгоритмы можно записать разыми способами. Нас будет интересовать самый трудный – на языке программирования.

Давайте рассмотрим 3 языка программирования:

  • Школьный алгоритмический
  • Язык Бейсик
  • Язык Паскаль.

Вы можете спросить, почему три языка, а не один? Дело в том, что в вариантах ЕГЭ по информатике встречаются задачи на программирование. Решение задач можно оформлять на любом языке программирования, в том числе и в виде блок-схемы. Какой язык выбрать, дело пользователя, поэтому я постараюсь кратко изложить особенности трех языков.

Алфавит языка

Язык программирования, как другой язык имеет свой алфавит – набор символов.

Школьный алгоритмический Бейсик Паскаль
1) прописные и заглавные буквы русского алфавита;
2) 26 латинских строчных и 26 латинских прописных букв;
3) знаки операций:
+ - * / ^ = <> = :=
4) разделители_, пробел, ( ), «, “
5) служебные слова:
Алг, нач, кон, арг, рез, цел, сим, лит, лог, вещ, таб, длин, нц, кц, дано, надо, если, то, иначе, всё, пока, для, от, до
1) 26 латинских строчных и 26 латинских прописных букв;
2) 10 цифр;
3) знаки операций:
+ - * / ^ = <> = :=
4) разделители_, пробел, ( ), «, “
5) служебные слова:
Byte, integer, long, single, double, boolean, string, dim, const, true, false, data, read, input, print, if, then, else, goto, for
6) буквы русского языка используются в комментариях.
1) 26 латинских строчных и 26 латинских прописных букв;
2) 10 цифр;
3) знаки операций:
+ - * / = <> = :=
4) ограничители:
. , ' ( ) [ ] (. .) < >(* *) .. : ;
5) служебные слова:
SET, MOD, AND, FOR, THEN, ARRAY, FILE, STRING, NOT, TO, BEGIN, FUNCTION, CASE, GOTO, OF, IF, DIV, PROCEDURE, DO PROGRAM, WHILE, DOWNTO, WITH, ELSE, XOR, END, REPEAT, LABEL
6) буквы русского языка используются в комментариях.

Математические операции:

Название операции Форма записи
Школьный алгоритмический Бейсик Паскаль
сложение А + В А + В А + В
вычитание А - В А - В А – В
умножение А * В А * В А * В
деление А / В А / В А / В
Возведение в степень А ^ 2 А ^ 2 Нет

Элементарные функции:

Название операции Форма записи
Школьный алгоритмический Бейсик Паскаль
Абсолютноезначение х Abs(x) Abs(x) Abs(x)
Ln x Log(x) Log(x) Ln(x)
Arctg x Atn(x) Arctan9x)
Случайное число Rnd random(x)
Cos x Cos(x) Cos(x) Cos(x)
Знак числа х Sgn(x)
ex Exp(x) Exp(x) Exp(x)
Sin x Sin(x) Sin(x) Sin(x)
Целая часть числа х Int(x) int(x)
tg x Tan(x) -
Целая часть числа х округление Fix(x) round(x)
Квадратный корень от х Sqr(x) Sqr(x) Sqrt(x)
Квадрат числа Нет Нет Sqr(x)
Деление нацело \ DIV
Остаток от деления Mod (a,b) a MOD b a MOD b

Приоритет операций тот же, что и в математике.

Математическая запись Запись на Паскаль, Бейсик, Алгоритмическом языке
4∙10 -4 4E-4
0,62∙10 5 0.62E+5
-10,88∙10 12 -10.88E12

Структура программы

Школьный алгоритмический Бейсик Паскаль
алг – название алгоритма (аргументы и результаты)
дано – условие применимости алгоритма
надо – цель выполнения алгоритма
нач – описание последовательности команд
кон
DIM описание переменных;

Операторы ввода, вывода, присвоения, арифметические операции,
Операции ветвления, цикл
аEND.
PROGRAM ;
VAR – описание переменных;

BEGIN
операторы ввода, вывода иобработки данных
END.

Переменная – это параметр программы, значение которой может изменяться в процессе выполнения программы. Переменная характеризуется тремя параметрами:

  • Именем (на латинском языке, могут присутствовать цифры, знак подчеркивания);
  • Типом;
  • Значением (значение зависит от типа переменной)

В языке программирования любая переменная или константа должна быть отнесена к определенному типу.

Элементарные функции:

Типы переменных Форма записи
Школьный алгоритмический Бейсик Паскаль
Целое положительное цел Byte 0..255
Word 0..65535
Короткое целое цел Shortint
От -128 до 127
Целое цел Integer – 2 байта
От -32768 до 32767
integer
От -32768 до 32767
Длинное целое
От -2147483648 до +2147483647
Long – 4 байта longint
Вещественное вещ Single Real
2,9x10 -39 - 1,7x10 38
Double Single
1,5x10 -45 - 3,4x10 38
Cтроковые лит String
До 32657 символов
String
Символьный лит Char
Логический лог Boolean boolean

Основные операторы, нужные для построения линейных алгоритмов

Название оператора Форма записи
Школьный алгоритмический Бейсик Паскаль
Присвоение (присваивание) := = :=
Ввод ввод INPUT READLN
READ
Вывод вывод PRINT WRITELN
WRITE

Урок 2

IV. Создание проблемной ситуации. Закрепление знаний.

Учащиеся делятся на 4 группы. Каждой группе выдаются все 4 задачи.

Задания дифференцированные, задача 1 – слабым учащимся, задача 4 – сильным ученикам.

Задача 1. Рассмотрите запись фрагмента программы на языке Бейсик. Запишите эти команды на языке Паскаль и на алгоритмическом языке. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

Бейсик Паскаль Алгоритмический
a=3+2*4
b=(a MOD 10) + 24
a=(b\10) + 1

Задача 2. Рассмотрите примеры программ. Простейший алгоритм, запрашивающий имя и затем приветствующий его обладателя.

Школьный АЯ

алг Знакомство (арг лит Имя, рез лит t)
нач
вывод "Как тебя зовут ?"
ввод Имя
t := "Привет, " + Имя + "!" | "+" - операция сцепки
вывод t
кон

Turbo Pascal

Basic

CLS
INPUT "Как тебя зовут ? ", Name$
PRINT "Привет, "; Name$; "!"
END

Задача 3. Чему будут равны значения переменных a, b, c, x после выполнения алгоритма, если при вводе их значения равны a = 5, b = 10, c = 20:

алг счет
цел a, b, c, x
нач ввод a, b, c
x := a + b + c
a := a * 5
b := a + b
c := 15
b := b * 3
вывод a, b, c, x
кон

Запишите данный алгоритм на языках программирования Бейсик и Паскаль.

Задача 4. Написать на алгоритмическом языке, языках программирования Паскаль и Бейсик, алгоритм вычисления y по формуле: y = (1 - x2 + 5 x4)2, где x - данное целое число.

V. Проверка и самопроверка. Анализ полученных результатов.

Представители каждой группы учащихся выносят на доску или на экран компьютера решение своего задания. Учащиеся делают выводы, проверяют, оценивают.

VI. Подведение итогов урока. Домашнее задание.

Написать на 3 языках программирования программу алгоритма вычисления площади и периметра квадрата со стороной А.

А что, разве, Паскаль не является алгоритмическим языком? ! Или я что-то не поняла? !
ОСНОВНЫЕ типы переменных в ПАСКАЛЕ:
INTEGER- целые числа;
диапазон возможных значений от –32768 до +32767, данные представляются точно.
REAL- вещественные данные (действительные числа) .
диапазон возможных значений модуля от 2,9Е-39 до 1,7Е+38, точность представления данных – 11, 12 значащих цифр.
CHAR - символьная переменная
(одиночный символ – буква, число, различные символы) .
BOOLEAN - переменные логического типа,
имеют два значения FALSE – ложь, TRUE – истина.
STRING - строка символов (длина строки может быть от 1 до 255 символов) .
Для начала, я думаю, хватит.. .

Исползуются обычно те которые помещаются в отведённую им память
(обычно от 1 до 10 байт разные простые типы в разных языках и на разном железе)

Если нужно 10000значное целое обсчитать, то надо ваять свои функции

(пытался представить неалгоритмический паскаль и крыша поехала) ) )

Величины? В Pascal - числовые, символьные, строковые, множества, их массивы. А школьный алгоритмический язык знают только в школе.

вывод "Ошибка программы" write ('Ошибка программы');

1.2. Определение ВА

Можно ли взять определения из предыдущего пункта из теории за 5-9 класс?

1.3. Оформление процедур
в школьном алгоритмическом языке и в Паскале

алг С процедурой

цел n

если n Error все

вывод 'Ошибка программы'

program withProc;

var n: integer;

procedure Error;

writeln(' Ошибка программы ')

В школьном алгоритмическом языке процедура оформляется точно так же, как и основной алгоритм, но размещается после основной программы.

В Паскале процедура начинается с ключевого слова procedure , тело процедуры начинается с ключевого слова begin и заканчивается ключевым словом end с точкой с запятой. Процедура располагается после блока объявления переменных, но выше основной программы.

Фактически мы ввели в язык программирования новую команду Error , которая была расшифрована прямо в теле программы. Для того чтобы процедура заработала, в основной программе (или в другой процедуре) необходимо ее вызвать по имени.

Как мы видели, использование процедур сокращает код, если какие-то операции выполняются несколько раз в разных местах программы. Кроме того, иногда большую программу разбивают на несколько процедур для удобства, оформляя в виде процедур отдельные этапы сложного алгоритма. Такой подход делает всю программу более понятной.

1.4. Процедура с параметрами

Процедура Error при каждом вызове делает одно и то же. Более интересны процедуры, которым можно передавать параметры (аргументы) — дополнительные данные, которые изменяют выполняемые действия.

нц пока k >0

вывод div ( n , k )

while k>0 do begin

Писать такой цикл каждый раз, когда нужно вывести двоичное число, очень утомительно. Кроме того, легко сделать ошибку или опечатку, которую будет сложно найти. Поэтому лучше оформить этот вспомогательный алгоритм в виде процедуры. Но этой процедуре нужно передать значение параметра — число для перевода в двоичную систему. Программа получается такой:

алг Двоичный код

алг printBin (цел n 0)

нц пока k >0

вывод div ( n , k )

program binCode;

procedure printBin(n:integer);

var k:integer;

while k>0 do begin

Основная программа содержит всего одну команду — вызов процедуры printBin для значения 99. В заголовке процедуры в скобках записывают тип и внутреннее имя параметра (т. е. имя, по которому к нему можно обращаться в процедуре). Значение параметра, переданное из вызывающей программы в процедуру (в этом примере — число 99), обычно называют аргументом.

В процедуре объявлена локальная (внутренняя) переменная k — она известна только внутри этой процедуры. Обратите внимание, что в школьном алгоритмическом языке локальные переменные объявляются после ключевого слова нач, а в языке Паскаль — до слова begin .

В школьном алгоритмическом языке запрещено изменять параметры процедуры внутри процедуры, поэтому мы назвали параметр п0, а в начале процедуры скопировали его значение в переменную п.

Параметров может быть несколько, в этом случае они перечисляются в заголовке процедуры через запятую (в школьном алгоритмическом языке) или точку с запятой (в Паскале). Например, процедуру, которая выводит экран среднее арифметическое двух целых чисел, можно записать так:

алг printSred( цел a, цел b)

procedure printSred (a: integer; b: integer);

Если несколько параметров одного типа стоят в списке один за другим, их можно определить списком:

алг printSred ( цел a,b)

procedure printSred(a, b: integer);

Изменяемые параметры

Напишем процедуру, которая меняет местами значения двух переменных. Проще всего для этого использовать третью переменную (пока напишем программу только на Паскале):

program Exchange;

var x, у : integer;

procedure Swap(a, b: integer);

var c: integer;

После запуска этой программы обнаружится, что значения переменных х и у остались прежними: на экран будет выведено: 2 3. Дело в том, что эта процедура работает с копиями переданных ей параметров. Это значит, что процедура Swap создаёт в памяти временные локальные переменные с именами а и b и копирует в них переданные значения переменных х и у основной программы. Поэтому и все перестановки в нашей программе были сделаны именно с копиями, а значения переменных х и у не изменились. Такая передача параметров называется передачей по значению.

Чтобы решить проблему, нужно явно сказать, чтобы процедура работала с теми же ячейками памяти, что и основная программа. Для этого в Паскале в заголовке процедуры перед именем изменяемого параметра пишут ключевое слово var :

procedure Swap ([ var la, b: integer);

Теперь процедура решает поставленную задачу: на выходе мы увидим: 3 2, что и требовалось. В подобных случаях говорят, что параметры передаются по ссылке, а не по значению. Это означает, что фактически в процедуру передаётся адрес переменной и можно изменять значение этой переменной, записывая новые данные по этому адресу.

При вызове процедуре Swap можно передавать только переменные, но не константы (постоянные) и не арифметические выражения. Например, вызовы Swap (2, 3) и Swap ( x , у+3) противоречат правилам языка программирования, и программа выполняться не будет.

В школьном алгоритмическом языке все параметры делятся на аргументы (исходные данные, обозначаются арг) и результаты (ключевое слово рез, эти значения процедура передаёт вызывающей программе). По умолчанию (если не указано иначе) все параметры считаются аргументами. Поэтому два следующих заголовка равносильны:

алг Swap (цел а, b )

алг Swap ( цел а, b )

В нашем случае параметры процедуры одновременно являются и аргументами, и результатами, поэтому их нужно объявлять с помощью ключевого слова аргрез. Приведём полную программу:

Читайте также: