Синтаксис языка с структура программы

Под синтаксисом языка программирования понимают правила построения корректных конструкций данного языка. Синтаксис языка можно описать формально. Для этого удобно использовать расширенную форму бэкуса-наура (бнф), которая состоит из ряда следующих обозначений и правил:

· Символы в кавычках переносятся в конструкцию языка так, как они записаны. Кавычки при этом отбрасываются. Например, «while» означает, что в конструкции языка присутствует while;

· Имена, записанные слитно русскими и латинскими буквами, обозначают различные конструкции языка. Например, оператор_цикла;

· Квадратные скобки охватывают элементы языка, которые могут повторяться 0 или 1 раз. Например, «ab»[«c»] означает, что в конструкции языка может присутствовать или ab или abc;

· Фигурные скобки охватывают элементы языка, которые могут повторяться 0 или много раз. Например, «ab» означает, что в конструкции языка может присутствовать или ab, или abc, или abcc и т.д.;

2. Структура программы на языке С++

· Символ | обозначает или, то есть используется для задания альтернативных значений, из списка элементов, разделенных знаком |. Например, «ab»|»c»|»ff» означает, что в конструкции языка может присутствовать или ab или c или ff;

· Круглые скобки используются для группировки. Например, «a»(«b»|»c»)»d» означает, что в конструкции языка может присутствовать или abd или acd;

· Многоточие используется для обозначения очевидных пропущенных значений в перечислении;

· Символ = обозначает — слово есть. Например, буква = «a»|»b»|»c».

правила записи программы на языке си++

Программа перед обработкой компьютером должна быть помещена в файл на диске. Обычно этот файл имеет расширение .

Рассмотрим типичную структуру файла с программой на языке си и правила его оформления на следующем простом примере:

/* включить описания функций стандартного ввода-вывода */

/* включить описания математических функций */

/* другие включаемые файлы */

/* собственно текст программы */

Num = 2.345; /*присвоим переменной num

Printf( » sin(%f) = %f «, num, sin(num) );/*вывод на экран */

Любой файл начинается с директив #include, вставляющих в текст программы так называемые заголовочные файлы, которые содержат описания функций, используемых в этом файле. В нашем примере это описания стандартных функций ввода-вывода и математических функций .

Далее следует заголовок главной функции программы main, операторы описания типов данных и исполняемые операторы.

Директивы #include должны всегда начинаться с новой строки, остальные же операторы программы могут иметь произвольное положение в файле вплоть до записи в одну строку. При записи не допускается разрывать слова, числа, двухсимвольные операции.

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

Структура и порядок выполнения программы. #Include. using namespace. C++ для начинающих. Урок #2.

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

// это тоже комментарии.

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

· Программы читаются людьми, компьютеру комментарии не нужны;

· Всегда необходимы вводные комментарии, в которых указывается назначение программы, ее автор, дата написания и изменения, краткое описание алгоритма, входных и выходных данных, основных переменных и вызываемых функций;

· Комментарии должны содержать дополнительную информацию, а не перефразировать программу;

· Комментарии должны быть расположены так, чтобы программа не была менее наглядной;

· Неправильные комментарии хуже, чем их отсутствие.

Стиль программирования, расположение операторов в строках, использование пробелов, выбор имен переменных и т.д. Должны быть направлены на то, чтобы сделать программу более понятной людям, ее читающим.

Правила формального описания синтаксиса языка программирования

Под синтаксисом языка программирования понимают правила построения корректных конструкций данного языка. Синтаксис языка можно описать формально. Для этого удобно использовать расширенную форму бэкуса-наура (бнф), которая состоит из ряда следующих обозначений и правил:

— символы в кавычках переносятся в конструкцию языка так, как они записаны. Кавычки при этом отбрасываются. Например, «while» означает, что в конструкции языка присутствует while;

— имена, записанные слитно русскими и латинскими буквами, обозначают различные конструкции языка. Например, оператор_цикла;

— квадратные скобки охватывают элементы языка, которые могут повторяться 0 или 1 раз. Например, «ab»[«c»] означает, что в конструкции языка может присутствовать или ab или abc;

