- оператор функция
- функция abs
- функция atof
- функция atoi
- функция atol
- оператор break
- оператор case
- функция cell и floor
- функция cin и cout
- функция clock
- оператор const
- оператор continue
- оператор default
- оператор define
- функция div
- оператор do
- функция fgetc
- функция fgets
- оператор for
- функция fprintf
- функция freopen
- функция fseek
- функция fwrite
- оператор if
- оператор itoa
- функция ltoa
- функция main
- функция setprecision и setw
- манипулатори oct, hex
- функция modf
- функция pow
- функция printf
- функция puts
- функция rand
- функция scanf
- функция sin - синус и cos - косинус
- функция sizeof
- функция sqrt
- функция srand
- функция strcat
- функция strchr
- функция strcmp
- функция strcoll
- функция strcspn
- функция strlen
- функция strcpy и strncpy
- функция strrev
- оператор struct
- функция strlwr и strupr
- оператор switch
- функция tan - тангенс
- функция tmpnam
- функция tolower и toupper
- функция void
- оператор while
- съпоставяне do и while
оператор за цикъл for - обхождане на елементи от масив
Един от май-често използвания оператор за цикъл е for - цикъл с предусловие. Управлението на цикъл for се осъществява чрез трите израза, написани между знаците точка запетая ( ; ; ) в заграденото от кръгли скоби място след думата "for". операторът във фигурните скоби се нарича тяло на цикъла. Индексната променлива на цикъл for е задължително от изброим тип, най-често цяло число. Като съставен оператор в тялото на цикъл for може да бъде един или повече оператори за цикъл for, do, while.
Примерната блок схема илюстрира работа на цикъл for.Възможно е в тялото на един цикъл for да участват повече оператори (инструкции), а не само един. Когато там използваме само един оператор, може да не употребяваме фигурните скоби. При всяко завъртане на цикъла for броячът (индексната променлива) нараства/намалява с 1, освен ако не е указано друго. Описание на общ вид на оператор за цикъл for:
for (int i = начална стойност; i<= крайна стойност; i++) {оператор 1; оператор 2; . . .}
извеждане на цифри 0-9
Следващата примерна програма извежда на екрана всички цифри от интервала 0..9 чрез цикъл for:#include<iostream> using namespace std; int main( ) { int a;//w tqloto na cikyla "for" promenliwata she byde inicializirana cout<<"Da se systawi programa, chrez koqto s cikyl for \n"; cout<<"se izwevdat na ekrana wsichki ednocifreni chisla.\n"; cout<<"Primer: Izhod 0123456789\n"; for (a=0;a<10;a++) //indeksnata promenliwa "a" da ne dostiga 10 { cout<<a; }//kraj na cikyla for cout<<endl; system("pause"); return 0; }//kraj na programa for
сума на цифри в числа
Имаме предварително въведени N броя естествени числа в едномерен масив. Трябва на всяко едно число от тази редица да намерим сумата от неговите цифри му.
АлгоритъмЩе използваме цикъл for за генериране на нужния брой случайни числа.
Ще използваме цикъл for за обхождане на всяко от числата в масива.
Ще инициализираме със стойност нула търсената сумата от всички цифри на всяко въведено число в масива.
С вложен цикъл while (в цикъла for) ще натрупаме сумата от всички цифри на поредното число от масива.
Ще присвоим натрупаната сума в елемент от друг масив - номерът на елемент съвпада със стойността на индексната променлива във външния цикъл for.
С цикъл for ще изведем сумата цифри на всяко от началните числа.
Следвата програма дава пример за обхождане елементи на масив с оператор за цикъл for:
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int const Broj=15, Gran=19999;//maksimalen broj chisla i maksimalna stojnost
void cifri (int mas[], int cif[])
{ int i,cifrite;
for (i=0;i<Broj;i++)
{ cifrite=0;//nachalna inicializaciq
while (mas[i])
{ cifrite+=mas[i]%10;
mas[i]/=10;
} //while
cif[i]=cifrite;
}//for
}//void cifri for
int main()
{ int i,mas[Broj], cif[Broj];
char ose;
time_t t;
srand((unsigned) time(&t));//inicializira generator na suchajni chisla
cout<<"Imame predwaritelno wywedeni N broq sluchajni chisla ot interwala\n";
cout<<"[1001..1000001]. Tyrsim sumata ot cifrite za wsqko ot chislata.\n";
cout<<"Primer: 1234 5678 Izhod: 10, 26\n";
do {
cout<<"Generiram sluchajni chisla:\n";
for(i=0; i<Broj; i++) {mas[i]=(rand () %Gran); cout<<mas[i]<<"; ";} // for
cout<<endl;
cifri(mas,cif);
cout<<"Suma na cifrite za wsqko otdelno chislo:\n";
for(i=0; i<Broj; i++) {cout<<cif[i]<<"; ";} // for
cout<<endl;
cout<<"She wywevdate li drugi danni <y/n>: ";cin>>ose;
} while (ose=='y');
system("pause");
return 0;
}//kraj na programa for
елементи в диагонал на двумерен масив
Всеки елемент в масив има свой пореден номер, свой индекс. Една от често срещаните задачи е да се изведат елементите по основния диагонал в двумерен масив. Броят на тези елементи е равен на броя редове / колони. Така всеки елемент по главния диагонал има равни индекс за ред и колона. В следващата примерна програма се въвеждат като стойности на елементите техните индекси за ред и колона - с вложен цикъл for. Така въведените стойности за целия масив след това се извеждат само елементите от основния диагонал и от другия диагонал от този масив. Ползва се само по един цикъл за обхождане на всички елементи от диагонал на двумерен масив, т.к. съществува рекурентна зависимост между стойността на индексната променлива на съответния цикъл for и индексите на елементите от двата диагонала.
#include <iostream>
using namespace std;
int const N=7;
int main()
{ int mas[N][N], i,j,k;
cout<<"Imame dwumeren kwadraten masiw ot N na broj reda i koloni.\n";
cout<<"Da se izwedat indeksite na elementite po 2-ta diagonala.\n";
// dawa stojnostit na otdelnite elementi w masiwa
cout<<"Izwevdam elementite ot celiq masiw: \n";
for (i=0;i<N;i++)
{ for (j=0 ;j<N;j++)
{mas[i][j]=10*(i+1)+ j+1;
cout<<mas[i][j]<<" ";
} //for po koloni
cout<<endl;
}// for po redowe
cout<<"Izwevdam elementi na osnowniq diagonal: ";
for (i=0;i<N;i++)
{cout<<mas[i][i]<<"; ";} //for glawen diagonal
cout<<endl;
cout<<"Izwevdam elementi na neosnowniq diagonal: ";
for (i=0;i<N;i++)
{cout<<mas[i][N-i-1]<<"; ";} //for glawen diagonal
cout<<endl;
system("pause");
return 0;
} //kraj programa for
Задачи с подобни функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени примери.