Составить программу в паскале. 1 . даны три числа. если их сумма меньше 1, то числа удвойте. 2. даны два числа x и y. удвойте первое число, если оно больше второго, и оба числа, если это не так.
uses Crt; const N=30; type Mas=array [1..N] of integer; var i, j , SumPol, SumOtr: integer; A: Mas; begin ClrScr; SumPol:=0; SumOtr:=0; WriteLn(' Sposob 1:'); WriteLn; for i:=1 to N do begin A[i]:=-10+random(21); Write (A[i]:4); end; WriteLn; for i:=1 to N do begin if (A[i]>0) then SumPol:=SumPol+A[i]; if (A[i]<0) then SumOtr:=SumOtr+A[i]; end; WriteLn(' SumPol =', SumPol); WriteLn(' SumOtr =', SumOtr); WriteLn; WriteLn (' Sposob 2:') ; SumPol:=0; SumOtr:=0; i:=1; repeat if (A[i]>0) then SumPol:=SumPol+A[i]; if (A[i]<0) then SumOtr:=SumOtr+A[i]; i:=i+1; until i>30; WriteLn(' SumPol =', SumPol); WriteLn(' SumOtr =', SumOtr); ReadLn; end.
А получилось вот что:
uses Crt;
const N=30;
type Mas=array [1..N] of integer;
var i, j , SumPol, SumOtr: integer;
A: Mas;
begin
ClrScr;
SumPol:=0;
SumOtr:=0;
WriteLn(' Sposob 1:');
WriteLn;
for i:=1 to N do
begin
A[i]:=-10+random(21);
Write (A[i]:4);
end;
WriteLn;
for i:=1 to N do
begin
if (A[i]>0) then SumPol:=SumPol+A[i];
if (A[i]<0) then SumOtr:=SumOtr+A[i];
end;
WriteLn(' SumPol =', SumPol);
WriteLn(' SumOtr =', SumOtr);
WriteLn;
WriteLn (' Sposob 2:') ;
SumPol:=0;
SumOtr:=0;
i:=1;
repeat
if (A[i]>0) then SumPol:=SumPol+A[i];
if (A[i]<0) then SumOtr:=SumOtr+A[i];
i:=i+1;
until i>30;
WriteLn(' SumPol =', SumPol);
WriteLn(' SumOtr =', SumOtr);
ReadLn;
end.
по осн 2
35 7/24=0,29 24/7=3,4 1,77 0,29*1,77=0,51
25 5/24 =0,21 24/5=4,8 2,26 0,21*2,26= 0,47
15 3/24=1/8=0,125 8 3 0,125*3=0,375
45 3/8 =0,375 8/3 =2,67 1,42 0,375*2,67= 1,00
Сумма 1 2,355 бит - ответ