— фигурные скобки охватывают элементы языка, которые могут повторяться 0 или много раз. Например, «ab» < «c» >означает, что в конструкции языка может присутствовать или ab, или abc, или abcc и т.д.;

Читайте также:
В какой программе сделать презентер

— символ | обозначает или, то есть используется для задания альтернативных значений, из списка элементов, разделенных знаком |. Например, «ab»|»c»|»ff» означает, что в конструкции языка может присутствовать или ab или c или ff;

— круглые скобки используются для группировки. Например, «a»(«b»|»c»)»d» означает, что в конструкции языка может присутствовать или abd или acd;

— многоточие используется для обозначения очевидных пропущенных значений в перечислении;

— символ = обозначает — слово есть. Например, буква = «a»|»b»|»c».

В дальнейшем, синтаксис языка си будет описываться либо с помощью примеров, либо с помощью расширенной формы бэкуса-наура. В последнем случае это будет помечаться аббревиатурой бнф.

Источник: studbooks.net

Синтаксис языка c. Структура программы. Характеристика функции main.

В языках программирования вместо номеров ячейкам памяти принято давать имена (идентификаторы), а содержимое ячеек называть переменными, или константами, в зависимости от того, изменяется значение в процессе работы или нет.

В языке Си фундаментальным понятием является инструкция (операция, оператор, функция), которая представляет собой описание определенного набора действий. Таким образом, программа, написанная на языке Си, состоит из последовательности инструкций.

Алфавит языка Си включает:

— прописные и строчные буквы латинского алфавита, а также знак подчеркивания (код ASCII 95);

— арабские цифры от 0 до 9;

Из символов алфавита формируются лексемы языка – минимальные значимые единицы текста в программе:

— ключевые (зарезервированные) слова;

— разделители (скобки, точка, запятая, пробельные символы).

Границы лексем определяются другими лексемами, такими, как разделители или знаки операций, а также комментариями.

Идентификатор (в дальнейшем, для краткости — ID) – это имя программного объекта (константы, переменной, метки, типа, функции, модуля, поля в структуре). В идентификаторе могут использоваться латинские буквы, цифры и знак подчеркивания; первым символом ID может быть буква или знак подчеркивания, но не цифра; пробелы внутри ID не допускаются.

Длина иденти­фикатора определяется реализацией (версией) транслятора Cи и редактора связей (компоновщика). Современная тенденция — снятие ограничений длины идентификатора.

При именовании объектов следует придерживаться общепринятых соглашений:

— ID переменной обычно пишется строчными буквами, например index (для сравнения: Index – это ID типа или функции, а INDEX – константа);

— идентификатор должен нести какой-либо смысл, поясняя назначение объекта в программе, например birth_date (день рождения) или sum (сумма);

— если ID состоит из нескольких слов, как, например birth_date, то принято либо разделять слова символом подчеркивания (birth_date), либо писать каждое следующее слово с большой буквы (birthDate).

Разделители идентификаторов объектов:

— символы табуляции, перевода строки и страницы;

— комментарии (играют роль пробелов).

Наличие разделителей не влияет на работу программы.

В Си прописные и строчные буквы – различные символы. Идентификаторы Name, NAME, name – различные объекты.

Ключевые (зарезервированные) слова не могут быть использованы в качестве идентификаторов.

Ключевые слова Си:

Знак операции – это один или более символов, определяющих действие над операндами. Внутри знака операции пробелы не допускаются. Операции делятся на унарные, бинарные и тернарные операции, по количеству участвующих в них операндов.

Когда в программе встречается некоторое число, например 1, то это число называется литералом или литеральной константой. Константой, потому что мы не можем изменить его значение, и литералом, потому что буквально передает свое значение (от латинского literal – буквальный).

Литерал является неадресуемой величиной: хотя реально он, конечно, хранится в памяти машины, нет никакого способа узнать его адрес. Каждый литерал имеет определенный тип.

Еще один базовый элемент языка программирования – комментарий, – не является лексемой. Внутри комментария можно использовать любые допустимые на данном компьютере символы, а не только символы из алфавита языка программирования, поскольку компилятор комментарии игнорирует.

В Си комментарии ограничиваются парами символов /* и */, а в С++ был введен вариант комментария, который начинается символами // и заканчивается символом перехода на новую строку.

