Программирование на языке Паскаль

Министерство образования Российской Федерации

ГОУ Уральский государственный технический университет – УПИ

 

 

Программирование на языке Паскаль

Лабораторный практикум   по курсу «Информатика» для студентов первых курсов машиностроительных специальностей очных форм обучения

Содержание

Оформление лабораторных работ. 5

Лабораторная работа №1. Линейный алгоритм.. 5

Постановка задачи. 5

Математическая модель. 5

Описание алгоритма. 5

Текст программы.. 6

Тест. 6

Лабораторная работа №2. Условный алгоритм.. 6

Постановка задачи. 6

Математическая модель. 6

Описание алгоритма. 7

Текст программы.. 7

Тест. 8

Лабораторная работа №3. Экранные меню и циклы.. 8

Постановка задачи. 8

Математическая модель. 9

Описание алгоритма. 9

Текст программы.. 10

Тест. 12

Лабораторная работа №4. Процедуры и функции. 13

Постановка задачи. 13

Математическая модель. 14

Описание алгоритма. 15

Текст программы.. 17

Тест. 19

Лабораторная работа №5. Работа с файлами и алгоритмы сортировки. 20

Постановка задачи. 20

Математическая модель. 22

Описание алгоритма. 22

Текст программы.. 24

Тест. 28

Лабораторная работа №6. Визуальное программирование. 30

Постановка задачи. 30

Математическая модель. 31

Основная форма программы.. 32

Текст программы.. 33

Библиографический список. 36

 


Оформление лабораторных работ

В математической модели должны быть приведены все используемые при вычислениях в программе математические формулы, а также соответствующие… При выполнении тестов составляется таблица примеров, в которой подбираются…  

Лабораторная работа №1. Линейный алгоритм

Постановка задачи

По двум сторонам вычислить площадь прямоугольника.

 

Математическая модель

 

Описание алгоритма

Алгоритм Lab1.

А. Начать исполнение.

1. Вывести на экран сообщение "Введите стороны прямоугольника".

2. Ввести a, b.

3. Вывести сообщение "Площадь равна", ab;

Б. Закончить исполнение.

 

Текст программы

program Lab1;

{$APPTYPE CONSOLE}

uses SysUtils;

var a,b:Real;

begin

Write('Введите стороны прямоугольника: ');

ReadLn(a,b);

WriteLn('Площадь равна ',a*b);

ReadLn; { Задержка для консольных приложений }

end.

 

Тест

a b Расчетная площадь Результат выполнения программы

 

Лабораторная работа №2. Условный алгоритм

Постановка задачи

Рассчитать площадь треугольника по трем сторонам с проверкой корректности ввода и возможности вычисления (выдать сообщение "Некорректный ввод" при вводе отрицательных или нулевых значений и сообщение "Вычисление невозможно", если сумма двух сторон треугольника меньше или равна третьей).

 

Математическая модель

Площадь треугольника по трем сторонам можно рассчитать по формуле Герона: , где p – полупериметр, .

 

Описание алгоритма

Алгоритм Lab2.

1. Вывести сообщение "Введите стороны треугольника". 2. Ввести a, b, c. 3. Если a≤0, или b≤0, или с≤0,

Текст программы

{$APPTYPE CONSOLE} uses SysUtils; var

Тест

Необходимо выполнить несколько тестов с отрицательными числами, несуществующими треугольниками и треугольниками с известными площадями. Вид таблицы для тестов и несколько примеров треугольников приведены ниже.

 

  a b c Расчетная площадь Результат работы программы
 

 

 

Лабораторная работа №3. Экранные меню и циклы

Постановка задачи

Основная задача.

Организовать экранное меню из трех пунктов (расчет площади прямоугольника, треугольника и круга). По выбранному номеру пункта выполнить расчет площади соответствующей фигуры с проверкой корректности ввода данных и возможности вычислений.

 

Дополнительные задачи.

1. Добавить в меню четвертый пункт – «Выход» – и организовать внешний цикл WHILE для выполнения программы, пока не будет выбран соответствующий пункт меню.

