Baixe o app para aproveitar ainda mais
Prévia do material em texto
__________________________________________________________________________________________________ __________________________________________________________________________________________________ Caderno de Atividades do Aluno Respostas Comentadas Algoritmos e Linguagem de Programação __________________________________________________________________________________________________ Caderno de Atividades 1 Enunciado da Questão Objetiva “Quando um padrão de comportamento é seguido, um evento ocorre.” A sequência 1, 2, 4, 8, 16, 32 ... é gerada por um padrão de comportamento. Considere o texto e avalie as afirmações a seguir: I. A sequência de números começa com 1 e para se gerar qualquer um dos outros termos da série, basta somar 10 ao número imediatamente anterior. II. A sequencia de números começa com 1 e para se gerar qualquer um dos outros termos da série, basta multiplicar por 2 o número imediatamente anterior. III. A sequencia de números começa com 0 e para se gerar qualquer um dos outros termos da série, basta somar 5 ao número imediatamente anterior. É correto o que se afirma em: Alternativas ( ) A I, apenas. ( ) B II, apenas. ( ) C III, apenas. ( ) D I e II, apenas. ( ) E I e III, apenas. Atividade Objetiva __________________________________________________________________________________________________ Justifique a escolha da sua resposta. __________________________________________________________________________________________________ Elaborar algoritmos em PortuCê capazes de solucionar os seguintes problemas: A) Escreva um algoritmo em PortuCê que “leia dois números e diga qual deles é o menor”. B) Escreva um algoritmo em PortuCê que “calcule e imprima a quantidade de azulejos iguais necessários para construir uma parede. Os dados de entrada são: dimensões do azulejo (comprimento e largura) e dimensões da parede (comprimento e largura)”. C) Escreva um algoritmo em PortuCê que “leia o valor de uma conta de luz e, se o valor for maior que R$ 50,00 apresente a mensagem: “Você está gastando muito”. Caso contrário exiba a mensagem: “Seu gasto foi normal, parabéns””. Resposta Atividade Dissertativa __________________________________________________________________________________________________ Atividade Objetiva Alternativa Correta: B Comentários: Ao seguir a explicação da alternativa II, obtem-se exatamente a sequência fornecida: 1, 2, 4, 8, 16, 32 ..., portanto ela é a correta! Alternativas Incorretas Alternativa A - Ao seguir a explicação da alternativa I, obtem-se a sequência: 1, 11, 21, 31 , … - diferente da sequência apresentada. Alternativa C - Ao seguir a explicação da alternativa III, obtem-se a sequência: 0, 5, 10, 15 , … - diferente da sequência apresentada. Alternativa D - Ao seguir a explicação das alternativas I e II, percebe-se que apenas a sequência dois é a correta, portanto esta alternativa está incorreta. Alternativa E - Ao seguir a explicação das alternativas I e III, percebe-se que nenhuma delas fornece a sequência dada como resultado, portanto esta alternativa está incorreta. Atividade Dissertativa Estes exercícios contribuirão para a fixação de conceitos e uma maior compreensão sobre Algoritmos em PortuCê. Para alcançar sucesso nesta atividade vocês deverão ler todas as questões e em seguida tentar escrever os algoritmos solicitados. Abaixo estão as respostas comentadas dos três exercícios usando a metodologia para Construção de Algoritmos: A) • ler e entender • variáveis de entrada = o numero01 e o número02 • variáveis de saída = o menor valor • variáveis auxiliares = não tem Respostas Comentadas __________________________________________________________________________________________________ • declarar todas as variáveis real numero01, numero02, menor; • inicializar as variáveis imprima (“Digite o valor 01: “); leia(“%f”, &numero01); imprima (“Digite o valor 02: “); leia(“%f”, &numero02); • calcular as saídas se (numero01 > numero02) menor=numero02; senão se (numero02<numero01) menor=numero02; • imprimir os resultados imprima(“O menor numero é %f ,menor); • montar o algoritmo /*ExercA.c: Lê dois números e calcula o menor valor o valor convertido para reais*/ real numero01, numero02, menor; principal () { imprima (“Digite o valor 01: “); leia(“%f”, &numero01); imprima (“Digite o valor 02: “); leia(“%f”, &numero02); se(numero01>numero02 menor = numero01; senão menor=numero02; imprima(“O menor numero é: %f“, menor); imprima(“Fim do programa”); } B) • ler e entender • variáveis de entrada - comprimento do azulejo e largura do azulejo - comprimento da parede e largura da parede • variáveis de saída __________________________________________________________________________________________________ - quantidade de azulejos • variáveis auxiliares - compaux, largaux • declarar todas as variáveis real compazul, largazul, comppar, largpar, qtdazul, compaux, largaux; inicializar as variáveis imprima (“Digite o comprimento do azulejo: “); leia(“%f”, &compazul); imprima (“Digite a largura do azulejo: “); leia(“%f”, &largazul); imprima (“Digite o comprimento da parede: “); leia(“%f”, &comppar); imprima (“Digite a largura da parede: “); leia(“%f”, &largpar); • calcular as saídas compaux=comppar/compazul; largaux=largpar/largazul; qtdazul= compaux*largaux; • imprimir os resultados imprima(“A quantidade de azulejos é: %f”, qtdazul); • montar o algoritmo /*ExercB.c: Le o comprimento e a largura de um azulejo, Le o comprimento e a largura de uma parede e calcula quantos são azulejos são necessários para cobri-la*/ real compazul, largazul, comppar, largpar, qtdazul, compaux, largaux; principal () { imprima (“Digite o comprimento do azulejo: “); leia(“%f”, &compazul); imprima (“Digite a largura do azulejo: “); leia(“%f”, &largazul); imprima (“Digite o comprimento da parede: “); leia(“%f”, &comppar); imprima (“Digite a largura da parede: “); leia(“%f”, &largpar); compaux=comppar/compazul; largaux=largpar/largazul; __________________________________________________________________________________________________ qtdazul= compaux*largaux; imprima(“A quantidadede azulejos é: %f”, qtdazul); imprima(“Fim do programa”); } C) • ler e entender • variáveis de entrada - valor da conta de luz • variáveis de saída - não tem • variáveis auxiliares - não tem • declarar todas as variáveis real conta; • inicializar as variáveis imprima (“Digite o valor da sua conta de luz: “); leia(“%f”, &conta); • calcular as saídas e imprimir os resultados se (conta>50) imprima(“Você está gastando muito.”) senão imprima (“Seu gasto foi normal, parabéns”.) • montar o algoritmo /*ExercC.c: Le o valor da consta de luz e verifica se você gasta muito ou na medida*/ real conta; principal () { imprima (“Digite o valor da sua conta: “); leia(“%f”, &conta); se (conta>50) imprima(“Você está gastando muito.”; senão imprima (“Seu gasto foi normal, parabéns”.;) imprima(“Fim do programa”); } __________________________________________________________________________________________________ Caderno de Atividades 2 Enunciado da Questão Objetiva Analise os algoritmos A e B (abaixo) e escolha a alternative que expresse o que será impresso na tela ao serem executados: A) inteiro A, B; principal() { A=20; B=40; imprima (B); B=15; imprima (A,B); } B) inteiro X, Y, Z; principal() { X=1; Y=2; Z= Y-X; imprima (Z); X=10; Y=X+Z; imprima (X,Y,Z); } Atividade Objetiva __________________________________________________________________________________________________ Alternativas ( ) A A - 20; 15 e B - 10; 11; 1 ( ) B A - 20; 40 e B - 1; 2; 1 ( ) C A - 20; 15 e B - 1; 10; 11 ( ) D A - 40; 20; 15 e B - 1; 10; 11; 1 ( ) E A – 40 e B - 1 Justifique a escolha da sua resposta. __________________________________________________________________________________________________ 1. Traduzir o algoritmo em PortuCê para a linguagem C: /* Contagem.c: este programa conta os tipos de produtos de uma loja e divulga os números obtidos e o produto com maior quantidade.*/ inteiro produto, maiorquant, produto01, produto02, produto03; principal() { imprima (“digite o tipo de produto (1,2 ou 3): ”); leia (“%i”,&produto); produto01=produto02=produto03=0; enquanto (produto != -1) { ++prods; se (produto == 1) ++produto01; senão se (produto == 2) ++ produto02; senão se (produto == 3) ++ produto03; imprima (“digite tipo de produto (1,2 ou 3): ”); leia (“%i”,&produto); } se ((produto01 > produto02) e (produto01 > produto03)) maiorquant = 1; senão se ((produto02 > produto01) e (produto02 > produto03)) maiorquant = 2; senão maiorquant = 3; imprima (“o produto de maior quantidade foi: %i ”, maiorquant); imprima (“quantidade de produtos 01: %i ”, produto01); imprima (“quantidade de produtos 02: %i ”, produto02); imprima (“quantidade de produtos 01: %i ”, produto03); } Atividade Dissertativa __________________________________________________________________________________________________ Resposta __________________________________________________________________________________________________ Atividade Objetiva Alternativa Correta: D Comentários: Correta! Seguiu o algoritmo corretamente, mostrando todas as soluções para as impressões de A e B. Alternativas incorretas: Alternativa A - Incorreta, pois as duas soluções esqueceram-se de mostrar a primeira impressão dos algoritmos. Alternativa B - Incorreta, pois as duas soluções mostraram a impressão apenas dos os dados de entrada. Alternativa C - Incorreta, pois a solução para A não imprimiu o primeiro valor e para B não imprimiu o ultimo valor. Alternativa E - Incorreta, pois a solução para os algoritmos A e B mostrou apenas a primeira impressão de cada um. Atividade Dissertativa Este exercício contribuirá para a fixação de conceitos e uma maior compreensão sobre programação C. Para alcançar sucesso nesta atividade vocês deverão ler a questão e em seguida tentar escrever o programa em C. Abaixo está a resposta comentada do exercício: /* Contagem.c: este programa conta os tipos de produtos de uma loja e divulga os números obtidos e o produto com maior quantidade.*/ #include <stdio.h> #include <conio.h> int produto, maiorquant, produto01, produto02, produto03; int main() Respostas Comentadas __________________________________________________________________________________________________ { printf(“\nDigite digite o tipo de produto (1,2 ou 3)-1 finaliza: ”); scanf (“%i”,&produto); produto01=produto02=produto03=0; while (produto != -1) { if (produto == 1) ++produto01; else if (produto == 2) ++produto02; else if (produto == 3) ++produto03; printf(“\nnDigite digite o tipo de produto (1,2 ou 3)-1 finaliza: ”); scanf (“%i”,&produto); } if ((produto01 > produto02) && (produto01 > produto03)) maiorquant = 1; else if ((produto02 > produto01) && (produto02 > produto03)) maiorqunt = 2; else maiorquant = 3; printf(“\nO produto de maior quantidade foi: %i ”, maiorquant); printf(“\nQuantidade de produtos 01: %i ”, produto01); printf(“\nQuantidade de produtos 02: %i ”, produto02); printf(“\nQuantidade de produtos 03: %i ”, produto03); printf(“\nFim do programa”); getch(); return 0; } ATENÇÃO: para estas soluções, partir do princípio de que a lógica para solução dos problemas também pode variar. Portanto, os programas podem diferir em alguns comandos ou ordem. __________________________________________________________________________________________________ Caderno de Atividades 3 Enunciado da Questão Objetiva Analise o algoritmo e escolha a alternativa que expressa o que será impresso na tela ao ser executado: caracter nome[45]; inteiro, idade; principal() { Nome=”Ana Maria”; Idade=20; imprima (“Nome: “, “%s, nome); imprima (“Idade: “, “%i”, idade); } Alternativas ( ) A Ana Maria e Idade ( ) B Nome: Ana Maria e 20 ( ) C Nome: Ana Maria e Idade: 20 ( ) D Ana Maria e Idade: 20 ( ) E Nome Ana Maria e idade Atividade Objetiva __________________________________________________________________________________________________Justifique a escolha da sua resposta. __________________________________________________________________________________________________ Uma conceituada empresa está interessada em saber qual foi o maior valor de venda dentre as suas filiais durante um determinado mês e quantas venderam mais que R$ 100.000,00. Faça um programa em C que leia os valores de vendas das filiais daquele mês (o último será o valor -1) e imprima os resultados desejados pela empresa. Abaixo a tabela com os valores vendidos pelas filiais no mês: Nome Filiais Valor de Venda Filial A R$ 150.000,00 Filial B R$ 85.000,00 Filial C R$ 250.000,00 Filial D R$ 67.000,00 Filial E R$ 188.000,00 Filial X R$ -1,00 Resposta Atividade Dissertativa __________________________________________________________________________________________________ Atividade Objetiva Alternativa Correta: C Comentários: Impressão de acordo com o algoritmo. Alternativas Incorretas Alternativa A - Incorreta, pois Idade é o nome da variável e não o seu valor. Alternativa B - Incorreta, pois faltou “Idade: “ antes do valor da variável Idade. Alternativa D - Incorreta, pois faltou “Nome: “ antes do valor da variável Nome. Alternativa E - Incorreta, pois faltou “: “ depois de “Nome” e a impressão de “idade” não consta no algoritmo. Atividade Dissertativa De acordo com a tabela dos valores de vendas fornecida, o resultado será: maior valor de venda = R$ 250.000,00 e 3 filiais venderam mais que R$ 100.000,00. • Definir dados de entrada: valores vendidos pelas filiais; • Definir dados de saída: Maior valor vendido e Quantidade de filiais que venderam mais que R$ 100.000,00; • Declarar Variáveis: valor venda, maior valor e quantidade - todas do tipo int; • Inicializar variáveis: entrar com valorvenda; maiorvalor=0 e quantidade=0; • Fazer cálculos da saída: o Encontrar o maior valor se (valorvenda > maiorvalor) maiorvalor = valorvenda o Encontrar a quantidade de filiais que venderam mais que R$ 100.000 se (valorvenda > 100000 quantidade=quantidade + 1 • Impressão dos resultados • A montagem do programa ficará assim: Respostas Comentadas __________________________________________________________________________________________________ /* Este programa lê um conjunto de valores de vendas, seleciona o maior deles e conta quantos são maiores que R$ 100.000,00 */ #include <stdio.h> #include <conio.h> int valorvenda, maiorvalor=0, quantidade=0; int main() { printf(“\Valores de Vendas pelas Filiais\n”); while (1) { printf(“\nDigite o valor da venda (-1 finaliza): ”); scanf(“%i”,&valorvenda); if (valorvenda = -1) break; if (valorvenda > maiorvalor) { maiorvalor = valorvenda; } if (valorvenda > 100000) { ++quantidade; } } if (maiorvalor !=0) { printf(“\nO maior valor de vendas foi foi: %i ”, maiorvalor); printf(“\nFiliais que venderam mais que R$ 100.000,00: %i”, quantidade); } else printf (“\nNenhum valor valido foi fornecido”); printf(“\nFim do programa”); getch(); return 0; } __________________________________________________________________________________________________ Caderno de Atividades 4 Enunciado da Questão Objetiva O “Teste de Mesa” consiste na execução de todas as instruções do algoritmo/programa a partir de conjuntos de valores iniciais. Dado o algoritmo e a tabela (abaixo) com valores especificados para as variáveis A e B, faça um teste de mesa e escolha a alterantiva que completa corretamente os valores das variáveis C e Resposta da tabela: inteiro A, B, C; caracter Resposta[1]; principal() { leia ("%i", &A); leia ("%i", &B); C=(A*B)+10; se (C<=0); Resposta="X"; senão se (C<= 100) Resposta="Y"; senão Resposta="Z"; imprima (C, Resposta); } Quadro para o teste de mesa: Variáveis A B C Resposta 3 2 150 3 7 -1 -3 5 50 3 Atividade Objetiva __________________________________________________________________________________________________ Alternativas ( ) A Valores de C: 16, 460, 3, -5, 160 e Valores de Resposta: Y, Z, Y, X, Z. ( ) B Valores de C: 460, 460, -5, 3, 160 e Valores de Resposta: Z, Y, X, X, X. ( ) C Valores de C: 3, -5, 160 e Valores de Resposta: Y, X, Z. ( ) D Valores de C: 16, 460, 3, -5, 160 e Valores de Resposta: Y, Z, Y. ( ) E Valores de C: 16, 460, 3 e Valores de Resposta: Y, Z, Y, X, Z. Justifique a escolha da sua resposta. __________________________________________________________________________________________________ A) Escreva um algoritmo em PortuCê que determine quanto será gasto para encher o tanque de um carro, sabendo-se que o preço da gasolina é de R$ 2.69 e o preço do álcool é de R$ 1.79. O usuário fornecerá os seguintes dados: Tipo de carro (as opções como tipo de carro são a letra “G” – gasolina ou a letra “A” – álcool; rejeitar valores inválidos) e Capacidade do tanque em litros. B) Faça o teste de mesa do programa para os seguintes valores de capacidade de tanques: 40 litros; 47 litros 50 litros e 55 litros. Resposta Atividade Dissertativa __________________________________________________________________________________________________ Atividade Objetiva Alternativa Correta: A Comentários: Correta! Ao seguir a execução do algoritmo, obtem-se exatamente estes valores para C e Resposta no teste de mesa. Alternativas Incorretas Alternativa B – Incorreta, pois os valores estão incorretos para as variáveis C e Resposta. Alternativa C – Incorreta, pois faltam valores para a variável C e Resposta. Alternativa D – Incorreta, pois faltam valores para a variável Resposta. Alternativa E – Incorreta, pois faltam valores para a variável C. Atividade Dissertativa Este exercício contribuirá para a fixação de conceitos e uma maior compreensão sobre Algoritmos e a Linguagem de Programação C. Para alcançar sucesso nesta atividade os alunos deverão ler atentamente todos os itens da atividade e em seguida tentar escrever o algoritmo solicitado, o programa em C e o teste de mesa para os valores solicitados. Abaixo estão as respostas comentadas dos itens da Atividade: A) • ler e entender • variáveis de entrada - tipodo combustível que o carro usa - capacidade do tanque do carro • variáveis de saída - valor gasto para encher o tanque do carro • variáveis auxiliares Respostas Comentadas __________________________________________________________________________________________________ - não tem • declarar todas as variáveis char tipo; inteiro tanque; real preco; • inicializar as variáveis imprima (“Digite o tipo de combustivel do carro G=gasolina ou A=alcool “); leia(“%c”, tipo); imprima (“Digite a capacidade do tanque de combustivel: “); leia(“%i”, &tanque); • calcular as saídas e imprimir os resultados se (tipo == ‘G’ ou tipo == ‘g’) { preco = tanque * 2.60; imprima (“Voce gastara R$ %f para encher o tanque de gasolina “, preco); } senão se (tipo == ‘A’ ou tipo == ‘a’) { preco = tanque * 1.80; imprima (“Voce gastara R$ %f para encher o tanque de alcool “, preco); } senão imprima(“Tipo de combustivel invalido”); Montar o algoritmo: /*Exerc5A.c: Le o tipo de combustível, a capacidade do tanque e calcula o valor a ser pago para encher o tanque*/ char tipo; inteiro tanque; real preco; principal () { imprima (“Digite o tipo de combustivel do carro G=gasolina ou A=alcool “); __________________________________________________________________________________________________ leia(“%c”, tipo); imprima (“Digite a capacidade do tanque de combustivel: “); leia(“%i”, &tanque); se (tipo == ‘G’ ou tipo == ‘g’) { preco = tanque * 2.60; imprima (“Voce gastara R$ %f para encher o tanque de gasolina “, preco); } senão se (tipo == ‘A’ ou tipo == ‘a’) { preco = tanque * 1.80; imprima (“Voce gastara R$ %f para encher o tanque de alcool “, preco); } senão imprima(“Tipo de combustivel invalido”); imprima(“Fim do programa”); } A) Elaborar o Teste de Mesa: Tipo Tanque Preco Saída Tela A 40 71,60 Você gastará R$ 71,60 para encher o tanque de álcool A 47 84,13 Você gastará R$ 84,13 para encher o tanque de álcool A 50 89,50 Você gastará R$ 89,50 para encher o tanque de álcool A 55 98,45 Você gastará R$ 98,45 para encher o tanque de álcool G 40 107,60 Você gastará R$ 107,60 para encher o tanque de gasolina G 47 126,43 Você gastará R$ 126,43 para encher o tanque de gasolina G 50 134,50 Você gastará R$ 134,50 para encher o tanque de gasolina G 55 147,95 Você gastará R$ 147,95 para encher o tanque de gasolina Elaborado por: profª Clausia Mara Antoneli
Compartilhar