СТРУКТУРА НА ПРОГРАМАТА
Кирил Иларионов
k.ilarionov at gmail.com
ПЪРВА ПРОГРАМА
Време е да проверим работоспособността на средата за програмиране.
Внимавайте с малките и главните букви.
C/C++ ги възприема като различни букви.
За да проверим работоспособността ще следваме примерната програма показана на следващите два екрана:
ИЗХОДЕН КОД - SOURCE
/*
sumAverage2nums.cpp
Name: ILARIONOV, Fac. Num.: 55331, 11-Aug-2010
--------
The programm reads two numbers and prints their sum and average.
*/
#include <iostream>
using namespace std ;
double average (double num1, double num2) ;
ИЗХОДЕН КОД - SOURCE (Cont.)
main ()
{
double a, b ;
cout <<"\nЕnter two numbers please " ;
cin >>a >>b ;
cout <<a <<" + " <<b <<" = " <<(a+b) <<'\t' ;
cout <<"The average equals to " <<average(a, b) <<'\n' ;
}
// Returns the average of two numbers.
double average (double num1, double num2)
{
return (num1+num2)*0.5 ;
}
КАК РАБОТИ ПРИМЕРНИЯ ИЗХОДЕН КОД?
- Изходният код (source) е поредица от инструкции, наречени оператори.
- Операторите завършват с ;
- Изходният код започва с коментар. ПРЕПОРЪЧВА СЕ!!!
- Коментарът е предназначен за хората и се игнорира от транслатора.
- Коментарът започващ с
/*
и завършващ с */
може да е на повече от един ред.
- Коментарът започващ с
//
продължава само до края на текущия ред.
- Началният коментар:
-
- съдържа името на файла с изходния код;
- идентифицира програмиста написал програмата;
- описва решаваната задача;
- ориентира кога е създавана програмата.
КАК РАБОТИ ПРИМЕРНИЯ ИЗХОДЕН КОД? (Cont.)
#include <iostream>
- Редът осигурява Входно-Изходните операции в C++
-
Това е директива на предпроцесора
- започва с
#
- НЕ завършва с
;
using namespace std ;
- Редът осигурява достъп до имената от пространството
std
- Пространството
std
се използва от библиотеката iostream
- Пробвайте да транслирате програмата без този ред?
Source, прототип на функция
double average (double num1, double num2) ;
- Редът задава прототип на функция.
-
Прототипът на функция:
- започва с задаване на вида (типа) на резултата, но може и да се пропусне;
-
задава се името с което се извиква функцията;
-
списък от параметри на функцията:
- списъкът е заграден в скоби;
- параметрите се разделят с запетайка;
- функцията може да има само един параметър;
- функцията може да няма параметри;
- за всеки параметър се указва:
- тип на параметъра;
- име на параметъра;
- евентуално и подразбираща се стойност, ако параметъра е пропуснат.
- завършва с
;
Source, Entry Point
main ()
{
<Списък от оператори завършващи с ;
>
}
- Първият ред декларира функция с име
main
-
- Функцията
main
се изпълнява веднага след стартирането на програмата, т.е. този функция задава входната точка в изпълнимия ни код.
- Функцията
main
може да има параметри.
- Типът на резултата е пропуснат в реда деклариращ функцията, т.e.
подразбира се че сме написали int main ()
Source, Entry Point (Cont.)
main ()
{
<Списък от оператори завършващи с ;
>
}
-
С двете скоби
{
и }
се задава тялото на функцията, т.е. от къде започва и къде завършва изпълнимия код на дефинираната от програмиста функция.
-
-
Тялото на функцията е списък от оператори.
- Операторите се изпълняват последователно, като се започва с първия оператор от списъка.
return
е оператор за завършване изпълнението на функцията.
- Функцията може да прекрати работата си и преди последния оператор от списъка, ако се изпълни оператора
return
- В примера ни транслаторът автоматично е добавил
оператора return 0;
след последния оператор от списъка.
-
След
}
завършваща тялото на функцията няма ;
Source, ДЕКЛАРИРАНЕ НА ПРОМЕНЛИВИ
double a, b ;
- Декларира че променливите
a
и b
са от тип double
.
-
- Променливата е участък от оперативната памет (ОП, RAM) в които се съхранява определен вид информация (данни).
- Всяка променлива има:
- ИМЕ;
- ТИП;
- СТОЙНОСТ;
- АДРЕС;
- РАЗМЕР за съответния тип променлива.
- Името на променливата ни позволява:
-
- да прочетем стойността й, при което стойността не се променя;
- да й зададем нова стойност, при което губим старата стойност, тъй като участъка от паметта е един и същ;
- да узнаем адреса на променливата.
Source, ДЕКЛАРИРАНЕ НА ПРОМЕНЛИВИ (Contd.)
- Типът на променливата определя какъв вид информация се съхранява. Тип
double
означава че се работи с десетични числа.
- Съхраняваната информация се нарича стойност на променливата. Правилата за пресмятане на стойността са различни за променливите от различен тип.
- Стойността на променливата се съхранява на определен адрес от ОП.
- Размерът на променливата е дължината на участъка от ОП където се съхранява стойността й. Размерът на променливата
се определя от типа й.
Source, ВХОДНО-ИЗХОДНИ ОПЕРАТОРИ
cin
-
въвеждане на информация от устройството за
стандартен вход,
клавиатура обикновенно. Това
променя стойностите на променливите.
cin >>a >>b ;
Въвеждане на данни в променливите
a
и
b
.
Source, ВХОДНО-ИЗХОДНИ ОПЕРАТОРИ (Cont.)
-
cоut
- разпечатване (извеждане) на информация на устройството за стандартен изход, монитор обикновенно.
Стойностите на променливите само се прочитат от ОП, т.е. запазват се.
-
cout <<"\nЕnter two numbers please " ;
Преминава на нов ред и разпечатва текст.
cout <<a <<" + " <<b <<" = " <<(a+b) <<'\t' ;
Извежда стоиностите на променливите a
и b
, сборът им, поясняващи текстове и символ за табулация.
cout <<"The average equals to " <<average(a, b) <<'\n' ;
Извеждат се: текст, резултатът от изпълнението на функцията average
и се преминава на нов ред.
Source, ИЗХОДЕН КОД НА ФУНКЦИЯ
// Returns the average of two numbers.
double average (double num1, double num2)
{
return (num1+num2)*0.5 ;
}
- Това е изходния код на функцията
average
-
- Започва се с коментар описващ функцията. ПРЕПОРЪЧВА СЕ!!!
- Вторият ред задава типа на резултата, името на функцията и списък от параметри.
Този ред не завършва с
;
за разлика от прототипа на функцията.
-
С двете скоби
{
и }
се задава тялото на функцията
- с
return
се изчислява и връща резултат към мястото от което е извикана функцията и функцията ни приключва с работата си.
Source, ИЗХОДЕН КОД НА ФУНКЦИЯ (Cont.)
- Изходните кодове на функциите е прието да са след кода на функцията
main
- Изходните кодове на функциите не завършват с
;
- Функцията
main
също не завършва с ;
СТРУКТУРА НА ПРОГРАМА НА C/C++
- В нашата примерна програма операторите са групирани и подредени съобразно типичната структура на програма написана на C/C++.
-
- СТРУКТУРА НА ПРОГРАМА
-
- начален коментар;
- предпроцесорни директиви;
- деклариране на променливи, глобални за програмата;
- прототипи на функции;
- функция
main
;
- изходни кодове на използваните функции
-
- започва се с коментар описващ:
-
- предназначението на функцията;
- евентуално начина за използването й.
-
Препоръчва се спазването на, така описаната структура на програма!!!
УПРАЖНЕНИЕ № 1
cout <<(5+2*6) ;
Горният оператор изчислява и отпечатва стойността на аритметичния израз.
- Какъв резултат ще се отпечата, 42 или 17?
- Напишете програма с която да проверите какво се отпечатва?
- Защо резултатът е такъв?
УПРАЖНЕНИЕ № 2
cout <<(b-a) ;
Горният оператор изчислява и отпечатва разликата
b-a
.
- Напишете програма която за въвеждане на данни в променливите
a
и b
, след което да отпечатва разликите:
-
УПРАЖНЕНИЕ № 3
Напишете програма която да въвежда стойности в променливите
a
,
b
и
c
, след което да отпечатва сумата им.
Изход