Universidade da Beira Interior Departamento de Informática (6619, 11543, 11552) Programação I Ficha prática 5 Ano letivo 2014-15 Exercícios 1. Escreva um programa que peça ao utilizador um número inteiro n entre 1 e 100 inclusive. O programa deve mostrar no ecrã o resultado de: n X (2i + i2 ) i=1 Este valor deve ser calculado usando uma função com o seguinte protótipo: int somatorio(int n); que devolve o resultado pretendido. 2. Escreva um programa que peça ao utilizador um número inteiro n entre 1 e 100 inclusive. A leitura dos dados e respetiva validação devem ser feitas numa função com o seguinte protótipo: int leDados(); que devolve o inteiro lido. O programa deve mostrar no ecrã os múltiplos de 3 desde n até 121, usando para isso uma função com o seguinte protótipo: void multiplos3ate121(int n); Ambas as funções referidas deverão ser chamadas a partir da função main(). 3. Escreva um programa que peça ao utilizador um caráter n que poderá corresponder somente a uma letra (maiúscula ou minúscula). A leitura dos dados e respetiva validação devem ser feitas numa função com o seguinte protótipo: char leDados(); que devolve o caráter lido. Se a letra introduzida é minúscula, o programa deve mostrar no ecrã a correspondente letra maiúscula e vice-versa, usando para isso uma função com o seguinte protótipo: 1 char mudaCapitalizacao(char n); que devolve o caráter alterado. Ambas as funções referidas deverão ser chamadas a partir da função main() que deverá mostrar o resultado pretendido. 4. Modifique o programa anterior de forma a que sejam mostradas no ecrã todas as letras desde A até à letra introduzida, inclusive, usando para isso uma função com o seguinte protótipo: void mostra_de_A_ate_n(char n); As letras mostradas devem ser todas maiúsculas independentemente da letra introduzida ser ou não maiúscula. 5. Escreva um programa que peça ao utilizador dois números reais m e n entre -100 e 100, inclusive. Faça a leitura e validação de cada número à vez, usando uma função com o protótipo float leNum(); que deve pedir para o utilizador introduzir um número no intervalo pretendido e devolver o número lido, após a validação do intervalo. Depois, através duma função com o seguinte protótipo: int menu(); deve mostrar o seguinte menu e devolver a opção (validada) escolhida pelo utilizador: 1-Mostra o maior dos números lidos. 2-Mostra o menor dos números lidos. 3-Mostra a média dos números lidos. 0-Terminar Finalmente, as opções listadas no menu devem ser implementadas sob a forma de funções que são chamadas de acordo com a escolha do utilizador (use um switch para invocar a função desejada). O programa deve ficar em ciclo até a opção 0 ser escolhida. 6. Escreva as seguintes funções para acrescentar funcionalidade ao programa anterior. Por cada função escrita, deve acrescentar a opção respetiva ao menu e correr o programa para verificar a sua correta implementação. • uma função que indique no ecrã se os números lidos têm sinal igual ou diferente; • uma função que mostre a soma dos módulos dos dois números; 2 • uma função que mostre a hipotenusa dum triângulo se os valores lidos representarem os lados dos catetos (esta função só pode correr se os valores forem positivos; se não forem deve avisar e o programa deve voltar ao menu). 7. Acrescente um menu ao programa do exercício 3, de forma a ficarem disponíveis as operações programadas nos exercícios 2 e 3 e ainda as seguintes que deverá implementar sob a forma de funções com os seguintes protótipos, a serem chamadas do main() e mostrando em cada caso um aviso adequado: (a) uma função que devolva 1 se o caráter lido for um número e 0 nos restantes casos: int isNumber(char x); (b) uma função que devolva 1 se o caráter lido for uma letra e 0 nos restantes casos: int isAlpha(char x); (c) uma função que devolva 1 se o caráter lido for um número ou uma letra e 0 nos restantes casos (deve chamar as duas funções anteriores na implementação desta!): int isNumberOrAlpha(char x); O menu deve ter uma opção para terminar o programa. O programa deve ficar em ciclo, mostrando o menu e executando as operações escolhidas, até o utilizador escolher terminar o programa. 3