Структура программы с кратко

Обновлено: 28.06.2024

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

Язык Си является блочно-структурированным. Каждый блок заключается в фигурные скобки <> .

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

Имя функции — это коллективное имя группы описаний и операторов,
заключенных в блок (фигурные скобки). За именем функции в круглых скобках указываются параметры функции.

Комментарии в языке Си

В языке Си для комментариев используются символы

/* — начало комментария;
*/ — конец комментария.

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

Это удобно для написания многострочных комментариев:

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

В дополнение к этому, для написания коротких комментариев могут использоваться символы // . При этом комментарием является все, что расположено после символов // и до конца строки:

Главная функция

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

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

Главную функцию можно записать по-разному:

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

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


В фигурные скобки заключены описания и операторы.

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

Результат работы Hello world

Результат работы программы:

Теперь попробуем написать текст на русском языке.

Результат работы Здравствуй, мир!

Результат работы программы:

Проблема русского языка в консольных приложениях заключается в том, что консоль и редактор кода Microsoft Visual Studio поддерживают разные кодовые страницы. Для того, чтобы увидеть русские символы в консоли необходимо поменять кодовую страницу в консоли, чтобы она соответствовала кодовой странице редактора (1251). С этой целью вызывается функция system( "chcp 1251" ) с соответствующей командной строкой. Прототип функции system() содержится в библиотеке .

При этом текст программы будет выглядеть следующим образом:

Результат работы Здравствуй, мир!

Результат работы программы:

В соответствии с вариантом реализовать программу обработки массива на ал-горитмическом языке С. Длина массива не более 20 элементов. Элементы массива вводятся вручную или генерируются случайным образом. Размер массива задается пользователем с клавиатуры. 7. Дана последовательность натуральных чисел произвольной длины. Найти произведение нечетных чисел, меньших 70, наибольшее из этих чисел и номер это-го числа в последовательности.

Программа на С++ состоит из набора инструкций. Каждая инструкция (statement) выполняет определенное действие. В конце инструкции в языке C++ ставится точка с запятой (;). Данный знак указывает компилятору на завершение инструкции. Например:

Данная строка выводит на консоль строку "Hello world!", является инструкцией и поэтому завершается точкой с запятой.

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

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

Функция main

Каждая программа на языке С++ должна иметь как минимум одну функцию - функцию main() . Именно с этой функции начинается выполнение приложения. Ее имя main фиксировано и для всех программ на Си всегда одинаково.

Функция также является блоком кода, поэтому ее тело обрамляется фигурными скобками, между которыми определяется набор инструкций.

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

Определение функии main начинается с возвращаемого типа. Функция main в любом случае должна возвращать число. Поэтому ее определение начинается с ключевого слова int .

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

И после списка параметров идет блок кода, который и содержит в виде инструкций собственно те действия, выполняемые функцией main.

Директивы препроцессора

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

Комментарии

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

В языке C++ есть два типа комментариев: однострочный и многострочный. Однострочный комментарий размещается на одной строке после двойного слеша //:

Многострочный комментарий заключается между символами /* текст комментария */ . Он может размещаться на нескольких строках. Например:

Тело функции заключается в операторные скобки <>, и содержит описание локальных данных и операторы функции.

где, тип_результата – это тип того значения, которое функция должна вычислить (если функция не должна возвращать значение, указывается тип void);
имя_функции – имя, с которым можно обращаться к этой функции;
параметры – список её аргументов (может отсутствовать).
Точка с запятой (;) является разделителем между описаниями и операторами.

Директивы процессора

Понятие препроцессора является одним из ключевых в языке С++.
Препроцессор – это программа, действующая как фильтр на этапе компиляции.
Исходная программа => Препроцессор => Расширенная исходная программа => Компилятор
Перед тем, как попасть на вход компилятора, исходная программа проходит через препроцессор.

Команды (директивы) препроцессора представляют собой инструкции, записанные в исходном тексте программы, используемые для того, чтобы облегчить модификацию программ и сделать их независимыми от особенностей различных реализаций компилятора.
Например: Директивы могут быть записаны в любом месте исходного файла, но их действие распространяется только от точки программы, в которой они записаны, до конца исходного файла.
Файлы, которые появляются в директивах, обычно заканчиваются на .h, что означает файл заголовков (header file). Файлы заголовков содержат объявления констант, переменных и функций, необходимы для работы программы.

  1. В первой строке записывает комментарий, поясняющий условие решаемой задачи.
  2. Во второй строке помещается команда (директива) препроцессора, обеспечивающая включение в программу средств связи со стандартными потоками ввода и вывода данных. Указанные средства находятся в файле с именем iostream.h заголовочный файл.

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

Стандартный поток вывод cout обеспечивает вывод данных на экран дисплея.

Препроцессор – это программа, действующая как фильтр на этапе компиляции. Перед тем как попасть на вход компилятора, исходная программа проходит через препроцессор.

