Линейни алгоритми са тези, при които последователността от действия е една и съща за всички входни данни.

Основно свойство на данните е техния тип. Типът на данните определя множеството от стойностите, които могат да приемат данните от този тип, и множеството от операции, които могат да се изпълняват над тези данни.
1. Множество от стойности на стандартните данни в С++
В
символните
данни в С++ се
съхраняват
единични
символи. Те
могат да се
разглеждат и
като
целочислени
данни, тъй
като
символите се записват
в паметта на
компютъра
чрез техните ASCII
кодове.
Например, ако ch е от
тип char, то
резултатът
от
присвояванията ch='A' и ch=65 е
един и същ.
(Английската
буква А има ASCII
код 65.)
Целите числа се дефинират от тип int, а реалните, наречени още числа с плаваща запетая, – от тип float.
Дефинирането на данни в С++ се подчинява на следния синтаксис:
име
на тип
списък
от имена на
променливи
; .
![]()
![]()
![]()
![]()
![]()
Имената на
променливите
в
списък
от имена на
променливи
се
разделт със
запетая.
Допуска се инициализиране
на
променливите
(задаване на
начална
стойност на
етапа на дефиниране.
И така
списък
от имена на
променливи
се
създава
съобразно
следния
синтаксис:
име
на
променлива
=
стойност
,
име
на
променлива
=
стойност
;
Примери:
char ch;
int x, y, z;
float Pi, Alfa;
float Pi=3.14, Alfa=90, S;мената
на
променливите
могат да
включват букви
от
английската
азбука, цифри
и знака долна
черта.
G
ВНИМАНИЕ! Не
се допуска
интервал в
имената на
променливите.
G
ВНИМАНИЕ! C++ прави
разлика
между главни
и малки букви. За него ALPHA, alpha и Alpha са
три различни
променливи.Като
правило
всички
ключови думи
на езика се
изписват с
малки букви.
Стандартните данни могат да бъдат модифицирани. При целите числа и символите могат да се приложат модификаторите signed и unsigned. Тези два модификатора не променят размера на разрядната решетка (фиг.1 и фиг.2), а само тълкуването на разрядите (битовете) в нея. Модификаторът signed означава, че най-старшият бит в разрядната решетка е знаков, а останалите – значещи. Модифицираните със signed данни могат да приемат положителни и отрицателни стойности. Модификаторът unsigned означава, че всички битове в разрядната решетка са значещи, включително и най-старшият, и данните могат да заемат само положителни стойности и 0. Модификаторът signed може да бъде пропуснат, тъй като това е модификаторът по подразбиране за данните от тип int и char. Когато се работи с данни от тип unsigned int, ключовата дума int може да бъде пропусната, тъй като се подразбира.
char = signed char int = signed int unsigned = unsigned int
G ВНИМАНИЕ!


При целите и реалните числа могат да се приложат модификаторите short и long. Тези два модификатора променят размера на разрядната решетка в зависимост от някои установени конвенции на конкретния компилатор. Модификаторът short задава два пъти по-къса разрядна решетка от long, а long - два пъти по-дълга разрядна решетка от short. Модификаторът short може да бъде пропуснат, тъй като това е модификаторът по подразбиране за данните от тип int и float. В С++ за типа long float е дефинирана и се използва специална ключова дума – double.
G ВНИМАНИЕ! double = long float .
|
Тип |
Заемана
памет |
Множество
от
стойности |
||
|
signed |
unsigned |
|||
|
char |
1 байт |
-128 ¸ +127 |
0 ¸ 255 |
|
|
int |
short int (int) |
0 ¸ 65 535 |
||
|
long int |
|
|||
|
float |
short float (float) |
- |
||
|
long float (double) |
8 байта |
610E-307 ¸610E307 |
- |
|
2.
Множество
от операции
над
стандартните
данни в С++
|
Аритметични |
|
Сравнение |
||
|
+ |
събиране |
|
> |
по-голямо |
|
- |
изваждане
|
|
< |
по-малко |
|
* |
умножение |
|
>= |
по-голямо
или равно |
|
/ |
целочислено
деление |
|
<= |
по-малко
или равно |
|
% |
остатък
от
целочислено
деление |
|
== |
равно |
|
|
|
|
!= |
не
равно |
G ВНИМАНИЕ! В С++ няма дефиниран булев тип данни, но са дефинирани следните булеви операции:
· логическо отрицание - означава се със знака ! ;
· логическо И - означава се със знака && ;
· логическо ИЛИ - означава се със знака || .
Булевите операции могат да се прилагат върху челочислени данни и да връщат стойност 0, ако резултатът е лъжа, и стойност 1, ако резултатът е истина.
Булеви
операции
Логическо
И X Y X
&& Y 0 0 0 0 1 0 1 0 0 1 1 1 Логическо
отрицание X ! X 0 1 1 0 Логическо
ИЛИ X Y X
|| Y 0 0 0 0 1 1 1 0 1 1 1 1
b)
Реални
числа(числа с
плаваща
запетая)
|
Аритметични |
|
Сравнение |
||
|
+ |
събиране |
|
> |
по-голямо |
|
- |
изваждане
|
|
< |
по-малко |
|
* |
умножение |
|
>= |
по-голямо
или равно |
|
/ |
деление |
|
<= |
по-малко
или равно |
|
|
|
|
== |
равно |
|
|
|
|
!= |
не
равно |
|
|
|
|
|
|
G ВНИМАНИЕ! Знакът за целочислено деление и деление на реални числа е един и същ – наклонена черта ( / ). Компилаторът на С++ изпълнява целочислено деление или деление на реални числа в зависимост от операндите. Ако и двата операнда са цели числа се изпълнява целочислено деление. Ако поне единият операнд е реално число се изпълнява деление на реални числа. Например изразът 7/2 дава резултат 3, докато 7.0/2 дава резултат 3.5. Във вторият случай се изпълнява деление на реални числа, тъй като 7.0 е записано като реално число.
3.
Данни с
изброени
стойности в
С++
Данните с изброени стойности могат да приемат стойности от крайно, предварително зададено множество от цели числа. Типът се декларира с ключовата дума enum, като се спазва следния синтаксис:
enum
име
на тип
{
списък
на
стойностите
}[
списък
на
променливи
];
списък на стойностите представлява подредено множество от имена, разделени със запетаи. Всяко име получава целочислена стойност взависимост от поредността на записване. Броенето започва от 0.
Пример:
enum Week{Mon,Tue,Wed,Thu,Fri,Sat,Sun};
Mon получава
стойност 0, Tue - стойност 1, Wed -
стойност 2
и така
нататък.
Когато се налага промяна на тази естествена номерация, на съответното име се присвоява в явен вид неговата целочислена стойност.
Пример:
enum number{ Ivan, Elena,
Svetla=10, Georgi,
Vasil };
Ivan
получава
стойност 0,
Elena -
стойност 1, Svetla – стойност
10, Georgi – стойност 11 и Vasil – стойност 12.
Константите в С++ се дефинират като пред името на типа се запише ключовата дума const и се зададе стойност. Синтаксис:
const
име
на тип
име
на константа
=
стойност
,,, ;
Ако не е задедно име на тип се подразбира int.
Примери
const float Pi=3.14;
const char ch=’*’;

Зад.1 Да се напише програма, която извежда на екрана съобщението "Здравейте! Това е маята първа задача." .
Решение

Ò
#include <iostream.h>
![]()
main()
{
cout<<"Здравейте! Това е маята първа задача."<< "\n";
}
#include е директива към предпроцесора, която изисква включването към програмата на заглавния файл, записан в ъглови скоби или кавички непосредствено след нея. В разглежданата програма се включва заглавният файл iostream.h, в който са описани входно-изходните потоци cin и cout. cin е обект от тип входен поток (прехвърля данни от клавиатурата към програмата). С един обект cin могат да се въведат стойности за няколко променливи, но всяка променлива трябва да е предшествана от поточния оператор >>. Въведените стойности се присвояват на променливите по реда на тяхното записване.
Пример:
cin>>x>>y>>z;
Първата въведена стойност се присвоява на x, втората – на y, третата - на z. За край на въвеждането се счита въвеждането на някой от така наричините “бели пространства” – интервал, табулация или нов ред.
cout е обект от тип изходен поток (прехвърля данни от програмата към екрана). С един обект cout могат да се изведат множество данни (константи и променливи), но всяка от тях трябва да е предшествана от поточният оператор <<.
Примери:
cout<<"Здравейте! Това е маята първа задача."<<"\n";
cout<<”Стойността
на x е ”<<x<<”\n”;
\n е символ, който предизвикво преместване на курсора на нов ред на екрана. Вместо него може да се запише ключовата дума endl. Резултатът ще бъде същия.
Примери:
cout<<"Здравейте!
Това е маята
първа
задача."<<endl;
cout<<”Стойността
на x е ”<<x<<endl;
G ВНИМАНИЕ! Текстът в кавичките излиза на екрана точно така, както сте го написали, а на мястото на променливата x на екрана се записва нейната стойност.
G ВНИМАНИЕ! Всяка програма, написана на C++ трябва да има точно една функция main(), наречена главна функция. Тялото на функцията се загражда във фигурни скоби. Изпълнението на програмата започва винаги от първия оператор на тази главна функция.

