Documente Academic
Documente Profesional
Documente Cultură
repeta
instructiune
pana cand (expresie logica)
<=>
instructiune
cat timp (NOT expresie logica) executa
instructiune
sfarsit cat timp
executa
instructiune
cat timp (expresie logica)
<=>
instructiune
cat timp (expresie logica) executa
instructiune
sfarsit cat timp
PENTRU -> CAT TIMP
repeta
instructiune
pana cand (expresie logica)
<=>
executa
instructiune
cat timp (NOT expresie logica)
ALGORITMI ELEMENTARI
14. CITIREA SI PRELUCRAREA UNUI SIR DE NUMERE CARE SE TERMINA CU VALOAREA 0 CARE
NU FACE PARTE DIN SIR
cin>>x;
while (x!=0)
{
// prelucrarea lui x;
cin>>x;
}
15. DETERMINAREA CELUI MAI MARE NUMAR x<n SI CARE ARE O PROPRIETATE
n=25 => x=23
cin>>n;
x=n;
do
{
x--;
OK <- 1
for (d=2;d<=x/2;d++)
if (x%d==0)
OK <- 0;
}
while (OK==0);
cout<<x;
16. DETERMINAREA CELUI MAI MIC NUMAR x>n SI CARE ARE O PROPRIETATE
n=25 => x=29
cin>>n;
x=n;
do
{
x++;
OK <- 1
for (d=2;d<=x/2;d++)
if (x%d==0)
OK <- 0;
}
while (OK==0);
cout<<x;
TIPURI DE PROBLEME
A) CITIRE N (EVENTUAL M) SI CONSTRUIRE MATRICE CU N LINII SI N (EVENTUAL M) COLOANE
#include <iostream>
using namespace std;
int a[101][101],n,m,i,j..;
int main()
{
cin>>n>>m;
for (i=1;i<=n;i++)
for (j=1 ;j<=m; j++)
if (...) a[i][j]=...;
for (i=1;i<=n;i++)
{
for (j=1 ;j<=m; j++) cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44
- numerotare 0..n-1
for (i=0;i<n;i++)
for (j=0 ;j<n; j++)
if (i==j) //prelucrarea lui a[i][i], element de pe diagonala principala;
else if (i<j) //prelucrarea lui a[i][j], element aflat deasupra diagonalei
principale;
else //prelucrarea lui a[i][j], element aflat sub diagonala principala;
Bc) PRELUCRAREA ELEMENTELOR MATRICEI PATRATICE IN FUNCTIE DE DIAGONALA
SECUNDARA
- numerotare 1..n
for (i=1;i<=n;i++)
for (j=1 ;j<=n; j++)
if (i+j==n-1) //prelucrarea lui a[i][n+1-i], element de pe diagonala
secundara;
else if (i+j<n-1) //prelucrarea lui a[i][j], element aflat deasupra
diagonalei secundare;
else //prelucrarea lui a[i][j], element aflat sub diagonala secundara;
- numerotare 0..n-1
for (i=0;i<n;i++)
for (j=0 ;j<n; j++)
if (i+j==n+1) //prelucrarea lui a[i][n+1-i], element de pe diagonala
secundara;
else if (i+j<n+1) //prelucrarea lui a[i][j], element aflat deasupra
diagonalei secundare;
else //prelucrarea lui a[i][j], element aflat sub diagonala
secundara;
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44
00 01 02 03
10 11 12 13
20 21 22 23
30 31 32 33