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

Простейшая программа на С++

Такая программа состоит всего из 12 символов, но заслуживает внимательного рассмотрения. Вот она:

void main()

{

}

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

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

Составим теперь программу, которая делает что-нибудь полезное, например, выводит на экран слово «Привет».

#include "stdafx.h" /*подключение заголовочного файла stdio.h, в котором находится описание стандартных функций ввода и вывода, */

int main()

{

printf("Привет"); // вызов функции вывода на экран

return 0;

}

Что новенького?

Перечислим новые элементы, использованные в этой программе:

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

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

Описания стандартных функций С++ находятся в так называемых заголовочных файлах с расширением *.h

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

В программу могут быть включены комментарии - тексты,
поясняющие программу.Комментарии – не обязательная принадлежность программы. Описание нетривиального алгоритма, как правило, снабжается пояснениями, которые помогут разобраться в тексте программы персоналу сопровождения программных продуктов. Вязыке С++ предусматривается две разновидности комментариев – многострочные и однострочные.

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

Алфавит языка

При написании программ на алгоритмическом языке можно пользоваться лишь символами, предусмотренными алфавитом этого языка.

Алфавит языка С++ включает в себя следующие символы.

Строчные и прописные буквы латинского алфавита

|а|b|с| ... |x|y|z|A|B|C| ... |X|Y|Z|

Арабские цифры

|0|1 |2| ...|9|

Специальные символы

|+|-|*|/| = |>|>=|< |<=|==|!|.|,|:|;|’|(|)|[|]|{| |}|&|@|$|#|

Язык С++ также включается набор зарезервированных слов, имеющих строго определенное назначение. Например, слова IF, ELSE используются в услов­ном операторе, слово DEFAULT обозначает выбор по умолчанию. Назначение зарезервированных слов будет поясняться в процессе изучения языка.

Константы и переменные

Константы

Константами являются программные элементы, имеющие определенный тип и не меняющие своего значения при выполнении программы. В качестве кон­стант на языке С++ используются целые и веществен­ные числа, логические значения, символы и строки.

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

Например: 15 +1000 -47 02

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

В записи десятичного числа целая часть отделяется от дробной части точкой.

Например:2.5 -14.0 +0.33 0.0

Числа в экспоненциальной форме имеют вид: а .10р , где a являетсямантиссой; р - десятичным порядком.

На языке С++ числа с порядком записываются с использованием буквы Е, за которой следует порядок. Буква Е читается как «умножить на 10 в степени».

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

Примеры записи чисел с порядком

Математическая запись Запись на языкеС++
3,14.105 3.14Е5
-17.10-2 -17Е-2
25,625 2.5625Е1
10-6 1Е-6
0,00048 4.8Е-4

Символьная константа - это любой символ ПК, заключен­ный в апострофы, например: ‘7’ или ‘S’ или ‘ *’.

Строковая константа (строка) - любая последовательность символов из набора символов ПК, заключенная в кавычки, например:

"Х="

"Максимальное значение ="

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

Переменные

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

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

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

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

Имя представляет собой последовательность латинских букв и цифр, которая начинается с буквы. В имени мо­жет присутствовать символ подчеркивания. Длина имени состав­ляет от 1 до 63 символов. Следует помнить, что пробелы не должны входить в написание имени.

Примеры записи имен переменных

Математическая запись x ap y1 α d-21
Запись на языке С++ x ap y1 alpha S d_27

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

- целые переменные (тип int - от английского integer - целый) занимают 2 байта в памяти;

- вещественные переменные, которые могут иметь дробную часть (тип float – от английского floating point - плавающая точка), занимают 4 байта в памяти;

-символы (тип char - от английского character - символ) занимают 1 байт в памяти.

Типы задаются стандартными зарезервированными словами:

int - целый тип;

long – длинный целый тип;

short – целый тип с меньшим диапазоном;

float - вещественный тип;

double - вещественный тип с двойной точностью;

char - символьный тип;

Для использования все переменные необходимо объявлять - то есть сказать компьютеру, чтобы он выделил для них ячейку памяти нужного размера и присвоил ей нужное имя. Переменные обычно объявляются в начале программы. Для объявления надо написать название типа переменных (int, float или char и др.), а затем через запятую имена всех объявляемых этим типом переменных. При желании можно сразу записать в новую ячейку нужное число, как показано в примерах ниже. Если переменной не присваивается никакого значения, то в ней находится "мусор", то есть то, что было там раньше.

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

Примеры.

int a; // выделить память под целую переменную a

float b, c; //две вещественных переменных b и c

int Tu104, Dl86=23, Yak42; //три целых переменных,

//причем в D186 сразу записывается число 23.

