- •Введение в программирование
- •Список рекомендованной литературы
- •Лекция 1.
- •1. Введение. Арифметика. Типы данных. Выражения.
- •1.1 История
- •1.3 Переменные, идентификаторы и ключевые слова
- •1.4 Типы данных
- •1.5 Арифметические операторы
- •1.6 Ввод-вывод
- •1.7 Комментарии
- •1.8 Структура программы
- •Исходная программа
- •1.9 Пример программы
- •1.10 Критерии качества программ
- •Упражнение
- •2. Условный оператор. Логические операторы.
- •2.1 Условная инструкция
- •2.2 Вложенные условные инструкции
- •2.3 Операторы сравнения
- •2.4 Логические операторы
- •Упражнения
1.8 Структура программы
В этом разделе описывается структура исходной программы на C++ и определяются термины, используемые в последующем при описании языка. По сути, здесь представлен в самом общем виде обзор особенностей языка C++, которые в дальнейшем будут рассмотрены более детально.
Исходная программа
Исходная программа- это совокупность следующих объектов:
директив, указаний компилятору, объявлений и определений.
Директивы задают действия препроцессора по преобразованию текста программы перед компиляцией. Указания компилятору - это команды, выполняемые компилятором во время процесса компиляции. Объявления задают имена и атрибуты переменных, функций и типов, используемых в программе. Определения - это объявления, определяющие переменные и функции.
Определение переменной в дополнении к ее имени и типу задает начальное значение объявленной переменной. Кроме того, определение предполагает распределение памяти для переменной.
Определение функции специфицирует ее структуру, которая представляет собой смесь из объявлений и операторов, которые образуют саму функцию. Определение функции также задает имя функции, ее формальные параметры и тип возвращаемой величины.
Исходная программа может содержать любое число директив, указаний компилятору, объявлений и определений. Любой из объектов программы имеет вполне определенный синтаксис, описанный в стандарте языка, и каждая составляющая может появляться в любом порядке, хотя влияние порядка, в котором следуют переменные и функции, может оказать влияние на ход выполнения программы.
В следующем примере иллюстрируется простая программа на языке C++:
#include<iostream>
using namespace std;
int main()
{
int a,b,s,r;
cout<<"Input two numbers: ";
cin>>a>>b; // input a & b
s=a+b; // s – sum of a & b
r=a-b; // r – difference of a & b
cout<<s<<" "<<r<<endl; // Output two numbers s & r
return 0;
}
Эта программа определяет функцию с именем main. Переменные a,b,s,r задаются как переменные целого типа (int). В качестве результата работы программы на экран монитора выдается сумма и разность входных данных a и b.
1.9 Пример программы
Еще раз обобщим изложенное выше на примере аналогичной программы, которая находит сумму двух введенных с клавиатуры целых чисел. В конце программы мы вызываем функцию system(«pause»), необходимую для того, чтобы окно программы не закрывалось сразу же при работе в оболочке Dev-C++:
#include <iostream>
using namespace std;
int main()
{
int a,b,s;
cout<<«Введите два числа: «;
cin>>a>>b;
s=a+b;
cout<<a<<«+»<<b<<«=«<<s<<endl;
system(«pause»);
return 0;
}
1.10 Критерии качества программ
Создаваемые программы (вне зависимости то того, на каком языке программирования они пишутся) должны удовлетворять некоторым критериям. Перечислим их:
-
Корректность – программа должна работать правильно, иначе нет смысла ее писать (проверять работу программы надо на тестовых задачах, ответ к которым известен).
-
Надежность – программа не должна «зависать» или «зацикливаться» при любых (разумных) исходных данных.
-
Эффективность – программа должна использовать, по возможности, минимальное количество ресурсов как по памяти (хотя в настоящее время это стало менее актуально в связи с быстрым ростом компьютерных мощностей), так и по времени (это проблема остается актуальной, особенно при обработке больших массивов данных или при решении задач, в которых время обработки напрямую зависит от размерности исходных данных).
-
Эргономичность – удобство для пользователя: не стоит забывать, что первым пользователем программы является непосредственно ее автор.
-
Читабельность – удобство для программиста: к сожалению, по прошествии времени, программа забывается, и давно написанную программу оказывается невозможно прочитать как книгу, необходимо вспоминать заново все когда-то принятые решения; поэтому нет смысла создавать себе дополнительные трудности в виде плохо структурированного и плохо читаемого текста. Для решения этой проблемы существует ряд устоявшихся принципов написания текстов программ:
-
не стоит писать как слишком длинные строки – они уходят за пределы экрана по ширине, так и слишком короткие строки – они увеличивают длину не только всей программы, но и каждого отдельного блока, который в этом случае трудно охватить взглядом и оценить, что он делает;
-
принято вложенные блоки писать со смещением вправо;
-
использовать везде, где это возможно, аккуратные столбцы строк;
-
не прятать операторные скобки (в C++ – это { }) в конец строки – в этом случае их трудно найти и определить начало и конец блока;
-
желательно, чтобы название программы и имена переменных, в ней используемых, имели очевидный и ясный смысл, однозначно связанный с той задачей, для решения которой данная программа и разрабатывается;
-
текст программы принято сопровождать подробными комментариями, написанными в соответствии с синтаксисом языка программирования; использование комментариев позволит по прошествии времени легко восстановить логику решения задачи и последовательность действий.
-
Переносимость – программа должна работать не только на том компьютере, где ее изначально разрабатывали, но и на всех других ! В этой связи при написании программ необходимо отказаться от использования русских букв (а также и всех других, не используемых в английском алфавите) для обозначения имен идентификаторов, констант, ссылок, названий функций и т.д. Для этих целей надо использовать исключительно символы из английского алфавита ! Русские буквы можно использовать при написании комментариев к программе, но и в этом случае целесообразнее писать комментарии с использованием английских букв (еще лучше, если эти комментарии будут написаны на английском языке).