Образец решения задач.
Содержание
Лабораторная работа № 1. 4
Лабораторная работа № 2. 11
Лабораторная работа № 3. 20
Лабораторная работа № 4. 26
Лабораторная работа № 5. 34
Лабораторная работа № 6. 39
Лабораторная работа № 7. 53
Лабораторная работа № 8. 67
Лабораторная работа № 9. 76
Лабораторная работа № 10. 88
Лабораторная работа № 11. 94
Лабораторная работа № 12. 103
Лабораторная работа № 13. 110
Лабораторная работа № 14. 117
Лабораторная работа № 1
Тема: ВЫЧИСЛЕНИЕ АРИФМЕТИЧЕСКИХ ВЫРАЖЕНИЙ
Структура следования
Цель работы: освоить линейную алгоритмическую структуру, а также работу команд в данной структуре.
Образец решения задач.
Задача № 1. Найти и выдать на печать значение выражения:
Постановка задачи
Для решения данной задачи воспользуемся алгоритмической структурой следования, поскольку, для нахождения значения выражения достаточно ввести входные данные, вычислить результат выражения и вывести его на экран.
Входные данные.
Неизвестные значения в выражении – x, y, z (дробные числа).
Выходные данные.
Результат вычисления выражения – t (дробное число).
Алгоритм.
· Ввести исходные данные с клавиатуры.
· Подсчитать значение выражения.
· Вывести результат выражения на экран.
Примечания:
Ввод/вывод данных практически во всех языках программирования выполняется с помощью процедур и функций. Общий вид команды вызова подпрограммы следующий:
<Имя подпрограммы>(<Список фактических параметров>)
<Имя подпрограммы > – соответствует стандартным требованиям к идентификаторам. Пробел между именем подпрограммы и открывающей скобкой ставить не рекомендуется.
<Список фактических параметров> – список выражений, разделенных запятой. Список содержит те реальные (фактические) значения с которыми будет работать подпрограмма в данной точке программы.
В языке Паскаль ввод данных выполняется с помощью вызова стандартных процедур Read или ReadLn, а вывод результатов с помощью вызова процедур Write или WriteLn. Указанные процедуры можно использовать, если параметры имеют тип: integer (целые числа), real (дробные числа), char (символ) или string (строка символов). В задаче, как указано выше, используется дробный тип, следовательно, применим стандартный ввод/вывод данных.
Текст программы.
Var
x, y, z : real;
t: real;
Begin
// вызов процедуры ReadLn c 3- параметрами
ReadLn(x, y, z); // ввод значений переменных x, y, z
// вычисление выражения и запись результата в переменную t
t:=2/(0.5+y)*(1+sqr(x)/(3-sqr(z)/5));
// вызов процедуры WriteLn c 2-мя параметрами
WriteLn(’t= ’, t) // вывод строки ’t= ’ и значение переменной t)
end.
Задача № 2. Однонаправленный перевод величины из одной меры в другую, например: версты в метры (1 верста = 1066,8 м) или метры в футы, литры в пинты и т. п.
Постановка задачи
Чтобы перевести число верст (целое число) в метры, необходимо количество введенных верст умножить на 1066,8 и результат сохранить в какую-либо переменную (в общем случае – дробное число). Для решения данной задачи также воспользуемся алгоритмической структурой следования и стандартным вводом/выводом.
Входные данные.
Количество верст – v (целое число).
Выходные данные.
Количество метров – m (дробное число).
Алгоритм.
· Ввести входные данные.
· Подсчитать значение выражения.
· Вывести результат на печать.
Примечания: Имена переменных, используемых в программе для хранения различных данных, следует выбирать таким образом, что бы они «подсказывали» разработчику какие именно данные они хранят. Например, переменная для хранения количества верст неслучайно названа – v, а для хранения количества метров – m. Обычная длина имени 6–8 символов. Если имя составное, рекомендуется каждую часть начинать с заглавной буквы или разделять символом ’_’. Например, переменную, хранящую длину отрезка можно назвать ’DlnOtr’ или ’dln_otr’. Применение этих простых рекомендаций позволит значительно повысить читабельность текста программы и, следовательно, её понимание.
Текст программы.
Var
v: integer;
m: real;
Begin
ReadLn(v); // ввод с клавиатуры количества верст в переменную v
m:=v*1066.8; // вычисление количества метров
WriteLn(’В ’, v, ’ верстах ’, m, ’ метров’) // вывод 5 значений на экран
end.
Задания для самостоятельного решения.
Вариант 1.
1. Написать программу для вычисления значения выражения:
2*c - d +
¾¾¾¾¾¾¾¾
- 1
2. Перевод целой величины из одной меры в другую. Перевод однонаправленный. Версты в метры (1 верста = 1066,8 м).
3. Пусть заданы три значения. Определить среднее арифметическое этих чисел.
Вариант 2.
1. Написать программу для вычисления значения выражения:
-2*c + d*82
¾¾¾¾¾¾¾¾
tg( - 1)
2. Перевод целой величины из одной меры в другую. Перевод однонаправленный. Футы в метры (1 фут = 0,3048 м).
3. Пусть заданы координаты двух точек A(x1, y1) и B(x2, y2). Найти расстояние между этими точками.
Вариант 3.
1. Написать программу для вычисления значения выражения:
arctg(c/4) - d*62
¾¾¾¾¾¾¾¾
a*a - 1
2. Перевод целой величины из одной меры в другую. Перевод однонаправленный. Дюймы в сантиметры (1 дюйм = 2,54 см).
3. Пусть заданы координаты двух точек: одна точка является началом координат, вторая с координатами (x, y). Найти расстояние между этими точками.
Вариант 4.
1. Написать программу для вычисления значения выражения:
2*c - ln(d/4)
¾¾¾¾¾¾¾¾
a*a - 1
2. Перевод целой величины из одной меры в другую. Перевод однонаправленный. Мили в км (1 миля = 1,609 км).
3. Пусть заданы длина стороны треугольника и высота. Найти его площадь.
Вариант 5.
1. Написать программу для вычисления значения выражения:
2*c - d/23
¾¾¾¾¾¾¾¾
ln(1 - )
2. Перевод целой величины из одной меры в другую. Перевод однонаправленный. Талоны в литры (1 талон = 4,546 л).
3. Пусть заданы значения переменных x и y. Напишите программу, которая меняла бы значения этих переменных местами.
Вариант 6.
1. Написать программу для вычисления значения выражения:
2*c - d*
¾¾¾¾¾¾¾¾
c + a - 1
2. Перевод целой величины из одной меры в другую. Перевод однонаправленный. Кварты в литры (1 кварта = 1,1365 л).
3. Пусть заданы длины сторон треугольника. Найти его периметр.
Вариант 7.
1. Написать программу для вычисления значения выражения:
arctg(c - d/2)
¾¾¾¾¾¾¾¾
2*a - 1
2. Перевод целой величины из одной меры в другую. Перевод однонаправленный. Караты в граны (1 карат = 3,086 грана).
3. Пусть заданы длины катетов треугольника. Найти его гипотенузу.
Вариант 8.
1. Написать программу для вычисления значения выражения:
c*tg(b + 23)
¾¾¾¾¾¾¾¾
a/2 -4*d - 1
2. Перевод целой величины из одной меры в другую. Перевод однонаправленный. Штофы в литры (1 штоф = 1,2299 л).
3. Пусть заданы значения переменных x и y. Напишите программу, которая меняла бы значения этих переменных местами не используя дополнительной переменной.
Вариант 9.
1. Написать программу для вычисления значения выражения:
2*c + ln(d)*51
¾¾¾¾¾¾¾¾
d - a - 1
2. Перевод целой величины из одной меры в другую. Перевод однонаправленный. Ярды в метры (1ярд = 0,9144 м).
3. Пусть заданы значения переменных x, y и z. Напишите программу, которая меняла бы значения этих переменных местами, так чтобы в x оказалось значение переменной y, в y – значение переменной z, а в z – прежнее значение переменной x.
Вариант 10.
1. Написать программу для вычисления значения выражения:
42*c - d/2 + 1
¾¾¾¾¾¾¾¾
a*a - ln(b-5)
2. Перевод целой величины из одной меры в другую. Перевод однонаправленный. Унции в граммы (1 унция = 28,35 г).
3. Пусть заданы длины сторон треугольника и его периметр. Найти площадь данного треугольника.
Контрольные вопросы:
1. Особенности выполнения изучаемых операторов: присваивания, ввода-вывода.
2. Арифметические выражения: знаки арифметических операций, стандартные функции.
3. Диапазон допустимых значений для вещественных (REAL) и целочисленных (INTEGER) переменных.
4. Для чего служит компилятор?
5. Что является комментарием и для чего он служит?
6. Какие разделы могут быть использованы в декларативной части программы?
7. Назовите основные алгоритмические структуры.
8. Какие команды реализуются в структуре следования? Запись на Паскале.
9. Верно ли, что в Паскаль - программе надо описывать все используемые в ней переменные?
10. Какую информацию извлекает транслятор из описания переменных и как он ее использует?
11. Какие значения имеют переменные в начале выполнения программы?
12. Когда нет необходимости использовать раздел переменных?
13. Перечислите базовые элементы языка.
14. Что относится к алфавиту языка?
15. Что такое идентификатор? Какой идентификатор является правильным?
16. Перечислите, какие данные относятся к порядковым типам.
17. Почему различают порядковые и вещественный типы?
18. Зачем необходимо придерживаться концепции совместимости типов данных, в чем ее суть?