ЗАДАНИЯ ДЛЯ КОНТРОЛЬНОЙ РАБОТЫ
по дисциплине:«Программирование и основы алгоритмизации»
для студентов группы Э-31з
Ст. преподаватель
Пронин Павел Александрович
Губкин 2018
Содержание
1. Контрольная работа №1……………….3
2. Контрольная работа №2……………….8
3. Контрольная работа №3……………….13
4. Контрольная работа №4……………….21
5. Содержание отчета…………….……....29
6. Пример титульного листа……………..30
Контрольноезадание №1
Программирование линейных алгоритмов
Цель: выработать практические навыки работы с системой BorlandPascal, научиться создавать, вводить в компьютер, выполнять и исправлять простейшие программы на языке Pascal в режиме диалога, познакомиться с диагностическими сообщениями компилятора об ошибках при выполнении программ, реализующих линейные алгоритмы.
Общие сведения:
Линейным называется алгоритм, в котором результат получается путем однократного выполнения заданной последовательности действий при любых значениях исходных данных. Операторы программы выполняются последовательно, один за другим, в соответствии с их расположением в программе.
Пример
Пример1: Определить расстояние на плоскости между двумя точками с заданными координатами M1(x1,y1) и M2(x2,y2)
Этапы решения задачи:
1. Математическая модель: расстояние на плоскости между двумя точками M1(x1,y1) и M2(x2,y2) высчитывается по формуле
2. Составим схему алгоритма
Уточним содержимое блока "Вычисление и печать расстояния"
Дальнейшая детализация не требуется. Переводим блок-схему на язык Паскаль.
program example1;
var x1, x2, y1, y2: integer;
d:real;
begin
write('x1= '); readln(x1);
write('y1= '); readln(y1);
write('x2= '); readln(x2);
write('y2= '); readln(y2);
d:=sqrt(sqr(x2-x1)+sqr(y2-y1));
writeln('d=',d);
end.
Доработаем программу, так чтобы она обладала некоторым интерфейсом:
program example1;
var x1, x2, y1, y2: integer;
d:real;
begin
writeln('Эта программа вычисляет расстояние между двумя точками на плоскости');
writeln('Введите координаты двух точек:');
write('x1= '); readln(x1);
write('y1= '); readln(y1);
write('x2= '); readln(x2);
write('y2 ='); readln(y2);
d:=sqrt(sqr(x2-x1)+sqr(y2-y1));
writeln('d= ',d);
writeln('нажмите Enter для завершения работы программы');
readln;
end.
Контрольные вопросы:
1. Каковы назначение и возможности системы BorlandPascal?
2. Как запустить программу на трансляцию и выполнение?
3. Как записываются операторы начала и конца программы?
4. Из каких разделов состоит программа на языке Pascal?
5. В какой последовательности должны быть записаны разделы программы на языке Pascal?
6. Как записываются операторы вывода на экран в Pascal?
Задачи:
1. Дана длина ребра куба. Найти объем куба и площадь его боковой поверхности.
2. Три сопротивления R1, R2, R3 соединены параллельно. Найти сопротивление соединения.
3. Определить время падения камня на поверхность земли с высоты h.
4. Известна длина окружности. Найти площадь круга, ограниченного этой окружностью.
5. Треугольник задан координатами своих вершин. Найти:
o периметр треугольника;
o площадь треугольника.
6. Вычислить высоту треугольника, опущенную на сторону а, по известным значениям длин его сторон a, b, c.
7. Вычислить объем цилиндра с радиусом основания r и высотой h.
8. Определить расстояние, пройденное физическим телом за время t, если тело движется с постоянным ускорением а и имеет в начальный момент времени скорость V0
9. Вычислить площадь треугольника по формуле Герона, если заданы его стороны.
10. Определить координаты вершины параболы y=ax2+bx+c (a№0). Коэффициенты a,b,c заданы.
11. По данным сторонам прямоугольника вычислить его периметр, площадь и длину диагонали.
Приложение: операции и стандартные функции
В Турбо-Паскале применяются следующие условные знаки и служебные слова для описания различных операций:
Приоритет операции | Условный знак | Выражение | Название операции | Тип переменных в выражении | Тип результата выполнения опрации |
ЛОГИЧЕСКИЕ ОПЕРАЦИИ | |||||
not | not A | Логическое "не" | Логический целый | Логический целый | |
and | A and b | Логическое "и" | Логический целый | Логический целый | |
or | A or B | Логическое "или" | Логический целый | Логический целый | |
xor | A xor B | Логическое исключающее "или" | Логический целый | Логический целый | |
МАТЕМАТИЧЕСКИЕ ОПЕРАЦИИ | |||||
* | x*y | Умножение | Целый | Целый при умножении | |
/ | x/y | Деление | Смешанный вещественный | Целых чисел, иначе вещественный | |
div | N div M | Деление | Цлый | Целый | |
mod | N mod M | Остаток от деления | Целый | Целый | |
+ | x + y | Сложение | Целый вещественный | Целый при операции с целыми числами, иначе вещественный | |
ОПЕРАЦИИ СРАВНЕНИЯ | |||||
= | x=y | Равно | Число=число | Логический | |
<> | X<>y | Не равно | Строка=символ | Логический | |
> | x>y | Больше | Строка=символ | Логический | |
< | x<Y<td> | Меньше | Строка=символ | Логический | |
>= | x>=y | Больше или равно | Строка=символ | Логический | |
<= | x<=y | Меньше или равно | Строка=символ | Логический |
Отметим, что операции в скобках имеют высший приоритет, т. е. сначала выполняются операции в скобках, в том числе вычисление аргументов и значения функции. Операции одинакового приоритета выполняются слева направо, например a/c*b соответствует (a/c)*b.
Приоритет операции | Условный знак | Выражение | Название операции | Тип переменных в выражении | Тип результата выполнения операции |
СПЕЦИФИЧЕСКИЕ ОПЕРАЦИИ | |||||
@ | @x | Адрес переменной | Любой | Указатель | |
ch1 | y ch1 n | Сдвиг влево | Целый | Целый | |
shr | y chr n | Сдвиг вправо | Целый | Целый | |
* | c * D | Пересечение | Множество | Множество | |
+ | c + d | Обьединение | Множество | Множество | |
- | c - d | Вычитание | Множество | Множество | |
+ | s + t | Сложение | Строка, символ | Строковый | |
in | e in d | Вхождение в множество | Элемент множество | Логический |
Под смешанным типом переменных в выражении подразумевается операция с целым и вещественным типом переменных.