Programação. Folha Prática 4. Lab. 4. Departamento de Informática Universidade da Beira Interior Portugal 2015. Copyright 2010 All rights reserved.

Documentos relacionados
Programação. Folha Prática 5. Lab. 5. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

Programação. Folha Prática 4. Lab. 4. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

Desenho de algoritmos

Instruções de repetição

Instruções condicionais

Instruções de repetição

Programação. Folha Prática 6. Lab. 6. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

Programação. Folha Prática 5. Lab. 5. Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved.

Exercícios (if/ if else/ if elseif else)

PHP Estruturas de repetição

Estruturas de Repetição

Exercícios: comandos de repetição

Lista 4 Introdução à Programação Entregar até 07/05/2012

Comandos de Desvio 1

Controle de Fluxo Comandos de repetição: while e do-while

Exercícios: Comandos de Repetição

LISTA DE EXERCÍCIOS PARTE 1 (ESTRUTURAS SEQUENCIAIS)

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

AC05 Lista de Exercícios sobre Sequências, Condições e Repetição Em C++

Capítulo 5: Repetições

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

Elabore um algoritmo na Linguagem de Programação do VisuAlg usando a estrutura de repetição PARA que satisfaça as seguintes condições:

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução

1. Escreva um programa em Pascal que leia três valores inteiros e mostre-os em ordem crescente. Utilize seleção encadeada.

17. Faça um programa que escreve na tela a mesma frase 10vezes. E depois faça com que o programa mostre o número de cada linha no início e no final

PROGRAMAÇÃO DE COMPUTADORES I - BCC Lista de Exercícios do Módulo 1 - Preparação para a Prova 1

Actividade de enriquecimento. Algoritmo da raiz quadrada

5. ESTRUTURA DE CONTROLE TOMADA DE DECISÕES

FESP FACULDADE DE ENGENHARIA SÃO PAULO DISCIPLINA BP1: PROCESSAMENTO DE DADOS

INF1005: Programação I. Algoritmos e Pseudocódigo

Algoritmos & Programação

Nº horas ESTRATÉGIAS RECURSOS AVALIAÇÃO

a) 2 b) 3 c) 4 d) 5 e) 6

Exercícios de Fixação Aulas 05 e 06

Prova Final de Matemática

XXXII Olimpíada Brasileira de Matemática. GABARITO Segunda Fase

Lista de Exercícios - Programação I (Pascal/ Python)

Exercícios: Vetores e Matrizes

Algoritmia e Programação

2ª Lista de Exercícios

Prova Final de Matemática

Switch switch switch switch switch variável_inteira valor1 valor2 switch variável_inteira case case break switch case default default switch switch

Ficheiros binários 1. Ficheiros binários

Estrutura de Seleção

1 Cálculo do valor à vista

- no assunto colocar [ALG] PRIMEIRA PARTE

Versão 2 COTAÇÕES pontos pontos pontos pontos pontos pontos

Exercícios: Recursão

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação. Declaração de Rendimentos para a Segurança Social

CAMPUS DE GUARATINGUETÁ FACULDADE DE ENGENHARIA. Introdução à Programação em C. Algoritmos: Estruturas de Repetição. Prof. Dr. Galeno.J.

Matemática A COTAÇÕES GRUPO I GRUPO II. Teste Intermédio. Versão 2. Duração do Teste: 90 minutos º Ano de Escolaridade. 5...

Lista de Exercícios 04 Estruturas de Dados Homogêneas - Vetores

Introdução à Algoritmos. Aula 11

Microsoft Excel Ficha prática n. 8

Introdução à Programação. Funções e Procedimentos. Prof. José Honorato F. Nunes honoratonunes@gmail.com

Metodologias de Programação

Apostila de EXERCÍCIOS e Respostas Algoritmos e Programação

SInOA - Sistema de Informação da Ordem dos Advogados

PROVA RESOLVIDA DA PETROBRAS 2011 ADMINISTRADOR JUNIOR. Professor Joselias

Cartão Millennium bcp Free Refeição

MC Teste de Mesa e Comandos Repetitivos

MATEMÁTICA PROVA 3º BIMESTRE

