Buscar

339661-Estruturas_de_dados_homogêneas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Estruturas de dados 
homogêneas 
 
Prof. Daniel Aguiar 
daniel.aguiar@ifrn.edu.br 
 
O problema 
u  Como você resolveria o seguinte problema: 
u  Ler 6 números inteiros 
u  Calcular a média desses seis números 
u  Imprimir os números maiores que a média? 
O problema 
u  Como você resolveria o seguinte problema: 
u  Ler 6 números inteiros 
u  Calcular a média desses seis números 
u  Imprimir os números maiores que a média? 
u  Solução simples: 
u  Declarar 6 variáveis do tipo int, ler seu valores, somar seus valores 
e dividir por 6 ... 
O problema 
u  Como você resolveria o seguinte problema: 
u  Ler 6 números inteiros 
u  Calcular a média desses seis números 
u  Imprimir os números maiores que a média? 
u  Solução simples: 
u  Declarar 6 variáveis do tipo int, ler seu valores, somar seus valores 
e dividir por 6 ... 
u  Mas se ao invés de 6 fossem 1000 números? 
O problema 
u  Como você resolveria o seguinte problema: 
u  Ler 6 números inteiros 
u  Calcular a média desses seis números 
u  Imprimir os números maiores que a média? 
u  Solução simples: 
u  Declarar 6 variáveis do tipo int, ler seu valores, somar seus valores 
e dividir por 6 ... 
u  Mas se ao invés de 6 fossem 1000 números? 
u  Solução é utilizar uma estrutura de dados homogêneas. 
Estruturas de dados 
homogêneas 
u  Também chamadas de variáveis compostas; 
u  Representam um conjunto de variáveis identificadas por um 
mesmo nome; 
u  São posições da memória identificadas por um único nome; 
u  Podem ser classificadas em dois tipo: unidimensionais e 
multidimensional; 
u  Unidimensionais: vetores; 
u  Multidimensionais: matrizes; 
u  Não trabalharemos com matrizes. 
Estruturas de dados 
homogêneas 
u  Unidimensionais: vetores; u  Multidimensionais: matrizes; 
Vetores 
u  Declaração: tipo identificador [tamanho]; 
u  Corresponderá a posições da memória identificadas por um 
mesmo nome, individualizadas por índices e de um mesmo 
tipo; 
float nota[5]; 
0 1 2 3 4 Índices 
Vetores (Exemplo) 
u  Considere que vamos armazenar 5 notas: 
u  Armazenamos um valor no vetor indicando: 
u  identificador [índice] 
u  O último índice sempre é o número de posições do vetor menos 1 
u  Então, se queremos armazenar o valor 6.5 na primeira nota, 
faremos: 
float nota[5]; 
nota[0] = 6.5; 
Vetores (Exemplo) 
u  E assim sucessivamente... 
nota[0] = 6.5; 
nota[1] = 6.4; 
nota[2] = 7.5; 
nota[4] = 5.5; 
nota[3] = 9.5; 
0 1 2 3 4 
6.5 6.4 7.5 9.5 5.5 
Vetores 
u  No nosso exemplo, precisávamos somente de 5 notas, mas se 
fossem 50 notas? 
u  Digitar 50 linhas de códigos, uma para cada nota, não é uma 
maneira inteligente de utilizar um vetor. 
u  Vetores são, na maioria das vezes, utilizados juntamente com 
estruturas de repetição; 
float nota[5]; 
 
for (int i = 0; i < 5; i++) { 
 scanf(“%f”, &nota[i]); 
} 
for (int i = 0; i < 5; i++) { 
 printf(“%f”, nota[i]); 
} 
Cadeias de caracteres 
u  Diferentemente do Portugol, em C não temos um tipo para 
representar uma cadeia de caracteres; 
u  São chamadas de strings; 
u  Em C, as strings são representadas por um vetor de 
caracteres; 
char nome[10]; 
Cadeias de caracteres 
u  Em C, As strings sempre terminam com ‘\0’; 
u  Então, sempre o nosso vetor deve ter pelo menos uma posição a 
mais do o necessário; 
u  Por exemplo, para armazenar a string “Daniel” precisaremos de 
um vetor de 7 espaços; 
u  O compilador C não acusará erro por isto, mas pode ser que em 
algum momento ocorra um erro de execução em seu programa; 
u  Por exemplo, pegar um lixo de memória; 
u  Dica: na dúvida, declare um vetor com tamanho maior. 
Lendo cadeias de caracteres 
u  Em C, vamos ler strings de duas maneiras: 
u  scanf e gets; 
char nome[10]; 
scanf (“%s”, nome); 
char nome[10]; 
gets (nome); 
Não utilizaremos o &. 
Lendo cadeias de caracteres 
u  Qual é a diferença entre scanf e gets? 
u  scanf não vai capturar corretamente strings que possuam espaço 
em branco; 
u  Por exemplo, se informarmos “Daniel Aguiar” ele só ira capturar 
“Daniel”. 
u  Ao contrario do scanf, o gets, captura corretamente a string. 
u  Porém existe um problema com o gets, ele também captura mais que 
o necessário; 
u  Por exemplo, se definirmos uma string com tamanho 6 e lermos uma 
string com tamanho maior, ele continuará lendo. 
u  Por isso, alguns compiladores do C, o colocam como função insegura; 
Imprimindo cadeias de 
caracteres 
u  Para imprimir as cadeias de caracteres utilizaremos as 
funções printf e puts; 
char nome[10]; 
scanf (“%s”, nome); 
puts (nome); 
Não utilizaremos o &. 
char nome[10]; 
scanf (“%s”, nome); 
printf (“%s”, nome); 
Função strlen 
u  Se declaramos vetor maior do que a string que vamos ler, 
como vamos saber qual é o tamanho real da string? 
u  Para isto, utilizaremos a função strlen; 
u  Ela informa o tamanho da string. 
char nome[10]; 
gets (nome); 
printf (“%d”, strlen(nome)); 
Dúvidas?

Outros materiais