Задание 1. Что будет выведено в результате выполнения программы, какой должен быть тип переменных a, c, b?
Begin a:=6; b:=18; c:= b/3*a - 5; b:=c+a; writeln(c); end. | Ответим на первый вопрос. Смотрим на вывод. Какая переменная выводится? Переменная с. Смотрим как она вычисляется: c:= b/3*a - 5; То есть она равна 18/3*6 - 5. 18/3 =6, 6*6=36, 36-5=31. Программа выведет 31. |
Второй вопрос: переменной а присваивается целое число 6 и больше она не меняется, значит она целая, Переменная с вычисляется выражением, имеющим операцию деления, значит она вещественная, переменной b присваивается целое значение 18, но за тем она меняется, ей присваивается сумма вещественной переменной с и целой а. Исходя из первого правила определения типов, b должна быть вещественной. Итого: Var a:integer; c, b:real;
Задание 2. Найти объем аквариума в м3 со сторонами a, b, c. Стороны даны в метрах.
С боку представлено окно кода, окно вывода и окно ввода данных. Обратите внимание, все переменные вещественные, так как нельзя гарантировать, что они могут быть только целые. В нашем случае введены размеры аквариума 30×50×40 см. Но нас просили в метрах!. Для получения результата нужно нажать Enter. Этим мы завершаем ввод. И программа должна выполнить вывод результатов своей работы (если написав программу вы это предусмотрели. Начинающие программисты зачастую забывают сделать вывод).
|
|
Разберем подробней код
vara,b,c,v: real; | Объявляем (бронируем место в оперативной памяти) четыре переменных: a, b, c – для ввода данных, v – расчетов и получения результата. |
begin writeln (' введите через пробел размеры аквариума в метрах'); | В блоке тела программы сначала выводим сообщение, что и как должен ввести пользователь. |
readln (a,b,c); | Затем вводим данные. |
v:= a*b*c; | Далее вычисляем объем. |
writeln (v); end. | Выводим результат, закрываем блок тела программы. |
Задание 3. Найти расстояние между точками. Координаты точек заданы целочисленными числами.
Пусть координаты 1 точки: х1,у1, а координаты второй точки х2,у2. Тогда формула расстояния между двумя точками имеет вид: . Обратите внимание, все координаты - числа целые, значит их тип integer, а вот результат, получается функцией извлечения корня, а она всегда дает вещественный результат.
Когда вы пишите программы важно их протестировать на правильность работы. Например, в данной задаче мне нужно составить такие тесты, которые покажут точные результаты: вертикальные или горизонтальные Отрезки или как в данном примере взяты точки, образующие гипотенузу прямоугольного треугольника со сторонами 3, 4, 5. |
Практическая работа
Задание 1. Определить возможный тип переменных, хранящих следующие значения: 5,’123’, ‘true’, 125, 4.0, ‘1’, false, 3.4, ‘Вася’, 0.45, '+'. Составьте таблицу из двух столбцов: «значение», «возможный тип». Для целых и вещественных типов достаточно указать один.
|
|
Задание 2. Вычислить:
36 div 5 = | trunc (8.7) = | abs(23) = | a:= 5; b:= 7; |
36 mod 5 = | round(8.7) = | abs(-2) = | a:= 2*b – 4; b:= a - b; c:= a + b d:= sqrt(sqr(a)-sqr(2*b)) |
42 div 7 = | trunc (8.3) = | sqr (4) = | |
42 mod 7 = | round(8.3) = | sqr (5.0) = | |
5 div 12 = | trunc (- 1.8) = | sqrt (9) = | |
5 mod 12 = | round(-1.8) = | sqrt (100) = | Чему равны a, b, c, d? |
Задание 3. Определить тип:
а) 3+1.0; б) sqr (2);
в) 25 /5; г) sqr (10.0);
д) trunc(-15/4); е) sqrt (100);
Задание 4. Если у вещественная переменная, а n – целая то какие из следующих операторов присваивания правильные, а какие нет и почему?
а) n:= 2*n + 4; б) n: = trunc(5.4) + 3;
в) y: = 4.0 +2; г) y: = 4+trunc(y);
д) y: = 3.0+ n div 2; e) n: = 2 mod y;
ж) n: = 2*2/n; з) y: = sqrt (sqr (n)).
Задание 5. Что будет выведено в результате выполнения программ, для задания с укажите тип переменных:
a | b | c |
Var a,b,c:integer; Begin a:=10; b:=20; c:= b div 2*5+a; b:=c+a; writeln(b); end. | Var a:integer; c, b:real; Begin a:=3; b:=60; c:= b/2*a; b:=c+a; writeln(c); end. | Begin a:=3; b:=60; c:= a - b/(2*a); c:=c+a; writeln(c); end. |
Задание 6. Напишите программу, которая вводит три целых числа и выводит их среднее арифметическое.
Задание 7. Дан участок прямоугольной формы, стороны которого заданы в метрах. Определите его площадь в сотках. Написать программу.