Нужно в паскале. напишите программу которая вводит с клавиатуры числа до тех пор пока не будет введено число 0. в конце работы программы на экран выводится сумма и произведение введенных чисел (не считая 0).
var pos,neg: integer; i,k,x: integer; ev,un: integer; a,b: array [1..n] of integer;
begin for i := 1 to n do read(a[i]); k := 0; pos := 0; neg := 0; for i := 1 to n do begin ev := 0; un := 0; x := a[i]; if x <> 0 then if x > 0 then if (x < pos) or (pos = 0) then pos := x else else if (x > neg) or (neg = 0) then neg := x; x := abs(x); while x <> 0 do begin if odd(x) then un := un + 1 else ev := ev + 1; x := x div 10 end; if un = ev then begin k := k + 1; b[k] := a[i] end end;
writeln(pos,' ',neg); for i := 1 to k do write(b[i],' ') end.
// PascalABC.NET 3.3, сборка 1579 от 18.11.2017 // Внимание! Если программа не работает, обновите версию!
Нулевой шаг: создание типизированного файла нужной структуры
begin var f:file of real; Assign(f,'MyReal.bin'); Rewrite(f); loop 2 do begin SeqRandomInteger(10,1,100).Select(t->t/10).ForEach(t->Write(f,t)); SeqRandomInteger(10,-100,-1).Select(t->t/10).ForEach(t->Write(f,t)); end; f.Seek(0); // начало файла var b:real; while not Eof(f) do begin Read(f,b); Print(b) end; Println; f.Close end.
begin var f1,f2:file of real; Assign(f1,'MyReal.bin'); Reset(f1); if f1.FileSize mod 20<>0 then begin Writeln('Количество компонент во входном файле не кратно 20'); Exit end; Assign(f2,'MyReal2.bin'); Rewrite(f2); var buf:=new real[5]; var b:real; while not Eof(f1) do begin // переписываем пять положительных loop 5 do begin Read(f1,b); Write(f2,b) end; // считываем пять положительных в буфер for var i:=0 to 4 do Read(f1,buf[i]); // переписываем пять отрицательных loop 5 do begin Read(f1,b); Write(f2,b) end; // пишем пять положительных из буфера foreach var t in buf do Write(f2,t); // переписываем пять отрицательных loop 5 do begin Read(f1,b); Write(f2,b) end end; f1.Close; // контрольное чтение f2.Seek(0); // к началу while not Eof(f2) do begin Read(f2,b); Print(b) end; Writeln; f2.Close end.
Program n_1;
var a, b, n: double;
begin
read (n);
a:=n; b:=n;
if n<>0 then read (n);
while (n<>0) do begin
a:=a+n;
b:=b*n;
read(n);
end;
writeln('Сумма чисел равна ', a:0:10, ' а их произведение ', b:0:10);
end.