Практическая работа № 2 на тему: "Ветвления и циклы в Паскале"

ХОД РАБОТЫ.

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

Домашнее задание.

Подготовка к зачету по теме: "Операторы Паскаля. Линейные, разветвляющиеся, циклические алгоритмы".

Hosted by uCoz

к оглавлению     на домашнюю