Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição:...

23
Aulas preparatórias Introdução a Programação em C. Prof. Gemilson George [email protected] Blog: informaticageo.wordpress.com GEO.OBI Olimpíadas de Informática Aula 05 Aula 05 Vetores(Arrays)

Transcript of Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição:...

Page 1: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Aulas preparatórias Introdução a Programação em C.

● Prof. Gemilson George● [email protected]● Blog: informaticageo.wordpress.com ● GEO.OBI

Olimpíadas de Informática

Aula 05Aula 05

Vetores(Arrays)

Page 2: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CVetores (array)Vetores (array)

Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum.

(Herbert Schildt)● Declaração: tipo nome_variável [tamanho]

Ex: float notas[10]; // Este vetor armazena 10 valores, vai do índice 0 até o índice 9.

● Acesso por índice:notas[0] → 1º valor notas[5] → 6º valornotas[1] → 2º valor notas[9] → 10º valor

Page 3: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CVetores Vetores (array)(array)

Comparativo – Variável simples X Vetor

TIPO

NOME

ÍNDICE 0 ÍNDICE 1 ÍNDICE 2 ÍNDICE 3 ÍNDICE 4

VALOR 1 VALOR 2 VALOR 3 VALOR 4

VARIÁVEL SIMPLESVARIÁVEL SIMPLES

VETORVETOR

Ex: int x ; x = 2 ;

char b; char b = 'k' ;

Ex: int vet [5] ; vet [3] = 7 ;

char vet[4] ;vet[0] = 'a' ;

VALOR 5

NOME

TIP

O

Page 4: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CVetores (array)Vetores (array)

Exemplos da utilização de um vetor declarado como: float nota[10]

● a = nota[9]; ok

● nota[5] = 9.5; ok

● a = nota; erro

● nota[i+1]; ok

● nota[-2]; erro

Page 5: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CVetores Vetores (array)(array)

Situação problema 1: guardar três notas

float nota1, nota2, nota3;

printf("Nota do aluno 1: ");scanf("%f", &nota1);printf("Nota do aluno 2: ");scanf("%f", &nota2);printf("Nota do aluno 3: ");scanf("%f", &nota3);

Page 6: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CVetores Vetores (array)(array)

Situação problema 2: guardar 100 notasfloat nota1, nota2, nota3, .... nota100;printf("Nota do aluno 1: ");scanf("%f", &nota1);printf("Nota do aluno 2: ");scanf("%f", &nota2); ... printf("Nota do aluno 100: ");scanf("%f", &nota100);

Page 7: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CVetores Vetores (array)(array)

Situação problema 3: guardar n (<=100) notasfloat nota1, nota2, nota3, .... nota100;

if (n >= 1) { printf("Nota do aluno 1: ");scanf("%f", &nota1); }

if (n >= 2) { printf("Nota do aluno 2: ");scanf("%f", &nota2); }

...

if (n >= 100) { printf("Nota do aluno 100: "); scanf("%f", &nota100); }

Page 8: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CVetores Vetores (array)(array)

Exemplo 0: Escreva um programa para listar na tela um vetor com os valores de 1 a 10 (lado a lado).

Page 9: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CVetores Vetores (array)(array)

Exemplo 0: Escreva um programa para listar na tela um vetor com os valores de 1 a 10 (lado a lado). # include <stdio.h>

main ( ){ int vetor [ 10 ] , i;for ( i = 0 ; i < 10 ; i++ ) {

vetor [ i ] = i + 1; printf ( " %d ", vetor [ i ] ) ; }}

Page 10: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CVetores Vetores (array)(array)

Exemplo 1: Escreva um programa para receber 5 valores inteiros em um vetor, e imprimir o 2º e o 5º valor.

Page 11: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CVetores Vetores (array)(array)

Exemplo 1: Escreva um programa para receber 5 valores inteiros em um vetor, e imprimir o 2º e o 5º valor. # include <stdio.h>

main ( ){ int valor [ 5 ] ; int i ;for ( i = 0 ; i < 5 ; i++ ) { printf ( " Digite um valor: " ) ; scanf ( " %d " , &valor [ i ] ) ; } printf ( " %d \n ", valor [ 1 ] ) ; printf ( " %d \n ", valor [ 4 ] ) ;}

Page 12: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CVetores Vetores (array)(array)

2. Escreva um programa para calcular a média de N (<=100) alunos.

Page 13: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CVetores Vetores (array)(array)

2. Escreva um programa para calcular a média de N (<=100) alunos.# include <stdio.h>main( ){    float nota[100], soma=0, media;    int n, i;    printf("Número de alunos: ");    scanf("%d", &n);    for (i = 0; i < n; i++)    {        printf("Nota do aluno %d: ", i+1);        scanf("%f", &nota[i]);        soma=soma+nota[i];    }    media = soma/n;    printf("Média= %.2f",media);}

Page 14: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CVetor de caracteres (Strings)Vetor de caracteres (Strings)

\0

TIPO

NOME

FIM

VALOR 1 VALOR 2 VALOR 3 VALOR 4

ÍNDICE 0 ÍNDICE 1 ÍNDICE 2 ÍNDICE 3 FIM

STRINGSTRING

Ex: char vet [5] ;

vet [3] = 'B' ;

char vet [5] = “Zé” ;

Page 15: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CVetor de caracteres (Strings)Vetor de caracteres (Strings)

