1) Se considera subprogramul nvoc care are un singur parametru, sirul s care are cel mult 100 caractere, litere mici ale alfabetului englez si care returneaza numarul de vocale (a,e,i,o,u,y) din sirul s.
a) Scrieti definitia completa a subprogramului nvoc.
b) Scrieti programul C++ care citeste de la tastatura doua cuvinte x si y de cel mult 20 de caractere, litere mici ale alfabetului englez, si verifica, folosind apeluri ale subprogramului nvoc, daca x si y au acelasi numar de consoane.Programul va afisa un mesaj corespunzator.
#include<iostream.h>
#include<string.h>
char x[20],y[20];
int nvoc(char s[100])
{
int ok=0;
int t=strlen(s);
for(int i=0;i<t;i++)
if(s[i]==’a’ || s[i]==’e’ || s[i]==’i’ || s[i]==’o’ || s[i]==’u’ || s[i]==’y’)
ok++;
return ok;
}
void main()
{
cin>>x;
cin>>y;
if(strlen(x)-nvoc(x) == strlen(y)-nvoc(y))
cout<<“cuvintele au acelasi numar de consoane “;
else
cout<<“cuvintele au un numar diferit de consoane “;
}
2) Se citesc de la tastatura numarul natural n (n<30000) si apoi n numere intregi avand maximum 4 cifre, cel putin una din aceste valori fiind pozitiva. Se cere sa se determine si sa se afiseze pe ecran cea mai mica valoare pozitiva dintre cele n numere citite si sa se precizeze de cate ori a aparut aceasta valoare in sirul celor n numere citite.Alegeti un algoritm de rezolvare care sa utilizeze eficient memoria.
#include<iostream.h>
int min,nr,n,i,x;
void main()
{
min=30000;
nr=1;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>x;
if(x==min)
nr++;
if(x<min && x>=0)
min=x;
}
cout<<min<<” “<<nr;
}
3) Fisierul bac.txt contine 100 de numere naturale de cel mult 6 cifre fiecare, cate un numar pe fiecare linie a fisierului.Scrieti un program care:
a)afiseaza pe ecran toate numerele di fisier, cate 5 pe fiecare linie, numerele de pe o linie fiind separate prin cate un spatiu
b)afiseaza pe ecran suma numerelor prime din fisier.
#include<fstream.h>
#include<math.h>
ifstream f(“bac.txt”);
int x,a[101],i,j,s;
int prim(int y)
{
if(y==1)
return 0;
else {
for(int k=2;k<=sqrt(y);k++)
if(y%k==0)
return 0;}
return 1;
}
void citire()
{
while(f>>x)
{
i++;
a[i]=x;
if(prim(a[i]))
s+=a[i];
}
}
void main()
{
citire();
for(j=1;j<=i;j++)
{
cout<<a[j]<<” “;
if(j%5==0)
cout<<endl;
}
cout<<endl;
cout<<s;
}