TURBO PASCAL

Новости           

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Гостевая книга

Рассылка

Благодарности

От автора

 

 

 
HELLO WORD!
Вступление
Программа
Теория
Голосование
Послесловие

Вступление

Что такое Hello World! - спросите любого програмиста - он тихо посмеётся про себя и посмотрит на вас, как на идиота. Програмкой типа Hello World! называют простую программу вывода текста на экран. Надеюсь, что будем выводить понятно :) Кстати Hello world! по русски значит "Привет, мир!".
90% начинают именно с программок типа Hello world!

Программа

Сразу начнём с текста программы:


Program HelloWord;

begin
	 writeLn ('Hello World!')
end.

Теория

Итак быстренько запускаем паскаль, вбиваем (в смысле набираем) эти 4 строчки, нажимаем F2 (сохранить), вводим имя, нажимаем Ctrl+F9 (исполнение)..... Какого чёрта! Ничего не вывелось! Досадно наверное ?? А ведь всё очень просто, как всегда :)

Что нужно сделать, что бы увидеть результаты программы?

Ну прежде всего написать программу. Этот важный пункт мы сделали. Можно загнуть палец на левой руке, правая нужна, что бы шуровать мышой :)
Откомпилировать её. Что это такое позже, пока достаточно знать, что это происходит при нажатии Ctrl+F9.... загните второй палец ...
Запустить её. Это тоже входит в нажатие Ctrl+F9.... Таким образом на руке должно быть загнуто три пальца
Теперь снимите правую руку с мыши и попробуйте нажать Alt+F5... я знаю это тяжело, но от этого зависит результат.... Это был четвёртый палец...
Можно наслаждаться результатом :))) У вас на экране картинка типа такой:
Borland Pascal Version 7.0 Copyright (c) 1983,92 Borland International
Hello World!
УРА!!! Можете разогнуть пальцы и радостно подпрыгнуть!!!!! Hello World! - эту строчку вывела наша программа!!!

Когда пройдет первая радость от содеяного, давайте рассмотрим теперь всё это дело более серьёзно (по строкам):

  1. Итак слово Program - служебное слово языка паскаль (вы заметитили я его выделил ? :)). Служебные слова - это такие слова, которые программист использует в строго определённых целях. После слова Program идёт имя программы, однако это имя может и не совпадать с именем файла. Это служебные данные и на программе они не отражаются. Как это можно проверить? КОНЕЧНО же экспериментом: удалите эту строчку, программа будет прекрастно работать !! Как говорит описание: это чисто информативный заголовок. Замечательно! Всё начинает проясняться! Обратите внимание на завершающую току с запятой (;) Без неё нельзя! Почему? Расскажу чуть позже...
  2. Дальше следует служебное слово begin - отсюда начинается сама программа (begin - англ. начало). Кстати не плохо было бы обзавестись словарём или знаниями английского... поможет....
  3. writeLn ('Hello World!') - обратите внимание, что здесь нет служебных слов! (Hello World! - выделенна что бы понять, что это текст). writeLn - это функция вывода текста на экран, а текст в кавычках ('...') - это, как мона догадаться, то, что надо вывести на экран. Т.е. что бы вызвать функцию нужно написать её имя и в скобках указать параметр. СТОП! Вполне может возникнуть вопрос а откуда паскаль знает, что это за функция, в смысле, что она должна выводить текст на экран ??? Да всё дело в том, что с турбо паскалем поставляется набор стандартных функций, и это одна из них. writeLine - вывести линию, т.е. если вы до сих пор не заметили, то курсор переводится на следующую строчку и возвращается в начало этой строки. Например можете написать такое: write ('Hello World!') - курсор не будет переводится и каждый раз запуская программу слова Hello World! будут помещаться на одной строке, а не на новых! Т.е. можно сделать глубокомысленное заключение: функция write выводит текст на экран :))))))
  4. Ну вот мы уже близки к концу программы... Последняя сткрока: end. - если begin указывал на начало программы, то end указывает на её конец. Обратите ОЧЕНЬ МНОГО ВНИМАНИЯ на точку: end. - этим мы указываем, что текст программы закончился и дальше читать его не надо. Читать это компилятору а не вам! Как в этом убедится? - не бойтесь экспериментировать! (хотя на начальном уровне лучше поосторожнее) Итак допишем после точки что-то типа этого: Баклан - это звучит гордо!... попытайтесь теперь нажать на Ctrl+F9 и посмотрите результат .... Однако добавление этой строки в любое другое место программы (кроме как вместо Hello World! или где-то рядом с ним :) вызовет ошибку: Error 5: Syntax error. - синтаксическая ошибка - слово Баклан не входит ни в число служебных слов, ни в число стандартных функций и поэтому паскаль его не понимает!

Итак вы узнали 3 служебных слова, 2 стандартные функции и написали первую программу!!

Однако много чего осталось за кадром, попытаюсь объяснить всё это подробнее:

Что происходит при нажатии Ctrl+F9??:
Запускаются программы - компилятор и линкер:
Компилятор - специальная программа, которая проверяет ошибки в вашей программе, и создаёт специальный файл: *.obj
Линкер - специальная программа, которая превращает obj-файл в exe-файл
... и, если компиляция и линковка прошли успешно (т.е. без ошибок), запускается ваша программа на исполнение
Кстати опции линкера и компилятора можно настроить здесь: Options -> Linker ... и Options -> Compiler ... однако пока там лучше ничего не менять!!
Что происходит при нажатии Alt+F5???
Появляется экран пользователя, т.е. экран с тем, что программа выводит на него. Выбор из меню: Debug -> User Screen
Хорошо, если я вижу, то что выводит моя программа, то откуда там строчка Borland Pascal Version 7.0 Copyright (c) 1983,92 Borland International - уж не добавляет ли фирма Борланд её ко всем программам написанных на Турбо Паскале????
На самом деле нет :) Убедится, что эту строчку выводит не ваша программа можно 2-мя путями:
Способ 1. Очевидный: Выйдете из Турбо Паскаля и запустите ваш файл на исполнение... этой строки не будет!
Способ 2. Не тривиальный (вот уж не знаю пишется ли это слитно или раздельно ?): Выйдите из Турбо Паскаля и зайдите в него вновь :) Зашли? Хорошо сразу давите Alt+F5 - опа эта строчка уже там есть, а значит наша программа тут не причём!!!
Что такое синтаксис языка?
Помните со школьной скамьи: синтаксис и пунктуация ??? Вот не надо было косить уроки!
Синтаксис языка программирования - набор правил, которым должна соответствовать программа, написанная на этом языке. Есть правила обязательные и не очень обязательные.

Давайте о правилах подробнее:
ЗАГЛАВНЫЕ и строчные буквы не различаются. Т.е. мы могли спокойно написать всё это так:
  PROGRAM   HELLOWORD;

  BEGIN  
	 WRITELN ('Hello World!')
  END.  
Однако если бы мы вместо Hello World! написали HELLO WORLD!, то и на экране мы бы увидели всё заглавными буквами! Это правило не распространяется на текст!
В написании программ можно использовать только: все буквы английского алфавита, символ подчёркивание "_", цифры 0-9 и спец. символы: @ # $ > < = - * [ ] { } + / ' , . : ; ^
Естественно это правило не распространяется на текст, такое вполне законно: writeLn (' Привет, мир!')
Каждая строка должна заканчиваться точкой с запятой! Однако есть исключения:
Если после данной строки (обозначим 1) стоит строка состоящая из одного слова end, то после строки 1 точку с запятой ставить не обязательно. Вот и мы не поставили в нашей программе точку с запятой, хотя если написать writeLn ('Hello World!');, то это не вызвало бы ошибок! Давайте рассмотрим ещё один пример:
  Program   HelloWord1;

  begin  
 	 write ('Баклан - это звучит гордо! ');
	 writeLn ('Hello World!')
  end.  
Тут мы уже выводим 2 строки на экран. Однако, если написать write ('Баклан - это звучит гордо! ') БЕЗ точки с запятой, то это вызовет ошибку: Error 85: ";" expected. (отсутствие точки с запятой). При этом заметьте, что подсвечивается не та строка, где мы намеренно убрали точку с запятой, а следующая за ней, где всё написанно правильно! Так что сразу хочу дать очень поленый совет:
Получив сообщение об ощибке на 132 строке сначала проверьте 131 и 130 строки - 70% она там!
Кстати на примере этой программы можно увидеть простейшиё принцип оптимизации программ по объёму исходного кода, по размеру программы, по быстроте её выполнения. Оптимизированный вариант:) :
  Program   HelloWord1;

  begin  
	 writeLn (' Баклан - это звучит гордо! Hello World!')
  end.  
Итак код мы сократили на одну строку, а размер ехе файла на 48 байт :))))
Так же в разряд исключений попадают некоторые служебные слова: например после слова begin нет точки с запятой!
Между прочим забыв поставить точку с запятой в конце строки вы совершаете одну из самых распространённых ошибок!
Программа заканчивается точкой (с этим правилом вы уже знакомы).

Голосование

Предлогаем вам проголосовать за периодичность рассылки. Пока она выходит раз в неделю, но может выходить и чаще. Всё зависит от вас! Проголосовать и посмотреть результаты можно здесь.

Послесловие

Пока вы ещё только делаете свои первые шаги в мире программирования хочу сразу сказать вам: НЕ МАТЕРИТЕ КОМПИЛЯТОР! когда он вам показывает строчку в которой не хватает ";" ведь он не не может сам дописать её, т.к. не знает, что вы хотели... типа как в песне:

..... Я очень умный, я всё ловлю на лету,
Но не понятно, что конкретно ты имела в виду ???.....
ну или примерно так... ! Конечно в воздухе летает мысль о создании интелектуального компилятора, который бы исправлял некоторые очевидные ошибки, но пока его нет придётся всё писать самим строго по правилам. Компилятор просто проверяет синтаксис вашей программы на соответсвие со стандартом языка и сообщает вам о любых отклонениях!

Вначале всегда трудно, если что-то совсем непонятно, то конечно же пишите. Хотя, как говорят:

Кого трясет - тот может пройтись,
Кто трус - из телеги вылазь!
Так, что если всё совсем плохо, то всё ещё в будующем. Постепенно всё утрясётся и встанет на свои места.

Ну и последнее - сайт и рассылка находятся в стадии разработки. Это про дизайн, так что если пока всё плохо, то есть надежда на улучшение :)
И совсем последнее :) - пришло n-е количество вопросов, где взять предыдущие выпуски рассылки. Что бы предупредить такие вопросы - адрес сайта -
http://www.ibp7.narod.ru/

[ Назад ] [ содержание ] [ дальшЕ ]

Если, что надо - мыльте ibp7@yandex.ru.
© 2002 Использование материалов без согласия авторов запрещено.

 

На первую страницу

 

Rambler's Top100 PROext: Top 1000 Rambler's Top100
(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz