J. EXERCÍCIOS SOBRE MODULARIZAÇÃO 77. Faça uma função que recebe um número inteiro por parâmetro e retorna verdadeiro se ele for par e falso se for ímpar. 78. Escreva um programa que leia o raio de um círculo e faça duas funções: uma função chamada area que calcula e retorna a área do círculo e outra função chamada perimetro que calcula e retorna o perímetro do círculo. Área = PI * r 2 ; Perímetro = PI * 2 * r; 79. Escreva um programa para ler uma temperatura em graus Fahrenheit. Faça uma função chamada celsius para calcular e retornar o valor correspondente em graus Celsius. Fórmula: C = ((F-32)/9)*5 80. Escreva um programa para ler as notas das duas avaliações de um aluno no semestre. Faça um procedimento que receba as duas notas por parâmetro e calcule e escreva a média semestral e a mensagem PARABÉNS! Você foi aprovado! somente se o aluno foi aprovado (considere 6.0 a média mínima para aprovação). 8. Faça um programa que leia a altura e o sexo (codificado da seguinte forma: :feminino 2:masculino) de uma pessoa. Depois faça uma função chamada pesoideal que receba a altura e o sexo via parâmetro e que calcule e retorne seu peso ideal, utilizando as seguintes fórmulas: - para homens : (72.7 * h) 58 - para mulheres : (62. * h) 44.7 Observação: Altura = h (na fórmula acima). 82. Escreva um programa para ler o número de lados de um polígono regular e a medida do lado (em cm). Faça um procedimento que receba como parâmetro o número de lados e a medida do lado deste polígono e calcule e imprima o seguinte: - Se o número de lados for igual a 3, escrever TRIÂNGULO e o valor do seu perímetro. - Se o número de lados for igual a 4, escrever QUADRADO e o valor da sua área. - Se o número de lados for igual a 5, escrever PENTÁGONO. Observação: Considere que o usuário só informará os valores 3, 4 ou 5.
83. Faça um programa para calcular o Fatorial de um número. Para o cálculo do fatorial, sabemos que N! depende de (N-)!; este por sua vez depende de (N-2)!; e, assim por diante, até que N seja, quando então tem-se que fatorial de é igual a mesmo. Utilize uma função que recebe como parâmetro de entrada o número a ser calculado o fatorial, do tipo inteiro, e retorna o fatorial deste número, também do tipo inteiro. 84. Escreva uma função que lê um caractere digitado pelo usuário e retorna este caractere somente se ele for igual a 'S' ou 'N'. Se o caractere não for nem 'S' nem 'N', a função imprime a mensagem 'Caractere inválido. Digite novamente'. Use esta função em um programa que fica lendo do usuário um número qualquer e imprime este número ao cubo na tela. O programa deve ficar lendo os números até o usuário responder 'N' à pergunta se ele deseja continuar ou não. 85. Escreva uma função que recebe 2 números inteiros n e n2 como entrada e retorna a soma de todos os números inteiros contidos no intervalo [n,n2]. Use esta função em um programa que lê n e n2 do usuário e imprime a soma. 86. Faça um programa de calculadora simples com as seguintes operações possíveis: adição, subtração, multiplicação e divisão. O programa inicia apresentando ao usuário um menu de opções como mostrado abaixo: ********************************************************************** * Calculadora. Opções possíveis: *. Adição * 2. Subtração * 3. Multiplicação * 4. Divisão * 5. Sair do programa ********************************************************************* Entre com sua opcao: Crie uma função que apresenta o menu inicial acima e retorna a opção do usuário para o programa principal. Esta opção é então analisada e o programa principal chama as funções de adição, subtração, multiplicação e divisão conforme a opção do usuário. Se a opção for inválida, informe ao usuário e peça a ele para entrar com uma opção válida. Após a execução da operação o programa volta a apresentar o menu inicial até que o usuário encerre o programa com a opção 5. 87. Escreva um programa que lê um valor inteiro (maior do que e menor ou igual a 0) e exibe a tabuada (até 0) de multiplicação do número lido. Você deverá escrever as seguintes funções e procedimentos: - Function LeNumero(n,n2:integer):integer;
Lê um número inteiro no intervalo especificado (n, n2) e o retorna. Cada vez que for digitado um número inválido (fora do intervalo especificado) a função deve exibir a mensagem "Número inválido. Digite novamente!" - Procedure Tabuada( n:integer ); Recebe como parâmetro um número inteiro e exibe na tela a tabuada de multiplicação até 0 do número lido. Exemplo: número lido 5 5 x = 5 5 x 2 = 0... 5 x 0 = 50 88. Escreva um programa composto de uma função Max e o programa principal como segue: a) A função Max recebe como parâmetros de entrada dois números inteiros e retorna o maior. Se forem iguais retorna qualquer um deles; b) O programa principal lê 4 séries de 4 números a,b,c e d. Para cada série lida imprime o maior dos quatro números usando a função Max. 89. Escreva um programa que leia uma cadeia de caracteres qualquer do usuário (tamanho máximo 60 caracteres) e imprima esta cadeia de caracteres centralizada no meio da tela (em modo texto a tela tem 80 colunas). Para a impressão da mensagem centralizada, escreva um procedimento que recebe como parâmetro a cadeia de caracteres e imprime esta cadeia de caracteres centralizada na tela. 90. Elaborar um algoritmo que imprima o fatorial dos números entre 0 e 0, conforme mostrado abaixo (apresentar uma solução utilizando funções SEM passagem de parâmetro). NÚMERO =============== 0 2 3 4 5 6 7 8 9 0 FATORIAL ================= 2 6 24 20 720 5040 40320 362880 3628800 9. Elaborar um algoritmo que imprima o fatorial dos números entre 0 e 0, conforme mostrado no exercício 90 (apresentar uma solução utilizando procedimento COM passagem de parâmetro).
92. A Série de FIBONACCI é construída com base nas seguintes regras: F(n) = n para n=0 ou n= F(n) = F(n-) + F(n-2) para n> Elabore um algoritmo para gerar os 2 primeiros termos da série de Fibonacci conforme mostrado abaixo: POSIÇÃO : 2 3 4 5 6 7 8 9 0 2 TERMO : 2 3 5 8 3 2 34 55 89 44 Obs: Utilize o conceito de FUNÇÃO, utilizando um vetor para armazenar os valores da série. 93. Considere a seguinte situação: Dois vetores A = {7, 3, 9,, 5} e B = {6, 2, 0, 8, 4} Mostrar na tela os dois vetores sem passar pela função de classificação Utilizar uma função que classifique em ordem crescente os dois vetores A e B Construir um vetor C que ao final do processamento contenha os dados de A e B mergeados, também classificado, só que em ordem decrescente. Elabore um algoritmo que utilize funções para ler os dados, executar o processamento e mostrar na tela os dados referentes aos vetores A, B e C. 94. Elabore um algoritmo que leia os valores de duas matrizes A e B e execute a multiplicação de A por B resultando C. Utilize a lógica simplificada: Função CARGA_MATRIZES_A_E_B; Função MULTIPLICA com passagem das matrizes como parâmetros Função IMPRESSÃO (imprime matrizes A, B e C). Matriz A Matriz B 0 2 0-3 5 0 2 0 4-3 0-2 95. Elabore um algoritmo que realize os cálculos do algoritmo conhecido como MÓDULO, utilizado na determinação dos dígitos de verificação do CPF. Esquema Exemplo : CPF 5 0 6 8 2 4 3 3 5 0 6 8 2 4 3 3 MULTIPLICADORES 2 3 4 5 6 7 8 9 9 8 7 6 5 4 3 2 DV SOMA =.5 + 2.0 + 3.6 + 4.8 + 5. + 6.2 + 7.4 + 8.3 + 9.3 = 5
DV = RESTO DA DIVISÃO DE SOMA POR = 5 MOD = 8 DV2 SOMA =.3 + 2.3 + 3.4 + 4.2 + 5. + 6.8 + 7.6 + 8.0 + 9.5 = 69 DV2 = RESTO DA DIVISÃO DE SOMA POR = 69 MOD = 4 Assim o CPF será 506.82.433-84. Utilize a lógica simplificada: Função LER_CPF - armazene os dados em um vetor Função DV Função DV2 Função RESULTADO Obs: Montar um loop para que o programa possa, ao final da primeira execução, determinar o DV de outros CPF. 96. Faca um script que contenha uma função volume(raio) que receba como argumento o raio de uma esfera e retorne o seu volume. 97. Faca um script que contenha uma função volume(objeto,dim) que receba como argumentos o nome do objeto, que pode ser "cubo" ou "esfera" e a sua dimensão característica dim, que é a aresta ou o raio, dependendo do objeto, e devolva o seu volume. 98. Faca um script que contenha uma função iguais(a,b) que retorne true caso os argumentos a e b sejam iguais e false caso contrario.