Вопросы и задания
1. Постройте трассировочную таблицу выполнения программы Surnma l для значения n = 3.
S n i
0 5 -
1 5 1
3 5 2
6 5 3
10 5 4
15 5 5
2. Составьте программу, по которой компьютер десять раз запросит ввод любых чисел и в результате выведет среднее арифметическое значение введенных чисел (массив не использовать). Сделайте три варианта программы, используя операторы цикла While, Repeat и For.
program AverageWhile;
var i, n, sum: integer; avg: real;
begin sum := 0; i := 1;
while i <= 10 do begin write('Введите число ', i, ': '); readln(n); sum := sum + n; i := i + 1; end;
avg := sum / 10; writeln('Среднее арифметическое: ', avg);
readln; end.
program AverageRepeat;
repeat write('Введите число ', i, ': '); readln(n); sum := sum + n; i := i + 1; until i > 10;
program AverageFor;
begin sum := 0;
for i := 1 to 10 do begin write('Введите число ', i, ': '); readln(n); sum := sum + n; end;
3. Составьте программу, по которой компьютер десять раз запросит ввод целых чисел и в результате сообщит, сколько среди введенных чисел четных и сколько нечетных.
program CountEvenOdd;
var i, n, evenCount, oddCount: integer;
begin evenCount := 0; oddCount := 0;
for i := 1 to 10 do begin write('Введите число ', i, ': '); readln(n); if n mod 2 = 0 then evenCount := evenCount + 1 else oddCount := oddCount + 1; end;
writeln('Четных чисел: ', evenCount); writeln('Нечетных чисел: ', oddCount);
4. Составьте программу, по которой на экран будет выведена вся таблица умножения.
program MultiplicationTable;
var i, j: integer;
begin for i := 1 to 10 do begin for j := 1 to 10 do write(i * j:4); writeln; end;
5. Усовершенствуйте программу TablMul (пример 2 данного параграфа) таким образом, чтобы в результате выводилось сообщение о количестве правильных и неправильных ответов.
6. Усовершенствуйте программу TablMul таким образом, чтобы в результате выводилась оценка, поставленная ученику. Критерии для выставления оценок придумайте сами.
7. Получите таблицу значений функции sin г и cosx на отрезке [0, 1] с шагом 0,1 в следующем виде: X sin г cos г 0.0000 0.0000 1.0000 0.1000 0.0998 0.9950 1.0000 0.8415 0.5403
program TrigonometricTable;
var x, sinX, cosX: real;
begin writeln('X sin(X) cos(X)'); writeln('-------------------------'); x := 0.0; while x <= 1.0 do begin sinX := sin(x); cosX := cos(x); writeln(x:0:4, ' ', sinX:0:4, ' ', cosX:0:4); x := x + 0.1; end; readln; end.
8. Получите в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр.
program UniqueDigits;
var num, digit1, digit2, digit3: integer;
begin writeln('Трехзначные числа без повторяющихся цифр:'); for num := 100 to 999 do begin digit1 := num mod 10; digit2 := (num div 10) mod 10; digit3 := num div 100; if (digit1 <> digit2) and (digit1 <> digit3) and (digit2 <> digit3) then writeln(num); end; readln; end.
9. Значение функции ех (экспонента от х) равно сходящейся сумме бесконечного ряда: Получите рекуррентную формулу для слагаемых. Используя операторы цикла While, Repeat и For, составьте три варианта программы вычисления суммы с заданным числом слагаемых.
program ExponentialSeries;
var x, sum, term: real; n, i: integer;
begin writeln('Введите значение x: '); readln(x); writeln('Введите количество слагаемых (n): '); readln(n); sum := 1; // Первое слагаемое term := 1; for i := 1 to n do begin term := term * (x / i); sum := sum + term; end; writeln('Сумма ряда ех (', n, ' слагаемых) = ', sum:0:6); readln; end.