Buscar

Aula 5 - Matrizes e Strings

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PROGRAMAÇÃO II 
AULA 5 – MATRIZES E STRINGS 
 
 
 
 
 
 
 
CIÊNCIA DA COMPUTAÇÃO 
 
VETORES 
 São matrizes unidimensionais; 
 
 Vetores e matrizes são caracterizados por terem 
sempre elementos do mesmo tipo; 
 
 Declaração: 
 
 
 
 Quando o C vê uma declaração como esta reserva um 
espaço de memória suficientemente grande para 
armazenar o número de células especificadas em 
tamanho; 
 float exemplo[20]  4 x 20 = 80 bytes; 
2 
VETORES 
 Na linguagem C a numeração começa 
sempre em zero. 
 
 Para exemplo anterior, os dados serão anexados 
de 0 a 19. Exemplos de acesso: 
 
 
 Mas ninguém o impede de fazer: 
 
 
 O C não verifica se o índice que você usou está 
dentro dos limites válidos  Bugs terríveis 
podem surgir 
3 
VETORES – PROJETO 1 
4 
VETORES – EXERCÍCIOS 1 E 2 
 Exercício 1: Faça um programa que preencha um vetor de 50 
posições randomicamente e imprima na tela seus valores. 
Para os intervalos respeite as condições para o sorteio dos 
números. 
 Posição de 0 à 9 – números entre 40 e 50; 
 Posição de 10 à 19 – números entre 30 e 40; 
 Posição de 20 à 29 – números entre 20 e 30; 
 Posição de 30 à 39 – números entre 10 e 20; 
 Posição de 40 à 49 – números entre 1 e 10; 
 
 Exercício 2: Preencha um vetor com 80 valores randômicos 
entre 1 e 100. Imprima os 100 valores na tela. Verifique entre 
os números alocados no vetor quais são os valores que são o 
dobro de um outro valor presente no vetor. Ex: [12 6 5 4 86 
53]. 
Imprima a seguinte mensagem na tela: “Posição 1 é igual a 12, 
que e o dobro da posição 2 que é igual a 6 ” 
 
5 
STRINGS 
 Strings são vetores de chars  Uso mais comum 
de vetores. 
 
 Devemos ficar atentos para o fato de que as 
strings têm o seu último elemento como um ‘\0’. 
Tamanho da string deve incluir ‘\0’; 
 
 
 A biblioteca padrão em C possui diversas funções 
que manipulam strings. Estas funções são úteis 
pois não se pode, por exemplo, igualar duas 
Strings.  NÃO 
 
 
6 
PROJETO 2 
7 
STRINGS: FUNÇÃO GETS 
 Lê uma string do teclado; 
 
 Forma geral: 
 
 
 
 
 
 
 
 printf(string); // no contexto acima é válido!! 
 
8 
STRINGS: FUNÇÃO STRCOPY 
Sua forma geral é: 
 
 
A função strcopy() copia a string-
origem para a string-destino; 
 
AS FUNÇÕES RELACIONADAS A 
STRINGS NESTA AULA ESTÃO NO 
ARQUIVO CABEÇALHO string.h; 
 
 
9 
PROJETO 3 
10 
STRINGS: FUNÇÃO STRCAT 
 Tem a seguinte forma geral: 
 
 A string de origem permanecerá inalterada 
e será anexada ao fim da string de destino. Um 
exemplo: 
11 
STRINGS: FUNÇÃO STRLEN 
Forma geral: 
 
 
Retorna o comprimento da string 
fornecida; 
 
O terminador nulo não é contado. 
 Isto quer dizer que, de fato, o 
comprimento do vetor da string deve ser 
um a mais que o inteiro retornado por 
strlen; 
12 
STRINGS: FUNÇÃO STRLEN 
13 
STRINGS: FUNÇÃO STRCMP 
 A forma geral eh: 
 
 A função strcmp() compara a string 1 com a 
string 2. Se as duas forem idênticas a função 
retorna zero. Se elas forem diferentes à função 
retorna não-zero. 
 
 
14 
PROJETO 4 
15 
EXERCÍCIOS 3 E 4 
 Escreva um programa em C para ler uma frase e contar 
