Иркутск 2015
Цель контрольной работы:
Проверка знаний по разделам:
· целочисленная арифметика;
· переводы целых чисел из одной системы счисления в другую;
· операторы IF, Case, Whilе, Repeat;
· алгоритмизация циклических процессов.
Порядок выполнения
1. Номер варианта: 0.
2. Номера задач: 7, 5, 11, 16, 17, 24д
Задание 7
Нарисовать блок-схемы и определить значение переменной s после выполнения следующих операторов. Расписать изменение переменных s и i по шагам выполнения цикла.
7.а.
s = 0; i:= 0;
while i < 5 do begin i:= i + 1; s: = s + 1/i; end;
шаг | i | s |
1.5 | ||
1.83 | ||
2.08 | ||
2.28 |
7.б.
s: =0; i: = 10;
while i >1 do begin s:= s +1/i; i:= i -1 end;
шаг | i | s |
0.10 | ||
0.21 | ||
0.34 | ||
0.48 | ||
0.65 | ||
0.85 | ||
1.10 | ||
1.43 | ||
1.93 |
7.в.
s: = 0; i: = 1;
repeat s: = s + 1/i; i: = i - 1 until i< = 1;
шаг | i | s |
1.0 |
7.г.
s:=1; i:=10;
repeat s:=s*(10+i); i:=i-2 until i<1;
шаг | i | s |
Задание 5.
|
|
1. Условие:
Дано действительное число a и натуральное число n.
Вычислить: a*(a-1)*(a-2)*... * (a-n2).
2. Математическая модель:
Натуральные числа больше 0.
Действительное число - это любое положительное число, отрицательное число или нуль.
3. Таблица внешних спецификаций:
Таблица 1.
No | Имя | Назначение | Тип | Ед. изм. | ОДЗ |
a | действительное число | Вещ. | - | любое | |
n | натуральное число | целое | - | Больше 0 | |
i | Вспомогательная переменная | целое | - | любое | |
res | Результат выполнения | Вещ | - | любое | |
SOOB1 | Сообщение | текст | - | 1 вид | |
SOOB2 | Сообщение | текст | - | 1 вид | |
SOOB3 | Сообщение | текст | - | 1 вид |
Сообщения:
c1: ‘введите вещественное число a: ’
c2: ‘введите натуральное число n>0: ’
c3: ‘результат: ’
4. Таблица тестов:
Таблица 2.
№ теста | Исходные данные | Результат | Примечания | |
a | n | res | ||
0.1 | 1.93 | |||
2.3 | -1914.05 |
5. Алгоритмизация:
Блок-схема алгоритма (рис. 1):
Рис. 1. Блок-схема алгоритма
6. Кодирование алгоритма:
program kontr5;
var
a: real;
n: integer;
res: real;
i: integer;
begin
cls;
write('Введите вещественное число a: ');
readln(a);
repeat
write('Введите натуральное число n > 0: ');
read(n);
until (n > 0);
res:= a;
for i:= 1 to n*n do
res:= res*(a-i);
writeln('Результат: ', res:5:2);
end.