Задания уровня 1


Упражнение 1.

     Вывести на экран таблицу значений функции. Вывод выполняется в два столбца: первый – значения аргумента, второй – значения функции при изменении аргумента от значения a до b с шагом dx.

1. Наберите текст программы:


Program FUNC; 
uses crt; 
var 
x, y, z, lg3, a, b, dx: real; 
begin 
clrscr; {Очистка экрана} 
write ('Введите начальное значение аргумента: '); readln(a); 
write ('Введите конечное значение аргумента: '); readln(b); 
write ('Введите шаг табулирования: '); readln(dx); 
writeln ('---------------':20); 
write ('x':9, ' | ':4, 'y':4); 
writeln ('---------------':20); 
lg3:=ln(3.0)/ln(10.0); {Вычисление lg(3)} 
x:=a; 
while x<(b+dx/2) do 
begin 
z:=sin((pi*x)/3); 
if (z<0) then writeln(x:10:3, ' | функция не определена':22) 
else 
begin 
y:=lg3+x*sqrt(5.0*z); 
writeln(x:10:3, ' | ', y:7:3); 
end; 
x:=x+dx; 
end; 
writeln ('---------------':20) 
end.

2. Запустите программу на выполнение и проверьте её работу: Ctrl-F9
3. Для просмотра результатов выполненной программы необходимо нажать: Alt-F5
4. Сохраните программу на своем диске: A:\P5PR1

Упражнение 2.

     Тест по таблице умножения, которая уже приводилась в качестве примера. В результате использования цикла получается полноценная тестирующая программа, которая также будет выводить и результаты тестирования. Обратите внимание, что команда инициализации датчика случайных чисел выполняется до начала цикла, т.к. она должна быть выполнена только один раз. Инструкции для вывода результатов теста выполняются после выхода из цикла.

1. Наберите текст программы:


Program TABL_1; 
uses crt; 
var 
s1, s2, otvet, kol, prav: integer; yn: char; 
{s1,s2–сомножители, otvet–ответ ученика, prav – пр. ответ} 
begin 
randomize; {Инициализация датчика случайных чисел} 
clrscr; {Очистка экрана} 
repeat 
kol:=kol+1; 
s1:= random(18)+2; s2:= random(18)+2; {s1,s2 – случайные числа в диапазоне от 2 до 19} 
write ('Сколько будет', s1, ' * ', s2, ' ? '); 
readln (otvet); 
if otvet=s1*s2 then 
begin 
write(' Правильно! '); prav:=prav+1; 
end 
else write(' Неверно… '); 
write(' Продолжим тест? (Y/N) '); readln(yn); 
until (yn='n') or (yn='N');
clrscr; {Очистка экрана} 
writeln(' Результаты теста: '); 
writeln(' Задано вопросов: ', kol, '. Правильных ответов: ', prav, '.'); 
readln 
end.

2. Запустите программу на выполнение и проверьте её работу: Ctrl-F9
3. Для просмотра результатов выполненной программы необходимо нажать: Alt-F5
4. Сохраните программу на своем диске: A:\P5PR2

Задания уровня 2

1. Измените программу из Упражнения 2 таким образом, чтобы, при необходимости, можно отказаться от выполнения теста и корректно выйти из программы (используйте оператор WHILE..DO). Записать программу под именем P5PR3
2. Вычислить сумму натуральных четных чисел, не превышающих N. Программу составьте двумя способами: используя цикл с предусловием и цикл с постусловием. Сохранить программу под именем P5PR4 и P5PR5
3. В результате выполнения программы должны быть выведены значения функции y=x3+2x для значений x, лежащих в диапазоне [1; 3], с шагом 0,2. Программу составьте двумя способами: используя цикл с предусловием и цикл с постусловием. Сохранить программу под именем P5PR6 и P5PR6

Задания уровня 3

4. Дано действительное число A. Требуется найти первое значение числа N, при котором сумма S=1+1/2+1/3+…+1/N превышает A. Программу составьте двумя способами: используя цикл с предусловием и цикл с постусловием. Сохранить программу под именем P5PR7 и P5PR8
5. Составьте программу, которая имитирует работу арифметического калькулятора. Организуйте ввод первого и второго операндов и знака операции. Сохранить программу под именем P5PR4
6. Составьте программу, которая производит суммирование произвольного количества целых чисел, вводимых с клавиатуры. Концом последовательности служит ввод отрицательного числа. Программу составьте двумя способами: используя цикл с предусловием и цикл с постусловием. Сохранить программы под именем P5PR5 и P5PR6
7. Составьте программы для нахождения сумм приведенных ниже рядов и проверьте их работоспособность на компьютере.
Замечание: при вычислении суммы степенного ряда sin(x) можно использовать следующие выкладки: пусть Sk — значение k-го слагаемого, причем значение S0=x.


Контрольные вопросы:
1. Что называют циклом?
2. Какова функция предусловного оператора цикла?
3. В программах какого типа используется предусловный оператор цикла?
4. Каким образом можно создать бесконечную программу?
5. Как прервать выполнение бесконечного цикла?
6. Какова функция оператора цикла с постусловием?
7. В программах какого типа используется оператор цикла с постусловием?
8. Почему перед словом UNTIL вставка точки с запятой не обязательна?