2. Добавить в каждое вычисление площади вопрос «Продолжить вычисление (Y/N) ?» и цикл REPEAT, который должен выполняться, пока не будет введено «N».

 

Математическая модель

, где p – полупериметр, .

 

 

Описание алгоритма

Алгоритм Lab3.

1. Присвоить переменной Loop значение "истина". 2. Пока Loop имеет значение "истина", повторять: А. Вывести на экран меню: "1 – Расчет площади прямоугольника 2 – Расчет площади треугольника 3 – Расчет площади…

Текст программы

{$APPTYPE CONSOLE} uses SysUtils; var

Тест

Для каждого пункта меню необходимо выполнить несколько тестов с отрицательными числами, неправильными треугольниками и т.д. Примеры таблиц тестов приведены ниже.

 

Пункт 1 – «Площадь прямоугольника»

a b Расчетная площадь Результат работы программы
-3 Некорректный ввод

 

Пункт 2 – «Площадь треугольника»

a b c Расчетная площадь Результат работы программы
-1 Некорректный ввод
Вычисление невозможно

 

Пункт 3 – «Площадь круга»

r Расчетная площадь Результат работы программы
-2 Некорректный ввод
314.1592653

 

Лабораторная работа №4. Процедуры и функции

Постановка задачи

Основная задача.

 

Дополнительные задачи.

2. Добавить в меню пункт «Выход» и организовать в основной программе внешний цикл WHILE, как в третьей лабораторной работе. Организовать в процедуре…  

Математическая модель

, что эквивалентно замене площади под кривой набором отдельных прямоугольников,…

Описание алгоритма

А. Начать исполнение. 1. Рассчитать . 2. Записать в результат значение 0.

Текст программы

{$APPTYPE CONSOLE} uses SysUtils; type

Тест

Сначала необходимо отладить программу на функциях, для которых известна первообразная. В таблице тестов привести приближенные и точные значения интегралов, выдаваемых программой. Они должны совпадать с точностью до выбранной погрешности результата. Пример таблицы тестов приведен далее.

 

Функция a b Приближенное значение интеграла Точное значение интеграла
x sinx 0.301168±0.000001 0.3011686789
x sinx 1.741591±0.000001 1.7415910999
x sinx 1.369507±0.000001 1.3695063979
x sinx 3.111098±0.000001 3.1110974979
cos2 x 0.727325±0.000001 0.7273243567
cos2 x 0.810799±0.000001 0.8107993762
cos2 x 0.619347±0.000001 0.6193467493
cos2 x 1.430146±0.000001 1.4301461255
sin x/x 0.659330±0.000001
sin x/x 0.243239±0.000001
sin x/x 0.902570±0.000001
ex2 1.462652±0.000001
ex2 14.989976±0.000001
ex2 16.452628±0.000001

 

Для функций с неизвестными первообразными произвести расчет интеграла для интервалов, приведенных таблице.

 

Лабораторная работа №5. Работа с файлами и алгоритмы сортировки

Постановка задачи

1. Написать функцию Load для считывания из текстового файла (например, Workers.txt) информации о работниках и заработной плате. В первой строке… 2. Написать функцию Calc для вычисления зарплаты каждого работника по…

Дополнительные задачи.

2. Добавить в функции сортировки подсчет и вывод на экран количества сравнений. Выполнить программу для трех различных списков с количеством 5, 10 и…  

Математическая модель

. Для сортировки списка будем применять алгоритм пузырьковой сортировки, который… 1. Повторять:

Описание алгоритма

А. Начать исполнение. 1. Открыть файл для чтения. 2. Считать из файла количество рабочих дней в месяце.

Алгоритм Calc.

1. Присвоить Total значение 0. 2. Для значений i от 1 до n, повторять: А. Рассчитать зарплату для n-го сотрудника по формуле с округление до 2-х десятичных знаков.

Алгоритм SortByName.

1. Присвоить Last значение n. 2. Присвоить Cmp значение 0. 3. Повторять:

Алгоритм Lab5.

1. Загрузить список работников из файла "Workers.dat". 2. Рассчитать зарплату. 3. Выгрузить ведомость в файл "Pay.txt".

Текст программы

{$APPTYPE CONSOLE} uses SysUtils;  

Тест

Исходный файл со списком работников и информацией о заработной плате Workers.txt:   Петров 15 6300 Иванов 24 5600 Сидоров 19 4350 Николаев 15 4800 Малышев 21 4350 Соколов 12 7800

 

Расчет зарплаты и выгрузка файла «Pay.txt»:

+---------------------------+---+----------+----------+

| Фамилия |Дни| Оклад | Зарплата |

+---------------------------+---+----------+----------+

|Петров | 15| 6300.00| 3937.50|

|Иванов | 24| 5600.00| 5600.00|

|Сидоров | 19| 4350.00| 3443.75|

|Николаев | 15| 4800.00| 3000.00|

|Малышев | 21| 4350.00| 3806.25|

|Соколов | 12| 7800.00| 3900.00|

+---------------------------+---+----------+----------+

|Итого | 23687.50|

+------------------------------------------+----------+

Зарплата рассчитана корректно.

 

Сортировка списка по алфавиту и выгрузка файла «ByName.txt»:

+---------------------------+---+----------+----------+

| Фамилия |Дни| Оклад | Зарплата |

+---------------------------+---+----------+----------+

|Иванов | 24| 5600.00| 5600.00|

|Малышев | 21| 4350.00| 3806.25|

|Николаев | 15| 4800.00| 3000.00|

|Петров | 15| 6300.00| 3937.50|

|Сидоров | 19| 4350.00| 3443.75|

|Соколов | 12| 7800.00| 3900.00|

+---------------------------+---+----------+----------+

|Итого | 23687.50|

+------------------------------------------+----------+

Сортировка выполнена корректно.

 

Сортировка списка по зарплате и выгрузка файла «ByPay.txt»:

+---------------------------+---+----------+----------+

| Фамилия |Дни| Оклад | Зарплата |

+---------------------------+---+----------+----------+

|Николаев | 15| 4800.00| 3000.00|

|Сидоров | 19| 4350.00| 3443.75|

|Малышев | 21| 4350.00| 3806.25|

|Соколов | 12| 7800.00| 3900.00|

|Петров | 15| 6300.00| 3937.50|

|Иванов | 24| 5600.00| 5600.00|

+---------------------------+---+----------+----------+

|Итого | 23687.50|

+------------------------------------------+----------+

Сортировка выполнена корректно.

Проверка алгоритма сортировки для списков с различным количеством элементов:

Количество элементов в списке Количество сравнений при сортировке по имени Количество сравнений при сортировке по зарплате Максимальное количество сравнений

По графику зависимости количества произведенных при сортировке сравнений от длины списка виден резкий, похожий на квадратичный, характер возрастания количества сравнений, что как раз является характерным для применяемого в работе алгоритма пузырьковой сортировки, имеющего оценку O(n2).

 

Лабораторная работа №6. Визуальное программирование

Постановка задачи

Также на форме должен присутствовать элемент «Изображение» (класс TImage) для отображения вида фигур. При расчете площади в этом элементе должно…  

Математическая модель

Для отображения на экране необходимо задать координаты основных точек фигур: Координаты углов прямоугольника для процедуры Rectangle …  

Основная форма программы

 

Основные свойства формы

Name = 'MainForm'

Caption = 'Лабораторная работа №6'

 

Элементы формы

Figure: TRadioGroup Caption = ‘Фигура’ Items = ('Прямоугольник', 'Треугольник', 'Круг')

Текст программы

interface uses Windows, Messages, SysUtils, Classes, Graphics,

Библиографический список

2. Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. М.: Мир, 1979. 3. Бондарев В.М., Рублинецкий В.И., Качко Е.Г. Основы программирования.… 4. Ершов А.П. Введение в теоретическое программирование. М.: Наука, 1977.