Программа написанная на языке Си состоит из одной или нескольких функций, причем одна функция обязательна имеет идентификатор (имя) main() – основная, главная. Ее назначение – управление всей работой программы (проекта). Данная функция, как правило, не имеет параметров и не возвращает результат, но наличие круглых скобок (как и для других функций без параметров) обязательно.

Общая структура программы на языке Си имеет вид:

В свою очередь, функции имеют такую структуру:

Рассмотрим кратко основные части общей структуры программ.

Перед компиляцией программа на языке Си обрабатывается специ­альной программой – препроцессором, который работает под управле­нием директив.

Препроцессорные директивы начинаются с символа #, за которым следует наименование директивы, указывающее текущую операцию препроцессора.

Препроцессор решает ряд задач по предварительной обработке программы, основной из которых является «подключение» к программе так называемых заголовочных файлов (обычных текстов) с декларацией стандартных библиотечных функций, которые используются в программе. Наименование такой директивы: include (подключить), а общий формат ее использования:

где «h» – расширение заголовочных файлов.

Если идентификатор файла заключен в угловые скобки (< >), то поиск дан­но­го файла производится в стандартной директории с этими файлами, если же ID файла заключено в двойные кавычки (” ”), то поиск данного файла производится в текущей директории.

Читайте также:
Как написать вирусную программу на python

К наиболее часто используемым библиотекам относятся:

stdio.h — содержит стандартные функции файлового ввода-вывода;

conio.h — функции для работы с консолью (клавиатура, экран монитора);

math.h — математические функции.

Второе основное назначение препроцессора – это обработка макро­­опре­делений. Макроподстановка define (определить) имеет общий вид:

Например: #define PI 3.1415927

В ходе препроцессорной обработки программы появление в тексте идентификатора PI везде заменяется значением 3.1415927.

Основные возможности препроцессора приведены в Приложении 3.

Рассмотрим небольшой пример, позволяющий понять самые простейшие приемы программирования на языке Си:

printf(“ Высшая оценка знаний — 10 !”);

> // Окончание функции main

Отличительным признаком функции служат круглые скобки ( ) после идентификатора функции, в которые заключается список аргументов. Если аргументы отсутствуют, указывают атрибут void — отсутствие значения. Перед ID функции обычно указывается тип возвращаемого ею результата, так как функция main() ничего не возвращает — в качестве результата указывается void.

Код функции представляет собой набор инструкций, каждая из которых оканчивается символом «;». В нашем примере одна инструкция — функция printf() выполняет форматный вывод данных на экран, в данном случае, указанную фразу.

Функция main, с которой начинается выполнение программы, может быть определена с параметрами, которые передаются из внешнего окружения, например, из командной строки. Во внешнем окружении действуют свои правила представления данных, а точнее, все данные представляются в виде строк символов.

Для передачи этих строк в функцию main используются два параметра, первый — служит для передачи числа передаваемых строк, второй — для передачи самих строк. Общепринятые (но не обязательные) идентификаторы этих параметров argc и argv. Параметр argc имеет тип int, его значение формируется из анализа командной строки и равно количеству слов в командной строке, включая и имя вызываемой функции. Параметр argv это массив указателей на строки, каждая из которых содержит одно слово из командной строки. Если слово должно содержать символ пробел, то при записи его в командную строку оно должно быть заключено в кавычки.

Функция main может иметь третий параметр, который принято называть argp, и который служит для передачи в функцию main параметров операционной системы (ОС), в которой выполняется программа.

int main (int argc, char *argv[], char *argp[])

Если, например, командная строка программы имеет вид:

a:>cprog working ‘C program’ 1

то аргументы argc, argv, argp представляются в памяти следующим образом:

argp [ ]  [ ]  [path = a:;C:\0]

ОС поддерживает передачу значений для параметров argc, argv, argp, а на пользователе лежит ответственность за передачу и использование фактических аргументов функции main.

Следующий пример представляет программу печати фактических аргументов, передаваемых в функцию main из ОС и параметров ОС.

int main ( int argc, char *argv[], char *argp[])

printf («n Имя программы %s», argv[0]);

printf («n Аргумент %d = %s», argv[i]);

printf («n Параметры ОС: «);

