Rezolvare simulare BAC 2019 Informatica (MI) – Subiectul al III-lea problema 2
Mai jos puteti gasi rezolvarea problemei 2 de la subiectul al III-lea din simularea pentru examenul de bacalaureat (mate-info) din anul 2019.
Rezolvare:
Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂
Multumiri !!!
cine vrea o varianta fara strtok
#include
#include
using namespace std;
void m(char *npro){
char *cuvinte[4] = { “LICEUL”, “NATIONAL”, “TEORETIC”,”COLEGIUL” };
for (int b=0;b<strlen(*cuvinte);b++){
if (strstr(cuvinte[b], npro)) {cout<<cuvinte[b]<<" ";break;}
}
}
int main()
{
char prop[100], npro[100];
int c=0,i,o;
cin.getline(prop,100);
for(i=0;i<strlen(prop);i++){
if (prop[i]!=' '){
if (prop[i]!='.')
npro[c]=prop[i]; else { m(npro);
c=-1; npro[0]=0 ;o=i;
}
c++;
}
}
cout<<strcpy(prop, prop+o+2);
}
#include
#include
using namespace std;
int main()
{
char cc[]=”COLEGIUL”, cl[]=”LICEUL”, cn[]=”NATIONAL”, ct[]=”TEORETIC”, s[51],a[101]={‘\0’};
int i,n,k,j,l;
cin.get(s,51);
n=strlen(s);
k=0;
for(i=0;i<n;i++)
{
if(s[i]==' '|| i==n-1)
{
if(s[i-1]=='.')
{if(s[k]==cc[0]) strcat(a,cc);
else if(s[k]==cl[0]) strcat(a,cl);
else if(s[k]==cn[0]) strcat(a,cn);
else if(s[k]==ct[0]) strcat(a,ct);
strcat(a," ");}
else
{
l=strlen(a);
for(j=k;j<=i;j++)
{a[l]=s[j]; l++;}
}
k=i+1;
}
}
cout<<a;
return 0;
}
#include
#include
using namespace std;
int main()
{
int i,ok;
char sir[51],sirNou[51];
cin.get(sir,51);
char prescurtare[5][3]={“CO”,”LI”,”NA”,”TE”};
char neprescurtat[5][9]={“COLEGIUL”,”LICEUL”,”NATIONAL”,”TEORETIC”};
char *cuvant=strtok(sir,” “);
while(cuvant)
{
ok=0;
i=0;
while(ok==0 && i<4) // testez daca cuvantul spart de functie incepe cu CO,LI,NA,TE
{
if(strstr(cuvant,prescurtare[i])-cuvant==0)
ok=1;
else
i++;
}
if(ok==1) // daca gasesc strstr prescurtat adaug cuvantul neprescurtat in noul sir
strcat(sirNou,neprescurtat[i]);
else strcat(sirNou,cuvant); // linia asta nu este executata niciodata
strcat(sirNou," ");
cuvant=strtok(NULL," ");
}
cout<<sirNou;
}