- •Московский государственный технический университет
- •Содержание.
- •Предисловие
- •Лабораторная работа №1 Процедурные типы
- •1. Теоретические сведения
- •Var X: real; I: integer;
- •X, y : byte;
- •VarFunc : FuncType;
- •I : integer;
- •2.Задачи для самостоятельного решения
- •Лабораторная работа №2 Модули
- •Теоретическая часть
- •Структура модулей
- •Связь модулей друг с другом
- •ISwap(a,b);
- •Var I, y :integer;
- •2.2. Практическая часть
- •Interface
- •Implementation
- •I: Integer;
- •3. Задачи, для самостоятельного решения
- •Лабораторная работа №3 Меню
- •1. Теоретическая часть
- •Var X,y,I: byte;
- •XUpLeft;
- •Var npos,I: integer;
- •Case npos of
- •Лабораторная работа №4.
- •2.Задачи, для самостоятельного решения:
- •Лабораторная работа № 5 Указатели. Связанные списки
- •1. Теоретические сведения
- •1.1. Указатели
- •1.2. Связные списки записей
- •1.3. Управление связанным списком записей (на примере)
- •1.3.1. Построение списка
- •Var ListOfChecks, CurrentCheck: pCheck;
- •1.3.2. Перемещение по списку
- •Var p: Pint;
- •2. Демонстрационные примеры
- •X1,y1,x2,y2: word;
- •Var npos,I,n,j :integer;
- •3: Begin
- •Interface
- •Задачи 1..4. Создать типизированный файл записей, содержащих сведения о багаже пассажира. Структура записи имеет следующий вид:
- •Var rec, beg, endd, current: pnt;
- •Задача 5. Создать типизированный файл записей, содержащих сведения об автомобиле. Структура записи имеет следующий вид:
- •Var rec, beg, endd, current : pnt;
- •Задача 22. Создать типизированный файл записей, содержащих сведения о книгах. Структура записи имеет следующий вид:
- •1.2.Объект и инкапсуляция
- •1.3. Иерархия объектов и наследование
- •Visible: Boolean;
- •Init(x1,y1);
- •Interface
- •Interface
- •X,y : Integer;
- •Visible : Boolean;
- •Implementation
- •Var Temp : Word;
- •Var Temp : Word;
- •Var gm,gd:Integer;
- •Xp:Point;
- •Xs:Square;
- •Xps:PaintSquare;
- •InitGraph(Gd,Gm,'');
- •2. Демонстрационные примеры
- •X,y:integer;
- •Inherited init(ax,ay);
- •Задача 12. Простые объекты.
- •Задача 14. Простые объекты.
- •Задача 15. Простые объекты.
- •Задача 20. Простые объекты.
- •Задача 21. Простые объекты.
- •Задача 22. Простые объекты.
- •Задача 23. Простые объекты.
- •Задача 25. Простые объекты.
- •Лабораторная работа №8 Статические объекты
- •Теоретическая часть
- •1.1.Вывод точек и линий
- •1.2.Вывод многоугольников
- •Виды закраски определяется константами.
- •1.3.Вывод дуг, окружностей, эллипсов
- •1.4.Вывод текста
- •Демонстрационные примеры
- •Лабораторная работа №9
- •2. Задачи, для самостоятельного решения
- •Лабораторная работа №10
- •1.2. Перенос изображения
- •1.3. Масштабирование изображения
- •1.4. Масштабирование рисунка
- •1.5. Поворот изображения
- •1.5.1.Поворот точки
- •1.5.2. Поворот рисунка
- •1.6. Композиция преобразований
- •2. Демонстрационные примеры
- •X,y:integer;
- •1: CloseGraph;
- •3.Задачи, для самостоятельного решения
- •Лабораторная работа №12 Рубежный контроль №2
- •Задачи, для самостоятельного решения
Задача 5. Создать типизированный файл записей, содержащих сведения об автомобиле. Структура записи имеет следующий вид:
Type PNT=^A;
Auto = record автомобиль
Fio: String [20]; Ф.И.О. владельца
Marka: String[10]; марка
Number: String[14]; номер автомобиля
next: PNT;
end;
var rec, beg, endd, current: PNT;
Создать однонаправленный список записей.
Найти количество автомобилей каждой марки. Исходный файл и результаты распечатать.
Задача 6. Создать типизированный файл записей, содержащих сведения о книгах. Структура записи имеет следующий вид:
type PNT=^B;
Book = record книга
Fio: String[20]; Ф.И.О. автора
Name: String [60]; название
year: Integer год издания
next: PNT;
end;
var rec, beg, endd, current: PNT;
Создать однонаправленный список записей.
Найти авторов, издавших более одной книги, начиная с 1980 года. Исходный файл и результаты распечатать.
Задачи 7..8. Создать типизированный файл записей, содержащих сведения об учениках. Структура записи имеет следующий вид:
type PNT=^S;
LerBook = record ученик
Fam: String [20]; фамилия ученика
Year: 1..10; год обучения
Ch: Char; буква (от А до К)
next: PNT;
end;
var rec, beg, endd, current: PNT;
Создать однонаправленный список записей.
7. Выяснить, имеются ли однофамильцы в каких-либо параллельных классах. Исходный файл и результаты распечатать.
8. Выяснить, имеются ли однофамильцы в каком-нибудь классе. Исходный файл и результаты распечатать.
Задача 9.Создать типизированный файл записей, содержащих сведения об учениках. Структура записи имеет следующий вид:
type PNT=^S;
LerBook = record ученик
Fam: String [20]; фамилия ученика
Year: 1..10; год обучения
Ch: Char; буква (от А до К)
Ozenka: array[1..5] of integer; отметки, полученные учеником в последней четверти
next: PNT
end;
var rec, beg, endd, current: PNT;
Создать однонаправленный список записей.
Собрать в новом файле сведения о лучших учениках школы, т.е. об учениках, не имеющих отметок ниже четырех и по сумме баллов не уступающих другим ученикам своего и параллельных классов. Исходный и результирующий файлы распечатать.
Задача 10. Создать типизированный файл записей, содержащих сведения об экспортируемых товарах. Структура записи имеет следующий вид:
type PNT=^T;
Tovar = record товар
Name: String[20]; наименование товара
Land: String [10]; страна, импортирующая товар
Ob: Integer; объем поставляемой партии в штуках
next: PNT;
end;
var rec, beg, endd, current: PNT;
Создать однонаправленный список записей.
Составить список стран-экспортеров товаров с указанием числа наименований товаров для каждой страны. Исходный файл и результаты распечатать.
Лабораторная работа №6
Рубежный контроль №1
Цель работы – оценить уровень овладение практическими приемами разработки программ с помощью собственных модулей, пользовательских одно и многоуровневых меню и программ с динамическими переменными.
1. Задачи, для самостоятельного решения
Задача 1. Cоставить подпрограмму-функцию TRAP для вычисления определенного интеграла по формуле трапеций.
В основной программе использовать процедуру TRAP для вычисления интегралов:
∫ (х2 + cos(x)) dx и ∫ (tg(x+1))/(x+1) dx
от –1 до 4 от 0 до 2
Задача 2.Составить подпрограмму-процедуру NEIBR отыскивания ближайшей из 10 точек, заданных массивом их декартовых координат, кривой F(x) при одной координате x.
В основной программе использовать процедуру NEIBR для функций cos(x) и sin(x).
Задача 3. Составить подпрограмму - процедуру RT для отыскания наименьшего положительного корня уравнения F(x)=0 c точностью =0.00001 методом итераций.
В основном программе использовать процедуру для решения уравнения x - tg(x) = 0 , используя обратную функцию x1 = arctg(x0) + k .
Задача 4. Составить подпрограмму-процедуру ВR для отыскания ближайшей из 10 точек, заданных массивом их декартовых координат, к кривой F(x) при одной и той же координате х. В основном программе использовать процедуру ВR для функций cos(x) и sin(x).
Задача 5. Cоставить подпрограмму-функцию INTG для вычисления определенного интеграла по формуле прямоугольников
В основной программе использовать процедуру INTG для вычисления интегралов:
∫ (sin(х)/(x) dx и ∫ (tg(x+1))/(x+1) dx
от –0.1 до 4 от 0 до 2
Задача 6. Cоставить подпрограмму-функцию INTGR для вычисления определенного интеграла по формуле прямоугольников
В основной программе использовать процедуру INTGR для вычисления интегралов:
∫ ex/(x+1) dx и ∫ (x-1) dx
от –0 до 1 от 0 до 2
Задача 7. Cоставить подпрограмму-функцию TRAP для вычисления определенного интеграла по формуле трапеций
В основной программе использовать процедуру TRAP для вычисления интегралов:
∫ (х2 + cos(x)) dx и ∫ (tg(x+1))/(x+1) dx
от –1 до 4 от 0 до 2
Задача 8. Составить подпрограмму-процедуру MINMAX, отыскивающую максимум и минимум среди значений А f(B), где Аk и Bm- элементы одномерных массивов и использовать ее для подсчета:
min(zj sin(xi)) + max(xi cos(zj))
Y = --------------------------------------
min (zj tg(xi))
где xi- элементы массива X(10), z j – элементы массива Z(5).
Подпрограммы-функции для вычисления синуса, косинуса оформить как функции дальнего вызова.
Задача 9..15. В программе, тестирующей функции модуля, сравнить методы приближенного решения алгебраических и трансцендентных уравнений (методы приближенного вычисления интеграла), поочередно используя их для решения одного и того же уравнения (для одной и той же подынтегральной функции). Значение e (точность) следует поочередно брать равными 0.01, 0.001, ..., 0.00001. Для каждого из методов построить график изменения числа потребовавшихся приближений при переходе от одного значения к другому.
Вар. зад. |
Подынтеграл. функция. f (x) |
Первообразные F(х)= ∫ f (x) dx |
Метод решения |
Число отрезков |
Интерв. интегр. |
Требуем. точность |
9. |
Ln²(x) / x |
Ln³(x)/3 |
Трапец. |
60 |
[1;4] |
10–4 |
10. |
(1/x²)sin(1/x) |
Cos(1/x) |
Прям. |
50 |
[1;2,5] |
0,5 10–3 |
11. |
X х (1 + lnx) |
X х |
Трапец. |
40 |
[1;3] |
10-4 |
12. |
Cos(x) |
Sin(x) |
Трапец. |
60 |
[0; /2] |
10-4 |
13. |
Sin²(x) |
X/2-(sin2x) /4 |
Трапец. |
60 |
[0; /2] |
0,5 10–3 |
14.. |
X e х sin x |
[x sinx + (1-x) cosx] (e х / 2) |
Трапец. |
100 |
[0; 1] |
10–4 |
15. |
(1/x²)sin(1/x) |
Cos(1/x) |
Прям. |
50 |
[1;2,5] |
0,5 10-3 |
Задача 16. Разработать программу исследования элементарных функций (y=sin x, y=cos x, у = tg x, у = ln x, у = e х), задаваемых пользователем. Обеспечить для каждой функции вывод таблицы значений на заданном интервале с заданным шагом, поиск корней и определение максимума и минимума. Взаимодействие пользователя и программы организуйте с использованием меню.
Задача 17. Разработать программу тестирования студентов обучающихся по теме «системы исчисления». Тестируемому должны предлагаться 6 вопросов по данной теме, включая обычные вопросы с выбором ответа из нескольких и задачи на выполнение арифметических операций, когда необходимо ввести результат указанной операции. Вопросы должны случайным образом выбираться из списка, хранящегося в файле, и не повторяться. Для ответа на каждый вопрос дается две попытки. Предусмотреть, чтобы тестирующийся мог по желанию отказаться отвечать на данный вопрос и получить правильный вопрос. Оценку проводить по соотношению правильных и неправильных ответов.
Задача 18. Разработать программу исследования элементарных функций (y=sin x, y=cos x, у = tg x, у = ln x, у = e х), задаваемых пользователем. Обеспечить для каждой функции вывод таблицы значений на заданном интервале с заданным шагом, поиск корней и определение максимума и минимума. Взаимодействие пользователя и программы организовать с использованием меню
Задачи 19..21. Создать типизированный файл записей, содержащих сведения о багаже пассажира. Структура записи имеет следующий вид:
type PNT=^B;
B = record Багаж
N: string[40]; Ф.И.О. пассажира
M: integer; Количество вещей
W: real; Общий вес вещей [кг]
next: PNT;
end;