Professional Documents
Culture Documents
Moldova
Universitatea Tehnic a Moldovei
Facultatea de Radioelectronic i Telecomunicaii
Dare de seam
La disciplina: Programare
Lucrare de laborator nr.7
Tema: iruri de caractere
A elaborat
Studentul gr.SER-101
Cernogal Laurentiu
A verificat:
Pocotilenco V.
Chiinu2011
2.Condiia problemei:
1)Este dat un sir de caractere. De aflat de cite ori este intilnit in sir fiecare din caractere.
2)Este dat un sir normal. De inversta cuvintele de pe pozitii impare.
3.Schema logic a algoritmului(programul 1):
Mod Coala
.
Elaborat
Verificat
docum.
Semnat Data
Cernogal L.
Pocotilenco V.
Coala
2
iruri de caractere
Coli
7
Mod Coal
a
document
Semnat Data
Coal
a
4.Textul programului 1:
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
#include<string.h>
void main()
{ char sir[256];int i,j,t,k=0,d;
clrscr();
cout<<"Introduceti sirul de caractere:\n";
gets(sir);
for(i=0;i<strlen(sir);i++)
{d=0;
for(j=0;j<=i;j++)
if(sir[i]==sir[j])
d++;
if(d==1)
{k=0;
for(t=i;t<strlen(sir);t++)
if(sir[i]==sir[t])
k++;
printf("%c=%d, ",sir[i],k);
}}
getch();
Mod Coal
a
document
Semnat Data
Coal
a
Textul programului 2:
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>
void main()
{char sir[256],cuv[256][50],*p,separator[]=" ,.?!"; int i,n=0;
clrscr();
cout<<"Introduceti sirul de caractere:\n";
gets(sir);
cout<<"Sirul dupa modificare:\n";
strcpy(p,sir);
p=strtok(p,separator);
while(p)
{strcpy(cuv[n++],p);
p=strtok(NULL,separator);}
for(i=0;i<n;i++)
if(i%2==0)
strrev(cuv[i]);
for(i=0;i<n;i++)
printf("%s ",cuv[i]);
getch();
Mod Coal
a
document
Semnat Data
Coal
a
} strcpy(aux,cuv[l]);
strcpy(cuv[l],cuv[s]);
strcpy(cuv[s],aux);
clrscr();
cout<<"Sirul initial:\n"<<sir;
cout<<"\nSirul dupa schimbare\n";
for(i=1;i<=nr;i++)
printf("%s ",cuv[i]);
getch();
}
5.Descrierea programelor:
Primele 5 rnduri nu snt instruciuni ale limbajului C. Simbolul # indic c aceste snt
directive ale procesorului. Procesorul execut prealabil prelucrarea textului programului
nainte de compilare. Procesorul execut prelucrarea prealabil a textului programului
nainte de compilare. n cazul dat aceste directive ne dau de neles c n fiierul ce se
compileaz trebuie introdus informaia din fiierele sistemului Turbo C conio.h, stdio.h,
iostream.h, #include<ctype.h>, #include<string.h> si #include<stdlib.h>. Existena
acestor directive este condiionat de faptul c n textul programului snt folosite funciile
incorporate, informaia despre care se conine n fiierele indicate. Rndul void main()
definete titlul funciei principale cu numele main(). Pina la functia principala are loc
declararea si descrierea corpurilor functiilor secundare. Perechea de accolade {}
mrginete o secven de instruciuni care se precaut ca un tot ntreg. Urmtorul rnd
conine descrierea vareabilelor folosite n funcia principal main(). In urmatoarele rinduri se
prelucreaza siruri de caractere si se afiseaza rezultatele. Functia getch() opreste executarea
programului pina la apasarea tastei necesare din meniu. In primul program
operatorul ,,toupper efectueaza transformarea caracterului mic in mare, insa numai in
cadrul operatorului if. In al doilea program operatorii strlen, strcpy si strtok efectueaza
calcularea lungimii sirului de caractere, atribuirea sirului sursa la sirul destinatie si
Mod Coal
a
document
Semnat Data
Coal
a
respective impartirea sirului in subsiruri divizate de separator. Operatorii if, for si while se
utilizeaza la introducerea datelor, calcularea cit si afisarea lor.
6. Rezultatele:
1)
2)
7.Concluzii:
Elaborind aceasta lucrare de laborator m-am familiarizat cu metodele teoretice si practice de
programare a sirurilor de caractere. Am observat ca trebuie rezervate lungimea sirului+1
caractere char (+1 pentru caracterul nul). Un sir de caractere se memoreaza ca un masiv
unidimensional de caractere.
Mod Coal
a
document
Semnat Data
Coal
a