• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Подскажите, как сделать?

  • Автор темы Автор темы Pyx
  • Дата начала Дата начала

Pyx

Новые
Регистрация
16 Дек 2011
Сообщения
22
Реакции
0
Баллы
0
Подскажите, как сделать?

Создайте файл целых чисел, записав в него 15 последовательных чисел от 5 до 20. Вычислить сумму и произведение элементов.
вот я делала но..нужно чтобы результат выводился сразу на экран

program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;

const n=15;
var chuslo,sum, dob,i: integer;
intfile: file of integer;
begin
assign (intfile, 'chusla');
rewrite (intfile);
writeln (' Vvedit chusla vid 5 do 20: ');
for i:=1 to n do
begin
write(' ');
readln (chuslo);
write (intfile, chuslo);
end;
close (intfile);

reset (intfile);
sum:=0; dob:=1;
while not eof (intfile) do
begin
read (intfile,chuslo);
sum:=sum+chuslo;
dob:=dob*chuslo;
end;
close (intfile);
writeln (' sum=' ,sum,' dob=',dob);
readln
end.
 
Тут есть одна тонкость. Произведение (dob) этих чисел (кстати, в промежутке от 5 до 20 их 16, а не 15) далеко выходит за рамки целочисленных форматов, а потому его надлежит объявить вещественным (real).
Вот вариант, где это исправлено, а также я решил, что уж если вводятся последовательные натуральные числа, то вовсе ни к чему делать это вручную.
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
 Nmin=5;
 Nmax=20;
var
 chuslo,sum,i: integer;
 dob:Real;
 intfile: file of integer;
begin
 assign (intfile, 'chusla');
 rewrite (intfile);
 for i:=Nmin to Nmax do write (intfile, i);
 close (intfile);

 reset (intfile);
 sum:=0;
 dob:=1;
 while not eof (intfile) do
  begin
   read (intfile,chuslo);
   sum:=sum+chuslo;
   dob:=dob*chuslo;
  end;
 close (intfile);
 writeln (' sum=' ,sum,' dob=',dob:0:0);
 readln
end.
 
БОЛЬШОЕ СПАСИБО

Спасибо, все работает:)
 
Назад
Сверху