Что дают скобки в имени программы?

Тема в разделе "Delphi - FAQ", создана пользователем Vadik(R), 7 ноя 2009.

  1. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Люди, недавно увидел что в программах на паскале можно писать не просто program proga1; а так
    program proga1(a,h);
    Вопрос - в чем смысл этих скобок, создаются какие-либо переменные влияющие на ход выполнения программы? Или вообще на что скобки влияют и зачем их может быть иногда нужно писать?
    ---
    тему уже обсужал на других форумах, но пока что не помогли. чтобы не было одинаковых ответов, посмотрите что мне уже понаотвечали здесь http://programmersforum.ru/showthread.php?...28&posted=1
     
  2. zubr

    zubr Гость

    Borland Delphi Help
     
  3. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Программный заголовок определяет имя программы. Он состоит из зарезервированного слова program, а затем правильный идентификатор, после него стоит точка с запятой. Идентификатор должен совпадать с именем файла проекта. В предыдущем примере, так как программа названа Editor, проектный файл должен называться Editor.dpr.

    В стандартном Паскале, программа может включать в себя раздел параметров после имени программы:

    Program Calc(input, output);

    Компилятор Borland Delphi игнорирует эти параметры.

    Вот. Из этого понял, что делфи игнорирует эти параметры. А в стандартном паскале что они дают?
    Мои предположения:
    1. Можно вызывать программу с параметрами командной строки, соответствующие файлам в скобках.
    2. Если не объявить этот параметр, то нельзя будет использовать файлы input, output.
    3. Возможно компилятору легче будет переварить, что если мы напишем program abc(h); .... write(h, mystr); то он просто будет знать что надо писать переменную mystr в файл h, а не пытаться выводить на экран значение переменной h и mystr.
    zubr, если ты знаешь для чего это нужно, то мог бы показать код не с частным случаем program abc(input, output), а с таким например program abc(a,b,c)?
    Заранее спасибо! :)
     
  4. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Раз это связано со стандартами паскаля, решил я поискать паскаль с этим стандартом. Нашёл Irie Pascal. После долгих пыток понял, что так раньше было просто удобнее писать и написав program proga(a, b, c);
    мы тем самым себя обязываем объявить файловые переменные a, b и c. Вот, а удобство заключается в том, что для этих переменных не надо писать assign(a, '1.txt'); и т.д. можно просто вызвать программу с параметрами proga 1.txt 2.txt 3.txt и переменные a, b, c автоматически свяжутся соответственно с файлами 1.txt, 2.txt и 3.txt. Но это в старом стандарте. А сейчас как не пиши, толку тебе эти скобки ничего не дадут. Во всех современных паскалях (Turbo, Free, ABC) и Делфи такое не работает и связывать файловую переменную с файлом можно только через assign.
    Вот источник, который мне немного помог решить этот вопрос http://www.standardpascal.org/pascalfaq.html
    Вот, вроде так. :)
     
  5. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.470
    Симпатии:
    27
    Докопался-таки=)

    Добавлено: :)
     
Загрузка...

Поделиться этой страницей