Функция main может вызываться рекурсивно из любой функции.

Источник: studfile.net

Структура программы на языке С++

Программирование на языке Python (§ 54 - § 61)

Прежде чем приступить к написанию программ,
необходимо изучить структуру программ на языке
программирования С++.
Структура программ это разметка рабочей области
(области кода) с целью чёткого определения
основных блоков программ и синтаксиса.
Структура программ несколько отличается в зависимости от
среды программирования.
Мы ориентируемся на IDE Microsoft Visual Studio

4. Структура программ для Microsoft Visual Studio

1. // struct_program.cpp: определяет точку входа для консольного
приложения.
2. #include «stdafx.h»
3.
//здесь подключаем все необходимые препроцессорные директивы
4. int main() 5.
// начало главной функции с именем main
//здесь будет находится ваш программный код
6. >
В строке 1 говорится о точке входа для консольного приложения, это значит, что
данную программу можно запустить через командную строку Windows указав
имя программы, к примеру, такое struct_program.cpp.
Строка 1 является однострочным комментарием, так как начинается с
символов //

5. Структура программ для Microsoft Visual Studio

1. // struct_program.cpp: определяет точку входа для консольного
приложения.
2. #include «stdafx.h»
3.
//здесь подключаем все необходимые препроцессорные директивы
4. int main() < // начало главной функции с именем main
5.
//здесь будет находится ваш программный код
6. >
В строке 2 подключен заголовочный файл «stdafx.h».
Данный файл похож на контейнер, так как в нем подключены основные
препроцессорные директивы (те, что подключил компилятор, при создании консольного
приложения), тут же могут быть подключены и вспомогательные (подключенные
программистом).
include — директива препроцессора, т. е. сообщение препроцессору.
Строки, начинающиеся с символа # обрабатываются препроцессором до компиляции
программы.

6. Структура программ для Microsoft Visual Studio

1. // struct_program.cpp: определяет точку входа для консольного
приложения.
2. #include «stdafx.h»
3.
//здесь подключаем все необходимые препроцессорные директивы
4. int main() < // начало главной функции с именем main
5.
//здесь будет находится ваш программный код
6. >
С 4-й по 6-ю строки объявлена функция main.
Строка 4 – это заголовок функции, который состоит из типа возвращаемых данных (в
данном случае int), этой функцией, и имени функции, а также круглых скобок, в которых
объявляются параметры функции.
int — целочисленный тип данных
Между фигурными скобочками размещается основной программный код, называемый
еще телом функции. Это самая простая структура программы.

Читайте также:
Задачи для 3 класса по математике тренажер по программе перспектива

7.

Программа на языке C++ состоит из:
1.директив препроцессора,
2.указаний компилятору,
3.объявлений переменных и/или констант,
4. объявлений и определений функций.
Препроцессор — это компьютерная программа,
принимающая данные на входе и выдающая
данные, предназначенные для входа другой
программы (например, компилятора).

8. Структура программы на С++

#include <имя библиотеки 1>
#include <имя библиотеки 2>
// прототипы функций (заголовки)
// глобальные идентификаторы
(типы, переменные и т.д.)
int main()
// описание переменных
// раздел операторов
>
// реализация функций
Заголовочные файлы
(подключение библиотек)
Объявление функций
Объявление глобальных
идентификаторов
Главная функция программы
Реализация объявленных
функций

9. Структура программы на С++

#include
using namespace std;
int main( )
тело функции
>
Раздел подключений
библиотек
Директивы препроцессору
Раздел главной функции
программы

10.

Директива препроцессора – это
инструкция, которая включает в текст
программы файл, содержащий описание
множества функций, что позволяет
правильно компилировать программу.
Это важно
• все директивы препроцессора
начинаются со знака #;
• после директивы препроцессора точка с
запятой не ставится.

11. Синтаксис подключения заголовочных файлов:

Директива #include позволяет включать в
текст программы указанный файл.
Имя файла может быть указано двумя способами:
#include
#include «my_file.h”
•Если файл является стандартной библиотекой и
находится в папке компилятора, он заключается в угловые
скобки <>.
•Если файл находится в текущем каталоге проекта, он
указывается в кавычках «».

12. Синтаксис подключения заголовочных файлов:

