Нужна помощь, буду очень благодарен.Создайте файл f, компоненты которого являются...

0 голосов
87 просмотров

Нужна помощь, буду очень благодарен.
Создайте файл f, компоненты которого являются действительными числами. Напишите программу вычисления суммы компонентов файла f и произведения ненулевых компонентов этого файла.
Язык программирования: Pascal


Информатика (15 баллов) | 87 просмотров
0

а в файл вносим случайные числа?

0

Нет, числа забивать вручную

Дано ответов: 2
0 голосов
Правильный ответ

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.

(456 баллов)
0

Даже полностью твою изначальную всё равно выдаёт, то, что нету доступа к файлу

0

ну извини. скопировал отсюда посмотрел у Меня всё пашет, турбо паскаль 7

0

ABC

0

И в этой среде всё ОК .

0

Теперь начал писать только входная строка имела неверный формат

0

ошибка появляется сразу же после запуска или после того как Ты ввёл числа ?

0

после того, как я ввёл числа

0

видишь строку "read(f,x);" измени её на "readln(f,x);

0

не путай с строкой read(x);

0

Спасибо, всё работает, вот это у тебя голова работает, не то, что у меня

0 голосов

Cvar
  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



(142k баллов)