Documente Academic
Documente Profesional
Documente Cultură
Lucare Semestriala Info Clasa A Xa Intensiv PDF
Lucare Semestriala Info Clasa A Xa Intensiv PDF
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 ?.
b.) Pe aceeași structură de program puneți condițiile pentru care un cuvant nu respectă algoritmul și
afișați-le:
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)