Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Edson J. R. Justino Prof. Claudio Carvilhe Parte 7 - Teo Pontifícia Universidade Católica do Paraná - PUCPR Estruturas de Dados Homogêneas � Definição de novos tipos � Nem sempre os tipos básicos (int, real, caractere e lógico) são suficientes para exprimir estrutura de dados em algoritmos � O tipo vetor ○ Representa uma coleção de um dos tipos básicos tipo_básicotipo_básico nome_vetor [limite];nome_vetor [limite]; Onde Onde tipo_básicotipo_básico são int, real, são int, real, caractere e lógicocaractere e lógico Estruturas de Dados Homogêneas � Exemplo 1: Qual será o valor de X impresso pelo algoritmo abaixo? InícioInício realreal x, v[5];x, v[5]; intint I;I; v[0] <v[0] <-- 1;1; v[1] <v[1] <-- 3;3; v[2] <v[2] <-- 0;0; v[3] <v[3] <-- 2;2; v[4] <v[4] <-- 4;4; x <x <-- v[0] + v[4];v[0] + v[4]; ImprimaImprima (x);(x); x <x <-- v[1] v[1] –– v[4];v[4]; ImprimaImprima (x);(x); x <x <-- v[3] * v[0] v[3] * v[0] -- x;x; ImprimaImprima (x);(x); I <I <-- 2; 2; x <x <-- v[I];v[I]; ImprimaImprima (x);(x); x <x <-- v[I]/v[v[0]];v[I]/v[v[0]]; ImprimaImprima (x);(x); FimFim Estruturas de Dados Homogêneas � Exemplo 2:Um professor tem uma turma com 80 alunos e deseja calcular e imprimir a nota de cada aluno seguido da média da turma InícioInício realreal média, soma = 0;média, soma = 0; realreal nota[80];nota[80]; intint i = 0;i = 0; EnquantoEnquanto i < 80 i < 80 faça:faça: leialeia(nota[i]);(nota[i]);leialeia(nota[i]);(nota[i]); soma <soma <-- soma + nota[i];soma + nota[i]; i <i <-- i + 1;i + 1; FimFim--enquantoenquanto média <média <-- soma/80;soma/80; i <i <-- 0;0; EnquantoEnquanto i < 80 i < 80 faça:faça: ImprimaImprima( nota[i], média);( nota[i], média); i <i <-- i + 1;i + 1; FimFim--enquantoenquanto FimFim ►► Exemplo 3: Escreva o exemplo anterior usando o comando PARAExemplo 3: Escreva o exemplo anterior usando o comando PARA Estruturas de Dados Homogêneas � Exemplo 4: Dado vetor CRR de caracteres abaixo ○ CRR � Qual será a sua configuração depois de executar os comandos: ! U O T R E C A InícioInícioInícioInício caracterecaractere crrcrr[8]={!,U,O,T,R,E,C,A};[8]={!,U,O,T,R,E,C,A}; intint i;i; caractere AUX;caractere AUX; ParaPara ii dede 1 1 até até 33 passo passo 11 auxaux <<-- crrcrr[i];[i]; crrcrr[i] <[i] <-- crrcrr[7 [7 –– i];i]; crrcrr[7 [7 –– i] <i] <-- auxaux;; FimFim--parapara auxaux <<-- crrcrr[0];[0]; crrcrr[0] <[0] <-- crrcrr[7];[7]; crrcrr[7] <[7] <-- auxaux;; FimFim Exercício Exemplo � Dados os vetores X[30], R[10] e S[20], escreva um algoritmo que gere o vetor X correspondente a união dos vetores R e S;R e S; Solução InícioInício caracterecaractere R[10], S[20], X[30];R[10], S[20], X[30]; intint i;i; Leia(Leia(R,SR,S); ); Leia(Leia(R,SR,S); ); ParaPara ii dede 0 0 até até 99 passo passo 11 X[i] <X[i] <-- R[i];R[i]; FimFim--parapara ParaPara ii dede 0 0 até até 1919 passo passo 11 X[10+i] <X[10+i] <-- S[i];S[i]; FimFim--parapara ImprimaImprima (X);(X); FimFim Exercícios Propostos � 2) Elabore um algoritmo para somar respectivamente os elementos de dois vetores A e B de 50 posições, gerando um terceiro vetor C. � 3) Elaborar um algoritmo para calcular a � 3) Elaborar um algoritmo para calcular a média aritmética dos valores de um vetor de inteiros de 20 posições. � 4) Elaborar um algoritmo que leia um vetor de inteiros de 90 posições e imprima uma lista com os valores na ordem inversa da leitura. Matrizes � Definição do Tipo Matriz � O tipo matriz ○ Representa uma coleção de um dos tipos básicos em duas dimensões tipo_básicotipo_básico nome_vetor [limite1][limite2];nome_vetor [limite1][limite2]; tipo_básicotipo_básico são int, real, caracteresão int, real, caractere Matrizes � Exemplo int matriz_modelo[3][4]; \\ 00 11 22 33\\ 00 11 22 33 00 11 22 matriz_modelo[1][2] Matrizes � Matrizes com três ou mais dimensões � Três dimensões int matriz_modelo[3][4][5]; � Quatro dimensões� Quatro dimensões charactere matriz_modelo[3][4][5][20]; � N dimensões real matriz_modelo[3][4]...[5]; Matrizes � Exemplo 1: O que será impresso no algoritmo abaixo? InícioInício intint m1[3][2];m1[3][2]; intint i, j;i, j; m1[0][0] <m1[0][0] <-- 1;1; m1[0][1] <m1[0][1] <-- 2;2;m1[0][1] <m1[0][1] <-- 2;2; m1[1][0] <m1[1][0] <-- 3; 3; m1[1][1] <m1[1][1] <-- 4;4; m1[2][0] <m1[2][0] <-- 5; 5; m1[2][1] <m1[2][1] <-- 6;6; ImprimaImprima (m1);(m1); parapara ii dede 0 0 atéaté 11 parapara j j dede 0 0 atéaté 22 imprimaimprima(m1[j][i]);(m1[j][i]); fimfim--parapara fimfim--parapara FimFim Matrizes � Exemplo 2: O que será impresso no algoritmo abaixo? InícioInício intint m1[3][4];m1[3][4]; caracterecaractere n1[2][2];n1[2][2]; intint i, j;i, j; j <j <-- 1;1; parapara i i dede 0 0 atéaté 22 m1[i][j] <m1[i][j] <-- 2;2; m1[i][j+2] <m1[i][j+2] <-- 2;2; m1[i][jm1[i][j--1] <1] <-- 1; 1; m1[i][j+1] <m1[i][j+1] <-- 1;1; fimfim--paraparafimfim--parapara para para ii dede 0 0 atéaté 11 para para j j dede 0 0 atéaté 11 sese i = j i = j entãoentão n1[i][j] <n1[i][j] <-- ‘A’;‘A’; senãosenão n1[i][j] <n1[i][j] <-- ‘Z’;‘Z’; fimfim--sese fimfim--parapara fimfim--parapara ImprimaImprima (m1, n1);(m1, n1); FimFim Matrizes � Exemplo 3: O que será impresso no algoritmo abaixo? InícioInício intint i, j;i, j; caracterecaractere m1[4][4]= {{O,Q,*,I}, {E,A,E,S}, m1[4][4]= {{O,Q,*,I}, {E,A,E,S}, {R,E,U,T},{R,E,U,T}, {A,*,*,S}};{A,*,*,S}}; caractere caractere auxaux;; parapara i i dede 0 0 atéaté 3 3 passo passo 11 parapara j j dede i+1 i+1 atéaté 3 3 passo passo 11 auxaux <<-- m1[i][j];m1[i][j]; m1[i][j] <m1[i][j] <-- m1[j][i];m1[j][i]; m1[j][i] <m1[j][i] <-- auxaux; ; m1[j][i] <m1[j][i] <-- auxaux; ; fimfim--parapara fimfim--parapara auxaux <<-- m1[0][0];m1[0][0]; m1[0][0] <m1[0][0] <-- m1[3][3];m1[3][3]; m1[3][3] <m1[3][3] <-- auxaux;; auxaux <<-- m1[1][1];m1[1][1]; m1[1][1] <m1[1][1] <-- m1[2][2];m1[2][2]; m1[2][2] <m1[2][2] <-- auxaux; ; ImprimaImprima (m1);(m1); FimFim Exercícios Propostos � 1) Elaborar um algoritmo que leia uma matriz de 4x5 elementos inteiros e some os elementos de cada linha gerando um vetor SOMALINHA. Em seguida, somar os elementos do vetor somalinha na variável TOTAL. Ao final, imprima a matriz, o vetor e a variável total. 2) Elaborar um algoritmo que leia duas matrizes � 2) Elaborar um algoritmo que leia duas matrizes reais de dimensão 3x5, calcule e imprima a soma das matrizes. � 3) Escreva um algoritmo que: � Leia uma matriz 20x20 de elementos reais; � Divida cada elemento de uma linha da matriz pelo elemento da diagonal principal desta linha; � Imprima a matriz assim modificada.
Compartilhar