Нужна , буду . создайте файл f, компоненты которого являются действительными числами. напишите программу вычисления суммы компонентов файла f и произведения ненулевых компонентов этого файла. язык программирования: pascal
begin Assign(f, 'output.dat'); Rewrite(f); writeln('Вводите данные, окончание число 7777'); repeat read(k); if k<>7777 then writeln(f,k) until k=7777; Close(f); Reset(f); s := 0; p := 1; writeln; while not Eof(f) do begin readln(f, k); write(k:4); s := s + k; if k <> 0 then p := p * k end; Close(f); writeln; writeln('Сумма= ', s, ', произведение= ', p) end.
Uses crt; var f:text; i,x,sm,n:integer; pr:longint; begin randomize; clrscr; pr:=1; assign(f,'f.txt'); rewrite(f); writeln('Введите число заполнений (например 6, в файле будет шесть натуральных чисел) ?'); readln(n); for i:=1 to n do begin write(i,') '); readln(x); writeln(f,x); end; close(f); reset(f); while not Eof(f) do begin read(f,x); sm:=sm+x; if x <> 0 then pr:=pr*x; end; if n <> 0then begin writeln; writeln('Сумма всех чисел = ',sm); writeln('Произведение всех чисел = ',pr); end else writeln('Файл пустой.'); readkey; close(f);end.
// PascalABC.NET 3.0, сборка 1076 type Point=record x,y:real end; Line=record A,B:Point end; Triangle=record A,B,C:Point; sa,sb,sc:real; { длины сторон } end;
procedure GetPoint(PointName:char; var M:Point); begin Write('Введите координаты точки ',PointName,'(x,y): '); Read(M.x,M.y) end;
function LineLength(A,B:Point):real; begin LineLength:=sqrt(sqr(B.x-A.x)+sqr(B.y-A.y)) end;
procedure CreateTriangle(var T:Triangle; var l:boolean); begin With T do begin GetPoint('A',A); GetPoint('B',B); GetPoint('C',C); sa:=LineLength(B,C); sb:=LineLength(A,C); sc:=LineLength(A,B); l:=(sa+sb>sc) and (sa+sc>sb) and (sb+sc>sa) end end;
function TriangleIsLikes(T1,T2:Triangle):boolean; var k1,k2,k3:real; begin k1:=T1.sa/T2.sa; k2:=T1.sb/T2.sb; if k1=k2 then begin k3:=T1.sc/T2.sc; TriangleIsLikes:=k1=k3 end else TriangleIsLikes:=False end;
var T1,T2:Triangle; legal:boolean; begin Writeln('*** Первый треугольник ***'); CreateTriangle(T1,legal); if legal then begin Writeln('*** Второй треугольник ***'); CreateTriangle(T2,legal); if legal then if TriangleIsLikes(T1,T2) then Writeln('Треугольники подобны') else Writeln('Треугольники не подобны') else Writeln('Треугольник невозможно построить') end else Writeln('Треугольник невозможно построить') end.
Тут особо можно не думать. Замечаем, что в результате надо получить значение А⊕ Ā в восьмиразрядном представлении. Результат такой операции - всегда все единицы во всех разрядах. А разрядов эти по условию 8.
Если формат знаковый, то старший разряд, равный 1 означает, что число отрицательное, а они обычно хранятся в дополнительном коде. Для перевода в основной код инвертируем все разряды, кроме старшего знакового. Получаем семь нулей. И прибавляем единицу, окончательно получая 10000001, т.е. -1 в двоичной системе. В десятичной системе (как и в любой другой с натуральным основанием, единица - всегда единица.
f: Text;
k: integer;
s, p: longint;
i: integer;
begin
Assign(f, 'output.dat');
Rewrite(f);
writeln('Вводите данные, окончание число 7777');
repeat
read(k);
if k<>7777 then writeln(f,k)
until k=7777;
Close(f);
Reset(f);
s := 0;
p := 1;
writeln;
while not Eof(f) do
begin
readln(f, k);
write(k:4);
s := s + k;
if k <> 0 then p := p * k
end;
Close(f);
writeln;
writeln('Сумма= ', s, ', произведение= ', p)
end.
Вводите данные, окончание число 7777
3
6
-4
6
2
-3
-4
2
6
0
5
-1
7777
3 6 -4 6 2 -3 -4 2 6 0 5 -1
Сумма= 18, произведение= 622080