Aula 27: Estruturas heterogêneas e alocação dinâmica

Tamanho: px
Começar a partir da página:

Download "Aula 27: Estruturas heterogêneas e alocação dinâmica"

Transcrição

1 Aula 27: Estruturas heterogêneas e alocação dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi BCC /2 Departamento de Computação UFOP

2 Aulas anteriores Memória Ponteiro Utilização de ponteiros Aritmética de ponteiros Alocação dinâmica Estruturas heterogêneas 2 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

3 Aula de hoje 1 Exercícios da última aula 2 Estruturas heterogêneas (breve revisão) 3 Alocação dinâmica de estruturas heterogêneas 4 Cópias de estruturas heterogêneas 5 Exercícios 6 Parâmetros da função main e próxima aula 2 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

4 Aula de hoje 1 Exercícios da última aula 2 Estruturas heterogêneas (breve revisão) 3 Alocação dinâmica de estruturas heterogêneas 4 Cópias de estruturas heterogêneas 5 Exercícios 6 Parâmetros da função main e próxima aula 2 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

5 Exercícios da última aula Exercício 1 Crie um programa que apresente, na tela de abertura, um menu com opções para: 1 inserir uma nova pessoa: nome, altura e ano de nascimento; 2 listar todos os nomes e respectivas alturas; 3 listar os nomes das pessoas que nasceram depois de um certo ano. Cada uma destas opções deve ser implementada em uma função separada. O programa deve ser capaz de armazenar dados de até 100 pessoas. 3 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

6 Exercícios da última aula Exercício 2 Crie uma estrutura (struct) para armazenar dados de um funcionário: 1 nome (até 50 caracteres), 2 função (até 50 caracteres), 3 idade, 4 salário. Em seguida, crie um programa que lê os dados de n funcionários. 4 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

7 Aula de hoje 1 Exercícios da última aula 2 Estruturas heterogêneas (breve revisão) 3 Alocação dinâmica de estruturas heterogêneas 4 Cópias de estruturas heterogêneas 5 Exercícios 6 Parâmetros da função main e próxima aula 4 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

8 Struct struct: palavra reservada que cria um novo tipo de dados. Tipos conhecidos: char, int, float, double e void. Estrutura: é um tipo de estrutura de dados heterogênea; agrupa itens de dados de diferentes tipos. Cada item de dado é denominado membro; struct define um tipo de dados (estrutura): informa ao compilador o nome, o tamanho em bytes e a maneira como ela deve ser armazenada e recuperada da memória. Ao ser definido, o tipo passa a existir e pode ser utilizado para criar variáveis. 5 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

9 Exemplo: armazenando dados de um aluno 1 #include <iostream> 2 using namespace std; 3 4 struct Aluno { 5 int nmat; // número de matrícula 6 float nota[3]; // três notas 7 float media; // média aritmética 8 }; // fim da definição da estrutura (com ;) 9 10 int main() 11 { 12 Aluno bart; // declara a variável do tipo Aluno 13 bart.nmat = ; 14 bart.nota[0] = 8.5; 15 bart.nota[1] = 9.5; 16 bart.nota[2] = 10.0; 17 bart.media = ( bart.nota[0]+ bart.nota[1] + bart.nota[2] ) / 3.0; 18 cout << "Matrícula: " << bart.nmat << endl; 19 cout << "Média : " << bart.media << endl; 20 return 0; 21 } 6 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

10 Inicializando estruturas A inicialização é semelhante a inicialização das matrizes. 1 struct Data { 2 int dia; 3 char mes[10]; 4 int ano; 5 }; 6 7 Data natal = { 25, "Dezembro", 2016 }; 8 Data niver = { 20, "Outubro", 1986 }; Obs.: as variáveis são inicializadas juntamente com suas declarações. Os valores atribuídos aos membros devem ser colocados na ordem em que foram definidos na estrutura, separados por vírgula e entre chaves. 7 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

11 Atribuição entre estruturas O uso de variáveis de estruturas é similar ao uso das variáveis que estamos acostumados a utilizar... Uma variável estrutura pode ser atribuída à outra variável do mesmo tipo por meio de uma atribuição simples. 1 Data natal = { 25, "Dezembro", 2016 }; 2 3 Data nataldesteano; 4 nataldesteano = natal; Importante: valores dos membros da estrutura são atribuídos de uma única vez; a atribuição entre vetores/matrizes deve ser feita elemento por elemento. 8 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

12 Exemplo de uso e operações em structs: 1 struct Venda { 2 int pecas; 3 float preco; 4 }; 5 6 int main() 7 { 8 Venda A = {20, 110.0}; 9 Venda B = {3, 258.0}; 10 Venda total; // soma membro a membro 13 total.pecas = A.pecas + B.pecas; 14 total.preco = A.preco + B.preco; 15 } Erro comum 1 // ERRO! 2 total = A + B; 9 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

13 Estruturas aninhadas 1 struct Data { 2 int dia; 3 char mes[10]; 4 int ano; 5 }; 6 7 struct Venda { 8 int pecas; 9 float preco; 10 Data diavenda; 11 }; int main() 14 { 15 // exemplo de declaração 16 Venda v = {20, 110.0, {7, "Novembro", 2015} }; // exemplo de uso: 19 cout << "Ano da venda: " << v.diavenda.ano << endl; return 0; 22 } 10 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

14 Estruturas em funções As estruturas podem ser passadas como argumentos de funções da mesma maneira que as variáveis simples. O nome de uma estrutura em C++ não é um endereço, portanto ela pode ser passada por valor. Exemplo: função que recebe duas estruturas como argumento e imprime os valores da soma de seus membros. 1 struct Venda { 2 int pecas; 3 float preco; 4 }; 5 6 // protótipo (com passagem por valor) 7 void imprimetotal(venda v1, Venda v2); 11 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

15 Estruturas em funções Exemplo utilizando passagem por valor: 1 struct Venda { 2 int pecas; 3 float preco; 4 }; 5 6 void imprimetotal(venda v1, Venda v2) 7 { 8 Venda total = {0, 0.0}; 9 total.pecas = v1.pecas + v2.pecas; 10 total.preco = v1.preco + v2.preco; 11 cout << "Nro peças: " << total.pecas << endl; 12 cout << "Preço total: " << total.preco << endl; 13 } int main() 16 { 17 Venda v1 = {1, 20}, v2 = {3, 10}; 18 imprimetotal(v1, v2); 19 return 0; 20 } 12 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

16 Estruturas em funções Alternativamente, podemos fazer passagem por referência: 1 struct Venda { 2 int pecas; 3 float preco; 4 }; 5 6 // protótipo (com passagem por referência) 7 void imprimetotal(venda &v1, Venda &v2); Ou, ainda, utilizar ponteiros: 1 struct Venda { 2 int pecas; 3 float preco; 4 }; 5 6 // protótipo (utilizando ponteiros) 7 void imprimetotal(venda *v1, Venda *v2); 13 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

17 Estruturas em funções Exemplo utilizando passagem por referência: 1 struct Venda { 2 int pecas; 3 float preco; 4 }; 5 6 void imprimetotal(venda &v1, Venda &v2) 7 { 8 Venda total = {0, 0.0}; 9 total.pecas = v1.pecas + v2.pecas; 10 total.preco = v1.preco + v2.preco; 11 cout << "Nro peças: " << total.pecas << endl; 12 cout << "Preço total: " << total.preco << endl; 13 } int main() 16 { 17 Venda v1 = {1, 20}, v2 = {3, 10}; 18 imprimetotal(v1, v2); 19 return 0; 20 } 14 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

18 Estruturas em funções Exemplo utilizando ponteiros: 1 struct Venda { 2 int pecas; 3 float preco; 4 }; 5 6 void imprimetotal(venda *v1, Venda *v2) 7 { 8 Venda total = {0, 0.0}; 9 total.pecas = (*v1).pecas + (*v2).pecas; 10 total.preco = (*v1).preco + (*v2).preco; 11 cout << "Nro peças: " << total.pecas << endl; 12 cout << "Preço total: " << total.preco << endl; 13 } int main() 16 { 17 Venda v1 = {1, 20}, v2 = {3, 10}; 18 imprimetotal(&v1, &v2); 19 return 0; 20 } 15 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

19 Estruturas em funções Exemplo utilizando ponteiros (alternativa): / 33 struct Venda { int pecas; float preco; }; void imprimetotal(venda *v1, Venda *v2) { Venda total = {0, 0.0}; total.pecas = v1->pecas + v2->pecas; v1->pecas ou (*v1).pecas total.preco = v1->preco + v2->preco; cout << "Nro peças: " << total.pecas << endl; cout << "Preço total: " << total.preco << endl; } int main() { Venda v1 = {1, 20}, v2 = {3, 10}; imprimetotal(&v1, &v2); return 0; } Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

20 Aula de hoje 1 Exercícios da última aula 2 Estruturas heterogêneas (breve revisão) 3 Alocação dinâmica de estruturas heterogêneas 4 Cópias de estruturas heterogêneas 5 Exercícios 6 Parâmetros da função main e próxima aula 16 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

21 Alocação dinâmica e structs É possível alocar uma estrutura dinamicamente. O processo é igual ao da criação de um int ou double usando alocação dinâmica. De forma análoga, o usuário deve liberar a memória alocada. 1 int main() 2 { 3 Aluno *a = new Aluno; 4 strcpy(a->nome, "Tulio"); 5 strcpy(a->sobrenome, "Toffolo"); 6 a->idade = 21; 7 8 cout << a->nome << " " << a->sobrenome << endl; 9 cout << "Idade = " << a->idade << endl; delete a; 12 return 0; 13 } 17 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

22 Alocação dinâmica e structs Exemplo completo (incluindo a estrutura Aluno): 1 struct Aluno 2 { 3 char nome[50]; 4 char sobrenome[50]; 5 int idade; 6 }; 7 8 int main() 9 { 10 Aluno *a = new Aluno; 11 strcpy(a->nome, "Tulio"); 12 strcpy(a->sobrenome, "Toffolo"); 13 a->idade = 21; cout << a->nome << " " << a->sobrenome << endl; 16 cout << "Idade = " << a->idade << endl; delete a; 19 return 0; 20 } 18 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

23 Vetores de struct A criação/utilização de vetores de estruturas tanto estáticas quanto dinâmicas também é simples, sem nenhuma diferença relevante: 1 int main () 2 { 3 Aluno alunos[500]; 4 int n; 5 cin >> n; // nro de alunos digitado pelo usuário 6 7 for (int i = 0; i < n; i++) { 8 cin >> alunos[i].nome >> alunos[i].sobrenome; 9 cin >> alunos[i].idade; 10 } return 0; 13 } 19 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

24 Vetores de struct A criação/utilização de vetores de estruturas tanto estáticas quanto dinâmicas também é bastante simples: 1 int main () 2 { 3 int n; 4 cin >> n; // nro de alunos digitado pelo usuário 5 Aluno *alunos = new Aluno[n]; 6 7 for (int i = 0; i < n; i++) { 8 cin >> alunos[i].nome >> alunos[i].sobrenome; 9 cin >> alunos[i].idade; 10 } delete[] alunos; 13 return 0; 14 } 20 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

25 Vetores de struct Mas... o que o código a seguir imprimirá? 1 int main () 2 { 3 int n; 4 cin >> n; // nro de alunos digitado pelo usuário 5 6 Aluno alunosest[500]; 7 Aluno *alunosdin = new Aluno[n]; 8 9 cout << "Array estático usa " << sizeof(alunosest) 10 << " bytes!" << endl << endl; cout << "Array dinâmico usa " << sizeof(alunosdin) 13 << " bytes???" << endl; 14 cout << "Não... Usa " << sizeof(aluno) * n + sizeof(alunosdin) 15 << " bytes!" << endl << endl; return 0; 18 } 21 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

26 Vetores de struct O código anterior imprimirá (se o usuário digitar 20): 1 Array estático usa bytes! 2 3 Array dinâmico usa 8 bytes??? 4 Não... Usa 2088 bytes! O array estático usa 500 sizeof(aluno) bytes O dinâmico usa n sizeof(aluno) bytes + um ponteiro (8 bytes) 22 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

27 Aula de hoje 1 Exercícios da última aula 2 Estruturas heterogêneas (breve revisão) 3 Alocação dinâmica de estruturas heterogêneas 4 Cópias de estruturas heterogêneas 5 Exercícios 6 Parâmetros da função main e próxima aula 22 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

28 O que o código a seguir imprimirá? 1 #include <iostream> 2 using namespace std; 3 4 struct Aluno 5 { 6 char nome[50]; 7 char sobrenome[50]; 8 int idade; 9 }; int main() 12 { 13 Aluno a = { "Puca", "Penna", 20 }; Aluno b = a; 16 strcpy(b.nome, "Tulio"); 17 strcpy(b.sobrenome, "Toffolo"); cout << a.nome << " " << a.sobrenome << " - " << a.idade << endl; 20 cout << b.nome << " " << b.sobrenome << " - " << b.idade << endl; 21 return 0; 22 } 23 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

29 Cópia de estruturas O código imprimirá: 1 Puca Penna Tulio Toffolo - 20 Uma cópia dos dados da estrutura é criada ao fazer Aluno b = a; Note que a estrutura Aluno ocupa 104 bytes Ao fazer a cópia, os 104 bytes são copiados Note que isto só ocorre porque a string foi alocada estaticamente. 24 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

30 E o código a seguir, o que imprimirá? 1 #include <iostream> 2 using namespace std; 3 4 struct Aluno 5 { 6 char nome[50]; 7 char ultnome[50]; 8 int idade; 9 }; int main() 12 { 13 Aluno a = { "Puca", "Penna", 20 }; Aluno *b = &a; 16 strcpy(b->nome, "Tulio"); 17 strcpy(b->ultnome, "Toffolo"); cout << a.nome << " " << a.ultnome << " - " << a.idade << endl; 20 cout << b->nome << " " << b->ultnome << " - " << b->idade << endl; 21 return 0; 22 } 25 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

31 Cópia de estruturas O código imprimirá: 1 Tulio Toffolo Tulio Toffolo - 20 Este resultado é esperado, já que b agora é um ponteiro. Ao alocar um ponteiro, ocupamos apenas o espaço necessário para armazenar um endereço de memória. (4 ou 8 bytes, dependendo de a arquitetura ser de 32 ou 64 bits). 26 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

32 E o código a seguir, o que imprimirá? 1 #include <iostream> 2 using namespace std; 3 4 struct Aluno 5 { 6 char *nome; 7 int idade; 8 }; 9 10 int main() 11 { 12 Aluno a = { new char[50], 20 }; 13 strcpy(a.nome, "Puca"); Aluno b = a; 16 strcpy(b.nome, "Tulio"); 17 b.idade = 25; cout << a.nome << " - " << a.idade << endl; 20 cout << b.nome << " - " << b.idade << endl; delete[] a.nome; 23 return 0; 24 } 27 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

33 Cópia de estruturas O código imprimirá: 1 Tulio Tulio - 25 Ao copiar b em a, copiamos o endereço de memória apontado pelo ponteiro a.nome em b.nome; eles apontam para a mesma memória! Copiamos o valor da variável a.idade Importante: note o delete no exemplo anterior Toda memória alocada dinamicamente (usando new) deve ser desalocada pelo programador (usando delete). 28 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

34 Aula de hoje 1 Exercícios da última aula 2 Estruturas heterogêneas (breve revisão) 3 Alocação dinâmica de estruturas heterogêneas 4 Cópias de estruturas heterogêneas 5 Exercícios 6 Parâmetros da função main e próxima aula 28 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

35 Exercício 1 Crie uma estrutura que representa um ponto (x, y). Em seguida, crie: 1 uma função que recebe dois pontos e retorna a distância entre eles; 2 uma função que recebe dois pontos e retorna o ponto equidistante aos dois mais próximo. Exercício 2 Crie uma estrutura para representar um número complexo a + ib (lembre-se que i = 1). Implemente: 1 uma função que retorna a soma dois números complexos; 2 uma função que retorna o produto de dois números complexo. Exemplo: (2 + 5i) (1 2i) = 2 4i + 5i 10i 2 (lembrando que i 2 = 1) = 2 4i + 5i 10 ( 1) = 2 4i + 5i + 10 = 12 + i 29 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

36 Aula de hoje 1 Exercícios da última aula 2 Estruturas heterogêneas (breve revisão) 3 Alocação dinâmica de estruturas heterogêneas 4 Cópias de estruturas heterogêneas 5 Exercícios 6 Parâmetros da função main e próxima aula 29 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

37 Parâmetros da função main Até aqui, utilizamos a função main sem parâmetros: 1 int main() 2 { return 0; 6 } Mas a função main também pode receber parâmetros: int argc: número de argumentos char *argv[]: valor dos argumentos (ou char **argv) 30 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

38 Parâmetros da função main 1 #include <iostream> 2 using namespace std; 3 4 int main(int argc, char *argv[]) 5 { 6 for (int i = 0; i < argc; i++) 7 cout << "argumento " << i << " = " << argv[i] << endl; 8 9 return 0; 10 } O que o código acima irá imprimir? 31 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

39 Parâmetros da função main O fato é que argv é um vetor de vetores de caracteres! (ou um array de arrays de caracteres) Mas um vetor de caracteres pode ser visto como uma string... Portanto, argv é na prática um vetor de strings :) 32 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

40 Próxima aula Último item da ementa da disciplina: Arquivos Importante Resolvam as listas de exercícios no site! 33 / 33 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 27: Estruturas heterogêneas e alocação dinâmica

41 / 12 Perguntas?

Aula 26: Estruturas heterogêneas

Aula 26: Estruturas heterogêneas Aula 26: Estruturas heterogêneas Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória Ponteiro Utilização

Leia mais

Aula 25: Alocação Dinâmica

Aula 25: Alocação Dinâmica Aula 25: Alocação Dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aulas anteriores Estruturas de memórias heterogêneas

Leia mais

Aula 25: Alocação Dinâmica

Aula 25: Alocação Dinâmica Aula 25: Alocação Dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória Ponteiro Utilização de ponteiros

Leia mais

Aula 24: Ponteiros e Alocação Dinâmica

Aula 24: Ponteiros e Alocação Dinâmica Aula 24: Ponteiros e Alocação Dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula anterior Memória Ponteiro Utilização

Leia mais

Aula 28: Arquivos de texto

Aula 28: Arquivos de texto Aula 28: Arquivos de texto Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Baseado nos slides de Guillermo Cámara-Chávez Aulas anteriores Memória Ponteiro Utilização

Leia mais

Aula 23: Ponteiros Introdução a Programação Túlio Toffolo & Puca Huachi

Aula 23: Ponteiros Introdução a Programação Túlio Toffolo & Puca Huachi Aula 23: Ponteiros Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Baseado nos slides do Prof. Guillermo Cámara-Chávez Aulas anteriores Vetores Matrizes Cadeias

Leia mais

ANHANGUERA ESTRUTURA DE DADOS AULA 04 MATRIZES, LISTAS E ALOCAÇÃO DINÂMICA. Prof. Thomás da Costa

ANHANGUERA ESTRUTURA DE DADOS AULA 04 MATRIZES, LISTAS E ALOCAÇÃO DINÂMICA. Prof. Thomás da Costa ANHANGUERA 2015.2 ESTRUTURA DE DADOS AULA 04 Prof. Thomás da Costa thomascosta@aedu.com O que é: Matrizes São vetores que possuem duas ou mais dimensões para armazenar valores. Uma matriz de duas dimensões,

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação Linguagem C++: arrays - aula I Bruno Emerson Gurgel Gomes 1 1 Instituto Federal de Educação, Ciência e Tecnologia do RN (IFRN) 2012 Bruno Gomes (IFRN) Fundamentos de Programação

Leia mais

Aula 30: Revisão para Prova 03

Aula 30: Revisão para Prova 03 Aula 30: Revisão para Prova 03 Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC202 2019/1 Departamento de Computação UFOP Avaliação 3 Provas (60% da nota): Prova 01: 15%

Leia mais

Aula 20: Matrizes (Parte 2)

Aula 20: Matrizes (Parte 2) Aula 20: Matrizes (Parte 2) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Vetores Matrizes 2 / 15 Túlio Toffolo

Leia mais

Aula 17: Funções (Parte III) e Introdução a Vetores

Aula 17: Funções (Parte III) e Introdução a Vetores Aula 17: Funções (Parte III) e Introdução a Vetores Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula de Hoje 1 Exemplos

Leia mais

Aula 29: Arquivos binários

Aula 29: Arquivos binários Aula 29: Arquivos binários Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória Ponteiro Utilização de ponteiros

Leia mais

Estrutura de dados 1. Ponteiros

Estrutura de dados 1. Ponteiros Estrutura de dados 1 Ponteiros Ponteiros Um ponteiro é um endereço de memória O valor de um ponteiro indica onde uma variável está armazenada Um ponteiro proporciona um modo de acesso a uma variável sem

Leia mais

Aula 08: Funções (Parte II)

Aula 08: Funções (Parte II) Aula 08: Funções (Parte II) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Introdução a Funções Aula prática

Leia mais

Aula 11: Laços e exercícios

Aula 11: Laços e exercícios Aula 11: Laços e exercícios Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula Anterior Manipulação de laços Exercício 2 /

Leia mais

Aula 26: Arquivos de texto

Aula 26: Arquivos de texto Aula 26: Arquivos de texto Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aulas anteriores Estruturas heterogêneas Alocação

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 02: Alocação Dinâmica de Memória Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes

Leia mais

Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II. Ponteiros

Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II. Ponteiros Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II Ponteiros Profa.: Simone Ceolin Slides (Prof.Tiago Rios da Rocha) Primeiro Semestre 2011 Sumário

Leia mais

Estruturas (registros)

Estruturas (registros) BCC 201 - Introdução à Programação I Estruturas (registros) Guillermo Cámara-Chávez UFOP 1/44 Estruturas (struct) I Imaginemos que queremos ler as notas de 4 provas para um aluno e calcular a média do

Leia mais

Aula 10: Manipulação do fluxo de laços

Aula 10: Manipulação do fluxo de laços Aula 10: Manipulação do fluxo de laços Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula Anterior Laços aninhados Exemplos

Leia mais

Aula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi

Aula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi Aula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula de Hoje 1 Exercícios da aula prática 2 Vetores 3 Exemplos

Leia mais

Aula 05: Condicionais (Parte 2)

Aula 05: Condicionais (Parte 2) Aula 05: Condicionais (Parte 2) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula Anterior Breve Revisão Comandos de Decisão

Leia mais

Puca Huachi Vaz Penna

Puca Huachi Vaz Penna Aula 3 C++: variáveis e expressões aritméticas 2017/1 BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66, 32 e 33 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro

Leia mais

Programação Orientada a Objetos. Giselle Lopes Ferrari Ronque

Programação Orientada a Objetos. Giselle Lopes Ferrari Ronque Programação Orientada a Objetos Giselle Lopes Ferrari Ronque ferrari@eletrica.ufpr.br Avaliações Provas 27/03/2015 15/05/2015 Trabalhos 12 e 19/06/2015 Segunda chamada: 26/06/2015 Exame: 10/07/2015 Regras

Leia mais

LISTA DE EXERCÍCIOS 2

LISTA DE EXERCÍCIOS 2 UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO DE CIÊNCIA DA COMPUTAÇÃO PROGRAMAÇÃO DE COMPUTADORES 1. TIPOS COMPOSTOS DE DADOS LISTA DE EXERCÍCIOS 2 1. Considerando as declarações abaixo, responda dizendo

Leia mais

Programação científica C++

Programação científica C++ Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 8 Matrizes como argumento de funções O nome de uma matriz (sem os colchetes) representa o endereço onde a matriz está armazenada. Ao passar o

Leia mais

BCC Introdu c ao ` a Programa c ao I Ponteiros Guillermo C amara-ch avez UFOP 1/54

BCC Introdu c ao ` a Programa c ao I Ponteiros Guillermo C amara-ch avez UFOP 1/54 BCC 201 - Introdução à Programação I Ponteiros Guillermo Cámara-Chávez UFOP 1/54 Ponteiros... I i n t main ( ) { i n t x ; x = 10 cout

Leia mais

Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I

Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I Prof. Bruno E. G. Gomes Uma variável em um algoritmo pode ser vista como uma gaveta. A declaração de uma variável reserva uma gaveta (posição) de um certo

Leia mais

Aula 15: Introdução a Funções

Aula 15: Introdução a Funções Aula 15: Introdução a Funções Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula Anterior Laços aninhados Exemplos diversos

Leia mais

C++ Orientado a Objetos

C++ Orientado a Objetos flavio@facom.ufu.br flaviosilva@computer.org a@comp org 1 Declaração As variáveis em C++ podem ser de duas diferentes naturezas Uma variável pode conter um VALOR ou um ENDEREÇO VALOR A declaração de uma

Leia mais

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Alocação Dinâmica de Memória Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço

Leia mais

Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira Anilton Joaquim da Silva

Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira Anilton Joaquim da Silva Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira ronaldo.co@ufu.br Anilton Joaquim da Silva anilton@ufu.br Matrizes Uma matriz é uma variável capaz de armazenar vários dados de

Leia mais

NOTAS DE AULA 09 Estruturas e Ponteiros

NOTAS DE AULA 09 Estruturas e Ponteiros Estrutura de Dados 1 NOTAS DE AULA 09 Estruturas e Ponteiros 1. Estruturas de Dados A linguagem C/C++ fornece uma porção de tipos de variáveis: int, float, long, double, boolean, char... dentre outros.

Leia mais

Introdução a Programação. Tipos Estruturados de Dados

Introdução a Programação. Tipos Estruturados de Dados Introdução a Programação Tipos Estruturados de Dados Tópicos da Aula Hoje aprenderemos a trabalhar com tipos de dados mais complexos Tipos Primitivos x Tipos Estruturados Conceito de Tipos Estruturados

Leia mais

ESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS

ESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS ESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS Prof. Dr. Daniel Caetano 2014-2 Objetivos Compreender a organização dos dados na memória Compreender o que são ponteiros Capacitar para implementar programas com

Leia mais

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída BCC 201 - Introdução à Programação Variáveis, Comandos de Atribuição e Comando de Entrada e Saída Guillermo Cámara-Chávez UFOP 1/1 Estrutura Básica de um programa C I < d i r e t i v a s do pré p r o c

Leia mais

# Estrutura de Dados # Aula - Revisão de C/C++ na Prática. Prof. Leinylson Fontinele Pereira

# Estrutura de Dados # Aula - Revisão de C/C++ na Prática. Prof. Leinylson Fontinele Pereira # Estrutura de Dados # Aula - Revisão de C/C++ na Prática Prof. Leinylson Fontinele Pereira Na aula anterior... Ponteiros Funções Introdução 3 O que vamos aprender? Preparação do ambiente de testes Conceitos

Leia mais

Estruturas. struct são coleções de dados heterogêneos agrupados em uma mesma estrutura de dados. Ex: armazenar as coordenadas (x,y) de um ponto:

Estruturas. struct são coleções de dados heterogêneos agrupados em uma mesma estrutura de dados. Ex: armazenar as coordenadas (x,y) de um ponto: Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Estruturas Profa Rosana Braga 1 Estruturas struct são coleções de dados heterogêneos agrupados em uma mesma estrutura

Leia mais

Ponteiros de Variáveis

Ponteiros de Variáveis Ponteiros de Variáveis C++ permite o armazenamento e a manipulação de valores de endereços de memória. Para cada tipo existente, há um tipo ponteirocapaz de armazenar endereços de memória em que existem

Leia mais

Alocação Dinâmica de Memória. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Alocação Dinâmica de Memória. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Alocação Dinâmica de Memória David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

Ponteiros e Tabelas. K&R: Capítulo 5

Ponteiros e Tabelas. K&R: Capítulo 5 Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros

Leia mais

ALOCAÇÃO DINÂMICA DE MEMÓRIA

ALOCAÇÃO DINÂMICA DE MEMÓRIA INE5408 Estruturas de Dados Semestre 2008/1 Prof. Leandro J. Komosinski ALOCAÇÃO DINÂMICA DE Memória de Computador 1 byte = 8 bits (ex.: 00100110) 1 KB = 1024 bytes 1 MB = 1024 KB 1 GB = 1024 MB Meu computador

Leia mais

Alocação Dinâmica. Túlio Toffolo BCC202 Aula 02 Algoritmos e Estruturas de Dados I

Alocação Dinâmica. Túlio Toffolo  BCC202 Aula 02 Algoritmos e Estruturas de Dados I Alocação Dinâmica Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 02 Algoritmos e Estruturas de Dados I Esquema de Memória baixa Código do Programa Variáveis Globais e Estáticas Memória

Leia mais

Alocação Dinâmica de Memória

Alocação Dinâmica de Memória Alocação Dinâmica de Memória Elerson R. S. Santos elerson@dcc.ufmg.br Algoritmos e Estruturas de DCC UFMG Variáveis Uma variável representa um nome simbólico para uma posição de memória. Cada posição de

Leia mais

Puca Huachi Vaz Penna / José Américo T. Messias

Puca Huachi Vaz Penna / José Américo T. Messias BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66 Puca Huachi Vaz Penna / José Américo T. Messias Departamento de Computação Universidade Federal de Ouro Preto http://www.decom.ufop.br/puca

Leia mais

Aula 03: Introdução a C

Aula 03: Introdução a C Aula 03: Introdução a C Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior O que é um computador Organização de um

Leia mais

CMP Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira

CMP Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira CMP1048 - Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira 1. Considere um programa em C++ que tenha duas variáveis declaradas

Leia mais

Ponteiros. Embora o programador não tenha acesso ao endereço de uma variável, existem algumas situações onde é necessário a utilização deste endereço.

Ponteiros. Embora o programador não tenha acesso ao endereço de uma variável, existem algumas situações onde é necessário a utilização deste endereço. Logo Aula 06 Ponteiros 2 Ponteiros Embora o programador não tenha acesso ao endereço de uma variável, existem algumas situações onde é necessário a utilização deste endereço. Um exemplo clássico disto

Leia mais

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída BCC 201 - Introdução à Programação Variáveis, Comandos de Atribuição e Comando de Entrada e Saída Guillermo Cámara-Chávez UFOP 1/63 Estrutura Básica de um programa C I < d i r e t i v a s do pre p r o

Leia mais

Aula 4: Introdução à Linguagem C++

Aula 4: Introdução à Linguagem C++ CI208 - Programação de Computadores Aula 4: Introdução à Linguagem C++ Prof. MSc. Diego Roberto Antunes diegor@inf.ufpr.br www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor de Ciências Exatas

Leia mais

Estruturas de Dados. Profa. Juliana Pinheiro Campos

Estruturas de Dados. Profa. Juliana Pinheiro Campos Estruturas de Dados Profa. Juliana Pinheiro Campos Vetores Forma mais simples de estruturar um conjunto de dados. Exemplo: int p[10]; // vetor de inteiros com 10 elementos Reserva de um espaço de memória

Leia mais

C++ - Matrizes. Observ.: C++ não avisa quando o limite de uma matriz foi excedido. Providenciar a verificação é responsabilidade do programador.

C++ - Matrizes. Observ.: C++ não avisa quando o limite de uma matriz foi excedido. Providenciar a verificação é responsabilidade do programador. C++ - Matrizes É um conjunto de variáveis, do mesmo tipo, referenciadas por um único nome, onde cada variável é diferenciada por meio de um número entre colchetes chamado índice. Declaração : tipo nome

Leia mais

Aula 10 Comandos de Repetição

Aula 10 Comandos de Repetição Aula 10 Comandos de Repetição Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira ronaldo.co@ufu.br Anilton Joaquim da Silva anilton@ufu.br 1 Introdução Em certas situações é necessária

Leia mais

Computação Eletrônica. Aula 08 Estruturas de Dados. Prof: Luciano Barbosa. CIn.ufpe.br

Computação Eletrônica. Aula 08 Estruturas de Dados. Prof: Luciano Barbosa. CIn.ufpe.br Computação Eletrônica Aula 08 Estruturas de Dados Prof: Luciano Barbosa Tipos de Dados Primitivos vs Estruturados Tipos primitivos: reais (float, double), inteiros (int), caractere (char); Tipos estruturados:

Leia mais

Programação I Ponteiros e alocação dinâmica de memória. Prof. Carlos Alberto

Programação I Ponteiros e alocação dinâmica de memória. Prof. Carlos Alberto Programação I Ponteiros e alocação dinâmica de memória Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Ponteiros O ponteiro é um tipo de dado como int, char ou float; Variáveis

Leia mais

Aula 9 Agregado Heterogêneo Ponteiro. prof Leticia Winkler

Aula 9 Agregado Heterogêneo Ponteiro. prof Leticia Winkler Aula 9 Agregado Heterogêneo Ponteiro prof Leticia Winkler 1 Prof. Leticia Winkler 2 Agregado Heterogêneo Também conhecido como registro; É uma coleção de campos que podem ser referenciados pelo mesmo nome.

Leia mais

Programação científica C++

Programação científica C++ Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 2 Expressões Combinação de dados e operadores que resulta em um valor. expressão x = 2 * y + 4; variável operador constante Memória do computador

Leia mais

Tipos Estruturados. Tipos Estruturados

Tipos Estruturados. Tipos Estruturados Tipos Estruturados Até aqui trabalhamos apenas com tipos básicos (disponibilizados pela linguagem), mas para desenvolver programas mais complexos é necessário trabalhar de uma maneira mais abstrata para

Leia mais

Programação Estruturada Prof. Rodrigo Hausen Organização e Gerenciamento de Memória

Programação Estruturada Prof. Rodrigo Hausen  Organização e Gerenciamento de Memória Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Organização e Gerenciamento de Memória 1 AULA PASSADA - vetores ou arrays Declaração de um vetor (array) em C: tipo nome[tamanho];

Leia mais

Módulo 1. Introdução. AEDS I C++ (Rone Ilídio)

Módulo 1. Introdução. AEDS I C++ (Rone Ilídio) Módulo 1 Introdução AEDS I C++ (Rone Ilídio) Introdução Linguagens de Programação Fonte Compilador Executável SO I Hardware C++ - Características Evolução do C, ou seja, possui a mesma sintaxe É uma linguagem

Leia mais

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída BCC 201 - Introdução à Programação Variáveis, Comandos de Atribuição e Comando de Entrada e Saída Guillermo Cámara-Chávez UFOP 1/54 Estrutura Básica de um programa C I < d i r e t i v a s do pre p r o

Leia mais

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Estruturas em C

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Estruturas em C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Estruturas em C 1 Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010 ROTEIRO DA AULA

Leia mais

Aula 17: Ponteiros e Alocação Dinâmica em C

Aula 17: Ponteiros e Alocação Dinâmica em C Aula 17: Ponteiros e Alocação Dinâmica em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores

Leia mais

BCC Introdu c ao ` a Programa c ao I Ponteiros Guillermo C amara-ch avez UFOP 1/61

BCC Introdu c ao ` a Programa c ao I Ponteiros Guillermo C amara-ch avez UFOP 1/61 BCC 201 - Introdução à Programação I Ponteiros Guillermo Cámara-Chávez UFOP 1/61 Ponteiros... I i n t main ( ) { i n t x ; x = 10 p r i n t f ( " Conteudo de x: %d \n", x ) ; p r i n t f ( " Endereco de

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA OUTRAS ESTRUTURAS DE REPETIÇÃO Prof. Dr. Daniel Caetano 2013-1 Objetivos Conhecer outras estruturas de repetição da linguagem C/C++ Compreender o uso de cada uma delas

Leia mais

prim = A ; prim = &A[0];

prim = A ; prim = &A[0]; 57 12 - MAIS SOBRE APONTADOR 12.1 - Ponteiros e arrays Em C, ponteiros e matrizes são tratados de maneira semelhante. 12.1.1 - Nome O nome é um ponteiro, ou seja, aponta (contém o endereço) para o primeiro

Leia mais

Aula 2 Listas Lineares Sequenciais. prof Leticia Winkler

Aula 2 Listas Lineares Sequenciais. prof Leticia Winkler Aula 2 Listas Lineares Sequenciais prof Leticia Winkler 1 Conteúdo Revisão de Vetor Definição Declaração Acesso dos Elementos Inicialização dos Elementos Exemplo Vetor e Função Lista Linear Operações com

Leia mais

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses 1 3 Estrutura de dados 2 Ponteiro Ponteiro 2 O ponteiro é um tipo de dado como int, char ou float. A diferença do ponteiro ponteiro guardará um endereço de memória. Por meio deste endereço pode-se acessar

Leia mais

Programação: Vetores

Programação: Vetores Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia

Leia mais

Métodos Computacionais. Tipos Estruturados

Métodos Computacionais. Tipos Estruturados Métodos Computacionais Tipos Estruturados Tipos Estruturados C oferece tipos primitivos que servem para representar valores simples Reais (float, double), inteiros (int), caracter (char) C oferece também

Leia mais

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica. Computação L2 Linguagem C++ ovsj@cin.ufpe.br Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);

Leia mais

Alocação Dinâmica de Memória. Programação II

Alocação Dinâmica de Memória. Programação II Alocação Dinâmica de Memória Programação II Alocação dinâmica Uso da memória Uso de variáveis globais (e estáticas): Espaço reservado para uma variável global existe enquanto o programa estiver sendo executado.

Leia mais

Aula 1 Conceitos Básicos

Aula 1 Conceitos Básicos Aula 1 Conceitos Básicos Elerson R. S. Santos elerson@dcc.ufmg.br Livro Projeto de Algoritmos Capítulo 1 @ DCC/UFMG O que é um algoritmo? O que é um programa? O que é um TAD? Algoritmos e Estrutura de

Leia mais

Alocação Dinâmica em C

Alocação Dinâmica em C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Alocação Dinâmica em C Profa Rosana Braga Adaptado de material preparado pela profa Silvana Maria Affonso de Lara

Leia mais

GEQ Prof. Paulo R. Coelho. Lista para prova

GEQ Prof. Paulo R. Coelho. Lista para prova GEQ007 2013 Prof. Paulo R. Coelho Lista para prova 7. Defina uma estrutura empregado para armazenar nome, data de nascimento, idade e salário de um empregado de uma empresa. Leia informações sobre 10 empregados

Leia mais

Caracteres, Vetores e Matrizes

Caracteres, Vetores e Matrizes Caracteres, Vetores e Matrizes STRINGS VETORES DE CARACTERES Para realizar processamento de texto e trabalhar com letras do alfabeto e outros caracteres como, por exemplo, símbolos de pontuação, a linguagem

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença

Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença C++ Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença Primeiro Programa //Primeiro Programa C++ #include int main() { std::cout

Leia mais

Algoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta

Algoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta Algoritmos e Estruturas de Dados Prof. Marcelo Zorzan Profa. Melissa Zanatta Assuntos da Aula Alocação de Memória Alocação estática de memória Alocação dinâmica de memória Malloc, Calloc, Free, Realloc

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.6. Ponteiros 3.6.1. Introdução 3.6.2. Uso

Leia mais

CCO 016 Fundamentos de Programação

CCO 016 Fundamentos de Programação CCO 016 Fundamentos de Programação Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá Aula 05 Entrada de dados Leia scanf ou cin Entrada de Dados Entrada de dados compreende a operação

Leia mais

Módulo 7 Cadeias de Caracteres

Módulo 7 Cadeias de Caracteres Estruturas de Dados Módulo 7 Cadeias de Caracteres 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora

Leia mais

MC-102 Aula 19 Ponteiros II

MC-102 Aula 19 Ponteiros II MC-102 Aula 19 Ponteiros II Instituto de Computação Unicamp 20 de Outubro de 2016 Roteiro 1 Ponteiros e Alocação Dinâmica 2 Exemplo de Alocação Dinâmica de Vetores 3 Erros Comuns ao Usar Alocação Dinâmica

Leia mais

Programação Estruturada Prof. Rodrigo Hausen Agregados de Dados Heterogêneos (structs)

Programação Estruturada Prof. Rodrigo Hausen   Agregados de Dados Heterogêneos (structs) Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Agregados de Dados Heterogêneos (structs) 1 AGREGADO HOMOGÊNEO Um agregado homogêneo de dados é um conjunto de dados que são necessariamente

Leia mais

C++ Orientado a Objetos Ponteiros

C++ Orientado a Objetos Ponteiros C++ Orientado a Objetos flavio@facom.ufu.br flaviosilva@computer.org a@comp org 198 Declaração As variáveis em C++ podem ser de duas diferentes naturezas Uma variável pode conter um VALOR ou um ENDEREÇO

Leia mais

Alocação Dinâmica de Memória

Alocação Dinâmica de Memória Alocação Dinâmica de Memória Luiz Chaimowicz, Raquel O. Prates, Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados II DCC UFMG Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática

Leia mais

Técnicas de Programação:

Técnicas de Programação: Técnicas de Programação: Programação Orientada a Objeto PROF. PROTÁSIO DEE-UFPB Classes e Objetos Classe É uma estrutura de dados que pode conter: Objeto Dados, e Funções. É uma instância de uma classe.

Leia mais

a) Implemente uma função que retorne uma aproximação do valor de π, de acordo com a F órmula de Leibniz: ( 1)

a) Implemente uma função que retorne uma aproximação do valor de π, de acordo com a F órmula de Leibniz: ( 1) INF 620 P - 7/04/04 Questão a) Implemente uma função que retorne uma aproximação do valor de π, de acordo com a F órmula de Leibniz: Ou seja: π 4 * + 3 π 5 7 + 9 i ( ) 4 * n i= 0 2 * i + + K Esta função

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 07 Vetor de Ponteiros Edirlei Soares de Lima Vetor de Cadeia de Caracteres Vetores de cadeias de caracteres. Exemplo: char alunos[50][81]; Função para

Leia mais

//conteúdo do arquivo pacote.h

//conteúdo do arquivo pacote.h //conteúdo do arquivo pacote.h #ifndef PACOTE_H #define PACOTE_H #include #include class Pacote friend istream &operator>> (istream &, Pacote &); friend ostream &operator

Leia mais

Puca Huachi Vaz Penna / José Américo T. Messias

Puca Huachi Vaz Penna / José Américo T. Messias BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66 Puca Huachi Vaz Penna / José Américo T. Messias Departamento de Computação Universidade Federal de Ouro Preto http://www.decom.ufop.br/puca

Leia mais

Computação eletrônica:

Computação eletrônica: Computação eletrônica: Gurvan Huiban ghuiban@cin.ufpe.br Plano de aula 1 Vetores unidimensionais 2 Vetores multidimensionais 3 Vetores e funções 4 Cadeia de caracteres Vetores unidimensionais 1 Vetores

Leia mais

Introdução à Disciplina de. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Introdução à Disciplina de. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Introdução à Disciplina de Estruturas de Dados Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Fev/2019 Software = Lógica + Dados Software Niklaus Wirth (1989). Lógica

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: ponteiros e alocação dinâmica Prof. Renato Pimentel 1 Ponteiros 2 Prof. Renato Pimentel 1 Ponteiros: introdução Toda a informação

Leia mais

Introdução a Programação. Ponteiros para Estruturas, Outros Tipos de Estruturas

Introdução a Programação. Ponteiros para Estruturas, Outros Tipos de Estruturas Introdução a Programação Ponteiros para Estruturas, Outros Tipos de Estruturas Tópicos da Aula Hoje aprenderemos a trabalhar com ponteiros para estruturas Ponteiros para estruturas Alocação dinâmica de

Leia mais

DAS5102 Fundamentos da Estrutura da Informação

DAS5102 Fundamentos da Estrutura da Informação Ponteiros e Funções Funções ou sub-rotinas são parcelas de código que podem ser invocadas a partir do programa principal ou até mesmo por outras sub-rotinas. Elas têm como objetivo a execução de uma tarefa

Leia mais

ITENS FUNDAMENTAIS Programando em C++

ITENS FUNDAMENTAIS Programando em C++ INFORMÁTICA E COMPUTAÇÃO - CMP 1060 AULA 3 ITENS FUNDAMENTAIS Programando em C++ 1. Constantes São valores que são mantidos fixos pelo compilador. Tipo de Dado Exemplos de Constantes char b \n \0 int 2

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA OUTRAS ESTRUTURAS DE REPETIÇÃO Prof. Dr. Daniel Caetano 2018-1 Objetivos Conhecer outras estruturas de repetição da linguagem C/C++ Compreender o uso de cada uma delas

Leia mais