- •Федеральное агентство по образованию
- •1. Метод проектирования программных средств
- •1.1. Техническое задание
- •1.2. Анализ задачи
- •1.3. Разработка алгоритма
- •1.4. Выбор языка программирования
- •2. Структуры алгоритмов
- •2.1. Алгоритм линейной структуры
- •2.2. Ветвления
- •2.3. Циклы
- •3. Еспд
- •3.1. Схемы алгоритмов, программ, данных и систем
- •1. Правила применения символов
- •2 Правила выполнения соединений
- •3 Специальные условные обозначения
- •3.2. Другие разделы еспд приведены в приложении №1.
- •4. Классификация языков программирования
- •Краткая история языков программирования
- •5. Работа в интегрированной среде Турбо Паскаль 7.0.
- •6. Основы Паскаля
- •6.1. Алфавит и лексемы
- •6.1.1. Имена, ключевые слова и знаки операций
- •6.1.2. Константы
- •6.1.3. Метки
- •6.1.4. Комментарии
- •6.1.5. Директивы компилятору
- •6.2. Структура программной единицы
- •6.3. Стиль записи программ на языке Паскаль
- •7. Типы данных в Паскале
- •7.1. Классификация типов данных в Турбо Паскале
- •7.2. Порядковые типы
- •7.2.1. Логический (булевский) тип
- •7.2.2. Целые типы
- •7.2.3. Перечисляемый тип
- •7.2.4. Тип – диапазон
- •7.2.5. Символьный тип
- •7.3. Вещественные типы
- •7.4. Строки
- •7.4.1. Основные понятия
- •7.4.2. Операции над строками
- •7.4.3. Процедуры и функции для работы со строками
- •8. Совместимость и преобразование типов
- •8.1. Совместимость типов
- •8.2. Преобразование (приведение) типов и значений
- •8.2.1. Явное преобразование типов и значений
- •8.2.2. Неявное преобразование типов
- •9. Выражения в языке Паскаль
- •10. Оператор присваивания
- •11. Простейший ввод-вывод на Паскале
- •11.1. Стандартные файлы Input и Output
- •11.2. Ввод с клавиатуры
- •11.3. Вывод на экран
- •12. Средства языка тр для циклов с известным числом повторений
- •12.1. Табулирование функций
- •13. Разветвляющиеся алгоритмы
- •13.1. Команда выбора case
- •13.2. Команда ветвления
- •14. Циклы с неизвестным числом повторений
- •14.1. Цикл с предусловием (While)
- •14.2. Цикл с постусловием (Repeat … until)
- •Приложение 1. «Стандарты еспд»
- •Руководство системного программиста гост 19503-79*
- •Общие положения
- •Содержание разделов
- •Руководство оператора гост 19.505 – 79* Общие положения
- •Содержание разделов
- •Описание программы гост 19.402-78
- •Программа и методика испытаний еспд. Гост 19.301-79
- •Общие положения
- •Содержание разделов
- •59 Лекции по курсу «Языки программирования» Часть I.
12.1. Табулирование функций
Табулирование функций - построение таблиц функций.
Наиболее наглядным примером циклического вычислительного процесса является задача табулирования функции: вычисления значений функции у =f(x) для значений аргумента х, изменяющихся от начального значения x0 до конечного хn с постоянным шагом hx (рис. 12.1).

а б
Рис. 12.1. Общая схема алглритма табулирования функции
Здесь многократно повторяемые действия (тело цикла) - это вычисление значения функции f(x) для очередного значения аргумента х и вывод полученного результата на печать; переменная цикла - переменная х. Цикл выполняется для значений х, равных х0, х0 + hx ,
х0 + 2hx , х0 + 3hx , …, хn , Алгоритмы табулирования функции с пред- и постусловием дают, вообще говоря, одинаковый результат. Но тело цикла с предусловием в определенной ситуации может не выполниться ни разу, а тело цикла с постусловием обязательно выполняется хотя бы один раз.
Помимо циклов с пред- и постусловием принято различать циклы с заранее неизвестным и заданным числом повторений. При табулировании функции по алгоритму с заранее известным числом повторений, число повторений цикла Nx определяется как
Nx = [(xn – x0) / hx] +1,
где скобки [ ] означают целую часть числа.
В циклах с известным числом повторений всегда можно определить переменную, связанную с числом повторений цикла, значение которой изменяется по заданному закону: от начального до конечного с постоянным шагом. Такая переменная используется для управления циклом: в условии окончания цикла осуществляется сравнение текущего значения переменной с заданным порогом. Эту переменную именуют параметром цикла, а сам цикл - циклом с параметром.
13. Разветвляющиеся алгоритмы
13.1. Команда выбора case
Форма команды выбора, которая на псевдокоде имеет следующий вид:
селектор

В
ыбрать
из
имя по
набор1: действие 1;
набор2: действие 2;
... ...
Константа
константа1,
константа2, константа3, ….
диапазон
наборn:
действие n;
В
се
Синтаксис
|
Case селектор of набор 1 : оператор1; набор 2 : оператор1; … … … набор N : операторN; end; {case} |
Переменная "селектор" может быть любого порядкового типа. Особенность данного вида команды выбора состоит в том, что одна ситуация от другой отличается по набору значений этой переменной. Существуют следующие случаи задания таких наборов:
1-й случай: когда указывается просто одна константа
2-й случай: когда указывается несколько констант, разделенных запятыми
3-й случай: может указываться диапазон констант
4-й случай: комбинация первых трех случаев.
ПРИМЕР: стоит задача для введенного символа вывести на экран информацию о том, какой это символ: буква (большая или маленькая) или цифра?
Var
C : char;
Begin
Read(c);
Case с of
'A' ..'Z' : writeln(‘Прописная буква’);
'a' ..'z' : writeln(‘' Строчная буква'’);
'0' ..'9' : writeln(‘' Цифра '’);
end; {case}
end.
Замечание1: Переменная селектор на Паскале может быть любого порядкового типа, кроме longint.
Замечание2: После каждого двоеточия вы можете написать действие только из одного оператора. В случае необходимости несколько операторов нужно заключать в операторные скобки (begin-end).
Более полная форма команды выбора на псевдокоде и соответствующий оператор на Паскале имеют следующий вид:
выбрать
при ситуация 1: действие 1;
...
при ситуация n-1: действие n-1;
иначе действие n;
все
выбрать из имя по
набор 1: действие 1;
...
набор n-1: действие n-1;
иначе действие n;
все
Синтаксис
|
Case селектор of набор 1 : оператор1; набор 2 : оператор1; … … … набор (N-1) : оператор(N-1) else операторN end; {case} |
Синтаксические диаграммы:


Пример 1: стоит задача для введенного символа вывести на экран информацию о том, какой это символ: буква (большая или маленькая) или цифра?
Var
C : char;
Begin
Read(c);
Case с of
'A' ..'Z' : writeln(‘Прописная буква’);
'a' ..'z' : writeln(‘' Строчная буква'’);
'0' ..'9' : writeln(' Цифра ')
else writeln(' Другой символ’)
end; {case}
end.
