A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Désiré NGuessan Programação II Estruturas de Dados

Apresentações semelhantes


Apresentação em tema: "Désiré NGuessan Programação II Estruturas de Dados"— Transcrição da apresentação:

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

2 Désiré NGuessan 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

3 Désiré NGuessan 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 120 116 112 108 104 Endereço contiguo de memória Representação na memória

4 Désiré NGuessan 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

5 Désiré NGuessan 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

6 Désiré NGuessan 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 124 120 116 112 108 104

7 Désiré NGuessan 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

8 Désiré NGuessan 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

9 Désiré NGuessan 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: 1.Total vendido em cada mês do ano; 2.Total vendido em cada semana durante todo o ano; 3.Total vendido no ano.

10 Désiré NGuessan #include # 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;

11 Désiré NGuessan // 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]); }

12 Désiré NGuessan // 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]; }

13 Désiré NGuessan // 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

14 Désiré NGuessan 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 124 120 116 112 108 104

15 Désiré NGuessan 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 int devemos ter um parâmetro de tipo *int M

16 Désiré NGuessan 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

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

18 Désiré NGuessan 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. Exercicio1

19 Désiré NGuessan 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); Exercicio 2


Carregar ppt "Désiré NGuessan Programação II Estruturas de Dados"

Apresentações semelhantes


Anúncios Google