Зад.2 Да се напише програма, която намира сумата на две числа (х и у) и извежда резултата на екрана.
Зад.3 Да се напише програма, която намира и извежда на екрана дължината на окръжност и лицето на кръг с радиус R.
Зад.4 Даден е правоъгълен триъгълник с катети a и b и хипотенуза c. Да се напише програма, която по дадени дължина на хипотенузата c и ъгъл a (между b и c) намира и извежда на екрана дължината на катетите.
Зад.5
Даден е
правоъгълен
триъгълник с
катети a
и b и
хипотенуза c. Да се
напише
програма,
която по
дадени a
и b
изчислява
хипотенузата
c.
Зад.6 Да се
напише
програма,
която намира
и извежда на
екрана
стойността
на израза:
ЗАДАЧИ ЗА САМОСТОЯТЕЛНА РАБОТА
Œ Да се напише програма, която намира и извежда на екрана обиколката и лицето на произволен правоъгълник.
Да се напише програма, която намира и извежда на екрана обема на куб.
Ž Да се напише програма, която намира и извежда на екрана обиколката и лицето на произволен триъгълник по зададени ъгъл a(Alpha) и прилежащите му страни b и c.
За намиране на лицето да се използва формулата:
![]()
Да се напише програма, която въвежда стойности за две съпротивления R1 и R2 и изчислява еквивалентното им съпротивление при последователно и паралелно свързване.
За решаването на задачата да се използват известните формули:
Rs=R1+R2 за еквивалентното съпротивление при последователно свързване;
Rp=R1*R2/(R1+R2) за еквивалентното съпротивление при паралелно свързване.
По
дадена
температура
на въздуха по
Фаренхайт, да
се изчисли
температурата
по Целзий.
Връзката
между двете
скали е
следната:
където C е температурата по Целзий, а F - температурата по Фаренхайт.
Да се намери средноаритметичната стойност на 4 зададени числа.
Да се напише програма, която намира и извежда на екрана стойността на израза:

Забележка.
Функцията,
която
повдига
числото e на степен x е exp(x) и е
описана в
заглавния
файл math.h.
Да се напише програма, която намира и извежда на екрана стойността на израза:
![]()
Забележка.
Функцията,
която
изчислява
натурален
логаритъм от x е ln(x) и е
описана в
заглавния
файл math.h.
Да се напише програма, която намира и извежда на екрана стойността на израза:
![]()
Забележка. Функцията,
която
изчислява arctg(x) е atan(x) и е
описана в
заглавния
файл math.h.
Œ‹ Да се
напише
програма,
която намира
и извежда на
екрана
стойността
на израза:
ŒŒ Да се
напише
програма,
която намира
и извежда на
екрана
стойността
на израза: