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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2012, 22:24   #1
Oksik_
Новичок
Джуниор
 
Регистрация: 05.11.2012
Сообщений: 6
Печаль Найти ошибку в коде

Нужно создать файл, в котором будет содержаться информация об марке автомобиля, его цене, годе выпуска, фамилии и адреса владельца.
Код:
    Program file;
    uses crt;
    Type Auto = record
          fio,adress,marka: string;
          price,year: integer;
    end;
    var info : auto;
         f: file of auto;
         name: string;
    begin
    clrscr;
    Writeln ('Задайте имя файла');
    Readln (name);
    Assign (f, name);
    Rewrite (f);
    Writeln ('Введите фамилию, адрес владельца, марку автомобиля');
    Readln (info.fio, info.adress, info.marka);
    While info.fio <> ' ' do
    Begin
    Writeln ('Введите цену и год выпуска автомобиля');
    Readln (info.price, info.year);
    Write (f, info);
    Writeln ('Введите фамилию, адрес следующего владельца, марку автомобиля ');
    Readln (info.fio, info.adress. info.marka);
    End;
    Close(f);
    Writeln ('Файл создан');
    readln
    End.
имя файла задаю spisok.txt, файл он создаёт, но записывает туда только фамилию, адрес, марку первого владельца/автомобиля, а цену и год не записывает...В чём ошибка?

Последний раз редактировалось Oksik_; 05.11.2012 в 22:26.
Oksik_ вне форума Ответить с цитированием
Старый 05.11.2012, 22:27   #2
koljsch
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 360
По умолчанию

Не уверен точно, но у Вас же всего один тип данных Auto, это info.
И как я понимаю, то Вам нужно несколько владельцев записать, но тогда нужен массив типа Auto
koljsch вне форума Ответить с цитированием
Старый 05.11.2012, 22:34   #3
Oksik_
Новичок
Джуниор
 
Регистрация: 05.11.2012
Сообщений: 6
По умолчанию

ну по идее, чтобы записать только одного владельца, он цену и год должен тоже вывести, а он не хочет(
Oksik_ вне форума Ответить с цитированием
Старый 05.11.2012, 22:47   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Попробуйте заполнить поля Auto прямо в коде и записать в файл.
И, на всякий случай, поменяйте в описании структуры string на string[30], т.е. ограничьте длину строки.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 05.11.2012 в 22:49.
BDA вне форума Ответить с цитированием
Старый 05.11.2012, 22:49   #5
koljsch
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 360
По умолчанию

Попробуйте, где
Код:
Writeln ('Введите цену и год выпуска автомобиля');
    Readln (info.price, info.year);
    Write (f, info);
написать
Код:
Writeln ('Введите цену и год выпуска автомобиля');
    Readln (info.price, info.year);
    Write (f, info.price);
koljsch вне форума Ответить с цитированием
Старый 05.11.2012, 22:50   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Цитата:
Write (f, info.price);
Так лучше не делать, т.к. файл типа Auto, а не Integer.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 05.11.2012, 22:58   #7
koljsch
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 360
По умолчанию

Да, верно, извиняюсь.
На вскидку, разве эта строка скомпилируется?
Код:
Readln (info.fio, info.adress. info.marka);
Может там взамен "." надо ","?
И он у Вас хотя бы спрашивает ввести цену и год?

Последний раз редактировалось koljsch; 06.11.2012 в 00:02. Причина: грамматическая ошибка
koljsch вне форума Ответить с цитированием
Старый 05.11.2012, 23:04   #8
Oksik_
Новичок
Джуниор
 
Регистрация: 05.11.2012
Сообщений: 6
По умолчанию

Цитата:
Сообщение от koljsch Посмотреть сообщение
Да, верно, извиняюсь.
На вскику, разве эта строка скомпилируется?
Код:
Readln (info.fio, info.adress. info.marka);
Может там взамен "." надо ","?
И он у Вас хотя бы спрашивает ввести цену и год?
компилирует, ещё как, и просит ввести, но в файле цена и год не отображается..
Oksik_ вне форума Ответить с цитированием
Старый 05.11.2012, 23:06   #9
Oksik_
Новичок
Джуниор
 
Регистрация: 05.11.2012
Сообщений: 6
По умолчанию

сейчас попробую, но по заданию надо сделать, чтобы с клавы вводилось
Oksik_ вне форума Ответить с цитированием
Старый 05.11.2012, 23:59   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Во-первых, не пишите несколько сообщений подряд (нарушение правил форума), а используйте кнопочку Правка.
Во-вторых, попробуйте исправить точку на запятую, как сказал koljsch (и правда, удивительно, почему компилируется).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти ошибку в коде,С++ ! Aaaaaa111 Помощь студентам 1 16.02.2012 11:10
Нужно найти ошибку в коде (C++) lot555 Помощь студентам 4 27.05.2011 09:05
помогите найти ошибку в коде Saka Помощь студентам 6 07.12.2009 11:43
Нужно найти ошибку в коде Вован111 Помощь студентам 15 08.11.2009 14:33