1. Блок типа PROGRAM — имеет имя, состоящее только из латинских букв и цифр. Его присутствие не обязательно, но рекомендуется записывать для быстрого распознавания нужной программы среди других листингов.
2. Программный блок, состоящий в общем случае из 7 разделов:
- раздел описания модулей (uses);
- раздел описания меток (label);
- раздел описания констант (const);
- раздел описания типов данных (type);
- раздел описания переменных (var);
- раздел описания процедур и функций;
- раздел описания операторов.
Общая структура программы на языке Паскаль следующая:
Начнем знакомство с Паскалем с программы, которая складывает два числа и выводит сумму на экран.
Откройте файл, в который Вы запишите эту программу. Для этого нажмите клавишу F10, чтобы выйти в главное меню, затем клавишами перемещения курсора выберите опцию File, а в выпавшем меню команду New.
Примечание. Обратите внимание на оформление текста программы.
Алгоритмический язык. Урок 2. Примеры исполнителей. Оптимальные программы (Смирнов В.Е.)
Задание.
- Найдите в этой программе заголовок, раздел описания переменных, признак начала программы, признак конца программы, тело программы, комментарий.
- Что обозначает строчка:
number1, number2, rezult: integer; - Как вы понимаете запись:
number1:= 3; - Чему равно значение переменной rezult после выполнения оператора:
rezult:= number1 + number2; - Переведите с английского языка слово Write. Как вы думаете, что должен делать оператор с таким названием?
- Поменяем местами второй и третий операторы. Будет ли программа работать? Почему?
- Какой недостаток Вы видите у этой программы? Как нужно изменить условие задачи, чтобы решать подобные задачи с любыми числами. Подумайте, что должно измениться в теле нашей программы, чтобы выполнить эту задачу.
А теперь подведем итог вашим размышлениям.
Далее идет специально выделенный комментарий, в котором вы должны записать подробно условие задачи и указать, кто написал эту программу и когда.
Из разделов описаний имеется лишь один — раздел переменных. Он начинается со служебного слова Var. Мы описали три переменные: number1, number2, rezult. Все они переменные целого типа. Поэтому мы перечислили их через запятую, поставили двоеточие и указали тип переменных.
Подобные объявления разделяются между собой точкой с запятой.
После описательной части идет раздел операторов, начинающийся со служебного слова Begin, после которого идут операторы языка.
Недостатком этой программы является то, что значения переменных постоянны. А нам нужно научиться писать такие программы, которые решают поставленные задачи в общем виде, т. е. для любых значений переменных. Для этого мы научимся запрашивать значения у пользователя, анализировать их и выдавать соответствующий результат.
Лексика языка. Типы данных.
Познакомимся с основными понятиями языка.
Алгоритм — четкая последовательность действий, необходимая для решения задачи.
Из чего состоит программа? Алгоритмический язык.
Программа — алгоритм, записанный на языке программирования.
Алфавит языка — набор элементарных символов, используемый для составления программ. Алфавит содержит:
· 52 буквы латинского алфавита (строчные и заглавные);
- арабские цифры (0-9);
- специальные символы;
- знаки математических действий (+ — * /);
- знаки пунктуации (. ; » `);
- скобки ([ ] () < >);
- знак пробела;
- знаки отношений ( < >=).
Идентификатор (имя) — имя какого-либо элемента программы, которое должно удовлетворять следующим требованиям:
- длина имени не должна превышать 63 символа,
- первым символом не может быть цифра,
- переменная не может содержать пробел;
- имя не должно совпадать с зарезервированным (служебным) словом,
- прописные и строчные буквы воспринимаются одинаково.
Зарезервированные (служебные) слова — это слова, использующиеся только по своему прямому назначению. Их нельзя использовать в качестве переменных, так как они выполняют определенную смысловую нагрузку.
Примеры зарезервированных слов: AND, GOTO, PROGRAM, ELSE, IF, RECORD, NOT, ARRAY, REPEAT, UNTIL, BEGIN, IN, SET, END, CASE, CONST, USES, INTERFACE, STRING, LABEL, THEN, OF, DIV, TO, VAR, DO, TYPE, WHILE, DOWNTO, FILE, FUNCTION, PROCEDURE и другие.
Переменные (Var) — вид данных, который может изменять свое значение в ходе программы, описывают переменные после зарезервированного слова Var.
Константы (Const) — вид данных, который является постоянным на всем протяжении выполнения программы, описывают константы после зарезервированного слова Const.
Комментарии — некоторая запись, служащая для пояснения программы, которая записывается в фигурных скобках.
Типы данных
Для временного хранения информации в операторах памяти машины в языке Паскаль используются константы и переменные. Они могут быть различных типов:
- целых чисел (см. ниже);
- действительных чисел (real);
- символьный тип (char);
- строковый (string);
- логический (boolean);
- сложные (комбинированный (record), множественный (set) и другие).
Целые типы:
Название | Длина в байтах | Диапазон значений |
Byte | 0. 255 | |
ShortInt | -128. 127 | |
Word | 0. 65535 | |
Integer | -32768. 32767 | |
LongInt | -2147483648. 2147483647 |
Над целыми типами определены такие операции:
- «+» — сложение;
- » * » — умножение;
- » — » вычитание;
- div — целочисленное деление;
- mod — получение остатка от целочисленного деления.
Вещественные типы:
Вещественные типы представляются с некоторой точностью, которая зависит от компьютера. Вам необходимо знать, что вещественный тип разделяется на несколько типов, но использовать мы будем вещественные данные только типа Real, которые занимают 6 байт, имеют диапазон возможных значений модуля от 2.9Е-39 до 1.7Е+38 и точность представления данных — 11. 12 значащих цифр.
Примечание. Несмотря на то, что в Turbo Pascal имеется широкий выбор вещественных типов, доступ к некоторым из них (single, double, extended) возможен при особых режимах компиляции. Особое положение в Turbo Pascal занимает тип comp, трактующийся как вещественное число без экспоненциальной и дробной частей. Он сохраняет 19 — 20 значащих цифр и знак числа. В то же время comp полностью совместим с любыми другими вещественными типами.
В языке Паскаль числа могут быть представлены в двух видах: с фиксированной точкой и плавающей запятой.
Числа с фиксированной точкой изображаются десятичным числом с дробной частью, которая может быть и нулевой. Например, 27.9, 5.00
Такие большие числа как 137.000.000 можно записать в виде чисел с десятичным порядком 1.37·10 8 . Такие числа имеют вид mEp. Здесь m — мантисса; E — признак записи числа с десятичным порядком; p — степень числа 10. Получится 1.37Е+8. Такие числа, представленные с десятичным порядком и называются числами с плавающей точкой. Например,
Математическая запись | Запись на Паскале |
4·10 -4 | 4E -4 |
0,62·10 5 | 0.62E+5 |
-10,88·10 12 | -10.88E12 |
Компьютер, по умолчанию, представляет действительные числа в виде чисел с плавающей точкой. Такое представление чисел не очень нравится пользователям. Поэтому мы будем “заставлять” компьютер выдавать действительные числа в более привычном варианте следующим образом:
R:m:n, где R — действительное число, m — количество позиций, отводимых для целой части, n — количество позиций, отводимых для дробной части.
Например, если мы хотим вывести на экран число Chislo с фиксированной точкой, причем знаем, что для вывода целой части этого числа достаточно 7 мест, а вывод дробной части ограничим сотыми, то мы запишем вывод так:
Символьный тип (char):
Значениями данного типа является множество всех символов компьютера: русская или латинская большая или маленькая буква, цифра, знак препинания, специальный знак (например, «+», «-«, «*», «/», «», «=» и др.) или пробел » «. Каждый из символов имеет уникальный номер от 0 до 255, т. е. внутренний код, который возвращает функция ORD. Символьная константа или символьная переменная — любой символ языка, заключённый в апострофы. Например,
Var Simvol: char; |
Строковый тип (string):
Значением строковой величины является строка переменной длины (быть может пустая). Строковая константа или строковая переменная представляет собой произвольную последовательность символов, заключенную в апострофы. Например,
Var Stroka: string; |
Логический тип (boolean):
Логический тип данных часто называют булевым по имени английского математика Д. Буля, создателя математической логики. В языке Паскаль имеются две логические константы TRUE и FALSE. Логическая переменная принимает одно из этих значений и имеет тип Boolean. Для сравнения данных предусмотрены следующие операции отношений: , >, >=. А также существуют специфичные для этого типа логические операции OR — или; AND — и; NOT — не.
При проверке некоторых условий результат операции может быть истинным или ложным. Например, 3>5 ложь.
Более подробно этот тип данных мы рассмотрим при изучении условного оператора.
Сложные типы:
К сложным или структурированным типам относятся массивы, записи, множества, которые требуют специального изучения и здесь рассматриваться не будут.
Задание. Откройте новый файл. Создадим программу, в которой опишем несколько переменных разного типа, введем в них значения и выведем на экран.
Program TipDann; Uses Crt Var Chislo1: Integer; Chislo2: Real; Simvol: Char; Stroka: String; Logika: Boolean; Begin ClrScr; Chislo1:=12; Chislo2:=Chislo1*2; Chislo2:=Chislo2/5; Simvol:=‘d’; Stroka:=‘Строчка’; Logika:= Chislo1> Chislo2; WriteLn (‘Вывод значений:’); WriteLn (‘Значение переменной Chislo1: ’,Chislo1); WriteLn (‘Значение переменной Chislo2: ’,Chislo2:5:2); WriteLn (‘Значение переменной Simvol: ’,Simvol); WriteLn (‘Значение переменной Stroka: ’,Stroka); WriteLn (‘Значение переменной Logika: ’,Logika); End. |
Внимательно рассмотрите каждую строчку программы. Обратите особое внимание на описание переменных: Chislo1 — переменная целого типа, Chislo2 — действительного, Simvol — символьного, Stroka — строкового, Logika — логического. Далее в основной программе идет присвоение переменной Chislo1 целого числа 12, переменной Chislo2 — целого числа 24. Обратим внимание, что переменной действительного типа Chislo2 присвоено целое число; никакой ошибки нет, т. к. множество целых чисел является подмножеством множества действительных чисел. Следующая строчка еще более интересная: переменной Chislo2 присваивается значение той же переменной, только деленной на 5.
Такое присваивание используют в программах, если предыдущее значение этой переменной уже не понадобится и для более рационального использования описанных переменных. Для того чтобы переменной символьного типа присвоить какой-либо символ (например, d), надо этот символ записать в апострофах (знак «’»).
Аналогично поступают с переменными строкового типа (смотри следующую строку программы). А про переменные логического типа мы знаем, что им можно присваивать только два значения: True и False. В этой программе мы присвоим значение результата сравнения двух переменных, здесь оно будет равно True. А теперь выведем присвоенные значения на экран.
Задание. Измените значения переменных и проанализируйте результаты выполнения программы. Сохраните программу на дискете под правильным именем в соответствующем каталоге. Распечатайте программу.
Переменные и константы.
ПЕРЕМЕННЫЕ. ИНИЦИАЛИЗАЦИЯ ПЕРЕМЕННЫХ
Тип переменных определяется пользователем в разделе описания переменных:
Operator: (plus, minus, times);
Hue1,Hue2: set of Color;
Matrix: array[1..10,1..10] of Real;
Переменные, описанные вне процедуры и функции, называются глобальными переменными и располагаются в сегменте данных. Переменные, описанные в самой процедуре или функции, называются локальными переменными и располагаются в сегменте стека.
Тип, задаваемый для переменных, может быть идентификатором типа, который был ранее описан в разделе описания типов того же самого блока, или блока, в который входит данный блок, или модуля, или же этот тип может быть новым определением типа.
В настоящее время в профессиональном программировании принято записывать имена переменных с использованием так называемой венгерской нотации.
Венгерская нотация – это соглашение о наименованиях переменных и функций. Соглашение широко используется при программировании на языках Pascal, C и в среде Windows.
Венгерская нотация основывается на следующих принципах:
имена переменных и функций должны содержать префикс, описывающий их тип;
имена переменных и функций записываются полными словами или словосочетаниями или их сокращениями, но так, чтобы по имени можно было понять назначение переменной или действие, выполняемое функцией.
Префиксы записываются малыми буквами, первая буква каждого слова – заглавная, префиксы и слова записываются либо слитно, либо через символ _ (подчеркивание).
Для языка Паскаль могут быть рекомендованы следующие префиксы для скалярных переменных и функций:
P Pointer x,у координаты символа или точки на экране
Для величин структурированного типа могут быть использованы следующие префиксы:
rV, arVector[1..20], sName, iCount.
В откомпилированной программе для всех переменных отведено место в памяти, и всем переменным присвоены нулевые значения.
Для задания начальных значений переменным (инициализации переменных) Паскаль позволяет присваивать начальные значения переменным одновременно с их описанием. Для этого используется конструкция имя переменной: тип = значение; которая должна быть размещена в разделе описания констант, например:
const rWeight: Real = 0.4;
Тип констант в языке Паскаль определяется по их виду: константы целого типа – это целые числа, не содержащие десятичной точки, константы действительного типа – действительные числа, логические константы – логические значения TRUE и FALSE, символьные константы – либо строки длиной в один символ, либо конструкции вида #K или ^K.
Являясь расширением стандартного Паскаля, Паскаль позволяет использовать выражения-константы. Выражение-константа представляет собой выражение, которое может вычисляться компилятором без необходимости выполнения программы. Приведем примеры выражений-констант:
Простейший случай выражения-константы представляет собой простая константа, например 100 или ‘A’. В стандартном Паскале допускается использовать только простые константы. В Паскале разрешено использование выражений-констант.
Поскольку компилятор должен иметь возможность полностью вычислить выражение-константу во время компиляции, в качестве выражений-констант не допускается использовать следующие конструкции:
Ссылки на переменные и типизированные константы (кроме констант в адресных выражениях).
Вызовы функций (кроме тех, которые отмечены далее).
За исключением этих ограничений для выражений-констант соблюдаются те же синтаксические правила, что и для обычных выражений.
В выражениях-константах допускается использовать следующие стандартные функции:
Abs, Chr, Hi, High, Length, Lo, Low, Odd, Ord, Pred, Ptr, Round, SizeOf, Succ, Swap, Trunc.
Приведем некоторые примеры использования выражений-констант в описаниях констант:
Center = (Max — Min) div 2;
NumChars = Ord(‘Z’) — Ord(‘A’) + 1;
Message = ‘Out of memory’;
ErrStr = ‘Error:’ + Message + ‘.’;
ErrPos = 80 — Length(Error) div 2;
ErrAttr = Blink + Red * 16 + White;
AlphaNum = Alpha + Numeric;
Выражения и операции.
Выражение состоит из констант, переменных, указателей функций, знаков операций и скобок. Выражение задает правило вычисления некоторого значения. Порядок вычисления определяется старшинством (приоритетом) содержащихся в нем операций. В языке Паскаль принят следующий приоритет операций:
2. Операции типа умножения: *, /, div, mod, and, shl, shr. Например,
i mod j = i — (i div j) * j
3. Операции типа сложения: +, –, or, xor. Например,
4. Операции отношения: =, <>, , =, in. Например,
Выражения входят в состав многих операторов языка Паскаль, а также могут быть аргументами встроенных функций. Например,
Битовая или поразрядная арифметика введена в Паскале для обеспечения возможности работы с двоичными разрядами (битами). Операции битовой арифметики применимы только к целым типам.
Первая группа операций – логические операции not, and, or и xor.
Операция not является одноместной, она изменяет каждый бит целого числа на обратный.
Операции and, or и xor – двуместные, операнды этих операций – целые величины одинаковой длины. Операции выполняются попарно над всеми двоичными разрядами операндов.
Вторая группа операций – это операции сдвига влево shl и сдвига вправо shr:
Эти операции сдвигают двоичную последовательность значения I влево или вправо на N двоичных разрядов. При этом биты, уходящие за пределы разрядной сетки, теряются, а освободившиеся двоичные разряды заполняются нулями. При сдвиге вправо отрицательных значений освободившиеся разряды заполняются единицами.
Операторы языка.
Источник: megalektsii.ru
20. Структура программы. Переменные, основные операторы языка программирования.
Каждая программа на языке программирования высокого уровня должна быть оформлена в соответствии с правилами этого языка.
Алгоритмический язык
В алгоритмическом языке структура программы имеет следующий вид:
- — идентификатор, однозначно определяющий программу;
- — список величин, которые обрабатываются программой;
- — список величин, которые передаются в программу для обработки;
- — список величин, которые вычисляются программой;
- — конечная последовательность операторов, реализующих исходный алгоритм и составляющих тело программы.
— уникальный числовой идентификатор каждой строки, позволяющий операторам перехода изменять ход выполнения операторов.
— раздел, в котором описываются модули, используемые программой, константы, переменные, которые используются в программе, описываются пользовательские типы данных, используемые подпрограммы.
21. Условные операторы и операторы цикла.
Условный оператор применяется для реализации разветвляющегося алгоритма. В зависимости от значения логической величины, которая может являться результатом операции отношения» выполняется или один или другой оператор (или выполняется переход к той или иной метке в программе).
Полная форма: если иначе
Сокращенная форма: если то
Полная форма: IF THEN ELSE
Сокращенная форма: IF THEN
в алгоритмическом языке и Паскале может быть как простым, так и составным. Составной оператор — это набор простых операторов, ограниченный командами «нс» и «кс» в алгоритмическом языке и begin … end — в Паскале.
Разновидностью условного оператора является оператор выбора. Оператор выбора выполняет один из операторов в зависимости от различных значений анализируемой величины:
Циклом называется последовательность операторов, которая выполняется несколько раз, пока выполняется (или ие выполняется) определенное условие или заранее заданное количество раз. Выполняемая в цикле последовательность операторов называется телом цикла. Каждое прохождение цикла называется итерацией.
Цикл с предусловием
В цикле с предусловием перед началом выполнения каждой итерации проверяется условие. Если оно истинно, то тело цикла выполняется, если ложно — выполнение цикла прерывается и начинают выполняться операторы, расположенные за телом цикла.
В Бейсике циклы реализуются с помощью условного оператора и оператора безусловного перехода.
Цикл с послеусловием
В цикле с послеусловием после каждой итерации проверяется условие, и в случае истинности выполнение цикла прерывается, иначе выполнение тела цикла повторяется. Вид оператора цикла с послеусловием:
Цикл со счетчиком
Цикл со счетчиком используется тогда, когда заранее известно, сколько раз должно быть выполнено тело цикла. В цикле со счетчиком используется переменная — счетчик — которая изменяется в заданном диапазоне.
Источник: studfile.net
Алгоритмический язык программирования
Алгоритмический язык программирования — формальный язык, используемый для записи, реализации и изучения алгоритмов. В отличие от большинства языков программирования, алгоритмический язык не привязан к архитектуре компьютера, не содержит деталей, связанных с устройством машины.
Для изучения основ алгоритмизации применяется так называемый Русский алгоритмический язык (школьный алгоритмический язык), использующий понятные школьнику слова на русском языке.
Алголо-подобный алгоритмический язык с русским синтаксисом был введён в употребление академиком А. П. Ершовым в середине 1980-х годов, в качестве основы для «безмашинного» курса информатики.
Основные служебные слова алгоритмического языка
Логические функции и значения для составления выражений
Общий вид алгоритма
алг название алгоритма (аргументы и результаты)
| дано условия применимости алгоритма
| надо цель выполнения алгоритма
нач описание промежуточных величин
| последовательность команд (тело алгоритма)
кон
Часть алгоритма от слова алг до слова нач называется заголовком , а часть, заключенная между словами нач и кон — телом алгоритма .
В предложении алг после названия алгоритма в круглых скобках указываются характеристики (арг, рез) и тип значения (цел, вещ, сим, лит или лог) всех входных (аргументы) и выходных (результаты) переменных. При описании массивов (таблиц) используется служебное слово таб, дополненное граничными парами по каждому индексу элементов массива.
В записи алгоритма ключевые слова обычно подчёркиваются либо выделяются полужирным шрифтом. Для выделения логических блоков применяются отступы, а парные слова начала и конца блока соединяются вертикальной чертой.
Основные алгоритмические структуры
Подробное описание основных алгоритмических структур приведено в этой статье. Ниже приводятся шаблоны составления этих структур на алгоритмическом языке.
Неполная развилка
Источник: prog-cpp.ru