Informatică, întrebare adresată de HelloWorld21, 8 ani în urmă

a) Subprogramul puncte are doi parametri:
 cuv, prin care primește o adresă cu ajutorul căreia memorează un șir de caractere
reprezentând un text care conține cel puțin unul și cel mult 20 de caractere;
 n, prin care primește un număr natural din intervalul [1, 20].
3
Subprogramul afișează pe ecran textul memorat începând cu adresa cuv urmat de n puncte.
Scrieţi la calculator definiţia completă a subprogramului.
Exemplu: dacă se memorează șirul de caractere curat cu ajutorul adresei cuv și n=7, pe ecran
se afișează
curat.......


b) Un text este format din cel puțin două cuvinte. Cuvintele din text sunt separate prin câte un spațiu.
Textul are cel puțin 5 și cel mult 110 caractere reprezentând litere mici ale alfabetului englez,
cratime și spații. Fiecare cuvânt din text are cel mult 20 de caractere.
Fișierul cuvinte.in conține pe prima linie un text de tipul precizat mai sus. Se cere scrierea și
executarea la calculator a unui program care citește textul din fișier apoi afișează pe ecran, pe
rânduri distincte, toate cuvintele din text urmate de un număr de puncte egal cu numărul de
caractere al fiecărui cuvânt. Cuvintele se afișează în ordinea în care apar în text. Pentru rezolvare
se folosesc apeluri utile ale subprogramului puncte. În același program se cere scrierea în fișierul
cuvinte.out a acelor cuvinte din text, separate prin câte un spațiu, care conțin cel puțin o dată
caracterul - (cratimă) și încep cu o consoană. Cuvintele se scriu în ordinea în care apar în text.
Dacă în text nu există astfel de cuvinte, se scrie în fișierul cuvinte.out mesajul nu exista.
Exemplu: dacă fișierul cuvinte.in conține textul
cine si-a pierdut o zi cat o viata s-o caute repede
atunci pe ecran se afișează
cine....
si-a....
pierdut.......
o.
zi..
cat...
o.
viata.....
s-o...
caute.....
repede......
iar fișierul cuvinte.out conține
si-a s-o

Răspunsuri la întrebare

Răspuns de lucaciucandrei
3

a)

void puncte(char *s,int n){

   cout<<s;

   for(int i=1;i<=n;i++)

       cout<<'.';

}

b)

int main(){

   char s[111]="",*p;

   ifstream fin("cuvinte.in");

   ofstream fout("cuvinte.out");

   fin.getline(s,111);

   p=strtok(s," ");

   while(p!=NULL)

       puncte(p,strlen(p)),

       cout<<endl,

       (strchr(p,'-')!=0)?fout<<p<<' ':fout<<"",

       p=strtok(NULL," ");

   return 0;

}

Alte întrebări interesante