Sistemas Numéricos. Tiago Alves de Oliveira

Unidade 10 Análise combinatória. Introdução Princípio Fundamental da contagem Fatorial

Aula 6 Medidas de Tendência Central

Programação em C/C++ Anexo III

Exame de Equivalência à Frequência do Ensino Secundário

OBSERVAÇÕES: EXERCÍCIOS

Versão 2. Identifica claramente, na folha de respostas, a versão do teste (1 ou 2) a que respondes.

Área Reservada do Beneficiário da ADM Informação em Tempo Real.

1.2. Grandezas Fundamentais e Sistemas de Unidades

Microsoft Excel Ficha prática n. 1

COMANDOS DE CONTROLE DE FLUXO. Luís Charneca.

GERAÇÃO DE CURVAS DE NÍVEL

1. Números. MatemáticaI Gestão ESTG/IPB Departamento de Matemática. Números inteiros. Nota: No Brasil costuma usar-se: bilhão para o número

Teste de Funções por Cobertura do Grafo de Fluxo de Controle

PROVA DE AFERIÇÃO DO ENSINO BÁSICO 2011 A PREENCHER PELO ALUNO

A primeira coisa ao ensinar o teorema de Pitágoras é estudar o triângulo retângulo e suas partes. Desta forma:

Nome: N.º: Turma: Classificação: Professor: Enc. Educação:

Prova de Aferição de Matemática

Sistema de Recuperação da Senha nos Sistemas Informáticos da FEUP

Correção dos Exercícios

GGI026 - Árvore balanceada

Medidas de Tendência Central. Introdução Média Aritmética Moda Mediana

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

IFRN\CAMPUS IPANGUAÇU DISCIPLINA: INFORMÁTICA BÁSICA PROFESSOR: CLAYTON MACIEL COSTA 2ª AVALIAÇÃO DE INFORMÁTICA BÁSICA TRABALHO FINAL EXCEL 2010

Linguagem C. Programação Estruturada. Estruturas de Controle. Prof. Luis Nícolas de Amorim Trigo

Solução da prova da 2a fase OBMEP 2014 Nível 2. Questão 1. item a)

QUESTÕES FREQUENTES PRESCRIÇÃO DESMATERIALIZADA RECEITA SEM PAPEL. E-medicar Versão 3.0

05. COMUNICAÇÃO VISUAL EXTERNA

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

NOVA REGRA DE AVALIAÇÃO UVA

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

Introdução a programação Comandos de repetição

Pagamento de complemento de salário-maternidade, considerando que este valor deve ser deduzido da guia de INSS, pois é pago pelo INSS.

Manual do KBruch. Sebastian Stein Anne-Marie Mahfouf Tradução: Marcus Gama

ANEXO EXCEL 2007 AVAÇADO

5. O Mapa de Karnaugh

Transcrição:

Programação Folha Prática 4 Lab. 4 Departamento de Informática Universidade da Beira Interior Portugal 2015 Copyright 2010 All rights reserved.

LAB. 4 4ª semana CONCEÇÃO DE ALGORITMOS E ESTRUTURAS DE CONTROLO DE FLUXO 1. Revisão de conceitos fundamentais de algoritmos 2. Objectivos 3. Exercícios

Lab. 4 DESENHO E CONSTRUÇÃO DE ALGORITMOS 1. Revisão 1. Problema à Algoritmo à Programa 2. Desenho de algoritmos usando pseudocódigo e fluxogramas 3. Estruturas de controlo de fluxo: SEQUÊNCIA, SELEÇÃO e REPETIÇÃO 4. Estruturas de controlo de fluxo em C SEQUÊNCIA: A sequência em C é um bloco de um ou mais instruções entre e que são executadas sequencialmente. SELEÇÃO: SELEÇÃO COM 1 VIA if (condicao) /* conjunto de instruções a executar se a condição avaliada for verdadeira*/ SELEÇÃO COM 2 VIAS if (condicao) /* conjunto de instruções a executar se a condição avaliada for verdadeira*/ else /* conjunto de instruções a executar se a condição avaliada for falsa*/ SELEÇÃO COM N VIAS switch (expressao) case constante_1: /* conjunto de instruções a executar se expressao == constante1 */ break;...

