Чем различаются правила построения имен в школьном алгоритмическом языке и в паскале
Обновлено: 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">
Цель: Познакомить учащихся с первоначальными данными нужными для разработки программ – языками программирования Паскаль, Бейсик, алгоритмический язык.
Задачи:
- познакомить учащихся с алфавитом языков программирования Паскаль, Бейсик, алгоритмического языка;
- познакомить учащихся со структурой программы на разных языках программирования;
- научить учащихся записывать арифметические выражения на языках программирования Паскаль, Бейсик, алгоритмический язык;
- выяснить сходства и различия языков программирования Паскаль, Бейсик, алгоритмического языка;
- развитие умений использовать команды разных языков программирования для записи программы линейной структуры;
Методы обучения: объяснительно-иллюстративный, исследовательский, практический.
Оборудование и программное обеспечение:
- компьютер;
- проектор;
- операционная система;
- язык программирования Паскаль, Бейсик, алгоритмический язык.
Раздаточный материал: опорные конспекты в виде таблиц из конспекта урока Приложение.
План урока:
- Организационный момент.
- Актуализация начальных знаний учащихся.
- Изучение нового материала.
- Создание проблемной ситуации. Закрепление знаний.
- Проверка и самопроверка. Анализ полученных результатов.
- Подведение итогов урока. Домашнее задание.
Ход урока
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 |
Вывод | вывод | 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 )
В нашем случае параметры процедуры одновременно являются и аргументами, и результатами, поэтому их нужно объявлять с помощью ключевого слова аргрез. Приведём полную программу:
Читайте также:
- Что такое обязательность кратко
- Что такое информационная модель в информатике 8 класс кратко
- Как можно оформить дневник школьный внутри красиво легко и быстро нарисовать
- Расписание образовательной деятельности в младшей группе доу
- В чем состоит особое значение конституции рф для граждан и государства кратко