Escolar Documentos
Profissional Documentos
Cultura Documentos
Programação
Vetores e Matrizes
Profa. Rayanne Silveira
Conteúdo
1 Vetores
2 Matrizes
3 String
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 2/34
Introdução
3
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 3/34
Introdução
VETORES e STRINGS são ARRANJOS unidimensionais. Isto é,
precisamos de apenas um ÍNDICE para acessar um elemento.
4
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 4/34
Introdução
Em C, ARRAJOS são armazenados em posições de memória
contíguas. O endereço mais baixo corresponde ao primeiro elemento e
o mais alto, ao último elemento.
5
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 5/34
Vetor
Sintaxe:
Tipo nome [numero_de_elementos] = { INICIALIZAÇÃO};
INICIALIZAÇÃO é opcional.
Exemplos:
int vet[10];
char strings[20];
float novo [5] = {1,2,3,4,5}; //com inicialização
int vetor []={4,4,4}; //com inicialização
Int vec[5] = {0}; //inicializa todos os elementos com 0
6
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 6/34
Acesso ao conteúdo (Índices)
Em ARRANJOS, o acesso ao conteúdo é feito através dos ÍNDICES.
7
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 7/34
Acesso ao conteúdo (Índices)
Exemplo:
vetor [0] = 1
vetor [1] = 2
vetor [2] = 3
8
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 8/34
Acesso ao conteúdo (Índices)
9
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 9/34
Vetor
#include <stdio.h>
int main(){
int vec [50];
int i;
for (i=0;i<50; i++){
vec[i]=i;
printf("%d", vec[i]);
}
return 0;
}
10
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 10/34
Vetor
#include<stdio.h>
Exemplo 2 - Inicialize um vetor int main (){
de 5 posições ( via teclado): int vetor[5] , i;
for ( i=0; i<5; i++ ) {
printf ("\nElemento[%d]= ", i);
scanf ("%d", &vetor[ i ]);
}
printf ("\n*******Imprimindo*********\n");
for (i=0;i<5; i++){
printf("%d", vetor[i]);
}
return 0;
}
11
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 11/34
Matrizes
Matrizes são vetores multidimensionais;
Sintaxe:
Tipo nome [tamanho1][tamanho2]... [tamanhoN] =
{ INICIALIZAÇÃO};
Exemplos:
int vetor [3][2];
char strings[3][3];
float novo [2][2] = {1,2,3,4}; //com inicialização
12
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 12/34
Acesso ao conteúdo (Índices)
Índices começam em 0 e vão até (TAMANHO – 1):
13
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 13/34
Matrizes
14
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 14/34
Matrizes #include<stdio.h>
int main (){
int matriz[2][2] , linha, coluna;
Exemplo 3: Inicialize e printf ("Digite os elementos da matriz:\n");
for ( linha=0; linha<2; linha++ )
imprima uma matriz 2x2: for ( coluna=0; coluna<2; coluna++ ) {
printf ("\nElemento[%d][%d] = ", linha, coluna);
scanf ("%d", &matriz[ linha ][ coluna ]);
}
printf("\n***** Imprimindo ******** \n");
for ( linha=0; linha<2; linha++ )
for ( coluna=0; coluna<2; coluna++ ) {
printf ("Elemento[%d][%d] = %d\n", linha,
coluna,matriz[ linha ][ coluna ]);
}
return 0;
}
15
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 15/34
Strings
Strings são vetores de caracteres
Terminam com um nulo: ”\0”
Exemplos:
char teste[4]=”ola” ;
char teste[]=”ola” ;
char teste []={‘o’,’l’,’a’};
16
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 16/34
Strings
Funções para escrever strings:
char vetorNome[20]=“programacao”;
Função printf()
printf(“Nome: %s”,vetorNome);
Função puts()
puts(vetorNome); //já inclui o \n
17
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 17/34
Strings
Função scanf()
#include<stdio.h>
int main(void) {
char nome[50];
printf("Digite seu nome: ");
scanf("%s",nome);
printf("O nome armazenado foi: %s", nome);
return 0;
}
19
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 19/34
Strings
Funções para ler strings:
Função gets()
gets(nome_string)
20
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 20/34
Strings
Exemplo gets():
#include<stdio.h>
int main(void) {
char nome[50];
printf("Digite seu nome: ");
gets(nome);
printf("O nome armazenado foi: %s", nome);
return 0;
}
21
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 21/34
Strings
Funções para ler strings:
fgets() recebe três parametros: a string que vai armazenar o que vai ser
digitado, o tamanho da string e de onde vai ler (ela pode ler de um arquivo de
texto, por exemplo). Para ler do teclado, utiliza-se stdin.
22
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 22/34
Strings
Exemplo fgets():
#include<stdio.h>
int main(void) {
char nome[50];
printf("Digite seu nome: ");
fgets(nome, 50 , stdin );
printf("O nome armazenado foi: %s", nome);
return 0;
}
23
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 23/34
Strings
Header: <string.h>
24
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 24/34
Strings
Exemplo 4: uso de algumas funções de strings:
#include<stdio.h>
#include<string.h>
int main () {
char nome1[80],nome2[80];
printf("Digite o primeiro nome:");
scanf("%s",nome1);
printf("Digite o segundo nome:");
scanf("%s",nome2);
printf("O tamanho da string %s é %d\n", nome1,strlen(nome1));
printf("O tamanho da string %s é %d", nome2,strlen(nome2));
return 0;
}
25
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 25/34
Arranjos
Observações:
Uma constante é usada para armazenar valores que não podem ser
modificados durante a execução de um programa.
26
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 26/34
Constantes
Duas formas:
OBS:
A declaração deve ser feita fora de todas as funções do progama
27
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 27/34
Constantes
Exemplo:
const int num=10;
int vetor[num];
28
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 28/34
Constantes
Sintaxe:
#define nome_da_constante valor (não tem ; )
OBS:
É recomendável utilizar letras maiúsculas
29
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 29/34
Constantes
Exemplo:
#define TAM 5
int vetor[TAM];
for(i=0; i<TAM; i++)
vetor[i] = TAM - i;
30
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 30/34
Arranjos
Observações:
31
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 31/34
Exercícios
1. Escreva um programa que leia uma palavra e imprima a quantidade
de vogais presentes nessa palavra.
32
Laboratório de Programação – ECP – Universidade Federal do Maranhão | Profa. Rayanne Silveira 32/34
Dúvidas?