Professional Documents
Culture Documents
c
var n:byte;
function suma(p,u:byte):integer;{p-pozitia primului element din sirul p..u, u-pozitia ultimului element din sirul
p..u}
var m:byte;s1,s2:integer;
begin
if(p=u) then suma:=p {daca sirul are un singur element suma este egala cu valoarea elementului}
else begin
m:=(p+u)div 2;{gasim pozitia elementului din mijloc}
s1:=suma(p,m);{s1-suma elementelor din prima parte a sirului}
s2:=suma(m+1,u);{s2-suma elementelor din cea de-a doua parte a sirului}
suma:=s1+s2;{suma elementelor din sirul p..u este suma celor elementelor din cele 2 subsiruri}
end;
end;
begin
write('n=');readln(n);
writeln('suma=',suma(1,n));{primul element se afla pe pozitia 1 iar ultimul pe pozitia n}
end.
cc
var n:byte;s:integer;
procedure suma(p,u:byte; var s:integer);{p-pozitia primului element, u-pozitia ultimului element din sirul p..u;
s-suma elementelor din sir}
var m:byte;s1,s2:integer;
begin
if(p=u) then s:=p {daca sirul are un singur element suma elementelor din sir este egala cu valoarea elementului}
else begin
m:=(p+u)div 2;{gasim pozitia elementului din mijloc}
suma(p,m,s1);{s1-suma elementelor din prima parte a sirului p..u}
suma(m+1,u,s2);{s2-suma elementelor din a doua parte a sirului p..u}
s:=s1+s2;{suma elementelor din sir este egala cu suma dintre cele 2 rezultate ale subsirurilor}
end;
end;
begin
write('n=');readln(n);
s:=0;{initializam suma cu 0}
suma(1,n,s);{primul element se afla pe pozitia 1, ultimul element se afla pe pozitia n}
writeln('suma=',s);
end.
c$%&%& '
(
!
Observam ca valoarea elementului minim de pe fiecare coloana este 1 iar valoarea elementului maxim este m.
Elementul x[k] poate fi adaugat la solutie indiferent de elementele aflate pe pozitiile 1...k -1 din solutie.
Avem solutie daca numarul de elemente din vectorul solutie este egal cu numarul multimilor (n).
var x:array[1..50]of byte;
k,n,m:byte;valid:boolean; f:text;
procedure posibil(k:integer;var valid:boolean);{nu exista restrictii la adaugarea elementului x[k]}
begin
valid:=true;
end;
function solutie(k:integer):boolean;{avem solutie daca numarul de elemente din vectorul solutie este egal cu
numarul multimilor (n)}
begin
if(k=n) then solutie:=true
else solutie:=false;
end;
procedure afisare(k:integer);{afisarea vectorului solutie}
var i:byte;
begin
for i:=1 to k do write(f,x[i],' ');
writeln(f);
end;
procedure back;
begin
k:=1;
x[k]:=0;{intializam cu valoarea elementului minim-1}
while(k>0) do begin
valid:=false; {x[k] nu e valid pentru a fi adaugat in solutie}
while(not valid)and(x[k]<m) do {cat timp nu s-a gasit un element x[k] valid pentru solutie si mai sunt
valori pe care le poate avea x[k]}
begin
x[k]:=x[k]+1; {trecem la verificarea urmatoarei valori pentru x[k]}
posibil(k,valid);
end;
if(not valid) then k:=k-1 {daca s-au verificat toate valorile pe care le paote avea x[k] si nu am gasit un
element valid ne intoarcem la pozitia elementului anterior si continuam cautarea de aici}
else if(solutie(k)) then afisare(k) {daca avem solutie o afisam}
else begin {daca am gasit un element x[k] valid si nu am ajuns la o solutie}
k:=k+1;
x[k]:=0;
end;
end;
end;
begin
write('numarul de multimi=');readln(n);
write('numarul de elemente din fiecare multime=');readln(m);
assign(f,'prod.txt');
rewrite(f);
back;
close(f);
end.
#
(
#
)
#
Observam ca:
- valoarea elementului minim este 1; valoarea elementului maxim este n
- elementele din solutie nu se repeta
- pentru a nu se repeta multimile de elemente (adica solutia 1 2 3 este aceiasi cu 2 1 3, 1 3 2...) elementele sunt
introduse in solutie in ordine crescatoare/descrescatoare. Alegem varianta in care elementele sunt in ordine
crescatoare.
- avem solutie cand am introdus in solutie m elemente
var x:array[1..50]of byte;
k,n,m:byte;valid:boolean; f:text;
procedure posibil(k:integer;var valid:boolean);
var i:integer;
begin
valid:=true;
{elementele din solutie nu se repeta}
for i:=1 to k-1 do
if(x[k]=x[i])then valid:=false;
{multimile de solutii nu se repeta: elementele sunt in ordine crescatoare}
if(k>1) then if(x[k]<x[k-1]) then valid:=false;
end;
function solutie(k:integer):boolean;
begin {avem solutie daca au fost introduse in vectorul solutie m elemente}
if(k=m) then solutie:=true
else solutie:=false;
end;
procedure afisare(k:integer);
var i:byte;
begin {afisam vectorul solutie}
for i:=1 to k do write(f,x[i],' ');
writeln(f);
end;
procedure back;
begin
k:=1;
x[k]:=0;
while(k>0) do begin
valid:=false;
while(not valid)and(x[k]<n) do
begin
x[k]:=x[k]+1;
posibil(k,valid);
end;
if(not valid) then k:=k-1
else if(solutie(k)) then afisare(k)
else begin
k:=k+1;
x[k]:=0;
end;
end;
end;
begin
write('numarul de obiecte=');readln(n);
write('m=');readln(m);
assign(f,'comb.txt');
rewrite(f);
back;
close(f);
end.
c
!
#
*,-+
#
Vom codifica cu 0 leii si cu 1 tigrii. Acest mod de codificare nu este unic!
Observam ca:
- valoarea minima este 0 iar valoarea maxima este 1
- avem solutie daca numarul de tigrii este m si numarul de lei este n
- x[k] poate face parte din solutie daca:
* in cazul in care x[k] reprezinta codul unui tigru x[k-1] trebuie sa reprezinte codul unui leu
*din cusca nu se pot scoate mai multi de n lei si mai multi de m tigrii.
var x:array[1..50]of integer;
k,n,m:integer;valid:boolean; f:text;
procedure posibil(k:integer;var valid:boolean);
var i,tig,lei:integer;
begin
valid:=true; /*numaram leii si tigrii din solutie*/
tig:=0;lei:=0;
for i:=1 to k do
if(x[i]=0) then lei:=lei+1
else tig:=tig+1;
if(tig>m)or(lei>n) then valid:=false; /*nu putem scoate din cusca mai multi de n lei si mai multi de m tigrii*/
if(k>1)and(x[k-1]=1)and(x[k]=1) then valid:=false; /*nu putem scoate din cusca 2 tigrii unul dupa altul*/
end;
function solutie(k:integer):boolean;
var i,tig,lei:integer;
begin /*avem solutie daca in vectorul solutie numarul de tigrii este m si numarul de lei este n*/
tig:=0;lei:=0;
for i:=1 to k do
if(x[i]=0) then lei:=lei+1
else tig:=tig+1;
if(tig=m)and(lei=n) then solutie:=true
else solutie:=false;
end;
procedure afisare(k:integer);
var i,j:byte;
begin /*Afisam solutia gasita*/
for i:=1 to k do
if(x[i]=0) then
write(f,'leu ')
else write(f,'tigru ');
writeln(f);
end;
procedure back;
begin
k:=1;
x[k]:=-1;/*initializam cu valoarea minima=0 -1*/
while(k>0) do begin
valid:=false;
while(not valid)and(x[k]<1) do /*valoarea maxima este 1*/
begin
x[k]:=x[k]+1;
posibil(k,valid);
end;
if(not valid) then k:=k-1
else if(solutie(k)) then afisare(k)
else begin
k:=k+1;
x[k]:=-1;/*initializam cu valoarea minima -1*/
end;
end;
end;
begin
write('nr lei=');readln(n);
write('nr tigrii=');readln(m);
if(m>n) then begin write('eroare');halt;end; /*daca avem mai multi tigrii decat lei rezolvarea problemei este
imposibila*/
assign(f,'leitig.txt');
rewrite(f);
back;
close(f);
end.
#
#
#
.
!
#
!#
#
Exemplu:
n=4 si m=3
Avem 4 cuburi. Pentru fiecare citim culoarea si dimensiunea laturii.
rosu 4
galben 3
rosu 2
verde 3
Se va afisa:
1(rosu 4) 2(galben 3)
1(rosu 4) 4(verde 3)
2(galben 3) 3(rosu 2)
2(galben 3) 4(verde 3)
4(verde 3) 2(galben 3)
4(verde 3) 3(rosu 2)
dupa modelul numar_cub(culoare dimensiune)
Observam ca:
- valoarea minima este 1 si valoarea maxima este n (cuburile sunt numeroate de la 1...n)
- avem solutie cand in vectorul solutie avem m cuburi
- respectam conditiile din enunt. In plus, un cub nu poate fi pus de doua ori in acelasi turn.
var x:array[1..50]of integer;
k,n,m:integer;valid:boolean; f:text;
cul:array[1..50]of string;
dim:array[1..50]of byte;
procedure posibil(k:integer;var valid:boolean);
var i,pd,pi:integer;
begin
valid:=true; /*cuburile nu se repeta*/
for i:=1 to k-1 do
if(x[i]=x[k]) then valid:=false;
if(k>1) then if(cul[x[k-1]]=cul[x[k]]) then valid:=false;/*nu pot fi puse unul peste altul 2 cuburi de aceiasi
culoare*/
if(k>1) then if(dim[x[k-1]]<dim[x[k]]) then valid:=false;/*un cub cu latura mai mare nu poate fi pus peste un
cub cu dimensiunea laturii mai mica*/
end;
function solutie(k:integer):boolean;
var i,pi,pd:integer;
begin /*avem solutie cand am pus in turn m cuburi*/
if k=m then solutie:=true
else solutie:=false;
end;
procedure afisare(k:integer);
var i,j:byte;
begin
for i:=1 to k do
write(f,x[i],'(',cul[x[i]],' ',dim[x[i]],') ');
writeln(f);
end;
procedure back;
begin
k:=1;
x[k]:=0;
while(k>0) do begin
valid:=false;
while(not valid)and(x[k]<n) do
begin
x[k]:=x[k]+1;
posibil(k,valid);
end;
if(not valid) then k:=k-1
else if(solutie(k)) then afisare(k)
else begin
k:=k+1;
x[k]:=0;
end;
end;
end;
procedure citire;
var i:byte;
begin
write('n=');readln(n);
write('m=');readln(m);
for i:=1 to n do begin
write('culoarea cubului ',i,':');readln(cul[i]);
write('dimensiunea laturii pentru cubul ',i);readln(dim[i]);
end;
end;
begin
citire;
assign(f,'turn.txt');
rewrite(f);
if(n mod 2=1) then begin write('imposibil');halt;end;
back;
close(f);
end.
%c
(
.
!
!
1
(
Observam ca valoarea minima este 1 (melodia cu numarul de cod 1) si valoarea maxima este n (melodia cu
codul n).
Avem solutie cand am inscriptionat cele n melodii.
Cand inscriptionam, trebuie sa avem grije ca:
- melodia 2 sa nu fi fost inscriptionata inaintea melodii 1
- melodiile sa nu se repete
var x:array[1..50]of integer;
k,n:integer;valid:boolean; f:text;
procedure posibil(k:integer;var valid:boolean);
var i,pd,pi:integer;
begin
valid:=true; /*melodiile nu trebuie sa se repete*/
for i:=1 to k-1 do
if(x[i]=x[k]) then valid:=false;
if (x[k]=1) then /*daca trebuie sa inscriptionam melodia 1 trebuie sa vedem da ca inainte a fost inscriptionata
melodia 2*/
for i:=1 to k-1 do
if(x[i]=2) then valid:=false;
end;
function solutie(k:integer):boolean;
var i,pi,pd:integer;
begin /*avem solutie cand s-au inscriptionat cele n melodii*/
if k=n then solutie:=true
else solutie:=false;
end;
procedure afisare(k:integer);
var i,j:byte;
begin
for i:=1 to k do
write(f,x[i],' ');
writeln(f);
end;
procedure back;
begin
k:=1;
x[k]:=0;
while(k>0) do begin
valid:=false;
while(not valid)and(x[k]<n) do
begin
x[k]:=x[k]+1;
posibil(k,valid);
end;
if(not valid) then k:=k-1
else if(solutie(k)) then afisare(k)
else begin
k:=k+1;
x[k]:=0;
end;
end;
end;
begin
write('n=');readln(n);
assign(f,'melodii.txt');
rewrite(f);
back;
close(f);
end.
335
32
3
2.
a) media aritmetică a cifrelor pare;
b) produsul cifrelor impare
#include<iostream.h>
long unsigned int n;
void medie(long unsigned int n)
{ int u;
int c=0,s=0;
while(n!=0)
{
u=n%10;
n=n/10;
if(u%2==0){c++;s=s+u;}
}
cout<<"media aritmetica a cifrelor pare="<<(float)s/c<<endl;
}
void produs(long unsigned int n)
{
int p=1,u;
while(n!=0)
{
u=n%10;
n=n/10;
if(u%2==1)p=p*u;
}
cout<<"produsul cifrelor impare="<<p<<endl;
}
void main()
{
cout<<"n=";cin>>n;
medie(n);
produs(n);
}
3
.
+
2
#+2
3
=
3?
#include<iostream.h>
#include<stdlib.h>
int a[100],n,k;
void citire()
{
cout<<"nr de elemente n=";cin >>n;
for(int i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";cin >>a[i];
}
cout<<"k=";cin>>k;
if(k<1||k>n) {cout<<"stergerea nu se poate efectua";exit(0);}
}
void afisare()
{
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
cout<<endl;
}
void sterge(int k)
{
for(int i=k;i<n;i++)
a[i]=a[i+1];
n--;
}
void main()
{
citire();
sterge(k);
afisare();
}
3
3
3
!
#
*
3=
+
#include<iostream.h>
#include<stdlib.h>
int a[100],n,k;
void citire()
{
cout<<"nr de elemente n=";cin >>n;
for(int i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";cin >>a[i];
}
}
void afisare()
{
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
cout<<endl;
}
float medie_pare()
{
float s=0;
int c=0;
for(int i=1;i<=n;i++)
if(a[i]%2==0){c++;s=s+a[i];}
if(c!=0)cout<<"media elementelor pare="<<s/c<<endl;
else cout<<"nu exista elemente pare\n";
}
void main()
{
citire();
medie_pare();
}
void citire()
{
cout<<"nr de elemente n=";cin >>n;
for(int i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";cin >>a[i];
}
cout<<"k=";cin>>k;
}
void afisare()
{
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
cout<<endl;
}
void nr_aparitii()
{
int c=0;
for(int i=1;i<=n;i++)
if(a[i]==k)c++;
cout<<k<<" apare de "<<c<<" ori\n";
}
void main()
{
citire();
nr_aparitii();
afisare();
}
2
4
=
4
.
+3
2
*
+
;
#+3
2
4
#include<iostream.h>
#include<string.h>
#include<fstream.h>
#include<io.h>
ifstream f("litere.txt");
int n;
char a[100];
void citire()
{int i;
i=0;
f>>a[i];
while(!f.eof())
{cout<<a[i];
i++;
/*pt nu a avea surprize ca fisierul sa nu aiba decat majuscule
transformam sirul in majusculele*/
strupr(a);
f>>a[i];
}
n=i;
f.close();
}
void maxim()
{
int b[50];
cout<<"\n numarul de caractere="<<n<<"\n";
int k=0;
for(char c='A';c<='Z';c++){
b[k]=0;
for(int j=0;j<n;j++)
if(c==a[j]) b[k]++;
k++;
}
int max=b[0];
for(int i=1;i<k;i++)
if(max<b[i])max=b[i];
cout<<"caracterele cu numar maxim de aparitii="<<max<<endl;
for(i=0;i<k;i++)
if(b[i]==max)cout<<char(65+i)<<" ";
}
void vocale()
{char voc[]="AEIOU";
cout<<"\nvocalele din text\n";
for(int i=0;i<n;i++)
for(int j=0;j<strlen(voc);j++)
if(a[i]==voc[j])cout<<a[i]<<" ";
cout<<"\n";
}
void main()
{citire();
maxim();
vocale();
}
245!
#
3
0
=
.
+3
2
5
#
3;
#+3
9
#include <iostream.h>
#include <conio.h>
#include <string.h>
char cuv[10][10];
int n;
void sortare()
{ char aux[10];int x;
for(int i=1;i<n;i++)
for(int j=1+i;j<=n;j++)
{x=strcmp(cuv[i],cuv[j]);
if(x>0){
strcpy(aux,cuv[i]);
strcpy(cuv[i],cuv[j]);
strcpy(cuv[j],aux);
}
}
for(i=1;i<=n;i++)cout<<cuv[i]<<" ";
cout<<endl;
}
int nrvocale(char s[10])
{char vocale[]="aeiou";int c;int nr=0;
strlwr(s);
for(int i=0;i<strlen(vocale);i++)
{ c=0;
for(int j=0;j<strlen(s);j++)
if(vocale[i]==s[j])c++;
if(c!=0)nr++;
}
if (nr>=4)return 1;
else return 0;
}
void vocale4()
{
for(int i=1;i<=n;i++)
if(nrvocale(cuv[i])==1)cout<<cuv[i]<<" ";
cout<<"\n";
}
int main()
{char a[100],*p,separator[]=" ";
int i=0,nr=0;
cout<<"Dati sirul:";cin.get(a,100);
strcpy(p,a);
p=strtok(p,separator);
while (p)
{strcpy(cuv[++nr],p);
p=strtok(NULL,separator);}
cout<<"Sunt "<<nr<<" cuvinte:"<<endl;
for (i=1;i<=nr;i++) cout<<cuv[i]<<endl;
n=nr;
sortare();
vocale4();
return 0;
}
(
ý
2
<
2
.
+3
3
2
;
#+3
2
5
3
#
=
5
2
#include<iostream.h>
#include<string.h>
#include<fstream.h>
ifstream ff("date.in");
int n;
char a[100][100];
void citire()
{int i;
i=1;
ff>>a[1];
while(strcmp(a[i],"")!=0)
{i++;
ff>>a[i];strlwr(a[i]);//transformam majusculele in litere mici
}
n=i-1;
}
void cuvinte()
{
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
cout<<"\n numarul de cuvinte="<<n<<"\n";
cout<<"cuvintele care incep cu vocala\n";
for (i=1;i<=n;i++)
if ((a[i][0]=='a')||(a[i][0]=='e')||(a[i][0]=='i')||(a[i][0]=='o')||(a[i][0]=='u'))
cout<<a[i]<<" ";
}
void main()
{citire();cuvinte();}
2
4
=
4
.
+3
2
*
+
;
#+3
2
4
#include<iostream.h>
#include<string.h>
#include<fstream.h>
#include<io.h>
ifstream f("litere.txt");
int n;
char a[100];
void citire()
{int i;
i=0;
f>>a[i];
while(!f.eof())
{cout<<a[i];
i++;
/*pt nu a avea surprize ca fisierul sa nu aiba decat majuscule
transformam sirul in majusculele*/
strupr(a);
f>>a[i];
}
n=i;
f.close();
}
void maxim()
{
int b[50];
cout<<"\n numarul de caractere="<<n<<"\n";
int k=0;
for(char c='A';c<='Z';c++){
b[k]=0;
for(int j=0;j<n;j++)
if(c==a[j]) b[k]++;
k++;
}
int max=b[0];
for(int i=1;i<k;i++)
if(max<b[i])max=b[i];
cout<<"caracterele cu numar maxim de aparitii="<<max<<endl;
for(i=0;i<k;i++)
if(b[i]==max)cout<<char(65+i)<<" ";
}
void vocale()
{char voc[]="AEIOU";
cout<<"\nvocalele din text\n";
for(int i=0;i<n;i++)
for(int j=0;j<strlen(voc);j++)
if(a[i]==voc[j])cout<<a[i]<<" ";
cout<<"\n";
}
void main()
{citire();
maxim();
vocale();
}
2
#
44
A6
.
+3
2
;
#+
4
3
2
=
3
#include<iostream.h>
#include<io.h>
#include<fstream.h>
ifstream f("bingo.txt");
int a[90],n;
void citire()
{n=0;
while(!f.eof()) f>>a[++n];
n--;
f.close();
}
void afisare()
{
cout<<"\nin fisier sunt "<<n<<" numere\n";
for(int i=1;i<=n;i++)cout<<a[i]<<" ";
cout<<"\n";
}
int cmmdc(int a,int b)
{
while(a!=b)
if(a>b)a=a-b;
else b=b-a;
return a;
}
void cmmdcn()
{
int c=cmmdc(a[1],a[2]);
for(int i=3;i<=n;i++) c=cmmdc(c,a[i]);
cout<<"cmmdc="<<c<<endl;
}
void maxim()
{
int max=a[1];
for(int i=1;i<=n;i++)
if(max<a[i]) max=a[i];
cout<<"max="<<max<<endl;
cout<<"pozitiile: ";
for(i=1;i<=n;i++)
if(a[i]==max) cout<<i<<" ";
cout<<endl;
}
void main()
{
citire();
afisare();
cmmdcn();
maxim();
}
1
c
2
4
3
0
0
3
03=
=
3
2
2
3
25
2
0
<
#include<iostream.h>
#include<io.h>
#include<string.h>
#include<fstream.h>
ifstream f1("matrice.txt");
ofstream f2("rez.dat");
int a[50][50],n,m;
void citire()
{ int x;
f1>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
f1>>a[i][j];
f1.close();
}
void afisare()
{
f2<<"Matricea este:\n";
for(int i=1;i<=n;i++)
{for(int j=1;j<=m;j++)
f2<<a[i][j]<<" ";
f2<<endl;
}
}
void produs()
{
float p;
for(int j=1;j<=m;j++)
{
if(j%2==1)
{p=1;
for(int i=1;i<=n;i++)
if(a[i][j]%2==0)p=p*a[i][j];
f2<<"produsul numerelor pare de pe coloana "<<j<<" este "<<p<<endl;
}
}
}
void suma()
{
float s;
for(int j=1;j<=m;j++)
{
if(j%2==0)
{s=0;
for(int i=1;i<=n;i++)
if(a[i][j]%2==1)s=s+a[i][j];
f2<<"suma numerelor impare de pe coloana "<<j<<" este "<<s<<endl;
}
}
}
void main()
{
citire();
afisare();
produs();
suma();
f2.close();
}
2
2
2
5
.
+3
;
#+3
#include<iostream.h>
int a[30][30],n,m;
void citire()
{int i,j;
cout<<"n=";cin>>n;
cout<<"m=";cin>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{cout<<"a["<<i<<"]["<<j<<"]";
cin>>a[i][j];
}
}
void minim_linie()
{int min;
for(int i=1;i<=n;i++)
{min=a[i][1];
for(int j=1;j<=m;j++)
if(min>a[i][j])min=a[i][j];
cout<<"min pe linia "<<i<<":"<<min<<endl;
}
}
void perimetru()
{
int nr=0;
for(int j=1;j<=m;j++)
if(a[1][j]%2==0){cout<<a[1][j]<<" ";nr++;}
for(int i=2;i<=n;i++)
if(a[i][m]%2==0){cout<<a[i][m]<<" ";nr++;}
for(j=1;j<=m-1;j++)
if(a[n][j]%2==0){cout<<a[n][j]<<" ";nr++;}
for(i=2;i<=n-1;i++)
if(a[i][1]%2==0){cout<<a[i][1]<<" ";nr++;}
cout<<"nr="<<nr;
}
void afisare()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}}
void main()
{
citire();
afisare();
minim_linie();
perimetru();
}
2
33
42
5
.
+3
2
3;
#+3
5
#include<iostream.h>
int a[30][30],n,m;
void citire()
{int i,j;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"a["<<i<<"]["<<j<<"]";
cin>>a[i][j];
}
}
void afisare()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
}
int prim(int n)
{
if(n<=1) return 0;
int i=2;
while(i<=n/2)
if(n%i==0) return 0;
else i++;
return 1;
}
void diagonala()
{
cout<<"elementele prime de pe diagonala principala\n";
for(int i=1;i<=n;i++)
if(prim(a[i][i]))cout<<a[i][i]<<" ";
cout<<endl;
}
void vector()
{int b[900],i,j;
cout<<"parcurgerea matricii pe coloane\n";
int nr=0;
for(j=1;j<=n;j++)
for (i=1;i<=n;i++)
b[++nr]=a[i][j];
for(i=1;i<=nr;i++)
cout<<b[i]<<" ";
cout<<"\n";}
void main()
{
citire();
afisare();
diagonala();
vector();
}
2
2
.
+3
5
=
4
3
;
#+3
#include<iostream.h>
int a[30][30],n,m,b[30];
void citire()
{int i,j;
cout<<"n=";cin>>n;
cout<<"m=";cin>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{cout<<"a["<<i<<"]["<<j<<"]";
cin>>a[i][j];
}
}
void maxim_linie()
{int max;
for(int j=1;j<=m;j++)
{max=a[1][j];
for(int i=1;i<=m;i++)
if(max<a[i][j])max=a[i][j];
b[j]=max;
cout<<"max pe coloana "<<j<<max<<endl;
}
}
void sortare()
{int aux;
cout<<"elementele sortate\n";
for(int i=1;i<=m-1;i++)
for(int j=i+1;j<=m;j++)
if(b[i]>b[j])
{aux=b[i];b[i]=b[j];b[j]=aux;}
for(i=1;i<=m;i++)cout<<b[i]<<" ";
cout<<endl;
}
void afisare()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}}
void main()
{
citire();
afisare();
maxim_linie();
sortare();
}
3
40
2
05
3
3
,192
3
#include<iostream.h>
int a[30][30],n,m;
void citire()
{int i,j;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"a["<<i<<"]["<<j<<"]";
cin>>a[i][j];
}
}
void afisare()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
}
void afis_deasupra_diagonala_principala()
{
for(int i=1;i<=n-1;i++)
{ for(int j=i+1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
}
void contor()
{int c=0;
for(int i=1;i<=n-1;i++)
{ if(i%2==0)
for(int j=i+1;j<=n;j++)
if(a[i][j]<24)c++;
}
cout<<"c="<<c<<endl;
}
void main()
{
citire();
cout<<"matricea este\n";
afisare();
cout<<"elementele de deasupra diagonalei principale\n";
afis_deasupra_diagonala_principala();
contor();
}
1
3
40
2
3
4
#include<iostream.h>
int x[30][30],n,m;
void citire()
{int i,j;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"x["<<i<<"]["<<j<<"]";
cin>>x[i][j];
}
}
void afisare()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cout<<x[i][j]<<" ";
cout<<"\n";
}
}
void maxim_coloana_p()
{
int p;
cout<<"nr coloanei p="; cin>>p;
int max=-1;
for(int i=1;i<=n;i++)
if(x[i][p]%2==0)
if(x[i][p]>max) max=x[i][p];
if(max>-1)cout<<"max="<<max<<endl;
else cout<<"nu exista nr pare pe coloana p\n";
}
void main()
{
citire();
cout<<"matricea este\n";
afisare();
maxim_coloana_p();
}
3
2
0
5
3
3033
#include<iostream.h>
int x[30][30],n,m;
void citire()
{int i,j;
cout<<"m=";cin>>m;
cout<<"n=";cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{cout<<"x["<<i<<"]["<<j<<"]";
cin>>x[i][j];
}
}
void afisare()
{
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
cout<<x[i][j]<<" ";
cout<<"\n";
}
}
void minim_coloana_p()
{
int c;
cout<<"nr coloanei c="; cin>>c;
int min=x[1][c];
for(int i=1;i<=m;i++)
if(x[i][c]%2==0)
if(x[i][c]<min) min=x[i][c];
cout<<"min="<<min<<endl;
}
void main()
{
citire();
cout<<"matricea este\n";
afisare();
minim_coloana_p();
}
2
2
05
3
"
#
3
(
1*+050
#
#include<iostream.h>
int x[30][30],n,m;
void citire()
{int i,j;
cout<<"m=";cin>>m;
cout<<"n=";cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{cout<<"x["<<i<<"]["<<j<<"]";
cin>>x[i][j];
}
}
void afisare()
{
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
cout<<x[i][j]<<" ";
cout<<"\n";
}
}
void interschimbare_linii()
{
int l1,l2,aux;
cout<<"linia l1=";cin>>l1;
cout<<"linia l2=";cin>>l2;
for(int i=1;i<=n;i++)
{
aux=x[l1][i];
x[l1][i]=x[l2][i];
x[l2][i]=aux;}
}
void main()
{
citire();
cout<<"matricea este\n";
afisare();
interschimbare_linii();
afisare();
}
/
3
3
32
3
2.
+
;
#+
3
#include<iostream.h>
int x[30][30],n,m;
void citire()
{int i,j;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"x["<<i<<"]["<<j<<"]";
cin>>x[i][j];
}
}
void afisare()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cout<<x[i][j]<<" ";
cout<<"\n";
}
}
void suma()
{ int s=0;
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
s=s+x[i][j];
cout<<"suma elementelor din matrice="<<s<<endl;
}
void suma_diagonala_principala()
{
int s=0;
for(int i=1;i<=n;i++)
s=s+x[i][i];
cout<<"suma de pe diagonala principala="<<s<<endl;
}
void main()
{
citire();
cout<<"matricea este\n";
afisare();
suma();
suma_diagonala_principala();
}
3
33
5
32
2.
+
;
#+
#
3
#include<iostream.h>
int x[30][30],n,m;
void citire()
{int i,j;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"x["<<i<<"]["<<j<<"]";
cin>>x[i][j];
}
}
void afisare()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cout<<x[i][j]<<" ";
cout<<"\n";
}
}
void deasupra_dp()
{
int s=0;
for(int i=1;i<=n-1;i++)
{for(int j=i+1;j<=n;j++)
{cout<<x[i][j]<<" ";s=s+x[i][j];}
cout<<endl;
}
cout<<"suma elementelor de deasupra diagonalei principale="<<s<<endl;
}
void sub_ds()
{int s=0;
for(int i=2;i<=n;i++)
{for(int j=n-i+2;j<=n;j++ )
{cout<<x[i][j]<<" ";s=s+x[i][j];}
cout<<endl;
}
cout<<"suma elementelor de sub diagonala secundara="<<s<<endl;
}
void main()
{
citire();
cout<<"matricea este\n";
afisare();
cout<<"deasupra diagonalei principale\n";
deasupra_dp();
cout<<"sub diagonala secundara\n";
sub_ds();
}
3
2
5
32
3
2
*3
3
,-+
B
,
"C
#include<stdlib.h>
int x[30][30],n,m;
void citire()
{int i,j;
cout<<"m=";cin>>m;
cout<<"n=";cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{cout<<"x["<<i<<"]["<<j<<"]";
cin>>x[i][j];
}
}
void afisare()
{
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
cout<<x[i][j]<<" ";
cout<<"\n";
}
}
void minim_l()
{
int l,min;
cout<<"linia l=";cin>>l;
if(l<1||l>m){cout<<"eroare";exit(0);}
min=x[l][1];
for(int i=1;i<=n;i++)
if(x[l][i]<min)min=x[l][i];
cout<<"min="<<min;
}
void main()
{
citire();
cout<<"matricea este\n";
afisare();
minim_l();
}
D
=
#
34
3
2
3032
.
+3
32
c
;
#+3
2
3
#include<iostream.h>
#include<string.h>
#include<conio.h>
typedef struct
{char marca[20],culoare[20],med[20];
int nr;}masina ;
masina a[20];
int n,x,k;
void citire()
{int i;
cout<<"n=";cin>>n;
for (i=1;i<=n;i++)
{cout<<"a[i].marca: ";cin>>a[i].marca;
cout<<"a[i].culoare: ";cin>>a[i].culoare;
cout<<"a[i].numar: ";cin>>a[i].nr;
}
}
void nr_dacia()
{ int i;
int nr=0;
for (i=1;i<=n;i++)
{x=strcmp(a[i].marca,"dacia");
if (x==0) nr=nr+1;}
cout<<"numarul de masini Dacia este "<<nr<<"\n";
}
void sortare()
{ int i,j;masina aux;
for (i=1;i<=n-1;i++)
for (j=i+1;j<=n;j++)
{x=strcmp(a[i].culoare,a[j].culoare);
if(x>0)
{aux=a[i];
a[i]=a[j];
a[j]=aux;
}
}
for (i=1;i<=n;i++)
cout<<a[i].culoare<<" "<<a[i].marca<<" "<<a[i].nr<<endl;
}
void main()
{
citire();
nr_dacia();
sortare();
}
=
!
0
2
33
=
.
0
0=
%
=
=
2
2=
=
*
4E3
<>66
F
((5
+
2=
=3
#include<iostream.h>
#include<string.h>
#include<conio.h>
typedef struct
{int cod,c,p,pret;
char den[20];}produse;
produse a[20];
int n,i,c,p;
void citire()
{
cout<<"Dati numarul de produse ";cin>>n;
for (i=1;i<=n;i++)
{cout<<"codul produsului ";cin>>a[i].cod;
cout<<"pretul produsului ";cin>>a[i].pret;
cout<<"denumirea produsului ";cin>>a[i].den;}
}
void rezolvare()
{
for (i=1;i<=n;i++)
if(a[i].cod<500) a[i].pret=7;
else a[i].pret=11;
for (i=1;i<=n;i++)
cout<<"pretul "<<a[i].den<<" este "<<a[i].pret<<"\n";
cout<<endl;
for (i=1;i<=n;i++)
if(a[i].pret==11) cout<<a[i].den<<"\n";
}
void main()
{
citire();
rezolvare();
}
335
32
3
2.
+
3
;
#+
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class numar
{
int n;
public numar()
{
Console.WriteLine("dati numarul ");
this.n = int.Parse(Console.ReadLine());
}
public void medie()//media cifrelor pare
{
int u;
int nn=n;
int s = 0;
while (n != 0)
{
u = n % 10;
n = n / 10;
if (u%2==0) s=s+u;
}
Console.WriteLine("suma cifrelor pare=" + s);
n = nn;
}
public void produs()//produsul cifrelor impare
{
int u;
int nn = n;
int p = 1;
while (n != 0)
{
u = n % 10;
n = n / 10;
if (u % 2 == 1) p = p * u;
}
Console.WriteLine("produsul cifrelor impare=" + p);
n = nn;
}
static void Main(string[] args)
{
numar x = new numar();
x.medie();
x.produs();
Console.ReadKey();
}
}