Documente Academic
Documente Profesional
Documente Cultură
Lucrarea de laborator 10
#include<iostream>
using namespace std;
int main(){
char s[2001];
int i, vocale;
vocale=0;
cout<<"Introduceti textul: "; cin.getline(s,2000);
i=0;
while(s[i]!='\0'){
switch(s[i]){
case 'A':
case 'a':
case 'E':
case 'e':
case 'I':
case 'i':
case 'O':
case 'o':
case 'U':
case 'u': vocale++;
}
i++;
}
cout<<"Numarul de vocale din text = "<<vocale<<endl;
return 0;
}
Pb2. Se dă un cuvânt, format din maxim 30 de litere mici. Să se codifice acest cuvânt in
limba păsărească, adica după fiecare vocală să se adauge grupul de litere format din
caracterul ‘p’ urmat de vocala respectivă. Să se afiseze cuvântul obţinut după codificare.
Se cere ca această codificare să se realizeze printr-o funcţie.
Exemplu:
Fie cuvântul = ‘informatica’, dupa codificare obţinem ‘ipinfopormapatipicapa’.
Se observă grupurile formate din caracterul ‘p’ şi vocala respectivă.
Rezolvarea problemei:
#include<iostream>
#include<cstring>
using namespace std;
int main(){
char s[31],t[91];
cout<<"Introduceti cuvantul: "; cin>>s;
codificare(s,t);
cout<<"\nCuvantul codificat: "<<t;
return 0;
}
#include<iostream>
using namespace std;
int citeste_sir(double[]);
void scrie_sir(int, double[]);
int main(){
int n,i,na,nb,nab;
double x[200], a,b;
n=citeste_sir(x);
cout<<”a=”; cin>>a;
cout<<”b=”; cin>>b;
na=0; nb=0; nab=0;
for(i=0;i<n;i++)
if(x[i]<a)na++;
else if(x[i]>b)nb++;
else nab++;
scrie_sir(n,x);
cout<<”\nNumarul de elemente ale sirului < ”<<a<<” este ”<<na;
cout<<”\nNumarul de elemente ale sirului > ”<<b<<” este ”<<nb;
cout<<”\nNumarul de elemente ale sirului din intervalul [”<<a<<”,”<<b<<”] este
”<<nab;
return 0;
}
int citeste_sir(double x[]){
int i,n;
cout<<”Numarul de elemente ale sirului: ”; cin>>n;
for(i=0;i<n;i++){
cout<<”x[”<<i+1<<”]=”; cin>>x[i];
}
return n;
}
void scrie_sir(int n, double x[]){
int i;
for(i=0; i<n; i++)cout<<x[i]<<” ”;
}
Pb4. Se considera o matrice AMm,n(Z) (1n,m30) având componente numere întregi.
Se cere să se calculeze suma componentelor de pe marginea (rama) matricei.
1 2 3 4
A 10 11 12 5
9 8 7 6
Exemplu: Pentru m = 3 si n = 4 și se va afișa suma 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10
= 47.
Se cere să se definească și să se utilizeze funcții pentru citirea și afișarea matricei.
#include<iostream>
using namespace std;
int main(){
int i,m,n,a[30][30],s;
citeste_matrice(m,n,a);
s=0;
for(i=0;i<m;i++)s=s+a[i][0]+a[i][n-1];
for(i=1;i<n-1;i++)s=s+a[0][i]+a[m-1][i];
scrie_matrice(m,n,a);
cout<<"\nSuma elementelor de pe marginea matricei este "<<s;
return 0;
}
void citeste_matrice(int& m, int& n, int a[][30]) {
int i,j;
cout<<"Dati numarul de linii ale matricei: "; cin>>m;
cout<<"Dati numarul de coloane ale matricei: "; cin>>n;
for(i=0;i<m;i++)
for(j=0;j<n;j++){
cout<<"a["<<i+1<<","<<j+1<<"]="; cin>>a[i][j];
}
}
void scrie_matrice(int m, int n, int a[][30]){
int i,j;
for(i=0;i<m;i++){
for(j=0;j<n;j++){cout.width(5);cout<<a[i][j];}
cout<<endl;
}
}
Pb5(tema). Se consideră o matrice AMm,n(Z) (1m,n30) având componente numere
întregi. Să se afișeze elementele matricei care au proprietatea că sunt egale cu cel mai
mare divizor comun al sumei de pe coloana și al produsului de pe linia pe care se află.
Să se calculeze cmmmc al numerelor afișate.
Se vor defini și folosi funcții pentru:
- citirea și afișarea matricei
- calculul cmmdc
- calculul sumei elementelor de pe o coloană a matricei
- calculul produsului elementelor de pe o linie a matricei
cmmmc(a,b)=a*b/cmmdc(a,b)