case constante_n: /* conjunto de instruções a executar se expressão == constante_n */ break; default: /* conjunto de instruções a executar se expressao!= de todas as constantes com que foi comparada */ NOTAS: 1 A utilização do break é opcional. Se não for usado, serão executadas todas as instruções a seguir ao primeiro case em que expressão == constante_i e até encontrar o primeiro break. 2 A expressão testada no switch deverá retornar obrigatoriamente um inteiro ou um carácter. Caso contrário, o switch não poderá ser usado e deverá ser substituído por if s encadeados, como se ilustra de seguida: if (expressao == constante_1) /* conjunto de instruções a executar se expressao ==constante_1 */ else if (expressao == constante_2) /* conjunto de instruções a executar se expressao == constante_2 */ else... if (expressao == contante_n) /* conjunto de instruções a executar se expressao == constante_ n */ else /* default */ /* conjunto de instruções a executar se expressao!= de todas as constantes com que foi comparada */ REPETIÇÃO: Componentes associadas a qualquer repetição: inicialização, teste da condição de paragem e, ainda, actualização.

REPETIÇÃO COM TESTE À CABEÇA /* INICIALIZAÇÃO */ while (condicao) /* TESTE DE PARAGEM */ /* conjunto de instruções a executar enquanto a condicao for verdadeira */ /* ACTUALIZAÇÃO */ REPETIÇÃO COM TESTE À CAUDA /* INICIALIZAÇÃO */ do /* conjunto de instruções a executar enquanto a condicao for verdadeira */ /* ACTUALIZAÇÃO */ while (condicao); /* TESTE DE PARAGEM */ REPETIÇÃO COM Nº PRÉ-DEFINIDO DE CICLOS 2. Objectivos /* for (INICIALIZAÇÃO; TESTE DE PARAGEM; ACTUALIZAÇÃO) */ for (inicializacao; condicao; pos-instrucao) /* conjunto de instruções a executar enquanto a condicao for verdadeira */ No final deste módulo prático, o aluno deve ser capaz de: 1. Ter a noção da importância de desenhar um algoritmo eficiente para obter um bom programa. 2. Escrever algoritmos (em pseudo-código ou fluxogramas) e os respectivos programas em C para os problemas propostos. 3. Escrever programas com instruções condicionais e de repetição. 4. Utilizar as estruturas de controlo de fluxo em pseudo-código (ou fluxogramas) e em C: a. bloco b. if, if-else, switch c. while, do-while, for

3. Exercícios Exercício 4.1 (Par ou ímpar) Desenhe um algoritmo que determine se um dado número inteiro é par ou ímpar. Escreva depois o respetivo programa em C. Exercício 4.2 (classificador de produtos) Escreva um algoritmo e depois um programa em C que identifique e classifique um produto num universo de 3 produtos possíveis, medindo a concentração de 5 elementos constituintes, A, B e C, de acordo com as concentrações dadas na seguinte tabela: A B C Produto 1 0.1 0.5 0.6 Produto 2 0.1 0.3 0.7 Produto 3 0.2 0.5 0.7 Produto 4 0.2 0.3 0.1 Produto 5 0.2 0.5 0.6 Se as concentrações fornecidas pelo utilizador não corresponderem a nenhum produto da tabela, o classificador deverá escrever: Produto desconhecido ; caso contrário, deverá escrever o número do produto identificado. Exercício 4.3 (Cálculo de indicadores corporais versão 1.0) O índice de massa corporal (IMC) relaciona a altura com o peso duma pessoa através da fórmula IMC=peso/altura 2 ; a unidade de peso é o kg (quilograma) e a unidade de altura é o m (metro). A tabela de classificação é a seguinte: Categoria IMC<19 Magreza 19<= IMC<=25 Normal 25< IMC <=30 Excesso de peso 30< IMC >=40 Obesidade > 40 Obesidade Mórbida Escreva um algoritmo e depois programa em C que calcule os seguintes indicadores corporais de uma pessoa:

