![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Общие пояснения. 1.Алгоритмы с ветвлениями подразумевают, что в них существует больше одного пути
1.Алгоритмы с ветвлениями подразумевают, что в них существует больше одного пути, по которому можно пройти от начала к концу. Наличие параллельных ветвей алгоритма осложняет тестирование программ, так как требуется задать несколько вариантов исходных данных, чтобы отработали все ветви алгоритма.
Ветвящиеся алгоритмы могут быть построены как из стандартных структур ветвления (А), так и из неполных (В). В данной работе (как и вообще при программировании на языке Паскаль) предпочтительней использовать конструкцию типа (А), так как она отвечает требованиям структурного программирования. 2. Реализация структур ветвления на Паскале осуществляется с помощью условных операторов " if ".
Таблица 6. Запись " if" операторов на Паскале
Примеры написания таких операторов: if A> 0 then Y: =sin(X) else Y: =cos(X); if (A+B > C) and (B < 0) then { если требуется проверка} Writeln('Ветвь 1') { нескольких условий, } else { каждое отношение следует} Writeln('Ветвь 2'); { заключать в скобки } if Pr then {здесь Pr – логическая переменная, } begin {если Pr равно TRUE выполнится этот блок} Writeln(' При таких данных решения нет'); Pr: =FALSE; end;
If X< 0 then Y=-1 else if Y> 0 then Y=1 else Y=0;
Условиями, определяющими какую ветвь алгоритма выполнять, являются логические выражения, принимающие значение TRUE или FALSE. В качестве таких выражений часто используются отношения между двумя однотипными данными. Турбо-Паскаль разрешает сравнивать вещественные и целочисленные данные, строчные и символьные данные. Подробнее см. учебное пособие с описанием языка. Таблица 7. Операции отношений
В качестве операций отношений для упорядоченных типов данных можно использовать шесть видов операций, приведенных в таблице N 7; для неупорядоченных типов разрешены только первые две операции. У всех одинаковый приоритет, причем он ниже, чем приоритеты любых других операций (арифметических и прочих), а результат всегда имеет логическое значение. 3. В программе на Паскале можно пользоваться константами, которые имеют не только значение, но и имя. Такие константы должны быть описаны в блоке описаний, в специальном разделе описаний констант. Использование таких именованных констант позволяет " вытащить" задание значений констант в начало программы, где их можно, при необходимости, изменить в одном месте. Пример раздела описаний констант: CONST MAXBALL = 5; MINBALL = 2; ERR = ' Ошибка в программе'; ABSNUL = -273.16; В дальнейшем можно всюду вместо числового значения -273.16 использовать имя ABSNUL и т.д. Существует ряд констант, которыми можно пользоваться без их описания. Некоторые из них приведены в таблице 8.
Таблица 8. Стандартные константы Турбо-Паскаля
4. В процессе работы программа пользуется данными, которые берет из ячеек памяти. Каким же образом эти значения попадают в эти ячейки? Существует всего три возможности. Во-первых, значения могут быть занесены в некоторые переменные в самый начальный момент при загрузке программы в память. Такие переменные называются типизированными константами (хотя по сути их правильнее называть инициализированными переменными). Во-вторых, переменная (ячейка памяти) может получить значение при выполнении оператора присваивания. Наконец, в переменную можно ввести значение с помощью процедуры ввода данных с внешнего устройства. Только последний способ позволяет одной и той же программе обрабатывать различные наборы исходных данных. Если в программе нет операторов ввода, она при всяком запуске будет выполнять один и тот же расчет. Оператор ввода (а точнее, процедура ввода) может вводить данные в оперативную память или из файла или с клавиатуры. При вводе с клавиатуры процедура имеет вид: Read(< список переменных>); или Readln(< список переменных>); где список переменных представляет собой перечень имен переменных через запятую, в которые заносятся вводимые значения. Очевидно, что список значений и список имен должны соответствовать друг другу по типам и порядку следования элементов списков. Отличие в этих процедурах проявляется только при вводе данных из файла. Оно заключается в том, что при втором варианте после ввода выполняется переход на новую запись файла, даже если в текущей записи данные не кончились. Примеры: Read(N); {программа ждет, пока не будет набрано число на клавиатуре и не нажата клавиша < Enter>, после чего переменная с именем N получит набранное значение} Read(A, B, C); {необходимо набрать через пробел три числа и нажать < Enter>, первое попадет в ячейку с именем A и т.д.} Нельзя в списке имен писать константы или выражения. Если в программе требуется выполнить ввод данных с клавиатуры, предварительно следует предусмотреть команды вывода на экран запроса, какие параметры и в каком порядке пользователь должен вводить, например: Writeln('задай коэффициенты уравнения: A, B, C'); Readln(A, B, C); или Writeln('Сколько вариантов будем считать? '); Readln(N); Разбор контрольного варианта
|