IPB
ЛогинПароль:

> Монополия, некоторая проблема с программой
сообщение
Сообщение #1


Знаток
****

Группа: Пользователи
Сообщений: 346
Пол: Мужской
Реальное имя: Иван

Репутация: -  7  +


Начал писать "Монополию", если не выйдет с самообучающимся ИИ, сделаю просто на человек VS ИИ smile.gif
но вот проблема, программа верней - то что пока написано, вылетает, перед кодом коечто укажу для пояснения:
всё поле - это масив из 40 елементов - записей (element);
Заполнение поля - это считывание с текстового файла каждого елемента записи, причом для каждого считываеться обязательноего имя, и номер, если елемент поля - участок, то считывается еще и его стоимость, аренда и тд., если транспортная магистраль - то считываеться стоимость, если карточка то считываеться её тип, и тд...
И всё якобы хорошо, при первом проходе всё для первого елемента правильно считывает, но когда начинает считываться второй - прога вылетает, не считывает даже обязательные поля...
вот код:

program Monoply;
uses
Crt,Graph;
const

N=40;
doma : set of byte = [1,3,6,8,9,11,13,14,16,18,19,21,23,24,26,28,29,31,32,34,37,39];
card : set of byte = [2,4,12,17,27,38];
special : set of byte = [7,10,20,30,36,40];
transport : set of byte = [5,15,25,35];
metro_phone : set of byte = [22,33];
nomber_of_plase : set of byte = [1..N];
type
element = record

_name:string;
_nomber:byte;

case Activ_Nomber:byte of
1,3,6,8,9,11,13,14,16,18,19,21,23,24,26,28,29,31,32,34,37,39 : ( cost,arenda_0,arenda_1,arenda_2,arenda_3,arenda_4,arenda_5:integer;
house_cost:byte);
2,4,12,17,27,3 : (type_of_card:byte;);
7,10,20,30,36,4 : (type_of_spesial:byte;);
5,15,25,35 : (cost_of_transport:integer;);
22,33 : (cost_of_metro_phone:integer;);
end;
var
F1:text;
M:array [1..N] of element;

{////////////////////////////////////////////////////////}

procedure Initializations;
var
Gdriver,Gmod:integer;
begin
Gdriver:=detect;
initgraph(Gdriver,Gmod,'init\');
end;

{////////////////////////////////////////////////////////}

procedure Zapis_v_pamat;
var
I:integer;
nom:byte;
begin
Assign(F1,'pole.txt');
reset(F1);

For I:=1 to N do
begin
with M[I] do
begin

read(F1,_name);
read(F1,_nomber);
Activ_nomber:=_nomber;

if Activ_nomber in doma
then begin
read(F1,cost);
read(F1,arenda_0);
read(F1,arenda_1);
read(F1,arenda_2);
read(F1,arenda_3);
read(F1,arenda_4);
read(F1,arenda_5);
read(F1,house_cost);
end;
if Activ_nomber in card then read(F1,type_of_card);
if Activ_nomber in special then read(F1,type_of_spesial);
if Activ_nomber in transport then read(F1,cost_of_transport);
if Activ_nomber in metro_phone then read(F1,cost_of_metro_phone);

end;
end;

close(F1);
end;

{////////////////////////////////////////////////////////}

begin
Zapis_v_pamat;
readln;
end.



в файле только первые 12 елементов, но вылетает на втором

Сообщение отредактировано: RathaR -


Прикрепленные файлы
Прикрепленный файл  pole.txt ( 409 байт ) Кол-во скачиваний: 357


--------------------
Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик!
Я - системный аналитик!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Все Read-ы на ReadLn исправь, у тебя же каждое данное на новой строке... Символы #10, #13 (перевод строки/возврат каретки) портят тебе всю картину.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.04.2024 1:54
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name