IMC Categoria Peso mínimo (PMI=19 altura 2 ) para que uma pessoal pertença à categoria normal. Peso máximo (PMA=25 altura 2 ) para que uma pessoal pertença à categoria normal. Exemplo de funcionamento do programa: Input: Output: Introduza altura (m): 1.68 Introduza peso (kg): 55 IMC=19.49 CATEGORIA=Normal PMI=53.63 PMA=70.56 Exercício 4.4 (soma de N números) Desenhe um algoritmo que resolva o seguinte problema. Pretende-se determinar a soma de N números. A aplicação deverá dar erro se N for inferior a 2 e voltar a pedir o seu valor até ser inserido um valor válido. Escreva depois o respetivo programa em C. Exercício 4.5 (produto dos números inteiros entre N 1 e N 2 ) Desenhe um algoritmo que resolva o seguinte problema. Pretende-se determinar o produto dos números inteiros entre N1 e N2. A aplicação deverá dar erro se N2 for inferior ou igual a N1 e voltar a pedir estes valores. Escreva depois o respetivo programa. Exercício 4.6 (máximo e mínimo de N números) Desenhe um algoritmo que resolva o seguinte problema. Pretende-se determinar o maior e o menor número duma sequência de N números inteiros dados pelo utilizador. O valor de N deverá ser superior ou igual a 2. Se não for o seu valor deverá ser pedido novamente até ser introduzido um valor válido. A introdução de números deverá terminar quando forem inseridos N números. Nessa altura a aplicação deverá mostrar o valor máximo e mínimo de entre os valores introduzidos. No final, escreva depois o respetivo programa. Exercício 4.7 (máximo e mínimo) Desenhe um algoritmo que resolva o seguinte problema. Pretende-se determinar o maior e o menor número duma sequência de números inteiros dados pelo utilizador. A introdução de números deverá

terminar quando for inserido o valor zero e nessa altura a aplicação deverá mostrar o valor máximo e mínimo de entre os valores introduzidos. Deverão ser introduzidos pelos menos dois números. No final, escreva depois o respetivo programa. Exercício 4.8 (média aritmética de N números) Desenhe um algoritmo que resolva o seguinte problema. Pretende-se determinar a média aritmética duma sequência de N números inteiros. A introdução de números deverá terminar quando forem inseridos N números e nessa altura a aplicação deverá mostrar o valor da média. O valor de N deverá ser no mínimo dois caso contrário deverá voltar a ser pedido. No final, escreva depois o respetivo programa. Exercício 4.9 (média aritmética) Desenhe um algoritmo que resolva o seguinte problema. Pretende-se determinar a média aritmética duma sequência de números inteiros. A introdução de números deverá terminar quando for inserido o valor zero. Nessa altura a aplicação deverá mostrar o valor da média. Deverão ter sido introduzidos pelo menos dois números, caso contrário deverá ser mostrado um erro. Exercício 4.10 (soma dos dígitos dum número inteiro) Desenhe um algoritmo que resolva o seguinte problema. Pretende-se determinar a soma dos dígitos dum dado número inteiro positivo. No final, escreva o respetivo programa em C. Exercício 4.11 (factorial dum número) Desenhe um algoritmo que resolva o seguinte problema. Pretende-se determinar o valor do factorial de um número inteiro. O factorial calcula-se da seguinte forma: Factorial (0) = 1 Factorial (n) = n * Factorial (n-1) No final, escreva o respetivo programa em C. Exercício 4.12 (sequência de Fibonacci) Desenhe um algoritmo que resolva o seguinte problema. Pretende-se escrever os primeiros N números da sequência de Fibonacci. A sequência de Fibonacci é a seguinte: 1, 1, 2, 3, 5, 8, 13, 21, (a seguir ao primeiro 1 cada número na sequência é a soma dos dois números anteriores). No final, escreva o respetivo programa em C.

