Образец решения задач.

Содержание

Лабораторная работа № 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. Зачем необходимо придерживаться концепции совместимости типов данных, в чем ее суть?