Файлы заголовков в директиве include заканчиваются на .h. Угловые скобки <> указывают препроцессору, что этот файл ищется в стандартном каталоге подключаемых файлов.

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

math.h – подключение математических функций;

string.h - подключение строковых функций.

stdio.h функции форматированного ввода-вывода.

conio.h – работа с консолью (экраном и клавиатурой).

сtype.h – функции преобразования символов.

Примечание: в конце директивы ; не ставится.

main ()

return 0;

Правила объявления функции main().

  1. После заголовка функции никаких знаков препинания не ставятся.
  2. Тело функции включает:
  • объявление локальных переменных и констант и их инициализацию (присвоение начальных значений);
  • ввод исходных данных (диалог с пользователями);
  • обработку – обращение к функциям вычисления выражений;
  • выполнение операторов;
  • вывод результата;
  • возвращение кода завершения главной функции (return 0;)

Общие принципы, позволяющие написать синтаксически правильную программу, таковы:

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

Правила оформления текста программы, направленные на облегчение понимания смысла и повышение наглядности, таковы:

  • разделять логические части программы пустыми строками;
  • разделять операнды и операции пробелами;
  • для каждой фигурной скобки отводить отдельную строку;
  • в каждой строке должно быть, как правило, не более одного оператора;
  • ограничивать длину строки 60-70 символами;
  • отступами слева отражать вложенность операторов и блоков;
  • длинные операторы располагать в нескольких строках;
  • проводить алгоритмизацию так, чтобы определение одной функции занимало, как правило, не более одного экрана текста;
  • стремиться использовать типовые заготовки фрагментов программ, включая и типовую структуру блока и программы в целом.

Пример1: Вычисление площади круга

// вычисление площади круга

main()

cout

cin>>r;

pl=r*r*PI; // вычисление площади по формуле

cout

return 0;

Пример 2: Нахождение суммы цифр трёхзначного числа

// вычисление суммы

main()

cout

cin>>n;

a = n % 10; // выделяем последнюю цифру числа

n = n / 10; // отбрасываем последнюю цифру числа

b = n % 10; // выделяем вторую с конца цифру числа

n = n / 10; // отбрасываем вторую цифру числа;
// n – первая цифра числа

Язык программирования С++ был разработан на основе языка Си Бьярном Страуструпом (Bjarne Stroustrup) и вышел за пределы его исследовательской группы в начале 80-х годов. Чрезвычайная гибкость и большие возможности языка С++ обусловили применение его в самых разных областях информатики: от программирования баз данных до создания приложений, работающих с INTERNET , при изучении данного курса студенты будут создавать консольные приложения.

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

Для работы можно выбрать любой из доступных компиляторов С++ ( автор использовал Tizen SDK for Linux, программы также работают и на MS Visual Studio 2015). В качестве платформы рекомендуется использовать компьютер классом не ниже Pentium.

Структура программы

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

специфицируют действия препроцессора по преобразованию текста программы перед компиляцией. Указания компилятору —это специальные инструкции, которым компилятор языка С++ следует во время компиляции .

Объявление переменной задает ее имя и атрибуты, а объявление функции — ее имя, тип возвращаемого значения и атрибуты ее формальных параметров.

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

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

Отличительной особенностью языка С++ является то, что в нем нет ни одного встроенного оператора для выполнения ввода/вывода, динамического распределения памяти, управления процессами и т. п., однако в его системное окружение входит библиотека стандартных функций, в которых реализованы подобные и многие другие действия. Вынос этих функций в библиотеку позволяет отделить особенности архитектуры конкретного компьютера и соглашений операционной системы от реализации собственно языка, сделать программу максимально независимой от деталей реализации операционной среды.

Комментарии и пробелы

При составлении программы важную роль играет детальное документирование программы (степень детальности никогда не бывает излишней). Существует два способа документирования программы. Первый способ заключается во включении комментариев в текст программы. Например, символы /* открывают комментарий, а символы */ - закрывают его.

/* Комментарий — часть текста программы, предназначенная для краткой характеристики выполняемых действий или поясняющая назначение данных, которая игнорируется компилятором. */

Символы // открывают комментарий, заканчивающийся в конце той же строки.

int count; //эта переменная служит для

//подсчета числа символов в строке

Во втором случае осмысленные имена даются идентификаторам.

Идентификаторы

Идентификаторы – это имена, которыми обозначаются переменные, константы, типы, функции и метки. Идентификаторы состоят из букв латинского алфавита, цифр и могут содержать символ подчеркивания, они могут иметь произвольное число символов, но значащими будут только первые 31 символ. Идентификаторы не должны совпадать с ключевыми словами , имеющими значение для компилятора С++.

Как уже говорилось выше, желательно, чтобы идентификаторы имели осмысленные имена.

Константы

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

В языке С++ имеется четыре типа констант: целые, вещественные, символьные и перечисляемого типа.

Обозначаются int (обычная точность), либо long (двойная точность), для небольших целых чисел используется тип short. Первая цифра варьирует от 1 до 9, следующие - от 0 до 9.

Читайте также: