BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI...
Transcript of BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI...
![Page 1: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/1.jpg)
1/54
BCC 201 - Introducao a Programacao I
Ponteiros
Guillermo Camara-ChavezUFOP
![Page 2: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/2.jpg)
2/54
Ponteiros ... I
i n t main ( ){
i n t x ;x = 10cout << "Conteudo de x: " << x ;cout << "Endereco de x: " << &x ;r e t u r n 0 ;
}
![Page 3: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/3.jpg)
3/54
Ponteiros ... II
![Page 4: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/4.jpg)
4/54
Ponteiros ... III
![Page 5: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/5.jpg)
5/54
Ponteiros ... IV
![Page 6: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/6.jpg)
6/54
Ponteiros ... V
![Page 7: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/7.jpg)
7/54
Ponteiros ... VI
![Page 8: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/8.jpg)
8/54
Ponteiros ... VII
![Page 9: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/9.jpg)
9/54
Ponteiros ... VIII
![Page 10: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/10.jpg)
10/54
Ponteiros ... IX
![Page 11: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/11.jpg)
11/54
Ponteiros ... X
![Page 12: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/12.jpg)
12/54
Ponteiros ... XI
![Page 13: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/13.jpg)
13/54
Ponteiros ... XII
![Page 14: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/14.jpg)
14/54
Ponteiros ... XIII
![Page 15: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/15.jpg)
15/54
Ponteiros ... XIV
![Page 16: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/16.jpg)
16/54
Ponteiros ... XV
![Page 17: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/17.jpg)
17/54
Ponteiros ... XVI
![Page 18: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/18.jpg)
18/54
Ponteiros ... XVII
![Page 19: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/19.jpg)
19/54
Ponteiros ... XVIII
![Page 20: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/20.jpg)
20/54
Aritmetica de Ponteiros I
I Uma variavel do tipo ponteiro esta sempre associada a umtipo
I Um ponteiro para um dado tipo t endereca o numero de bytesque esse tipo t ocupa na memoria, i.e., endereca sizeof(t)bytes.
I Se um ponteiro para uma variavel do tipo t for incrementadaatraves do operador ++, automaticamente este ponteiropassara a ter o valor x + sizeof(t)
![Page 21: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/21.jpg)
21/54
Aritmetica de Ponteiros II
![Page 22: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/22.jpg)
22/54
Aritmetica de Ponteiros III
![Page 23: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/23.jpg)
23/54
Aritmetica de Ponteiros IV
![Page 24: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/24.jpg)
24/54
Aritmetica de Ponteiros V
![Page 25: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/25.jpg)
25/54
Aritmetica de Ponteiros VI
![Page 26: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/26.jpg)
26/54
Aritmetica de Ponteiros VII
![Page 27: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/27.jpg)
27/54
Aritmetica de Ponteiros VIII
![Page 28: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/28.jpg)
28/54
Aritmetica de Ponteiros IX
![Page 29: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/29.jpg)
29/54
Aritmetica de Ponteiros X
![Page 30: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/30.jpg)
30/54
Aritmetica de Ponteiros XI
![Page 31: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/31.jpg)
31/54
Relacao entre ponteiros e vetores I
I A aritmetica de ponteiros e particularmente importante paramanipulacao de vetores e strings.
I Quando declaramos um vetor seus elementos sao alocados emespacos de memoria vizinhos.
I O nome de um vetor equivale ao endereco do primeiroelemento dele (se um vetor possui nome v , entao, v equivalea v [0].
![Page 32: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/32.jpg)
32/54
Relacao entre ponteiros e vetores II
i n t main ( ){c h a r ∗ ptr , v [ 3 ] = {’a’ , ’b’ , ’c’ } ;p t r = v ;cout << "v[0] = " << ∗ p t r ;cout << "v[1] = " << ∗(++ p t r ) ;cout << "v[2] = " << ∗(++ p t r ) ;r e t u r n ;
}
![Page 33: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/33.jpg)
33/54
Vetores I
i n t main ( ){i n t i , ∗ ptr , v [ 3 ] ;p t r = &v [ 0 ] ; // ptr = v;// Usando indices para acessar vf o r ( i = 0 ; i < 3 ; i ++){
c i n >> v [ i ] ;}// Usando ponteirosf o r ( i = 0 ; i < 3 ; i ++, p t r ++){
cout >> ∗ p t r ;}r e t u r n 0 ;
}
![Page 34: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/34.jpg)
34/54
Alocacao Dinamica de Memoria I
i n t main ( ){i n t i , n ; d o u b l e ∗ nota = n u l l p t r ;cout << "Entre com o tamanho" ;c i n >> n ;// Aloca 8*n bytes de memorianota = new d o u b l e [ n ] ;f o r ( i = 0 ; i < n ; i ++){
cout << "Entre a nota: " << i +1 << e n d l ;c i n >> nota [ i ] ;
}f o r ( i = 0 ; i < n ; i ++)
cout << nota [ i ] << " " ;d e l e t e [ ] nota ;r e t u r n 0 ;
}
![Page 35: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/35.jpg)
35/54
Alocacao Dinamica de Memoria II
Comando Liberacao Memoria
AlocacaoEstaticadeMemoria
i n t v [ 3 ] ;
Reserva 3 espacos de 4bytes em v
O propio programa ao serencerrado, se encarregade liberar a memoria alo-cada.
AlocacaoDinamicadeMemoria
v = new i n t [ n ] ;
Reserva n espacos de 4bytes em v
Se nao for usar maisa variavel v , entao, enecessario empregar ocomando delete[].
![Page 36: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/36.jpg)
36/54
Relacao entre ponteiros, vetores e matrizes I
I Assim como e possıvel alocar memoria em tempo de execucaopara armazenar um vetor, tambem, e possıvel construir umamatriz M com m linhas e n colunas. Os comandos para taltarefa sao como dados a seguir:
i n t main ( ){
i n t ∗∗M,i n t m, n , i ;cout << "Entre com m e n" ;c i n >> m >> n ;// Vetor de enderecos (os elementos sao do tipo char*)M = new i n t ∗ [m] ;// Cria para cada endereco um vetor de elementos intf o r ( i = 0 ; i < m; i ++)
M[ i ] = new i n t [ n ]. . .r e t u r n 0 ;
}
![Page 37: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/37.jpg)
37/54
Relacao entre ponteiros, vetores e matrizes II
I Vejamos um exemplo:
M = new i n t ∗ [ 3 ] ;
![Page 38: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/38.jpg)
38/54
Relacao entre ponteiros, vetores e matrizes III
![Page 39: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/39.jpg)
39/54
Relacao entre ponteiros, vetores e matrizes IV
![Page 40: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/40.jpg)
40/54
Relacao entre ponteiros, vetores e matrizes V
![Page 41: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/41.jpg)
41/54
Relacao entre ponteiros, vetores e matrizes VI
![Page 42: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/42.jpg)
42/54
Liberacao de memoria I
![Page 43: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/43.jpg)
43/54
Liberacao de memoria II
![Page 44: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/44.jpg)
44/54
Liberacao de memoria III
![Page 45: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/45.jpg)
45/54
Liberacao de memoria IV
![Page 46: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/46.jpg)
46/54
Exercicios I
Inserir n notas de um total de m alunos
![Page 47: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/47.jpg)
47/54
Exercicios II
i n t main ( ){ i n t i , j , m, n ; f l o a t ∗∗M = n u l l p t r ;
cout << "Entre com m e n: " ;c i n >> m >> n ;// Aloca m espacos tipo float *.M = new f l o a t ∗ [m] ;// Aloca n espacos tipo float, cada M[i].f o r ( i = 0 ; i < m; i ++)
M[ i ] = new f l o a t [ n ] ;// Preenchendo a matriz M usando ındices: M[i][j].f o r ( i =0; i < m; i ++){ cout << "Aluno: " << i +1 << e n d l ;
f o r ( j =0; j < n ; j ++){ cout << " Nota " << j +1;
c i n >> M[ i ] [ j ] ;}
}. . .
}
![Page 48: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/48.jpg)
48/54
Exercicios III
. . .// Impressao dos elementos de M, empregando ponteiros.f o r ( i =0; i < m; i ++){ f o r ( j =0; j < n ; j ++)
cout << M[ i ] [ j ] <<" " ;cout << e n d l ;
}// Liberacao de memoria.// Liberando m vetores de tamanho n.i f (M != n u l l p t r ){
f o r ( i =0; i < m; i ++)i f (M[ i ] != n u l l p t r ) d e l e t e [ ] M[ i ] ;
// Liberando o vetor de ponteiros// de tamanho m.d e l e t e [ ] M;
}r e t u r n 0 ;
}
![Page 49: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/49.jpg)
49/54
Ponteiros: Passagem por valor e por referencia I
Criar uma estrutura empregrado com os seguintes campos:
I nome
I salario
I sexo
Inserir n empregados (criar um vetor dinamico)
![Page 50: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/50.jpg)
50/54
Ponteiros: Passagem por valor e por referencia IIt y p e d e f s t r u c t Pessoa{
s t r i n g nome ;d o u b l e s a l a r i o ;c h a r s e x o ;
}PE ;
v o i d I n s e r e (PE∗ , i n t ) ;v o i d P r i n t (PE∗ , i n t ) ;i n t main ( ){
i n t n ;PE ∗ t r a b = NULL ;cout << "Quantidade de pessoas" ;c i n >> n ;t r a b = new PE [ n ] ;I n s e r e ( t rab , n ) ;P r i n t ( t rab , n ) ;i f ( t r a b != n u l l p t r ) d e l e t e [ ] t r a b ;r e t u r n 0 ;
}
![Page 51: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/51.jpg)
51/54
Ponteiros: Passagem por valor e por referencia III
v o i d I n s e r e (PE∗ vet , i n t n ){i n t i , v a l o r e s ;f o r ( i = 0 ; i < n ; i ++) {
cout << "Cadastro numero " << i +1 << e n d l ;cout << "Insere nome: " ;g e t l i n e ( c i n , v e t [ i ] . nome ) ;do{
cout << "Insere salario: " ;c i n >> v e t [ i ] . s a l a r i o ;i f ( c i n . f a i l ( ) ){
cout << "Nao eh um numero \n" ;c i n . c l e a r ( ) ; c i n . i g n o r e ( 10 0 , ’\n’ ) ;
}e l s e b r e a k ;
}w h i l e ( t r u e ) ;cout << "Insere sexo: " ; c i n >> v e t [ i ] . s e x o ;c i n . i g n o r e ( n u m e r i c l i m i t s
<s t d : : s t r e a m s i z e > : : max ( ) , ’\n’ ) ;}
}
![Page 52: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/52.jpg)
52/54
Ponteiros: Passagem por valor e por referencia IV
v o i d P r i n t (PE∗ vet , i n t n ){
i n t i ;f o r ( i = 0 ; i < n ; i ++){
cout << v e t [ i ] . nome << v e t [ i ] . s a l a r i o<< v e t [ i ] . s e x o << e n d l ;
}}
![Page 53: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/53.jpg)
53/54
Exercicios em Propostos I
1. Defina uma funcao que retorne a transposta de uma matriz xde dimensao lin × col .
i n t ∗∗ T r a n s p o s t a ( i n t ∗∗ M, i n t l i n , i n t c o l )
2. Elaborar um programa para calcular a meda aritmetica de doisvalores reais utilizando apenas variaveis do tipo ponteiro.
![Page 54: BCC 201 - Introdução à Programação I Ponteiros+.pdf31/54 Rela˘c~ao entre ponteiros e vetoresI I A aritm etica de ponteiros e particularmente importante para manipula˘c~ao de](https://reader033.fdocuments.net/reader033/viewer/2022060314/5f0b820e7e708231d430dd26/html5/thumbnails/54.jpg)
54/54
FIM