Exercício 4.13 (conversor binário-decimal) Desenhe um algoritmo que resolva o seguinte problema. Pretende-se converter um número binário em número decimal. Por exemplo: 100102 = 1 * 2^4 + 0 * 2^3 + 0 * 2^2 + 1 * 2^1 + 0 * 2^0=1810 No final, escreva o respetivo programa em C. Exercício 4.14 (conversor decimal-binário) Desenhe um algoritmo que resolva o seguinte problema. Pretende-se converter um número decimal em número binário. No final, escreva o respetivo programa em C. Exercício 4.15 (números primos) Desenhe um algoritmo que resolva o seguinte problema. Pretende-se determinar se um determinado número inteiro positivo é primo. Um número é primo se só for divisível por ele próprio e pela unidade. Por exemplo: 13. Não deverão ser aceites números negativos. Nesse caso a aplicação deverá pedir números até que seja introduzido um número válido. No final, escreva o respetivo programa em C. Exercício 4.16 (números capicuas) Desenhe um algoritmo que resolva o seguinte problema. Pretende-se determinar se um determinado número inteiro é capicua. Um número é capícua se for o mesmo número lido da esquerda para a direita ou da direita para a esquerda. Por exemplo: 202. No final, escreva o respetivo programa em C. Exercício 4.17 (Tabuada) Escreva um programa em C que apresente no ecrã a tabuada de N. Para isso deverá pedir ao utilizador o valor de N que deverá ser obrigatoriamente maior ou igual 1 e menor ou igual a 10. A tabuada apresentada é o exemplo para N = 2. 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18 2 x 10 = 20

Exercício 4.18 (Quadrado de números) Escreva um programa em C que apresente no ecrã um quadrado de números como o que se segue. Para isso deverá pedir ao utilizador o valor de N que deverá ser obrigatoriamente maior ou igual 2. O quadrado apresentado é o exemplo para N = 5. 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9 Exercício 4.19 (Árvore de Natal) Escreva um programa em C que apresente no ecrã uma árvore de Natal como a que se segue. Para isso deverá pedir ao utilizador o valor de B que representa o número de asteriscos (*) na base da árvore. O valor de B deverá ser obrigatoriamente ímpar e maior ou igual 3. Deverá pedir também o valor de L e A que representam, respectivamente a largura e a altura do tronco da árvore. A largura do tronco L deverá ser pelo menos 1 asterisco, deverá ser obrigatoriamente impar e não poderá ultrapassar metade de B, isto é metade do número de asteriscos da base. A altura do tronco A deverá ser pelo menos 2 asteriscos e também não deverá ultrapassar metade de B. Em caso de valores inválidos o programa deverá apresentar um erro e voltar a pedi-los. O exemplo da árvore em baixo tem uma base com B = 13 asteriscos, um tronco com largura L = 3 asteriscos e altura A = 4 asteriscos. * *** ***** ******* ********* *********** ************* *** *** *** *** Exercício 4.20 (Pirâmide de números) Escreva um programa em C que apresente num ecrã uma pirâmide de números como a que se segue. Para isso deverá pedir ao utilizador o valor de N que deverá ser obrigatoriamente maior ou igual 2. A pirâmide apresentada é o exemplo para N = 5.

1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1 Exercício 4.21 (simulador de custos para um telemóvel versão 1.0) Desenhe um algoritmo que resolva o seguinte problema. Uma rede de telefones móveis pretende desenvolver uma aplicação que simule a facturação mensal dos seus clientes consoante o Plano Tarifário que possuem e o número de minutos gastos em conversação durante o mês. Serão tidos em consideração os minutos de conversação para a mesma rede, para outras redes móveis nacionais e para a rede fixa nacional. As chamadas internacionais não serão incluídas na simulação. As chamadas são facturadas ao minuto. Este operador móvel tem dois tipos de Planos Tarifários à disposição do cliente: Cartão Recarregável Plano Personalizado de Preços Nos caso do plano tarifário ser um Cartão Recarregável o cliente escolhe um dos tarifários disponíveis e o simulador deverá indicar-lhe a estimativa para o seu gasto mensal em euros. O cálculo deverá ter em conta os minutos de conversação para a mesma rede, para outras redes móveis nacionais e para a rede fixa nacional. Existem três tarifários disponíveis: 1. MYNET indicado para quem faz habitualmente chamadas apenas para a sua rede. 2. MYFRIENDS solução indicada para quem realiza chamadas para a mesma rede e para as outras redes móveis nacionais. 3. MYJOB adequado a quem realiza chamadas para a sua rede e para a rede fixa nacional. Os detalhes de cada tarifário para os cartões recarregáveis estão descritos na Tabela 1. Tarifário Mesma Rede Outras Redes Móveis Rede Fixa Nacional 1 0.05 0.50 0.50 2 0.10 0.10 0.50 3 0.10 0.50 0.10 Tabela 1 Preços por minuto de conversação dos tarifários para cartões recarregáveis. Os Planos Personalizados de Preços permitem escolher consoante a utilização que o cliente prevê fazer do seu telemóvel, quanto pretende pagar pela assinatura mensal e pelas chamadas que efectuar. Existem três planos à escolha do cliente:

