- •Алгоритм.Определение.Свойство алгоритма.
- •Технология программирования и основные этапы её развития.
- •Определение программы .Определение программирования
- •Архитектура программного обеспечения. Типы программного обеспечения.
- •Типы программного обеспечения
- •Системное программное обеспечение
- •Прикладное программное обеспечение
- •Интерфейс. Типы пользовательских интерфейсов.
- •Язык программирования высокого уровня. Особенности. Примеры.
- •Структурное программирование. Средства описания структурных алгоритмов.
- •Структура программы на языке pascal.Операторы на языке паскаль.
- •1. Составной и пустой операторы
- •2. Операторы ветвлений
- •3. Операторы повторений
- •Структурированные операторы языка паскаль.Операторы for, while, repeat.Особенности.
- •5.2.1. Составной оператор
- •5.2.2. Условный оператор if
- •5.2.3. Условный оператор case
- •5.2.4. Оператор цикла repeat
- •5.2.5. Оператор цикла while
- •5.2.6. Оператор цикла for
- •5.2.7. Использование стандартных процедур Break и Continue в операторах циклов repeat, while и for
- •Оператор выбора. Блок-схема.Синтаксис на языке паскаль.
- •Составной оператор.Синтаксис на языке паскаль.Особенности применения.
- •Оператор цикла с предусловием.Блок-схема.Синтаксис.
- •Оператор цикла с постусловием.Блок-схема.Синтаксис.
- •Простые типы данных
- •Порядковые типы данных
- •Стандартные подпрограммы, обрабатывающие порядковые типы данных
- •Типы данных, относящиеся к порядковым
- •Перечисляемый тип данных
- •1.До начала работы с файлами в Паскале необходимо установить связь между файловой переменной и именем физического дискового файла:
- •2.После окончания работы с файлами на Паскале, они должны быть закрыты.
- •3.Подготовка к записи в файл Паскаля
- •4.Запись в файл Паскаля
- •5.Подготовка файла к чтению Паскаля
- •6.Чтение из файла в Паскале
- •Interface – зарезервированное слово (интерфейс); начинает интерфейсную часть модуля;
- •Implementation – зарезервированное слово (выполнение); начинает исполняемую часть модуля;
Оператор выбора. Блок-схема.Синтаксис на языке паскаль.
Оператор выбора Паскаля позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит ключ выбора – выражение любого порядкового типа.
Структура оператора выбора в Паскале такова:
Case <ключ_выбора> of <список_выбора> [else <оператор_иначе>] end
Здесь case, of, else, end – зарезервированные слова (случай, из, иначе, конец);
<ключ_выбора> - выражение порядкового типа;
<список_выбора> - одна или более конструкций вида:
<константа_выбора>: <оператор>;
<константа_выбора> - константа того же типа, что и выражение
<ключ_выбора>;
<операторы> - произвольные операторы Паскаля.
Оператор выбора Паскаля работает следующим образом. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последовательности <список_выбора> отыскивается константа, равная вычисленному значению. Выполняется оператор, который следует за найденной константой, после чего оператор выбора завершает работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за словом else. Часть else <оператор_иначе> можно опустить, тогда при отсутствии в списке выбора нужной константы не будет выполнено никаких действий, и оператор выбора просто завершит свою работу.
Например, составим программу, которая по номеру дня недели выводит на экран его название:
Пример программы с использованием Case of
Program dni_nedeli; Var n: byte; Begin Readln(n); Case n of 1: writeln(‘понедельник ’); 2: writeln(‘вторник ’); 3: writeln(‘среда ’); 4: writeln(‘четверг ’); 5: writeln(‘пятница ’); 6: writeln(‘суббота ’); 7: writeln(‘воскресенье’); else writeln(‘дня недели с номером’, n,’нет’); end; end.
Следует помнить, что все константы из списка выбора должны быть различны.
Любому из операторов списка выбора может предшествовать не одна, а несколько констант выбора, разделенных запятыми. Например, следующая программа при вводе одного из символов ‘ y’ или ‘ Y’ выведет на экран «Да», а при вводе ‘ n’ или ‘ N’ – слово «Нет».
Пример программы с использованием Case of с несколькими переменными
Var ch: char; Begin Readln(ch); Case ch of N, n: writeln(‘Да ’); Y, y: writeln(‘Нет ’); End; End.
Очевидно, что рассмотренные выше программы можно записать с помощью вложенных или последовательно расположенных условных операторов, но в подобных задачах использование оператора выбора является более простым. Основное отличие условного оператора от оператора выбора состоит в том, что в условном операторе условия проверяются одно за другим, а в операторе выбора значение ключа выбора непосредственно определяет одну из возможностей.
Составной оператор.Синтаксис на языке паскаль.Особенности применения.
Составной оператор: если при некотором условии надо выполнить определенную последовательность операторов, то их объединяют в один составной оператор. Составной оператор начинается ключевым словом BEGIN и заканчивается словом END. Между этими словами помещаются составляющие операторы, которые выполняются в порядке их следования. После END ставится точка с запятой, а после BEGIN - только пробелы.
Замечение редактора: составной оператор можно использовать не только внутри условного оператора, после BEGIN тоже можно ставить ;, хотя это и не принято, после END ; может и не ставится. Такое происходит, например, в случае наличия ещё одного END сразу после него.
Пример:
BEGIN
I:=2;
K:=I/5;
END;
Слова BEGIN и END играют роль операторных скобок. Тело самой программы также имеет вид составного оператора. После последнего END ставится точка. Нельзя извне составного оператора передавать управление внутрь его.
Примечание редактора: имеется в виду неизучаемый нами оператор GOTO (безусловного перехода).
ОПЕРАТОР ЦИКЛА С ЗАДАННЫМ ЧИСЛОМ ПОВТОРЕНИЯ.БЛОК-СХЕМА.СИНТАКСИС НА ЯЗЫКЕ ПАСКАЛЬ.
На языке Паскаль повторение некоторой последовательности действий известное число раз выполняет оператор for. Подсчет количества выполняемых действий осуществляется при помощи специальной переменной — счетчика. Поэтому цикл for называют иногда циклом со счетчиком. Цикл for на Паскале может быть представлен в двух формах.
Первая форма последовательно наращивает счетчик: for<переменная порядкового типа>:=<начальное значение> to <конечное значение> do <оператор>
Вторая форма последовательно уменьшает счетчик: for<переменная порядковоготипа>:=<начальное значение> downto <конечное значение> do <оператор>
Оператор for с последовательным увеличением счетчика
Пример 6.1. Вывод на экран квадратов чисел от 1 до 10
Program Test1; var N: integer; begin for N:=l to 10 do { Переменная N будет меняться от 1 до 10 с шагом 1 } writeln(sqr(N)); { Эта строка - тело цикла. Оно выполняется 10 раз } readln end.
Поясним пример 6.1. Переменная N является счетчиком цикла. Счетчик цикла всегда должен иметь порядковый тип (то есть он не может иметь тип real). В операторе for указаны его начальное и конечное значения. Начальное значение не обязательно равно 1! При первом выполнении тела цикла N = 1, при втором — N = 2, и т. д. При последнем выполнении тела цикла N = 10. Каждый раз перед выполнением тела цикла текущее значение N сравнивается с конечным. После каждого выполнения тела цикла переменная N увеличивается на 1.
Рис. 6.1. Блок-схема организации цикла в примере 6.1
Как только N превысит конечное значение, выполнение цикла прекращается. Считается, что после окончания цикла переменная цикла не определена (то есть в разных реализациях языка Паскаль она может принимать разные значения). Иными словами, неправильно считать, что после окончания цикла переменная-счетчик цикла имеет какое-то определенное значение. Крайне не рекомендуется внутри цикла самостоятельно менять счетчик цикла, особенно в сторону уменьшения. Это может привести к «зацикливанию» программы (бесконечному повторению тела цикла).
Оператор for с последовательным уменьшением счетчика
Счетчик может изменяться с шагом -1. Это вторая форма оператора for (for... downto ... do).
Пример 6.2. Вывод на экран кубов чисел от 11 до 5
Program Test2; var N: integer; begin for N:=11 downto 5 do { Счетчик N изменяется с шагом -1 } write(N*N*N:5); { Эта строка - тело цикла; оно выполняется 8 раз, так как N изменяется от 11 до 5 с шагом -1 } writeln; { Этот оператор нужен, чтобы закончить вывод чисел в одну строку } readln end.
Применение циклов со счетчиком
Можно организовать выполнение одного цикла внутри другого. В этом случае различают внешний и внутренний циклы — например, когда при каждом значении счетчика внешнего цикла нужно несколько раз выполнить какое-то действие (внутренний цикл). Счетчик внешнего цикла изменяется медленнее, чем счетчик внутреннего.
Цикл в цикле Рассмотрим задачу вывода последовательности пар чисел:
11 12 13 14 21 22 23 24 31 32 33 34
Блок-схема алгоритма решения задачи показана на рис. 6.2.
Рис. 6.2. Блок-схема алгоритма с вложенными циклами, выводящего последовательность из примера 6.2
Пример 6.3. Использование цикла в цикле
Program Test3 var К.М: integer; begin for K:=l to 3 do for M:=l to 4 do writeln(K,' ',M); { Пробел в апострофах между К и М нужен для того, чтобы эти числа не сливались друг с другом } readln end.
Для каждого значения переменной К переменная М меняется от 1 до 4. Нетрудно подсчитать, что в этом случае оператор writeln выполнится 12 раз.