Основные алгоритмические конструкции
Линейные вычислительные процессы
Линейный алгоритм (линейная структура) – это такой алгоритм, в котором все действия выполняются последовательно друг за другом и только один раз. Схема представляет собой последовательность блоков, которые располагаются сверху вниз в порядке их выполнения. Первичные и промежуточные данные не оказывают влияния на направление процесса вычисления. Алгоритмы разветвляющейся структуры На практике часто встречаются задачи, в которых в зависимости от первоначальных условий или промежуточных результатов необходимо выполнить вычисления по одним или другим формулам. Такие задачи можно описать с помощью алгоритмов разветвляющейся структуры. В таких алгоритмах выбор направления продолжения вычисления осуществляется по итогам проверки заданного условия. Ветвящиеся процессы описываются оператором IF (условие).
Циклические вычислительные процессы
Для решения многих задач характерно многократное повторение отдельных участков вычислений. Для решения таких задач применяются алгоритмы циклической структуры (циклические алгоритмы). Цикл – последовательность команд, которая повторяется до тех пор, пока не будет выполнено заданное условие. Циклическое описание многократно повторяемых процессов значительно снижает трудоемкость написания программ. Существуют две схемы циклических вычислительных процессов. 5 Рис. 3. Особенностью первой схемы является то, что проверка условия выхода из цикла проводится до выполнения тела цикла. В том случае, если условие выхода из цикла выполняется, то тело цикла не выполняется ни разу. Особенностью второй схемы является то, что цикл выполняется хоты бы один раз, так как первая проверка условия выхода из цикла осуществляется после того, как тело цикла выполнено. Существуют циклы с известным числом повторений и итерационные циклы. При итерационном цикле выход из тела цикла, как правило, происходит при достижении заданной точности вычисления.
Типовые алгоритмы обработки данных в массивах
Суммирование двух массивов одинакового размера
Суммирование элементов массива.
Определение числа элементов массива, удовлетворяющих заданному условию.
Суммирование элементов массива, удовлетворяющих заданному условию.
Инвертирование массива.
Формирование массива из элементов другого массива, удовлетворяющих заданному условию
Поиск максимального (минимального) элемента в массиве с запоминанием его положения в массиве.
Поиск заданного элемента в массиве.
2) Строковый тип данных в Паскале
Строки в Паскале – это данные типа string. Они используются для хранения последовательностей символов. В Паскале длина стандартной строки ограничена 255 символами. Под каждый символ отводится по одному байту, в котором хранится код символа. Кроме того, каждая строка содержит еще дополнительный байт, в котором хранится длина строки.
Если заранее известно, что длина строки будет меньше 255 символов, то программист может сам задать максимальную длину строки.
Примеры описания строк:
Type
str_type = string[12];
Const
n = 50;
Var
s1: string;
s2, s3: str_type;
s4: string[n];
s5, s6, s7: string[7];
…
Длина строки хранится в первом ее байте, индекс которого равен 0.
Объявление типизированной константы для типа string осуществляется так:
Const
s: string = 'FreePascal'
…
Существует понятие пустой строки, т.е. строки, которая не имеет элементов. Пустая строка обозначается двумя рядом стоящими апострофами (например, st := '').
Операции над строками
Строки можно присваивать друг другу. Если максимальная длина переменной слева меньше длины присваиваемой строки, то лишние символы справа отбрасываются.
…
s1 := 'this is text';
s2 := s1;
…
Строки можно объединять с помощью операции конкатенации, которая обозначается знаком +.
…
s1 := 'John';
s2 := 'Black';
s1 := s1 + ' ' + s2;
…
Строки можно сравнивать друг с другом с помощью операций отношения. При сравнении строки рассматриваются посимвольно слева направо, при этом сравниваются коды соответствующих пар символов. Строки равны, если они имеют одинаковую длину и посимвольно эквивалентны. В строках разной длины существующий символ всегда больше соответствующего ему отсутствующего символа. Меньшей будет та строка, у которой меньше код первого несовпадающего символа (вне зависимости от максимальных и текущих длин сравниваемых строк).
'abc' > 'ab' (true)
'abc' = 'abc' (true)
'abc' < 'abc ' (false)
Имя строки может использоваться в процедурах ввода-вывода. При вводе в строку считывается из входного потока количество символов, равное длине строки или меньшее, если символ перевода строки (который вводится нажатием клавиши Enter) встретится раньше. При выводе под строку отводится количество позиций, равное ее фактической длине.
…
readln (s1);
write (s1);
…
К отдельному символу строки можно обращаться как к элементу массива символов, например s1[3]. Символ строки совместим с типом char, их можно использовать в выражениях одновременно, например:
…
s1[3] := 'h';
writeln (s2[3] + 'r');
…
Можно осуществлять коррекцию любого символа строковой переменной, для чего в соответствующем операторе достаточно указать имя переменной типа string, вслед за которым в квадратных скобках задается номер ее элемента (например, str[3]:='j').
Элементы строки нумеруются с единицы, т.к. в каждой строковой переменной имеется элемент с номером 0, в котором в виде символа хранится длина текущей строки. Чтобы узнать текущую длину, достаточно применить функцию ord к нулевому элементу строки. Например:
…
writeln(ord(st[0]))
…
Нулевой элемент строковой переменной можно корректировать. При этом будет изменяться текущая длина строки. Например, выражение str[0]:=#50 устанавливает текущую длину равной 50.
Процедуры и функции для работы со строками
При работе со строками, как правило, возникает необходимость выполнять их копирование, вставку, удаление или поиск. Для эффективной реализации этих действий в Паскале предусмотрены стандартные процедуры и функции. Они кратко описаны ниже.
Функция Concat (s1, s2, ..., sn) возвращает строку, являющуюся слиянием строк s1, s2, ..., sn.
Функция Copy (s, start, len) возвращает подстроку длиной len, начинающуюся с позиции start строки s.
Процедура Delete (s, start, len) удаляет из строки s, начиная с позиции start, подстроку длиной len.
Процедура Insert (subs, s, start) вставляет в строку s подстроку subs, начиная с позиции start.
Функция Length (s) возвращает фактическую длину строки s, результат имеет тип byte.
Функция Pos (subs, s) ищет вхождение подстроки subs в строку s и возвращает номер первого символа subs в s или нуль, если subs не содержится в s.
Процедуры преобразования типов
Процедура Str (x, s) преобразует числовое значение x в строку s, при этом для x может быть задан формат, как в процедурах вывода write и writeln. Например:
x := 123;
s := str(x:6,s);
Результат: s = ' 123'.
Процедура Val (s, x, errcode) преобразует строку s в значение числовой переменной x, при этом строка s должна содержать символьное представление числа. В случае успешного преобразования переменная errcode равна нулю. Если же обнаружена ошибка, то errcode будет содержать номер позиции первого ошибочного символа, а значение x не определено.
3) Структура типов данных в языке Паскаль.
Простые типы языка
К простым типам относятся порядковые, вещественный, строковый и адресный (указатели) типы. Все они определяют тип только одного отдельного значения.
Порядковые типы характеризуются тем, что каждый из них имеет конечное число возможных значений, среди которых установлен линейный порядок. С каждым из значений можно сопоставить некоторое целое число - его порядковый номер.
Целочисленные типы - обозначают множества целых чисел в различных диапазонах. Имеется пять целочисленных типов, различающихся диапазоном допустимых значений и размером занимаемой оперативной памяти. Целочисленные типы обозначаются идентификаторами: Byte, ShortInt, Word, Integer, LongInt; их характеристики приведены в следующей таблице.
Тип | Диапазон | Размер в байтах |
Byte ShortInt Word Integer LongInt | 0 ... 255 -128 ... 127 0 ... 65535 -32768 ... 32767 -2147483648 ... 2147483647 | 1 1 2 2 4 |
Значения целых типов записываются в программе привычным способом:
123 4 -3 +345 -699
Наличие десятичной точки в записи целого числа недопустимо. Будет ошибкой записать целое число следующим образом:
123.0
Кроме прывычной десятичной формы записи допускается запись целых чисел в шестнадцатиричном формате, используя префикс $, например:
$01AF $FF $1A $F0A1B
Регистр букв A,B, ..., F значения не имеет.
Допустимые операции:
- присваивание;
- все арифметические: +, - ,*, /, div, mod (при обычном делении [/] результат вещественный!);
- сравнение <, >, >=, <=, <>, =.
Логический тип (Boolean) - состоит всего из двух значений: False (ложно) и True (истинно). Слова False и True определены в языке и являются, по сути, логическими константами. Регистр букв в их написании несущественен: FALSE = false. Значения этого типа являются результатом вычислений условных и логических выражений и участвуют во всевозможных условных операторах языка.
Допустимые операции:
- присваивание;
- сравнение: <, >, >=, <=, <>, =;
- логические операции: NOT, OR, AND, XOR
Символьный тип (Char) - это тип данных, состоящих из одного символа (знака, буквы, кода). Значением типа Char может быть любой символ из набора ASCII. Если символ имеет графическое представление, то в программе он записывается заключенным в одиночные кавычки (апострофы), например:
'ж' 's' '.' '*' ' '-(пробел)
Для представления самого апострофа его изображение удваивается: ''''.
Если же символ не имеет графического представления, например, символ табуляции или символ возрата каретки, то можно воспользоваться эквивалентной формой записи символьного значения, состоящего из префикса # и ASCII-кода символа:
#9#32#13
Допустимые операции:
- присваивание;
- сравнение: <, >, >=, <=, <>, =. Большим считается тот символ, который имеет больший ASCII-номер.
Строковый тип (String, String[n]) - этот тип данных определяет последовательности символов - строки. Параметр n определяет максимальное количество символов в строке. Если он не задан, подразумевается n=255. Значение типа "строка" в программе запиывается как последовательность символов, заключенных в одиночные кавычки (апострофы), например
'Это текстовая строка' 'This is a string'
'1234' -это тоже строка, не число
'' -пустая строка
Допустимые операции:
- присваивание;
- сложение (конкатенация, слияние); например, S := 'Зима'+' '+'пришла!';
- сравнение: <, >, >=, <=, <>, =. Строки считаются равными, если имеют одинаковую длину и посимвольно эквивалентны.
Функции для работы со строками смотри здесь
Вещественные типы - обозначают множества вещественных чисел в различных диапазонах. Имеется пять вещественных типов, различающихся диапазоном допустимых значений и размером занимаемой оперативной памяти. Вещественные типы обозначаются идентификаторами: Real, Single, Double, Extended, Comp; их характеристики приведены в следующей таблице.
Тип | Диапазон | Размер в байтах |
RealSingle Double Extended Comp | 2.9·10-39 ... 1.7·1038 1.5·10-45 ... 3.4·1038 5.0·10-324 ... 1.7·10308 3.4·10-4932 ... 1.1·10-4932 -2·1063 ... +2·1063-1 | 6 4 8 10 8 |
Тип Comp хотя и относится к вещественным типам, на самом деле является целочисленным с очень огромным диапазоном значений.
Значения вещественных типов могут записываться в программе несколькими способами:
1.456 | 0.000134 | -120.0 | |
+345 | -45 | 127E+12 | |
-1.5E-5 | -1.6E+12 | 5E4 | 0.002E-6 |
Будет ошибкой записать вещественное число следующим образом:
.5(правильно 0.5)
12.(правильно 12.0или12)
Вещественное число в форме с плавающей точкой (экспоненциальная форма) записывается как пара
<мантисса> Е <порядок>
Такое обозначение понимается как "мантисса, умноженная на десять в степени, равном порядку". Например,
-1.6E+12сответствует -1.6·1012
Допустимые операции:
- присваивание;
- все арифметические: +, - ,*, / ;
- сравнение: <, >, >=, <=, <>, =. При сравнении вещественных чисел следует помнить, что в следствие неточности их представления в памяти компьютера (в виду неизбежности округления) стоит избегать попыток определения строгого равенства двух вещественных значений. Есть шанс, что равенство окажется ложным, даже если на самом деле это не так.
Диапазон или (ограниченный тип) не является предопределенным типом языка (таким как, например, Integer или Char) и поэтому ему не соответствует никакой идентификатор. Этот тип является вводимм пользователем. Используя его мы можем определить новый тип, который будет содержать значения только из ограниченного поддиапазона некоего базового типа. Базовым типом может быть только целочисленный тип, тип Char (символьный) и любой из введенных программистом перечислимых типов.
Для введения нового типа - диапазона - нужно в блоке описания типов TYPE указать имя вводимого типа и границы диапазона через специальный символ диапазона ".." (две точки подряд):
TYPE
Century = 1..21; { поддиапазон цилочисленного типа }
CapsLetters = 'А'..'Я'; { поддиапазон из типа Char }
Структурированные типы языка
К структурированным типам относятся: массив, запись, множество, файл и др. Все они определяют тип (или типы) некоторой структуры данных.
Массив - упорядоченная структура однотипных данных, хранящая их последовательно. Массив обязательно имеет размеры, определяющие сколько элементов хранится в структуре. До любого элемента в массиве можно добраться по его индексу.
Тип массив определяется конструкцией:
Array [диапазон] of ТипЭлементов;
Диапазон в квадратных скобках указывает значения индексов первого и последнего элемента в стурктуре. Примеры объявления типов и переменных:
TYPE
Vector = array[1..10] of Real;
VAR
V1 : Vector;
V2 : array[0..5] of Byte;
Здесь переменная V1 определяется с использованием описанного выше типа Vector; тип переменной V2 конструируется непостредственно на этапе ее описания.
В качетве типа элементов массива можно также указаывать массив, образуя тем самым многомерные структуры. Например, описание двумерной структуры (матрицы) будет выгдядеть следующим образом:
VAR
M1 : array[1..3] of array[1..3] of Byte;
Это же самое можно записать гораздо компактнее:
VAR
M2 : array[1..3, 1..3] of Byte;
Зжесь массивы M1 и M2 имеют совершенно одинаковую структуру - квадратной матрицы размером 3x3.
Доступ к элемента массива осуществляется путем указания его индекса, например:
Билет №5
1) Понятие алгоритма. Свойства алгоритма. Способы задания алгоритма.
Алгоритм— этопоследовательностькомандуправлениякаким-либо исполнителем.
К основным свойствам алгоритма относятся:
1. Массовость. Предполагается, что алгоритм может быть пригоден для решения
всех задач данного типа. Например, алгоритм для решения системы линейных
алгебраических уравнений должен быть применим к системе, состоящей из
произвольного числа уравнений.
2. Результативность. Это свойство означает, что алгоритм должен приводить к
получению результата за конечное число шагов, т.е. быть обязательно конечным.
3. Определенность. Предписания, входящие в алгоритм, должны быть точными и
понятными исполнителю. Эта характеристика обеспечивает однозначность
результата вычислительного процесса при заданных исходных данных.
4. Дискретность. Это свойство означает, что описываемый алгоритмом процесс и
сам алгоритм могут быть разбиты на отдельные элементарные шаги, возможность
выполнения которых на компьютере интерпретируется однозначно. Иными
словами, алгоритм должен быть максимально формализован.
Для записи алгоритма решения задачи применяются следующие изобразительные
способы их представления:
1. Словесно - формульное описание.
2. Блок-схема(схема графических символов).
3. Алгоритмические языки.
4. Операторные схемы.
5. Псевдокод.
2) Тип данных массив. Описание одномерных и многомерных массивов. Типовые задачи обработки массивов. Пример.
Массив— это упорядоченное множество однотипных переменных (элементов массива), объединенных общим именем и отличающихся номерами (индексами). Массивы сходны с такими понятиями в математике, как векторы и матрицы.
Если в массиве для обращения к элементам используется только один порядковый номер, то такой массив называется линейным, или одномерным. Одномерный массив можно представить в виде таблицы, в которой существует только одна строка.
Количество индексов элементов массива определяет размерность массива.
Массивы с двумя индексами называют двумерными. Такие массивы можно представить в виде таблицы, в которой номер строки соответствует первому индексу, а номер ячейки в строке (номер столбца) - второму индексу.
Все операции, которые приходится выполнять над элементами одномерных массивов, можно разбить на следующие классы:
• последовательная обработка элементов массивов;
• переформирование массивов;
• одновременная обработка нескольких массивов или подмассивов;
• поиск элементов массива по заданным критериям.
Последовательная обработка элементов массивов. Особенностью операций данного класса является то, что количество обрабатываемых элементов массива и шаг изменения индексов известны. Это позволяет для выполнения операции использовать счетный цикл, через переменную которого обеспечивается косвенный доступ к элементам. Если просматриваются все элементы массива, то обращение выполняют, используя переменную цикла в качестве индекса, а если с заданным шагом, то для адресации элементов строится выражение, в которое входит переменная цикла, например 2*i+l.
Пример: Для целочисленного массива А(п), где п<10, разработать программу, определяющую количество отрицательных элементов среди элементов, стоящих в массиве на местах с четными номерами. Элементы массива пронумерованы, начиная с единицы.
1.
2.
3.
Переформирование массива. Переформирование массива предполагает изменение порядка элементов посредством их перемещения, удаления или вставки. При переформировании массива его размер может изменяться, а может оставаться без изменений.
Следует учесть, что вставка или удаление элементов осуществляется за счет сдвига всех элементов той части массива, которая расположена после удаляемого или вставляемого элемента. В зависимости от конкретных условий иногда такой сдвиг может быть совмещен с последовательной обработкой оставшихся элементов. В остальных случаях он должен выполняться в специальном вложенном цикле.
Одновременная обработка нескольких массивов или подмассивов. К этому классу относятся задачи слияния массивов, переписи элементов одного массива, отвечающих определенному условию, в другой, формирования нового массива из элементов исходного в соответствии с заданным законом
преобразования и т. п. Особенностью таких задач является то, что у каждого массива свой индекс, свой закон и диапазон его изменения. При программировании таких действий можно использовать как счетные, так и итерационные циклы, причем выбор зависит от закона изменения индексов. При этом,
если индексы обрабатываемых массивов связаны, то их получают один из другого а если не связаны, то формируют независимо.
Поиск элементов массива по заданным критериям. Примерами подобного рода задач могут служить поиск первого отрицательного, первого положительного и любого первого элемента, отвечающего некоторому условию, а также поиск единственного или определенного количества элементов, равных некоторому конкретному значению. Особенность задач этого класса в том, что нет необходимости просматривать весь массив. Просмотр можно закончить сразу, как только требуемый элемент будет найден. Однако в худшем случае для поиска элемента требуется просмотреть весь массив, причем нужного элемента в нем может не оказаться.
3) Операции над данными. Правила записи арифметических выражений. Правила приведения типов в выражениях с разнотипными операндами.
Операции над данными бывают унарными (применимые к одному операнду) и бинарными (применимые к двум операндам). Унарная арифметическая операция одна. Это операция изменения знака. Ее формат: —<величина>. Бинарные арифметические операции стандартного Паскаля. / - обозначает целые типы, R — вещественные типы.
Для того чтобы правильно записывать арифметические выражения, нужно соблюдать следующие правила:
1. Все символы пишутся в строчку на одном уровне. Проставляются все знаки операций (нельзя пропускать знак умножения).
2. Не допускаются два следующих подряд знака операций (нельзя А+-В; можно А+ (-в)).
3. Операции с более высоким приоритетом выполняются раньше операций с меньшим приоритетом. Порядок убывания приоритетов: • вычисление функции; • унарная операция смены знака (-); • *, /, div, mod; • +, -•
4. Несколько записанных подряд операций одинакового приоритета выполняются последовательно слева направо.
5. Часть выражения, заключенная в скобки, вычисляется в первую очередь. (Например, (А+В) * (С—D) — умножение производится после сложения и вычитания.) Не следует записывать выражений, не имеющих математического смысла. Например, деление на нуль, логарифм отрицательного числа и т. п.
Правила приведения:
• преобразование не выполняется, если оба операнда имеют одинаковый тип;
• при разных типах операндов происходит приведение величины с младшим типом к старшему типу (кроме операции присваивания);
• при выполнении операции присваивания величина, полученная в правой части, преобразуется к типу переменной, стоящей слева от знака =.
Билет №6
1) Алгоритмические структуры: линейные разветвляющиеся.
Линейнойназывается алгоритмическая структура, в которой
отдельные предписания выполняются в определенной последовательности (в порядке записи) независимо от значений исходных данных и промежуточных результатов.
Линейной, например, является последовательность вычисленийпо какой-либо
формуле с помощью карманного калькулятора.
(Алгоритмы разветвленной структуры применяются, когда в зависимости от некоторого условия необходимо выполнить либо одно, либо другое действие.)
Ветвящейся структурой (разветвляющейся)называется алгоритм (фрагмент
алгоритма), в котором в зависимости от исходных данных или промежуточных
результатов вычисления реализуется по одному из нескольких, заранее предусмотренных
(возможных) направлений
последовательная (линейная) структура (рис. 6а);
ветвящаяся структура (рис. 6б);
циклическая структура (рис. 6в).
2) Сравнение операторов цикла между собой.
Таблица 1. Сравнение операторов цикла | |
Цикл с предусловием while (пока условие истинно) | Цикл с постусловием repeat (до истинности условия) |
1. До начала цикла должны быть сделаны начальные установки переменнных, управляющих условием цикла, для корректного входа в цикл. | |
2. В теле цикла должны присутствовать операторы, изменяющие переменые условия так, чтобы цикл через некоторое число итераций завершился. | |
3. Цикл работает пока условие истинно (пока True). | 3. Цикл работает пока условие ложно (пока False). |
4. Цикл завершается, когда условие становится ложным (до False). | 4. Цикл завершается, когда условие становится истинным (до True). |
5. Цикл может не выполниться ни разу, если исходное значение условия при входе в цикл равно False. | 5. Цикл обязательно выполняется как минимум один раз. |
6. Если в теле цикла требуется выполнить более одного оператора, то необходимо использовать составной оператор. | 6. Независимо от количества операторов в теле цикла использование составного оператора не требуется. |
Цикл со счетчиком for (параметрический) | |
1. Начальная установка переменной счетчика циклов до заголовка не требуется. | |
2. Изменение в теле цикла значений переменных, стоящих в заголовке цикла, не допускается. | |
3. Количество итераций цикла неизменно и точно определяется значениями нижней и верхней границ и шага цикла. | |
4. Нормальный ход работы цикла может быть нарушен оператором goto или процедурами Break и Continue. | |
5. Цикл может не выполниться ни разу, если шаг цикла будет изменять значение счетчика от нижней границы в направлении, противоположном верхней границе. |
3) Система программирования Pascal. Характеристика, назначение. Элементы языка Pascal: алфавит, спец. символы, интерпретация комбинаций некоторых символов, правила использования идентификаторов.
Язык программирования Паскаль (назван в честь выдающегося французского математика и философа Блеза Паскаля (1623 — 1662)), разработан в 1968 — 1971 гг. Н.Виртом.
Язык программирования Паскаль отражает фундаментальные и наиболее важные концепции (идеи) алгоритмов в очевидной и легко воспринимаемой форме, что предоставляет программисту средства, помогающие проектировать программы. Язык Паскаль позволяет четко реализоватьидеи структурного программирования и структурной организации данных. Язык Паскаль сыграл большую роль в развитии методов аналитического доказательства правильности программ и позволил реально перейти от методов отладки программ к системам автоматической проверки правильности программ.
Система программирования – это программное обеспечение компьютера, предназначенное для разработки, отладки и исполнения программ, записанных на определённом языке программирования.
Алфавит— набор допустимых символов, которые можно использовать для записи программ. Язык Паскаль оперирует со следующим набором символов:
латинские прописные и строчные буквы (A, B, C, …, x, y, z);
арабские цифры (0, 1, 2, …, 7, 8, 9);
символ подчеркивания;
Спец символы:
a)Знаки арифметических операций +, -, *, /.
b)Знаки логических операций >, <, =, >=, <=, <>.
c)Разделители ; , : . () [ ] { } ’ ^
d)Служебные слова – зарезервированные слова, которым системой программирования предписан определённый смысл (операторы, процедуры).
Символами-разделителями считаются пробелы, комментарии и концы строк.
Идентификаторы- имена объектов и конструкций программы (меток, констант, типов, переменных, типов, процедур, функций, объектов, модулей, программ, полей в записях и т.д.).
При записи программ следует соблюдать общие правила написания идентификаторов:
1. Идентификатор начинается только с буквы или знака подчеркивания (исключение составляют метки, которые могут начинаться и цифрой, и буквой).
2. Идентификатор может состоять из букв, цифр и знака подчеркивания (пробелы, точки и другие специальные символы при написании идентификаторов недопустимы).
3. Между двумя идентификаторами должен быть, по крайней мере, один пробел.
4. Максимальная длина идентификатора 127 символов, но значимы только первые 63 символы.
5. При написании идентификаторов можно использовать как прописные, так и строчные буквы. Компилятор не делает различий между ними, хотя они и имеют различные номера в стандартном коде обмена информацией.
Билет №7
1) Циклическая, алгоритмическая структура.
Алгоритм циклической структуры(циклический алгоритм) – алгоритм, в котором выполняемая последовательность действий повторяется многократно при различных значениях входящих в них величин. Многократно повторяющиеся участки называются циклами.
Для организации цикла необходимо:
1. Задать начальное значение параметра цикла.
2. После выполнения цикла изменить значение параметра цикла.
3. Проверить условие выхода из цикла
2) Структура программы на Pascal. Правила описания констант и переменных. Описание собственных типов данных.
Паскаль-программа состоит из двух частей: описания данных и описания действий. Описание данных содержит сведения обо всех данных, обрабатываемых программой. Если программа содержит отдельные процедуры и функции, то их описание также располагается в этой части. Описание действий включает все операторы, с помощью которых осуществляется обработка данных. Программа, записанная на языке Паскаль, должна иметь заголовок и тело программы. Заголовок программы состоит из зарезервированного слова Program и имени программы. После заголовка программы в некоторых случаях записывается оператор Uses, используемый для подключения к тексту программы стандартных библиотечных модулей, например: Uses Crt, Graph, Strings, Printer;. Оператор Uses может быть использован в программе только один раз.
Тело программы состоит из шести разделов: 1. раздел описания меток (Label); 2. раздел описания констант (Const); 3. раздел описания типов (Type); 4. раздел описания переменных (Var); 5. раздел описания процедур и функций; 6. раздел операторов.
Описание переменных
Любая переменная в программе может быть описана двумя способами: либо описанием самого типа в разделе Var, либо указанием в разделе Var имени типа, которое предварительно описано в разделе Type. Каждая переменная должна быть описана до ее использования в программе и отнесена к одному и только одному типу.
Описание констант
Под константой в языке Паскаль подразумевается число, отделенный символ или строка символов. Числовые константы могут быть целыми и вещественными. Вещественные константы могут быть представлены в двух формах: с фиксированной и плавающей точкой. Символьная константа представляет собой символ, заключенный в апострофы. Константы-строки — это последовательность символов, заключенная в апострофы. Длиной строки называется число элементов в ней. Логические (булевы) константы имеют два значения — True и False.