Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2011, 11:14   #1
Homeros
Новичок
Джуниор
 
Регистрация: 26.01.2011
Сообщений: 3
По умолчанию Тестовый файл. Найти сумму всех чисел, входящих в этот файл. (Паскаль)

Написал программу, выдаёт ошибку, помогите пожалуйста исправить

Вот текст: Дан тестовый файл. Найти сумму всех чисел, входящих в этот файл.

Код:
Program pr_8;
Uses Crt;
Var i,n,sum,y,x,j:integer;
f:text;
a:array[1..50] of string[20];
Begin
Assign(f, 'f.txt');
Rewrite(f);
Write('Ââåäèòå êîëè÷åñòâî ñòðîê ');
readln(n);
for i:= 1 to n do
begin
readln(a[i]);
writeln(f,a[i]:10);
end;
ReadLn(a[i]);
sum:=0;
for i:=1 to n do begin
x:=ord(a[n]);
If (x>47) and (x<58) then
begin
val(a[i],y,j);
sum:=sum+y;
end;
end;
Writeln(sum);
End.

___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 26.01.2011 в 13:58.
Homeros вне форума Ответить с цитированием
Старый 26.01.2011, 14:05   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

1) Так Вам нужно СОЗДАТЬ текстовый файл, или ПРОЧИТАТЬ данные из существующего?!

2) не морочьте себе голову. Паскаль сам прекрасно умеет преобразовать числа из строки в числовое представление:
read(f, ПеременнаяЧисловая) или readln(f, ПеременнаяЧисловая)
(read или readln - зависит от того, как представлены числа в текстовом файле)

3) массив то Вам зачем? Чтобы, если в файле будет не 20 чисел, а 40 программа не работала?!

нужно примерно так:
Код:
Program pr_8;
Uses Crt;
Var 
  a,sum :integer;
  f:text;
Begin
  Assign(f, 'f.txt');
  Reset(f);
  sum:=0;
  while not eof(f) do begin
    Read(f,a);
    sum := sum + a;
  end;
  Close(f); {файл надо обязательно закрыть!}
  Writeln('Сумма равна : ',sum);
  readln
End.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить сумму всех простых чисел denicko Помощь студентам 0 27.10.2010 20:46
Сформировать и напечатать множество всех четных чисел , не входящих в массив. Makcumqa Помощь студентам 1 18.03.2010 05:59
(паскль)найти сумму всех n-значных чисел кратных k(Задачка легкая, но дойти не может, помогите плиз) MsJane Помощь студентам 4 19.12.2009 01:28
Найти сумму всех чисел из промежутка от А до В, кратных 8 и 16 nickky2 Паскаль, Turbo Pascal, PascalABC.NET 8 05.12.2008 13:27
Я-юрист, есть задача - Найти сумму всех чисел из промежутка от А до В, кратные 13 и 5 Filosofijka Помощь студентам 1 24.11.2008 19:57