Buscar

LinguagemC-4

Prévia do material em texto

Linguagem C
MÓDULO 4
Vetores e Matrizes
Gustavo Luís F. Vicente
Linguagem C 2
Vetores
• Revisando:
• Variável: posição de memória que armazena uma informação
• identificador (nome da variável)
• endereço (posição de memória)
• conteúdo (valor armazenado)
int val;
val = 35; 35val
m
 e m
 ó r i a
O identificador val 
determina univocamente a 
posição de 
memória a acessar.
Linguagem C 3
Vetores
• Revisando:
• Exemplo: armazenar o salário de uma pessoa
float sal;
scanf(“%f”, &sal);
printf(“%f anos”, sal);
680,00sal
m
 e m
 ó r i a
Linguagem C 4
Vetores
• Mas...
• Problema: armazenar os salários do ano
Possível solução:
float sal1, sal2, ..., sal12;
scanf(“%f”, &sal1);
scanf(“%f”, &sal2);
...
scanf(“%f”, &sal12);
680,00sal1
m
 e m
 ó r i a
sal2
sal3
sal12
Linguagem C 5
Vetores
• Problema: armazenar os salários do ano
Solução quase perfeita: vetor
float sal[12];
scanf(“%f”, &sal[0]);
scanf(“%f”, &sal[1]);
...
scanf(“%f”, &sal[11]);
...
...
sal[3] = sal[2] * 1.1;
sal[11] = 0;
...
680,00sal[0]
m
 e m
 ó r i a
sal[1]
sal[2]
sal[11]
Linguagem C 6
Vetores
• Problema: armazenar os salários do ano
Solução perfeita: vetor em uma estrutura de repetição
float sal[12];
int i;
for(i=0; i<12; i++)
 scanf(“%f”, &sal[i]); 680,00sal[0]
m
 e m
 ó r i a
sal[1]
sal[2]
sal[11]
Linguagem C 7
Vetores
• Vetor
• Estrutura de armazenamento de dados 
• Armazena valores do mesmo tipo
• Possui um único identificador
• Cada elemento é identificado por um índice numérico
• Tamanho do vetor é o número de elementos que ele tem
• O primeiro elemento é o de índice 0 (zero)
• O índice do último elemento é o tamanho menos 1
• Para um vetor de 12 elementos, o último elemento é o de 
índice 11
float sal[12];
for(i=0; i<12; i++) // de 0 a 11
 scanf(“%f”, &sal[i]);
1 #include <stdio.h>
2 main()
3 {
4 int i;
5 float sal[12];
6 
7 for(i=0; i<12; i++)
8 { 
9 printf( ”\nDigite o salário do mês %d: “, i+1); 
10 scanf( "%f", &sal[i] );
11 }
12 
13 printf(“\n\nMês\t\tSalário”);
14 for(i=0; i<12; i++)
15 printf( ”\n %02d\t\t%7.2f” , i, sal[i]);
16 }
Linguagem C 8
Vetores
EXERCÍCIOS
1) Programa que declara um vetor de 5 elementos numéricos inteiros e 
inicializa todos os seus elementos com zero.
2) Programa que declara um vetor de 5 elementos numéricos inteiros, 
pede e preenche os elementos com os valores digitados e depois 
mostra o dobro dos valores armazenados no vetor.
3) Programa que declara dois vetores de inteiros de 5 elementos, 
preenche um deles com valores digitados, depois preenche o segundo 
de forma inversa (o valor do primeiro elemento de um irá para o último 
elemento do outro, o segundo de um para o penúltimo do outro, e 
assim por diante).
Linguagem C 9
Vetores
Linguagem C 10
Vetores
• Matriz
• Um vetor de duas dimensões
• Valem as mesmas características de um vetor 
• Declara-se definindo o tamanho de cada dimensão
• Exempo:
int mat[3][2];
float k[4][4];
char nomes[10][30]; 3 linhas
2 colunas
Linguagem C 11
Vetores
a00 a01
a10 a11
a20 a21
• Matriz
• Como fica armazenado na memória???
int mat[3][2];
3 linhas
2 colunas
m
 e m
 ó r i a
