Algoritmi generali

Interschimbarea a 2 numere

Fie a si b

aux=a;
a=b;
b=aux;

Numarul maxim

Fie n nr de numere

max=0
for(i=1;i<=n;i++)
{
cin>>a;
if(a>max)
{
max=a;
}
}

Numarul minim

Fie n nr de numere

cin>>min;
for(i=2;i<=n;i++)
{
cin>>a;
if(a<min)
{
min=a;
}
}

Obtinerea cifrelor dintrun nr de 4 cifre

Fie x nr de 4 cifre
d=x%10 cifra a 4a
c=x/10%10 cifra a 3a
b=x/100%10 cifra a 2a
a=x/1000%10 prima cifra

}

Prelucrarea cifrelor

Fie x;

while(x!=0)
{
cifra=x%10;
*prelucrare cifra;
x/=10;
}

Cifra maxima

Fie x;

cmax=0;
while(x!=0)
{
if(x%10>cmax)
{
cmax=x/10;
}
x/=10;
}

Cifra minima

Fie x;

min=10;
while(x!=0)
{
if(x%10<min)
{
min=x%10;
}
x/=10;
}

Numarul de cifre

Fie x;

cate=0;
while(x!=0)
{
cate++;
x/=10;
}

Suma cifrelor unui numar

Fie x;

s=0;
while(x!=0)
{
s+=x%10;
x/=10;
}

Oglinditul unui numar

Fie x;

og=0;
while(x!=0)
{
og=og*10+x%10;
x/=10;
}

Prima cifra

Fie x;

while(x>9)
{
x/=10;
}

Prelucrarea divizorilor unui numar

Fie x

for(i=2;i<=x/2;i++)
{
if(x%i==0)
{
//prelucrare divizor;
}
}

Testul de numar prim

Fie x

for(d=3,prim=(x==2||x%2==1),r=sqrt(x);d<=r&&prim;d+=2)
{
if(x%d==0)
{
prim=0;
}
}
if(prim!=0)
{
//nr prim;
}
else
{
//nr nu este prim;
}

Descompunerea in factori primi

Fie x;

d=2;
while(x>1)
{
p=0;
while(x%d==0)
{
p++;
}
if(p!=0)
{
//prel
}
d++;
}

Cel mai mare divizor comun a 2 nr

Fie a si b;

while(b!=0)
{
r=a%b;
a=b;
b=r;
}
cmmdc=a;

Cel mai mic multiplu comun

cmmmc=(a*b)/cmmdc;

Schimbarea unui numar din baza 10 in baza B

Fie x10

b10=0;p=1;
while(x10!=0)
{
b10=b10+(x10%b)*p;
p*=10;
x/=b;
}

Schimbarea unui numar din baza B in baza 10;

Fie b10;

pb=1;x10=0;
while(b10!=0)
{
x10+=b10%10*pb;
pb*=B;
b10/=10;
}

}

Vectori
{
Citire

Fie n nr elemente

for(i=1;i<=n;i++)
cin>>x[i];

Scriere

Fie n nr elemente

for(i=1;i<=n;i++)
cout<<x[i];

Elementul minim

Fie n nr elemente

min=x[1];
for(i=2;i<=n;i++)
{
if(x[i]<min)
{
min=x[i];
}
}

Elementul maxim

Fie n nr elemente

max=x[1];
for(i=2;i<=n;i++)
{
if(x[i]>max)
{
max=x[i];
}
}

Sortare prin selectie directa (crescator)

fie x[100],n nr elemente

for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
{
if(x[i]>x[j])
{
aux=x[i];
x[i]=x[j];
x[j]=aux;
}
}
}

Sortare prin metoda bulelor

fie x[100],n;

do
{
ok=1;
for(i=1;i<=n-1;i++)
{
if(x[i]>x[i+1])
{
aux=x[i];
x[i]=x[i+1];
x[i+1]=aux;
ok=0;
}
}
}while(ok==0);

Adaugare element pe pozitia p;

n++;
for(i=n;i>p;i–)
{
x[i]=x[i-1];
}
x[p]=E;

Stergerea elementului de pe poz p;

for(i=p;i<=n;i++)
{
x[i]=x[i+1];
}
n–;
}

Cautarea scventiala

Fie x[100];

ap=0; i=1;

while (i<=n && ap==0)

{ if (x[i]==E)

{ ap=1;

}

i++;}

if (ap==1)

{cout<<„exista”;

else

cout<<„nu exista”;

}

Cautarea binara

Fie x[100];

ap=0; stg=1; drt=n;

while (stg<= drt && ao==0)

{m=(stg+drt)/2;

if (E==x[m])

ap=1;

else

if (E>x[m])

{stg=m+1;

else

drt=m-1;

}

}

if (ap==1)

{cout<<„exista”;

else

cout<<„nu exista”;}

Matrici

Parcurgerea pe linii

Pentru (i=1;n;1)

Pentru (j=1;m;1)

prelucram a[i][j]

Parcurgerea pe coloane

Pentru (j=1;m;1)

Pentru(i=1;n;1)

prel. a[i][j]

Zonele delimitate de diagonala principala

Pentru(i=1;n;1)
Pentru(j=1;n;1)
Daca(j==1)at
a[i][j]- D.P
Daca(j>i)
a[i][j]- deasupra D.P
Daca(j<i)
a[i][j]- sub D.P

Zonele delimitate de diagonala secundara

Pentru (i=1;n;1)
Pentru (j=1;n;1)
Daca (j==n+1-i)
a[i][j]- D.S
Daca (j<n+1-i) a[i][j]- deasupra D.S Daca (j>n+1-i)
a[i][j]- sub D.S

Anunțuri