Laborator11finalizat
-
Upload
rodicasept1967 -
Category
Documents
-
view
217 -
download
0
Transcript of Laborator11finalizat
7/21/2019 Laborator11finalizat
http://slidepdf.com/reader/full/laborator11finalizat 1/5
Laborator 11.Programare Proced Laborator 11.Programare Proced Laborator 11.Programare Proced Laborator 11.Programare Proced
Obiective:Obiective:Obiective:Obiective:
aplica aplica aplica aplica ț ii care folosescii care folosescii care folosescii care folosesc functii functii functii functii
1.Realiza ț i un program care
Rezolvare:
#include <stdio.h>
void main(){
int i, j;
int *pInt;
i = 5;
j = 2;
La compilarea programului,pe ecr
2.Executa ț i urmă torul progr
Rezolvare:#include <stdio.h>
void main(void)
{
int t[4]={0, 1, 2, 3};
int *p=&t[1];
printf("%d\n", *p++); /* afise
lui t[1] */
La compilarea programului,pe ecr
rală rală rală rală
pointeri,legatura dintre pointeri si tablouri,legat pointeri,legatura dintre pointeri si tablouri,legat pointeri,legatura dintre pointeri si tablouri,legat pointeri,legatura dintre pointeri si tablouri,legat
fișează două valori cu ajutorul pointerilor.
pInt = &i;
printf("\n*pInt are valoar
pInt = &j;
printf("\n*pInt are valoar
}
nul dumneavoastră se va afi șa :
Figura 11.1
m și observa ț i ce realizează .
za valoarea
printf("%d\n", *++p); /
lui t[3] *
printf("%d\n", ++*p); /
incremen
}
nul dumneavoastră se va afi șa :
PagePagePagePage 1111
Pointeri Pointeri Pointeri Pointeri
ura dintre pointeri siura dintre pointeri siura dintre pointeri siura dintre pointeri si
a %d\n",*pInt);
a %d\n",*pInt);
afiseaza valoarea
afiseaza valoarea
tata a lui t[3] */
7/21/2019 Laborator11finalizat
http://slidepdf.com/reader/full/laborator11finalizat 2/5
Laborator 11.Programare Proced Laborator 11.Programare Proced Laborator 11.Programare Proced Laborator 11.Programare Proced
3.Să se scrie un program
func ț ie.
Indica ț ii:1.Se declar ă parametrul func ie
corpul func ț iei.
2.Transmitem adresa unui argu
Rezolvare:
#include <stdio.h>void interschimba(int *,int*);
void main(){
int a=3,b=7;
printf("%d %d\n",a,b);
interschimba(&a,&b);
printf("%d %d\n",a,b);
}
La compilarea programului,pe ecr
4.Să se scrie un program c
accesul se face indexat, la al
Rezolvare:
#include <stdio.h>
#include <conio.h>
#define N 5int tab1[N],tab2[N];
void citire1()
{
int i;
puts("Introduceti elementele lui
for(i=0;i<N;i++)
{
putchar(':');scanf("%d",&tab1[i
}
}
void tiparire1(){
int i;
rală rală rală rală
Figura 11.2
are realizează interschimbarea a două v
i ca fiind un pointer după care folosim un poin
ent când func ț ia este apelat ă.
void interschimba(int *p,{
int tmp;
tmp=*p;
*p=*q;
*q=tmp;
}
nul dumneavoastră se va afi șa :
Figura 11.3
re citeș te și afișează elementele a două
doilea prin pointeri.
tab1:");
);
puts("Elementele lui tab1:
for (i=0;i<N;i++)
printf("%d",tab1[i]); putchar('\n');
}
void citire2()
{int *pi;
puts("Introduceti element
for (pi=tab2;pi<tab2+N;
{
putchar(':');scanf("%d",pi
}
}
void tiparire2(){int *pi;
puts("Elementele lui tab2:
PagePagePagePage 2 22 2
riabile folosind o
ter de indirectare în
nt *q)
ablouri, la primul
");
le lui tab2:");
i++)
);
");
7/21/2019 Laborator11finalizat
http://slidepdf.com/reader/full/laborator11finalizat 3/5
Laborator 11.Programare Proced Laborator 11.Programare Proced Laborator 11.Programare Proced Laborator 11.Programare Proced
for (pi=tab2;pi<tab2+N;pi++)
printf("%d",*pi);
putchar('\n');
}
void main()
{
La compilarea programului,pe ecr
5.Scrie ț i un program care
fiecare dintre caracterele un
Rezolvare:#include <stdio.h>
#include<ctype.h>
char *sir_majuscule(char *sir)
{
char *adresa_start;
adresa_start=sir;
while(*sir)
{
*sir= toupper(*sir);
sir++;
}
La compilarea programului, pe ec
6.Se consideră două mul ț imi
distincte.
rală rală rală rală
citire1();
tiparire1();
citire2();
tiparire2();
getch();
}
nul dumneavoastră se va afi șa :
Figura 11.4
reează o func ț ie numită “ șir_majuscule
i ir în majuscule și apoi returnează un poi
return(adresa_start);
}
void main(void)
{
char *titlu="Totul despre
char *sir;
sir=sir_majuscule(titlu);
printf("%s\n", sir);
printf("%s\n", sir_maj
pointeri"));
}
anul dumneavoastră se va afi șa :
Figura 11.5
de numere întregi reprezentate prin tablour
PagePagePagePage 3333
care converteș te nter la șir.
C/C++";
scule("Matrice si
i de valori
7/21/2019 Laborator11finalizat
http://slidepdf.com/reader/full/laborator11finalizat 4/5
Laborator 11.Programare Proced Laborator 11.Programare Proced Laborator 11.Programare Proced Laborator 11.Programare Proced
Să se scrie func ț iiîin C pentr
Citirea con ț inutulu
Afi area con ț inutu
Determinarea reun
Rezolvare: #include <stdio.h>
#include<conio.h>
#define nmax 10
int nx,ny,nreun,ninter;
int
x[nmax],y[nmax],reun[2*nmax]
int apar(int n,int*x,int v)
{int i;
int gasit=0;
i=0;
while(i<n &&!gasit)
if(x[i]==v)gasit=1;else i++;
return(gasit);
}
void citeste(int *n,int*x)
{
int i,v;
printf("nr.elemente=");scanf("%
i=0;
while(i<*n)
{
printf("el%d=",i);
scanf("%d",&v);
if(!apar(i,x,v))
{
x[i]=v;
i++;
}
}
La compilarea programului, pe ec
rală rală rală rală
:
i mul ț imilor
ui mul ț imilor.
iunii a două mul ț imi.
,inter[nmax];
d",n);
}
void afisare(int n,int*x)
{int i;
for(i=0;i<n;i++)
printf("%d",x[i]);
printf("\n");
}
void reuniune(int nx,int*x,
*y,int*nz,int*z)
{int i;
for (i=0;i<nx;i++)
z[i]=x[i];*nz=nx;
for(i=0;i<ny;i++)
if(!apar(*nz,z,y[i]))
{
z[*nz]=y[i];
(*nz)++;
}
}
void main()
{
clrscr();
citeste(&nx,x);
citeste(&ny,y);
reuniune(nx,x,ny,y,&nreu
afisare(nreun,reun);
getch();
}
anul dumneavoastră se va afi șa :
Figura 11.6
PagePagePagePage 4 44 4
int ny,int
,reun);
7/21/2019 Laborator11finalizat
http://slidepdf.com/reader/full/laborator11finalizat 5/5
Laborator 11.Programare Proced Laborator 11.Programare Proced Laborator 11.Programare Proced Laborator 11.Programare Proced
7.Facultativ:Ce afi ează urm
Rezolvare:
#include <stdio.h>
void inc_contor(int *contor_ptr)
{(*contor_ptr)++;
}
void main(void)
La compilarea programului,pe ecr
8.Facultativ:Ce afi ează urm
Rezolvare:#include <stdio.h>
void f1(int a)
{ printf("%d\n",a);
}
void main(void)
{
La compilarea programului,pe ecr
rală rală rală rală
ă torul program?
{
int contor = 0;
while (contor<10)inc_contor(&contor);
printf("contor: %d\n",co
}
nul dumneavoastră se va afi șa :
Figura 11.7
ă torul program?
void (*f1_ptr)(int);
f1_ptr=f1; /* pointerul f1
spre functia f1 */(*f1_ptr)(4); /* prin inter
se apeleaza fun
}
nul dumneavoastră se va afi șa :
Figura 11.8
PagePagePagePage 5 55 5
tor);
ptr va indica
ediul lui f1_ptr
ctia f1 */