ХОД РАБОТЫ.
Cоздать на диске A: каталог
PR2. В ходе выполнения практической работы все программы необходимо сохранять
на диске A:\PR2\
В комментариях программы указать свои фамилии и
вариант.
I. Используя оператор цикла с предусловием найти произведение первых N сомножителей согласно своему варианту (имя программы - cicl1.pas):
II. Используя цикл с параметром
найдите (имя программы - cicl2.pas):
вариант №
1,3.
Наименьшее двухзначное число, сумма кубов цифр которого равна
730.
вариант № 2,4.
Наибольшее двухзначное число, сумма кубов цифр
которого равна 730.
III. Используя цикл с постусловием найдите сумму и произведение (имя программы - cicl3.pas):
вариант № 1.
Целых
положительных чисел больших 13 и меньших 100 и кратным 4.
вариант №
2.
Целых положительных чисел больших 20, меньших 70 и кратным 3.
вариант №
3.
Целых положительных чисел больших 28, меньших 100 и кратным 13.
вариант
№ 4.
Целых положительных чисел больших 47, меньших 100 и кратным
11.
Решение практической работы № 2
I. Вариант 1.
program z11;
var
p:real;
i,n:integer;
begin
write('Введите n');
readln(n);
p:=1;
i:=1;
while i<=n
do
begin
p:=p*((2*i-1)/(2*i));
i:=i+1;
end;
writeln('Произведение=',p:6:2);
end.
ОТВЕТ:
N=5 P=0,25
I. Вариант 2.
program z12;
var
p:real;
i,n:integer;
begin
write('Введите n');
readln(n);
p:=1;
i:=1;
while i<=n do
begin
if i/2=int(i/2) then p:=p*(i/(i+1)) else
p:=p*((i+1)/i);
i:=i+1;
end;
writeln('Произведение=',p:6:2);
end.
ОТВЕТ:
N=6 P=1,46
I. Вариант 3.
program z13;
var
p:real;
i,n:integer;
begin
write('Введите n');
readln(n);
p:=1;
i:=1;
while i<=n
do
begin
p:=p*((2*i-1)/i);
i:=i+1;
end;
writeln('Произведение=',p:6:2);
end.
ОТВЕТ:
N=7 P=26,81
I. Вариант 4.
program z14;
var
p:real;
i,n:integer;
begin
write('Введите n');
readln(n);
p:=1;
i:=1;
while i<=n do
begin
if i/2=int(i/2) then p:=p*((i+1)/i) else
p:=p*(i/(i+1));
i:=i+1;
end;
writeln('Произведение=',p:6:2);
end.
ОТВЕТ:
N=6 P=0,68
II. Вариант 1,3.
program z21;
uses
crt;
label 1;
var
a1,b1,s1:real;
a,b,i,s,q:integer;
begin
clrscr;
for i:=10 to 99
do
begin
a:=i div 10;
b:=i -
10*a;
a1:=a*a*a;
b1:=b*b*b;
s1:=a1+b1;
s:=trunc(s1);
if s=730
then begin q:=i; goto 1; end;
end;
1: writeln('i=',i);
end.
ОТВЕТ:
19
II. Вариант 2,4.
program z22;
uses
crt;
label 1;
var
a1,b1,s1:real;
a,b,i,s,q:integer;
begin
clrscr;
for i:=99 downto 10
do
begin
a:=i div 10;
b:=i -
10*a;
a1:=a*a*a;
b1:=b*b*b;
s1:=a1+b1;
s:=trunc(s1);
if s=730
then begin q:=i; goto 1; end;
end;
1: writeln('i=',i);
end.
ОТВЕТ:
91
III. Вариант 1.
program z31;
var
p:real;
i,s:integer;
begin
p:=1; i:=14; s:=0;
repeat
if
i/4-int(i/4) then begin s:=s+i; p:=p*i;
writeln ('i=',i, ' ', 's=',s, ' ',
'p=',p)
end;
i:=i+1;
until
i>=100;
writeln('s=',s:3,'p=',p);
end.
ОТВЕТ: S=1176
P=4.55*1035
III. Вариант 2.
program z32;
var
p:real;
i,s:integer;
begin
p:=1; i:=21; s:=0;
repeat
if
i/3=int(i/3) then begin s:=s+i; p:=p*i;
writeln ('i=',i, ' ', 's=',s, ' ',
'p=',p)
end;
i:=i+1;
until
i>=70;
writeln('s=',s:3,'p=',p);
end.
ОТВЕТ: S=765
P=4.64*1027
III. Вариант 3.
program z33;
var
p:real;
i,s:integer;
begin
p:=1; i:=28; s:=0;
repeat
if
i/13=int(i/13) then begin s:=s+i; p:=p*i;
writeln ('i=',i, ' ', 's=',s, ' ',
'p=',p)
end;
i:=i+1;
until
i>=100;
writeln('s=',s:3,'p=',p);
end.
ОТВЕТ: S=325
P=9.36*108
III. Вариант 4.
program z34;
var
p:real;
i,s:integer;
begin
p:=1; i:=47; s:=0;
repeat
if
i/11=int(i/11) then begin s:=s+i; p:=p*i;
writeln ('i=',i, ' ', 's=',s, ' ',
'p=',p)
end;
i:=i+1;
until
i>=100;
writeln('s=',s:3,'p=',p);
end.
ОТВЕТ: S=385
P=4.55*109
Домашнее задание.
Подготовка к зачету по
теме: "Операторы Паскаля. Линейные, разветвляющиеся, циклические алгоритмы".