Avaliação final de SOP Deve ser entregue até dia 11/12 (6a feira), às 10:00 h (impreterivelmente). A ser feita individualmente ! A avaliação será feitas com os seguintes critérios: A: ao menos 4 problemas resolvidos, ou 2 problemas e o Desafio B: ao menos 3 problemas resolvidos, ou 1 problema e o Desafio C: ao menos dois problemas resolvidos Obs: somente programas corretos serão considerados ! Para ser considerado correto, o programa deve resolver exatamente o problema proposto. Entenda bem cada problema antes de começar o programa que irá resolvê-lo. Identifique que dados são necessários para resolver o problema, e o que ele deve gerar como resultado. Pode ajudá-lo escrever primeiro uma descrição narrativa do algoritmo, ou, melhor ainda, um fluxograma. 1. Um professor calcula a nota final de seus alunos da seguinte forma: Trabalho 1: peso 2 Prova 1: peso 2 Prova 2: peso 3 Trabalho final: peso 3 Escreva um programa que leia as notas das provas e trabalhos, e calcule a média final de acordo com os pesos acima. 2. A quantidade de combinações possíveis de amostras de um conjunto é dada pela fórmula: C= N! n !⋅ N −n! … sendo N o tamanho do conjunto, e n o tamanho da amostra. Por exemplo, para um conjunto de 4 bolas coloridas, existem 6 combinações de 2 bolas e 4 combinações de 3 bolas. E para o conjunto de vogais, existem 10 combinações de 2 vogais, 10 combinações de 3 vogais, e 5 combinações de 4 vogais. Escreva um programa que calcule a quantidade de combinações possíveis, dado o tamanho do conjunto e o tamanho da amostra. Obs: a expressão n! significa “fatorial de n”. Dica: criar uma função para calcular o fatorial pode ajudar na escrita desse programa. 3. Faça uma calculadora que opere da seguinte forma: o usuário digita um número, depois a operação, outro número, outra operação, outro número, e assim continua até que ele digite enfim o sinal “=”, quando então a calculadora mostra o resultado. Exemplos: 1+3–2/2=1 3*4–2/5+4=6 1+7/2=4 4. Faça um programa que leia as dezenas de uma aposta na mega-sena, e em seguida as dezenas sorteadas da mega-sena. Ao final, deve-se mostrar qual o resultado da aposta: se forem acertadas até três dezenas, então deve-se mostrar somente esse número, mas se forem 4 ou mais, deve-se mostrar se foi quadra, quina ou mega-sena. Obs: uma aposta pode ser composta de 6 a 10 dezenas. Obs 2: não esqueça de verificar a validade dos números lidos ! (devem estar entre 1 e 50). 5. Faça um programa que leia os dados de uma pessoa (nome, sobrenome, sexo, dia, mês e ano de nascimento, cidade e estado), e os mostre assim: Sr. Sobrenome, Nome; nascido em dia de nome_do_mês de ano, e residente na endereço, cidade de cidade, estado de estado. … ou (para mulheres): Sra. Sobrenome, Nome; nascida em dia de nome_do_mês de ano, e residente na endereço, cidade de cidade, estado de estado. Ex: Sr. Xavier, Joaquim; nascido em 15 de março de 1760, e residente na Rua do Ourives, cidade de Vila Rica, estado de Minas Gerais. 6. Escreva um programa que lê uma frase do teclado, e que pode estar suja com caracteres não legíveis. Esse programa deve então limpar a frase lida, e mostrá-la na tela. Por exemplo, se ele ler “esta *lista de SO&%P não$ está difí8cil”, deve mostrar “esta lista de SOP não está difícil”. Dica: lembra que variáveis string funcionam como vetores de caracteres. 7. DESAFIO: Um caminhoneiro, que está atualmente em Urubici, precisa fazer entregas nas seguintes cidades: Blumenau, Florianópolis, Lages, Garopaba e São Joaquim, retornando ao final para Urubici. Qual a sequência de cidades a serem visitadas em que ele percorrerá a menor distância , e qual é essa menor distância? Dica: a tabela de distâncias abaixo pode ser representada por uma matriz bidimensional. Dados do problema: tabela de distâncias entre as cidades (em km) Blumenau Florianópolis Garopaba Lages São Joaquim Urubici Blumenau 0 147 220 210 281 225 Florianópolis 147 0 71 224 227 170 Garopaba 220 71 0 258 208 183 Lages 210 224 258 0 85 106 São Joaquim 281 227 208 85 0 57 Urubici 225 170 183 106 57 0