Baixe o app para aproveitar ainda mais
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
Compartilhar