o número de palavras existentes na frase. 
 Considere palavra um conjunto qualquer de caracteres 
separados por um conjunto qualquer de espaços em branco. 
 
 Faça um programa que tenha um menu, com Cadastro 
de Senha, Logar e Sair. No item cadastro de senha, a 
senha atual deve ser informada antes que a mesma seja 
alterada (na 1ª execução a senha começa com ‘1234’ e 
devera ter de 4 à 8 caracteres), deseja-se também que 
toda vez que o usuário digitar a senha os caracteres 
sejam ocultados. No item Logar, caso a senha esteja 
correta, deverá ser impresso em tela “Usuário 
autenticado” 
 
 
16 
MATRIZES - BIDIMENSIONAIS 
 Forma geral: 
 
 
 Nesta estrutura, o índice da esquerda indexa as 
linhas e o da direita indexa as colunas; 
 O índice mais à direita varia mais rapidamente 
que o índice à esquerda: colunas x linhas 
 
 Os índices variam de zero ao 
(valor declarado-1); 
 
Manter os índices na faixa 
permitida é tarefa do programador. 
17 
PROJETO 5 
18 
MATRIZES DE STRINGS 
 Matrizes de strings também são matrizes 
bidimensionais; 
 
 Na verdade podemos pensar que se fizermos 
um vetor de strings estaremos fazendo uma 
lista de vetores; 
 Esta estrutura é uma matriz bidimensional de chars; 
 Forma geral: 
 
 
Aí surge a pergunta: como acessar uma string 
individual? 
19 
PROJETO 6 
20 
MATRIZES MULTIDIMENSIONAIS 
Sua forma geral é: 
 
 
Uma matriz N-dimensional funciona 
basicamente como outros tipos de 
matrizes; 
 
Basta lembrar que o índice que varia 
mais rapidamente é o índice mais a 
direita; 
21 
INICIALIZAÇÃO DE MATRIZES E VETORES 
Forma geral, para inicialização de 
matrizes: 
 
 
A lista de valores é composta por valores 
(do mesmo tipo da variável) 
separados por virgula. 
 
Os valores devem ser dados na 
ordem em que serão colocados na 
matriz. 
 
22 
INICIALIZAÇÃO DE MATRIZES E VETORES : 
EXEMPLOS 
23 
INICIALIZAÇÃO SEM ESPECIFICAÇÃO DE 
TAMANHO 
 Podemos, em alguns casos, inicializar matrizes 
das quais não sabemos o tamanho a priori. 
 O compilador C vai, neste caso verificar o 
tamanho do que você declarou e considerar 
como sendo o tamanho da matriz; 
 Muito útil quando queremos inicializar uma 
string sem contar o número de caracteres; 
 
 
24 
EXERCÍCIO 5 
 
 
 
 
 
a) leia a tabela acima e informe ao usuário a distância entre duas 
cidades por ele requisitadas; 
b) O programa deve ter como opção também, a impressão da tabela 
sem repetições, isto é, se a distância entre as cidades 1 e 3 foi 
emitida, não é necessário emitir a distância entre 3 e 1; 
c) Outra opção deve ser que dado um determinado percurso, 
imprima o total percorrido, exemplo: dado o percurso 1, 2, 3, 2, 5, 
1, 4, teremos:15 + 10 + 10 + 28 + 12 + 5 = 80 km. 
 
1 2 3 4 5 
1 00 15 30 05 12 
2 15 00 10 17 28 
3 30 10 00 03 11 
4 05 17 03 00 80 
5 12 28 11 80 00 
A distância entre várias 
cidades é dada pela 
tabela abaixo (em km), 
Construa um programa 
que : 
EXERCÍCIO 6 
 Faça um programa que tenha um menu para 
cadastro de usuários, listar usuários cadastrados 
e sair. No cadastro de usuários é necessário 
informar separadamente nome e sobrenome (não 
podendo haver nomes completos iguais; para isso 
utilize strcat e strcmp); outra restrição é que o 
nome completo não deve ter mais de 30 
caracteres (utilize strlen). Ao listar todos usuários 
cadastrados, deverá ser impresso em tela os 
nomes completos de cada usuário; 
26

Outros materiais