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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2008, 17:10   #1
El Fierro
 
Регистрация: 14.12.2008
Сообщений: 6
Восклицание I/O error 105, программа с использованием Record

Здравствуйте!

В данной программе вылезает ошибка I/O error 105 на строке "write('Write the surname of the student or write "no more" to stop');", при этом, если эту строку удалить, то ошибка все равно возникнет на этом месте. Подскажите, пожалуйста, как исправить сию ошибку.

Код:
program Students;

uses
  SysUtils;


const
num_m=3; // количество оценок
num_stud=10; // количество студентов

type
  student=record
          name:string[20]; // имя
          o:array [1..num_m] of byte; // массив оценок
          mid_m:real;  // средний балл
          end;
mas=array [1..num_stud] of student;




var
m:mas; // массив студентов
m5,m345:array [1..num_stud] of string;
n, // число студентов в группе (фактическое)
q,h,h1,i,j,
sum :integer; // сумма оценок

begin
sum:=0;
n:=0;
h:=0;
h1:=0;

for i:=1 to 10 do
  begin
    write('Write the surname of the student or write "no more" to stop');
    readln(m[i].name);
    if m[i].name='no more'
    then
    begin
      n:=i-1;
      break
    end
    else
  begin
  sum:=0;
    writeln('Write 3 marks');
    for j:=1 to num_m do
      begin
        read(m[i].o[j]);
        sum:=sum+m[i].o[j]; // сумма оценок
      end;
      readln;
    m[i].mid_m:=sum/num_m; // средний балл
  end; end;


writeln('                 ***THE GROUP***                ');
writeln('|-------------------|---------------|-------------|');
writeln('|  ','Surname','         |    ','Marks','     |','Mid. mark',' |');
writeln('|------------------|---------------|-------------|');
for i:=1 to n do begin write('+',m[i].name:20,'+   ');
for j:=1 to num_m do write(m[i].o[j],' ');
write('       +',m[i].mid_m:2:1,' ':11,'+');
writeln;
end;
writeln('|------------------|---------------|-------------|');

 {------------------------------------------------------------------------}
for i:=1 to n do begin
q:=0;
if m[i].mid_m=5 then  // повышенная стипендия
begin
h:=h+1;
m5[h]:=m[i].name;
end;

 if (m[i].o[1]>2) and (m[i].o[2]>2) and (m[i].o[3]>2) and (m[i].mid_m<5) then
 begin h1:=h1+1;
m345[h1]:=m[i].name;
end;
end;

writeln('Increased grant');
for i:=1 to h do writeln(m5[i]);
writeln('Normal grant');
for i:=1 to h1 do writeln(m345[i]);
writeln;

readln;
end.

Последний раз редактировалось Stilet; 14.12.2008 в 17:19.
El Fierro вне форума Ответить с цитированием
Старый 14.12.2008, 17:22   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Добавь директиву {$APPTYPE CONSOLE}

P.S. Такое впечатление что код скопипастен.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.12.2008, 17:31   #3
El Fierro
 
Регистрация: 14.12.2008
Сообщений: 6
По умолчанию

А, как я мог удалить эту директиву! Спасибо. Да, текст скопипастен, но директива забыта не при копировании... Я её вообще забыл. Спасибо ещё раз.
El Fierro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа с использованием подпрограмм, создаёт односвязный список и вычисляет сумму положительных чисел LOVELY Паскаль, Turbo Pascal, PascalABC.NET 5 13.12.2008 01:27
программа с использованием БД Paradox hinku Общие вопросы Delphi 0 07.10.2008 11:27
Программа на C++ с использованием fstream Dergard Помощь студентам 2 14.12.2007 05:18
Программа с использованием функции Cartman18 Помощь студентам 1 10.12.2007 16:29
ошибка 105 (при работе с типизированными файлами) sdp Общие вопросы Delphi 8 11.07.2007 11:12