Laborator11finalizat

6
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 folosesc ii care folosesc ii care folosesc ii 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 compi la re a pro gr am ul ui ,p e e cr  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 compi la re a pro gr am ul ui ,p e e cr 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] *  pri ntf ("%d\n", ++* p); / incremen  } nul dumneavoastră se va afi  șa : Page Page Page Page 1 1 1 Pointeri Pointeri Pointeri Pointeri ura dintre pointeri si ura dintre pointeri si ura dintre pointeri si ura dintre pointeri si a %d\n",*pInt); a %d\n",*pInt); afiseaza valoarea afiseaza valoarea tata a lui t[3] */

Transcript of Laborator11finalizat

Page 1: 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] */

Page 2: Laborator11finalizat

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++)

);

");

Page 3: Laborator11finalizat

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

Page 4: Laborator11finalizat

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);

Page 5: Laborator11finalizat

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 */