1 / 19

Programação II Estruturas de Dados

Programação II Estruturas de Dados. NGUESSAN.DESIRE@POLI.USP.BR. Estruturas Homogêneas: Vetores e Matrizes. Estruturas Homogêneas: Vetores Um Vetor é um arranjo de elementos armazenados na MP: Memória Principal, um após o outro, todos com o mesmo nome.

lois-duke
Download Presentation

Programação II Estruturas de Dados

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programação IIEstruturas de Dados NGUESSAN.DESIRE@POLI.USP.BR Désiré NGuessan

  2. Estruturas Homogêneas: Vetores e Matrizes • Estruturas Homogêneas: Vetores • Um Vetor é um arranjo de elementos armazenados na MP: Memória Principal, um após o outro, todos com o mesmo nome. • A posição de um elemento é indicada por um índice i que varia de 0 ... N • Declaração de Vetor tipo nome [ dimensão]; • tipo de dado; • nome do vetor • dimensão: numero de elementos ou tamanho Désiré NGuessan

  3. Estruturas Homogêneas: Vetores e Matrizes • Exemplos • int A[5]; • A é um vetor de inteiros dimensionado com 5 elementos • Assim se cada inteiro ocupa 4 bytes a declaração reserva um espaço de memória de 20 bytes como mostra a figura abaixo. A Endereço contiguo de memória Representação na memória Désiré NGuessan

  4. Estruturas Homogêneas: Vetores e Matrizes • Inicializando um Vetor int A[5] = {5,10,15, 20, 25}; ou int A[ ] = {5,10,15, 20, 25}; • Leitura de um vetor Int i ; for (i= 0 ; i <5; i++) // faz o índice varia de 0 a 4 scanf("%d", &A[i]); // lê cada elemento do vetor • Imprimir um vetor Int i ; for (i= 0 ; i <5; i++) // faz o índice varia de 0 a 4 printf("%d", A[i]); // imprime cada elemento do vetor Désiré NGuessan

  5. Estruturas Homogêneas: Vetores e Matrizes • Estruturas Homogêneas: Matriz • Uma matriz é um conjunto bi ou multidimensional de elementos armazenados na MP, todos com o mesmo nome. • A posição de um elemento é indicada por mais de um índice i, j que variam de 0 ... N • Declaração de Vetor tipo nome [ dimensão1] [ dimensão2]; • tipo de dado; • nome do vetor • dimensão1: numero de linhas • dimensão2: numero de colunas Désiré NGuessan

  6. Estruturas Homogêneas: Vetores e Matrizes • Exemplos • int M[3][2]; • M é uma matriz de inteiros com 3 linhas e 2 colunas • Assim se cada inteiro ocupa 4 bytes a declaração reserva um espaço de memória de 24 bytes de maneira continua como mostra a figura abaixo. M Désiré NGuessan

  7. Estruturas Homogêneas: Vetores e Matrizes • Inicializando uma Matriz int A[3] [2]= {{5,10},{15, 20}, {21,25}}; ou int A[ 3] [2]= {5,10,15, 20, 21,25}; • Leitura de ma Matriz Int i,j ; for (i= 0 ; i <3; i++) // faz o índice i varia de 0 a 3 for (j= 0 ; i <2; i++) // faz o índice j varia de 0 a 2 scanf("%d", &A[i][j]); // lê cada elemento do vetor Désiré NGuessan

  8. Estruturas Homogêneas: Vetores e Matrizes • Imprimindo uma Matriz Int i,j ; for (i= 0 ; i <3; i++) // faz o índice i varia de 0 a 3 for (j= 0 ; i <2; i++) // faz o índice j varia de 0 a 2 printf("%d", A[i][j]); // imprime cada elemento do vetor Désiré NGuessan

  9. Atividade Desenvolva um programa que carregue uma matriz 12 X 4 com os valores das vendas de uma loja, em que a cada linha represente um mês do ano, e cada coluna, uma semana do mês. Calcule e imprima: • Total vendido em cada mês do ano; • Total vendido em cada semana durante todo o ano; • Total vendido no ano. Désiré NGuessan

  10. #include <stdio.h> #include <stdlib.h> # define MES 12 # define SEMANA 4 int main(int argc, char *argv[]) { // DECLARAÇÃO DE VARIAVEIS float VENDAS[MES][SEMANA]; float VENDAS_MES[MES]; float VENDAS_SEMANA[SEMANA]; float TOTAL_ANO; int i, j; Désiré NGuessan

  11. // LEITURA DAS VENDAS for (i = 0; i < MES; i ++ ) { printf(“%d\n", i); // VENDAS DE CADA MES for (j = 0 ; j< SEMANA; j ++ ) { // VENDA DE CADA SEMANA printf("entre com a venta da semana %d do mes %d\n", i, j); scanf("%f", &VENDAS[i][j]); } } Désiré NGuessan

  12. // INICIALIZANDO VENDAS for (i = 0; i < MES ; i ++ ) VENDAS_MES[i]= 0; for (j = 0 ; j< SEMANA ; j ++ ) VENDAS_SEMANA[j]; TOTAL_ANO = 0; // CALCULOS DE VENDAS for (i = 0; i < MES ; i ++ ) { for (j = 0 ; j < SEMANA; j ++ ) { VENDAS_MES[i]+= VENDAS[i][j]; VENDAS_SEMANA[j]+= VENDAS[i][j]; TOTAL_ANO += VENDAS[i][j]; } } Désiré NGuessan

  13. // IMPRIMIR RESULTADO printf("Total vendido em cada mes do ano:\n"); for (i = 0; i < MES ; i ++ ) printf (" %.2f\n", VENDAS_MES[i]); printf("Total vendido em cada semana durante todo o ano:\n"); for (j = 0 ; j < SEMANA ; j ++ ) printf (" %.2f\n", VENDAS_SEMANA[j]); printf("TOTAL VENDIDO NO ANO:\n"); printf (" %.2f\n", TOTAL_ANO); system("PAUSE"); return 0; } // FIM Désiré NGuessan

  14. Estruturas Homogêneas: Vetores e Matrizes • int M[3][2]; • M é uma matriz de inteiros com 3 linhas e 2 colunas • Assim se cada inteiro ocupa 4 bytes a declaração reserva um espaço de memória de 24 bytes de maneira continua como mostra a figura abaixo. M Désiré NGuessan

  15. Estruturas Homogêneas: Vetores e Matrizes • Vetor e Matriz como Argumentos de Funções • Passar um vetor ou uma matriz para uma função consiste em passar o endereço da primeira posição ou seja o endereço inicial do vetor ou matriz (nome). • A função chamada deve ter um parâmetro do tipo ponteiro para armazenar este valor • Por exemplo se passamos para uma função um vetor de intdevemos ter um parâmetro de tipo *int M Désiré NGuessan

  16. Estruturas Homogêneas: Vetores e Matrizes • Vetor e Matriz como parâmetro de Funções // função para calcular média do elemento de um vetor float MEDIA(int n , float *nota) { int i; float soma = 0.0f; for (i= 0; i< n; i++) soma+= nota[i]; return soma/n } M Désiré NGuessan

  17. Estruturas Homogêneas: Vetores e Matrizes • Vetor e Matriz como argumento de Funções // chamando a função MEDIA() floatvetor_nota[10]; int i; for (i= 0; i< n; i++) scanf(“%f”,&vetor_nota[i]); printf(“media = %f”, MEDIA(10, vetor_nota) ); M Désiré NGuessan

  18. Exercicio1 Ler um vetor A com 10 elementos. Construir uma matriz C de duas dimensões com três colunas, em que: a primeira coluna da matriz C é formada pelos elementos do vetor A somados com mais 5, a segunda coluna é formada pelo valor do cálculo da variância dos elementos do vetor A (a variância é dada pelas formulas a seguir), a terceira e última coluna deve ser formada pelos quadrados dos elementos correspondentes do vetor A. Apresentar a matriz C. Désiré NGuessan

  19. Exercicio 2 Implemente uma função em C que receba como parâmetro um vetor de números inteiros e retorne quantos números pares estão armazenados nesse vetor. Essa função deve obedecer ao protótipo: int pares ( int n, int* vetor); Désiré NGuessan

More Related