13.01.2012, 21:55 | #1 (permalink) | |
Вечная ученица
Регистрация: 27.06.2011
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Программа в паскале, помогите, пожалуйста, исправить программу
Не могу исправить код программы, точнее не могу понять, что мне надо сделать. В задаче дан массив записей, со сведениями об авиакомпаниях (название авиакомпании, базовый аэропорт, количество перевозимых пассажиров в год, количество ВС, численность персонала). Надо ввести и вывести исходные данные. У меня получается если известно количество авиакомпаний, а вот если не известно кол-во авиакомпаний, как тогда делать? Думаю, что надо использовать while. Но вот как и куда его поставить - не знаю. вот мой код для 10 авиакомпаний: Цитата:
|
|
13.01.2012, 21:55 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Скорее всего в схожих темах вы найдете много полезной информации Помогите составить программу на Паскале Помогите исправить программу С# |
13.01.2012, 22:12 | #2 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
В процедуре VVOD вместо цикла for используйте цикл repeat...until, в качестве условия для продолжения используйте кодовую фразу, например, после ввода компании спросите, желаете ли вы продолжить ввод, если не желаете, нажмите N и Enter, символ считайте в переменную, а в until условием пропишите эту переменную не равную 'N'.
И еще, константе присвойте заведомо большое значение, дабы не пришлось переопределять массив как динамический. Ну, или сразу определите массив динамическим, так вы получите возможность в режиме реального времени выделять под него память по мере ввода элементов. |
13.01.2012, 22:17 | #3 (permalink) |
Вечная ученица
Регистрация: 27.06.2011
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
а если у меня нельзя использовать кодовую фразу?
т.е. просто дан файл с записями, в котором n авиакомпаний, и надо их все вывести как есть в файл результата |
13.01.2012, 22:26 | #4 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
n в начале файла хранится? Если нужна работа с файлом, то используйте цикл while not eof(FI) do... С таким условием считывание записей из файла будет осуществляться пока не будет прочитан признак конца файла EOF(FI)
|
13.01.2012, 22:32 | #5 (permalink) |
Вечная ученица
Регистрация: 27.06.2011
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
нет, n не храниться.
Текстовый файл с данными в виде: Sibir Sentralnii 3000 2 9 Lux Novii 3456 6 99 и т.д |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
13.01.2012, 22:35 | #6 (permalink) |
Вечная ученица
Регистрация: 27.06.2011
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
про while not eof(FI) do..
поняла а если записи будут разделяться другими? например идет первая запись( с фиксированным кол-вом элементов) за ней требуемая ( где не изв кол-во эл-ов) опять запись с фиксированным кол-вом эл-ов и снова требуемая с неизв-ым кол-вом эл-ов |
13.01.2012, 22:37 | #7 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Могу порекомендовать вам только использовать динамические массивы, или писать напрямую из входного файла в выходной без промежуточного хранения в массиве, дабы не заморачиваться с динамическими структурами.
|
13.01.2012, 22:41 | #8 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Количество элементов в записи должно быть фиксированным или не превышать максимально допустимого (меньше можно, больше - ни-ни!). Обычно файлы формируются с учетом требования к структуре, чтобы не было ошибок чтения. Но если количество переменных будет различаться в каждой записи, то можно ввести дополнительный цикл чтения до конца строки (EOL(FI)), причем несчитанные значения должны трактоваться как нулевые. Следовательно, перед циклом чтения переменные нужно обнулять.
|
13.01.2012, 22:46 | #10 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Конец файла тоже проверять надо
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|