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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2011, 18:33   #1
el.bason
 
Регистрация: 29.05.2011
Сообщений: 5
По умолчанию паскаль

помогите найти ошибку , первая программа создает файл с массивом, а вторая должна выдать результат сумму элементов массива произведение и ср. значение. Но она во второй программе почему то нечего не выдает

Первая программа

program qwe;
uses crt;
const n=100;
type sc=record
m:array[1..n]of integer;
end;
var
war:file of sc;
sc2:sc;
i,t:integer;
begin
clrscr;
writeln('Сколько чисел: ');
readln(t);
assign(war,'123.dat');
rewrite(war);
begin with sc2 do
begin
for i:=1 to t do
begin
randomize;
m[i]:=random(100)-50;
write(m[i],' ');
end;
write(war,sc2);
end;
close(war);
end;
end.

вторая

program qwe2;
uses crt;
const n=100;
type sc=record
m:array[1..n]of integer;
end;
var
war:file of sc;
sc2:sc;
i,t,y:integer;
sum,pro:integer;
sr:real;
begin
clrscr;
assign(war,'123.dat');
reset(war);
while not EOF(war) do
begin
read(war,sc2);
with sc2 do
begin
for i:=1 to t do
begin
sum:=sum+m[i];
pro:=pro*m[i];
sr:=(sr+m[i])/t;
end;
writeln('сумма ',sum,' среднее значение ',sr,' произведение ',pro);
end;
close(war);
end;
end.
el.bason вне форума Ответить с цитированием
Старый 21.11.2011, 19:12   #2
Karpinsky
Подтвердите свой е-майл
 
Регистрация: 19.10.2011
Сообщений: 28
По умолчанию

Цитата:
Но она во второй программе почему то нечего не выдает
Потому что цикл

Код:
for i:=1 to t do
begin
   { ... }
end;
при t = 0 (а равняется t именно нулю, никаких других значений в нее не присваивалось) не выполнится ни разу, и программа завершится, ничего не посчитав. Что самое интересное - вычислить, сколько в прочитанном массиве "полезных" элементов нельзя, если где-то не сохранить это количество. Скажем, массив описать не [1 .. 100], а [0 .. 100], и в нулевом элементе хранить значение, сколько элементов будет обрабатываться... А начиная с 1-го уже сами данные...
Karpinsky вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль, Борланд Паскаль-в чем разница??? Vremya-Dengy Паскаль, Turbo Pascal, PascalABC.NET 13 31.05.2011 18:23
паскаль и турбо паскаль Евгения Игоревна Помощь студентам 6 05.05.2011 14:31
Паскаль Анастасия18 Помощь студентам 1 21.02.2011 23:11
паскаль Luckyman Помощь студентам 0 16.02.2011 17:38