Структура программы на языке программирования
Структура программы, написанной на Турбо Паскале, состоит из заголовка программы и двух основных частей: раздела описаний и раздела операторов.
PROGRAM Name; BEGIN END.
Слово PROGRAM зарезервировано в Pascal и используется для объявления имени программы. Заголовок программы необязателен и игнорируется компьютером.
Каждая операция описания, как и любое действие оператора, заканчивается символом « ; ».
Этот разделитель в языке Pascal отмечает конец оператора или описания. Использование особого разделителя позволяет располагать несколько операторов в одной строке.
Зарезервированное слово BEGIN сигнализирует компилятору о начале другой части программы – раздела операторов. Завершает всю программу зарезервированное слово END. Точка оповещает компилятор о конце текста программы.
Обязательной частью являются лишь тело программы (раздел операторов). Заголовок программы является хотя и необязательным, но желательным элементом.
Раздел описаний
Раздел описаний состоит из следующих подразделов:
· Подключение внешних модулей, необходимых для использования хранящихся в них наборов констант, типов данных, переменных, процедур и функций, которые можно использовать в своей программе;
· Описание меток, используемых в программе;
· Описание констант, объявляются идентификаторы, которые не могут изменять своего значения в «теле» программы. Исключение составляют лишь типизированные константы;
· Задание типов, определение идентификаторов типов для дальнейшего их использования;
· Объявление переменных, описываются идентификаторы, которые могут изменять свои значения в «теле» программы;
· Описание функций и процедур, содержит процедуры и функции, написанные программистом.
PROGRAM Name; Uses ; Label ; Const = ; :=; Type =; Var :; Function (параметры); …………… end; Procedure (параметры); …………… end; BEGIN END.
Порядок размещения подразделов произвольный, можно создавать несколько одинаковых подразделов.
Раздел операторов
Раздел операторов содержит все операторы (команды), которые будут выполнены во время запуска программы, выделяется словами
BEGIN END.
После END ставится точка, что означает конец программы. Всё, что в дальнейшем буден написано после «END.» не воспринимается компилятором, и соответственно, будет проигнорировано в процессе исполнения программы.
Алфавит языка. Лексика языка
Язык программирования Turbo Pascal (как и любой другой язык) образуют три его составляющие: алфавит, синтаксис и семантика.
Алфавитом языка называют совокупность всех допустимых символов, которые можно использовать в этом языке.
Синтаксис – система правил для записи допустимых конструкций языка программирования.
Семантика определяет смысловое значение предложений языка.
Основными понятиями в языках программирования обычно являются алфавит языка, константы, переменные, встроенные функции, логические и арифметические выражения.
Алфавит языка Паскаль включает:
- Прописные и строчные буквы латинского алфавита от A до z. Нет различий между заглавными и строчными буквами при их использовании для определения имен идентификаторов, кроме случая, когда слово связано с текстовыми константами;
- Символ подчеркивания ( _ ), который тоже считается буквой;
- Арабские цифры 0 1 2 3 4 5 6 7 8 9;
- Знаки арифметических операций: + — * / ^
- Специальные символы: . , : ; < >[ ] ( )% # ! $ &@
- Буквы русского алфавита используются только для записи текстовых констант и комментариев к программе.
Следующие комбинации специальных символов являются едиными символами, которые нельзя разделять пробелами:
больше или равно;
меньше или равно;
ограничители комментариев (наряду с < >);
Пробелы — это символ пробела (ASCII-32) и все управляющие символы кода ASCII (от 0 до 31).
К специальным символам относятся также служебные (зарезервированные) слова, смысл которых определен однозначно и которые не могут быть использованы для других целей. Для языка — это единые символы.
Служебные слова языка Турбо Паскаль: absolute, and, array, begin, case, const, div, do, downto, else, end, external, file, for, forward, function, goto, if, implementation, in, inline, interface, interrupt, label, mod, nil, not, of, or, packed, procedure, program, record, repeat, set, shl, shr, string, then, to, type, unit, until, uses, var, while, with, xor.
Последние версии языка Турбо Паскаль содержат также ряд служебных слов, относящихся к работе с объектами и встроенным ассемблером.
Идентификаторы
Идентификатором называется символическое имя определенного программного объекта. Идентификатор — произвольная последовательность латинских букв, арабских цифр и символов подчеркивания. Идентификатор необходим для обозначения основных объектов языка: константы, переменные, типы данных, процедуры, функции, программы.
В языке программирования Паскаль нельзя использовать в качестве идентификаторов:
· зарезервированные слова (выделяются белым цветом);
· имена встроенных процедур и функций;
· имена, начинающиеся не с латинской буквы или не с символа подчеркивания;
· имена, содержащие символы кроме латиницы, арабских цифр и символа подчеркивания;
· слова, разделенные пробелом.
Строчные и прописные буквы в идентификаторах и служебных словах не различаются.
Длина идентификатора ограничена длинной программной строки (126 символов), но компилятор различает только первые 63 символа.
Комментарии
Конструкции следующего вида представляют собой комментарии и, поэтому, игнорируются компилятором:
(любой текст, не содержащий символ «>»>
(* любой текст, не содержащий символы «*)» *)
Комментарий, содержащий знак $ после открывающей скобки является директивой компилятора.
-проверка ошибок ввода/вывода;
-проверка границ переменных;
Комментарий может располагаться в любом месте программы.
Типы данных языка программирования Турбо Паскаль
Любые данные Турбо Паскаля характеризуются своими типами. Тип определяет:
- Формат представления данных в памяти компьютера;
- Множество допустимых значений, принимаемое переменной или константой, принадлежащей к выбранному типу;
- Множество допустимых операций применимых к этому типу;
Тип переменной определяется при ее декларации. Одна из базовых концепций Паскаля заключается в жесткой проверке соответствия типов в операциях присваивания.
Типы данных в языке ТП делятся на 5 основных классов:
- Простые типы;
- Структурированные типы;
- Ссылочные типы;
- Процедурные типы;
- Объектные типы;
Простые типы данных
К простым типам данных относятся числовые (целые и вещественные) типы, логический, символьный, перечисляемый и диапазонный (интервальный) тип.
Типы данных Турбо Паскаля
Идентификатор
Диапазон (множество) значений
Основы языка программирования C++
Программа на С++ состоит из набора инструкций. Каждая инструкция (statement) выполняет определенное действие. В конце инструкции в языке C++ ставится точка с запятой (;). Данный знак указывает компилятору на завершение инструкции. Например:
std::coutДанная строка выводит на консоль строку "Hello world!", является инструкцией и поэтому завершается точкой с запятой.
Набор инструкций может представлять блок кода. Блок кода заключается в фигурные скобки, а инструкции помещаются между открывающей и закрывающей фигурными скобками:
В этом блоке кода две инструкции, которые выводят на консоль определенную строку.
Функция main
Каждая программа на языке С++ должна иметь как минимум одну функцию - функцию main() . Именно с этой функции начинается выполнение приложения. Ее имя main фиксировано и для всех программ на С++ всегда одинаково.
Функция также является блоком кода, поэтому ее тело обрамляется фигурными скобками, между которыми определяется набор инструкций.
В частности, при создании первой программы использовалась следующая функция main:
#include // подключаем заголовочный файл iostream int main() // определяем функцию main < // начало функции std::cout // конец функцииОпределение функии main начинается с возвращаемого типа. Функция main в любом случае должна возвращать число. Поэтому ее определение начинается с ключевого слова int .
Далее идет название функции, то есть main . После названия в скобках идет список параметров. В данном случае функция main не принимает никаких параметров, поэтому после названия указаны пустые скобки. Однако есть другие варианты определения функции main, которые подразумевыют использование параметров. В частности, нередко может встречаться следующее определение функции main, использующей параметры:
int main (int argc, char *argv[])
И после списка параметров идет блок кода, который и содержит в виде инструкций собственно те действия, выполняемые функцией main.
В конце функции идет инструкция return :
return 0;Эта инструкция завершает выполнение функции, передавая управление во вне туда, где была вызвана функция. В случае с функцией main контроль передается операционной системе.
Число 0 после оператора return указывает операционной системе, что выполнение функции завершилось успешно, без ошибок.
Также стоит отметить, что в функции main можно опустить инструкцию return 0; :
#include int main()
Директивы препроцессора
В примере выше на консоль выводится строка, но чтобы использовать вывод на консоль, необходимо в начале файла с исходным кодом подключать библиотеку iostream с помощью директивы include .
#include // подключаем библиотеку iostreamДиректива include является директивой препроцессора. Каждая директива препроцессора размещается на одной строке. И в отличие от обычных инструкциий языка C++, которые завершаются точкой с запятой ; , признаком завершения препроцессорной директивы является перевод на новую строку. Кроме того, директива должна начинаться со знака решетки #. Непосредственно директива "include" определяет, какие файлы и библиотеки надо подключить в данном месте в код программы.
Комментарии
Исходный код может содержать комментарии. Комментарии позволяют понять смысл программы, что делают те или иные ее части. При компиляции комментарии игнорируются и не оказывают никакого влияние на работу приложения и на его размер.
В языке C++ есть два типа комментариев: однострочный и многострочный. Однострочный комментарий размещается на одной строке после двойного слеша //:
#include // подключаем библиотеку iostream int main() // определяем функцию main < // начало функции std::cout // конец функцииМногострочный комментарий заключается между символами /* текст комментария */ . Он может размещаться на нескольких строках. Например:
#include /* Определение функции Main Выводит на консоль строку Hello World! */ int main() < std::coutКомпиляция
Создание исполняемого файла из исходного кода на C++ в общем случае состоит из трех этапов:
- Препроцессор обрабатывает все директивы препроцессора (например, директиву #include )
- Компилятор обрабатывает каждый файл с исходным кодом и создает из него объектный файл , который содержит машинный код. Например, код может разбросан по нескольким файлам с исходным кодом, и для каждого файла создается свой объектный файл
- Компоновщик (он же линкер/линковщик) объединяет все объектные файлы в единую программу. Данный процесс называется компоновкой/линковкой
Например, если у нас исходный код находится в трех файлах .cpp
При подготовке материала использовались источники:
https://sixorfive56.github.io/blog-post6.html
https://metanit.com/cpp/tutorial/2.1.php