- •Алещенко а.С.
- •2 Раздел
- •Раздел 1
- •1.1. Алгоритмы и формы описания алгоритмов. Блок-схемы линейных алгоритмов
- •1.2. Типовая структура алгоритмического языка
- •Программные единицы
- •1.3. Операторы ввода и вывода данных. Оболочка Турбо-Паскаля
- •Операторы ввода и вывода.
- •1.4. Циклические алгоритмы и организация циклов
- •Использование псевдографики для оформления результатов
- •1.5. Разветвляющиеся алгоритмы и их реализация
- •1.6. Обработка массивов. Индексированные переменные
- •Правила использования вложенных циклов
- •1.7. Вспомогательные алгоритмы. Нестандартные функции
- •Раздел 2
- •2.1. Типы циклических алгоритмов
- •2.2. Структуры разветвляющихся алгоритмов
- •Практическая часть.
- •2.3. Обработка индексированных переменных
- •Псевдографика в Турбо-Паскале
- •Масштабирование графиков
- •2.4. Обработка символьной информации на Турбо-Паскале
- •2.5. Вспомогательные алгоритмы: процедуры
1.2. Типовая структура алгоритмического языка
Словесное описание и блок-схемы алгоритмов в принципе не зависят от исполнителя алгоритма, в том числе и от его входного языка.
Исполнителем алгоритма может быть простое устройство (например, калькулятор) или более сложное по возможностям и функциям (например, ПК). В ПК могут быть установлены разные программные средства, называемые программными пакетами и позволяющие более или менее подробно описывать необходимую последовательность действий.
Алгоритмические языки предназначены для описания алгоритма в виде набора операторов, описывающих все действия, необходимые для получения результатов.
Общая структура алгоритмического языка приведена на листе РМ2 (и на плакате).
Следует отметить, что любой язык, в том числе и языки человеческого общения, имеет подобную структуру. А именно его можно разделить на 4 уровня:
Алфавит языка, т.е. те символы, которые используются в данном языке. Например, в русском языке не используются латинские буквы. Для большинства алгоритмических языков общим является использование латинских букв (заглавных и строчных), арабских цифр от 0 до 9, а также специальных знаков. Причем часто заглавные и строчные одноименные буквы не различаются. К спецзнакам в разных алгоритмических языках относят разные наборы символов, но всегда в их число входят символы арифметических действий:
+ сложение,
вычитание,
* умножение,
/ деление,
= равенство ,
а также знаки: точка, запятая, точка с запятой, двоеточие, квадратные и круглые скобки, знаки больше, меньше, апостроф, пробел и подчерк ( _ ).
Использование символов типа @, $ и «двойных кавычек» и их смысл зависят от конкретного алгоритмического языка. В Паскале эти символы не используются.
Первичные структуры языка (слова), т.е. сочетания символов, имеющие смысл. Например, на русском языке не имеет смысла слово «якыз».
Конструкции языка (предложения). Это правильные с точки зрения синтаксиса сочетания первичных структур. Например, в английском языке повествовательные и вопросительные предложения четко различаются по последовательности подлежащего и сказуемого.
Программные единицы аналогичны литературным произведениям а языках общения. Например, проза, поэзия, драматургия. В алгоритмических языках существуют 2 основных формы программных единиц: основная программа (или просто программа) и подпрограммы, используемые для реализации вспомогательных алгоритмов. Необходимо запомнить, что для каждой подпрограммы оформляется отдельная блок-схема.
Рассмотрим подробно первичные структуры языка Паскаль
Величина – это неделимая единица информации, обрабатываемая в программе.
Величины могут быть двух видов: константы и переменные.
1. Константы – не изменяют значения в программе. Константы могут быть разных типов: числовые, символьные и булевы (логические).
Числовые константы в свою очередь делятся на:
- целые (integer) . Например: - 37, 258;
- вещественные (real) отличаются возможностью иметь в записи дробную часть, которая отделяется от целой части не запятой, а точкой (во всех алгоритмических языках). Для них возможны два представления. Рассмотрим на примерах:
38.25 -0.00012 789.0 – «естественная форма» или запись с фиксированной точкой;
3.825Е1 -1.2Е-4 7.89Е2 – те же числа в полулогарифмической форме записи или записи с плавающей точкой.
Преобразование числа выполняется следующим образом:
38,25 = 0,3825*102 =3,825*101
затем фрагмент 101 заменяется латинской буквой Е, получим 3.825Е1. Здесь 3,825 – мантисса, а 1 – десятичный порядок.
Запись, в которой одна цифра размещается в целой части, называется нормализованной.
При записи в программе после буквы Е допускается помещать целое число (порядок) без пробела или знак порядка (обычно, минус).
Символьные константы выделяются апострофами и могут быть двух типов:
- один символ (char). Например, ‘A’ ‘9’ ‘*’
-строка символов (string ).
Например, ‘Алла’ ‘Dlina’ ‘Введите значения x:’ ‘ V=’
Отметим, что:
в строковых константах заглавные и строчные буквы различаются;
если в строковой константе требуется использовать апостроф, то он удваивается.
Например, ‘мушкетер Д’’Артаньян’
2. Переменные представляются в программе как имена, обозначающие ячейки памяти и используемые для хранения конкретных значений величин.
Ячейка памяти – это последовательность байтов, предназначенная для хранения константы и имеющая назначенную (декларируемую) структуру.
Идентификатор (имя) переменной – это последовательность латинских букв и цифр, начинающаяся с буквы (что характерно для всех алгоритмических языков), длина не ограничена, но существенны (различаются) только первые 63 символа. Допускается использование подчерка.
Спецзнаки и пробелы внутри идентификаторов и чисел не допускаются.
Например, F23 Klass_10_A x E95
Каждая переменная (и идентификатор), используемая в программе, должна быть описана в декларации для правильного формирования ячеек памяти.
3. Ключевые слова – это слова, имеющие специальное назначение и не используемые как идентификаторы.
Например, begin начало
end. конец программы
program заголовок программы
Они будут изучены позже.
4. Метки – это имена, присваиваемые операторам программы. Они будут рассмотрены позже.
5. Элементарные функции – это набор часто используемых математических функций, используемый в программах, позволяющий определить значение результата для конкретного значения аргумента. Общее свойство элементарных функций - наличие круглых скобок, ограничивающих аргумент. Например,
Sin(x) синус аргумента типа real, результат типа real .
Abs(x) модуль (абсолютная величина) аргумента типа real, результат типа real.
Список основных элементарных функций приведен в раздаточном материале (лист РМ3) .
6. Выражения в Паскале предназначены для формирования результата определенных действий над величинами. Выражения состоят из имен переменных, констант и функций, разделенных знаками операций. Выражения могут быть арифметическими (результат - число) или логическими (результат – логическое значение «истина» или «ложь»).
Перечислим спецзнаки, участвующие в выражениях:
- логические: - арифметические:
= равно + сложение
< > не равно - вычитание
> больше * умножение
< меньше / деление
> = не меньше div целочисленное деление
< = не больше mod остаток целочисленного деления
Кроме того, для изменения порядка действий в выражениях используются круглые скобки.
Перечислим еще знаки и их сочетания, используемые в программах на Паскале:
{ } или (* *) ограничивают комментарии
[ ] ограничивают индексные выражения для массивов
: разделяет имена переменных и описание их типа
; определяет конец конструкции языка
: = знак присваивания
, разделитель элементов любых списков
. . разделитель границ диапазона
Для дальнейшего изучения конструкций Паскаля рассмотрим этапы обработки программы в компьютере:
1) запись текста программы в компьютер, т.е. формирование входного файла с расширением .PAS
2) трансляция входного файла, т.е. перевод его со входного языка на внутренний язык ПК (язык Ассемблера), в результате чего формируется файл с расширением .OBJ
3) компоновка, т.е. обнаружение наличия подпрограмм и их подключение, в результате чего формируется исполняемый файл с расширением .EXE
4) выполнение программы, причем результаты появляются на экране или записываются в выходной файл в зависимости от операторов в программе.
Рассмотрим подробно конструкции языка Паскаль
1. Комментарии – это строки в программе, предназначенные для облегчения чтения текста программы. Они не нужны для выполнения программы. Комментарии ограничиваются фигурными скобками и могут располагаться в любом месте в тексте программы. Например,
{ начало текста программы }
2. Операторы – это основные части программы, которые должны соответствовать следующим правилам:
- Слова в операторе разделяются пробелами, в выражениях пробелы допускаются в любом месте, причем несколько пробелов эквивалентны одному.
- Каждый оператор заканчивается точкой с запятой.
- Операторы могут располагаться на отдельной строке или несколько операторов – на одной строке. Если оператор не умещается на строке, то его можно перенести на следующую строку в любом месте, где допустим пробел.
- несколько операторов могут объединяться в один при помощи операторных скобок
BEGIN {операторы}
END;
Операторы делятся на:
- выполняемые, которые при трансляции преобразуются в набор команд. Часто только эти конструкции и называют операторами;
- декларации, которые нужны транслятору (программе, выполняющей трансляцию) для правильного распределения памяти и не порождают никаких дополнительных команд.