mat[0][0]
mat[0][1]
mat[1][0]
mat[1][1]
mat[2][0]
mat[2][1]
EXERCÍCIOS
1) Programa que declara uma matriz de 3x3 e preenche cada elemento 
com zero.
2) Programa que declara uma matriz de 3x3 e preenche cada elemento 
com o produto de seus índices.
3) Complemente o programa anterior, mostrando os valores de cada 
elemento da matriz.
4) Programa que preenche uma matriz de 2x2 de inteiros e informa seu 
determinante.
Linguagem C 12
Vetores
EXERCÍCIOS
1) Programa que declara uma matriz de 3x3 e preenche com dados 
inteiros digitados. Depois mostra os elementos das diagonais principal 
e secundária. 
2) Programa que preenche uma matriz de 3x3 de inteiros e informa se ela 
é a matriz-identidade.
3) Programa que preenche duas matrizes 2x2 de inteiros e mostra o 
resultado da multiplicação da primeira matriz pela segunda.
4) Programa que declara um vetor de 20 char e preenche os 10 
primeiros elementos do vetor com caracteres digitados. Depois mostrar 
os 20 elementos do vetor, juntos, na tela. Depois, na linha seguinte, 
mostrar os 10 primeiros elementos do vetor.
Linguagem C 13
Vetores
• Como armazenar uma cadeia de caracteres (string)?
• Não existe um tipo string ou caractere em C
• Existe apenas o tipo char, que armazena valores numérios 
de 1 byte
• Existe a implementação de vetores
• String, em C, é implementada como um vetor de caracteres
• Declaração igual
• Acesso a cada “caracter” (elemento) igual
• Cada elemento isoladamente se comporta como uma variável 
do tipo char
• Atribuição de valor e formatação
• Ex.: 
• nome[0] = ‘F’;
• scanf(“%c”, &nome[0]);
Strings
• Declarando e preenchendo (método didático) uma string:
char nome[20];
nome[0] = ‘F’;
nome[1] = ‘u’;
nome[2] = ‘l’;
nome[3] = ‘a’;
nome[4] = ‘n’;
nome[5] = ‘o’;
nome[6] = 0;
...
Linguagem C 15
Strings
‘l’
nome[0]
‘u’
‘F’
‘n’
‘a’
m
 e m
 ó r i a
nome[1]
nome[2]
‘o’
nome[6] 0
nome[3]
nome[4]
nome[5]
Restrições no uso de strings em C
• String não é um tipo básico
• Não é possível utilizar com strings, os operadores utilizados 
com tipos básicos
• Exemplos:
• nome = “Fulano”; NÃO PODE
• nome = “Fulano” + “da Silva”; NÃO PODE
• Lembrar que a string em C é implementada como um vetor de 
caracteres, ou seja, um vetor de variáveis do tipo char
• Pode fazer com um elemento da string tudo o que pode ser 
feito com uma variável do tipo char
• Exemplos:
• nome[0] = ‘F’;
• scanf(“%c”, &nome[0]);
Strings
Como processar strings “inteiras” em C?
• Através de funções específicas
• Biblioteca string.h
• Conjunto de funções específicas de tratamento de strings
• Exemplos mais usados:
• strcpy(s1, s2) – copia a string s2 para a string s1
• strcmp(s1, s2) – compara as strings s1 e s2
• strlen(s) – retorna o tamanho da string s
• strcat(s1, s2) – concatena as strings s1 e s2
• ...
Strings
Característica fundamental de uma string, em C
• A string deve ser terminada com o valor numérico 0 (zero) 
após o último caracter “válido” da string
• Por caracter válido entende-se o caracter que pertence à 
informação armazenada na string (embora ela possa 
armazenas mais informações)
• Exemplo:
• char fruta[10];
• strcpy(fruta, “Uva”);
Strings
‘a’
fruta[0]
‘v’
‘U’
ӂꙮ
0
String fruta
fruta[1]
fruta[2]
fruta[9] ¤⁂
fruta[3]
fruta[4]
lixo
Não é necessário 
incluir o “0 de 
terminação”
O 0 indica o final 
do conteúdo válido 
da string
1 #include <stdio.h>
2 #include <string.h>
3
4 main()
5 {
6 char nome[20];
7 
8 printf(“\nDigite seu nome: “);
9 __purge(stdin);
10 gets(nome);
11 printf(“\nSeu nome é %s.\n”, nome);
12 }
Linguagem C 19
Strings
EXERCÍCIOS
1) Programa que declara uma string de 10 caracteres, preenche com os 
caracteres que formam a palavra “casa” e depois mostra a string na 
tela com a função printf().
2) Programa que pede o nome e a idade de duas pessoas e informa 
quem é mais velho.
3) Programa que pede uma palavra de no máximo 20 letras e informa 
quantas são vogais e quantas são consoantes.
4) Programa que pede a digitação de uma string qualquer, através da 
função fgets(), e informa quantos caracteres foram digitados, sem 
utilizar a função strlen().
Linguagem C 20
Strings
EXERCÍCIOS5) Duas strings são consideradas iguais se cada caracter de uma for igual 
ao caracter correspondente (de mesma posição) da outra. Desenvolva 
um programa que pede a digitação de duas strings e informa se as 
duas são iguais.
6) Programa que pede a digitação de uma palavra e mostra a palavra ao 
contrário (de trás pra frente). Ex: madeira  ariedam.
7) Programa que pede a digitação de uma string e um caracter e informa 
se a string contém o caracter.
Linguagem C 21
Strings
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21

Continue navegando