Baixe o app para aproveitar ainda mais
Prévia do material em texto
1ª questão (2.0 pontos): O Campeonato Brasileiro de Futebol de 2020, série B, foi disputado em 24 jogos. Os resultados de um time são expressos por um vetor de caracteres contendo os caracteres ‘V’ para vitórias, ‘E’ para empates e ‘D’ para derrotas. Exemplo: V V V E E E D D D D V V V V V D E E E E E E E E Dado um vetor de entrada representando os resultados de um time, determinar a maior seqüência de resultados iguais, isto é, a maior seqüência de vitórias ou empates ou derrotas. Não é necessário informar o tipo da seqüência (vitórias, empates ou derrotas). Por exemplo, para a seqüência acima a resposta esperada é o número inteiro 8. programa campeonato início para i ← 1 até 24 faça leia vetor[i] fim para conta ← 1 para i ← 2 até 24 faça se vetor[i] = vetor[i-1] então conta ← conta + 1 senão se conta > maior então maior ← conta conta ← 1 fim se fim se fim para se conta > maior então maior ← conta conta ← 1 fim se imprima maior fim 2ª questão (2.0 pontos): Uma maneira bastante simples de achar números primos é usando o Crivo de Eratóstenes. Para determinar os números primos menores do que n, basta iniciar um vetor com todos os inteiros entre 2 e n e depois substituir por zeros os múltiplos de todos os números menores do que n. Ao final do algoritmo, os números que não estiverem zerados são os números primos. Vamos determinar, por exemplo, os primos menores ou iguais a 20: a. Inicialmente constrói-se o vetor dos inteiros de 2 a 20. 0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 b. O primeiro número não zerado é o (2). Vamos mantê-lo e zerar todos os seus múltiplos. Desta forma, obtemos: 2 3 0 5 0 7 0 9 0 11 0 13 0 15 0 17 0 19 0 c. O próximo número "livre" é o 3. Vamos mantê-lo e zerar seus múltiplos: 2 3 0 5 0 7 0 0 0 11 0 13 0 0 0 17 0 19 0 d. O próximo número “livre” é o 5, porém não há mais múltiplos de 5 ainda não zerados. 2 3 0 5 0 7 0 0 0 11 0 13 0 0 0 17 0 19 0 e. O processo é repetido até que não hajam mais números livres. Os números primos encontrados foram então {2, 3, 5, 7, 11, 13, 17, 19}. Escreva um programa para implementar o Crivo de Eratóstenes programa crivo inicio para i ← 1 até N faça vetor[i] ← i fim para para i ← 2 até N-1 faça para j ← i+1 até N faça se (vetor[i] <> 0) E (vetor[j] mod vetor[i] = 0) então vetor[j] ← 0 fim se fim se fim para para i ← 2 até N faça se vetor[i] <> 0 então imprima i fim para fim 3ª questão (2.0 pontos): Em PETEQS um vetor é passado como parâmetro para um procedimento escrevendo- se, quando da chamada do procedimento, apenas o nome do vetor, sem o índice. Exemplo: Um procedimento para imprimir o conteúdo de um vetor de N posições: programa teste início V[1] ← 10 V[2] ← 20 V[3] ← 30 imprimeVetor(V, 3) fim procedimento imprimeVetor ( entradas: V, DIM) início para i ← 1 até DIM faça imprima V[i] fim para fim Escreva um procedimento que troque a posição de dois caracteres de uma frase (vetor de caracteres). Seu procedimento deverá se chamar TROCA, e receberá como parâmetros de entrada os índices dos dois caracteres a serem trocados de lugar entre si, além da própria frase que deverá ser devolvida com a troca efetuada. Caso os índices sejam iguais, não faça a troca e imprima uma mensagem na tela. procedimento TROCA (entradas: i, j saídas: vetor) início se i=j então imprima 'Os índices são iguais' senão tmpChar ← vetor[i] vetor[i] ← vetor[j] vetor[j] ← tmpChar fim se fim 4ª questão (2,0 pontos): Escreva uma função para verificar se um valor inteiro NUM está contido em um vetor contendo 300 valores inteiros, podendo haver repetições de valores. A função deve retornar a posição no conjunto da primeira ocorrência do valor procurado. Se o inteiro NUM não for encontrado a função deve retornar o inteiro zero. A função receberá como parâmetros o vetor de números inteiros e o valor NUM. função achaNumero(entradas: vetor, NUM) início i ← 0 resultado ← 0 acabou ← falso enquanto não acabou faça se vetor[i] = NUM então resultado ← i acabou ← verdadeiro fim se se i=300 então acabou ← verdadeiro fim se i ← i + 1 fim enquanto fim 5ª questão (2.0 pontos): Escreva um procedimento de nome NumVogais para determinar quantas vogais existem em um vetor nome, de 50 caracteres, fornecido pelo programa principal. , retornando um número inteiro como valor. O nome é fornecido somente com letras minúsculas. função NumVogais(entradas: vetor) início resultado ← 0 para i ← 1 até 50 faça se (vetor[i] = 'a') OU (vetor[i] = 'e') OU (vetor[i] = 'i') OU (vetor[i] = 'o') OU (vetor[i] = 'u') então resultado ← resultado + 1 fim se fim para fim
Compartilhar