Sunteți pe pagina 1din 4

Lucrare Semestriala la Informatica ->clasa a X-a intensiv->16.12.

2013

1. Realizați un program ce reușește să adune 2 numere de maxim 100000 de cifre (ce nu sunt neapărat
de aceeași lungime) cu ajutorul funcțiilor string. Exemplu :

txt.in txt.out
123456 1023455
899999

2. Un şir de caractere s se numeşte “şablon” pentru un alt şir de caractere x, dacă este format
din caractere din mulţimea {*,?,#}, are aceeaşi lungime cu x şi pe fiecare poziţie din s în
care apare * în x se găseşte o vocală, pe fiecare poziţie din s în care apare # în x se
găseşte o consoană şi pe fiecare poziţie din s în care apare ? putem avea orice caracter
în x. Se consideră vocală orice literă din mulţimea {a,e,i,o,u}.
a.) Scrieţi programul C/C++ care citeşte de la tastatură două şiruri de caractere, de aceeaşi
lungime, formate din cel mult 200 de litere mici ale alfabetului englez, şi afişează pe ecran
un şablon comun celor două şiruri citite, care conţine un număr minim de caractere ?.

Date de introdus Date rezultate


diamant #**#??#
pierdut

b.) Pe aceeași structură de program puneți condițiile pentru care un cuvant nu respectă algoritmul și
afișați-le:

Date de introdus Date A doua introducere Al doilea set de date rezultate


rezultate pe aceiași structură
diamant #**#??# carusel Nu apartine
pierdut
diamant #**#??# baababb Apartine
pierdut
diamant #**#??# baa2abb Nu apartine
pierdut
diamant Nu există - -
pirat șablon

SUCCES!!
Lucrare Semestriala la Informatica ->clasa a X-a intensiv->16.12.2013

Rezolvari:
Problema 1: (C/C++) ---------------------------------------------------------------------------------------4p
#include <iostream>
#include <fstream>
#include <cstring>
#include <cstdlib>
using namespace std;
int main()
{
char c1[256],c2[256],s[256];
int i,ok=1;
cin.getline(c1,256);
cin.getline(c2,256);
if(strlen(c1)!=strlen(c2))
cout<<"Nu exista sablon";
else
{
for(i=0; i<strlen(c1); i++)
{
if(strchr("aeiou",c1[i])&&strchr("aeiou",c2[i]))
s[i]='*';
else if(!strchr("aeiou",c1[i])&& !strchr("aeiou",c2[i]))
s[i]='#';
else
s[i]='?';
}
cout<<s<<"\n";
}
cin.getline(c1,256);
if(strlen(s)!=strlen(c1)) cout<<"Nu Apartine";
else
{
for(i=0; i<strlen(s); i++)
{
if(s[i]=='#'&& strchr("aeiou",c1[i]))
{
ok=0;
Lucrare Semestriala la Informatica ->clasa a X-a intensiv->16.12.2013

break;
}
if(s[i]=='*'&& !strchr("aeiou",c1[i]))
{
ok=0;
break;
}
if(s[i]=='?'&& !isalpha(c1[i]))
{
ok=0;
break;
}
}
if(ok==0) cout<<"Nu Apartine";
else cout<<"Apartine";
} return 0;
}

Problema 2: (C/C++)-----------------------------------------------------------------------------------------5p

#include <iostream>
#include <fstream>
#include <cstring>
#include <cstdlib>
using namespace std;
int main()
{
char c1[256],c2[256],s[256];
int i,ok=1;
cin.getline(c1,256);
cin.getline(c2,256);
if(strlen(c1)!=strlen(c2))
cout<<"Nu exista sablon";
else
{
for(i=0; i<strlen(c1); i++)
{
if(strchr("aeiou",c1[i])&&strchr("aeiou",c2[i]))
s[i]='*';
else if(!strchr("aeiou",c1[i])&& !strchr("aeiou",c2[i]))
s[i]='#';
Lucrare Semestriala la Informatica ->clasa a X-a intensiv->16.12.2013

else
s[i]='?';
}
cout<<s<<"\n";
}
cin.getline(c1,256);
if(strlen(s)!=strlen(c1)) cout<<"Nu Apartine";
else
{
for(i=0; i<strlen(s); i++)
{
if(s[i]=='#'&& strchr("aeiou",c1[i]))
{
ok=0;
break;
}
if(s[i]=='*'&& !strchr("aeiou",c1[i]))
{
ok=0;
break;
}
if(s[i]=='?'&& !isalpha(c1[i]))
{
ok=0;
break;
}
}
if(ok==0) cout<<"Nu Apartine";
else cout<<"Apartine";
} return 0;
}

Oficiu :1p
Timp de lucru: 110 min

Propunator de subiecte si bareme : Artene Dragos Andrei(Colegiul National Andrei Saguna Brasov)

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