Universidade do Estado de Santa Catarina (UDESC) Prof. Rui Tramontin Disciplina: Algoritmos (AGT) Curso: Ciência da Computação Lista de Exercícios 8 Algoritmos em Pseudocódigo / Funções e Procedimentos 1) Faça um algoritmo que leia os lados de um triângulo e em seguida chame uma função que retorna 0 se o triângulo é eqüilátero, 1 se é isósceles e 2 se for escaleno. De acordo com o retorno, mostrar esta informação. 2) Escreva um algoritmo que lê um número não determinado de valores m, todos inteiros e positivos, um valor de cada vez, e, se m<10 utiliza uma função que calcula o fatorial de m, e caso contrário, utiliza uma função para obter o número de divisores de m. O algoritmo deve imprimir cada m lido e seu fatorial ou seu número de divisores com uma mensagem adequada. Neste caso, temos um programa principal e dois subalgoritmos. 3) Escreva um algoritmo que gera e escreve os 10 primeiros números perfeitos. Um número é dito perfeito se ele é igual à metade da soma de todos os seus divisores. Ex: 6 é um número perfeito pois seus divisores são: 1+2+3+6 = 12. Escreva e use uma função que, dado um número, retorne Verdadeiro ou Falso caso o número seja ou não perfeito. 4) Faça um algoritmo que gera uma tabela com os números de 1 a 10 e mostra o seu quadrado, cubo, fatorial, número de divisores e uma mensagem dizendo se o número é primo ou não. Escreva uma função para cada um desses cálculos. Exemplo: Número 1 2 3 4 Quadrado 1 4 9 16 Cubo 1 8 27 64 Fatorial 1 2 6 24 Divisores 1 2 2 3 Primo Não Sim Sim Não 5) Faça um algoritmo que implemente uma calculadora simples (4 operações aritméticas básicas: adição, subtração, multiplicação e divisão). Para cada operação elabore uma função correspondente. As 4 funções devem ter dois parâmetros de tipo de dados inteiro. Além disso, as funções devem retornar o valor resultante da aplicação da operação. O tipo de dado de retorno de cada função depende do resultado de cada operação. O programa deve solicitar os operandos e os operadores e calcular/mostrar o resultado vindo da função desejada. Apresentar um menu para o usuário informar qual tipo de operação deseja. O menu e a entrada de dados devem ser implementados em procedimentos separados. Observação: Tratar a operação de divisão por zero. 6) Implemente novamente o algoritmo para ordenação de um vetor (usando o método da bolha ou da seleção), mas agora fazendo o uso de um procedimento que serve para trocar os valores de duas variáveis (passadas por referência). 7) Escreva um algoritmo que calcula o N-ésimo termo da série de Fibonacci, onde N é informado pelo usuário, e o cálculo é feito por uma função recursiva. 8) Escrever um algoritmo, utilizando um subalgoritmo recursivo, para calcular a soma dos 'n' primeiros inteiros positivos, sendo 'n' um valor fornecido pelo usuário. 9) Escrever um algoritmo, utilizando um subalgoritmo recursivo, que eleve um número inteiro qualquer a uma potência. Devem ser fornecidos o número e a potência. 10) O fatorial primo ou primorial de um número primo positivo é o produto de todos os primos positivos menores do que ou iguais a ele: Por exemplo, o fatorial primo de 7 é 2 × 3 × 5 × 7 = 210. Escreva um algoritmo que calcule o fatorial primo de um número informado pelo usuário. O algoritmo deve verificar se a entrada do usuário é um número primo positivo. Observação: devem ser feitas duas funções, uma para calcular o fatorial primo, e outra para verificar se um dado número é ou não primo. 11) Implemente uma nova versão da função para o cálculo do primorial, agora de maneira recursiva.