Вопрос 14.
Базовые конструкции для записи алгоритмов: следование, развилка, цикл.
Алгоритм – это понятное и точное указание исполнителю совершить последовательность действий, направленных на решение поставленной задачи.
Различают следующие базовые конструкции для записи алгоритмов: следование, развилка, цикл.
Линейным называется алгоритм, в котором все этапы решения задачи выполняются строго последовательно, без пропусков и повторений. Такую алгоритмическую структуру иногда называют «следование».
Ветвлением называется такая алгоритмическая структура, в которой выбирается один из возможных путей выполнения алгоритма с непременным выходом на общее положение. Каждый такой путь называют ветвью алгоритма.
При составлении алгоритмов решение некоторых задач возникает необходимость в неоднократном повторении одних и тех же команд (действий). Алгоритм, составленный с использованием многократного повторения одних и тех же действий, называется циклическим. Алгоритмическая структура, реализующая такое повторение, носит название «цикл» или «команда повторения», а повторяющиеся команды принято называть «телом цикла».
Язык программирования.
В 1968–1971 гг. швейцарский ученый Никлаус Вирт в Цюрихском Институте информатики разработал язык программирования Паскаль. Он стремился создать средство, с помощью которого можно было бы эффективно обучать программированию.
Поднять ремесло программирования до уровня если не науки, то сложной инженерной деятельности - вот что входило в замысел создателя Паскаля. Язык должен определенным образом формировать мышление программистов, помогать им почувствовать законы программирования. Не случайно было выбрано и название: в честь выдающегося французского математика Блеза Паскаля (1623–1662), построившего первую вычислительную машину (1642).
Выйдя за чисто учебные рамки, Паскаль стал полноправным и очень популярным – особенно среди студентов и научных работников – алгоритмическим языком высокого уровня. Он в естественной форме отразил важнейшие современные концепции технологии разработки программ: развитая система типов, ориентация на принципы структурного программирования, поддержка процесса пошаговой разработки.
Работа на Паскале связана с большими затратами времени и мыслительных усилий, но это вознаграждается отточенностью и надежностью получаемого программного изделия. Паскаль дает средство для разработки больших и сложных программ с известной гарантией их надежности и безошибочности. Описание языка Паскаль было сделано в 1971 году, а в 1973 году появился первый транслятор с этого языка. Транслятор (переводчик) с языка высокого уровня на язык машины бывает двух видов: интерпретатор и компилятор. При работе на Паскале используется транслятор - компилятор, который переводит на язык машинных кодов набранную программу (исходный модуль) целиком при условии, что в программе нет синтаксических ошибок. Исходный модуль (программа) набирается в текстовом редакторе, встроенном в Турбо Паскаль. Откомпилированная программа называется объектным модулем, который исполняется с определенным набором входных данных. Различают язык Паскаль и интегрированную среду Турбо Паскаль.
Интегрированная среда Паскаль (версии 6.0, 7.0, разработанные фирмой Borland) – это набор ряда системных программ, обеспечивающих все действия, необходимые для прохождения программы на языке Паскаль через ЭВМ. Среда содержит универсальный текстовый редактор, компилятор входного языка, редактор связей и встроенный символьный отладчик. Многооконный интерфейс с развитой системой меню обеспечивает высокую производительность труда программиста.
Освоив Паскаль, относительно легко можно перейти к изучению любого другого языка: Модула, Си, Ада и т.д.
Простейшие типы данных: целый, вещественный, символьный, логический. Их представление в ЭВМ.
Данные – это общее понятие для всего того, с чем оперирует ЭВМ. Под типом данных понимают множество значений, которые может принимать та или иная переменная, и те операции, которые можно к ним применять.
В языке Турбо Паскаль используются следующие типы данных:
– простые типы;
– структурированные типы;
– указатели;
– процедурные типы;
– объекты.
Среди простых типов есть стандартные (предопределенные): целый, вещественный, логический, символьный и нестандартные (определяемые программистом): перечисляемый, диапазонный (ограниченный).
Стандартные простые типы данных.
Целые типы. Имеется пять целых типов, различающихся допустимым диапазоном значений и размером занимаемой оперативной памяти. Характеристики целых типов приведены в таблице.
Целые типы |
||
Размер в байтах |
Название типа |
Диапазон значений |
1 |
byte (байт) |
0...255 |
1 |
shortint (ше(о)тинт) |
-128...127 |
2 |
word (ве(о)д) |
0...65535 |
2 |
integer (интэджэ) |
-32768...32767 |
4 |
longint (лонгинт) |
-2147483648...2147483647 |
Константа целого типа представляется как последовательность цифр, перед которой может стоять знак (+) или (–).
Переменная целого типа имеет своим значением константу целого типа.
Над данными целого типа допустимы операции: + сложение, – вычитание, * умножение, div деление нацело (25 div 6 = 4), mod нахождение остатка от целочисленного деления (19 mod 4 = 3).
Замечание. Результатом операции деления целого числа на целое является вещественное число.
Вещественные типы. Имеется пять стандартных вещественных типов, характеристики которых даны в таблице.
Вещественные типы |
|||
Размер в байтах |
Название типа |
Диапазон десятичного порядка |
Мантисса, значащих цифр |
6 |
real (риал) |
-39...+38 |
11...12 |
4 |
single (сингл) |
-45...+38 |
7...8 |
8 |
double (дабл) |
-324...+308 |
15...16 |
10 |
extended (экстэндид) |
-4951...+4932 |
19...20 |
8 |
comp (комп) |
-263 +1...+263 -1 |
19...20 |
Константы вещественного типа – числа, представленные в форме с фиксированной (0.000525) или с плавающей (0.525Е–3)точкой. Десятичный порядок числа записывается латинской буквой Е.
Переменные вещественного типа имеют своими значениями константы вещественного или целого типа.
Данные вещественных типов и результаты операций над ними представляются в ЭВМ лишь с некоторой конечной точностью, зависящей от формата вещественного числа.
Над данными вещественного типа допустимы операции: +, –, *, /.
Логический тип. Стандартный логический тип Boolean (буулин), размер - 1 байт, представляет собой тип данных, любой элемент которого может принимать лишь два значения: True (труу) и False (фоолс). Значению True (истина) соответствует число 1, записанное в его байт, значению False (ложь) – 0.
Над данными логического типа определены операции: not (отрицание, НЕ), or (сложение, ИЛИ), and (умножение, И), shl (сдвиг влево), shr (сдвиг вправо), xor (исключительное ИЛИ).
Таблица истинности логических операций |
|||||
X |
Y |
NOT X |
X AND Y |
X OR Y |
X XOR Y |
False |
False |
True |
False |
False |
False |
True |
False |
False |
False |
True |
True |
False |
True |
True |
False |
True |
True |
True |
True |
False |
True |
True |
False |
Символьный тип. Стандартный символьный тип Char (кэар), размер – 1 байт, представляет собой тип данных, значением которых может быть только один символ из множества ASCII.
Примеры констант символьного типа: '4', '+', 'R'.
Примеры переменных символьного типа: D='4', T='R'.
Над данными символьного типа определены операции сравнения: <, <=, =, <>, >=, >. Сравниваются величины символьного типа по своим кодам.
Стандартные типы: целые, логический, символьный называются также порядковыми типами, т.к. их значения всегда можно сопоставить с рядом целых чисел.
Стандартные процедуры и функции.
В Турбо Паскале имеется набор встроенных стандартных функций для обработки данных. При обращении к стандартным функциям необходимо записать имя функции и в круглых скобках указать аргумент.
Таблицы стандартных функций
Арифметические функции |
|||
Функция |
Тип параметра |
Тип результата |
Примечания |
abs(x) |
вещ |
вещ |
модуль аргумента |
sqr(x) |
вещ |
вещ |
квадрат аргумента |
sqrt(x) |
вещ |
вещ |
квадратный корень из аргумента, х>0 |
exp(x) |
вещ |
вещ |
экспонента |
ln(x) |
вещ |
вещ |
натуральный логарифм, x>0 |
sin(x) |
вещ |
вещ |
синус, угол в радианах |
cos(x) |
вещ |
вещ |
косинус, угол в радианах |
arctan(x) |
вещ |
вещ |
арктангенс (радианы) |
int(x) |
вещ (целый) |
вещ (целый) |
целая часть числа |
frac(x) |
вещ |
вещ |
дробная часть числа |
pi |
- |
вещ |
Рi=3.141592653... |
![]() |
где a – радианная мера угла, b – градусная;
![]() |
Примеры:
int(13.8) = 13; int(-7.62) = -7;
frac(13.8) = 0.8; frac(-7.62) = -0.62
Функции преобразования |
|||
Функция |
Тип параметра |
Тип результата |
Примечания |
trunc(x) |
вещ |
вещ или целый |
получение целой части числа |
round(x) |
вещ |
вещ или целый |
округление числа до целого |
ord(x) |
порядковый |
целый |
преобразование любого порядкового типа в целый тип |
chr(x) |
целый |
символьный |
преобразует ASCII–код в символ |
pred(x) |
порядковый |
порядковый |
определение предыдущего значения величины х |
succ(x) |
порядковый |
порядковый |
определение последующего значения величины х |
Замечание. При применении функции pred(x) к первому элементу последовательности и функции succ(x) к последнему элементу последовательности возникает ошибка.
Примеры:
trunc(26.7) = 26; round(26.7) = 27; round(7.12) = 7;
trunc(-19.99) = -19; round(-19.99) = -20; round(-7.12) = -7;
ord('5') = 53; ord('A') = 65; ord('?') = 63;
chr(53) = '5'; chr(65) = 'A'; chr(63) = '?';
pred(8) = 7; pred('M') = 'L'; pred(0) = -1;
succ(8) = 9; succ('M') = 'N'; succ(-2) = -1
Логические функции |
|||
Функция |
Тип параметра |
Тип результата |
Примечания |
odd(x) |
целый |
логический |
true, если х – нечетное и false, если х–четное |
eoln(f) |
файловый |
логический |
true, если достигнут конец строки, иначе – false |
eof(f) |
файловый |
логический |
true, если достигнут конец файла, иначе – false |
Примеры:
odd(43) = true; odd(4) = false
2.3. Выражения
Выражение представляет собой формальное правило для вычисления некоторого значения. Оно формируется из констант, переменных, функций, знаков операций и круглых скобок.
Приоритет выполнения операций следующий:
1. Вычисления в круглых скобках.
2. Вычисления значений функций.
3. Унарные операции: унарный +, унарный –, not.
4. Операции типа умножения (мультипликативные):
*, /, div, mod, and, shl, shr.
5. Операции типа сложения (аддитивные):
+, –, or, xor.
6. Операции отношения: <, <=, =, <>, >=, >, in.
Примеры записи выражений на языке Паскаль.
![]() |
б) логические выражения:
(а>3) and (b=a+6) or not (c=4),
(b+7<10) or (b>8) and (a*a+1=b).
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.