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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2012, 19:13   #1
Начинающий програм
Форумчанин
 
Аватар для Начинающий програм
 
Регистрация: 22.11.2011
Сообщений: 201
По умолчанию Код не запускается в Delphi

Всем доброго времени суток! Программа в делфи не запускается. А в ABC паскале запускается и все работает как надо. Что нужно сделать что бы код запускался в делфи?

Код:
{                               Условие задачи.
Создайте файл Студент. Из файла Студент занесите в отдельный файл записи
об отличниках.}

program Student;
type
  anketa=record
           fio:string[50];
           kurs:integer;
           ocenka:record
                    infor,matem,psihol,istoriya:integer
                  end
         end;
  tfile=file of anketa;

procedure Creation_Fail(var f:tfile);
var
  i,n:integer;
  a:anketa;
begin
  writeln('Введите кол-во студентов');
  read(n);
  rewrite(f);
  writeln('Введите данные о студентах');
  for i:=1 to n do
  begin
    writeln('Введите ФИО ',i,' студента');
    read(a.fio);
    writeln('Введите курс на котором обучается ',i,' студент');
    read(a.kurs);
    writeln('Оценка по информатике ',i,' студента');
    read(a.ocenka.infor);
    writeln('Оценка по математике ',i,' студент');
    read(a.ocenka.matem);
    writeln('Оценка по психологии ',i,' студента');
    read(a.ocenka.psihol);
    writeln('Оценка по истории ',i,' студент');
    read(a.ocenka.istoriya);
    write(f,a)
  end;
  close(f)
end;


procedure Print_Fail(f:tfile);
var
  a:anketa;
begin
  reset(f);
  while not eof(f) do
  begin
    read(f,a);
    writeln('ФИО: ',a.fio);
    writeln('Курс: ',a.kurs);
    writeln('Оценка по информатике: ',a.ocenka.infor);
    writeln('Оценка по математике: ',a.ocenka.matem);
    writeln('Оценка по психологии: ',a.ocenka.psihol);
    writeln('Оценка по истории: ',a.ocenka.istoriya)
  end;
  close(f)
end;

procedure New_File(f1:tfile; var f2:tfile);
var
  a:anketa;
  s:integer;
begin
  reset(f1);
  rewrite(f2);
  while not eof(f1) do
    begin
      read(f1,a);
      s:=a.ocenka.infor+a.ocenka.matem+a.ocenka.psihol+a.ocenka.istoriya;
      if s=20 then
      write(f2,a)
    end;
  close(f1);
  close(f2)
end;

var
  f1,f2:tfile;
begin
  assign(f1,'студент');
  assign(f2,'студент2');
  Creation_Fail(f1);
  writeln;
  writeln('Файл содержащий сведения о студентах:');
  Print_Fail(f1);
  New_File(f1,f2);
  writeln;
  writeln('Файл содержащий сведения об отличниках:');
  Print_Fail(f2)
end.
Начинающий програм вне форума Ответить с цитированием
Старый 28.05.2012, 19:17   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

нужно добавить {$APPTYPE CONSOLE } и исправить ошибки.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 28.05.2012, 22:55   #3
Начинающий програм
Форумчанин
 
Аватар для Начинающий програм
 
Регистрация: 22.11.2011
Сообщений: 201
По умолчанию

А точнее, можно узнать что нужно, что бы в делфи работало?
Начинающий програм вне форума Ответить с цитированием
Старый 29.05.2012, 01:23   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

как минимум добавить var у всех параметров типа tfile
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 29.05.2012, 01:25   #5
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

1)Начало должно быть такое:
Код:
program Student;

{$APPTYPE CONSOLE}

uses
  SysUtils;


type
 c=record
   infor,matem,psihol,istoriya:integer;
   end;

  anketa=record
           fio:string[50];
           kurs:integer;
           ocenka:c;
         end;
  tfile=file of anketa;
2)Вместо assign и close использовать assignfile и closefile.
3) В процедурах параметры должны быть описанны как переменные, а не как значения.
То есть вместо:
Код:
procedure Print_Fail(f:tfile);
должно быть
Код:
procedure Print_Fail(var f:tfile);
Ну и в конце тела программы поставить "readln;", иначе вы ничего на экране не увидите, после того как введете всю инфу о учениках.
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось Rin; 29.05.2012 в 01:36.
Rin вне форума Ответить с цитированием
Старый 29.05.2012, 09:28   #6
Начинающий програм
Форумчанин
 
Аватар для Начинающий програм
 
Регистрация: 22.11.2011
Сообщений: 201
По умолчанию

Спасибо! Все получилось!
Начинающий програм вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не запускается Delphi 2010 Saitum Общие вопросы Delphi 5 29.05.2012 10:00
не запускается рабочий код в дельфи madman797 Помощь студентам 0 20.12.2011 01:27
Не запускается код stenl1 Visual C++ 6 09.01.2011 23:53
Не запускается Delphi beemoto Софт 2 26.01.2010 10:21
Не запускается Delphi 7 type_Oleg Софт 11 20.08.2009 01:53