- •Содержание
- •Раздел 2.Программирование на процедурном языке turbo pascal 3
- •Раздел 2.Программирование на процедурном языке turbo pascal Лабораторная работа №1. Знакомство с интегрированной средой Turbo Pascal 7.0. Разработка первой программы.
- •Лабораторная работа № 2. Разработка программ, реализующих линейный процесс в среде Turbo Pascal 7.0.
- •Лабораторная работа № 3. Разработка программы, включающей различные форматы ввода/вывода данных средствами языка Pascal.
- •Лабораторная работа № 4. Вычисление алгебраических выражений с использованием стандартных процедур и функций языка Pascal.
- •Лабораторная работа № 5. Разработка программы для решения текстовой задачи в среде Turbo Pascal 7.0.
- •Лабораторная работа № 6. Вычисление заданного выражения при произвольных значениях переменных с использованием нескольких окон на одном экране. Работа с цветом в текстовом режиме.
- •Лабораторная работа № 7. Использование языка программирования для разработки программ вычисления математических выражений с использованием оператора if.
- •If выражение then оператор1
- •Лабораторная работа № 8. Разработка программы для решения текстовых задач, содержащих ветвление
- •Лабораторная работа № 9. Использование языка программирования для реализации разветвляющихся алгоритмов с использованием выражения – селектора в среде Turbo Pascal 7.0.
- •Лабораторная работа № 10. Разработка программ для реализации простых циклических алгоритмов средствами языка Pascal.
- •Лабораторная работа № 11. Разработка программ, включающих алгоритмы работы с числом
- •Лабораторная работа № 12. Реализация задачи табулирования функции на заданном отрезке в среде Turbo Pascal.
- •Лабораторная работа № 13. Вычисление суммы бесконечного ряда с заданной степенью точности в среде Turbo Pascal.
- •Лабораторная работа № 14. Разработка программ, включающих циклический процесс средствами языка Turbo Pascal.
- •Лабораторная работа № 15. Разработка программы реализации текстовой задачи, содержащей условия и циклы.
- •Лабораторная работа № 16. Разработка программы реализации задачи, содержащей одномерный массив данных.
- •Лабораторная работа № 17. Разработка программы реализации задачи, содержащей двумерный массив данных.
- •Лабораторная работа № 18. Методы сортировки массива в среде Turbo Pascal
- •Лабораторная работа № 19. Разработка программы работы со строками в среде Turbo Pascal
Лабораторная работа № 2. Разработка программ, реализующих линейный процесс в среде Turbo Pascal 7.0.
Цель работы:
научиться составлять программы простых линейных алгоритмов
отладка программы и контрольный просчет.
Оборудование:
аппаратная часть – персональный компьютер типа IBM PC/XT
программная часть – интегрированная среда разработки Turbo Pascal 7.0
задание на выполнение работы в электронном варианте
Теоретическая часть
Линейный алгоритм – это алгоритм, в котором блоки выполняются последовательно сверху вниз от начала до конца.
На рисунке приведен пример блок-схемы алгоритма вычисления периметра Р и площади S квадрата со стороной длины A.
Блок-схема линейного алгоритма
Блок-схема алгоритма состоит из шести блоков. Выполнение алгоритма начинается с блока 1 "Начало". Этот блок символизирует включение автомата, настройку его на выполнение алгоритма и выделение памяти под все переменные, которые задействованы в алгоритме. В алгоритме рис. 3 таких переменных три: A, Р, S. Следовательно, под каждую из них алгоритмом будет выделено по одной ячейке памяти. На этом блок 1 будет отработан.
Как видно из рисунка, блок 1 связан вертикальной линией потока с блоком 2. Эта линия не имеет стрелки, указывавшей направление потока. Следовательно, этот поток направлен вниз. Таким образом, после выполнения блока 1 управление будет передано на блок 2. Блок 2 "Перфокарта" ( см. табл. 1) показывает, что переменной A следует присвоить значение. Это означает, что в ячейку, отведенную автоматом под эту переменную, нужно поместить константу. На реальной компьютере эта константа может быть введена самыми разными способами. Способ зависит от того, как запрограммирован данный фрагмент. Можно, например, потребовать ввод константы с клавиатура или получить его из заранее подготовленного файла. Возможно эта константа будет получена через внешние источники данных, например, от физической установки, подключенной к компьютеру.
Для данного примера способ передачи константы не имеет значения, важно лишь то, что при выполнении блока 2 в ячейку с адресом А будет занесена конкретная константа. Пусть такой константой является число 5.
Далее управление по линии потока передается к блоку 3 "Процесс". В этом блоке при выполнении размещенной в ней команды число 4 умножается на константу, помещенную в ячейку А (т. е. 5), и результат (т. е. 20) присваивается переменной Р (т. е. константа 20 записывается в ячейку по адресу Р). После выполнения этих операций управление передается к блоку 4.
В блоке 4 аналогичным образом производится умножение значений переменной А и результат (константа 25) присваивается переменной S (в ячейку по адресу S будет занесена константа 25). После этого выполняется переход к блоку 5.
При выполнении команд блока 5 выводятся (например, на экран, бумагу, во внешний файл и т. д.) значения переменных А, Р, S, которые сохранились в соответствующих ячейках к этому моменту. Понятно, что для конкретного примера А = 5 будут выведена константы 5, 20, 25, т. е. длина сторона квадрата, его периметр и площадь. Далее управление передается последнему блоку 6.
В блоке б “Конец” производится освобождение ячеек памяти, которые были зарезервированы под переменные А, P, S, и алгоритм заканчивает работу.
Понятно, что при новом запуске этого же алгоритма можно получить совсем другие числа. Так, если в блоке 2 переменной А присвоить значение 20, то алгоритм выдаст в блоке 5 константы 20, 80, 400.
Детальное описание алгоритма, приведенного на рисунке дано для того, чтобы показать, в какой последовательности автомат выполняет предписанные операции и как при этом меняется состояние памяти автомата, т. е. для того, чтобы объяснить суть происходящих в автомате процессов. Из сказанного нужно уяснить, что автомат выполняет предписанную ему работу шаг за шагом. Всякий шаг обрабатывается процессором. Помимо вычислений процессор при необходимости отдает команды считывавшей/записывавшей головке, что и куда записывать, откуда читать. Конечный результат следует искать в ячейках памяти, каждая из которых до окончания алгоритма имеет известный адрес и хранит записанную в нее константу.
При выполнении контрольной или курсовой работы нет нужды давать столь подробное описание алгоритма. Тем не менее, описание должно быть выполнено с той степенью полноты, которая позволяет дать ясное представление о всех сторонах и особенностях алгоритмического процесса.
Линейный алгоритм является аналогом обычного последовательного решения какой-либо задачи, когда все действия записываются поочередно.
В программировании реализация линейного алгоритма является наиболее простой конструкцией, так как подразумевает выполнение всего трех этапов:
1. ввод данных;
2. вычисления с помощью операторов присваивания;
3. вывод данных.
Оператор присваивания - один из самых простых и наиболее часто используемых операторов в любом языке программирования. Он предназначен для вычисления нового значения некоторой переменной, а также для определения значения, возвращаемого функцией. В общем виде оператор присваивания можно записать так:
переменная := выражение
При записи алгебраических выражений используют арифметические операции (сложение, умножение, вычитание, деление), функции, круглые скобки.
Порядок действий (приоритет) при вычислении значения выражения:
1)вычисляются значения в скобках;
2) вычисляются значения функций;
3)выполняются унарные операции (смена знака и возведение в степень);
4)выполняются операции умножения и деления;
5)выполняются операции сложения и вычитания.
Написание программы предполагает создание диалога с пользователем и вывода результата на экран. Правилом хорошего тона в программировании, как уже было замечено выше, считается использование подсказок при вводе значений («Введите число»), расшифровка результата («Сумма чисел равна») и поясняющих сообщений при работе программы («Корней нет и не будет!»). Кроме того при выводе результата мы использовали так называемый формат (шаблон) вывода. Первое число резервирует общее число знаков в выводимом числе, второе — количество знаков после десятичной точки. Это необходимо для того, чтобы вместо малопонятной записи 1.34576848Е+01 (что, кстати, означает 1.34576848*101) на экране отобразилось вполне понятное нам число 13.46.
Практическая часть
Пример:
Составить
программу для решения заданного выражения
program EX1; {заголовок программы}
var {раздел объявления переменных}
x,y:real;
begin {тело программы}
Write (‘введите число X‘);
Readln (x);
y:=(x + sin(x))/(x – cos(sqr(x)));
Writeln (‘y = ‘,y);
end.
Задания для самостоятельного выполнения
Изучить теоретические сведения по теме «Разработка программ, реализующих линейный процесс в среде Turbo Pascal 7.0.».
Составить блок-схему решения задачи по своему варианту.
Разработать программу в среде Turbo Pascal 7.0.
Подготовить тестовые задания и произвести отладку программы.
Ответить на контрольные вопросы.
Результаты выполнения практической работы оформить в виде отчета.
Индивидуальные задания:
Вариант 1
1) 2)
Вариант 2
1) 2)
Вариант 3
1) 2)
Вариант 4
1) 2)
Вариант 5
1) 2)
Вариант 6
1) 2)
Вариант 7
1) 2)
Вариант 8
1) 2)
Вариант 9
1
) 2)
В
ариант
10
1) 2)
Вариант 11
1) 2)
Вариант 12
1) 2)
Вариант 13
1) 2)
Вариант 14
1) 2)
В
ариант
15
1) 2)
Вариант 16
1) 2)
Вариант 17
1) 2)
Вариант 18
1) 2)
Вариант 19
1) 2)
Вариант 20
1) 2)
Вариант 21
1) 2)
Вариант 22
1) 2)
Вариант 23
1) 2)
Вариант 24
1) 2)
Вариант 25
1) 2)
Вариант 26
1) 2)
Вариант 27
1) 2)
Вариант 28
1) 2)
Вариант 29
1) 2)
Вариант 30
1) 2)
Контрольные вопросы
Из каких частей состоит программа, записанная на языке программирования Turbo Pascal??
Какую роль играет заголовок и обязательно ли его присутствие в программе?
Из каких разделов состоит раздел описания данных?
Почему, прежде чем использовать переменные в программе требуется их описать?
Что такое раздел операторов и каким образом он внедряется в в программу?
В чем состоит принцип выполнения линейного алгоритма?
Определите значение переменной после выполнения алгоритма:
a:=5;
b:=7;
a:=a+b;
b:=b-8;
a:=-b;
b:=a*b;
Вычислите значение выражения:
(25 mod 10) div 4 = ?
(125 div 4) mod 8 = ?
sqrt(abs(3-7)) = ?
Что указывается слева от знака равенства в команде присваивания?
Приоритет выполнения арифметических операций в Паскаль следующий….
Составьте фрагмент программы, позволяющий объявить константы k и с. (k = 1.38*10-23; c = 3*10-8).
Составьте фрагмент программы, позволяющий объявить переменные а,b,c и d. Все переменные отнести к целому типу (Real)
