Baixe o app para aproveitar ainda mais
Prévia do material em texto
Lógica de Programação Iniciado em segunda, 4 Out 2021, 10:45 Estado Finalizada Concluída em segunda, 4 Out 2021, 10:58 Avaliar 9,0 de um máximo de 10,0(90%) Questão 1 Incorreto Imagine que você acaba de criar uma função que indica se o dia será chuvoso ou não, sem necessidade de parâmetros. Como você o empregaria em um comando condicional? Escolha uma opção: a. SE CHUVOSO ENTÃO ... b. SE CHUVOSO() ENTÃO ... c. SE CHUVOSO(VERDADEIRO) ENTÃO ... d. SE CHUVOSO = VERDADEIRO ENTÃO ... e. SE CHUVOSO(“VERDADEIRO”) ENTÃO ... Sua resposta está incorreta. A resposta correta é: SE CHUVOSO() ENTÃO ... https://aula.fael.edu.br/ Questão 2 Correto Um computador está recebendo uma sequência de datas digitadas pelo usuário no formato “DD/MM/AAAA”, ou seja, o mês e o dia com dois dígitos, seguido do ano com quatro dígitos, todos separados por barras. Este mesmo computador guarda, em uma variável global intitulada DATAHOJE, que não precisa ser declarada no algoritmo, também no formato “DD/MM/AAAA”. O programa terá seu �m quando o usuário digitar o seguinte dado: “99/99/9999”. Ao término deste processamento, o computador deverá exibir a quantidade de datas inválidas digitadas. Desenvolva este algoritmo, levando em consideração que nenhum ano será bissexto. Após desenvolver esta solução, compare com as alternativas abaixo, indicando qual delas é a correta. Escolha uma opção: a. Solução (4) ALGORITMO VAR DATADIGITADA: CARACTERE CONTINVALIDO: INTEIRO LEIA DATADIGITADA ENQUANTO DATADIGITADA <> “99/99/9999” FAÇA SE CARACPNUM(COPIA(DATADIGITADA,4,2))>12 OU CARACPNUM(COPIA(DATADIGITADA,4,2))<1 ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 FIMSE SE CARACPNUM(COPIA(DATADIGITADA,1,2))>28 ENTÃO SE COPIA(DATADIGITADA,4,2)=”02” ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 FIMSE FIMSE SE CARACPNUM(COPIA(DATADIGITADA,1,2))>30 E ( COPIA(DATADIGITADA,4,2)=”04” OU COPIA(DATADIGITADA,4,2)=”06” OU COPIA(DATADIGITADA,4,2)=”09” OU COPIA(DATADIGITADA,4,2)=”11” ) ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 FIMSE FIMENQUANTO ESCREVA CONTINVALIDO FIMALGORITMO b. Solução (1) ALGORITMO VAR DATADIGITADA: CARACTERE CONTINVALIDO: INTEIRO LEIA DATADIGITADA ENQUANTO DATADIGITADA <> “99/99/9999” FAÇA Temos aqui um problema típico de laço envolvendo operações string. Para cada iteração deste laço, deveremos perguntar se a data digitada foi válida, ou seja, se o mês está dentro dos limites de 1 a 12, e se os dias de cada mês respeita o intervalo de quantidades possível, que pode ir de 1 a 28, se for fevereiro, de 1 a 30 se for abril, junho, setembro ou novembro, ou se de 1 a 31 nos outros meses. Portanto, a solução 1 é a mais recomendada para resolver este problema, ou seja: ALGORITMO VAR DATADIGITADA: CARACTERE CONTINVALIDO: INTEIRO LEIA DATADIGITADA https://aula.fael.edu.br/ SE CARACPNUM(COPIA(DATADIGITADA,4,2))>12 OU CARACPNUM(COPIA(DATADIGITADA,4,2))<1 ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 SENÃO SE CARACPNUM(COPIA(DATADIGITADA,1,2))>28 ENTÃO SE COPIA(DATADIGITADA,4,2)=”02” ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 SENÃO SE CARACPNUM(COPIA(DATADIGITADA,1,2))>30 ENTÃO SE COPIA(DATADIGITADA,4,2)=”04” OU COPIA(DATADIGITADA,4,2)=”06” OU COPIA(DATADIGITADA,4,2)=”09” OU COPIA(DATADIGITADA,4,2)=”11” ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 FIMSE FIMSE FIMSE FIMSE FIMSE FIMENQUANTO FIMALGORITMO ENQUANTO DATADIGITADA <> “99/99/9999” FAÇA SE CARACPNUM(COPIA(DATADIGITADA,4,2))>12 OU CARACPNUM(COPIA(DATADIGITADA,4,2))<1 ENTÃO CONTINVALIDO ß CONTINVALIDO + 1 SENÃO SE CARACPNUM(COPIA(DATADIGITADA,1,2))>28 ENTÃO SE COPIA(DATADIGITADA,4,2)=”02” ENTÃO CONTINVALIDO ß CONTINVALIDO + 1 SENÃO SE CARACPNUM(COPIA(DATADIGITADA,1,2))>30 ENTÃO SE COPIA(DATADIGITADA,4,2)=”04” OU COPIA(DATADIGITADA,4,2)=”06” OU COPIA(DATADIGITADA,4,2)=”09” OU COPIA(DATADIGITADA,4,2)=”11” ENTÃO CONTINVALIDO ß CONTINVALIDO + 1 FIMSE FIMSE FIMSE FIMSE FIMSE FIMENQUANTO ESCREVA CONTINVALIDO FIMALGORITMO Vamos comentar uma outra solução apresentada (solução 2), porém, que não atende ao que se pede, pois em vez de mostrar a quantidade de datas inválidas, ela contabiliza cada erro, mesmo que dois deles existam em apenas uma data, como o mês e o dia inválido (2 erros), por exemplo. Transcrevemos abaixo a solução 2 na íntegra: ALGORITMO VAR DATADIGITADA: CARACTERE CONTINVALIDO: INTEIRO LEIA DATADIGITADA ENQUANTO DATADIGITADA <> “99/99/9999” FAÇA SE CARACPNUM(COPIA(DATADIGITADA,4,2))>12 OU CARACPNUM(COPIA(DATADIGITADA,4,2))<1 ENTÃO CONTINVALIDO ß CONTINVALIDO + 1 FIMSE SE CARACPNUM(COPIA(DATADIGITADA,1,2))>28 ENTÃO SE COPIA(DATADIGITADA,4,2)=”02” ENTÃO CONTINVALIDO ß CONTINVALIDO + 1 SENÃO SE CARACPNUM(COPIA(DATADIGITADA,1,2))>30 ENTÃO SE COPIA(DATADIGITADA,4,2)=”04” OU COPIA(DATADIGITADA,4,2)=”06” OU COPIA(DATADIGITADA,4,2)=”09” OU COPIA(DATADIGITADA,4,2)=”11” ENTÃO CONTINVALIDO ß CONTINVALIDO + 1 FIMSE FIMSE FIMSE FIMSE FIMENQUANTO ESCREVA CONTINVALIDO FIMALGORITMO Os outros algoritmos apresentados (soluções 3, 4 e 5) são variantes deste, todos podendo apontar mais de um erro para uma mesma data inválida. c. Solução (2) ALGORITMO VAR DATADIGITADA: CARACTERE CONTINVALIDO: INTEIRO https://aula.fael.edu.br/ LEIA DATADIGITADA ENQUANTO DATADIGITADA <> “99/99/9999” FAÇA SE CARACPNUM(COPIA(DATADIGITADA,4,2))>12 OU CARACPNUM(COPIA(DATADIGITADA,4,2))<1 ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 FIMSE SE CARACPNUM(COPIA(DATADIGITADA,1,2))>28 ENTÃO SE COPIA(DATADIGITADA,4,2)=”02” ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 SENÃO SE CARACPNUM(COPIA(DATADIGITADA,1,2))>30 ENTÃO SE COPIA(DATADIGITADA,4,2)=”04” OU COPIA(DATADIGITADA,4,2)=”06” OU COPIA(DATADIGITADA,4,2)=”09” OU COPIA(DATADIGITADA,4,2)=”11” ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 FIMSE FIMSE FIMSE FIMSE FIMENQUANTO ESCREVA CONTINVALIDO FIMALGORITMO d. Solução (5) ALGORITMO VAR DATADIGITADA: CARACTERE CONTINVALIDO: INTEIRO LEIA DATADIGITADA ENQUANTO DATADIGITADA <> “99/99/9999” FAÇA SE CARACPNUM(COPIA(DATADIGITADA,1,2))>28 ENTÃO SE COPIA(DATADIGITADA,4,2)=”02” ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 FIMSE FIMSE SE CARACPNUM(COPIA(DATADIGITADA,1,2))>30 E ( COPIA(DATADIGITADA,4,2)=”04” OU COPIA(DATADIGITADA,4,2)=”06” OU COPIA(DATADIGITADA,4,2)=”09” OU COPIA(DATADIGITADA,4,2)=”11” ) ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 FIMSE SE CARACPNUM(COPIA(DATADIGITADA,4,2))>12 OU CARACPNUM(COPIA(DATADIGITADA,4,2))<1ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 FIMSE FIMENQUANTO https://aula.fael.edu.br/ ESCREVA CONTINVALIDO FIMALGORITMO e. Solução (3) ALGORITMO VAR DATADIGITADA: CARACTERE CONTINVALIDO: INTEIRO LEIA DATADIGITADA ENQUANTO DATADIGITADA <> “99/99/9999” FAÇA SE CARACPNUM(COPIA(DATADIGITADA,4,2))>12 OU CARACPNUM(COPIA(DATADIGITADA,4,2))<1 ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 FIMSE SE CARACPNUM(COPIA(DATADIGITADA,1,2))>28 ENTÃO SE COPIA(DATADIGITADA,4,2)=”02” ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 FIMSE FIMSE SE CARACPNUM(COPIA(DATADIGITADA,1,2))>30 ENTÃO SE COPIA(DATADIGITADA,4,2)=”04” OU COPIA(DATADIGITADA,4,2)=”06” OU COPIA(DATADIGITADA,4,2)=”09” OU COPIA(DATADIGITADA,4,2)=”11” ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 FIMSE FIMSE FIMENQUANTO ESCREVA CONTINVALIDO FIMALGORITMO Sua resposta está correta. A resposta correta é: Solução (1) ALGORITMO VAR DATADIGITADA: CARACTERE CONTINVALIDO: INTEIRO LEIA DATADIGITADA ENQUANTO DATADIGITADA <> “99/99/9999” FAÇA SE CARACPNUM(COPIA(DATADIGITADA,4,2))>12 OU CARACPNUM(COPIA(DATADIGITADA,4,2))<1 ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 SENÃO SE CARACPNUM(COPIA(DATADIGITADA,1,2))>28 ENTÃO SE COPIA(DATADIGITADA,4,2)=”02” ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 SENÃO SE CARACPNUM(COPIA(DATADIGITADA,1,2))>30 ENTÃO SE COPIA(DATADIGITADA,4,2)=”04” OU COPIA(DATADIGITADA,4,2)=”06” OU https://aula.fael.edu.br/ Questão 3 Correto COPIA(DATADIGITADA,4,2)=”09” OU COPIA(DATADIGITADA,4,2)=”11” ENTÃO CONTINVALIDO ← CONTINVALIDO + 1 FIMSE FIMSE FIMSE FIMSE FIMSE FIMENQUANTO FIMALGORITMO Podemos dizer que ao declararmos um vetor ele deve receber ____________ tipo(s) de dados. Assinale a alternativa que melhor preenche esta sentença. Escolha uma opção: a. Apenas um. Por ser homogêneo o vetor só recebe um tipo de dado por vez, ou seja, todos os dados são do mesmo tipo. b. Até quatro. c. Até três. d. Apenas dois. e. Até cinco. Sua resposta está correta. A resposta correta é: Apenas um. https://aula.fael.edu.br/ Questão 4 Correto Analise o algoritmo abaixo e assinale a alternativa que explica qual a sua �nalidade. ALGORITMO VAR VET: VETOR [1..10] DE INTEIRO I, X: INTEIRO FOR I DE 1 ATÉ 10 FAÇA LEIA VET[I] FIMPARA PARA I DE 1 ATÉ 10 FAÇA SE I<10 ENTÃO SE VET[I]>VET[I+1] ENTÃO X ← VET[I+1] VET[I+1] ← VET[I] VET[I] ← X I ← 0 FIMSE FIMSE FIMPARA PARA I DE 1 ATÉ 10 FAÇA ESCREVA VET[I] FIMPARA FIMALGORITMO Escolha uma opção: a. O algoritmo em tela tem por objetivo inverter os elementos do vetor de ponta a ponta. b. Este algoritmo tem por objetivo testar se o vetor está em ordem crescente. c. O algoritmo em tela tem por �nalidade ordenar os elementos do vetor de forma ascendente, do menor para o maior. O algoritmo em tela tem por �nalidade o ordenamento de um vetor de 10 elementos numéricos inteiros de forma ascendente. Para entender perfeitamente a lógica utilizada por este algoritmo, recomendamos que você assista ao vídeo seguinte: Link: (Acesso em 29/10/2017). https://aula.fael.edu.br/ d. A �nalidade deste algoritmo é interpolar números no vetor. e. Trata-se de um algoritmo para soma dos elementos do vetor. Sua resposta está correta. A resposta correta é: O algoritmo em tela tem por �nalidade ordenar os elementos do vetor de forma ascendente, do menor para o maior. https://aula.fael.edu.br/ Questão 5 Correto Indique o resultado que a função TESTE retornará para o programa principal abaixo: FUNCAO TESTE (X: LÓGICO): INTEIRO INICIO RETORNE NÃO X FIMFUNCAO (...) ALGORITMO PRINCIPAL INÍCIO ESCREVA NÃO TESTE(TESTE(NÃO TESTE(FALSO))) FIMALGORITMO Escolha uma opção: a. “FALSO”. b. “VERDADEIRO”. c. VERDADEIRO. Vemos aqui uma sequência de chamadas de uma mesma função, o que exempli�ca um caso de recursividade. Percebemos também que a função TESTE() retorna sempre a negação de seu parâmetro. Para descobrir o retorno que esta sequência de chamadas entregará para o programa principal, vamos a um passo a passo de dentro para fora: 1) NÃO TESTE(TESTE(NÃO TESTE(FALSO))) 2) NÃO TESTE(TESTE(NÃO VERDADEIRO)) 3) NÃO TESTE(TESTE(FALSO)) 4) NÃO TESTE(VERDADEIRO) 5) NÃO FALSO 6) VERDADEIRO É isto que será retornado para o programa. d. 1. e. FALSO. Sua resposta está correta. A resposta correta é: VERDADEIRO. https://aula.fael.edu.br/ Questão 6 Correto Após a execução do algoritmo a seguir, assinale a alternativa que indica o valor �nal da variável POSVIRGULA, considerando que seja digitado o seguinte valor: “R$ 1.200,45”. ALGORITMO VAR VALORALFA: CARACTERE POSVIRGULA, I: INTEIRO LEIA VALORALFA PARA I DE COMPR(VALORALFA) ATÉ 1 PASSO -1 FAÇA SE COPIA(VALORALFA,I,1)=”,” ENTÃO POSVIRGULA ← I SAIA FIMSE FIMPARA ESCREVA POSVIRGULA Escolha uma opção: a. 9. Depurando este algoritmo, chega-se ao valor 9 para a variável POSVIRGULA, que é justamente a posição do dígito “,” da string contida em VALORALFA. b. 1. c. 11. d. 0. e. 10. Sua resposta está correta. A resposta correta é: 9. https://aula.fael.edu.br/ Questão 7 Correto Um algoritmo deve prever a digitação de uma opção de um menu. Dependendo da opção, que pode ser de 1 a 5, uma ação diferente deve ser executada. Assinale a estrutura que apresenta a melhor solução algorítmica possível para essa situação: Escolha uma opção: a. Solução (C) LEIA OPC SE OPC = 1 ENTÃO ... FIMSE SE OPC = 2 ENTÃO ... FIMSE SE OPC = 3 ENTÃO ... FIMSE SE OPC = 4 ENTÃO ... FIMSE SE OPC = 5 ENTÃO ... FIMSE SE OPC <> 5 ENTÃO ... FIMSE O algoritmo mais conveniente para um programa de menu é o seguinte: LEIA OPC SE OPC = 1 ENTÃO ... SENÃO SE OPC = 2 ENTÃO ... FIMSE SE OPC = 3 ENTÃO ... FIMSE SE OPC = 4 ENTÃO ... FIMSE SE OPC = 5 ENTÃO ... SENÃO ... FIMSE A principal vantagem desse formato está na �exibilidade quando da manutenção. Se houver uma opção a mais, basta acrescentar antes da opção 5, de forma sequencial, sem a preocupação em casar as cláusulas SENÃO. b. Solução (D) LEIA OPC SE OPC = 1 ENTÃO ... SENÃO SE OPC = 2 ENTÃO ... FIMSE SE OPC = 3 ENTÃO ... FIMSE SE OPC = 4 ENTÃO ... FIMSE SE OPC = 5 ENTÃO ... SENÃO ... FIMSE https://aula.fael.edu.br/ c. Solução (E) LEIA OPC SE OPC = 1 ENTÃO ... SENÃO SE OPC = 2 ENTÃO ... FIMSE SE OPC = 3 ENTÃO ... FIMSE SE OPC = 4 ENTÃO ... FIMSE SE OPC = 5 ENTÃO ... FIMSE FIMSE d. Solução (B) LEIA OPC SE OPC = 1 ENTÃO ... SENÃO SE OPC = 2 ENTÃO ... SENÃO SE OPC = 3 ENTÃO ... SENÃO SE OPC = 4 ENTÃO ... SENÃOSE OPC = 5 ENTÃO ... SENÃO ... FIMSE FIMSE FIMSE FIMSE FIMSE e. Solução (A) LEIA OPC SE OPC = 1 ENTÃO https://aula.fael.edu.br/ ... SENÃO SE OPC = 2 ENTÃO ... SENÃO SE OPC = 3 ENTÃO ... SENÃO SE OPC = 4 ENTÃO ... SENÃO SE OPC = 5 ENTÃO ... FIMSE FIMSE FIMSE FIMSE FIMSE Sua resposta está correta. A resposta correta é: Solução (C) LEIA OPC SE OPC = 1 ENTÃO ... FIMSE SE OPC = 2 ENTÃO ... FIMSE SE OPC = 3 ENTÃO ... FIMSE SE OPC = 4 ENTÃO ... FIMSE SE OPC = 5 ENTÃO ... FIMSE SE OPC <> 5 ENTÃO ... FIMSE https://aula.fael.edu.br/ Questão 8 Correto Assinale a alternativa que traz o melhor pseudocódigo para um algoritmo que calcula a soma de todos os números pares de 0 a 100: Escolha uma opção: a. Solução (2) VAR I, S: INTEIRO I←1 ENQUANTO I<= 100 FAÇA I ← I + 2 S ← S + I FIMENQUANTO ESCREVA S b. Solução (1) VAR I, S: INTEIRO PARA I DE 2 ATÉ 100 PASSO 2 FAÇA S ← S + I FIMPARA ESCREVA S Embora alguns desses algoritmos estejam corretos, ou seja, devolvem o resultado esperado, o abaixo descrito (solução 1) é o mais objetivo: VAR I, S: INTEIRO PARA I DE 2 ATÉ 100 PASSO 2 FAÇA S ß S + I FIMPARA ESCREVA S O algoritmo a seguir (solução 2) soma os ímpares em vez de os pares, portanto não atende ao requisito: VAR I, S: INTEIRO Iß1 ENQUANTO I<= 100 FAÇA I ß I + 2 S ß S + I FIMENQUANTO ESCREVA S Já este, abaixo (solução 3), soma os pares até 100, exceto o número 2, pois já inicia o loop do laço somando a partir do número 4. VAR I, S: INTEIRO Iß2 ENQUANTO I<= 100 FAÇA I ß I + 2 S ß S + I FIMENQUANTO ESCREVA S c. Solução (3) VAR I, S: INTEIRO I←2 ENQUANTO I<= 100 FAÇA I ← I + 2 S ← S + I FIMENQUANTO ESCREVA S https://aula.fael.edu.br/ d. Solução (5) VAR I, S: INTEIRO PARA I DE 2 ATÉ 100 FAÇA S ← S + I FIMPARA ESCREVA S e. Solução (4) VAR I, S: INTEIRO ENQUANTO I<= 100 FAÇA I ← I + 2 S ← S + I FIMENQUANTO ESCREVA S Sua resposta está correta. A resposta correta é: Solução (1) VAR I, S: INTEIRO PARA I DE 2 ATÉ 100 PASSO 2 FAÇA S ← S + I FIMPARA ESCREVA S https://aula.fael.edu.br/ Questão 9 Correto Analise o algoritmo a seguir e assinale a alternativa que exprime corretamente o posicionamento do ponteiro de leitura do arquivo de dados ilustrado na sequência. ALGORITMO VAR ANTDEPTO: CARACTERE SOMA: REAL ABRIR “FUNCIONARIOS.dat” ALIAS FUNC CAMPOS { MATRIC, CARACTERE; NOME, CARACTERE; SALARIO, REAL; DEPTO; CARACTERE } LEIA MATRIC, NOME, SALARIO, DEPTO ENQUANTO MATRIC <> “9999” FAÇA GRAVE EM ALUNOS LEIA MATRIC, NOME, MEDIA, TELEFONE FIMENQUANTO PULE PARA PRIMEIRO DE FUNC ANTDEPTO←DEPTO ENQUANTO NÃO FDA(“FUNC”) E ANTDEPTO=DEPTO FAÇA SOMA←SOMA+SALARIO FIMENQUANTO ESCREVA SOMA FIMALGORITMO MATRIC NOME SALARIO DEPTO 1 1001 CLÁUDIO BEZERRA ANDRADE 1200,00 RH 2 1002 MARIA CYNTHIA KODA 1800,00 RH 3 1003 ZÉLIA MAURÍCIO ZONTHA 1100,00 RH 4 1004 TEREZA MARIA BARRETO 1650,00 DP 5 1005 PATRÍCIA ZAOK MENDES 1420,00 DP * Escolha uma opção: a. O ponteiro estará no registro 3. A lógica utilizada nesse algoritmo foi bastante simples. Primeiramente ele preencheu o arquivo com 5 registros. Depois ele reposicionou o ponteiro no primeiro registro e começou a ler e acumular cada um até que chegasse ao �nal do arquivo (FDA) ou mudasse de departamento (ANTDEPTO<>DEPTO). Como os dois primeiros funcionários pertenciam ao departamento “RH”, o segundo laço teve seu �m quando o departamento mudou para “DP”, ou seja, no registro 3. b. O ponteiro estará no último registro, no caso, o registro 5. c. O ponteiro estará no registro 1. d. O ponteiro terá atingido a marca de FDA. https://aula.fael.edu.br/ e. O ponteiro estará sobre o registro 4. Sua resposta está correta. A resposta correta é: O ponteiro estará no registro 3. https://aula.fael.edu.br/ Questão 10 Correto Elabore um algoritmo que leia uma frase e conte quantas palavras aparecem no texto. Considere que as palavras são separadas apenas por espaços em branco. Escolha uma opção: a. Solução (2) ALGORITMO VAR TEXTO: CARACTERE I, QPALAVRAS: INTEIRO LEIA TEXTO SE TEXTO<>”” ENTÃO QPALAVRAS←1 FIMSE PARA I DE 1 ATÉ COMPR(TEXTO) FAÇA QPALAVRAS←QPALAVRAS+1 FIMPARA ESCREVA QPALAVRAS FIMALGORITMO b. Solução (1) ALGORITMO VAR TEXTO: CARACTERE I, QPALAVRAS: INTEIRO LEIA TEXTO SE TEXTO<>”” ENTÃO QPALAVRAS←1 FIMSE PARA I DE 1 ATÉ COMPR(TEXTO) FAÇA SE COPIA(TEXTO,I,1)=” ” ENTÃO ENQUANTO COPIA(TEXTO,I,1)=” ” E I<=COMPR(TEXTO) FAÇA QPALAVRAS←QPALAVRAS+1 FIMENQUANTO FIMSE FIMPARA ESCREVA QPALAVRAS FIMALGORITMO c. Solução (3) ALGORITMO VAR TEXTO: CARACTERE I, QPALAVRAS: INTEIRO LEIA TEXTO https://aula.fael.edu.br/ SE TEXTO<>”” ENTÃO QPALAVRAS←1 FIMSE PARA I DE 1 ATÉ COMPR(TEXTO) FAÇA SE COPIA(TEXTO,I,1)=” ” ENTÃO ENQUANTO COPIA(TEXTO,I,1)=” ” E I<=COMPR(TEXTO) FAÇA I←I+1 FIMENQUANTO QPALAVRAS←QPALAVRAS+1 FIMSE FIMPARA ESCREVA QPALAVRAS FIMALGORITMO d. Solução (5) ALGORITMO VAR TEXTO: CARACTERE I, QPALAVRAS: INTEIRO LEIA TEXTO SE TEXTO<>”” ENTÃO QPALAVRAS←1 FIMSE PARA I DE 1 ATÉ COMPR(TEXTO) FAÇA SE COPIA(TEXTO,I,1)=” ” ENTÃO ENQUANTO COPIA(TEXTO,I,1)=” ” E I<=COMPR(TEXTO) FAÇA I←I+1 FIMENQUANTO SE I<=COMPR(TEXTO) ENTÃO QPALAVRAS←QPALAVRAS+1 FIMSE FIMSE FIMPARA ESCREVA QPALAVRAS FIMALGORITMO A solução 5 é a alternativa correta. Mas, como a �zemos? Para contar as palavras de um texto, primeiramente precisamos ler esse texto e começar a varrê-lo do início até o �m. A cada espaço em branco, adiciona-se 1 (um) ao contador de palavras. Correto? ERRADO. Você esqueceu um detalhe importante: e sim houver mais de um espaço em branco separando uma palavra de outra? Neste caso, precisamos de um outro laço que percorra todos os espaços em branco seguidos até a próxima letra (ou caractere diferente de espaço em branco). A solução 5 é a que consegue resolver esse problema corretamente. Perceba que, dentro do laço PARA FAÇA, existe um outro laço ENQUANTO FAÇA, que percorrerá qualquer conjunto de espaços em branco contíguos. Ao terminar esse conjunto de espaços, ele adicionará 1 ao contador QPALAVRAS, considerando que, após um ou mais espaço em branco, virá a próximapalavra. ALGORITMO VAR TEXTO: CARACTERE I, QPALAVRAS: INTEIRO LEIA TEXTO SE TEXTO<>”” ENTÃO QPALAVRAS←1 FIMSE PARA I DE 1 ATÉ COMPR(TEXTO) FAÇA SE COPIA(TEXTO,I,1)=” ” ENTÃO ENQUANTO COPIA(TEXTO,I,1)=” ” E I<=COMPR(TEXTO) FAÇA I←I+1 FIMENQUANTO SE I<=COMPR(TEXTO) ENTÃO QPALAVRAS←QPALAVRAS+1 FIMSE FIMSE FIMPARA ESCREVA QPALAVRAS FIMALGORITMO A solução 4 falha em não inicializar o contador QPALAVRAS, que �cará com o valor zero mesmo quando digitado uma única palavra na variável TEXTO. A falha da solução 3 ocorre quando digitamos uma sequência de espaços em branco dentro da variável TEXTO. Neste caso, o contador QPALAVRAS será incrementado ao término do laço. A solução 2 simplesmente não atende ao requisito, pois conta quantos caracteres foram digitados no TEXTO, e não palavras. Já a solução 1 conta quantos espaços em branco seguidos existem no TEXTO, em vez de palavras. e. Solução (4) ALGORITMO VAR https://aula.fael.edu.br/ TEXTO: CARACTERE I, QPALAVRAS: INTEIRO LEIA TEXTO PARA I DE 1 ATÉ COMPR(TEXTO) FAÇA SE COPIA(TEXTO,I,1)=” ” ENTÃO ENQUANTO COPIA(TEXTO,I,1)=” ” E I<=COMPR(TEXTO) FAÇA I←I+1 FIMENQUANTO SE I<=COMPR(TEXTO) ENTÃO QPALAVRAS←QPALAVRAS+1 FIMSE FIMSE FIMPARA ESCREVA QPALAVRAS FIMALGORITMO Sua resposta está correta. A resposta correta é: Solução (5) ALGORITMO VAR TEXTO: CARACTERE I, QPALAVRAS: INTEIRO LEIA TEXTO SE TEXTO<>”” ENTÃO QPALAVRAS←1 FIMSE PARA I DE 1 ATÉ COMPR(TEXTO) FAÇA SE COPIA(TEXTO,I,1)=” ” ENTÃO ENQUANTO COPIA(TEXTO,I,1)=” ” E I<=COMPR(TEXTO) FAÇA I←I+1 FIMENQUANTO SE I<=COMPR(TEXTO) ENTÃO QPALAVRAS←QPALAVRAS+1 FIMSE FIMSE FIMPARA ESCREVA QPALAVRAS FIMALGORITMO Atividade Anterior Seguir para... https://aula.fael.edu.br/mod/quiz/view.php?id=71599&forceview=1 https://aula.fael.edu.br/
Compartilhar