
- •230701 Прикладная информатика (по отраслям)
- •Содержание
- •Требования к минимуму содержания основной профессиональной образовательной программы по специальности 080802 Прикладная информатика (по отраслям)
- •Рабочая программа
- •Пояснительная записка
- •Тематический план учебной дисциплины
- •Содержание учебной дисциплины
- •Тема 1.4. Составление алгоритмов с помощью блок-схем
- •Тема 1.5. Методы и правила надежного программирования. Способы конструирования программ
- •Раздел IV. Процедуры и функции.
- •Тема 4.1. Подпрограммы
- •Тема 4.2. Параметры и аргументы, связь формальных и фактических параметров
- •Раздел V. Программирование рекурсивных алгоритмов
- •Тема 5.1. Рекурсивные процедуры и функции
- •Тема 5.2. Примеры рекурсивного программирования
- •Раздел VIII. Ввод и вывод информации: текстовые файлы
- •Тема 8.1. Файлы и их виды
- •Тема 8.2. Оперирование текстовыми файлами.
- •Раздел IX. Структурированный тип записи
- •Тема 9.1. Записи и их описание
- •Тема 9.2. Использование таблиц с разнотипными полями. Записи.
- •Раздел X. Модульное программирование
- •Тема 10.1. Методы работы с модулями. Стандартные модули языка Pascal.
- •Тема 10.2. Создание модульных программ
- •Критерии оценок
- •Литература
- •Теоретический курс Основные понятия языка Состав языка
- •Алфавит и лексемы
- •Константы
- •Имена, ключевые слова и знаки операций
- •Типы данных
- •Классификация типов
- •Стандартные типы данных Логические типы
- •Целые типы
- •Вещественные типы
- •Символьный тип
- •Порядковые типы
- •Приведение типов
- •Линейные программы
- •Переменные
- •Выражения
- •Структура программы
- •Оператор присваивания
- •Процедуры ввода-вывода
- •Ввод с клавиатуры
- •Вывод на экран
- •Операторы ветвления
- •Условный оператор if
- •Оператор варианта case
- •Операторы цикла
- •Цикл с предусловием while
- •Цикл с постусловием repeat
- •Цикл с параметром for
- •Рекомендации по использованию циклов
- •Процедуры передачи управления
- •Оператор перехода goto
- •Перечисляемый тип данных
- •Интервальный тип данных
- •Массивы
- •Двумерные массивы
- •Операции
- •Процедуры и функции для работы со строками
- •Множества
- •Операции над множествами
- •Текстовые файлы
- •Бестиповые файлы
- •Компонентные файлы
- •Прямой доступ
- •Совместимость типов
- •Совместимость по присваиванию
- •Подпрограммы
- •Процедуры
- •Функции
- •Глобальные и локальные переменные
- •Виды параметров подпрограмм
- •Параметры-значения
- •Параметры-переменные
- •Параметры-константы
- •Открытые массивы и строки
- •Параметры процедурного типа
- •Рекурсивные подпрограммы
- •Описание модулей
- •Использование модулей
- •Стандартные модули Паскаля
- •Модуль System
- •Модуль Crt
- •Модули Dos и WinDos
- •Модуль Graph
- •Модуль Strings
- •Задания для самостоятельной работы студентов
- •1. Знакомство с интегрированной средой программирования pascal
- •1. Общие положения
- •Начало работы
- •Интерфейс ide
- •Комбинации клавиш
- •2. Подготовка текста программы
- •5. Компиляция
- •5.1. Ошибки времени компиляции
- •6. Пробный запуск программы на выполнение
- •6.1. Ошибки времени выполнения программы
- •7. Запуск программы на исполнение
- •8. Завершение работы
- •9. Практическое задание
- •2. Организация работы программ линейной структуры
- •1. Управление режимами вывода данных на экран дисплея
- •1.1. Управление положением курсора на экране монитора
- •1.2. Стандартный модуль crt. Подключение модулей с помощью Uses. Процедура очистки экрана дисплея ClrScr. Функция ReadKey
- •1.3. Процедуры работы с цветом (TextColor,TextBackground)
- •2. Практическое задание – решение задач линейной структуры
- •3. Решение задач с условием
- •3. Составной оператор
- •Практическое задание – решение задач с условием
- •4. Решение задач на множественный выбор
- •5. Организация циклов с помощью оператора for
- •1.Особенности циклов
- •2. Оператор цикла с параметром (со счетчиком) for ... Do
- •3. Вложенные циклы
- •2.1. Структура вложенных циклов
- •6. Организация циклов с помощью оператора while
- •7. Организация циклов с помощью оператора repeat
- •8. Организация программ с использованием процедур
- •1. Общие положения
- •2. Описание процедуры, оператор процедуры
- •2.1. Формальные и фактические параметры
- •2.2. Параметры-значения и параметры-переменные
- •2.3. Область действия имен
- •2.4. Процедуры без параметров
- •3. Массив в процедуре
- •9. Организация программ с использованием функций
- •10. Организация программ с использованием рекурсий
- •1. Особенности рекурсии
- •11. Решение задач на обработку элементов одномерного массива
- •1. Стандартные операции с массивами
- •12. Решение задач на обработку элементов двумерного массива
- •1. Многомерные массивы
- •2. Ввод-вывод двумерного и многомерного массива
- •3. Стандартные (типовые) задачи на двумерных массивах
- •4. Практическое задание - решение задач с использованием массивов
- •13. Решение задач по обработке символьных данных
- •1. Таблица кодирования символов
- •Б азовая таблица кодировки ascii
- •2. Запись символов, специальные и управляющие символы
- •3. Операции отношения
- •4. Встроенные функции
- •14. Решение задач по обработке строковых данных
- •1. Внутреннее представление строки
- •2. Операции над строками
- •3. Строковые встроенные функции
- •4. Примеры использования процедур и функций
- •5. Практическое задание
- •Методические указания
- •15. Решение задач по обработке множественного типа
- •1. Описание множественного типа
- •2. Присваивание значений переменным множественного типа
- •3. Операции над множествами
- •3.6. Нахождение элемента во множестве
- •3.7. Приоритеты операций при работе с множествами
- •4. Практическое задание
- •16. Решение задач по обработке структурированного типа - запись
- •1. Описание записи
- •2. Обращение к элементу записи
- •3. Оператор присоединения
- •4. Практическое задание
- •Образцы контрольных работ
- •Контрольно-измерительные материалы
3. Вложенные циклы
В циклических вычислительных процессах часто встречаются так называемые вложенные (сложные) циклы, содержащие внутри себя один или несколько других циклов. Таким образом, одни циклы оказываются вложенными, включенными в другие. Циклы, охватывающие другие циклы, называют внешними, а входящие во внешние циклы - вложенными, или внутренними. Важно понимать, что для каждого значения управляющей переменной внешнего цикла выполняется оператор, описывающий внутренний цикл. При этом параметр внутреннего цикла принимает все значения, заданные списком этого цикла.
Наглядный пример - заполнение таблицы умножения с помощью двух вложенных циклов:
for i: =1 to 9 do
for j : = 1 to 9 do
WriteLn (i, ‘x’, j,’=’, i * j);
Для каждого из девяти значений параметра внешнего цикла i (множимого) исполнится внутренний цикл, в котором его параметр j (множитель) меняется от 1 до 9.
Циклы могут быть вложены один в другой. При их использовании программу составляем таким образом, чтобы внутренний цикл полностью укладывался во внешний цикл (матрешка).
2.1. Структура вложенных циклов
Рассмотрим задачу, где применяются вложенные циклы.
Задача 2
Вычислить значение функции Y = 2К + I. При этом I меняется от единицы до трех с шагом, равным единице, а К меняется от трех до девяти с шагом, равным двум.
Program Lab5_2;
Var
I, К, Y: integer;
Begin {1}
For N: = 1 to 3 Do {Внешний цикл по N}
Begin {2}
К: = 3;
While К < = 9 Do
Begin {3} {Внутренний цикл по К}
Y : = 2 * К +1;
WriteLn (1: 4, К : 4, Y : 4);
К : = К + 2;
End;{3}
End; {2}
End. {1}
Пояснения к задаче 2
Согласно условию задачи мы должны сделать вычисления по формуле: Y : = 2 * К +1.
Поскольку в формуле две переменные I и К меняют свои значения, организовано два цикла:
внешний цикл по I (с шагом 1);
внутренний цикл по К (с шагом 2).
6. Организация циклов с помощью оператора while
Этот оператор организует так называемый цикл «ПОКА», или цикл с предусловием, так как проверка проводится перед началом очередной итерации (неизвестно количество повторений цикла):
WHILE < Условие > DO <тело цикла>;
Оператор while позволяет многократно выполнять одни и те же действия в зависимости от некоторого < Условия >, которое записывается между ключевыми словами while и do и должно быть выражением булевского типа, т. е. принимать только значения True или False.
Ц
икл
выполняется, пока < Условие > истинно.
Как только < Условие > нарушается,
выполнение цикла завершается. Блок-
схема цикла while:
Общую структуру оператора цикла с предусловием можно представить одним из двух следующих способов:
1. Если тело цикла состоит из одного оператора, то операторные скобки Begin … End можно не ставить:
while < Условие > do <Оператор>;
2. Если тело цикла состоит из нескольких операторов, то операторные скобки Begin … End необходимо ставить:
while < Условие > do
begin
<Оператор>;
<Оператор>;
…
end;
Задача 1
При вводе осуществить проверку длины вводимой последовательности.
Program Lab6_l;
Var
N: integer;
BEGIN {1}
ReadLn (N);
While N < = 0 Do
Begin {2}
WriteLn ('Введите длину последовательности N =');
ReadLn (N);
End; {2}
WriteLn ('Длина последовательности N =N);
END. {1}
Пояснения к задаче 1
До первого входа в цикл переменной N уже должно быть присвоено начальное значение соответственно условию решаемой задачи.
N - длина последовательности, что влечет за собой необходимость выполнения логического условия N > 0 (длина не может быть отрицательной). До тех пор пока мы будем вводить отрицательное или равное нулю число, цикл будет работать и требовать «Введите длину последовательности N = ».
Так как в цикле имеем два оператора, необходимо ставить операторные скобки Begin…End. В фигурных скобках {2} стоит номер операторных скобок. Напоминаем, что в фигурных скобках ставится комментарий, служащий для пояснения работы программы. Комментарий не вызывает никаких действий в программе, и его можно убрать без последствий для работы программы.
Задача 2
Рассмотрим программу с использованием оператора цикла с предусловием, когда в качестве логического < Условия > стоит выражение 2*А < = 3*N +1.
Program Lab6_2;
Var
N, A: integer;
Begin {1}
A: = 1;
N: = 2;
While 2*A< = 3*N+l Do
Begin {2}
A: = A + 2;
N: = N + 1;
End; {2}
WriteLn ('A = A =, 'B = ',B =);
End. {1}
Пояснения к задаче 2
Пока условие 2*A< = 3*N+1 является истинным (т. е. 2 * А оказывается меньше или равно 3 * N + 1), выполняются операторы циклической части: значение А увеличивается на 2 и результат вновь присваивается переменной А; значение N увеличивается на 1 и результат снова помещается в переменную N. Начальные значения переменных присвоены до начала оператора цикла (N: = 1; А: = 1).
Переменные А и N, а также логическое выражение 2*A< = 3*N+1 в процессе выполнения программы принимают значения, которые мы видим в табл. 7.
Таблица 7
Идентификаторы и выражение |
Проходы цикла |
|||
Первый |
Второй |
Третий |
Четвертый |
|
А |
1 |
3 |
5 |
7 |
N |
1 |
2 |
3 |
4 |
2*A<=3*N+1 |
2 < = 4 |
6 < = 7 |
10 <= 10 |
14<= 13 |
Условие True или False |
True Истинно |
True Истинно |
True Истинно |
False Ложно |
Всего цикл проработает четыре раза. При А = 7 и N = 4 логическое выражение 2*A< = 3*N+1 становится ложным (False) и управление передается за пределы цикла (за End {2}).