float x=4.56, y, z; //три вещественных переменных,

// причем в x сразу записывается число 4.56.

char c, c2='A', m; //три символьных переменных,

//причем в c2 сразу записывается символ 'A'.

Арифметические выражения

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

В бесскобочных арифметических выражениях операции выполняются слева направо в соответствии с их приоритетом.

1. * (умножение); / (деление); % ( остаток от деления целых чисел).

2. + (сложение); - (вычитание).

Изменить порядок выполнения операций можно с помощью
круглых скобок. Выражение, заключенное в круглые скобки, выполняется в первую очередь. Например, выражению: а/b*с соответствует математическая запись: структура основной программы - student2.ru , а выражению а/(b*с) – запись структура основной программы - student2.ru .

Тип арифметического выражения определяется типом входящих и него операндов.

Арифметическое выражение является целым, если все входящие и него операнды целого типа.

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

Операция выделения остатка или деление по модулю ( % ) применима только к целым числам. Результат ее выполнения имеет целый тип.

Исключение составляет операция деления с использованием символа ‘/’ (косая черта). Результат выполнения этой операции всегда зависит от типа операндов.

Например, значением выражения 2/5 будет число 0.

Примеры вычисления арифметических выражений

Арифметические выражения Результат Тип результата
6 + 4 * (5 - 3) Целый
6 + 4 * (5 - 3.0) 14.0 Вещественный
7 % 2 Целый
7/2.0 3.5 Вещественный

Стандартные функции

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

В таблице ниже представлен набор стандартных функций с указани­ем типов функции и аргумента. В таблице приняты обозначения: I - целый тип, F - вещественный тип.

Математическая запись Запись на языке С++ Тип аргумента Тип функции
структура основной программы - student2.ru abs(x) fabs(x) I F I F
tg x tan(x)     I или F   F
sin x   sin(x) I или F F
cos x cos(x)   I или F   F
ln x log(x) I или F F
структура основной программы - student2.ru sqrt(x) I или F F
arctg(x) - арктангенс atan(x) I или F F
arcctg(x)- арккотангенс arcctg(x)= структура основной программы - student2.ru   3.14/2.0-atan(x)   F   F
Округление до ближайшего целого > x ceil(x) F I
Округление до ближайшего целого < x floor(x) F I
Возведение в степень xn pow(x,n) I F I F
структура основной программы - student2.ru exp(x) I или F F
arcsin(x) - арксинус asin(x) I или F F
arccos(x) - арккосинус acos(x) I или F F
структура основной программы - student2.ru десятичный логарифм. log10(x) I или F F
структура основной программы - student2.ru гиперболический синус sinh(x) I или F F
структура основной программы - student2.ru гиперболический косинус cosh(x) I или F F
структура основной программы - student2.ru гиперболический тангенс tanh(x) I или F F
Округление по правилам математики round(x) I или F I
Генерация случайного числа rand() rand() /x нет х - F I F

Примеры программирования арифметических выражений

Математическая запись Запись на языке С++
структура основной программы - student2.ru   (a+12*b)/(с1 - 1.8E3)
структура основной программы - student2.ru   exp((2*sin(4*x)+pow((cos(x* x),2)))/(3*x))
структура основной программы - student2.ru log(fabs(tan(al)-sin(pow(al,3))))

Контрольные задания

1. Составить описания для заданных переменных

Вариант   Матема­тическая запись Тип Вариант   Матема­тическая запись Тип
C2,Lt, j , Z1, T, rs Целый Символьный Sum, max, w Т, Z1, R Вещественный Целый
М, n1, ар , В, структура основной программы - student2.ru , структура основной программы - student2.ru Целый Вещественный A C3, kb, структура основной программы - student2.ru ,X1, ∑ Символьный Вещественный
структура основной программы - student2.ru , h, E, st, w, y1 Вещественный Символьный I, d0, KH Ch, Q, rez Целый Символьный
T3, j, x , структура основной программы - student2.ru , w, Z1 Целый Вещественный N, Kc, a2 Z,fd, структура основной программы - student2.ru Целый Символьный
N, x1, b, A, структура основной программы - student2.ru , min Целый Вещественный I, kd, структура основной программы - student2.ru структура основной программы - student2.ru ,v,Tn Символьный Вещественный
J, I, К, F, S, R2 Целый Символьный M1, j, r, b0,A, σ Символьный ВещественныйI
структура основной программы - student2.ru Вещественный Символьный Mo, j, rcm E, £, f1 Целый Вещественный
структура основной программы - student2.ru Вещественный Символьный α, μ, c str, P1 Вещественный Символьный

2. Записать на языке С++ числовые константы

а) целые;

б) вещественные (в форме десятичных чисел и чисел с порядком).

Вариант Математическая запись
а)+15; 72,93.103; -500 б) структура основной программы - student2.ru ; -16,7; 0,054.102; 62,7.10-5    
а) 02; 32.103; -8.102 б) -0,25; 2,89.102; 3,164; 23,7.10-4
а) 600; -041; 52,625.104 б) структура основной программы - student2.ru ; 0,03.10-2; -715,4; 2,1.103
а)735; -24.103; 13,14.102 б) 0,0265.103; -3,7; 54,6; 0,275.10-2
а)014; 25.10°; 27,3.103 б) 0,518; 2,546.102; -0,07.10-3; 3,04
а)01; 25.10; 2,73.102 б) 15,37; 4,52.10-3; 23; 0,0083
а)07; 94.102; 16,27.103 б) 8,4; -35,07.10-1; 6,3.102; 0,004
а) 41; 286.10°; 23,7.102 б) 0,817; 0,645.102; -0,718.103; 0,3556.10°
а)377; -15.103; 25,4.103 б) -0,572.106; 6.28; 5886; 0,0695.102
а)012; 7,5.103; -0,05.102 б) -0,084.10-2; 7,12; -52; 0,0085
а)0015; -9,4.103; 99,0 б)-5,14; 27,06.10-6; структура основной программы - student2.ru ; 0,008.102
а) 276; 9,275.103; -02 б) -0,56.10б; -0,07425; 6; -0,873
а) 03; 52.10°; -1,0.103 б) структура основной программы - student2.ru ; 631,5.102; -8,25; 92,1.104  
а)-016; 95,72.102; -576 б)-2,75; 81,2.10-6; -15,0.103; 0,033.10-3
а) 05; -91,0.103; 14,5.102 б) 3,48; 1,5.102; -912.10-5; 0,0385
а) 008; 7,2.104; -12.102 6)54; 17,8; 2,041.10-3; 513.103

3. Записать на языке С++ арифметические выражения

Вариант Математическая запись
структура основной программы - student2.ru
структура основной программы - student2.ru
структура основной программы - student2.ru
структура основной программы - student2.ru
структура основной программы - student2.ru
структура основной программы - student2.ru
структура основной программы - student2.ru
структура основной программы - student2.ru
структура основной программы - student2.ru
структура основной программы - student2.ru
структура основной программы - student2.ru
структура основной программы - student2.ru
структура основной программы - student2.ru
структура основной программы - student2.ru
структура основной программы - student2.ru
структура основной программы - student2.ru

4. Записать в виде алгебраической формулы

  Вариант   Запись на языке С++    
    log(abs(x*x*x))+atan(x)+exp(omega)
  x*sin(3.14/4.0)/(1-2*x*cos(3.14/4.0)+exp(1/3*log(x)))
  sqrt(fabs(log(sin(x)+2)))
  3*sin(x)+1/3*log(1+x*x)+sqrt(exp(x))
  sqrt(abs(x-y))/(pow(sin(z),2)+1)
  exp(abs(x+y))*exp(x*log(1 +sin(y)))
  2*((x+y+z)*pow((x+y+z),2)/(2*x)-sin(x*x*x))
  (sin(al)+atan(al))/(omega+pow(cos(al),2))
  exp(cos(x))*pow(cos(sin(x)),2)+5.7E-1
  exp(x)/(4E-1 +x*x)-sin(log(x))
  4*a*a+x*(b*b*b+x*(pow(c,4)+x*(a-exp(x))))
  18*a*x*x+exp(2/3*log(x))+sin(al/2)
  2*b*b*b+log(a)-exp(2.5*log(x))
  (x+y+z)/(pow(sin(a*x),2)+b*b)
  exp(y/x*log(abs(x)))+exp(1/3*log(y/x))
  atan(x*x*x)/(log(x)+sin(x)/cos(x))+1

5. Вычислить арифметическое выражение

Вариант Запись на языке С++ Исходные данные
18.75 - 16.4Е0+1/4 -
floor(sqrt(a+b)) a = 0,84; b = 0,16
3/x+x*x x = 2
(x*x*t+2.1)*ceil(1/4)+5 x = 36; t =5,287
i+3-i*pow(i,2) i = -3
4+exp(ceil(3/2)*log(6.25E-1)) -
1%3+1/3 -
2*10/4 . -
x/(y*x-y)+x/y+1.2E1 x = 3; y= 1,5
19/4+1%4 -
100*(99/100) -
m+k*((m+k)/n)-n M=2; k=7; n= 10
2*floor(4/10)+2E0 -
2.0*(1E5) -
  19/4+5%4     -
exp(1/3*log(27))+2 -

Наши рекомендации