Программа в паскале, помогите, пожалуйста, исправить программу
Добрый вечер,
Не могу исправить код программы, точнее не могу понять, что мне надо сделать. В задаче дан массив записей, со сведениями об авиакомпаниях (название авиакомпании, базовый аэропорт, количество перевозимых пассажиров в год, количество ВС, численность персонала). Надо ввести и вывести исходные данные. У меня получается если известно количество авиакомпаний, а вот если не известно кол-во авиакомпаний, как тогда делать? Думаю, что надо использовать while. Но вот как и куда его поставить - не знаю. вот мой код для 10 авиакомпаний: Цитата:
|
В процедуре VVOD вместо цикла for используйте цикл repeat...until, в качестве условия для продолжения используйте кодовую фразу, например, после ввода компании спросите, желаете ли вы продолжить ввод, если не желаете, нажмите N и Enter, символ считайте в переменную, а в until условием пропишите эту переменную не равную 'N'.
И еще, константе присвойте заведомо большое значение, дабы не пришлось переопределять массив как динамический. Ну, или сразу определите массив динамическим, так вы получите возможность в режиме реального времени выделять под него память по мере ввода элементов. |
а если у меня нельзя использовать кодовую фразу?
т.е. просто дан файл с записями, в котором n авиакомпаний, и надо их все вывести как есть в файл результата |
n в начале файла хранится? Если нужна работа с файлом, то используйте цикл while not eof(FI) do... С таким условием считывание записей из файла будет осуществляться пока не будет прочитан признак конца файла EOF(FI)
|
нет, n не храниться.
Текстовый файл с данными в виде: Sibir Sentralnii 3000 2 9 Lux Novii 3456 6 99 и т.д |
про while not eof(FI) do..
поняла а если записи будут разделяться другими? например идет первая запись( с фиксированным кол-вом элементов) за ней требуемая ( где не изв кол-во эл-ов) опять запись с фиксированным кол-вом эл-ов и снова требуемая с неизв-ым кол-вом эл-ов |
Могу порекомендовать вам только использовать динамические массивы, или писать напрямую из входного файла в выходной без промежуточного хранения в массиве, дабы не заморачиваться с динамическими структурами.
|
Количество элементов в записи должно быть фиксированным или не превышать максимально допустимого (меньше можно, больше - ни-ни!). Обычно файлы формируются с учетом требования к структуре, чтобы не было ошибок чтения. Но если количество переменных будет различаться в каждой записи, то можно ввести дополнительный цикл чтения до конца строки (EOL(FI)), причем несчитанные значения должны трактоваться как нулевые. Следовательно, перед циклом чтения переменные нужно обнулять.
|
т.е. я не проверяю на конец файла, а каждый раз смотрю на конец строки?
|
Конец файла тоже проверять надо :)
|
Часовой пояс GMT +4, время: 23:56. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.