- •Кафедра математики и информатики
- •Практикум
- •Введение
- •1. Арифметические основы построения эвм
- •2. Интегрированная среда Turbo Pascal 7.1
- •2.1. Основные элементы ide Turbo Pascal 7.1
- •2.2. Ввод программы в среде Turbo Pascal
- •2.3.Сохранение программы в файле
- •2.4. Работа с существующей программой
- •2.5. Компиляция программы в среде Turbo Pascal
- •(Успешная компиляция: Нажмите любую клавишу...)
- •2.6. Выполнение программы в среде Turbo Pascal
- •2.7. Выход из среды Turbo Pascal
- •3. Элементы языка Turbo Pascal
- •3.1. Алфавит
- •3.2. Идентификаторы
- •3.3. Разделители
- •3.4. Основные типы данных и операции с ними
- •3.5. Константы и переменные
- •3.6. Выражения
- •3.7. Стандартные математические функции языка Турбо - Паскаль
- •3.8. Структура программы на языке Pascal
- •X,y,z: Real; {переменные типа Real}
- •I,j,k: Integer; {переменные типа Integer}
- •3.9. Контрольные вопросы
- •4. Лабораторная работа №1: Программирование линейных вычислительных процессов
- •4.1. Оператор присваивания
- •4.2. Ввод исходных данных. Операторы Read и ReadLn
- •4.3. Вывод данных. Операторы Write и WriteLn
- •4.4. Примеры составления программы
- •4.5. Контрольные вопросы
- •Раздел Var;
- •4.6. Варианты заданий
- •5. Лабораторная работа №2: Программирование разветвляющихся процессов
- •5.1. Методические указания
- •5.2. Условный оператор If и составной оператор Begin … End
- •5.3. Логические операции
- •5.4. Оператор безусловного перехода Goto
- •5.5. Примеры составления программы
- •5.6. Контрольные вопросы
- •5.7. Варианты заданий
- •6. Лабораторная работа №3: Циклический процесс
- •6.1. Общие сведения
- •6.2. Цикл с параметром
- •6.3. Цикл с предусловием
- •6.4. Цикл с постусловием
- •6.5. Итерационные циклы
- •6.6. Контрольные вопросы
- •6.7. Варианты заданий
- •6.7.2. Циклы со счетчиками Составить программы используя разные циклы (с предусловием, с постусловием, с параметром)
- •6.7.2. Итерационные циклы
- •7. Лабораторная работа №4: Вложенные циклы
- •7.1. Общие сведения
- •7.2. Примеры выполнения задания
- •7.3. Контрольные вопросы
- •7.4. Варианты заданий
- •8. Лабораторная работа №5: Массивы
- •8.1. Одномерные и многомерные массивы
- •В квадратных скобках - индексы массива
- •8.2.Символьные массивы
- •8.3. Инициализация элементов массива
- •8.4. Примеры выполнения задания
- •8.5. Контрольные вопросы
- •8.6. Варианты заданий
- •9. Лабораторная работа №6: Сортировки
- •Приложение 1
- •Приложение 2 Структурограммы
- •Структурное программирование
- •Приложение 3
- •(Основная и дополнительная)
- •Приложение 4 Сообщения об ошибках компиляции
- •(Ошибка 15 : Файл не найден)
- •113. Error in statement (ошибка в операторе)
- •Приложение 5
- •21 Столетие Библиографический список
- •Содержание
6. Лабораторная работа №3: Циклический процесс
Цель работы: изучение правил построения алгоритмов и программ простых циклов с предусловием, с постусловием и с параметром.
6.1. Общие сведения
Процесс называется циклическим, если вычисления в нём многократно повторяются по одним и тем же формулам, при разных значениях входящих в них переменных. Различают циклы со списком (или со счётчиком) и итерационные. Для первой схемы число выполненных циклов заранее известно или подсчитывается с помощью некоторой переменной (счётчика), для которой задаются начальное и конечное значения, а так же шаг, с которым меняется эта переменная при каждом новом повторении цикла. Переменная, меняющая своё значение при выполнении цикла, называется параметром, а сам цикл - циклом с параметром. В итерационном процессе вычислений число повторений цикла заранее неизвестно. Исходя из принципов структурного программирования, циклические алгоритмы могут быть построены по схеме с предусловием, с использованием блока модификации (цикл с параметром) и на основе схемы с постусловием.
В цикле с параметром задаётся переменная, выполняющая роль параметра цикла, её начальное и конечное значения, приращение (шаг изменения значения параметра цикла).
Блок-схема алгоритма цикла с параметром представлена на рис. 6.1.
Рис. 6.1 - Блок-схема алгоритма цикла с параметром
Условные циклы предназначены для организации итерационных вычислительных процессов. Они подразделяются на циклы с предусловием и циклы с постусловием. В цикле с предусловием перед выполнением тела цикла осуществляется проверка значения логического выражения или переменной логического типа, если значение этих величин удовлетворяют условию работы цикла, то выполняется тело цикла, в противном случае, выполняется следующий за циклом оператор. Таким образом, операторы тела цикла с предусловием могут быть не выполнены ни одного раза. На рис. 6.2 (а) представлена блок-схема алгоритма цикла с предусловием.
Цикл с постусловием предназначен для организации циклических алгоритмов, в которых проверка условия работы цикла выполняется после исполнения операторов тела цикла. По этой причине, операторы тела цикла всегда будут выполнены хотя бы один раз. На рис. 6.2 (б) представлена блок-схема алгоритма цикла с постусловием.
Рис. 6.2 - Блок-схема алгоритма цикла с предусловием и с постусловием
6.2. Цикл с параметром
Для реализации цикла с параметром в Pascal используется оператор For. Синтаксис оператора For выглядит следующим образом:
For i:=n To k Do <Оператор>;
где i - параметр цикла;
n - начальное значение параметра цикла;
k - конечное значение параметра цикла;
<Оператор> - оператор, являющийся телом цикла;
For, To, Do - служебные слова.
Переменные, обозначающие начальное, конечное значения параметра цикла и сам параметр должны иметь перечисляемый тип, причём начальное и конечное значение параметра могут быть заданы явно.
Например: For i:=1 To 20 Do <Оператор>;
При выполнении данного цикла, параметр i (целочисленный) будет при каждой итерации (повторении) принимать последовательно значения 1, 2, …,20. Приращение (шаг изменения значения) параметра для такого цикла всегда равен 1. Начальное значение параметра всегда должно быть меньше конечного.
Если же i, n, k символьного типа n и k имеют значения, например, 'A' и 'Z' соответственно, то переменная i принимает последовательные значения в порядке букв алфавита: 'А', 'В', 'С', ... ,'Z'.
Возможна и другая конструкция цикла For.
For i:=n DownTo k Do <Оператор>;
Отличие заключается в том, что приращение параметра для такого цикла всегда равно -1 и начальное значение всегда должно быть больше конечного.
Если оператор, содержащийся в теле оператора For, изменяет значение параметра, то это является ошибкой. После выполнения оператора For значение параметра становится неопределенным, если только выполнение оператора For не было прервано с помощью оператора перехода.
В любом из перечисленных случаев, по синтаксису языка, допускается выполнение в теле цикла одного оператора. При необходимости использовать два и более операторов применяется составной оператор.
Например:
For i:=n DownTo k Do
Begin
<Оператор 1>;
<Оператор 2>;
…
<Оператор N>;
End;
Пример 1. Определение суммы квадратов чисел от 1 до 9.
Program Example_6_1;
Uses Crt; {Подключаем модуль}
Var
Num,Sqnum,Sum:Integer; {Описываем переменные}
Begin {Начало программы}
ClrScr; {Очистка экрана}
Sum:=0; {Начальная сумма равна нулю}
For Num:=1 To 9 Do {Задаем цикл по Num}
Begin {Используем операторные скобки}
Sqnum:=Sqr(Num); {результат от (Num2) в Sqnum}
Sum:=Sum+Sqnum; {Накопление суммы}
End; {Закрываем операторные скобки}
WriteLn ('Сумма = ',Sum); {Выводим результат}
End. {Конец программы}