- •Министерство образования и науки российской федерации
- •Оглавление предисловие
- •Составление структурных схем алгоритмов и программ
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Пример 4
- •Пример 5
- •Задания
- •Алфавит языка pascal. Типы данных. Раздел описаний. Оператор присваивания. Ввод-вывод. Составление простейших программ
- •Стандартные процедуры
- •Стандартные функции
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Задания
- •Использование переменных логического типа. Логический оператор присваивания
- •Логический оператор присваивания
- •R операция_сравнения s
- •Пример 1
- •Задания
- •4. Программирование разветвляющихся структур
- •4.1. Использование в программах условного оператора
- •Пример 1
- •Задания
- •4.2. Использование в программах оператора варианта
- •Case выражение-селектор of метка_случая : оператор;
- •Пример 1
- •Задания
- •5. Использование переменных типа char
- •Задания
- •6. Реализация циклических структур
- •6.1. Применение оператора цикла с параметром
- •Шаг изменения параметра цикла:
- •Пример 1
- •Задания
- •Пример 2
- •Пример 3
- •Задания
- •Пример 4
- •Задания
- •Таким образом изображаются циклы в структурных схемах (в лабораторных работах, курсовых работах и т.Д.). Пример 5
- •Задания
- •Задания
- •Пример 6
- •Задания
- •Не смотря на то, что есть еще другие операторы цикла, обычно вводят и выводят массивы с помощью оператора цикла с параметром.
- •6.2. Применение оператора цикла с постусловием
- •Пример 1
- •Задания
- •6.3. Применение оператора цикла с предусловием
- •Основные различия между операторами циклов с постусловием и предусловием
- •Пример 1
- •Задания
- •6.4. Работа с двухмерными массивами.
- •Задания
- •Пример 1
- •Задания
- •7. Поиск и сортировка числовых данных
- •Пример 1
- •Задания
- •8. Решение задач с применением подпрограмм
- •Procedure имя(список параметров);
- •Var идентификаторы:имя типа;...; var идентификаторы: имя типа
- •Var идентификаторы:имя типа;...;var идентификаторы: имя типа;...; идентификаторы:имя типа;...;идентификаторы:имя типа
- •Идентификаторы:имя типа;идентификаторы:имя типа; ...;идентификаторы:имя типа
- •Локальные переменные доступны только внутри процедур, в которых они определены!
- •Пример 1
- •Задания
- •9. Использование переменных перечисляемого типа
- •Ввод и вывод значений переменных перечисляемого типа запрещен.
- •Задания
- •10. Использование переменных ограниченного типа
- •Задания
- •11. Использование переменных множественного типа
- •Var идентификатор : set of порядковый тип;
- •Запрещен.
- •Правила приоритета для множественных операций:
- •Задания
- •12. Использование записей
- •With префикс[,префикс [...]] do оператор
- •Пример 1
- •Задания
- •13. Работа со строками
- •Каждая переменная типа string вводится отдельной процедурой readln
- •Пример 1
- •Задания
- •14. Работа с файлами
- •Пример 1
- •Пример 2
- •Пример 3
- •Задания
- •Библиографический список
Пример 1
Запишите оператор присваивания для вычисления величины:
Решение
Z:=Y/(1+Y/(1+Y))
Пример 2
Опишите все переменные, используемые при записи оператора присваивания предыдущей задачи.
Решение
Так как заранее не оговорено, какого типа переменные Y и Z, то посмотрим сами, может ли переменная Y принимать вещественные значения или будет принимать только целые. Да, переменная Y может принимать как целые, так и вещественные значения. Результат вычисления - переменная Z - будет принимать вещественные значения практически всегда, даже когда Y будет принимать целые значения, т.к. при вычислении Z в выражении используется дробь, например, при Y=10 получим дробь:
Очевидно, что результат не будет целым числом, т.е. будет иметь дробную часть числа.
Итак, мы установили, что обе переменные могут принимать вещественные значения. Опишем их:
Var
Y,Z:real;
С точки зрения структурного программирования любую программу надо записывать «лесенкой» и по одному оператору в строке (хотя некоторые языки программирования и позволяют записывать по нескольку операторов в строке, например, тот же PASCAL). При записи «лесенкой» повышается наглядность программы, удобочитаемость, в такой программе легче обнаружить ошибки.
Задания
№1. Опишите все переменные и запишите операторы присваивания для вычисления значения следующих величин (лишние знаки, например скобки, не ставьте):
№2. Опишите все переменные и запишите операторы присваивания для вычисления значения следующих выражений (лишние знаки, например скобки, не ставьте):
Пример 3
Вспомним задачу о вычислении пути по формуле S=V•T. Алгоритм для решения этой задачи мы писали ранее. Теперь составим программу.
Решение
Сначала запишем схему. В схемах арифметические выражения будем записывать по тем же правилам, что и в текстах программ.
Для решения нашей задачи надо знать значенияV и T, при которых мы хотим получить результат. Они нам не известны. А все, что нам не известно, но должно быть известно для решения задачи, мы вводим. Наша программа будет работать для различных исходных данных.
Выведем вместе с результатами и исходные данные: V и T.
Pис. 20
Структурная схема к примеру 3
По схеме напишем программу.
Сначала прокомментируем назначение этой программы. Комментарии заключаются либо в фигурные скобки, либо в качестве ограничителей комментария используют пару символов:
(* - слева от комментария и
*) - справа от него.
Наш комментарий будет иметь вид:
{ Программа вычисления пройденного пути по формуле S=V*T }
Любая программа начинается с описания переменных. Все переменные программы должны быть описаны. В нашей программе будут три переменные: V, T, S. В тексте программы, написанной на языке PASCAL, имена переменных можно записывать как большими, так и маленькими буквами, причем это будут одни и те же переменные, конечно, если большие и маленькие буквы одни и те же. Например, t и T - это одна и та же переменная для данной программы.
Переменные V и T (скорость и время) могут принимать вещественные значения, следовательно, переменная S тоже может принимать вещественные значения. Значит, в нашей программе переменные V, T, S должны быть описаны как вещественные. Опишем их:
Var
S,V,T:real;
Далее идет выполняемая часть программы. Она начинается со слова Begin («начало»). Операторы друг от друга отделяются точкой с запятой «;». Итак, далее в программе будет написано:
{ Выполняемая часть программы }
Begin
Выполняемую часть программы мы будем писать согласно структурной схеме (см. рис. 20).
Блок 1. Ему соответствует процедура ввода:
Read(v,t);
Блок 2. Ему соответствует оператор присваивания:
S:=v*t;
Блок 3. Ему соответствует процедура вывода. Поставим перед этим оператором следующий комментарий:
{ Вывод результатов }
Write(v,t,S)
Это последний выполняемый блок в схеме. Далее идет блок «КОНЕЦ». Ему соответствует конец программы:
End.
В конце программы после слова END всегда ставится точка.
И еще одно правило.
Перед словом END (а их в программе может быть несколько) точку с запятой можно не ставить. Если Вы ее поставите, то напишите лишний пустой оператор. Синтаксической ошибкой это не будет.
Итак, получим следующую программу. Программу запишем «лесенкой» по правилам структурного программирования:
{ Программа вычисления пройденного пути по формуле S=V*T }
Var
S,V,T:real;
{ Выполняемая часть программы }
Begin
Read(v,t);
S:=v*t;
{ Вывод результатов }
Write(v,t,S)
End.
С точки зрения правил структурного программирования описательную и выполняемую части программы надо писать друг под другом (Begin - под словом VAR; End - под словом Begin), а содержимое этих разделов - с новой строки и немного правее указанных слов (также друг под другом), как показано выше.
Комментарии могут стоять в любом месте программы. При необходимости можно комментировать каждый оператор. Комментарии мы пишем для себя.