LISTA DE EXERCÍCIOS 0 (GABARITO) CURSO: Bacharelado em Engenharia Elétrica MÓDULO/SEMESTRE/SÉRIE: º TURMA:. DISCIPLINA: Introdução à Programação DOCENTE: Alexandro dos Santos Silva MODALIDADE: Ensino Superior INSTRUÇÕES Para resolução das questões abaixo, será admitido o uso apenas da sintaxe adotada para escrita de programas em C/C++; As imagens exibidas após o enunciado de algumas questões contêm simulações de execução dos programas propostos. Não é necessário que o layout de exibição de mensagens seja seguido rigorosamente da forma como é mostrado nas imagens.. Segundo o IBGE (Instituto Brasileiro de Geografia e Estatística), desde, a expectativa de vida ao nascer do brasileiro superou os anos. A partir da entrada dos anos de nascimento de um determinado casal (marido e esposa), escreva um programa para identificação e exibição de qual, dentre eles (marido ou esposa), será o primeiro a falecer, com base na expectativa de vida ( anos) apurada pelo IBGE em (ou seja, desconsidere a expectativa de vida do país, quando do nascimento do casal), além do próprio ano de falecimento de tal. É exigido que o programa exiba mensagens apropriadas, quando da solicitação dos anos de nascimento do marido e da esposa. Resp.: a identificação do primeiro conjugue a falecer se baseia na comparação dos anos de nascimento de ambos: se o ano de nascimento do marido for anterior ao ano de nascimento da esposa, o marido será o primeiro conjugue a falecer; caso contrário, será a esposa (com exceção do caso em que ambos nascem no mesmo ano, conforme instruções das linhas a ). O ano de falecimento é computado pelo acréscimo de anos ao ano de nascimento do primeiro conjugue a falecer (vide instruções das linhas, e ). int anomar, anoesp, anofalecimento; cout << "Ano Nascimento Marido: "; cin >> anomar; cout << "Ano Nascimento Esposa: "; cin >> anoesp; if (anomar == anoesp) { anofalecimento = anomar + ; cout << "PRIMEIRO A FALACER: AMBOS, EM " << anofalecimento << "\n"; else if (anomar < anoesp) { anofalecimento = anomar + ; cout << "PRIMEIRO A FALACER: MARIDO, EM " << anofalecimento << "\n"; anofalecimento = anoesp + ; cout << "PRIMEIRO A FALACER: ESPOSA, EM " << anofalecimento << "\n";. Considere que um litro de tinta, de determinado fabricante, é suficiente para a pintura de m. Suponha ainda que o proprietário de um imóvel adquira uma determinada quantidade de galões da tinta em questão, para proceder com a pintura de uma parede de um cômodo do imóvel. Escreva um programa para determinar se a quantidade de galões adquiridos é suficiente (ou não) para a pintura completa de tal parede, com a exibição de uma mensagem apropriada, a partir da entrada das dimensões da parede em questão (altura e largura), em metros, além da própria quantidade de galões adquiridos. Quando da escrita do programa, deverão ser observados os seguintes aspectos: Cada galão possui, litros de tinta; A parede será pintada em ambos os lados. Fonte: http://www.brasil.gov.br/governo///expectativa-de-vida-do-brasileiro-aumenta-para--anos (acesso em /0/, às 0h00min.
Resp.: o cálculo da área de parede a ser pintada ocorre na instrução da linha, considerando-se a área dobrada da parede, já que ela será pintada em ambos os lados. Após isso, calcula-se a quantidade de litros de tinta com a quantidade de galões adquiridos (vide instrução da linha ) e a área possível a ser pintada com base no rendimento de cada litro de tinta (vide instrução da linha ). Finalmente, são realizadas comparações entre a área a ser pintada e a área possível a ser pintada para determinar se a quantidade de galões adquiridos é suficiente. int galoes; float litros; // quantidade de litros de tinta; float altura, largura; // dimensões da parede float area; // área da parede a ser pintada float areapossivel; // área que pode ser pintada cout << "QUANTIDADE GALOES:...: "; cin >> galoes; cout << "ALTURA PAREDE (EM METROS).: "; cin >> altura; cout << "LARGURA PAREDE (EM METROS): "; cin >> largura; area = (altura * largura) * ; litros = galoes *.; areapossivel = litros * ; if (areapossivel < area) { cout << "QUANTIDADE DE GALOES INSUFICIENTE!\n"; cout << "QUANTIDADE DE GALOES SUFICIENTE!\n";. Escreva um programa em que identifique e exiba a soma dos quadrados dos primeiros números naturais não nulos, além da média destes quadrados. Sobre a quantidade de números naturais, tal informação deve ser fornecida pelo usuário através de uma operação de entrada de dados. Resp.: aqui cabe uma observação em relação à instrução de declaração da variável de soma dos quadrados dos números naturais na linha ; usa-se um tipo de ponto flutuante para evitar que o resultado da operação de cálculo da média localizada na linha seja um número inteiro. int n, i; double soma = 0; double media; cout << "INDIQUE A QUANTIDADE: "; cin >> n; for (i=; i<=n; i++) { soma = soma + (i * i); media = soma / n; cout << "SOMA QUADRADOS NUMEROS.: " << soma << "\n"; cout << "MEDIA QUADRADOS NUMEROS: " << media << "\n";. Escreve um programa em que, após a entrada de um horário no formato hh mm (horas e minutos), seja exibido o horário imediatamente anterior a este horário. Se for informado, por exemplo, o horário h0min, o horário anterior a este horário será hmin; caso o horário informado, no entanto, seja h00min, o horário anterior ao mesmo será hmin. Certifique-se de que os dados informados sejam validados; caso estejam incorretos, uma mensagem apropriada deverá ser exibida. Observação: considere que o horário deve ser informado no formato de horas (ou seja, um horário entre 00h00min e hmin).
Resp.: o horário anterior padrão em relação a um horário qualquer é obtido pela subtração de (uma) unidade em relação à quantidade de minutos, acompanhado da manutenção da quantidade de horas decorridas desde o início do dia (vide instruções das linhas a ). Há duas exceções à esta regra: o horário de meia-noite (00h00min), conforme mostrado nas instruções das linhas a, e demais horários com quantidade nula de minutos, conforme mostrado nas instruções das linhas a ). int hh, mm; cout << "INFORME O HORARIO (FORMATO HH MM): "; cin >> hh >> mm; if (hh < 0 hh > mm < 0 mm > ) { cout << "HORARIO INFORMADO INVALIDO!\n"; if (hh == 00 && mm == 00) { hh = ; mm = ; else if (mm == 00) { hh = hh - ; mm = ; mm = mm - ; cout << "HORARIO ANTERIOR: " << hh << ":" << mm << "\n";. Uma determinada concessionária de energia elétrica adota um sistema de tarifação em que o valor da tarifa cobrada por quilowatt/hora (KWh) é determinado a partir da classe consumidora na qual se encontra enquadrada a unidade consumidora. Além disso, quando do fechamento da fatura mensal, é acrescido ao valor cobrado pelo consumo mensal em quilowatts/hora (aqui denominado de valor de fornecimento) uma taxa de ICMS (Imposto sobre Circulação de Mercadorias e Serviços), deduzida a partir da aplicação de uma alíquota de 0% sobre o valor de fornecimento. Sobre a relação de classes consumidoras, com seus respectivos valores de tarifa por quilowatt/hora, segue-se abaixo: Classe Consumidora Tarifa por Quilowatt/hora (R$) Classe 0,0 Classe 0,0 Classe,00 Escreva um programa em que é permitido ao usuário fornecer o consumo (em quilowatts/hora) e a classe de consumidora de diversas unidades (um número inteiro entre e ), para exibição dos valores das faturas mensais de consumo. O encerramento do programa se dará quando for informado 0 (zero), quando da entrada do consumo em quilowatts/hora da próxima unidade. Resp.: o cálculo do valor de consumo mensal é realizado com as instruções das linhas a ; o acréscimo de 0% sobre o próprio valor do consumo mensal é obtido com a instrução da linha, por uma multiplicação por,.
0 float kwh; int classe; float fatura; do { cout << "CONSUMO (QUILOWATTS/HORA).: "; cin >> kwh; if (kwh!= 0) { cout << "CLASSE CONSUMO (, OU ): "; cin >> classe; if (classe == ) { fatura = kwh * 0.; else if (classe == ) { fatura = kwh * 0.; fatura = kwh *.0; fatura = fatura *.; cout << "FATURA MENSAL = " << fatura << "\n\n"; while (kwh!= 0);. Escreva um programa de apuração do saldo bancário de uma determinada conta corrente. Inicialmente, deverá ser informado, pelo usuário, o saldo anterior da referida conta, antes da realização das (três) últimas operações de movimentação. Em seguida, caberá também ao usuário informar estas (três) operações realizadas. Para cada operação, deverá ser informado seu código (um caractere) e o montante (valor) envolvido na operação. Sobre o código, adote a tabela abaixo: Operação Saque Depósito Código S D Após a entrada dos dados das (três) últimas operações de movimentação, caberá ao programa calcular e exibir o saldo final. Se for constatado que ele é negativo, uma mensagem apropriada deverá ser exibida. Resp.: além do uso de um bloco de repetição para a entrada das operações de movimentação (instruções entre as linhas e 0), cabe destacar tratamento aqui incluído para a entrada de caracteres tanto em caixa alta (maiúsculos) como em caixa baixa (minúsculos). int i; float saldo, movimento; char operacao;
0 cout << "<-- MOVIMENTACAO CONTA BANCARIA -->\n\n"; cout << "Saldo Inicial: "; cin >> saldo; cout << "\n<------- ULTIMAS OPERACOES ------->\n"; for (i=; i<=; i++) { cout << "\noperacao (S-Saque, D-Deposito): "; cin >> operacao; cout << "Valor Movimento...: "; cin >> movimento; if (operacao == 's' operacao == 'S') { saldo = saldo - movimento; else if (operacao == 'd' operacao == 'D') { saldo = saldo + movimento; cout << "\nsaldo FINAL: " << saldo << "\n"; if (saldo < 0) { cout << "SALDO NEGATIVO APOS MOVIMENTACOES!\n";. Um palíndromo é uma sequência de caracteres que é lida da esquerda para a direita ou da direita para a esquerda. Por exemplo, cada um dos seguintes números inteiros de cinco dígitos é um palíndromo:,, e. Escreva um programa que, a partir da entrada de número inteiro de dígitos, determina se ele é ou não um palíndromo. Se o número não for de cinco dígitos, permita ao usuário inserir um novo valor. Observação: é obrigatório o uso de uma variável inteira para o armazenamento do número de dígitos. Resp.: a extração dos dígitos do número informado é realizada a partir de operações de divisão inteiro e módulo, conforme posto em instruções entre as linhas e. Para que o número informado seja um palíndromo, é suficiente que o º dígito seja idêntico ao º dígito e que o º dígito seja idêntico ao º dígito (aqui adotou-se uma numeração de dígitos da esquerda para a direita). int n; int d, d, d, d, d; cout << "INFORME UM NUMERO INTEIRO DE DIGITOS: "; cin >> n; while (n < 000 n > ) { cout << "INFORME-O NOVAMENTE!"; cin >> n; d = n / 000; d = n / 00 % ; d = n / 0 % ; d = n / % ; d = n % ; if (d == d && d == d) { cout << "O NUMERO INFORMADO EH UM PALINDROMO\n"; cout << "O NUMERO INFORMADO NAO EH UM PALINDROMO\n";
. Escreva um programa que solicite ao usuário a quantidade de alunos matriculados em uma determinada disciplina, bem como, para cada um dos alunos, sua média final na disciplina. Após o término da entrada de dados, deverá ser calculado e exibido o índice de aprovação da disciplina. Considere como aprovado cada aluno que obtiver média final igual ou superior a,00. Para proceder com o cálculo do índice de aprovação da disciplina, adote a fórmula abaixo: Índice Aprovação = Quantidade de Alunos Aprovados Quantidade de Alunos 0.0 Resp.: de forma análoga ao observado na resolução da questão 0, é declarada uma variável de ponto flutuante para armazenamento do quantitativo de aprovações, de modo a evitar que o resultado da operação de cálculo do índice de aprovação localizada na linha seja um número inteiro. int i, qtd; float aprovacoes = 0; float indice, media; cout << "QUANTIDADE DE ALUNO(A)S: "; cin >> qtd; cout << "\n"; for (i=; i<=qtd; i++) { cout << "MEDIA FINAL ALUNO(A) " << i << ": "; cin >> media; if (media >= ) { aprovacoes++; indice = aprovacoes / qtd * 0; cout << "\nindice APROVACAO: " << indice << "%\n";. Uma determinada empresa deseja fazer uma pesquisa de mercado para identificar quais pessoas gostam ou não de um novo produto lançado recentemente no mercado. Para tal, deverá ser fornecida, por cada entrevistado, uma resposta, da seguinte forma: s, se aquela pessoa gostar do produto, ou n, caso contrário. Sabe-se que serão entrevistadas (doze) pessoas. Desenvolva um programa para leituras das respostas destes entrevistados, seguido do cálculo e da exibição do índice de aceitação do produto. Para proceder com o cálculo do índice de aceitação dos produtos, adote a fórmula abaixo: Índice Aceitação = Quantidade de Entrevistados que gostam do Produto 0.0 Resp.: int i; float aceitacoes = 0; float indice; char resp; for (i=; i<=; i++) {
cout << "RESPOSTA PESSOA " << i << "(S/N): "; cin >> resp; if (resp == 's' resp == 'S') { aceitacoes++; indice = aceitacoes / * 0; cout << "\nindice ACEITACAO: " << indice << "%\n";