Sunteți pe pagina 1din 4

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

2013

1. Realizai un program ce reuete s adune 2 numere de maxim 100000 de cifre (ce nu sunt neaprat
de aceeai lungime) cu ajutorul funciilor string. Exemplu :

txt.in txt.out
123456 1023455
899999

2. Un ir de caractere s se numete ablon pentru un alt ir de caractere x, dac este format


din caractere din mulimea {*,?,#}, are aceeai lungime cu x i pe fiecare poziie din s n
care apare * n x se gsete o vocal, pe fiecare poziie din s n care apare # n x se
gsete o consoan i pe fiecare poziie din s n care apare ? putem avea orice caracter
n x. Se consider vocal orice liter din mulimea {a,e,i,o,u}.
a.) Scriei programul C/C++ care citete de la tastatur dou iruri de caractere, de aceeai
lungime, formate din cel mult 200 de litere mici ale alfabetului englez, i afieaz pe ecran
un ablon comun celor dou iruri citite, care conine un numr minim de caractere ?.

Date de introdus Date rezultate


diamant #**#??#
pierdut

b.) Pe aceeai structur de program punei condiiile pentru care un cuvant nu respect algoritmul i
afiai-le:

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


rezultate pe aceiai 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