1. BASE - indicado para quem quer estar sempre contactável mas não tem necessidade de fazer muitas chamadas. 2. SUPER - solução indicada para quem realiza chamadas de longa duração para a mesma rede. 3. EXECUTIVE - adequado a quem realiza muitas chamadas para qualquer rede telefónica nacional. Os detalhes de cada tarifário para os Planos Personalizado de Preços estão na Tabela 2. Tarifário Assinatura Mesma Rede Outras Redes Móveis Rede Fixa Nacional 1 10 0.10 0.30 0.30 2 15 0.05 0.20 0.20 3 25 0.05 0.05 0.05 Tabela 2 Preços por minuto de conversação dos tarifários para o Plano Personalizado de Preços. A aplicação deverá calcular quanto um cliente pagará por mês dados: 1. O Plano Tarifário que escolher ( 1 ou 2 ). Se a escolha for diferente de 1 ou 2 a aplicação deverá dizer Opcao invalida e terminar. 2. O tarifário escolhido (1,2 ou 3). Se a escolha for diferente de 1, 2 ou 3 a aplicação deverá dizer Opcao invalida e terminar. 3. Minutos de conversação para a mesma rede. 4. Minutos de conversação para outras redes móveis nacionais. 5. Minutos de conversação para a rede fixa nacional. Exercício 4.22 (Cálculo de indicadores corporais versão 1.1) O índice de massa corporal (IMC) relaciona a altura e o peso duma pessoa de forma a proporcionar indicadores do seu nível físico. Utilizando o valor do IMC e a tabela classificativa abaixo é possível calcular não só a categoria em que determinada pessoa se enquadra mas também indicadores interessantes do peso ideal, isto é, o peso mínimo e máximo para permanecer à categoria de peso considerada normal. Categoria IMC<19 Magreza 19<= IMC<=25 Normal 25< IMC <=30 Excesso de peso 30< IMC <=40 Obesidade > 40 Obesidade Mórbida Escreva um programa em C com o seguinte funcionamento: 1. O programa deverá ter três opções disponíveis e começar por pedir ao utilizador o valor da

mesma: 0- Sair 1- Cálculo do IMC e da respectiva categoria 2- Cálculo do peso e mínimo (PMI) e peso máximo (PMA) para que uma pessoal pertença à categoria normal. 2. No caso da opção ser inválida (diferente de 0, 1 ou 2) o programa deverá mostrar a mensagem de erro ERRO: opção inválida e voltar a pedir a opção. 3. Se a opção escolhida for 0 o programa deverá terminar. 4. Se a opção escolhida for 1 o programa deverá calcular o IMC usando o peso e a altura da pessoa e depois usar este valor para calcular a respectiva categoria: IMC = peso/altura 2 Categoria (calculada usando o IMC e a tabela acima) Finalmente deverá apresentar ao utilizador os valores do IMC e da categoria calculados. 5. Se a opção escolhida for 2 o programa deverá calcular o peso mínimo (PMI) e o peso máximo (PMA) para que uma pessoa pertença à categoria normal. Deverá utilizar para isso a altura da pessoa. PMI = 19 altura 2 PMA = 25 altura 2 Finalmente deverá apresentar ao utilizador os valores do PMI e do PMA calculados. 6. Se a opção for 1 ou 2 e após efectuar, respectivamente, as tarefas descritas nos pontos 4 e 5, o programa deverá voltar a pedir a opção para que o seu funcionamento possa continuar (caso sejam inseridas as opções 1 ou 2 novamente) ou terminar (caso seja inserida a opção 0 ). Exercício 4.23 (Simulador de custos para um telemóvel versão 1.1) Uma rede de telefones móveis pretende desenvolver uma aplicação que simule a facturação mensal dos seus clientes consoante o Plano Tarifário que possuem e o número de minutos gastos em conversão durante o mês. Serão tidos em consideração os minutos de conversação para a mesma rede, para outras redes móveis nacionais e para a rede fixa nacional. As chamadas internacionais não serão incluídas na simulação. As chamadas são facturadas ao minuto. Este operador móvel tem dois tipos de Planos Tarifários à disposição do cliente: Cartão Recarregável Plano Personalizado de Preços Nos caso do plano tarifário ser um Cartão Recarregável o cliente escolhe um dos tarifários disponíveis e o simulador deverá indicar-lhe a estimativa para o seu gasto mensal em euros. O cálculo deverá ter em conta os minutos de conversação para a mesma rede, para outras redes móveis nacionais e para a rede fixa nacional. Existem três tarifários disponíveis:

