ListadeExercíciosIII–IntroduçãoàProgramação ExercíciosdeProgramaçãoemC Instruções: • Leiacomatençãoepensenasoluçãoantesdeprogramar. • Verifiqueasentradas,assaídaseanaliseoalgoritmodeprocessamentopara obteroresultadopedido. • ConstruaprogramasemCpararesolvercadaexercício. • Testeseuprogramacomdiversoscasosde testesqualitativamentedistintos paraassegurarqueasoluçãoérealmentecorreta. 1. Escrevaumprogramaqueescrevenatelacemvezes,alternadamente,cadafrasea seguir: • Sóaprendeaprogramarquemescreveprogramas • Quemnãoescreveprogramasnãoaprendeaprogramar [Sugestões:(1)Useumlaçoforcomumavariáveldecontagemiquevariaentre1e 200.(2)Nocorpodolaço,verifiqueseovalordeiépare,seforocaso,escrevauma dasfrases;senãoforocaso,escrevaaoutrafrase.] 2. Escrevaumprogramaqueapresentanatelaumatabeladequadradosdevalores inteiros.Onúmerodelinhasdatabeladeveserintroduzidopelousuário. 3. Escrevaumprogramaquesolicitaaousuárioparaintroduzirdoisinteirospositivos ecalculaasomadosinteiroscompreendidosentreessesdoisnúmeros.Oprograma devepermitirqueousuáriointroduzaprimeiroomaiorouomenorvalor. 4. Escreva um programa que exibe na tela uma régua com duas escalas, como mostradoaseguir: 0 1 2 3 4 5 012345678901234567890123456789012345678901234567890 [Sugestões:(1)Useumlaçodecontagemparacadaescaladarégua.Emcadalaçoa variáveldecontagemivariaentre0e50.(2)Noprimeirolaço,quandoifordivisível por10,escrevanatelaoresultadodessadivisão.Casocontrário,escrevaumespaço embranco.(3)Nosegundolaço,escrevanatelaorestodadivisãodeipor10.] 5. Escreva um programa para gerenciamento de finanças pessoais do usuário. O programadeverásolicitarosaldoinicialdousuárioe,então,pedirqueeleintroduza, continuamente,valoresdedespesaseganhos.Aentradadedadosdeveencerrar quandoousuáriodigitarzero. 6. EscrevaumprogramaqueleiaumnúmeronaturalN(1<=N<=10.000)ecalculee imprimatodososnúmerosprimosentre1eonúmerodigitado(inclusive). 7. Escrevaumprogramaquesolicitaaousuárioparaintroduzirumnúmerointeiro.Se esse número estiver entre 1 e 7, o programa escreve na tela o dia da semana correspondente(Domingocorrespondea1,Segundacorrespondea2,eassimpor diante);casocontrário,oprogramaescrevenatelaumamensageminformandoque nãoexistediadasemanacorrespondente.[Sugestão:Utilizeumainstruçãoswitchcaseemseuprograma.] 8. Escreva um programa que verifica se uma sequência de n valores inteiros introduzidosviatecladoconstituiumaprogressãoaritmética.Seesseforocaso,o programadeveapresentararazãoeasomadostermosdaprogressãoaritmética. [Sugestão:Verifiqueseadiferençaentrecadanúmerointroduzidoeseuantecessor é constante. Se for o caso, trata-se de uma PA e a razão é exatamente essa diferença.] 9. Escreva um programa que recebe o um valor numérico N (1 <= N <= 5) que representaumarespostacorretaedepois5palpitesdiferentes(P1,P2,P3,P4,P5)e escrevenatelaquantospalpitesestavamcorretos,ouseja,quantospalpiteseram iguaisàN.(EssaéaquestãododesafiodaMaratonadasprimeirasaulas). 10. Escreva um jogo de adivinhação. Declare (defina) uma constante simbólica representandoumvalorinteiroquedeveseradivinhadopelousuário.Ojogodeve ficar pedindo palpites do usuário indefinidamente, até que ele acerte o número secreto.Acadapalpiteojogodeveinformarseopalpitefoimuitoaltooumuito baixo.Quandoousuárioacertaronúmero,ojogodeveinformarquantospalpites foramnecessárioseencerrar. 11. Desafio:NapróximafolhaestáumaquestãodaprimeirafasedaOlimpíadaBrasileira deComputação(OBI2001). Calculando A disseminação dos computadores se deve principalmente à capacidade de eles se comportarem como outras máquinas, vindo a substituir muitas destas. Esta flexibilidade é possível porque podemos alterar a funcionalidade de um computador, de modo que ele opere da forma que desejarmos: essa é a base do que chamamos programação. 1. Tarefa Sua tarefa é escrever um programa que faça com que o computador opere como uma calculadora simples. O seu programa deve ler expressões aritméticas e produzir como saída o valor dessas expressões, como uma calculadora faria. O programa deve implementar apenas um subconjunto reduzido das operações disponíveis em uma calculadora: somas e subtrações. 2. Entrada A entrada é composta de vários conjuntos de testes. A primeira linha de um conjunto de testes contém um número inteiro m (1 <= m <= 100), indicando o número de operandos da expressão a ser avaliada. A segunda linha de um conjunto de testes contém a expressão aritmética a ser avaliada, no seguinte formato: X1 s1 X2 s2 ... Xm-1 sm-1 Xm onde • Xi , 1 <= i <= m, é um operando (0 <= Xi <= 100); • sj, 1 <= j < m, é um operador, representado pelos símbolos ‘+’ ou ‘–’; • não há espaços em branco entre operandos e operadores. O final da entrada é indicado pelo valor m=0. Exemplo de Entrada 3 3+7-22 3 5-10-77 10 1+2+3+4+5+6+7+8+9+10 0 3. Saída Para cada conjunto de testes da entrada seu programa deve produzir três linhas. A primeira linha deve conter um identificador da expressão, no formato “Teste n”, onde n é numerado a partir de 1. Na segunda linha deve aparecer o resultado encontrado pelo seu programa. A terceira linha deve ser deixada em branco. A grafia mostrada no Exemplo de Saída, abaixo, deve ser seguida rigorosamente. Exemplo de Saída Teste 1 -12 Teste 2 -82 Teste 3 55 (esta saída corresponde ao exemplo de entrada acima) 4. Restrições 1 <= m <= 100 0 <= Xi <= 100 para todo 1 <= i <= m