#include<stdio.h>main( ){ char str[20]="Zé da silva"; printf ("%s\n",str); printf ("%c\n",str[5]); printf ("%c\n",str[8]);}

Page 16: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CVetor de caracteres (Strings)Vetor de caracteres (Strings)

#include<stdio.h>main(){ char str[50];

scanf("%s",str);

printf("%s \n",str);}

Recebendo stringsRecebendo strings

#include<stdio.h>main(){ char str[50];

gets(str);

printf("%s \n",str);}

Page 17: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CMatriz (vetor bidimensional)Matriz (vetor bidimensional)

Definição: São estruturas n-dimensionais utilizadas para armazenar dados de um mesmo tipo. Uma matriz pode ser considerada como um vetor de vetores

● Declaração: tipo nome_variável [num_linhas ] [num_colunas];

Ex: int notas[3] [4]; // matriz com 3 linhas e 4 colunas de inteiros

● Acesso por índice:notas[0] [0] → 1º elemento da 1ª linhanotas[2] [3] → 3º elemento da 4ª linha

Page 18: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CMatriz (vetor bidimensional)Matriz (vetor bidimensional)

Representando graficamente um Matriz 3x4

0 1 2 3

0 8 9 10 7.5

1 9.8 10 9.9 4

2 9 8.6 10 9

Representando graficamente um Vetor de tamanho 4

0 1 2 38 9 10 7.5

Declaração: int vet[4];Leitura(receber): scanf(“%d”,&vet[2]);Escrita(mostrar): printf(“%d”,vet[2]);

Declaração: int mat[3] [4];Leitura(receber): scanf(“%d”,&mat[2][3]);Escrita(mostrar): printf(“%d”,mat[2][1]);

índices

Índices COLUNAS

Índi

ces

LIN

HA

S

Page 19: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CMatriz (vetor bidimensional)Matriz (vetor bidimensional)

Escreva um programa que receba uma matriz 3x4 e depois a coloque na tela.

#include <stdio.h>int main() {    int i, j, num[3][4];

    // Recebendo os dados    for (i = 0; i < 3; i++)        for (j = 0; j < 4; j++)            scanf("%d",&num[i][j]);

    // Exibindo os dados    for (i = 0; i < 3; i++) {        for (j = 0; j < 4; j++)            printf("%3d ", num[i][j]);        printf("\n");   }}

Page 20: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CMatriz (vetor bidimensional)Matriz (vetor bidimensional)

Escreva um programa que receba uma matriz 3x4 com os números de 1 a 12 e depois a exiba junto a outra matriz de mesmo tamanho com seus quadrados.

#include <stdio.h>int main() {    int i, j, valor[3][4], quad[3][4];

    // Recebendo os dados    for (i = 0; i < 3; i++)        for (j = 0; j < 4; j++)            valor[i][j]=i*4+j+1;

    // Realizando os cálculos    for (i = 0; i < 3; i++) {        for (j = 0; j < 4; j++)            quad[i][j] = valor[i][j] * valor[i][j];        printf("\n");     }

//cont.    // Exibindo os resultados    for (i = 0; i < 3; i++) {        for (j = 0; j < 4; j++)            printf("%5d",valor[i][j]);        printf("\n");   }

         printf("\n");

    for (i = 0; i < 3; i++) {        for (j = 0; j < 4; j++)            printf("%5d",quad[i][j]);        printf("\n");   }}

Page 21: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CArray(Vetor) UnidimensionalArray(Vetor) Unidimensional

Exercício

1) Faça um programa que cria um vetor de 5 posições, recebe os valores do usuário e os escreve na ordem inversa.

2) Faça um programa que carregue um vetor de seis elementos numéricos inteiros, calcule e mostre:a) Quais os números ímpares.b) A quantidade de números pares;

3) Faça um programa que carregue um vetor com dez números inteiros, calcule e mostre a quantidade de números negativos e a soma dos números positivos desse vetor.

4) Faça um programa que leia 5 elementos de um vetor A. Construir um vetor B do mesmo tipo,observando a seguinte lei de formação: "Todo o elemento de B deverá ser o quadrado do elemento correspondente de A". No final apresentar o vetor A e B.

5) Faça um programa que carregue um vetor com 5 posições, calcule e mostre:a) O maior elemento do vetor e em que posição esse elemento se encontra;b) O menor elemento do vetor e em que posição esse elemento se encontra.

Page 22: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

Introdução à Programação CMatriz (vetor bidimensional)Matriz (vetor bidimensional)

Exercício

1. Escreva um programa que receba uma matriz 3x3 do usuário e depois de pular uma linha a exiba na tela.

2. Criar um programa que leia os elementos de uma matriz inteira de 4 x 4 e imprimir os elementos da diagonal principal.

3. Escreva um programa que receba uma matriz 3x3 do usuário e depois exiba na tela o maior e o menor valor.

4. Escreva um programa que receba uma matriz 2x2 do usuário e depois de pular uma linha exiba na tela quais são ímpares.

5. Escreva um programa que receba duas matrizes 3x3 do usuário e depois de pular uma linha a exiba outra matriz resultante da soma das duas primeiras.

Page 23: Vetores(Arrays) · Vetores(Arrays) Introdução à Programação C Vetores (array) Definição: Coleção de variáveis do mesmo tipo referenciada por um nome comum. (Herbert Schildt)

TO BE CONTINUED…TO BE CONTINUED…