#include <имя заголовочного файла>
Более старые заголовочные файлы подключаются
так (этот стиль подключения библиотек
унаследован у языка программирования C):
#include <имя заголовочного файла.h>
Различие состоит в том, что после имени ставится
расширение .h.

13. Заголовочные файлы

Стандартная Библиотека — коллекция
классов и функций, написанных на
базовом языке.
Основные заголовочные файлы:
• iostream – потоки ввода/вывода
• fstream – файловые потоки
• sstream – строковые потоки

14. Заголовочные файлы

Директива #include используется для присоединения внешнего
файла, в данном случае — iostream — для
поддержки системы ввода-вывода.
include — включать(анг)
iostream
input output stream
входящий исходящий поток(анг)

15. Пространства имен (namespace)

Директива using открывает доступ к
пространству имен (англ. namespace) std, в
котором определяются средства
стандартной библиотеки языка C++.
•using namespace std
•using namespace standart — использование
имен стандартных(анг)

16. Пространства имен (namespace)

Пространство имен (namespace) — окружение,
созданное для логической группировки
уникальных имен.
• Необходимо чтобы избежать конфликтов имен
идентификаторов.
• Функциональные особенности стандартной
библиотеки объявляются внутри пространства имен
std.
Вызов объекта:
std :: имя объекта;

17. Пример пространства имен

std
#include
standart
#include
using namespace std;
int main()
setlocale(LC_CTYPE, «rus»);
int a,b,c;
int main()
setlocale(LC_CTYPE, «rus»);
int a,b,c;
cout cin >>a>>b>>c;
std:: cout std:: cin >>a>>b>>c;
system(«pause»);
return 0;
>
system(«pause»);
return 0;
>

18. Функция main()

Выполнение программы начинается со
специальной стартовой функции main.
В момент запуска программы, управление
передается данной функции.
Функция main обязательно должна быть
определена в одном из модулей
программы. Модуль, содержащий функцию
main принято называть главным модулем.

19. Функция main()

Стандарт предусматривает два формата функции:
//без параметров
тип main( )
//с двумя параметрами
тип main(int argc, char* argv[])
Если программу запускать через командную строку, то существует
возможность передать какую-либо информацию этой программе.
• Параметр argc имеет тип int, и содержит количество параметров,
передаваемых в функцию main. Причем argc всегда не меньше 1,
даже когда функции main не передается никакой информации,
так как первым параметром считается имя приложения.
• Параметр argv[] представляет собой массив указателей на
строки. Через командную строку можно передать только данные
строкового типа.

20. Функция main()

Функция main может возвращать
определенное значение, или не возвращать
ничего.
Если функция не возвращает никакого значения, то она
должна иметь тип void (такие функции иногда называют
процедурами)
Функция может возвращать значение, тип которого в
большинстве случаев аналогично типу самой функции.

21.

Структура функции
заголовок
int main(void)
cout return(0);
>
Тело функции

22.

23.

24.

25. Директива #define

Директива #define служит для поиск и
замена одного набора символов на
другой.
Идентификаторы, заменяющие текстовые
или числовые константы, называют
именованными константами.
Идентификаторы, заменяющие фрагменты
программ, называют макроопределениями

26.

Директива #define имеет две синтаксические
формы:
#define идентификатор текст
#define идентификатор (список параметров) текст
Пример:
#define WIDTH 80
#define LENGTH (WIDTH+10)
Эти директивы изменят в
тексте программы каждое
слово WIDTH на число 80, а
каждое слово LENGTH на
выражение (80+10) вместе с
окружающими его скобками.

27. Объявление переменных

Язык СИ++ требует явного объявления всех
переменных используемых в программе вместе с
указанием соответствующих им типов.
Объявления переменной имеет следующий формат:
имя_1, имя_2, . имя_n;
Спецификатор типа –
одно или несколько
ключевых слов,
определяющие тип
объявляемой переменной.
Например:
unsigned int n;
int b,f2,f3;
int c;
long d;

28. Объявление переменных

Глобальные переменные
описываются вне функций и
действуют от конца описания до
конца файла.
Локальная переменная описывается
внутри функции и действует от конца
описания до конца функции.

29.

Источник: ppt-online.org

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru