Sunteți pe pagina 1din 4

SB III

2. el prefera sa mearga la schi

-problema cere: prima consoana a primului cuvant: l

prima vocala de la al doilea cuvant: e => cuvantul rezultant va fi lei;

ultima litera a ultimului cuvant: i

1) Pentru a verifica fiecare cuvant in parte folosim functia strtok: aceasta va imparti fraza in
cuvinte ce pot fi verificate pe rand;
char *sir strtok=(s,” ”); // odata ce se vor intalni spatii, inseamna ca va aparea un nou
cuvant ce trebuie testat;
sir strtok=(NULL,” ”); // conditie de final, aceasta verifica daca am terminat de verificat un
cuvant; // daca am ajuns la spatiu s a terminat cuvantul; Pentru a gasi prima consoana a
primului cuvant, se va folosi functia strchr ce va cauta initial in in sirul s vectorul de vocale, iar
noi vom testa invers,astfel incat relatia sa dea 0; odata ce am gasit-o, vom folosi un break pt
a nu mai continua programul sa caute; // v[]=”aeiou”=vector de vocale;
2) Pentru a gasi prima vocala a primului cuvant =analog cu b), cu precizarea ca strchr va cauta
valoarea 1 pentru sirul s si vectorul de vocale,odata gasita break pentru a nu mai cauta in
continuare;
3) Pentru a gasi ultima litera a ultimului cuvant, vom afisa ultima pozitie,adica strlen(s)-1;
Se pune -1 deoarece sirurile de caractere incep de la 0, deci daca vom pune strlen(s) va afisa
NULL;
4) Fiecare solutie gasita va fi pusa intr-un nou vector de tip char pentru a fi afisata solutia;
5) Intrucat se cere si varianta de a afisa daca nu exista o astfel de solutie, atunci se va folosi o
variabila logica ok, iar de fiecare data cand vom gasi o vocala,consoala, respectiv ultima linie
aceasta va fi initializata cu 1; daca va fi 0, se va afisa mesajul „nu exista”;
6) Dupa ce ne folosim initial de strtok, ne vom intreba pentru ce cuvant vrem sa aflam prima
vocala, etc. Atunci , ne vom intreba spre ex: daca cuvant_curent==1 atunci caut prima
consoana, etc. Fiecare cuvant spart va fi numerotat, astfel putem atribui orice variabila.

#include <iostream>
#include <string.h>
using namespace std;

char s[101],v[]="aeiou";

char solutie[4];

int main()
{cin.get(s,101);
solutie[3]='\0';
int cuvant_curent=1;
char *cuvant=strtok(s," ");
while(cuvant!=NULL)
{
if(cuvant_curent==1)
{
int consoana=0;
for(int i=0; i<strlen(cuvant); i++)
{

if(strchr(v,cuvant[i])==0)
{

solutie[0]=cuvant[i];
consoana=1;
break;
}

}
if(consoana==0)
{
cout<<"NU EXISTA";
return 0;
}
}
if(cuvant_curent==2)
{
int vocala=0;
for(int i=0; i<strlen(cuvant); i++)
{
if(strchr(v,cuvant[i])!=0)
{
solutie[1]=cuvant[i];
vocala=1;
break;
}
}

if(vocala==0)
{
cout<<"NU EXISTA";
return 0;
}
}
solutie[2]=cuvant[strlen(cuvant)-1];

cuvant=strtok(NULL," ");
cuvant_curent++;
}
cout <<solutie;
return 0;
}
III.2.
#include <iostream>

using namespace std;


int uc,cn,d,ok,s;
int CifrePrime(int n)
{ cn=n;

while(cn)
{ uc=cn%10;
cn/=10;
if(uc<2)
ok=0;
else
{
for(int d=2;d*d<=uc;d++)
if(uc%d==0)
ok=0;
else
ok=1;
}
if(ok==1)
s+=uc;

}
return s;
}
int main()
{ int n;
cin>>n;
cout << CifrePrime(n) << endl;
return 0;
}

III.3.
#include <iostream>

using namespace std;


int a,b,nr;
int main()

{
while(cin>>x)
{ cin>>a>>b;
for(int i=a;i<=b;i++)
if(x==a)
nr++;
}
cout << nr << endl;
return 0;
}

III.3.
#include <iostream>

using namespace std;


int a,b,nr,x,i;
int main()

{ cin>>a>>b;

while(cin>>x)
{for( i=a;i<=b;i++)

if(x==i)
nr++;
}
cout << nr << endl;

return 0;
}

S-ar putea să vă placă și