Вы находитесь на странице: 1из 9

Лабораторная работа № 3.

Задание 3.2.7 Напишите программу, которая в последовательности натуральных чисел


определяет максимальное число, кратное 4. Программа получает на вход количество чисел в
последовательности, а затем сами числа. В последовательности всегда имеется число,
кратное 4. Количество чисел не превышает 1000. Введѐнные числа не превышают 30 000.
Программа должна вывести одно число — максимальное число, кратное 4.

Входные данные: count - число последовательности, num - введенное число которое сравнивается с
максимальным числом и кратности 4-м, max - максимальное число кратное 4, i - шаг цикла
Выходные данные:max - максимальное число кратное 4
Переменные: (count, num, max, i)
Все переменные типа: integer

program 327; Блок схема


var
count, num, max, i: integer;
begin
write('Введите количество чисел в последовательности: ');
readln(count);
max := 0;
for i := 1 to count do
begin
write('Введите число: ');
readln(num);
if (num mod 4 = 0) and (num > max) then
max := num;
end;
writeln('Максимальное число, кратное 4: ', max);
end.

Результат работы
Отладка

count num max (num mod 4 = 0) and (num > max) Истинно?
6 4 0 (4 mod 4 = 0) and (4 > 0) Да
1 6 8 4 (8 mod 4 = 0) and (8 > 4) Да
2 6 16 8 (16 mod 4 = 0) and (16 > 8) Да

3 6 20 16 (20 mod 4 = 0) and (20 > 16) Да


Интеграция
цикла 4 6 24 20 (24 mod 4 = 0) and (24 > 20) Да

5 6 22 24 (22 mod 4 ≠ 0) and (22 > 24) Нет

(26 mod 26 ≠ 0) and (26 >


6 6 26 24 24) Нет
Лабораторная работа № 3.

Задание 3.3.7. Составить блок-схему и программу на языке Pascal для вычисления


суммы и произведения членов ряда. Решить задачу 3-мя способами: цикл с
предусловием, циклы с постусловием, циклы с параметром.

Входные данные: m,x – аргументы функции.


Выходные данные: v – сумма членов ряда.
Переменные: m,z (аргументы функции), r(сумма членов ряда), m(параметр для
просчёта ряда)
Переменные z,m,r, v типа: real.

program 337;
var z,m,r,v: real;
begin
write('Введите m,r');
readln(m,r);
z:=1;
v:=1;
while z<=m do
begin
v:=v*power((z+7)/(2*z+r),z-2);
z:=z+1;
end;
writeln('Сумма ряда равна ', v:0:2);
end.
Результат работы

Цикл Repeat ( 3.3.7.)


program 337;
var z,m,r,v: real;
begin
write('Введите m,r');
readln(m,r);
z:=1;
v:=1;
repeat
begin
v:=v*power((z+7)/(2*z+r),z-2);
z:=z+1;
end;
until z>m;
writeln('Сумма ряда равна ', v:0:2);
end.

Результат работы

Цикл For ( 3.3.7.)


program 337;
var r,v: real;
z,m:integer;
begin
write('Введите m,r');
readln(m,r);
z:=1;
v:=1;
for z:=1 to m do
begin
v:=v*power((z+7)/(2*z+r),z-2);
end;
writeln('Сумма ряда равна ', v:0:2);
end.

Результат работы

Отладка программы 3.2.7:


I M z<=m Истинно? R V
While
2 3 1
Итера 1 1 2 1≤3 Да 3
ции
2 3 1
2 2 2 2≤3 Да 3
2 3 2
3 3 2 3≤3 Да 3
3 2 3 2

I M z>m Истинно? R V
Repeat
2 3 1
1 1 2 1>3 Нет 3
Итера 2 3 1
ции
2 2 2 2>3 Нет 3
внеш
него 2 3 2
цикла 3 3 2 3>3 Нет 3
3 2 3 2

I M z≤m Истинно? R V
For
2 3 1
1 1 2 1≤3 Да 3
Итера 2 3 1
ции
2 2 2 2≤3 Да 3
внеш
него 2 3 2
цикла 3 3 2 3≤3 Да 3
3 2 3 2

Лабораторная работа № 4.
Задание 4.1: Составить блок-схему и программу на языке Паскаль для вычисления значений
функции на интервале а, b с шагом h для переменной х и на интервале с, d с шагом k для
переменной у. Результат представить в виде таблицы, первые два столбца которой – значения
аргументов, третий – соответствующие значения функции.

Входные данные: x, y - аргументы функции, h - шаг изменения x, k - шаг изменения y, a -


левая граница изменения x, b - правая граница изменения x, с - левая граница изменения y, d -
правая граница изменения y.
Выходные данные: result - значение функции
Переменные: (a, b, h, c, d, k, x, y, result) Типа real

Программа Блок схема


program prog_4_1;
uses math;
var
a, b, h, c, d, k, x, y, result: real;
begin
writeln('Введите интервал a, b и шаг h: ');
readln(a, b, h);
writeln('Введите интервал c, d и шаг k: ');
readln(c, d, k);
writeln(' x | y | f(x,y) ');
writeln('-------------------------------------------');
x := a;
while x <= b do
begin
y := c;
while y <= d do
begin
result := sin(x)+power(x,4) * cos(y);
writeln(x:10:5, ' | ', y:10:5, ' | ', result:10:5);
y := y + k;
end;
x := x + h;
end;
end.

Результат работы

Вам также может понравиться