Rezolvare BAC Informatica 2009 – Varianta 2 – Subiectul al II-lea problema 5

Mai jos puteti gasi rezolvarea problemei 5 de la subiectul II din varianta 2 pentru examenul de bacalaureat din anul 2009

Rezolvare:

#include <iostream>
#include <string.h>
using namespace std;
int main() {
char s[40];
cin >> s;
char v[] = "aeiou";
for (int i = 0; i < strlen(s); i++)
if (strchr(v, s[i]) != 0) // e vocala mica
{
char aux[40];
strcpy(aux, s + i);
strcpy(s + i + 1, aux); // dubleaza vocala mica
s[i + 1] = s[i + 1] - 32; // transforma dublura in mare
}
cout << s << endl;
return 0;
}

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

4 Replies to “Rezolvare BAC Informatica 2009 – Varianta 2 – Subiectul al II-lea problema 5”

  1. Aceasta varianta ar fi acceptata ca solutie la BAC?
    https://onlinegdb.com/Sy2n8sOTf

    Reply

    1. Salut. Noi zicem ca ar fi o solutie buna, avand in vedere ca nu specifica explicit in enunt construirea sirului. Insa, cel mai bine, cred ca ar trebui sa intrebi profesorul / profesoara de la clasa ca sa fii 100% sigur. Zi faina.

      Reply

  2. la cuvantul bacalaureat, cand ajungem pe prima pozitie cu vocala a( ba),
    s+i va reprezenta litera a? si s+i+1 spatiul gol pe care noi il adaugam ca sa cream dublura vocalei? si de ce este asa

    Reply

    1. Salut. Era o mica greseala in rezolvare pentru ca nu alocam sirul in care copiam s + i. Ca sa-ti raspund la intrebare, s + i va reprezenta tot sirul dupa vocala a, inclusiv aceasta, in cazul de fata “acalaureat”. s + i + 1 este sirul “calaureat”. Deci, noi inlocuim “calaureat” prin “acalaureat”. Sirul nostru va deveni “baacalaureat”. In final facem din al doilea “a”, litera mare. Deci, daca ai un sir s, s + i este sirul incepand de pe pozitia i. Sper ca am explicat ok. Daca mai ai nelamuriri, nu ezita sa intrebi. Spor la lucru.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *