Оператор за цикъл for - обхождане на елементи от масив

Един от май-често използвания оператор за цикъл е for - цикъл с предусловие. Управлението на цикъл for се осъществява чрез трите израза, написани между знаците точка запетая ( ; ; ) в заграденото от кръгли скоби място след думата "for". операторът във фигурните скоби се нарича тяло на цикъла. Индексната променлива на цикъл for е задължително от изброим тип, най-често цяло число. Като съставен оператор в тялото на цикъл for може да бъде един или повече оператори за цикъл for, do, while.

Възможно е в тялото на един цикъл 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 

Задачи с подобни функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени примери.



Начало на страницата

 
Размер на шрифта
Increase Font Size Option 3 Reset Font Size Option 3 Decrease Font Size Option 3
Bulgarian Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Търсене в сайта: