Лабораторная работа №2. Программы линейной структуры
Цель работы
Изучить структуру программы на языке Паскаль, операторы присваивания, ввода и вывода данных, используемые при проектировании программ линейной структуры.
Порядок выполнения работы
Получить задание на выполнение лабораторной работы (раздел 6) согласно своему варианту. Разработать и отладить программу. Составить и защитить отчет о лабораторной работе у преподавателя.
Содержание отчета
- наименование и цель работы;
- задание на лабораторную работу согласно варианту;
- схема алгоритма, текст программы на алгоритмическом языке;
- результаты работы программы.
Краткая теория
Структура программы на языке Паскаль
Любая программа, написанная на языке Turbo Pascal 7.0 имеет следующие разделы:
РАЗДЕЛ ОБЪЯВЛЕНИЙ | |
program | Заголовок программы |
{$…} | Глобальные директивы компилятора |
uses | Подключаемые библиотеки (модули) |
label | Раздел объявления глобальных меток |
const | Раздел объявления глобальных констант |
type | Раздел объявления глобальных типов |
var | Раздел объявления глобальных переменных |
РАЗДЕЛ ПРОЦЕДУР И ФУНКЦИЙ | |
procedure(function) | Заголовок процедуры (функции) {тело процедуры} |
РАЗДЕЛ ОСНОВНОГО БЛОКА ПРОГРАММЫ | |
begin ... end. | Основной блок программы |
В тексте программы могут присутствовать комментарии. Они важны для документирования (пояснения) программы. В комментариях указывается вся информация, которая предназначена для разъяснения программы и упорядочения программного текста. Комментарии представляют собой
произвольный текст, ограниченный с двух сторон фигурными скобками {…} или (* …*).
Операторы языка программирования
Оператором называется элементарная структурная единица программы. Оператор предназначен как для записи алгоритмических действий по преобразованию данных, так и для задания порядка выполнения других действий. Операторы выполняются в порядке их следования в программе. Операторы отделятся друг от друга точкой с запятой. Операторы делятся на:
- простые (не содержат в себе других операторов);
- составные (включают в себя один или несколько дополнительных операторов).
Оператор присваивания
С помощью данного оператора определяется или переопределяется значение переменной, стоящей слева от :=.
Синтаксис оператора: <имя_переменной>:=<выражение>;
Выражение должно быть совместимо по присваиванию с типом переменной.
Примеры:
X:=Pi;
Y:=Sqr(Z*Z+T*T);
Bool:=(I>1) or (I<3);
Операторы ввода данных
Операторы ввода предназначены для ввода исходных данных в программу.
Операторы ввода имеют вид:
READ(X,Y,Z,...);
READLN(X,Y,Z,...);
где: X,Y,Z,... - имена переменных. Данные операторы обеспечивают ввод данных с клавиатуры и присваивают переменным X,Y,Z,... соответствующие значения.
Оператор READLN (X,Y,Z,...); отличается от READ(X,Y,Z,...); тем, что после ввода последней переменной курсор переводится в начало новой строки. Допускается использование оператора ввода без параметров: READLN;
Операторы вывода данных
Для вывода данных на экран используются операторы:
WRITE (X,Y,Z,...);
WRITELN (X,Y,Z,...);
WRITELN;
где: X,Y,Z,... - имена переменных, значения которых подлежат выводу.
Оператор WRITE(X,Y,Z,...); выполняет вывод на экран в одну строку.
Оператор WRITELN (X,Y,Z,...); кроме вывода на экран значений X,Y,Z,..., осуществляет перевод курсора в начало новой строки после вывода последнего значения.
Оператор WRITELN; осуществляет пропуск строки, в которой находится курсор, и переводит его в начало новой строки.
Операторы вывода допускают использование указания о ширине поля, отводимого под значение в явном виде:
WRITE (Y:m:n,X:k:l,...);
WRITELN (Y:m:n:,X:k:l,...);
где m и k - количество позиций, отведенных под запись значения переменных Y и X соответственно; n и l - количество позиций, отведенных под запись дробной части чисел Y и X.
Примеры:
WRITE('Сумма = ',Sum); {вывод на экран строки «Сумма = », затем значение суммы, которое хранится в переменной Sum}
WRITELN(‘Введите ’,I,’-й элемент: ’);
Примеры программ
5.1 Программа нахождения среднего из двух целых чисел и одного вещественного числа:
program Midding;
Var
X, Y: Integer;
Z, Midd: Real;
Begin
WriteLn(’Введите два целых числа X и Y:’);
ReadLn(X,Y);
WriteLn(’Введите вещественное число Z:’);
ReadLn(Z);
Midd:=(X+Y+Z)/3;
Write(’Среднее арифметическое = ’,Midd);
End.
5.2 Программа перевода дюймов в сантиметры (1 дюйм = 2,54 см).
program Inches;
Var
Inch, Centimeter: Real;
Begin
Write(’Введите величину в дюймах = ’);
ReadLn(Inch);
Centimeter:= Inch * 2.54;
Write(’Величина в сантиметрах =’,Centimeter:5:2);
End.
5.3 Программа вычисления значения выражения: . (Для возведения в степень используется следующее соотношение: ).
program Calculate;
Var
y, a, b, w: Real;
Begin
a:=12.4;
b:=(15 + 25/60)*Pi/180; {перевод из градусов в радианы}
Write(’Введите w = ’);
ReadLn(w);
y:= a*sin(b)/exp(ln(w)*15);
WriteLn(’Y = ’,Y:5:3);
End.
Варианты заданий для самостоятельного решения
1. В году примерно 3.156х107сек. Написать программу, которая запрашивает возраст в годах и переводит его в секунды.
2. Масса m одной молекулы воды примерно равна 3.0х10-23гр. Кварта воды равна примерно 950 гр. Написать программу, которая запрашивает количество воды в квартах и выводит число молекул в этом количестве воды.
3. Вычислить: .
4. Найти периметр и площадь прямоугольника.
5. Вычислить сумму депозита с процентами
S= K*(1+P/100)*n, где K- капитал, P-процентная ставка, n-число периодов начисления процентов.
6. Вычислить: .
7. Время в полете вычисляется по формуле T=S/V, где S – расстояние между пунктами, V – скорость полета самолета. Определить время в полете при отсутствии ветра и при наличии встречного ветра (V1 – скорость ветра).
8. Написать программу, которая запрашивает время в часах и минутах, после чего переводит в минуты, затем в секунды и выводит результаты на экран.
9. Найти площадь всей поверхности цилиндра: T=2pR(R+H).
10. Вычислить: .
11. Написать программу, которая запрашивает количество дней и переводит в недели и дни. Например, 18 дней = 2 недели и 4 дня.
12. Вычислить: .
13. Найти площадь боковой поверхности шара: T=4pR2.
14. Русские неметрические единицы длины: 1 аршин=16 вершков; 1 вершок=44,45 мм. Длина некоторого отрезка составляет N метров. Перевести ее в аршины.
15. Вычислить значение функции Y = sin(a+d)+d cos(a/2)
16. Определить, какую долю в процентном соотношении составляет число А1 от А2 по формуле Р= А1/ А2* 100.
17. Найти объем куба (с использованием стандартной функции и без).
18. Вычислить:
19. Определить расстояние, пройденное физическим телом за время t, если тело движется с постоянной скоростью v.
20. Найти площадь поверхности куба.
21. Определить расстояние между двумя точками с координатами (x1,y1) и (x2,y2).
22. Вычислить: .
23. Найти объем цилиндра по формуле: V=pR2H.
24. Вычислить: .
25. Время в пути вычисляется по формуле T=S/V, где S – расстояние между пунктами, V – скорость движения катера. Определить время в пути при движении по течению реки и против течения (V1 – скорость течения).
26. Найти расстояние от точки с координатами (x,y) до начала координат.
27. Вычислить: .
28. Даны длины сторон оснований усеченной пирамиды и высота. Найти объем пирамиды по формуле: , где S1, S2 – площади оснований усеченной пирамиды, H – высота.
29. Русские неметрические единицы длины: 1 верста=500 саженей; 1 сажень=3 аршина; 1 аршин=16 вершков; 1 вершок=44,45 мм. Длина некоторого отрезка составляет p метров. Перевести ее в русскую неметрическую систему.
30. Трехмерные вектора заданы своими координатами: A=(xa, ya, za) и В=(xb, yb, zb). Найти угол (в градусах) между векторами A и B, используя формулу: .
31. Найти координаты вершины параболы .
32. Найти диагональ и площадь квадрата.
Лабораторная работа №3. Операторы ветвления: условный оператор, оператор варианта
Цель работы
Изучить операторы, используемые для организации ветвления в программе. Познакомиться с логическими выражениями и операциями.