4. MYNET indicado para quem faz habitualmente chamadas apenas para a sua rede. 5. MYFRIENDS solução indicada para quem realiza chamadas para a mesma rede e para as outras redes móveis nacionais. 6. MYJOB adequado a quem realiza chamadas para a sua rede e para a rede fixa nacional. Os detalhes de cada tarifário para os cartões recarregáveis estão descritos na Tabela 1. Tarifário Mesma Rede Outras Redes Móveis Rede Fixa Nacional 1 0.05 0.50 0.50 2 0.10 0.10 0.50 3 0.10 0.50 0.10 Tabela 1 Preços por minuto de conversação dos tarifários para cartões recarregáveis. Os Planos Personalizados de Preços permitem escolher consoante a utilização que o cliente prevê fazer do seu telemóvel, quanto pretende pagar pela assinatura mensal e pelas chamadas que efectuar. Existem três planos à escolha do cliente: 4. BASE - indicado para quem quer estar sempre contactável mas não tem necessidade de fazer muitas chamadas. 5. SUPER - solução indicada para quem realiza chamadas de longa duração para a mesma rede. 6. EXECUTIVE - adequado a quem realiza muitas chamadas para qualquer rede telefónica nacional. Os detalhes de cada tarifário para os Planos Personalizado de Preços estão na Tabela 2. Tarifário Assinatura Mesma Rede Outras Redes Móveis Rede Fixa Nacional 1 10 0.10 0.30 0.30 2 15 0.05 0.20 0.20 3 25 0.05 0.05 0.05 Tabela 2 Preços por minuto de conversação dos tarifários para cartões recarregáveis. Faça um programa em C que permita calcular quanto um cliente pagará por mês dados: 6. O Plano Tarifário que escolher (1 ou 2). Se a escolha for diferente de 1 ou 2 o programa deverá dizer Opcao invalida e voltar a pedir a opção. 7. O tarifário escolhido (1,2 ou 3). Se a escolha for diferente de 1, 2 ou 3 o programa deverá dizer Tarifario invalido e voltar a pedir o tarifário. 8. Minutos de conversação para a mesma rede.

9. Minutos de conversação para outras redes móveis nacionais. 10. Minutos de conversação para a rede fixa nacional. Nota: O número de minutos deverão ser maiores ou iguais a zero, caso contrário, o programa deverá apresentar um erro e voltar a pedir o seu valor. Exemplo de funcionamento do programa: Input: Introduza o plano tarifario (1 ou 2) 1 Introduza o tarifario escolhido (1, 2 ou 3) 3 Introduza os minutos de conversacao mesma rede 60 Introduza os minutos de conversacao outras redes moveis 0 Introduza os minutos de conversacao rede fixa 30 Output: Total gasto com o telemovel = 9.000000 euros Exemplo de funcionamento do programa: Input: Introduza o plano tarifario (1 ou 2) 3 Output: Opcao invalida