UNIVERSIDADE FEDERAL DE MINAS GERAIS DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: ALGORITMOS E ESTRUTURAS DE DADOS I (DCC 003) Professor: Mirella M. Moro (mirella@dcc.ufmg.br) ========================================================================= ========================================================================= EXERCÍCIOS DE REVISÃO PARA PROVA 1 ========================================================================= PARTE 1 - ESTRUTURAS DE DECISÃO 1. Faça um programa em C para testar se um dado número inteiro é não-negativo, divisível por 5 e se o mesmo termina em 5. [Verifique a figura 4.16 do livro do Mokarzel & Soma para resposta] 2. O índice de massa corporal (IMC), definido como a relação do peso em kg pela altura em metros elevada ao quadrado, é comumente usado para avaliar o perfil nutricional de uma pessoa. Segundo a Organização Mundial de Saúde, tem-se o quadro abaixo com a classificação: CLASSIFICAÇÃO INTERVALOS DE VARIAÇÃO DO IMC (kg/m^2) Abaixo do peso < 18.5 Peso normal < 25 Sobrepeso >= 25 Obeso >= 30 Faça um programa em C que, dados como entrada o peso em kg e a altura em metros, enquadra o IMC em uma das categorias mencionadas. [Verifique a figura 4.18 do livro do Mokarzel & Soma para resposta] 3. Faça um programa que, ao ler a quantidade de segundos de um dia, apresente o resultado na forma hh:mm:ss. Por exemplo, para 34247s deve ser impresso 09:30:47. Note que deve haver uma mensagem de erro caso a quantidade de segundos seja maior que aqueles correspondentes às 24hs do dia. 4. Faça um programa para indicar se um dado número inteiro e positivo é divisível por 3, por 5 e por 7, mas não simultaneamente pelos três. ========================================================================== PARTE 2 - ESTRUTURAS DE REPETIÇÃO 1. Faça um programa para calcular a soma de N números. Ou seja, o programa deve primeiro ler um valor para N. [Verifique a figura 5.9 do livro do Mokarzel & Soma para resposta] 2. Modifique o programa da Figura 5.7 (Mokarzel & Soma) e, em vez de usar o comando while, use o comando do-while. É possível fazer o mesmo programa usando o comando for? Por quê? 3. Faça um programa para calcular o fatorial de um número N (ou seja, N!). 4. Palíndromo é um número tal que, invertendo-se a ordem de seus dígitos, o número obtido é igual ao original. Escrever um programa para ler vários números inteiros e verificar se cada um é palíndromo. O programa deve parar de executar quando o usuário entrar o valor 0. Exemplo: Entre com o numero 15 O numero NAO eh palindromo Entre com o numero 101 O numero EH palindromo Entre com o numero 1001 O numero EH palindromo Entre com o numero 0 Press any key... ========================================================================== PARTE 3 - PONTEIROS e FUNÇÕES 1. Seja o seguinte trecho de programa: int i=3,j=5; int *p, *q; p = &i; q = &j; Qual é o valor das seguintes expressões ? a) p == &i b) *p - *q c) 3*-*p+7 4. Escreva uma função HM que converta minutos em horas-e-minutos. A função recebe um inteiro MINS e os endereços de duas variáveis inteiras H e M e atribui valores a essas variáveis de modo que M seja menor que 60 e que 60*H + M seja igual a MINS. Escreva também uma função main que use a função HM.