Você está na página 1de 238
‘ u E 7 . 2 ma =—CSsC An. Fernanda Gomes Ascencio a) wan Edilene Aparecida Veneruchi de Campos u ry 24a r " D u or 3 Aa , G41 " a g! ri ] I , a2 Saree Ty | " i ; ark aT ie ruil / 7 d i ed d ia ae ee, d 4 : . lye me ie ca : Co va a eu Cd ~ i eu Fundamentos da programacao de Te ee Algoritmos, Pascal, C/C++ e Java 2? edicao PEARSON Fundamentos da programacao de Ce ne ee Algoritmos, Pascal, C/C++ e Java Considerada obra de referéncia para alunos iniciantes no estudo da Ores en er rei) rete aoa ery Puech ae funda RCM eee Cemetery Se Meter de ee ie] ET mena) eee ae pitulo Teo ete) ecole Pere UC eel Cees ML eo eects et cet rere oto ee eeta lg] Tene ae ite) Noo conceito: la de aula. vro-texto indicado para cursos de programacao de computado- eee a aa ele (OMe Eee ant Tau) itorios de progratr stor Leora Sn ne ee ee ee eee eee sens Cesena Ree ey www.pearson.com.br TE ea TLE — Ana Fernanda Gomes Ascencio Edilene Aparecida Veneruchi de Campos Fundamentos da programagao de computadores Algoritmos, Pascal, C/C++ e Java 2? edicao atten ‘Ai Prentice a8 - aE a Sao Paulo Brasil Argentina Colémbia Costa Rica Chile Espanha Guatemala México Peru Porto Rico Venezuela Dedico esta obra ao meu filo, Eduardo Gomes Ascencio, a maior realizagio da minha vida, e ao meu marido, Antonio Eduardo Pagliuso Ascencio, pela compreensio durante © tempo de escrita deste trabalho. Ana Fernanda Gomes Ascencio Mais uma vez aos meus incansaveis, compreensivos ¢ pacientes, ‘companheiros de equipe: Vanderlei, Yanko e Juliana. Edilene A. Veneruchi de Campos CarituLo 1 CONCEITOs BAsicos = 1 1.1 Conceito de algoritmo. 1.2 Método para a construgdo de algoritmos 1.3 Tipos de algoritmos. 14 1s 16 17 18 19 1.10 Linguagem C/C++ 1.11 Linguagem JAVA. CAPITULO 2 PARADIGMAS DE PROGRAMAGAO = 12 CAPITULO 3 ESTRUTURA SEQUENCIAL 16 3.1 Estrutura seqiiencial em algoritmos.. 3.2. Estrutura seqiiencial em PASCAL. 3.3. Estrutura seqiiencial em C/C++ 3.4 Estrutura seqiiencial em JAVA... CAPITULO 4 ESTRUTURA CONDICIONAL so 4.1. Estrutura condicional em algoritmos 4.2. Estrutura condicional em PASCAL... 4.3 Estrutura condicional em C/C++. 4.4. Estrutura condicional em JAVA CapituLo 5 ESTRUTURA DE REPETICAO = 93 5.1 Estrutura de repetigdo em algoritmo, ‘5.2. Estrutura de repeticado em PASCAL.. vu FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES 5.3 Estrutura de repetigio em C/C++. 5.4 Estrutura de repetigdo em JAVA.. CaPiTULo 6 VETORES 145, 6.1 Vetor em algoritmos. 145 6.2 Vetor em PASCAL, 148 6.3 Vetor em C/C++ 64 Vetor em JAVA.. 149 CAPITULO 7 MaTRIZ 187 7.1 Matriz em algoritmos.......~ 187 7.2. Matriz em PASCAL women citi . staal 90) 73 Matriz.em CICH sannninmnnnnennininnnnsinsn . 193 7.4 Matrizem JAVA. 195 CapituLo 8 SUB-ROTINAS 230 8.1 Sub-rotinas (programagdo modularizada) ss 230 82, Sub-rotinas em PASCAL (procedures, functions € unit). 231 8.3. Sub-rotinas em C/C++ (fungdes).... csuscuranaa somemamemen DM 84. Sub-rotinas em JAVA (métodos) 241 CApiTULO 9 MANIPULANDO CADEIAS DE CARACTERES 270 9.1 Manipulando cadeias de earacteres em PASCAL. ssn 204 9.2 Manipulando cadeias de caracteres em C/C++ : 273 9.3. Manipulando cadeias de caracteres em JAVA. 280 CAPITULO 10 REGIsTRos 303 10.1 Definigao de registro . nnn 303 10.2 Declaragao de registros em algoritmos.. 10.3 Declaragao de registros em PASCAL. 10.4 Declaragao de registros em C/C++ 10.5 Declaragdo de registros em JAVA... 305 307 CarituLo 11 Arquivos 380 11.1 Definigao de arquivos em algoritmo. 11.2 Trabalhando com arquivos em PASCAL. 11.3. Trabalhando com arquivos em C/C++ .. 11.4 Trabathando com arquivos em JAVA.. 395 BIBLIOGRAFIA 429 INDICE REMISSIVo 431 OBJETIVOS E RESUMO O livto proposto tem como objetivos: ® apresentar técnicas para a elaboragdo de algoritmos; apresentar comandos para a implementagdo de algoritmos nas linguagens PASCAL, C/C++ ¢ JAVA; ‘© apresentar a solugdo de problemas em algoritmos e em programas escritos em PASCAL, C/C++ JAVA; ‘© incentivar os leitores & programagao por meio da proposi¢&o de varias situagdes-problema ao final de cada capitulo. Todos os capitulos apresentam nas segdes iniciais conceitos tedricos sobre a utilizagdo de algum recurso de computagdo em algoritmos e nas linguagens de programacdo PASCAL, C/C++ e JAVA. A peniltima secdo de cada capitulo apresenta uma série de problemas resolvidos em algoritmos, PASCAL, C/C++ e também em JAVA, e, na tiltima, o leitor encontraré uma série de problemas para serem resolvidos. RELEVANCIA, ATUALIDADE E PUBLICO-ALVO Durante alguns anos em que ensinamos fundamentos da programagao de computadores, temos observado a grande dificuldade dos alunos em assimilar estes novos conceitos e em adquirir habilidades que Ihes permitam resolver problemas reais relacionados programagao. Observamos, também, que através da andlise aprofundada de problemas jé resolvidos os estudantes conseguem superar parte dessas dificuldades, além de adquirirem maior motivagao para os estudos. Esta obra seré aproveitada por alunos iniciantes na programagdo de computadores, visto que as linguagens PASCAL, C/C++ e JAVA so muito utilizadas no inicio da programago por serem de facil compreensio ¢ > x; Um valor digitado pelo usuario ser armazenado na variavel x. gets (NOME) ; ‘Um ou mais caracteres digitados pelo usuério serdo armazenados na varidvel noms. scant (6X); Um valor digitado pelo usuario serd armazenado na variavel x. O comando gets deve ser utilizado quando se deseja digitar uma cadeia contendo espagos em branco, por exemplo, um nome completo, como Jodo da Silva. O comando cin consegue armazenar os caracteres até que seja encontrado o primeiro espago em branco, ¢ os caracteres posteriores serio desprezados (sendo assim, seria armaze- nado apenas Joao). Os comandos gets ¢ scan¢ armazenam toda a cadeia até que seja pressionada a tecla ENTER. Tanto um comando quanto outro exigem a inclusio da biblioteca stdio.h, ou seja, #include 3.3.4 COMANDO DE SADA EM C/C++ comando de saida é utilizado para mostrar dados na tela ou na impressora. Os comandos de saida mais utilizados na linguagem C/C++ sdo cout € printé. Exemplo: cout << X; Mostra o valor armazenado na varidvel x. cout << "Contetido de X=" << x; Mostra a mensagem *conteddo de x = " € em seguida o valor armazenado na variaivel x. 24 FUNDAMENTOS DA PROGRAMACKO DE COMPUTADORES printé("ta",¥); ‘Mostra o néimero inteiro armazenado na variével ¥. printf ("Contesdo de ¥ = $4", ¥); Mostra a mensagem "Conteddo de v = * ¢ em seguida o numero inteiro armazenado na varidvel v. printé("8f", x); Mostra o niimero real armazenado na varivel x. printé("95.2£", x); Mostra o niimero real armazenado na variavel x utilizando cinco casas para a parte inteira e duas casas decimais. printé ("Contetdo de x = $5.2f", x); ‘Mostra a mensagem "Conteddo de x =" € em seguida o numero real armazenado na varidvel x utilizando cinco casas para a parte inteira e duas casas decimais. No comando print é necessério indicar o tipo de varidvel que seré mostrada: ¥¢ para varidveis que ar- mazenam niimeros reais, $a para varidveis que armazenam nimeros inteiros, +c para variaveis que armazenam ‘um tinico caractere e 4 para variaveis que armazenam um conjunto de caracteres. 3.3.5 COMENTARIOS EM C/C++ Comentérios sao textos que podem ser inseridos em programas com 0 objetivo de documenté-los. Eles niio sio analisados pelo compilador. Os comentirios podem ocupar uma ou varias linhas, devendo ser inseridos nos programas utilizando-se os simbolos / */ou//. Exemplo: Linhas de comentario linhas de comentério */ A regio de comentarios ¢ aberta com os simbolos /+ ¢ encerrada com os simbolos + /. // comentario A regitio de comentirios ¢ aberta com os simbolos // e encerrada automaticamente ao final da linha. 3.3.6 OPERADORES E FUNCOES PREDEFINIDAS EM C/C++ A linguagem C/C++ possui operadores e fungdes predefinidas destinados a cdlculos mateméticos. Alguns sio apresentados a seguir. - x = ¥ | O contetido do varidvel ¥ & atribuido & varidvel X. |A uma variavel pode ser ati | cconledde de outta, um valor constante ou, cindo, 0 resultado de uma fung8o.) + x + y | Soma o conteido de Xe de ¥. - x - ¥__Subtai 0 contetido de Y do contatide de X. | . x * y _ Muliplica o conteido de X pelo contetido de ¥. continua CAPITULO 3 _ESTRUTURA SEQUENCIAL 25 continuagio io x / | Obtém o quociente da divisdo de X por ¥. ¥ |x ty Obtém 0 resto do diviso de X por ¥. O operador & s6 pode ser utilizado com operandos do tipo inteiro. + x += y | Equvolea X=X+¥. | | x == y_ | Equivaleo X=X-¥. x ‘ey i X=X*. hs x /~ y | Fouled X=X/Y. te xt y [iiss X=X4%Y. - a xe | Equvalea X=X+1 ” y = +4x | Equvole a X=X+ | e depois ¥ =X | + y = x++ | Equivale oY =Xe depois X=X+1 | Equivalea X=X-1 Equivale © X= X—1 e depois ¥ = X Equivale oY = Xe depois X = X— Os operadores matematicos de atribuigio sio utilizados para representar de maneira sintética uma opera¢o aritmética e, posteriormente, uma operago de atribuigdo. Por exemplo, na tabela anterior, 0 operador += esté sendo usado para realizar a operagio x + y €, posteriormente, atribuir o resultado obtido a variavel x. | conleédo de X ¢ igual ao contetido de ¥. | O conteodo de X ¢ diferente do contadde de ¥. © conieddo de X € menor ov igual a0 conta de Y. > xn y © conledido de X & maior ou igual ac conteido de Y. © conteddo de X & menor que © conteiido de Y. © ceonteddo de X 6 maior que o contetdo de. | ‘Arredonda um nimero real para cima. = ce82(0) |For exemplo, ceil3.2) & 4 cos €08(X) __Caleulo 0 corseno de X [X deve estar representado em radionos} exp exp (x) Obtém o lagatita natual e elavado 4 povéncio X "abs abs(x) __Obtém o valor absollo de X floor oor (x) __Arredonda um nimero real para boixo, Por exemple, floof3.2)8 3 26 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES continuagio tog og (x) Obsém o logorimo natal de X | rogio Logh0 (x) Obl 0 logotimo de base 10 de x : soar | ® = modE (&, | DacompSe o nimer real amazencrio en X em dios pvies: recebe a EY) "a parte haciondria ez, 0 parle inteia do numero. pow | powk,y) | Clee pote dX alata Zz | sin sin(X) | Cokula 0 eno de X deve estar representodo em rodianos a eo van zane) Colevo a tangente de X Ik deve estar reprasentado em rodionos) MPL Mer Retomna © valor de w. (UGGRBERARRBIY As funcdes ein, cos ¢ tan esperam receber argumentos no formato de radianos; para receberem argumentos em graus, siga o préximo exemplo. Exemplo com varidvel para o valor de m: VALORPT = 3.1415; cins> X; //X EM GRAUS Y= SIN ((VALORPI * X) / 190); Exemplo utilizando a fungo M_PI: cin>>x; //X EM GRAUS Y= SIN ((MPr * x) / 180); Allinguagem C/C++ possui muitas outras fungdes matemaiticas. Todas elas podem ser observadas detalha- damente na documentagao da biblioteca math.h. cdect | edeet al ccaae | continue | oe default do "double as a es Spare “tar | _far _fastcall friend | goto huge inline | aes Fill Wieacnipe ‘00g as pascal a a register | return _saveregs _saveregs _seg (shore signed sizeot ss 88 static a Gas Typedee a virtual void volatile while CAPITULO 3 _ESTRUTURA SEQUENCIAL 3.4 ESTRUTURA SEQUENCIAL EM JAVA import nome_do_pacote_das_classes; public class nome { public static void main (string args{]) { ploco de comandos; } } Os pacotes de classes so arquivos contendo diferentes classes que possuem varios métodos, ou seja, fun- ¢6es, 05 quais podem ser utilizados nos programas escritos em JAVA. A diretiva import permite que o programa reconhega as classes do pacote ¢, conseqiientemente, a utilizagaio de seus métodos. E importante salientar que a linguagem JAVA é sensivel a letras maiisculas e minisculas, ou seja, considera letras maitisculas diferentes de minasculas (por exemplo, a é diferente de 4). Sendo assim, cada comando tem sua propria sintaxe, que as vezes é somente com letras mimisculas e outras vezes com letras maitisculas e miniisculas. 3.4.1 DECLARAGAO DE VARIAVEIS EM JAVA As variiveis slo declaradas apés a especificagio de seus tipos. Os tipos de dados mais utilizados sfo: int (para ‘nimeros inteiros), float ¢ double (para niimeros reais), char (para um caractere), String (para virios caracteres) e boolean (para verdadeiro ou falso). Exemplo: float %; Declara uma variével chamada x em que pode ser armazenado um niimero real. double ¥, 2; Declara duas varidveis chamadas ¥ e z em que podem ser armazenados dois nimeros reais. char SEXO; Declara uma varidvel chamada sexo em que pode ser armazenado um caractere. String Nome; Declara uma variivel chamada Nome em que podem ser armazenados varios caracteres. ‘A linguagem JAVA possui os tipos primitivos de dados listados a seguir. byte | -1280 127 “char | 0.065.535 16 bits | shore | -32,768 0 32.767 16 bits int | -2.147.483.648 a 2,147.483.647 32 bits tong | 79,228.372.036.854775,808 o 9.223 | -aaies | 372,036,854.775.807 float | -3.4x 100 3.4.x 10" | 32 bis double |-1,7x 1001.7 x 1om I ~ 6A bits 28 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES 3.4.2 COMANDO DE ATRIBUIGAO EM JAVA comando de atribuigdo € utilizado para dar valores ou operagdes a varidveis, sendo representado por = (sinal de igualdade). Exemplo: nea; x= x42; y= 2.5; sexo = 'P'; Em JAVA, os caracteres so representados entre apéstrofos ( ' ). As cadeias de caracteres devem ser re- presentadas entre aspas ( " ). Nessa linguagem, cada comando é finalizado com o sinal de ponto-e-virgula. 3.4.3 COMANDO DE ENTRADA EM JAVA (O comando de entrada é utilizado para receber dados digitados pelo usuario. Os dados recebidos sfio arma- zenados em varidveis. Uma das formas de entrada utilizada na linguagem JAVA ¢ por meio da classe Scanner, que requer a importagio do pacote java.util. Exemplos: int ni; Scanner dado; dado = new Scanner (System.in) ; ni = dado-nextint (); Um valor inteiro digitado pelo usuario sera armazenado na varidvel n1. float x; Scanner dado; dado = new Scanner (System. in) ; x = dado.nextFloat (); Um valor real digitado pelo usuario sera armazenado na variavel x. String nome, Scanner dado; dado = new Scanner (System. in) ; nome = dado.next () ; Um valor literal digitado pelo usuério seré armazenado na variavel nome. E importante salientar que todas as entradas so recebidas pela linguagem JAVA como um conjunto de caracteres. Assim, estes caracteres deverdo ser convertidos por fiunges de conversdo de tipos. Seguem algumas dessas fungdes. next!) ‘Aguarda uma entrade em formate String com uma nica palavra. nextinel) ‘Aguorda uma entrada em formato Sting com ume ou varios palawas, nextint{) | ‘Aguarda uma entrada em formato inteiro. nextByte(| | Aguarda uma entrade em formato inet. nextlongl| | Aguarda uma enirada em formato intro, nextFloat{) | Aguarda uma entrada em formato numero fraciondrio. nedDovblet) ‘Aguarda une enttada em formato nimero fracionai. tratamento de cadeia de caracteres sera mais detalhado no Capitulo 9. CAPITULO 3 _ESTRUTURA SEQUENCIAL 29 3.4.4 COMANDO DE SAiDA EM JAVA O comando de saida é utilizado para mostrar dados na tela ou na impressora. Os comandos de saida mais utilizados na linguagem JAVA so system.out .printIn € System.out print. Exemplo: system.out.printin(x) ; Mostra 0 valor armazenado na variavel x. System.out.printin("Conteddo de X = * + X); Mostra a mensagem "Contesdo de x = " e em seguida o valor armazenado na varidvel x. ‘A diferenga entre esses comandos é que o comando syatem.out .print1n mostra o seu conteiido e passa 0 cursor para a linha de baixo, enquanto o comando system.out print mantém o cursor na mesma linha apés mostrar a mensagem. 3.4.5 COMENTARIOS EM JAVA Comentérios sao textos que podem ser inseridos em programas com o objetivo de documenté-los. Eles sto ignorados pelo interpretador. Os comentarios podem ocupar uma ou varias linhas, devendo ser inseridos nos programas utilizando-se os simbolos /+ ....... */ 0u//. Exemplo: linhas de comentario linhas de comentério / A regidio de comentarios é aberta com os simbolos /+ ¢ encerrada com os simbolos + /. // comentario A regido de comentérios é aberta com os simbolos // ¢ encerrada automaticamente ao final da linha. 3.4.6 OPERADORES E FUNCGES PREDEFINIDAS EM JAVA A linguagem JAVA possui operadores € fungdes predefinidas destinados a célculos mateméticos. Alguns sto apresentados a seguir. = x = yO contetido da variével ¥ 6 atribuido & variével X. (A uma variével pode set atibuido 0 contetido de outra voriével, um valor constanie ou, ainda, o resultado de uma fungéo.} Soma o contetido de X e de ¥. + xey - | = ¥ ___Subitaio conteido de ¥ do conteido de X . x * y __ Multiplica 0 contetido de X pelo conteido de Y. / x /¥ Obi o quociente do divséo de X por ¥. * (oxy Obtém 0 resto da diviséo de X por ¥. - xtey — Equvleo X=X+Y. x-=y Equivalea X =X-Y. xc=y | Equvolee X-X*¥. continua 30 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES Equivole a X=X/¥. xtey | Equvleo X=X%Y. xe Equivole o X=X +1 | y= see | Equivele a X= + | e depois ¥ = x y= xt+ — Equivole oY =Xe depois X= X +1 xe Equivaleo X=X-1 ly Equivale a X=X~ 1 @ depois ¥ = X Equivale oY = Xe depois X = X~ | s operadores matemiticos de atribuigdo sao utilizados para representar de maneira sintética uma operagao aritmética e, posteriormente, uma operagio de atribuigdo. Por exemplo, na tabela acima, o operador += esti sendo usado para realizar a operagdo x + y €, posteriormente, atribuir o resultado obtido a varidvel x. t xisy = ney xony < xy O contedido de X ¢ igual a0 contetido de ¥. O contetdo de X & diferente do contetido de ¥. © conteido de X € menor ou igual ao conteédo de Y. | O contetido de X & maior ou igual a0 conteiido de Y. © conteado de X & menor que 0 conteédo de ¥. cconteido de X € maior que © conleédo de ¥. ceil cos. exp abs log togio pow ein sqrt ebre tan Pt toDegrees toRadians Math. ceil (x) Math.cos (x) Math. exp (x) Math. abs (Xx) Math. floor (x) Math. 1og (x) Math. 1logi0 (x) Math.pow(x,¥) Math. sin(x) Math. sqrt (x) Math.cbrt (x) Math. tan(x) Math. PI Math. toDegrees (x) Math. toRadians (x) ‘Aredonda um nimero real pora cima. Por exemple, cei3.2) & 4. Calcula 0 corseno de X |X deve estar representado em radianos). Obtém o logaritmo natural e elevade & poréncia X Obtem 0 valor absoluto de X | Antedonda um nimero real poro baixo. Por exemplo, floo3.2) & 3 | Obiém 0 logorimo natural de X. a Obtém o lagarino de base 10 de X Coleule @ poténcia de X elevade o ¥. Coleule o seno de X i deve estor representado em radiance} Calcula a raiz quadrada de X. Cakevla a raiz cébica de X. | Coleula a tangente de X (X deve estar representado em radianos) Retoma o valor de x. Converte © medida de X de rodionos para gous “ Convere a medida de X de graus para radianos CAPITULO 3 ESTRUTURA SEQUENCIAL 3 (GEBERVAERENY 0s métodos sin, cos e tan esperam receber argumentos no formato de radianos; para receberem argumentos em graus, siga 0 préximo exemplo. dado = new Scanner (System. in) ; x = dado.nextDouble() ; y = Math. sin (Math. toRadians (x) A linguagem JAVA possui muitas outras fungdes matematicas que podem ser observadas detalhadamente na documentaco da classe Math. abstract contine | for new ewitch assert default if package | synchronized boolean ae goto private this break double | implements protected | throw byte | else | import public | throws case enum | instanceof return transient eaten extends ne short try char final interface static | void class | finally | long strietép volatile const | float | native super EXERCICIOS RESOLVIDOS 1. Faga um programa que receba quatro nimeros inteiros, calcule e mostre a soma desses niimeros. (AREERRHBN soiucto ALGORITMO DECLARE ni, n2, n3, n4, soma NUMERICO LEIA nl, n2, 03, né soma onl + n2 + n3 + ne ESCREVA soma PIM_ALGORITMO 1A soLucao: S \BKERC\CAP3\PASCAL\BX1_A.PAS € \EXERC\CAP3\PASCAL\EX1_A.BXE 24 so.ugao: \EXERC\CAP3\PASCAL\EX1_B.PAS € \EXERC\CAP3\PASCAL\EX1_B. EXE 18 soLucao: \BXERC\CAP3\C++\EX1_A.CPP € \BKERC\CAP3\C++\FX1_A FXR 32 FUNDAMENTOS DA PROGRAMACAO DE COMPUTADORES 24 so.ugao: \BXBRC\CAP3\C++\BXi_B.CPP € \EXERC\CAP3\C+\EX1_B. EXE [A 14 SOLUGAO: NA \ EXERC\CAP3\JAVA\BX1_A.java © \BXERC\CAP3\JAVA\EX1_A.class 2* soLucAo: \EXERC\CAP3\JAVA\EX1_B. java € \EXERC\CAP3\JAVA\EX1_BA.class 2. Faca um programa que receba trés notas, calcule e mostre a média aritmética entre elas, maa DECLARE notal, nota2, nota3, media NUMERICO media ¢ (notal + nota2 + nota3)/3 24 sovucao: ALGORITMO DECLARE notal, notaz, nota3, soma, media NUMERICO LBIA notal, nota2, nota3 soma ¢ notal + nota2 + nota3 media < soma/3 ESCREVA media FIM_ALGORITNO. D JM sovuca NWA \EXERC\CAP3\PASCAL\EX2_A.PAS € \EXERC\CAP3\PASCAL\EX2_A.EXE 24 soLucag: \BXERC\CAP3\PASCAL\EX2_B.PAS € \EXERC\CAP3\PASCAL\EX2_B. EXE Quando estamos trabalhando com tipos de dados reais, precisamos fazer a formataco desses niimeros. Se isso nfo for feito, eles serdo apresentados com formatacao cientifica. Exemplo de nimeros com formatagao cientifica: 1.5000000000E+03 = 15000 7,0000000000E+00 = 7 Exemplo de formatagao: x:6:2 A varivel x sera mostrada com seis casas, das quais: duas casas para a parte fraciondria, uma casa para ponto ¢ as trés casas restantes para a parte inteira. ¥:8:3 A varidvel ¥ sera mostrada com oito casas, das quais: trés casas para a parte fracionaria, uma casa para o ponto ¢ as quatro casas restantes para a parte inteira. Varidvel: mimero total de casas: mimero de casas decimais CAPITULO 3__ ESTRUTURA SEQUENCIAL 33 O primeiro parmetro da formatago corresponde ao niimero total de casas ocupadas pela variével; 0 se- gundo corresponde ao total de casas ocupadas pela parte fracionéria. O ponto, que ¢ 0 separador entre a parte inteira ¢ fraciondria, também ocupa uma casa. 34 soLUgA\ \BXERC\CAP3 \PASCAL\EX2_C.PAS @ \BXERC\CAP3\PASCAL\EX2_C. EXE 14 soLugdo. \EXERC\CAP3\C++\EX2_A.CPP € \EKBRC\CAP3\C++\EX2_A.EXE Quando estamos trabalhando com tipos de dados reais, precisamos fazer a formatagdo desses nimeros para definir quantas casas decimais devem ser mostradas. Deve-se utilizar a funcdo setprecision, conforme apresentada a seguir: cout << setprecision (4); No exemplo anterior, a formatago permitira que sejam mostradas até quatro casas decimais. Para a utilizagao da fungo setprecision, deve-se incluir no programa a biblioteca iomanip.h (#include ). Outra maneira de formatar a safda é substituir © comando cout pelo comando print£, como apresentado a seguir: print ("Conteddo de variavel x €: $6.3£",X); ‘A formatagao é especificada imediatamente antes da letra que define o tipo da varidvel que seré mostrada (no exemplo acima, ¢£ especifica que seré mostrado um mimero real, ¢ 6.3 significa que serdo utilizadas seis casas para mostrar 0 niimero ¢, destas, uma serd usada para mostrar o ponto ¢ trés outras, para mostrar sua parte fraciondria). 2* soLucao \EXERC\CAP3\C++\BX2_B.CPP € \EKERC\CAP3\C++\EX2_B. EXE 34 soLucko \EXERC\CAP3\C++\EX2_C.CPP € \EXERC\CAP3\C++\EX2_C.EXE [Z 14 sotugao: WA \BXBRC\CAPS\ZAVA\sx2_ A.java € \EXERC\CAPS \JAVA\EX2_A.class Quando estamos trabalhando com tipos de dados reais, precisamos fazer a formatagdo desses niimeros para definir a quantidade de casas decimais que devem ser mostradas. Deve-se utilizar 0 método DecimalFormat, conforme apresentado a seguir: DecimalFormat casas; casas = new DecimalFormat ("0.00") ; system.out .print1n ("Média = "+casae. format (media)) ; No exemplo anterior, a formatag&o permitir que sejam mostradas duas casas decimais para o valor da variavel média. Para a utilizagao do método DecimalFormat, deve-se incluir o pacote de classes text, ou seja, import java.text.*; 2* soLucao \ BXERC\CAP3\JAVA\EX2_B. java € \EXERC\CAP3\JAVA\EX2_B.class 34 FUNDAMENTOS DA PROGRAMACAO DE COMPUTADORES 34 soLucéo \BXERC\CAP3\JAVA\EX2_C. java € \EXERC\CAP3\JAVA\EX2_C.class * 3, Faca um programa que receba trés notas e seus respectivos pesos, calcule ¢ mostre a média ponderada dessas notas. ARRSHEE) 1+ sovucto: ALGORITMO DECLARE notal, nota2, nota3, pesol, peso2, peso3, media NUMERICO LEIA notal, nota2, nota3, pesol, peso2, peso3 media < (notai * peso + nota? * peso2 + nota3 + peso3)/(pesol + \ peso2 + peso3) ESCREVA media FIM_ALGORITMO. 24 soLucao ALGORITMO DECLARE notal, nota2, nota3, pesol, peso2, peso3 NUMERICO somal, soma2, soma3, total, media NUMERICO EIA notal, nota2, nota3, pesol, peso2, peso3 somal € nota * pesol soma2 < nota2 * peso2 soma3 € nota3 * peso3 total € pesol + peso2 + peso3 media €-(gomal + soma2 + soma3) /total ESCREVA media PIM_ALGORITMO, % IA soLugao: WA |\BXERC\CAP3\PASCAL\EX3_A.PAS € \EXERC\CAP3\PASCAL\EX3_A.EXE 24 soLucao: \EXERC\CAP3\PASCAL\EX3_B.PAS € \EXERC\CAP3\PASCAL\EX3_B.EXE 3* soLugdo: \EXERC\CAP3\PASCAL\EX3_C.PAS € \EKERC\CAP3\PASCAL\EX3_C.EXE 14 soLucao: \EKERC\CAP3\C++\EX3_A.CPP @ \EXERC\CAP3\C++\EX3_A.EXE 2* soLucao: \EXERC\CAP3\C++\EX3_B.CPP € \EKERC\CAP3\C++\BX3_B.BXE 34 soLucAo: \ BKERC\CAP3\C++\EX3_C.CPP € \EXERC\CAP3\C++\EX3_C.EXE 14 soLugao: \ BKERC\CAP3\JAVA\EX3_A. java € \BXERC\CAP3\JAVA\EX3_A.class CAPITULO 3 ESTRUTURA SEQUENCIAL 35 24 sovucso \BXERC\CAP3\JAVA\EX3_B.java @ \EXERC\CAP2\JAVA\EX3 B.class 34 soLucao: \EXERC\CAP3\JAVA\EX3_C. java € \BXERC\CAP3\JAVA\EX3 C.class 4. Faga um programa que receba o salério de um funcionario, calcule e mostre o novo saléirio, sabendo-se que este sofreu um aumento de 25%, (DARESRTRENY 1+ sovucao ALGORTTMO DECLARE sal, novosal NUMERTCO LBLA sal novosal € sal + eal * 25/100 ESCREVA novosal FIM_ALGORTTHO 24 soLucAo: ALGORTTMO DECLARE sal, aumento, novosal NUMERICO LEIA sal aumento € sal * 25/100 novosal < sal + aumento ESCREVA novosal FIM_ALGORTTMO 1 soLucko \EXERC\CAP3\PASCAL\EX4_A.PAS € \EXERC\CAP3\PASCAL\EX4_A. EXE 2* soLusio: \EXERC\CAP3\PASCAL\EX4_B.PAS € \EXERC\CAP3\PASCAL\EX4_B. EXE 1 soLucao: \EXERC\CAP3\C++\EX4_A.CPP € \EXERC\CAP3\C++\EX4_A. EXE 24 soLucao \EXERC\CAPS\C++\BX4_B.CPP € \EXERC\CAP3\C++\BX4_B.EXE 14 soLugao: \EXERC\CAP3\JAVA\EX4_A.java € \BKERC\CAP3\JAVA\EX4_A. class 24 soLucAo: \EXERC\CAP3\JAVA\EX4_B.java € \BXERC\CAP3\JAVA\EX4_B.class 5. Faga um programa que receba o salério de um funcionério ¢ o percentual de aumento, calcule e mostre © valor do aumento € 0 novo salério. 36 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES (ARERR) soiucto ALGORITMO DECLARE sal, perc, aumento, novosal NUMERICO LEIA sal, perc aumento © sal * perc/100 ESCREVA aumento novosal € sal + aumento ESCREVA novosal FIM_ALGORITMO. SotugAo: \BXERC\CAP3\PASCAL\EXS .PAS € \EXERC\CAP3\PASCAL\EKS. EXE Sowucao: \EXERC\CAP3\C++\EXS.CPP € \EKERC\CAP3\C++\EXS. EXE SotuAo: \EXERC\CAP3\JAVA\EXS. java € \EXERC\CAP3\JAVA\EXS.class 6. Faca um programa que receba o saldrio base de um funcionério, calcule € mostre o saldrio a receber, sabendo-se que 0 funcionario tem gratificago de 5% sobre o salério base e paga imposto de 7% sobre este salario, MARESRERSTY Souucac ALGORITMO DECLARE sal, salreceber, grat, imp NUMERICO LEIA sal grat € sal * 5/100 imp © sal * 7/100 salreceber € sal + grat - imp ESCREVA salreceber PIM_ALCORITMO Soucao’ \EXERC\CAP3\PASCAL\EX6. PAS € \EXERC\CAP3\PASCAL\EX6. EXE So.ucao: A \BXERC\CAP3\C++\EX6.CPP © \EXERC\CAP3\C++\EX6. EXE Soucao: LZ \BKERC\CAP3\JAVA\EX6 . java € \EXERC\CAP3\JAVA\EX6.class 7. Faca um programa que receba o salario base de um funcionério, calcule e mostre o seu salario a receber, sabendo-se que o funcionério tem gratificagiio de RS 50 € paga imposto de 10% sobre o salirio base. CAPITULO 3. ESTRUTURA SEQUENCIAL 37 (MNARESRERBI So.ucso ALGORTTHO DECLARE sal, salreceber, imp NUMERICO LEIA sal imp < sal * 10/100 salreceber < sal + 50 - imp ESCREVA salreceber FIM_ALGORTTMO. Sotugao LZ \BXERC\CAP3\PASCAL\EX7.PAS € \EXERC\CAP3\PASCAL\EXT. EXE ‘ SoLu¢Ao: Y \BKERC\CAP3\C++\EX7.CPP € \BXERC\CAP3\C1 1 \EX7- EXE SoLucao: \EXERC\CAP3\JAVA\EX7. java € \EXERC\CAP3\JAVA\EX7.class 8. Faca um programa que receba o valor de um depésito e 0 valor da taxa de juros, calcule ¢ mostre o valor do rendimento e 0 valor total depois do rendimento. (ARERIBN) souucto: ALGORITMO DECLARE dep, taxa, rend, total NUMERICO LEIA dep, taxa rend € dep * taxa/100 total € dep + rend ESCREVA rend ESCREVA total FIM_ALGORITMO. So.ugao: \EXERC\CAP3\PASCAL\EX8.PAS € \EXERC\CAP3\PASCAL\EX8. EXE SoLugao: \EXERC\CAP3\C++\EX8.CPP © \EXERC\CAP3\C++\EX8 .EXE SoLucao \BXERC\CAP3\JAVA\EX®.java € \EXERC\CAP3\JAVA\EX8.class ad ial Q. Faca um programa que calcule e mostre a area de um tridngulo. Sabe-se que: Area = (base * altura)/2 Sotu¢so: ALGORTTMO DECLARE base, altura, area NUMERICO LEIA base, altura area @ (base * altura) /2 ESCREVA area FIM_ALGORTTMO. 38 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES Sovusho: \EXERC\CAP3\PASCAL\EX9.PAS € \BXERC\CAP3\PASCAL\EXS.EXE Sovugao: \EXERC\CAP3\JAVA\EX9. java € \EXERC\CAP3\JAVA\EXS class 10. Faga um programa que calcule e mostre a area de um circulo. Sabe-se que: Area = 1 * R? (ARERR Sorucac ALGORITMO DECLARE area, raio NUMERICO LEIA raio area @ 3.1415 * raio? ESCREVA area FIM_ALGORITMO. 14 sovugao: \BKERC\CAP3\PASCAL\EX10_A.PAS € \EKERC\CAP3\PASCAL\EX10_A.EXE 24 soucso: \EXERC\CAP3\PASCAL\EX10_B.PAS € \EXERC\CAP3\PASCAL\EX10_B.EXE 34 soLugao: \ BXERC\CAP3\PASCAL\EX10_C.PAS € \EKERC\CAP3\PASCAL\EX10_C. EXE Esse programa usou algumas fungdes predefinidas da linguagem PASCAL que estio descritas na Seco 3.2.6. [2 14 soLucAo: LAREN \exmec\cara\ce<\eero_a.cer © \exmecs\enpa\cos\encte_ ace 24 soLucAo: \ BXERC\CAP3\C++\EX10_B.CPP € \EXERC\CAP3\C++\BX10_B. EXE 3* soLucAo: \ BXERC\CAP3\C++\EX10_C.CPP € \EXERC\CAP3\C++\BX10_C.EXE Esse programa usou algumas funges predefinidas da linguagem C/C++ que esto descritas na Se¢do 3.3.6. 14 soLucao: \BXERC\CAP3\JAVA\EX10_A. java € \EXERC\CAP3\JAVA\EX10_A.class CAPITULO 3 ESTRUTURA SEQUENCIAL 39 24 soLucao: \BXERC\CAP3\JAVA\EX10_B. java € \BXERC\CAP3\JAVA\BX10_B.class 3* sovugao: \BXBRC\CAP3\JAVA\EX10_C. java € \BKERC\CAP3\JAVA\EX10_C.class Esse programa usou algumas fungdes predefinidas da linguagem Java que esto descritas na Segao 3.4.6. * 11. Faca um programa que receba um nimero positivo e maior que zero, calcule e mostre: a) 0 mimero digitado ao quadrado; b) 0 ndimero digitado ao cubo: ©) araiz quadrada do numero digitado: d) a raiz cfbica do niimero digitado. (OARESHIEIE) Soucao, ALGORITMO DECLARE num, quad, cubo, r2, 13 NUMERICO LEIA num quad © nun cubo — num x2 &— Vnun 3 © Vnun ESCREVA quad, cubo, r2, ¥3 FIM_ALGORITNO. SoLugao 4 \BXBRC\CAP3\PASCAL\EX11.PAS € \EXBRC\CAP3\PASCAL\EX11 -EXE Esse programa usou algumas fungdes predefinidas da linguagem PASCAL que esto descritas na Seco 3.2.6. Z SoLugac % \BXBRC\CAP3\C++\BX11.CPP @ \EXERC\CAP3\C++\EX11-EXB Esse programa usou algumas fungdes predefinidas da linguagem C/C++ que esto descritas na Segfo 3.3.6. Sovugao \BXBRC\CAP3\JAVA\EX11.java € \EXBRC\CAP3\JAVA\EX11.class Esse programa usou algumas fungdes predefinidas da linguagem JAVA que estdo descritas na Seo 3.4.6. 12. Faca um programa que receba dois niimeros maiores que zero, calcule e mostre um elevado ao outro. WOAERBBNY souucao ALGORITMO DECLARE num, num2, r1, 12 NUMERICO LEIA num, num2 rl © nomi“ 40 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES. 2 & num ESCREVA ri, r2 FIM_ALGORITNO. SoLuGAao: MABE raxccn vacate vd « eeanawn seca Esse programa usou algumas fungdes predefinidas da linguagem PASCAL que esto descritas na Seco 3.2.6. Esse programa usou algumas fungdes predefinidas da linguagem C/C++ que esto descritas na Segdo 3.3.6. Sovucdo: Esse programa usou algumas fungdes predefinidas da linguagem JAVA que estio descritas na Segdo 3.4.6. w! 13. Sabe-se que: 1 pé= 12 polegadas | jarda = 3 pés 1 milha = 1.760 jardas Faga um programa que receba uma medida em pés, faga as converses a seguir e mostre os resultados. a) polegadas; ») jardas; c) milhas. MDARSSRTHENY souucso ALGORITHO DECLARE pes, polegadas, jardas, milhas NUMERICO LEIA pes polegadas € pes * 12 jardas © pes / 3 milhas € jardas / 1760 ESCREVA polegadas, jardas, milhas FIM_ALGORTTWO. Sovugao: \EXERC\CAP3\PASCAL\BX13.PAS € \EXERC\CAP3\PASCAL\EX13. EXE Sovugao: \BXERC\CAP3\C++\BX13.CPP € \EXERC\CAP3\C++\BX13. EXE Sovugao: ad ia if \BXBRC\CAP3\JAVA\EX13. java € \EXERC\CAP3\JAVA\EX13.class CAPITULO 3 ESTRUTURA SEQUENCIAL a ‘ 14. Faca um programa que receba o ano de nascimento de uma pessoa e o ano atual, calcule e mostre: a) a idade dessa pessoa; b) quantos anos ela teré em 2050. (OARBSHIABEN SoLucto: ‘ALGORITMO DECLARE ano_atual, ano_nascimento, idade_atual, idade 2050 NUMERICO BIA ano_atual LBIA ano_nascimento idade_atual @ ano_atual - ano_nascimento idade_2050 <= 2050 - ano_nascimento ESCREVA idade_atual ESCREVA idade_2050 FIM_ALGORITNO. SoLucao \BXERC\CAP3\PASCAL\EX14.PAS @ \EXERC\CAP3\PASCAL\EX14. EXE SoLugao J \ BKERC\CAP3\C++\BX14.CPP € \EXERC\CAP3\C++\EX14. EXE SoLugao \BXERC\CAP3\JAVA\EX14. java € \EXERC\CAP3\JAVA\EX14.class ‘ 15. O custo ao consumidor de um carro novo é a soma do prego de fabrica com o percentual de lucro do distribuidor e dos impostos aplicados ao prego de fabrica. Faga um programa que receba o pre¢o de fabrica de um veiculo, o percentual de lucro do distribuidor e o percentual de impostos, calcule e mostre: a) o valor correspondente ao lucro do distribuidor; b) 0 valor correspondente aos impostos; ©) oprego final do veiculo. (AREERHIBIN) Sovucto ‘ALGORTTNO DECLARE p fab, perc_d, perc i, vir_d, vir_i, p_final NUMERICO BIA p_fab LEIA perc_d LBIA perc_i vir_d © p_fab + perc_d / 100 vizli © p_fab * perc_i / 100 pfinal © p_fab + vird + vir i ESCREVA vir_d ESCREVA vir_i ESCREVA p_final FIM_ALGORITHO SoLugao \BXERC\CAP3\PASCAL\EX15.PAS € \EKERC\CAP3\PASCAL\EX1S EXE SoLugao \BXERC\CAP3\C++\BX15.CPP € \BXERC\CAP3\C++\BX15. EXE. 42 FUNDAMENTOS DA PROGRAMAGKO DE COMPUTADORES, SoLu¢Ao: \EKERC\CAP3\JAVA\BX15. java € \EXERC\CAP3\JAVA\EX15 .class 16. Faga um programa que receba o niimero de horas trabalhadas e o valor do salério minimo, calcule € mostre o saldrio a receber seguindo estas regras: a) ahora trabalhada vale a metade do salario minimo. b) 0 salario bruto equivale ao mimero de horas trabalhadas multiplicado pelo valor da hora trabalhada. ©) oimposto equivale a 3% do salirio bruto. 4) o salario a receber equivale ao salario bruto menos o imposto. MDARESRBEN § Sorucac ALGORITMO DECLARE horas_t, vir_sal_min, vlr_hora_t NUMERICO "> viral bru, imp, vir_sal_lig NUMERICO LEIA horas_t LEIA vir_sal_min vir_hora_t € viz_sal_min / 2 vir_eal_bru ¢ vir_hora_t * horas_t imp € vir_sal_bru* 3 7 100 viz_sal_lig @ vir_sal_bru - imp ESCREVA vlr_eal_liq FIM_ALGORITWO) Zz SoLugao: \EXERC\CAP3\PASCAL\EX16.PAS € \EXERC\CAP3\PASCAL\EX16. EXE e SoLugao \EXERC\CAP3\C++\EX16.CPP € \EXERC\CAP3\C++\EX16 .EXE e SoLugAao: \EXERC\CAP3\JAVA\EX16. java € \EXERC\CAP3\JAVA\EX16 .class * 17. Um trabalhador recebeu seu salirio e o depositou em sua conta bancéria. Esse trabalhador emitiu dois cheques e agora deseja saber seu saldo atual. Sabe-se que cada operacao bancaria de retirada paga CPMF de 0,38% e 0 saldo inicial da conta esta zerado. (DARESRIET) So.ucao ALGORTTMO DECLARE salario, chequel, cheque2, cpmf1, cpmf2, saldo NUMERICO LEIA salario LEIA chequel LEIA cheque2 cpmf1 chequel * 0.38 / 100 cpmé2 < cheque2 * 0.38 / 100 saldo ¢ salario - cheque1 - cheque2 - cpmf1 - cpmf2 ESCREVA saldo PIM_ALGORITNO. Sorugao \EXERC\CAP3\PASCAL\BX17.PAS € \EXERC\CAP3\PASCAL\EX17. EXE CAPITULO 3 ESTRUTURA SEQUENCIAL 43 Sotugho: Y \EXERC\CAP3\C++\EX17.CPP @ \EXERC\CAP3\C++\EX17.EXE Sorugao: 2 \EXERC\CAP3\JAVA\EX17. java € \EXERC\CAP3\JAVA\EX17.class 18. Pedro comprou um saco de ragio com peso em quilos. Ele possui dois gatos, para os quais fornece a quantidade de raco em gramas. A quantidade didria de rago fornecida para cada gato é sempre a mesma. Faga um programa que receba o peso do saco de ragiio e a quantidade de ragdo fornecida para cada gato, calcule e ‘mostre quanto restara de ragdo no saco apés cinco dias. (QARESREHIET) Sovucto ALGORITWO DECLARE peso_saco, racao_gatol, racao_gato2, total_final NUMERICO LBIA peso_saco UBIA racao_gatol LEIA racao_gato2 racao_gatol < racao_gatol / 1000 racao_gato2 « racao_gato2 / 1000 total_final @ peso_saco - 5 * (racao_gatol + racao_gato2) ESCREVA total. final FIM_ALGORITMO. SoLucao \BXERC\CAP3\PASCAL\BX18. PAS € \EXBRC\CAP3\PASCAL\EX18 . EXE o.| a = \BXBRC\CAP3\C++\BX18.CPP € \BXERC\CAP3\C++\EK18.EXE So.ugao: \EXERC\CAP3\JAVA\EX18. java € \BXERC\CAP3\JAVA\EX18 .class 19. Cada degrau de uma escada tem X de altura, Faga um programa que receba essa altura e a altura que o usuario deseja alcangar subindo a escada, calcule e mostre quantos degraus ele deverd subir para atingir seu objetivo, sem se preocupar com a altura do usuério. Todas as medidas fornecidas devem estar em metros. ALGORTTMO DECLARE a_degrau, a_usuario, gtd degraus NUMBRICO LEIA a_degrau LEIA a_usuario SoLugao gtd_degraus @ a_usuario / ESCREVA qtd_degraus FIM_ALGORITMO degrau ‘ SoLugao \BXERC\CAP3\PASCAL\EX19.PAS € \EXERC\CAP3\PASCAL\EX19. EXE a4 FUNDAMENTOS DA PROGRAMAGKO DE COMPUTADORES SotusAo: \EXBRC\CAP3\C++\EX19.CPP @ \EXERC\CAP3\C++\EX19. EXE SoLugao: \EXBRC\CAP3 \JAVA\BX19. java € \BXERC\CAP3\JAVA\EX19.class 20. Faca um programa que receba a medida do angulo formado por uma escada apoiada no chao e encostada na parede e a altura da parede Medida da escada onde est a ponta da escada, calcule e mostre a medida desta escada. Altura da parede (MDARESRAREN! souucac ‘ALGORITMO DECLARE ang, alt, eecada, radiano NUMERICO LEIA ang EEIA alt, radiano © ang * 3.14 / 180 escada € alt / seno(radiano) ESCREVA escada FIM_ALGORTTHO SoLu¢gAo: NA \EXERC\CAP3\PASCAL\EX20.PAS € \EXERC\CAP3\PASCAL\EX20. EXE Sotucao NZ \BXERC\CAP3\C++\EX20.CPP € \EXERC\CAP3\C++\EX20. EXE Sovucho: Y \EXERC\CAP3\JAVA\EX20. java € \EXERC\CAP3\JAVA\EX20.class 21, Uma pessoa deseja pregar um quadro em uma parede. Faga um programa para calcular e mostrar a que distancia a escada deve estar da parede. A pessoa deve fornecer o tamanho da escada e a altura em que deseja pregar 0 quadro. Lembre-se de que 0 tamanho da escada deve ser maior que a altura que se deseja alcancar. Medida da escada X ~Alluia em que desejo pregar 0 quadio Y= Disténcio em que devets licar o escade Distancia que a escada esti da parede | 7 ~ Ramanho da escodo DANBSRAHENE Sowucto: ALGORITMO DECLARE X, ¥, Z NUMERICO LEIA Z LEIA X Yew-x ve W ESCREVA ¥ PIM_ALGORITNO. CAPITULO 3 ESTRUTURA SEQUENCIAL 45 Sorucac \EXERC\CAP3\PASCAL\BX21.PAS € \EXERC\CAP3\PASCAL\EX21.EXE SoLugao \EXERC\CAP3\C++\BX21.CPP @ \BXERC\CAP3\C++\BX21. EXE SoLugao \ BKERC\CAP3 \JAVA\EX21. java @ \EXERC\CAP3\JAVA\EX21.class 22. Sabe-se que o quilowatt de energia custa um quinto do salério minimo. Faga um programa que receba © valor do salério minimo ¢ a quantidade de quilowatts consumida por uma residéncia, calcule e mostre: a) 0 valor de cada quilowatt; b) 0 valor a ser pago por essa residéncia; ©) ovalor a ser pago com desconto de 15%. (WOARREREIBN Sovuca ALGORITWO DECLARE vir_sal, gtd kw, vir_kw, vix_reais, desc, vir_desc NUMERICO LEIA viz_sal BIA gtd_kw vilr_kw © vir_sal / 5 vir_veais © vir_kw * gtd_kw dese @ vir_reais * 15 / 100 vir_desc ( viz_reais - desc ESCREVA vir_kw ESCREVA vir reais ESCREVA vix_desc FIM_ALGORITMO Sowucho: \BXERC\CAP3\PASCAL\EX22..PAS © \EXERC\CAP3\PASCAL\EX22.EXE SoLucho: \BRBRC\CAPS\C++\BX22.CPP_€ \EXERC\CAP3\C++\BK22. EXE Sorugao \EKERC\CAP3 \JAVA\EX22. java € \EXERC\CAP3\JAVA\EX22.class 23. Faca um programa que receba um niimero real, calcule e mostre: a) a parte inteira desse mimero; b) a parte fracionéria desse niimero; ©) oarredondamento desse mimero. (UARESRRHEN) Souucao: ALGORITMO DECLARE num, i, £, a NUMERICO LEIA nun i © parte inteira de num # num -i a © arredonda (num) 46 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES ESCREVA i ESCREVA £ ESCREVA a PIM_ALGORITMO SOLUGAO (ARREDONDANDO © NUMERO COMO NA MATEMATICA) \BXERC\CAP3\PASCAL\EX23.PAS € \EXERC\CAP3\PASCAL\EX23. EXE 14 SoLUGAO (ARREDONDANDO © NUMERO PARA CIMA) o,| \BXERC\CAP3\C++\EX23_A.CPP € \EXERC\CAP3\C++\EX23_A.EXE 24 SOLUGAO (ARREDONDANDO © NUMERO PARA BAIXO) \BXERC\CAP3\C++\EX23_B.CPP € \EXERC\CAP3\C++\EX23_B. EXE IA SOLUGAO (ARREDONDANDO © NUMERO PARA CIMA) \BXERC\CAP3\TAVA\EX23_A. java € \BKERC\CAP3\JAVA\EX23_A. class 24 SOLUGAO (ARREDONDANDO 0 NUMERO PARA BAIXO) \BXERC\CAP3\JAVA\EX23_B. java € \EKERC\CAP3\JAVA\EX23_B.class 24. Faga um programa que receba uma hora formada por hora ¢ minutos (um nimero real), calcule e mostre a hora digitada apenas em minutos. Lembre-se de que: © para quatro e meia, deve-se digitar 4.30; * os minutos vao de 0 a 59. DARBSRAHBIN) So.ucao ALGORTTMO DECLARE hora, h, m, conversao NUMERICO LEIA hora h © pegar a parte inteira da variavel hora m €& hora - conversao = (h * 60) + (m* 200) ESCREVA conversao FIM_ALGORTTMO. Sovugao: \BXERC\CAP3\PASCAL\EX24.PAS € \EXERC\CAP3\PASCAL\EX24 . EXE Sovugao: \BXERC\CAP3\C++\EX24.CPP € \EXERC\CAP3\C++\EX24. EXE Sotugao 4 \BKERC\CAP3\JAVA\EX24. java € \EXERC\CAP3\JAVA\EK24.class 25. Faga um programa que receba o custo de um espeticulo teatral e o prego do convite desse espeticulo, Esse programa deverd calcular e mostrar a quantidade de convites que devem ser vendidos para que pelo menos ‘o custo do espetaculo seja alcangado. CAPITULO 3 ESTRUTURA SEQUENCIAL a7 (VADREREHBN) Sorucao ALGORITMO DECLARE custo, convite, gtd NUMERICO ERIA custo LEIA convite gtd € custo / convite ESCREVA gtd FIM_ALGORITMO. SoLugao: \BXERC\CAP3\PASCAL\EX25.PAS € \EXERC\CAP3\PASCAL\BX25. EXE Sotugao: 4 \BXERC\CAP3\C++\EX25.CPP € \EXERC\CAPS\C++\Bx25. EXE 3 SoLugao SA \EXERC\CAP3 \JAVA\EX25.java € \EXERC\CAP3\JAVA\EX25 class EXERCICIOS PROPOSTOS 1, Faga um programa que receba dois niimeros, calcule e mostre a subtragio do primeiro nimero pelo segundo. 2. Faga um programa que receba trés niimeros, calcule ¢ mostre a multiplicagio desses niimeros. 3. Faga um programa que receba dois nimeros, calcule e mostre a divisdo do primeiro nimero pelo segundo. Sabe-se que 0 segundo niimero néio pode ser zero, portanto, no é necessério se preocupar com validagoes. 4. Faca um programa que receba duas notas, calcule e mostre a média ponderada dessas notas, considerando peso 2 para a primeira e peso 3 para a segunda. 5. Faga um programa que receba o prego de um produto, calcule e mostre o novo prego, sabendo-se que este sofreu um desconto de 10%, 6. Um funcionario recebe um salario fixo mais 4% de comissfo sobre as vendas. Faga um programa que receba 0 salirio fixo do funcionario o valor de suas vendas, calcule e mostre a comissao e seu salério final. 7. Faga um programa que receba 0 peso de uma pessoa, calcule e mostre: a) o novo peso, se a pessoa engordar 15% sobre o peso digitado; b) 0 novo peso, se a pessoa emagrecer 20% sobre o peso digitado. 8. Faca um programa que receba o peso de uma pessoa em quilos, calcule e mostre esse peso em gramas. 9. Faca um programa que calcule e mostre a drea de um trapézio. Sabe-se que: A= ((base maior + base menor) * alturay/2 10. Faga um programa que calcule e mostre a area de um quadrado. ‘Sabe-se que: A = lado * lado 48 FUNDAMENTOS DA PROGRAMACAO DE COMPUTADORES 11. Faga um programa que calcule e mostre a area de um losango Sabe-se que: A = (diagonal maior * diagonal menor)/2 12. Faga um programa que receba o valor do salario minimo e 0 valor do salério de um funcionario, calcule ¢ mostre a quantidade de salarios minimos que esse funcionério ganha. 13. Faga um programa que calcule ¢ mostre a tabuada de um nimero digitado pelo usuario. 14. Faga um programa que receba o ano de nascimento de uma pessoa e 0 ano atual, calcule e mostre: a) aiidade dessa pessoa em anos; b) a idade dessa pessoa em meses; ©) aiidade dessa pessoa em dias; 4) aidade dessa pessoa em semanas. 15. Jodo recebeu seu salério e precisa pagar duas contas atrasadas. Por causa do atraso, ele deverd pagar multa de 2% sobre cada conta. Faga um programa que calcule e mostre quanto restara do salério de Jodo. 16. Faca um programa que receba o valor dos catetos de um tridngulo, calcule e mostre o valor da hipotenusa, 17. Faga um programa que receba 0 raio, calcule e mostre: a) 0 comprimento de uma esfera; sabe-se que C= 2 * m * R; D) area de uma esfera; sabe-se que A= x + R?; ©) volume de uma esfera; sabe-se que V=% * m * RY 18. Faca um programa que receba uma temperatura em Celsius, calcule e mostre essa temperatura em Fahre- nheit, Sabe-se que F = 180*(C + 32/100. 19. Sabe-se que, para iluminar de maneira correta os cémodos de uma casa, para cada m? deve-se usar 18 W de poténcia. Faga um programa que receba as duas dimensdes de um comodo (em metros), calcule € mostre a sua drea (em m?) a poténcia de iluminagaio que deverd ser utilizada. 20. Facaum programa que receba a medida do angulo formado por uma escada apoiada no chao e a distancia em que a escada esta da parede, calcule ¢ mostre a medida da escada para que se possa alcancar sua ponta. Medida da escada Distancia que a escada est da parede 21. Faca um programa que receba o niimero de horas trabalhadas, o valor do salério minimo e o mimero de horas extras trabalhadas, calcule e mostre o salério a receber, seguindo as regras al a) a hora trabalhada vale '/s do salario minimo; b) ahora extra vale /« do salério minimo; ©) © salério bruto equivale ao mimero de horas trabalhadas multiplicado pelo valor da hora trabalhada; 4) a quantia a receber pelas horas extras equivale ao niimero de horas extras trabalhadas multiplicado pelo valor da hora extra; €) 0 salério a receber equivale ao salério bruto mais # quantia a receber pelas horas extras. CAPITULO 3 ESTRUTURA SEQUENCIAL 49 22. Faga um programa que receba o niimero de lados de um poligono convexo, calcule e mostre o ntimero de diagonais desse poligono. Sabe-se que ND = N * (N ~3)/2, onde N é 0 numero de lados do poligono. 23. Faga um programa que receba a medida de dois angulos de um tridngulo, calcule e mostre a medida do terceiro angulo, Sabe-se que a soma dos angulos de um tridngulo é 180 graus. 24. Faca um programa que receba a quantidade de dinheiro em reais que uma pessoa que vai viajar possui. Ela vai passar por varios paises ¢ precisa converter seu dinheiro em délares, marco alemio ¢ libra esterlina, Sabe-se que a cotagio do délar é de RS 1,80, do marco alemio é de RS 2,00 ¢ da libra esterlina é de RS 1,57. programa deve fazer as conversdes € mostri-las. 25. Faga um programa que receba uma hora (uma varidvel para hora e outra para minutos), calcule e mostre: a) ahora digitada convertida em minutos; b) 0 total dos minutos, ou seja, os minutos digitados mais a conversdo anterior; ©) 0 total dos minutos convertidos em segundos. 4.1 ESTRUTURA CONDICIONAL EM ALGORITMOS 4.1.1 ESTRUTURA CONDICIONAL SIMPLES SE condic&o ENTAO comando O comando 86 sera executado se a condigao for verdadeira. Uma condigao é uma comparacao que possui dois valores possiveis: verdadeiro ou falso. SE condigao ENTAO INfcro comando1 comando2 comando3 FIM Os comandos 1, 2€ 3 86 serdo executados se a condi cdo for verdadeira. As palavras rfcro e Frm serio neces- sérias apenas quando dois ou mais comandos forem executados. 4.1.2 ESTRUTURA CONDICIONAL COMPOSTA 3E condisac ENTAO comandol SENAO comando2 Se a condi ¢ao for verdadeira, sera executado 0 comando1; caso contririo, sera executado 0 comando2. SE condig&o ENTAO INICIO comando} comandoz FIM SENKO INiCIO comando3 comandos FIM Se a condigao for verdadeira, 0 comandoi € 0 comando2 sero executados; caso contrario, 0 comando3 € 0 comando4 sero executados. CAPITULO 4 _ESTRUTURA CONDICIONAL 51 4.2 ESTRUTURA CONDICIONAL EM PASCAL 4.2.1 ESTRUTURA CONDICIONAL SIMPLES IF condig&o THEN comando; O comando $6 serit executado se a condi gio for verdadeira. Uma condig&o ¢ uma comparagio que possui dois valores possiveis: verdadeiro ou falso. IF condig&o THEN BEGIN comandol ; comando2 ; comando3 ; END, Os comandos 1, 2 € 3 86 serdo executados se a condicao for verdadeira. 4.2.2 ESTRUTURA CONDICIONAL COMPOSTA IF condigado THEN comando1 ELSE comando2; Se a condigdo for verdadeira, seri executado 0 comando1; caso contririo, seré executado 0 comando2. IF condigao THEN BEGIN comandol ; comando2 + END ELSE BEGIN comando3 ; comando4 ; END; Sea condigao for verdadeira, 0 comandoi € 0 comando2 serdo executados; se for falsa, 0 comando3 € 0 comando4 serdio executados. (NGRBERERSN) Antes do comando exsz nfo existe ponto-e-virgula. 4.2.3 ESTRUTURA CASE Em alguns programas, existem situagdes mutuamente exclusivas, isto , se uma situagao for executada, as demais no ser&o. Quando for este o caso, um comando seletivo seré o mais indicado, ¢ esse comando, em PASCAL, tem a seguinte sintaxe: CASE seletor OF lista de alvosi: comandot; Lista de alvos2: comando2; alvo3: comando3 ; alvod: BEGIN comandod ; comandos ; END; END, Seo seletor atingir a lista de alvosl, 0 comando1 sera executado; se atingir a lista de alvos2, 0 comando2 seri executado; se atingir 0 alvo3, 0 comando2 sera executado; se atingir 0 alvo4, entio 0 comandos € 0 coman- ao serio executados. Se nenhum alvo for atingido, nada sera executado. 52 FUNDAMENTOS DA PROGRAMACAO DE COMPUTADORES CASE seletor oF lista de alvosi: BEGIN comandot ; comando2 ; END; lista de alvos2: comando3; ELSE comando4; END; Se 0 seletor atingir a lista de alvosl, 0 comandoi € 0 comando? sero executados; se atingir a lista de alvos2, © comando’ serd executado. Se nenhum alvo for atingido, sera executado 0 comandos. s alvos podem ser valores iinicos, listas de valores (separados por virgulas) ou faixas de valores, como no exemplo que se segue. Exemplo: program teste; uses crt; var i: integer; begin clracr; writeln('Digite um ndmero') ; readin (i); case i of 1: writeln('Namero 1'); 2,5,6:writeln('NGmero 2 ou nfimero $ ou ntimero 6"); 7. .10:writeln('NGmero entre 7 © 10"); else writeln('outro nimero') ; end; readin; end. A restrigio da estrutura case & que 0 selecor s6 pode ser uma variavel do tipo char, integer ou boolean. 4.2.4 OPERADORES LOGICOS s principais operadores l6gicos so: AND, oR € Nor, que significam e, ou, ndo e so usados para conjuncao, disjungdo e negacdo, respectivamente. (UGRBERVAGREN) Na linguagem PASCAL, quando existe mais de uma condicdo, elas devem estar entre parénteses. Exemplos: IF x=3 THEN WRITELN('NGmero igual a 3'); ‘No exemplo, existe apenas uma condig&o, logo, os parénteses so opcionais. IP (X > 5) AND (X < 10) THEN WRITELN('NGmero entre 5 © 10"); CAPITULO 4 _ESTRUTURA CONDICIONAL 53 No exemplo anterior, existe mais de uma condi condigao deve estar entre parénteses. i0, logo, os parénteses so obrigatérios, ou seja, cada IF ((x = 5) AND (¥ = 2)) OR (¥ = 3) ‘THEN WRITELN('X € igual a 5 e ¥ é igual a 2, ou ¥ 6 igual a 3"); ‘No exemplo acima, existe mais de uma condigdo e mais de um tipo de operador légico, logo, além dos parénteses de cada condigdo, devem existir ainda parénteses que indiquem a prioridade de execugdo das con- digdes. Nesse exemplo, as condigdes com o operador AND, ou seja, ((x = 5) AND (¥ = 2)), Serio testadas, e seu resultado serd testado com a condig&o oR (¥ = 3). IF (X = 5) AND ((¥ = 2) OR (¥ = 3)) THEN WRITELN('X € igual a 5, e ¥ € igual a 2 ou ¥ é igual a 3'); Neste exemplo, existe mais de uma condicao e mais de um tipo de operador l6gico, logo, além dos parén- teses de cada condigio, devem existir ainda parénteses que indiquem a prioridade de execugao das condigdes. Aqui, as condigdes com o operador or, ou seja, ((¥ = 2) OR (¥ = 3)), serdo testadas, e seu resultado sera testado com a condigao aND (x = 5). 4.3 ESTRUTURA CONDICIONAL EM C/C++ 4.3.1 ESTRUTURA CONDICIONAL SIMPLES if (condigso) comando; O comando s6 sera executado se a condig&o for verdadeira. Uma condi gao é uma comparagio que possui dois valores possiveis: verdadeiro ou falso. if (condig&o) { comandel; comando2; comando3 ; } Em C/C++, toma-se obrigatéria a utilizagdo de chaves quando existe mais de um comando a executar. Os comandos entre chaves { } s6 serdo executados se a condi¢ao for verdadeira. 4.3.2 ESTRUTURA CONDICIONAL COMPOSTA if (condicao) comande2 ; elee comando2 ; Sea condi&o for verdadeira, sera executado 0 comandot; se for falsa, serd executado 0 comando2. if, condigao { ‘comandot ; comando2 ; else { comando3 ; comandos ; } 54 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES: Se a condigso for verdadeira, 0 comando2 € 0 comando? serio executados; caso contrario, 0 comandos € © comandos sero executados. 4.3.3 ESTRUTURA CASE Em alguns programas, existem situagSes mutuamente exclusivas, isto ¢, se uma situagdo for executada, as. demais ndo serdo. Quando for este 0 caso, um comando seletivo & 0 mais indicado, e esse comando em C/C++ tem a seguinte sintaxe: switch (varivel) { cage valor: lista de comandos; break; case valor2: lista de comandos; break; default: lista de comandos; } © comando switch (varsave1) avalia o valor de uma variavel para decidir qual case sera executado. Cada case esti associado a UM possivel valor da variavel, que deve ser, obrigatoriamente, do tipo char, unsigned char, int, unsigned int, short int, long OU unsigned long. (O comando break deve ser utilizado para impedir a execugaio dos comandos definidos nos cases subseqiientes. ‘Quando o valor da variével nao coincidir com aqueles especificados nos cases, serd executado entio 0 default. Exemplo: finclude #include void main() { int i; elrser(); cout<<"Digite um namero "; awitch (4) { case 1:coute<"Namero 1"; break: case 2:coute<"Némero 2"; break; default :cout<<"Nimero diferente de 1 de 2"; } getch(); } 4.3.4 OPERADORES LOGICOS (Os principais operadores ligicos s4o: as, || € 1, que significam e, ou, nde sdo usados para conjunc, disjungao negagao, respectivamente. VeVeV Vouvev Nao V =F VeF=F VouF=V NéoF =. FeV=F FouV=V Na linguagem C/C++, todas as condigdies devem estar entre parénteses. CAPITULO 4 _ESTRUTURA CONDICIONAL 85 Exemplos: if (x == 3) cout<<"NGmero igual a 3"; No exemplo acima, existe apenas uma condi¢do que, obrigatoriamente, deve estar entre parénteses. if (X > 5 && x < 10) cout<<"Nimero entre 5 e 10"; No exemplo acima, existe mais de uma condig&o, as quais, obrigatoriamente, devem estar entre parénteses, if ((X == 5 && ¥ == 2) || ¥ a= 3) cout<<"X € igual a 5 e ¥ 6 igual a 2, ou ¥ € igual a 3"; No exemplo acima, existe mais de uma condigdo e mais de um tipo de operador légico, logo, além dos parénteses que envolvem todas as condigdes, devem existir ainda parénteses que indiquem a prioridade de execugdo das condigdes. Aqui, as condigdes com o operador &&, ou seja, (x == 5 && Y == 2), serdo testadas, € seu resultado sera testado com a condigdo || ¥ == 3. if (Kee 5 ae (Yee 2 || ¥ == 3)) cout<<"X € igual a 5, e ¥ 6 igual a2 ou ¥ 6 igual a 3"; No exemplo acima, existe mais de uma condigao e mais de um tipo de operador l6gico, logo, além dos parénteses que envolvem todas as condigdes, devem existir ainda parénteses que indiquem a prioridade de execugdo das condigdes. Nesse exemplo, as condigdes com o operador ||, ou seja, (¥ == 2 || ¥ == 3),serdo testadas, ¢ seu resultado seré testado com a condigdo && x == 5. 4.4 ESTRUTURA CONDICIONAL EM JAVA 4.4.1 ESTRUTURA CONDICIONAL SIMPLES Af (condigko) comando; comando 86 serd executado se a condicao for verdadeira. Uma condigao é uma comparago que possti dois valores possiveis: verdadeiro ou falso. if (condigao) { comand; comando2 ; comando3 ; } Em JAVA, torna-se obrigatéria a utilizacdo de chaves quando existe mais de um comando a executar. Os comandos entre chaves { } s6 sero executados se a condicao for verdadeira, 4.4.2 ESTRUTURA CONDICIONAL COMPOSTA if (condig&o) comando1 ; else comando2 ; Se a condicao for verdadeira, sera executado 0 comando:; caso contririo, sera executado 0 comando2 if condigao { ‘comandol; 56 FUNDAMENTOS DA PROGRAMAGKO DE COMPUTADORES Se a condicao for verdadeira, 0 comandoi € 0 comando2 sero executad comandos serdo executados. ; $e for falsa, 0 comando3 € 0 4.4.3 ESTRUTURA CASE Em alguns programas, existem situagdes mutuamente exclusiva, isto é, se uma situagdo for executada, as demais nao sero. Quando for este 0 caso, um comando seletivo é 0 mais indicado, ¢ esse comando, em JAVA, tem a seguinte sintaxe: switch (variavel) { @ valorl: lista de comandos break; case valor2: lista de comandos; break; default: lista de comandos; } O comando switch (variavel) analisa o valor de uma variével para decidir qual case ser executado. Cada case esti associado a UM possivel valor da varidvel, que deve ser obrigatoriamente do tipo int, short, byte 0U char. © comando break deve ser utilizado para impedir a execugao dos comandos definidos nos cases subse- qiientes. Quando o valor da varidvel no coincidir com aqueles especificados nos cases, sera executado entio 0 default. Exemplo: import java.io.*; import Java.ucil.*; class teste { public static void main(String args{]) { int x; Scanner dado; System.out.printin("Digite um nimero ") dado = new Scanner (System. in); x = dado.nextInt (); switch (x) { case 1: System.out.printin(*Némero 1") ; breal case 2: System.out.printin(*Nimero 2") ; break, default: System.out.printin("Outro némero") ; } CAPITULO 4 _ESTRUTURA CONDICIONAL 87 4.4.4 OPERADORES LOGICOS Os principais operadores ligicos so: disjungdio e negacdo, respectivamente. &, || © 1, que significam e, ou, nao e sio usados para conjungao, VeV=V | VeF=F FeV=F Fer=F Na linguagem JAVA, todas as condicGes devem estar entre parénteses. Exemplos: if (x == 3) System.out.printIn(*NGmero igual a 3"); No exemplo acima, existe apenas uma condigao que, obrigatoriamente, deve estar entre parénteses. if (K > 5 6& X < 10) System.out .printin("Namero entre 5 e 10"); No exemplo acima, existe mais de uma condig&o, as quais, obrigatoriamente, devem estar entre parénteses. Gf ((X == 5 68 Y == 2) || ¥ == 3) System.out .printin(*X 6 igual a $e Y 6 igual a 2, ou ¥ é igual a 3"); No exemplo acima, existe mais de uma condi¢ao e mais de um tipo de operador ldgico, logo, além dos parénteses que envolvem todas as condigdes, devem existir ainda parénteses que indiquem a prioridade de execugao das condigdes. Nesse exemplo, as condigdes com 0 operador 66, Ou Seja, (x == 5 && ¥ == 2), serd0 testadas, e seu resultado sera testado com a condigdo || x if (X == 5 g& (¥ == 2 || ¥ == 3)) System.out .printin(*X 6 igual a 5, e ¥ 6 igual a 2 ou ¥ é igual a 3"); No exemplo acima, existe mais de uma condigao e mais de um tipo de operador logico, logo, além dos parénteses que envolvem todas as condigdes, devem existir ainda parénteses que indiquem a prioridade de execugdo das condigdes. Nesse exemplo, as condigdes com o operador ||, ou seja, (¥ == 2 || ¥ == 3), serdo testadas, e seu resultado sera testado com a condigdo && x == 5. “ EXERCICIOS RESOLVIDOS ‘1, Anota final de um estudante ¢ calculada a partir de trés notas atribuidas, respectivamente, a um trabalho de laboratério, a uma avaliago semestral e a um exame final. A média das trés notas mencionadas obedece aos pesos a seguir: Trabalho de laboratério 2 iar es oa |Aveliopse somestal Ba Exame final 5 58 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES Faga um programa que receba as trés notas, calcule e mostre a média ponderada e 0 conceito que segue a tabela: (00 eo 50 E (ARBERIBI sorucac ALGORITMO DECLARE nota_trab, aval_sem, exame, media NUMERICO ESCREVA "Digite a nota do trabalho de laboratério: * LEIA nota_trab ESCREVA "Digite a nota da avaliacdo semestral: * LEIA aval_sem ESCREVA "Digite a nota do exane final: * LBIA exame media @ (nota_trab * 2 + aval_sem * 3 + exame * 5) / 10 ESCREVA "Média ponderada: * , media SE media >= 8 E media <= 10 ENTAO ESCREVA "obteve conceito A" SE media >= 7 E media < 8 ENTAO ESCREVA "Obteve conceito 5" SE media >= 6 E media < 7 ENTAO ESCREVA "Obteve conceito C" SE media >= 5 E media < 6 ENTAO ESCREVA "obteve conceito D” SE media >= 0 E media < 5 ENTAO ESCREVA "Obteve conceito EY FIM_ALGORITMO. D 14 SOLUGAO - UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES AB \EKERC\CAP4\ PASCAL\EX1_A. PAS € \EXERC\CAP4\PASCAL\EX1_A. EXE, 24 SOLUGAO - UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \EXERC\CAP4 \ PASCAL\EX1_B. PAS € \EXERC\CAP4\PASCAL\EX1_B. EXE, | 1* SoLUgAO ~ UT! \ BKERC\CAP4\C++\BX1_B. CPP € \EXERC\CAPA\C++\EX1_B. EXE IZANDO ESTRUT! ITILIZANDO ESTRUTURA CONDICIONAL SIMPLES: It soLugAo 4 \ EKERC\CAP4\JAVA\EX1_A. java € \EXERC\CAPA\JAVA\EX1_A.class 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \EXERC\CAP4\JAVA\EX1_B. java € \EXERC\CAP4\JAVA\EX1_B.class CAPITULO 4 _ESTRUTURA CONDICIONAL 53 2. Faca um programa que receba trés notas de um aluno, calcule e mostre a média aritmética ¢ amensagem constante na tabela a seguir. Aos alunos que ficaram para exame, calcule ¢ mostre a nota que deverio tirar para serem aprovados, considerando que a média exigida ¢ 6,0. 0,0 —o 3,0 Reprovado 7.0 10.0 Aprovado (ARBRE sorucac ALGORTTMO DECLARE notal, nota2, nota3, media, nota_exame NUMERICO ESOREVA "Digite a primeira nota: " LEIA notal ESCREVA "Digite a segunda nota: " LEIA nota2 RSCREVA "Digite a terceira nota: " LEIA nota3 media € (notal + nota? + nota3) / 3 ESCREVA "Média aritmética: ",media SE media >= 0 = media < 3 ENTAO ESCREVA “Reprovado” SE media >= 3 E media < 7 ENTAO INfcro ESCREVA "Exame" nota_exame 12 - media; ESCREVA "Deve tirar nota", nota_exame, “para ser aprovado" FIM SE media >= 7 E media <= 10 ENTAO ESCREVA "Aprovado" FIM_ALGORITMO. 14 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: if \EXERC\CAPS\ PASUAL\EX2_A. PAS © \EXERC\CAP4\PASCAL\EX2_A. EXE 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \EXERC\CAP4\PASCAL\EX2_B. PAS € \EXERC\CAP4\PASCAL\BX2_B. EXE 14 SOLUGAO ~ UTILIZANDO ESTRUTURA CONE \EXERC\CAP4\C++\EX2_A.CPP € \EXERC\CAP4\C++\BX2_A-EXE 24 SOLUGAO ~ UTILIZAND' ESTRUTURA CONDICIONAL COMPOSTA: \EXERC\CAP4\C++\EX2_B.CPP € \EXERC\CAP4\C++\BX2_B. EXE. 14 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: N \ EXERC\CAP4\JAVA\EX2_A. java € \BXERC\CAP4\JAVA\EX2_A.class 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA \ BKERC\CAP4 \JAVA\EX2_B. java € \EXERC\CAP4\JAVA\EX2_8.class 60 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES: 3. Faga um programa que receba dois nimeros e mostre o maior. DALESREHEN so.ucio: ALGORITMO DECLARE numi, num2 NUMERICO BSCREVA "Digite o primeiro nimero: * LEIA numl ESCREVA "Digite o segundo nimero: " LEIA num2 SE num) > num2 ENTKO ESCREVA "0 maior némero é: ", numl SB num? > numl ENTKO ESCREVA "O maior némero 6: ", num2 SE numl = num2 ENTKO ESCREVA "Os niimeros so iguais " FIM_ ALGORITMO. 14 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \EXERC\CAP4\PASCAL\EX3_A. PAS € \EXRC\CAP4\PASCAL\EX3_A. EXE 24 SOLUGAO — UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \EXERC\CAP4 \PASCAL\EX3_B. PAS € \EXBRC\CAP4\PASCAL\EX3_B. EXE 14 SOLUGAS - UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \EXERC\CAP4\C++\EX3_A.CPP € \EXERC\CAP4\C++\EX3_A. EXE 24 SOLUGAO ~ UTILIZANDO_ESTRUTURA CONDICIONAL COMPOSTA \BXERC\CAP4\C++\BX3_B.CPP € \BXERC\CAP4\C++\EX3_B.EXE 14 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \EXERC\CAP4 \ZAVA\EX3_2 Java € \BXERC\CAP4\JAVA\EX3_A.class 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \BXERC\CAP4\JAVA\EX3_B. java € \EXERC\CAP4\JAVA\EX3_B.class A. Faca um programa que receba trés niimeros e mostre-os em ordem crescente, Suponha que o usuario digitaré trés mimeros diferentes. (WAsSRIIBNY) Sorucao: ALGORITMO DECLARE uml, num2, num} NUMERICO BSCREVA "Digite o primeiro niimero: " LEIA num ESCREVA "Digite o segundo nGmero. LEIA num2 BSCREVA "Digite o terceiro numero: * LEIA num3 SE num < num2 8 numl < num3 ENTRO SE nuw2 < num’ CAPITULO 4 _ESTRUTURA CONDICIONAL 61 ENTAO ESCREVA “A ordem crescente 6: ", numl, "-", num2, "=", num3 SENAO ESCREVA “A ordem crescente 6: ", uml, "=", num3, "=", num2 SE num? < numl E num2 < num3 ENTAO SE numl < num3 ENTKO ESCREVA "A ordem crescente SENKO ESCREVA "A ordem crescente SE num3 < numl B num} < num2 ENTAO SE numi < num2 ENTAO ESCREVA "A ordem crescente 6: ", num3, *-", uml, "=", num2 SENKO ESCREVA "A ordem creacente 6: ", num3, "-", num2, "=", num FIM_ALGORITNO. x 1 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: y \EXERC\CAP4\ PASCAL\EX4_A. PAS € \EXERC\CAP4\PASCAL\EX4_A. BXE 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMFOSTA: ") num2, "=" ") num2, "=", nun3 nun \EXERC\CAP4\PASCAL\EX4_B. PAS € \EXERC\CAP4\PASCAL\EX4_B.EXE 14 SOLUGAO - UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \EXERC\CAP4\C++\EX4_A. CPP € \EKERC\CAP4\C++\BX4 J EXE 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA \EXERC\CAPA\C++\EX4_B.CPP € \EXERC\CAP4\C++\BK4_1 14 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \ EXERC\CAPS\JAVA\EX4_A. java € \EXERC\CAPS\JAVA\EX4_A.class 24 SOLUGAO — UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA EXE \EXERC\CAP4 \JAVA\EX4_B. java € \EXERC\CAP4\JAVA\EX4_B.class 5. Faga um programa que receba trés nimeros obrigatoriamente em ordem crescente e um quarto niimero que nao siga essa regra. Mostre, em seguida, os quatro ntimeros em ordem decrescente. Suponha que 0 usuario digitard quatro niimeros diferentes. (OARESREHBN) SoLucac: ALGORITMO DECLARE numi, num2, num3, numé NUMERICO ESCREVA "Digite trés ntimeros em ordem crescente: * LEIA num) LEIA num2 LEIA num3 ESCREVA "Digite um nmero (fora de ordem): " LEIA numd SE num > num3 'ENTAO ESCREVA "A ordem decrescente é: ", num, "-", num3, "-", num2, "-", numl SE num > num2 E numé < num3 ENTAO ESCREVA "A ordem decrescente 6: ", num3, "-", num, "-", num2, num, SE numé > numl E num4 < num2 ENTRO ESCREVA "A ordem decrescente 6: ", num3, "-", num2, "-", num, "=", num SE numé < numl ENTAO ESCREVA "A ordem decrescente 6: ", num3, "-", num2, "-", numi, "=", numd FIM_ALGORITMO 62 FUNDAMENTOS DA PROGRAMAGKO DE COMPUTADORES TA SOLUGAO - UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES A \BKERC\CAP4\PASCAL\EXS_A. PAS € \EXERC\CAP4\PASCAL\EXS_A.EXE 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA \ EXERC\CAP4\ PASCAL\EXS_B. PAS € \EXERC\CAP4\PASCAL\EXS_B. EXE 1* SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \EXERC\CAP4\C++\EXS_A.CPP € \EXERC\CAP4\C++\EXS_A. EXE 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \EXBRC\CAP4\C++\EXS_B.CPP € \EXERC\CAP4\C++\BXS_B. EXE T* SOLUGAG ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES \EXERC\CAP4 \JAVA\EXS_A. java € \EXERC\CAP4 \JAVA\EXS_A. class 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA. \BXERC\CAP4\JAVA\EXS_B. java € \EXERC\CAP4\JAVA\EXS_B. class. 6. Faca um programa que receba um niimero inteiro e verifique se é par ou impar. (ARRERRBN) soiucac ALGORITMO DECLARE num, r NUMERICO ESCREVA "Digite um nimero: " LEIA num r © RESTO(num/2) SE r= 0 ENTKO BSCREVA "0 nimero 6 par" SENKO ESCREVA "0 nimero 6 Smpar FIM_ALGORITMO. Zi TS SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \EKERC\CAP4\\PASCAL\EX6_A. PAS € \EXERC\CAPA\PASCAL\BX6_A. EXE 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \EXERC\CAP4\PASCAL\EX6_B. PAS € \EXERC\CAP4\PASCAL\EX6_B. EXE JS SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \ BKERC\CAP4\C++\EX6_A.CPP € \EXERC\CAP4\C++\EX6_A. EXE 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA \BXERC\CAP4\C++\EX6_B.CPP € \EXERC\CAP4\C++\EX6_B. EXE 14 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \BXERC\CAP4\JAVA\EX6_A. java © \RKERC\CAPA\JAVA\RX6_A clans CAPITULO 4 _ESTRUTURA CONDICIONAL 63 2* SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \ BXERC\CAP4 \JAVA\BX6_B. java € \EXERC\CAP4\JAVA\EX6_B.class 7. Faca um programa que receba quatro valores: I, A, B C. Desses valores, I ¢ inteiro e positivo, A, B € C so reais, Escreva os nimeros A, B € C obedecendo a tabela a seguir. Suponha que o valor digitado para I seja sempre um valor valido, ou se} digitados sejam diferentes um do outro. 1 A, Be C em ordem crescente. 3 © maior fica entre 0s oukos dois nimeros, . 1, 2 0u 3, e que os nameros (ARBERERIBNE) Sonucsc: ALGORITMO DECLARE A, B, C, I NUMERICO ESCREVA "Digite um valor para A: * LEIA A ESCREVA "Digite um valor para B: * LEIA B ESCREVA "Digite um valor para C: * LEIA C ESCREVA "Digite um valor para I (1, 2 ou 3): * LBIA T SE I-1 ENTAO INEcIO SE AcB E Acc ENTKO SE BB E Asc ENTAO SE B>C ENTAO ESCREVA "A ordem decrescente dos nimeros é: eA BMS SENKO ESCREVA "A ordem decrescente dos nimeros SANA Cte SE BoA E B>C 64 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES SE I=3 ENTKO ENTAO SE A>C ENTAO ESCREVA “A ordem decrescente dos niimeros é: we 3,028,2/"=",0 SENAO ESCREVA "A ordem decrescente dos nimeros é: eB HC, tA SE OA E OB ENTAO SE A>B ENTAO ESCREVA "A ordem decrescente dos ntmeros 6: CNA SENKO ESCREVA ‘A ordem decrescente dos némeros © 6,8 Ba, FIM anfcro SE A>B E AC ENTKO ESCREVA "A ordem desejada 6: ",B,"-",A,"—",C SE B>A E BoC ENTKO ESCREVA "A ordem desejada €: "/A,"-",B,"-",C SE CoA E CoB ENTKO ESCREVA “A ordem deaejada €: ",A,"=",C,"-",B FM FIM_ALGORTTMO 14 soLugao: \ EXERC\CAP4\PASCAL\EX7_A. PAS € \EXERC\CAP4\PASCAL\EX7_A. EXE 2* soLucdo: \EXERC\CAP4\ PASCAL \BX7_B. PAS € \EXERC\CAP4\PASCAL\BX7_B. EXE 34 soLucAo \ EXBRC\CAP4\\PASCAL\EX7_C. PAS € \EXERC\CAP4\PASCAL\BX7_C. EXE I soLucao \ EKERC\CAPA\C++\EX7_A.CPP € \EXERC\CAP4\C++\EX7_A. EXE 2* soLucdo: \EMBRC\CAP4\C++\BX7_B. CPP € \EXERC\CAP4\C++\EX7_B. EXE 34 soLUGAO \ BKERC\CAP4\C++\EX7_C.CPP € \BXERC\CAP4\C++\BX7_C.EXE 14 soLugao: \EXERC\CAP4\JAVA\EX7_A. java € \BXERC\CAP4\JAVA\EX7_A.class 24 soLucao \ BKERC\CAP4\JAVA\EX7_B. java € \EXERC\CAP4\JAVA\EX7_B.class 34 soLucAo: \EXERC\CAP4\JAVA\EX7_C. java € \EXERC\CAP4\JAVA\EX7_C.class CAPITULO 4 _ESTRUTURA CONDICIONAL 6s 8. Faca um programa que mostre o menu de opcdes a seguir, receba a op¢do do usuario e os dados ne- cessérios para executar cada operagiio. Menu de opgdes: 1. Somar dois nimeros. 2. Raiz quadrada de um némero. Digite a opco desejada. (ARES sovucso: ALGORTTMO DECLARE numi, num2, soma, raiz, op NUMBRICO ESCREVA " MENU" ESCREVA "1- Somar dois némeros" ESCREVA "2- Raiz quadrada de um niimero" ESCREVA "Digite sua opgio: " LEIA op SE op = 1 ENTSO INfcIo ESCREVA "Digite um valor para o primeiro niimero: * LEIA numl ESCREVA "Digite um valor para o segundo nimero: * LBIA num2 soma < numl + num2 ESCREVA "A soma de ",numi," e ",num2," FIM SE op = 2 ENTAO INICIO ESCREVA "Digite um valor: * LEIA num vaiz OV ESCREVA "A raiz quadrada de ",numl," 6 ",raiz FIM SE op #1 Bop #2 ENTAO ESCREVA "Opgdo invlida 1" FIM_ALGORITMO 1* SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \BXERC\CAP4 \PASCAL\EX8_A. PAS € \EXERC\CAP4\PASCAL\EX8_A.EXE 24 SOLUGAO - UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA \ EKERC\CAP¢\PASCAL\EX8_B. PAS € \EXERC\CAP4\PASCAL\EX8_B. EXE 34 SOLUGAO - UTILIZANDO ESTRUTURA SELETORA: \ BXERC\CAP4\ PASCAL\EX8_C. PAS € \EXERC\CAP4\ PASCAL\EX8_C. EXE SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: 2 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \ BKERC\CAP4\C++\EX8_B.CPP € \EXERC\CAP4\C++\BX8_B.EXE B* SOLUGAO ~ UTILIZANDO ESTRUTURA SELETORA: \ EXERC\CAP4\C++\EX8_C. CPP € \EXERC\CAP4\C++\BX8_C.BXE 66 FUNDAMENTOS DA PROGRAMACAO DE COMPUTADORES \EXBRC\CAP4\JAVA\EX8_A. java € \EXERC\CAP4\JAVA\EX8_A.class 24 SOLUGAO - UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \ BXBRC\CAPS \JAVA\EX@_B. java € \EXERC\CAPS\JAVA\EX®_B. clase 34 SOLUGAO ~ UTILIZANDO ESTRUTURA SELETORA: \ EKERC\CAP4\JAVA\EX8_C. java € \EKERC\CAP4\JAVA\BX6_C. class 9. Faca um programa que mostre a data e a hora do sistema nos seguintes formatos: DD/MM/AAAA~ més por extenso ¢ hora:minuto. DAWESRHBT Sowucio ALGORITWO DECLARE t, @, dia, mes, ano, hora, min NUMERICO 4 © OBTEWHA DATA; dia < OBTENHA DIA(a) mes € OBTENHA MBS (4) ano < OBTENHA_ANO(d) ESCREVA "Data Atual: * , dia, » mes, "/", ano, * - SE mes = 1 ENTAO ESCREVA "janeiro" SE mes = 2 ENTRO ESCREVA "fevereiro" SE mes = 3 ENTRO ESCREVA "margo" SE mes = 4 ENTAO ESCREVA "abril" SB mes = 5 ENTAO ESCREVA "naio" SR mes = 6 ENTAO ESCREVA "junho" SE mes = 7 ENTAO ESCREVA “julho' SE mes = 8 ENTAO ESCREVA "agosto" SE mes = 9 ENTAO ESCREVA “setembro" SE mes = 10 ENTAO ESCREVA “outubro" sé mes - 11 ENTAO ESCREVA *novenbro" se mes = 12 ENTAO ESCREVA *dezenbro* © © OBTENHA_HORARIO; hora € OBTENHA_HORA (t) min © OBTENEA_MINUTO(e) ESCREVA "Wora Atual: * BSCREVA hora, *:" , min FIM_ALGORITNO SoLugao \EXERC\CAP4 \PASCAL\EXS. PAS € \EXERC\CAP4\ PASCAL\EX9. EXE CAPITULO 4 _ESTRUTURA CONDICIONAL 67 Na solugo com a linguagem PASCAL foram utilizados os comandos getdate e gettine, para obter a data, ¢ a hora do sistema operacional, respectivamente. © comando getdate retomna os valores do ano, més, dia do més e dia da semana da data do sistema operacional, e as varidveis que receberdo esses valores devem ser do tipo word. O comando gett ine retomna os valores da hora, minuto, segundo ¢ centésimo de segundo da hora do sistema operacional e as varidveis que receberdo esses valores devem ser do tipo word. Para a utilizagao dos comandos getdate € gett ime faz-se necesséria a utilizagao da biblioteca Dos, ou seja, USES DOs. (V@BSERVAGRE!) 0 dia da semana é um mimero em que domingo vale 0; segunda-feira, 1; terga-feira, 2; quarta-feira, 3; quinta-feira, 4; sexta-feira, 5; ¢ sbado, 6. Exemplo: GSTDATE (ano, mea, dia, dia_semana) ; GETTIME(hora, min, seg, cen: Souucao: J \EKERC\CAPA\C++\EK9. CEP € \EKERC\CAPA\C++\EXS.BXE Na solugfio com a linguagem C/C++ foram utilizados os comandos getdate () € gettime (), para obter a data e a hora do sistema operacional, respectivamente, O comando getdate () retorna os valores do ano, més ¢ dia da data do sistema operacional. O comando gettime () retorna os valores da hora e minutos da hora do sistema operacional. Para a utilizagdo dos comandos getdate () ¢ gettime () faz-se necesséria a utilizagdo da biblioteca time.n, OU Seja, #include Exemplo: struct time t; struct date d; getdate (Ed) ; dia = d.da day; mes = d.da_mon; ano = d.da_year; gettime (at); hora = t.ti_hour; minuto = t.€i_min; \EXERC\CAP4\JAVA\EX9 . java @ \EXERC\CAP4 \JAVA\EX9.class Na solugo com a linguagem JAVA foram utilizadas as classes calendar € Date para empregar a data ea hora do sistema operacional. Exemplo: int dia, mes, ano, hora, min; Calendar cal = Calendar-getInstance(); Date d = new Date(); cal.setTime (4) ; dia = cal.get (Calendar. DAY_OF_MONTH) ; mes = cal.get (Calendar .MONTH) + 1; ano = cal.get (Calendar. YEAR) ; hora = cal.get (Calendar .HOUR) ; min = cal.get (Calendar. MINUTE) ; 10. Faca um programa que determine a data cronologicamente maior entre duas datas fornecidas pelo usuério. Cada data deve ser composta por trés valores inteiros, em que o primeiro representa o dia, o segundo, © més e 0 terceiro, 0 ano. 68 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES: (AREER) Souucto: ALGORTTMO DECLARE di,m1,a1,d2,m2,a2 NUMERICO ESCREVA "Digite a primeira data" ESCREVA " dia (dd): " LEIA di ESCREVA " més (mm): * BIA mi ESCREVA " ano (aaaa): * LEIA al ESCREVA "Digite a segunda data" ESCREVA " dia (dd): " LEIA d2 ESCREVA " més (mm): * LEIA m2 ESCREVA " ano (aaaa): * TRTA a? SE al>az ENTKO ESCREVA "A maior data 6: ",dl, SENAO SE a2>ai ENTKO ESCREVA "A maior data 6: ",d2, SENKO SE ml>m2 "m1, "=", al yma, "=", a2 ENTAO ESCREVA "A maior data 6: ",d1,"-",ml, SENKO SE m2>m1 ENTAO ESCREVA "A maior data 6: woh ma, 1 ad SENKO SE di>d2 ENTAO ESCREVA "A maior data 6: went dl "oA mi, 8-8 ad SENKO SE d2>d1 ENTAO ESCREVA "A maior data é: "ya, %-",m2, "=", a2 SENAO ESCREVA "As datas so iguais I" FIM_ALGORITHO. Sougdo: z= aa \BXERC\CAP4\C++\EX10. CPP € \EXERC\CAP4\C++\BX10. EXE, \EXERC\CAP4\PASCAL\EX10. PAS € \EKERC\CAP4\PASCAL\EX10. EXE — i1 \BXERC\CAP4 \JAVA\EX10. java @ \EXERC\CAP4\JAVA\8X10.class 11. Faga um programa que receba a hora do inicio de um jogo ¢ a hora final (cada hora ¢ composta por duas varidveis inteiras: hora e minuto). Calcule e mostre a duragio do jogo (horas e minutos), sabendo-se que 0 tempo maximo de duracdo do jogo ¢ de 24 horas e que ele pode iniciar-se em um dia e terminar no dia seguinte. (AREER) Sovucto ALGORTTMO DECLARE hora i, mini, hora_f, min_f, hora_d, min_d NUMERTCO ESCREVA "Digite o horario inicial" CAPITULO 4 _ESTRUTURA CONDICIONAL 69 BSCREVA "hora: * LEIA hora i ESCREVA "minuto. LEIA min i ESCREVA *Digite o horério final * ESCREVA "hora: * BIA hora_f ESCREVA "minuto: " LEIA min £ se mini > minf ENTAO Infcro min¢ © mint + 60 hora f © horaf-1 FIM SE hora_i > hora_f mNTAO hora_f @ hora_f + 24 mind © min f - min iy hora_d < horaf - nora iz ESCREVA *O jogo durou ";hora_d," hora(s) e ",min_a," minuto(s)* FIM_ALGORITHO. SoLucgao \ EXERC\CAP4\ PASCAL\BX11 . PAS @ \EXERC\CAP4\PASCAL\EX11. EXE Sowucko: LA \ EXERC\CAP4\C++\8x11..CPP € \EXERC\CAP4\C++\EX11. EXE Sotucso \ EXERC\CAP4\JAVA\#xX11. java € \EXERC\CAP4\JAVA\EX11. class 12. Faca um programa que receba o cédigo correspondente ao cargo de um funcionério e seu salrio atual mostre 0 cargo, o valor do aumento e seu novo salario. Os cargos estio na tabela abaixo. 1 Escriturétio 50% ‘ALGORITMO DECLARE salario, aumento, novo_sal, cargo NUMERICO BSCREVA "Digite o cargo do funcionério (1,2,3,4 ou 5)" LEIA cargo ESCREVA "Digite o valor do ealéri IEIA salario SE cargo = 1 ENTAO INfcro ESCREVA "0 cargo é Escriturério* aumento € salario * 50 / 100 ESCREVA "0 valor do aumento é: *, aumento 70 FUNDAMENTOS DA PROGRAMACAO DE COMPUTADORES. novo_sal € salario + aumento ESCREVA "O novo saldrio é: ", novo_sal FIM SENKO SE cargo = 2 ENTKO INfCrO ESCREVA "O cargo € Secretério" aumento < ealario * 35 / 100 ESCREVA "O valor do aumento é: ", aumento novo_sal € salario + aumento ESCREVA "O novo salaric 6: ", novo_sal FIM SENKO SE cargo - 3 FIM_ALGORT™MO. ENTAO INICIO ESCREVA "0 cargo & Caixa aumento © salario * 20 / 100 ESCREVA "0 valor do aumento 6: ", aumento novo_sal @ salario + aumento FSCREVA "0 nove ealSrie 6: ",novo_eal FIM SENKO SE cargo = 4 NTO INfcro ESCREVA "0 cargo € Gerente” aumento <= salario * 10 / 100 ESCREVA "0 valor do aumento é: *, aumento novo_sal € salario + aumento ESCREVA "O novo salério é: ", ‘novo sal FIM, SENKO SE cargo - 5 ENTKO infcro BSCREVA "0 cargo € Diretor" aumento € salario * 0 / 100 ESCREVA "O valor do aumento we: ", aumento novo_gal @ salario + we aumento ESCREVA "0 novo salério é w=", novo_sal FIM SENKO ESCREVA "Cargo Inexistente 1" 14 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \EXERC\CAP4\PASCAL\EX12_A. PAS @ \BKERC\CAP4\ PASCAL\EX12_A. EXE 24 SOLUGAO ~ UTILIZANDO ESTRUTURA SELETORA: \EXBRC\CAP4\PASCAL\EX12_B. PAS € \BXERC\CAP4\PASCAL\EX12_B.5XE Zz 1* SOLUGAG — UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \BKERC\CAP4\C++\EX12_A.CPP € \EXERC\CAP4\C++\EK12_A.EXE 24 SOLUGAO ~ UTILIZANDO ESTRUTURA SELETORA \ EXERC\CAPA\C++\EX12_B.CPP € \EXERC\CAPA\C++\BX12_B-EKE \PITULO 4 _ESTRUTURA CONDICIONAL n 14 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \EXERC\CAP4\JAVA\EX12_A.java @ \EXERC\CAP4\JAVA\EX12_A.class 24 SOLUGAO ~ UTILIZANDO ESTRUTURA SELETORA: \EXERC\CAPS\JAVA\EX12_B.java_€ \EXERC\CAP4\JAVA\EX12_B.clase 13. Faca um programa que apresente o menu a seguir, permita ao usuério escolher a opcdo desejada, receba os dados necessarios para executar a operagdo e mostre o resultado. Verifique a possibilidade de opcao invalida e ndo se preocupe com restrigdes, como saldrio negativo. Menu de opgies: 1, Imposto 2. Novo salirio 3. Classificagao Digite a opcao desejada. Na opgiio 1: receber o salrio de um funcionario, calcular ¢ mostrar o valor do imposto usando as regras a segui ‘Menor que R$ 500,00 Acima de R$ 850,00 Na opgio 2: receber o salério de um funcionério, calcular e mostrar 0 valor do novo salério, usando as regras a seguir: ‘Mair que R$ 1.500,00 R$ 25,00 De R$ 450,00 linclusive] o R$ 750,00 RS 75,00 Na opgiio 3: receber o salirio de um funcionério e mostrar sua classificagdo usando a tabela a seguir: ‘Até R$ 700,00 {inclusive} ‘Mal remunerado (ARERR souucsc: ALGORITMO DECLARE op, sal, imp, aum, novo_sal NUMERICO LEIA op SE op =1 ENTKO INfcro LEIA sal 5B cal < 500 ENTAO imp < sal + 5/100 72 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES SE sal >= 500 B sal <= 850 ENTAO imp € eal * 10/100 SE sal > 850 ENTAO imp € sal * 15/100 ESCREVA imp FIM SE op = 2 ENTKO INfcrO LEIA sal SE sal > 1500 ENTRO aum — 25 SE sal >= 750 E ENTAO aum — 50 SE sal >= 450 E sal < 750 ENTAO aum < 75 SE sal < 450 ENTAO aum < 100 novo_eal & sal + aum ESCREVA novo_sal 1 <= 1500 FIM SE op = 3 ENTAO INfcro LEIA sal SE sal <= 700 ENTAO ESCREVA"Mal Remunerado* SE sal > 700 ENTAO ESCREVA"Bem Remunerado" FIM SB op = 1 OU op >3 ENTAO ESCREVA "Opc4o Invélida" FIM_ALGORITMO. Zz 14 SOLUGAO - UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \ BXERC\CAPS\ PASCAL\BX13_A.PAS € \EXERC\CAP4\PASCAL\EX13_A.EXE 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \ BXERC\CAP4|\ PASCAL \BX13_B. PAS € \EXERC\CAP4\PASCAL\EX13_B. EXE 34 SOLUGAO ~ UTILIZANDO ESTRUTURA SELETORA’ \EXERC\CAP4 \ PASCAL \EX13_C. PAS € \EXERC\CAP4|\ PASCAL\EX13_C. EXE 14 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \ BXERC\CAP4\C++\BX13_A.CPP € \EXERC\CAP4\C++\BX13_A. EXE 24 SOLUCAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \ BKERC\CAP4\C++\BX13_B.CPP € \EXERC\CAP4\C++\EX13_B. EXE 34 SOLUGAO ~ UTILIZANDO ESTRUTURA SELETORA: \BXERC\CAP4\C++\BX13_C.CPP € \EKERC\CAP4\C++\EX13_C. EXE 14 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \ EXERC\CAP4\JAVA\EX13_A. java € \EXERC\CAP4\JAVA\EX13_A.class CAPITULO 4 _ESTRUTURA CONDICIONAL 73 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \ BXERC\CAP4\JAVA\EX13_B. java € \EXERC\CAP4\JAVA\EX13_B.class 3* SOLUGAO ~ UTILIZANDO ESTRUTURA SELETORA: \ BKERC\CAP4\JRVA\BX13_C. java € \EXERC\CAP4\JAVA\EX13_C. class 14, Faca um programa que receba o salério de um funcionario, calcule e mostre 0 novo salério, acrescido de bonificagio e de auxilio escola. ‘Até R$ 500,00 5% do salério ‘Até R$ 600,00 R$ 150,00 Acinna de R$ 1-200,00 Sem benificas0 (OARBEERRBIE) Sovucro: ALGORITMO DECLARE gal, novo_sal, boni, aux NUMERICO LBIA gal SE gal <= 500 ENTKO boni € sal + 5/100 SENKO SE sal <= 1200 ENTKO boni © eal * 12/100 SENKO boni © 0 SE eal <= 600 ENTAO aux <= 150 SENKO aux = 100 novo_sal € sal + boni + aux ESCREVA novo_sal FIM_ALGORITMO. 14 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES \ BKERC\CAP4\PASCAL\EX14_A. PAS € \EXERC\CAP4\PASCAL\EX14_A.EXE 24 SOLUGAO - UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \EXERC\CAP4\PASCAL\EX14_B. PAS € \EXERC\CAP4\PASCAL\EX14_B. EXE 1 SoLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES \EKERC\CAP4\C++\EK14_A. CPP € \EXERC\CAP4\C++\EX14_A. EXE 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \BXBRC\CAP4\C++\EX14_B.CPP € \EXERC\CAP4\C++\EX14_B. EXE 14 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \ BKERC\CAP4\JAVA\EX14_A. java € \BXERC\CAP4\JAVA\EX14_A. class 24 SOLUGAO - UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \ BXERC\CAP4\JAVA\EX14_B. java € \EXERC\CAPA\JAVA\EX14_B.class 74 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES 15. Faca um programa que receba o valor do salario minimo, o nimero de horas trabalhadas, 0 nimero de dependentes do funciondrio e a quantidade de horas extras trabalhadas. Calcule € mostre o saldrio a receber do funcionario de acordo com as regras a seguir: O valor da hora trabalhada é igual a '/s do salario minimo. Para cada dependente, acrescentar RS 32,00. Para cada hora extra trabalhada, calcular o valor da hora trabalhada acrescida de 50%. eoeoee Calcular o valor do imposto de renda retido na fonte de acordo com a tabela a seguir: Inferior a 8$ 200,00 __Supetior o RS 500,00 * — Osalario liquido é igual ao salério bruto menos IRRF. * A gratificagao de acordo com a tabela a seguir: Ate R§ 350,00 R$ 100,00 * Osalirio a receber do funcionario ¢ igual ao salario liquido mais a gratificagao. DADRSRIEN Sovucso ALGORITMO DECLARE sal_min, nht, ndep, nhet NUMERICO sal_receber, vh, smes, vdep, vhe, imp NUMERICO shrate, liq, graf NOWERTCO LEIA sal_min, nht, ndep, nhet va & 1/5 * gal_min smes @ nht * vi vdep € 32 * ndep vhe € nhet * (vh + (vh * 50/100) sbruto € ames + vdep + vhe SE sbruto < 200 ENTKO imp < 0 SE sbruto >= 200 E sbruto <= 500 ENTKO imp < sbruto * 10/100 SE sbruto > 500 ENTKO imp € sbruto * 20/100 slig € sbruto - imp SE slig <- 350 ENTKO grat € 100 SE slig > 350 ENTKO grat € 50 sal_receber € slig + grat ESCREVA sal_receber FIN_ALGORITNO. salario do més é igual ao ntimero de horas trabalhadas multiplicado pelo valor da hora trabalhada. O salirio bruto é igual ao salario do més mais o valor dos dependentes mais o valor das horas extras. CAPITULO 4 _ESTRUTURA CONDICIONAL 5 1* SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES VY \BXERC\CAP4\PASCAL\EX15_A. PAS € \EXERC\CAP4\PASCAL\EX15_A. EXE 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \ EXERC\CAP4\ PASCAL\EX15_B. PAS € \EKERC\CAP4\PASCAL\EK15_B. EXE Z 14 SOLUGAG ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLE: \ BXERC\CAP4\C++\EX15_A. CPP € \EXERC\CAP4\C++\EX15_A-EXE 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \EXERC\CAP4\C++\EX15_B.CPP € \EXERC\CAP4\C++\EX15_B.EXE 14 SOLUGAO - UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: Ey \EXERC\CAP4\JAVA\EX15_A. java € \EXERC\CAP4\JAVA\EX15_A.class 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \ EXERC\CAP4\JAVA\EX15_B. java € \EXERC\CAP4\JAVA\EXIS_B.class 16. Um supermercado deseja reajustar os pregos de seus produtos usando 0 seguinte critério: 0 produto poderd ter seu preco aumentado ou diminuido. Para o prego ser alterado, o produto deve preencher pelo menos um dos requisitos a segui < 500 < R$ 30,00 10 - >= 1.200 - 20 ‘Faga um programa que receba 0 preco atual ¢ a venda média mensal do produto, calcule e mostre 0 novo prego. (AREER sorucao: ALGORTTMO DECLARE pre, venda, novo_pre NUMERICO LEIA pre, venda SE venda<500 OU pre<30 ENTAO novo_pre € pre + 10/100 * pre SENAO SE (venda>-500 E vendaci200) OU (pre>=30 E pre<80) ENTKO novo_pre € pre + 15/100 * pre SENAO SE venda>=1200 OU pre>=80 ENTAO novo_pre « pre - 20/100 * pre ESCREVA novo_pre FIM_ALGORITMO. SoLugao: \ EXERC\CAP4|\ PASCAL\EX16 . PAS € \EXERC\CAP4\PASCAL\EX16 . EXE 76 FUNDAMENTOS DA PROGRAMAGKO DE COMPUTADORES Sovugao: 2 \EXERC\CAP4\C++\BX16. CPP € \EXERC\CAP4\C++\EX16. EXE SoLugao \BXERC\CAP4\JAVA\EX16. java @ \EXERC\CAP4\JAVA\EX16.class * 17. Faga um programa para resolver equagdes do 2° grau. axt+bx+o=0 A variavel a deve ser diferente de zero. A=D'-4eaec <0 nao existe raiz real A=0- existe uma raiz real x=(-b)/(2*a) A> 0 existem duas raizes reais x1=(-b+¥a)/(2 a) x2=(-b-Va)/(2#a) MARESRAHEN Sovucso: ALGORITMO DECLARE a, b, ¢, delta, x1, x2 NUMERICO LBIA a, b, sb a= 0 ENTKO ESCREVA “Estes valores ndo formam uma equago de segundo grau” SENKO INfcro delta © (b+ b) - (4+ atc) SE delta < 0 ENTAO ESCREVA "N&o existe raiz real" SE delta = 0 ENTKO INICIO ESCREVA "Existe uma raiz real" xl ©(b) / (2 * a) ESCREVA x1 FIM, SE delta > 0 ENTAO INfcIO ESCREVA "Existem duas raizes reais" xl © (- b+ Va) / C2 * a) x2 € (-b- Vay / (2 * a) ESCREVA x1, x2 FIM FIM FIM_ALGORITMO. SoLugao: A \EKERC\CAP4\PASCAL\EX17.PAS € \BXERC\CAP4\PASCAL\EX17. EXE Sorucao 2 \BXERC\CAP4\C++\EX17.CPP € \EXERC\CAP4\C++\EX17.EXE Sougdo: \BXERC\CAP4\JAVA\EX17. java e \EXERC\CAP1\JAVA\EX17.claco CAPITULO 4 _ESTRUTURA CONDICIONAL 7 18. Dados trés valores X,Y e Z, verifique se eles podem ser os comprimentos dos lados de um triéngulo ¢, se forem, verifique se € um triangulo equildtero, isésceles ou escaleno. Se eles ndo formarem um tridngulo, escreva uma mensagem. Considere que: * Ocomprimento de cada lado de um triéngulo é menor do que a soma dos outros dois lados. © —Chama-se eqiilétero 0 triéngulo que tem trés lados iguais. @ Denomina-se isdsceles o triangulo que tem o comprimento de dois lados iguais. @ Recebe o nome de escaleno o tridngulo que tem os trés lados diferentes. a ALGORITMO DECLARE x, y, 2 NUMERICO LBIA x, y, 2 sExcy+2Bycx+2bacxty Enrio tw¥cro SEx=yBy-2 ENTKO ESCREVA "Triangulo Eqdilétero" SENAO SE x = y OUx= 2 0Uy=2 ENTAO ESCREVA "Triangulo Ts6sceles" SENAO SEx#y Bx#zBy#z ENTKO ESCREVA "Triangulo Escaleno" FIM ‘SENKO ESCREVA "Eesas medidas nao fornam um triangulo* FIM_ALGORTTMO. SoLucao: ¢:, Lome eee ene ‘ Sotugao: CAME Nesessinscnmiees aseismic Sotugao: (ZAM reese cne ars sree eam oven. 19. Faca um programa que receba a altura e 0 peso de uma pessoa. De acordo com a tabela a seguir, verifique e mostre a classificago dessa pessoa. ‘Menores que 1.20 Maiores que 1,70 F | (ADEE soucao ALGORITMO DECLARE altura, peso NUMERICO LEIA altura, peso SE altura < 1.20 ENTKO INfcro SE peso <= 60 ENTAO ESCREVA "A" 78 FUNDAMENTOS DA PROGRAMACKO DE COMPUTADORES. SE peso > 60 E peso <= 90 ENTAO ESCREVA "D" SE peso > 90 ENTRO ESCREVA "G" FIM SB altura >= 1.20 E altura <= 1.70 ENTO INEcrO SE peso <= 60 ENTAO ESCREVA "B" SE peso > 60 # peso <= 90 ENTAO ESCREVA "E" SE peso > 90 ENTKO ESCREVA ‘HY FIM SE altura > 1.70 ENTKO INECIO SE peso <= 60 ENTKO ESCREVA "C" SE peso > 60 E peso <= 90 ENTAO ESCREVA "F* SE peso > 90 ENTAO ESCREVA "I" FIM PIM_ALGORITNO 14 SOLUGAO = UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: ay \EXERC\CAP4\ PASCAL\EX19_A.PAS € \EXERC\CAP4\PASCAL\EX19_A.EXE 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \EXERC\CAP4\PASCAL\BX19_B. PAS € \BXERC\CAP4\ PASCAL\EX19_B. EXE 14 SOLUGAO - UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: S \EXERC\CAP4\C++\EX19_A. CPP € \BKERC\CAP4\C++\EX19_A. EXE 24 SOLUGAO - UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \EKERC\CAP4\C++\BX19_B.CPP € \EKERC\CAPA\C+4\BX19_B.EXE 1* SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \EXERC\CAP4\JAVA\EX19_A. java € \EXERC\CAP4\JAVA\EX19_A.class 24 SOLUGAO - UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \BXERC\CAPA\JAVA\EX19_B. java € \EXERC\CAP4\JAVA\BX19_B.class 20. Faga um programa que receba: © O cédigo de um produto comprado, supondo que a digitagdo do cédigo do produto seja sempre valida, ou seja, um nimero inteiro entre 1 e 10. © — O peso do produto em quilos, % 0 cédigo do pais de origem, supondo que a digitagao do cédigo seja sempre valida, ou seja, um niimero inteiro entre 1 ¢ 3. Tabelas: CAPITULO 4 _ESTRUTURA CONDICIONAL Calcule e mostre: O peso do produto convertido em gramas. preco total do produto comprado. . 79 © — Ovalor do imposto, sabendo-se que ele € cobrado sobre o preco total do produto comprado e depende do pais de origem. © valor total, prego total do produto mais imposto. (ARBSREHBN) sonucac ALGORITMO DECLARE cod_prod, peso_quilos NUMERICO cod_pais, peso_gramas, pre_total NUMERICO imposto, valor_total, pre_grama NUMERICO LBIA cod_prod, peso_quilos, cod_pais peso_granas € peso quilos * 1000 ESCREVA peso_gramas SE cod_prod >= 1 B cod_prod <= 4 ENTAO pre_grama < 10 8B cod_prod >= 5 E cod_prod <= 7 ENTAO pre_grama € 25 SE cod prod >= 8 E cod prod <- 10 ENTAO pre_grama < 35 pre_total € peso_gramas * pre_crana ESCREVA pre_total SE cod pais = 1 ENTAO imposto + 0 SE cod pais = 2 ENTAO imposto € pre_total + 15/100 SE cod pais = 3 ENTKO imposto € pre_total + 25/100 ESCREVA imposto valor_total € pre_total + imposto ESCREVA valor_total FIM_ALGORITMO 14 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \ BKERC\CAP4\ PASCAL\EX20_A. PAS € \BKERC\CAP4\PASCAL\EX20_A. EXE 24 soLucAo i ITILIZANDO_ESTRUTURA comPosta: \ BKERC\CAP4 \ PASCAL,\EX20_B. PAS € \BXERC\CAP4\PASCAL\EX20_B. EXE IZANDO ESTRUTURA SELETORA: \EXERC\CAP4\ PASCAL \EX20_C. PAS € \EXERC\CAP4\PASCAL\EX20_C. BXE 14 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \EKERC\CAP4\C++\EX20_A.CPP € \BXERC\CAP4\C++\BX20_A. EXE 80 FUNDAMENTOS DA PROGRAMAGKO DE COMPUTADORES 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \EXERC\CAP4\C++\BX20_B. CPP € \EXERC\CAP4\C++\5X20_B. EXE. 34 soLucAo = UTI ANDO ESTRUTURA SELETORA \EXERC\CAP4\C++\BX20_C. CPP @ \EXERC\CAP4\C++\EX20_C. EXE 14 SOLUGAO - UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: \ BXERC\CAP4 \JAVA\EK20_A. java € \EXERC\CAP4\JAVA\EX20_A.class 24 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONA\ OSTA: \BXERC\CAP4\JAVA\EX20_B. java \EXERC\CAP4\JAVA\EX20_B.class 34 SOLUGAO ~ UTILIZANDO ESTRUTURA SELETORA: |\BXERC\CAP4\JAVA\BX20_C. java € \EXERC\CAP4\JAVA\EX20_C.class 2.1. Faga um programa que receba: + O cédigo do estado de origem da carga de um caminhio, supondo que a digitagao do cédigo do estado seja sempre valida, ou seja, um nimero inteiro entre | ¢ 5. — Oppeso da carga do caminhdo em toneladas. ¢ Océdigo da carga, supondo que a digitagao do cédigo seja sempre vélida, ou seja, um niimero inteiro entre 10 € 40. Tabelas: 10.020 100 | | 31040 340 Calcule e mostre: O peso da carga do caminhao convertido em quilos. © Opreso da carga do caminhao. valor do imposto, sabendo-se que 0 imposto & cobrado sobre o prego da carga do caminhao e depende do estado de origem. OQ valor total transportado pelo caminhio, prego da carga mais imposto. RRR Sor ucac: ALGORITWO DECLARE cod_est, cod_carga, peso_toneladas NUMERICO peso_quilos pre_carga, imposto, valor_total NUMERICO LEIA cod_est, peso_toneladas, cod_carga peso_quilos € peso_toneladas * 1000 ESCREVA peso quilos SB cod_carga >= 10 E cod carga <= 20 CAPITULO 4 _ESTRUTURA CONDICIONAL ENTAO pre_carga ¢ 100 * peso_quilos SE cod_carga >= 21 B cod_carga <= 30 ENTAO pre_carga ¢ 250 * peso_quilos SE cod_carga >= 31 B cod_carga <= 40 ENTAO pre_carga < 340 * peso_quilos ESCREVA pre_carga SE cod_est = 1 ENTAO imposto € 35/100 * pre_carga SE cod est = 2 ENTKO imposto < SE cod_est = 3 ENTKO imposto ¢ 15/100 * pre_carga © e 25/100 * pre_carga SE cod_est = 4 ENTAO imposto SE cod_est = 5 ENTKO imposto BSCREVA imposto valor_total © pre_carga + imposto ESCREVA valor_total IM_ALGORITMO. 14 SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES: I \ BXERC\CAP4\PASCAL\BK21_A. PAS € \EKERC\CAP4\PASCAL\EX21_A. 24 SOLUGAO - UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: 5/100 * pre_carga ° \ BXERC\CAP4\ PASCAL\EX21_B. PAS € \EXERC\CAP4\PASCAL\EX21_} EXE 34 soLucAo ~ ut ANDO ESTRUTURA SELETORA \EXERC\CAP4\PASCAL\EX21_C. PAS € \EXERC\CAP4\PASCAL\EX21_C.EXE 14 SOLUGAO - UTILIZANDO ESTRUTURA CON! \EXERC\CAP4\C++\EX21_A.CPP € \EKERC\CAP4\C++\BX21_A. EXE BOLUCAO — UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \EXBRC\CAP4\C++\BX21_B. CPP € \EXERC\CAP4\C++\EX21_B-BXE 34 SOLUGAO - UTILIZANDO ESTRUTURA SELETORA \BKERC\CAP4\C++\BX21_C.CPP € \EKERC\CAP4\C++\EX21_C.BXE JA SOLUGAO ~ UTILIZANDO ESTRUTURA CONDICIONAL SIMPLES \EXERC\caPA\AvA\=x23_A. java € \EXBRC\CAP«\IAVA\EK21_A.class 24 SOLUGAO - UTILIZANDO ESTRUTURA CONDICIONAL COMPOSTA: \EXERC\CAP4\JAVA\EX21_B. java € \EXERC\CAP4\JAVA\EX21_B.class 34 SOLUGAO ~ UTILIZANDO ESTRUTURA SELETORA: \EXERC\CAP4\JAVA\EX21_C. java € \EXERC\CAP4 \JAVA\EX21_C.class 81 82 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES 22. Faga um programa que receba o salério base e o tempo de servigo de um funcionério, Caleule e mostre: © Oimposto, apresentado na tabela a seguir. < R$ 200,00 isenio Entre R$ 450,00 e R$ 700,00 © A gratificagdo, que se encontra na tabela abaixo. Supetior a Ate 3 onos R$ 500,00 Mais de 3 anos 30 ‘Ave 3 anos 23 ‘ANB R$ 500,00 Ente 3 @ 6 anos 35 De 6 nos para cima 33 % — Osalirio liquido, ou seja, saldrio base menos imposto mais gratificagao. © Acategoria, que esti na tabela a seguir. | Ate R§ 350,00 De R$ 600,00 para cima ‘ALGORTTMO DECLARE sal_base, tempo, imposto, grat NUMERICO sal_lig NUMERICO LEIA eal_base, tempo SE sal_base < 200 ENTAO imposto € 0 SENKO SE sal_base <= 450 ENTKO imposto € 3/100 * sal_base SENAO SE sal_base < 700 ENTAO imposto € 6/100 * eal_base SENKO imposto € 12/100 * sal_base ESCREVA imposto SB sal_base > 500 EntKo Infcro SE tempo <= 3 ENTAO grat € 20 SENAO grat < 30 FIM SENAO INECTO SE tempo <= 3 ENTRO grat @ 23 CAPITULO 4 _ESTRUTURA CONDIGIONAL 83 SENKO SE tempo < 6 NTAO grat <= 35 SENKO grat <= 33 FIM ESCREVA grat sal_lig @ sal_base - imposto + grat ESCREVA sal_lig SE cal_liq <= 350 ENTAO ESCREVA *Classificagao A" SENKO SE sal_liq <600 ENTAO ESCREVA "Classificacéo BY SENKO ESCREVA "Classificagéo C* IM_ALGORITMO. Sovugko: \ BXERC\CAP4 \ PASCAL \BX22 . PAS € \EXERC\CAP4\PASCAL\BK22. EXE SoLucro 4 \EXERC\CAP4\C++\BX22.CPP @ \EXERC\CAP4\C++\BK22 EXE, SoLucgao 23. Faga um programa que receba o valor do salério minimo, o tumo de trabalho (M — matutino, V—vespertino ou N —notumo), a categoria (O — operirio, G — gerente) e o nimero de horas trabalhadas no més de um funcionério. Suponha a digitagdo apenas de dados validos e, quando houver digitago de letras, utilize maiasculas. Calcule e mostre: * Ocoeficiente do salario, de acordo com a tabela a seguir. 10% do salirie minim 12% do solétio minimo © Ovvalor do salirio bruto, ou seja, o nimero de horas trabalhadas multiplicado pelo valor do coefi- ciente do salario. © —Oimposto, de acordo com a tabela a seguir. >= R$ 300,00 BB O- Opesério < R$ 300,00 3% >= R$ 400,00 o% G- Gerente << R$ 400,00 4% * A gratificagdo, de acordo com as regras que se seguem. a4 FUNDAMENTOS DA PROGRAMAGKO DE COMPUTADORES Oaunilio alimentagao, de acordo com as seguintes regras. * — Osalério liquido, ou seja, salério bruto menos imposto mais gratificagdo mais auxilio alimentagao, + Aclassificagao, de acordo com a tabela a seguir. Menor que R$ 350,00 ‘Mal remunerado Mair que R$ 600,00 Bem remunerado MARES Sovucao: LGORITMO DECLARE sal_min, nt, coeficiente, eal_bruto NUMERICO imposto, grat, auxilio, sal_ligq NUMERICO turno, Categoria LITERAL LBIA sal_min, turno, categoria, nht SE turno = "M" ENTKO coeficiente € 10/100 * sal_min SB turno = "v" ENTKO coeficiente € 15/100 * sal_min SE turno = "N" ENTKO coeficiente € 12/100 * sal_min ESCREVA coeficiente sal_bruto @ nht * coeficiente ESCREVA sal_bruto SB categoria = "0" ENTAO INfCIO SE sal_bruto >= 300 ENTAO imposto € 5/100 * sal_bruto SENKO imposto € 3/100 * sal_bruto FIM SENKO INfcro SE sal_bruto >= 400 ENTAO imposto < 6/100 * sal_bruto SENAO imposto € 4/100 * sal_bruto FIM ESCREVA imposto SE turno = “N’ E mht > 60 ENTAO grat © 50 SENAO grat € 30 ESCREVA grat CAPITULO 4 _ESTRUTURA CONDICIONAL 35 SE categoria = "0" OU coeficiente <= 25 ENTAO auxilio < 1/3 * sal_bruto SENKO auxilio € 1/2 + sal_bruto ESCREVA auxilio sal_liq € sal_bruto - imposto + grat + auxilio ESCREVA sal_lig SE sal_lig < 350 ENTAO ESCREVA "Mal Remunerado* SE sal_lig >= 350 # sal_lig <= 600 ENTAO ESCREVA "Normal* SE sal_liq > 600 ENTAO ESCREVA "Bem Remunerado* FIM_ALGORITMO. Sotugao: \EXERC\CAP4\PASCAL\BX23. PAS € \EXERC\CAP4\PASCAL\EX23 . EXE SoLucgdo \EXERC\CAP4\C++\EX23 . CPP @ \EXERC\CAP4\C++\EX23. EXE SoLucao a = 24, Faga um programa que receba 0 prego, o tipo (A — alimentagdo, L — limpeza e V ~ vestuario) ¢ a reftigeracdo (S — produto que necessita de refrigeragao e N — produto que nao necessita de reftigerago) de um produto. Suponha que haverd apenas a digitago de dados validos e, quando houver digitagao de letras, utilize maitisculas. Caleule e mostre: \EXERC\CAP4 \JAVA\BX23 . java € \EXERC\CAP4\JAVA\EX23.class * QO valor adicional, de acordo com a tabela a seguir. . = RS 30,00 R$ 2,50 A | | R$ 8,00 s L R$ 0,00 v | 8$ 0,00 ® Ovalor do imposto, de acordo com a regra a seguir. < R$ 25,00 5% * Opreco de custo, ou seja, preco mais imposto. * Odesconto, de acordo com a regra a seguir. 86 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES © Onovo prego, ou seja, prego de custo mais adicional menos desconto. @ Acclassificagao, de acordo com a regra a seguir. (ALRBRRBTEY So. vero: ALGORITHO DECLARE pre, valor_adic, imposto NUMERICO Pre custo, desconto, nove pre NUMERICO tipo, refrig LITERAL LBIA pre, tipo, refrig SE refrig = "N* ENTAO INICIO SE tipo = "AY ENTAO INEcIO SE pre < 15 ENTKO valor_adic © 2 sENKO valor_adic © 5 FIM SE tipo = "L" ENTAO INfcro SE pre < 10 ENTAO valor_adiec @ 1,50 SENKO valor_adic < 2,50 FIM SE tipo = *v" ENTAO INICIO SE pre < 30 ENTRO valor_adic < 3 SENKO valor_adic € 2,5 FIM FIM SENKO INECIO SE tipo = "At ENTAO valor_adic © 8 SE tipo = "L" ENTAO valor_adic € 0 SE tipo = 'v" ENTAO valor_adic 0 FIM ESCREVA valor_adic SE pre < 25 ENTAO imposto ¢ 5/100 * pre SENAO imposto = 8/100 * pre ESCREVA imposto CAPITULO 4 ESTRUTURA CONDICIONAL 87 pre_custo € pre + imposto ESCREVA pre_custo SE tipo # "A" B refrig # "s* ENTAO desconto ¢ 3/100 * pre_custo SENKO deaconto + 0 ESCREVA desconto novo_pre pre_custo + valor_adic - desconto ESCREVA novo pre SE novo pre <= 50 ENTAO ESCREVA "Barato" SENKO SE novo_pre < 100 ENTKO ESCREVA *Normal” SENAO ESCREVA "Caro" FIN_ALGORITMO. SoLugao: \BXERC\CAP4\PASCAL\EX24. PAS @ \EXERC\CAP4\ PASCAL\EX24. EXE SoLugac \EXERC\CAP4\C++\EX24., CPP € \EXERC\CAP4\C++\BX24 EXE, SoLucAa i i \EXERC\CAP4\JAVA\EX24. java € \EXERC\CAP4\JAVA\EX24.class 25. Faca um programa que receba a medida de um Angulo em graus. Calcule e mostre o quadrante em que se localiza esse Angulo. Considere os quadrantes da trigonometria e, para angulos maiores que 360° ou menores que —360°, reduzi-los, mostrando também o niimero de voltas e o sentido da volta (horario ou anti-horario). SoLucho ALGORTTMO DECLARE angulo, voltas NUMERICO LEIA angulo SE angulo > 360 OU angulo < -360 ENTAO INECIO voltas € angulo / 360 angulo € RESTO(angulo / 360) FIM SENKO voltas < 0 SE angulo = 0 OU angulo = 90 OU angulo = 160 OU angulo = 270 OU angulo = 360 OU angulo = -90 OU angulo = -180 0 angulo = -270 OU angulo = -360 ENTAO ESCREVA "Eetd em cima de algum dos eixos" SE (angulo > 0 E angulo < 90) OU (angulo < -270 E angulo > -360) ENTKO ESCREVA "1° Quadrante* 8B (angulo > 90 B angulo < 180) OU (angulo < -180 B angulo > -270) ENTAO ESCREVA "2° Quadrante* SE (angulo > 180 E angulo < 270) OU (angulo < -90 B angulo > -180) ENTAO ESCREVA "3* Quadrante" SE (angulo > 270 E angulo < 360) OU (angulo < 0 & angulo > -90) ENTAO ESCREVA "4° Quadrante* ESCREVA voltas, " volta(s) no sentido " SE angulo < 0 ENTKO ESCREVA “horario" SENKO ESCREVA "anti-horério" PIM_ALGORITMO. 88 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES: SoLucao. \ EXERC\CAP4\ PASCAL \EX25 . PAS € \EXERC\CAP4\PASCAL\EX25 . BXE. Sou¢ao: \BXERC\CAPS\C++\EX25. CPP € \EXERC\CAP4\C++\EX25. EXE, \BXBRC\CAP4\JAVA\BX25. java € \EKERC\CAP4\JAVA\EX25.class ad i ~ EXERCICIOS PROPOSTOS 1. Faga um programa que receba quatro notas de um aluno, calcule € mostre a média aritmética das notas © a mensagem de aprovado ou reprovado, considerando para aprovagao média 7. 2. aga um programa que receba duas notas, calcule e mostre a média aritmética e a mensagem que se en- contra na tabela a seguir: Reprovado Aprovodo 3. Faga um programa que receba dois nimeros e mostre o menor. 4, Faca um programa que receba trés niimeros € mostre 0 maior. 5. Faca um programa que receba dois niimeros ¢ execute as operagdes listadas a seguir, de acordo com a escolha do usuario. ‘Média entre os nimeras digitados Produto entre os nimeros digitados Se a opgdo digitada for invalida, mostre uma mensagem de erro e termine a execugdo do programa. Lem- bre-se de que, na operagio 4, o segundo nimero deve ser diferente de zero. 6. Faca um programa que receba dois mimeros e execute uma das operacies listadas a seguir, de acordo com a escolha do usuério. Se for digitada uma opgdo invdlida, mostre mensagem de erro e termine a execugo do programa. As opgdes so: 1. O primeiro nimero elevado ao segundo nimero. 2. Raiz quadrada de cada um dos nimeros. 3. Raiz ciibica de cada um dos nimeros. 7. Uma empresa decide dar um aumento de 30% aos funcionarios com salarios inferiores a R$ 500,00. Faga um programa que receba o salario do funcionario e mostre o valor do salario reajustado ou uma mensagem, caso ele nao tenha direito ao aumento. CAPITULO 4 _ESTRUTURA CONDICIONAL 89 8. Facaum programa para calcular e mostrar 0 saldrio reajustado de um funcionério. O percentual de aumento encontra-se na tabela a seguir. Asé R$ 300,00 35% 9. Um banco concederé um crédito especial aos seus clientes, de acordo com 0 saldo médio no ultimo ano. Faca um programa que receba o saldo médio de um cliente e calcule o valor do crédito, de acordo com a tabela a seguir. Mostre o saldo médio e o valor do crédito. Acima de R$ 400,00 30% do saldo médio R§ 300,00 e——0 R$. 200,00 20% do saldo médio 10. Opreco, ao consumidor, de um carro novo é a soma do custo de fébrica com a porcentagem do distribui- dor ¢ com os impostos, ambos aplicados ao custo de fabrica. As porcentagens encontram-se na tabela a seguir. Faga um programa que receba o custo de fabrica de um carro e mostre o prego ao consumidor. ‘Até R$. 12,000,00 5 isento ‘Acima de R$ 25.000,00 15 20 11. Faca um programa que receba o salério atual de um funciondrio e, usando a tabela a seguir, calcule € mostre o valor do aumento ¢ o novo salério. ‘Ate R$ 300,00 15% R$ 600,00 o——e R$.900,00 5% | 12. Faga um programa que receba o salério bruto de um funcionério e, usando a tabela a seguir, calcule e mostre o valor a receber. Sabe-se que este ¢ composto pelo salirio do funciondrio acrescido de gratificagao e descontado o imposto de 7% sobre o salério sem gratificagao. Até R$ 350,00 R$ 100,00 R$ 600,00 o——e R$ 900,00 R$ 50,00 13. Faca um programa que receba o prego de um produto, calcule e mostre, de acordo com as tabelas a seguir, © novo prego e a classificagao 90 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES: Ate R$ 50,00 __Acima de R$ 100,00 Ave RS 80,00 Barato Enira R$ 120,00 e R$ 200,00 (inclusive) Coro 14. Faca um programa que receba o salério de um funcionario e, usando a tabela a seguir, calcule e mostre o novo salério. Até R$ 300,00 50% R$ 500,00 o——e R$ 700,00 30% R$ 800,00 o—e R$ 1.000,00 10% 15. Uma agéncia bancéria possui dois tipos de investimentos, conforme o quadro a seguir. Faga um programa que receba o tipo de investimento e seu valor € que calcule e mostre o valor corrigido, de acordo com 0 tipo de investimento. 1 Poupango 3% 16. Uma empresa decide aplicar descontos nos seus pregos usando a tabela a seguir. Faga um programa que receba o preco atual de um produto e seu cédigo e que calcule e mostre o valor do desconto e o novo prego. Ave RS 30,00 ‘Sem desconto Acima de R$ 100,00 15% 17. Faga um programa que verifique a validade de uma senha fornecida pelo usuario. A senha é 4531. 0 programa deve mostrar uma mensagem de permissao de acesso ou nao. 18, Fag um programa que receba a idade de uma pessoa e mostre a mensagem de maioridade ou no CAPITULO 4 _ESTRUTURA CONDICIONAL ot 19. Faca um programa que receba a altura e o sexo de uma pessoa e calcule ¢ mostre seu peso ideal, utili- zando as seguintes formulas (onde h é a altura): © parahomens: (72.7 *h)-$8. para mulheres: (62.1 * h) ~ 44.7. 20. Faca um programa que receba a idade de um nadador e mostre sua categoria, usando as regras a seguir. Para idade inferior a 5, deverd mostrar mensagem. Infantil 507 Adolescente Hols Senior ‘Acima de 30 21. Faga um programa que receba o prego de um produto ¢ seu cédigo de origem e mostre sua procedéncia. A procedéncia obedece a tabela a seguir. 1 Sul 3 Leste Sod Nordeste 10020 Ceentrooeste 22. Fagaum programa que receba a idade eo peso de uma pessoa. De acordo com a tabela a seguir, verifique ¢ mostre em qual grupo de risco essa pessoa se encaixa. ‘Menores que 20 ‘Matores que 50 3 Ce 1 23. aga um programa que receba: * Océdigo do produto comprado; ¢ A quantidade comprada do produto. Calcule mostre: prego unitario do produto comprado, seguindo a Tabela I; O prego total da nota; valor do desconto, seguindo a Tabela II e aplicado sobre o prego total da nota; prego final da nota depois do desconto oeoe 92 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES 1010 haaeoiaay Até R$ 250,00 21030 acein | Acimo de R$ 500,00 _ 24, Faga um programa que receba o prego, a categoria (1 — limpeza, 2 — alimentag&o ou 3 - vestuario) e a situagao (R ~ produtos que necessitam de refrigeragao ¢ N — produtos que no necessitam de refrigeragdo). Caleule e mostre: * O valor do aumento, usando as regras que se seguem. . O valor do imposto, usando as regras a seguir. * Onovo prego, ou seja, 0 prego mais aumento menos imposto. * Aclassificagao, usando as regras a seguir. <= R$ 50,00 Boraio >= R$ 120,00 _ Cato | 25. Uma empresa decidiu dar uma gratificago de Natal a seus funcionérios, baseada no niimero de horas extras ¢ no niimero de horas que o funcionério faltou ao trabalho. O valor do prémio é obtido pela consulta 4 tabela que se segue, na qual: H = numero de horas extras ~ (2/3 * (ntimero de horas-falta)) > 2.400 500,00 1.200 e——e 1.800 300,00 < 600 100,00 -ESTRUTURA DE REPETIGAO 5.1 ESTRUTURA DE REPETIGAO EM ALGORITMO Uma estrutura de repeticdo € utilizada quando um trecho do algoritmo ou até mesmo o algoritmo inteiro precisa ser repetido. O mimero de repetic&es pode ser fixo ou estar atrelado a uma condigdio. Assim, existem estruturas para tais situagdes, descritas a seguir. 5.1.1 ESTRUTURA DE REPETICAO PARA NUMERO DEFINIDO DE REPETICOES (ESTRUTURA PARA) Essa estrutura de repeti¢do ¢ utilizada quando se sabe 0 niimero de vezes que um trecho do algoritmo deve ser repetido. O formato geral dessa estrutura é: PARA I € valor inicial Arf valor final FAA [PASSO n] Infcro comandol comando2 comandom FIM O comandor, © comando2 € 0 conandom serdo executados utilizando-se a variavel 1 como controle, € seu contetido vai variar do valor inicial até 0 valor fina. A informag&o do Passo esté entre colchetes porque ¢ opcional. © easso indica como serd a variago da variavel de controle. Por exemplo, quando for indi- cado Passo 2, a variavel de controle serd aumentada em 2 unidades a cada iteragfo até atingir 0 valor final. Quando a informagao do Passo for suprimida, isso significa que o incremento ou o decremento da variavel de controle sera de 1 unidade. Quando houver apenas um comando a ser repetido, os marcadores de bloco rnfczo e Frm poderio ser suprimidos. Exemplos: PARA I @ 1 ATE 10 FACA ESCREVA T O comando sscreva I serd executado dez vezes, ou seja, para variando de 1 a 10. Assim, os valores de r serdo: 1,2, 3,4, 5,6, 7, 8,9 € 10. PARA J © 1 ATE 9 FACA PASSO 2 ESCREVA J Ocomando zscrzva J sera executado cinco vezes, ou seja, para J variando de | a 10, de 2 em 2. Assim, os valores de 3 sero: 1, 3,5, 7¢9. PARA I < 10 ATE 5 PAGA ESCREVA T 94 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES ‘O comando zscreva 1 serd executado seis vezes, ou seja, para t variando de 10 a 5. Assim, os valores de I serao: 10, 9, 8, 7,6 e 5. PARA J € 15 ATE 1 FACA PASSO -2 ESCREVA J O comando EscREVA J sera executado oito vezes, ou seja, para a variando de 15 a 1, de 2. em 2. Assim, os valores de x sero: 15, 13, 11, 9,7, 5,3¢ L. 5.1.2 ESTRUTURA DE REPETIGAO PARA NUMERO INDEFINIDO DE REPETICGES E TESTE NO INICIO (ESTRUTURA EXQUANTO) Essa estrutura de repetigo é utilizada quando no se sabe o nimero de vezes que um trecho do algoritmo deve ser repetido, embora também possa ser utilizada quando se conhece esse nimero. Essa estrutura baseia-se na andlise de uma condigao. A repeticao sera feita enquanto a condigdo mostrar-se verdadeira, Existem situagdes em que o teste condicional da estrutura de repetigo, que fica no inicio, resulta em um valor falso logo na primeira comparago. Nesses casos, 0s comandos de dentro da estrutura de repetigdo nao serdo executados. ENQUANTO condigiio FACA comandol Enquanto a condigao for verdadeira, o comando1 seri executado. ENQUANTO condig&io FACA INICIO comandol comando2 comando3 FIM Enquanto a condigao for verdadeira, 0 comandot, 0 comando2 € 0 comandos serdo executados. Exemplos: Kel yes ENQUANTO X < Y FACA infcro xexK+2 yeyvel FIM Simulagao: Volores iniciais Valores obtidos dentro da estutura de repetico. 1 5 3 6 5 7 7 8 9 9 No trecho do algoritmo anterior, portanto, os comandos que esto dentro da estrutura de repetigao sero repetidos quatro vezes. APITULO S_ESTRUTURA DE REPETIGAO 95 Kel yeu ENQUANTO X <= 5 FACA anicro yey+x ReK+L FIM Simulagio: 1 1 Volores incils 1 2 — 2 3 4 \bores obtdos dent da estutura de repeticao 24 5 120 é ‘No trecho do algoritmo anterior, portanto, os comandos que se localizam na estrutura de repetigao serio repetidos cinco vezes. Nesse exemplo, a estrutura eguaNTO ¢ utilizada para repetir 0 trecho do algoritmo um nimero definido de vezes. 5.1.3 ESTRUTURA DE REPETICAO PARA NUMERO INDEFINIDO DE REPETICOES E TESTE NO FINAL (ESTRUTURA REPz7A) Essa estrutura de repetigao é utilizada quando ndo se sabe o niimero de vezes que um trecho do algoritmo deve ser repetido, embora também possa ser utilizada quando se conhece esse néimero, Essa estrutura baseia-se na andlise de uma condigao. A repeticao sera feita até a condig&o tomar-se ver- dadeira, Adiferenga entre a estrutura ENQUANTO € a estrutura REPITA é que nesta Ultima os comandos serao repetidos pelo menos uma vez, ja que a condigdo de parada se encontra no final. REPITA conandos ATE condigao Repita os comandos até a condigao se tomar verdadeira. Exemplos: xe yes REPITA KexX+2 yeyver ATE X >= Simulagao: Valores inicicis —— Volores obtidos deniro da estuhura de repeticéo 1 3 5 7 9 96 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES. No trecho do algoritmo anterior, portanto, os comandos de dentro da estrutura de repetigao serio repetidos quatro vezes. Kel Yeu REPITA yeyex xexe1 ATE X = 6 Simulagio: 1 1 Voloves inicio 1 2 2 3 6 4 Volores obtides dentto da estutura de repeticio 24 5 120 6 No trecho do algoritmo anterior, portanto, os comandos que se localizam dentro da estrutura de repetigao sero repetidos cinco vezes. Nesse exemplo, a estrutura neprta é utilizada para repetir o trecho do algoritmo um nimero definido de vezes. 5.2 ESTRUTURA DE REPETIGAO EM PASCAL 5.2.1 ESTRUTURA DE REPETICAO ror Essa estrutura de repetigdo ¢ utilizada quando se sabe o niimero de vezes que um trecho do programa deve ser repetido, FOR T comando, valor inicial 70 valor final Do O comando seri executado utilizando se a variével 1 como controle, ¢ seu contetido vai variar do valor inicial até 0 valor final, de 1 em 1, incrementando automaticamente. FOR J := valor inicial 70 valor final Do BEGIN comandol; comando2 ; END; O comandot ¢ © comande2 sero executados utilizando-se a varidivel 7 como controle, e seu conteiido vai variar do valor inicial até 0 valor final, de 1 em 1, incrementando automaticamente. FOR K := valor inicial DOWNTO valor final DO comando; comando seré executado utilizando-se a varidvel x como controle, ¢ seu contetido vai variar do valor inicial até 0 valor final, de | em 1, decrementando automaticamente, FOR H :» valor inicial DowNTO valor final DO BEGIN comandol; comando2; comando3 ; END; CAPITULO § ESTRUTURA DE REPETIGAO 7 O comando1, 0 comando2 € 0 comando3 serfio executados utilizando-se a variavel x como controle, e seu contetido vai variar do valor inicial até 0 valor final, de 1 em 1, decrementando automaticamente. (@RBERIARREN! Na linguagem PASCAL, a estrutura de repetigdo ror funciona obrigatoriamente e auto- maticamente de 1 em 1, incrementando ou decrementando. Exemplos: FOR i := 1 TO 5 DO WRITELN (i) ; No trecho de programa acima, o comando wrr7=tNv (i) ; ser executado cinco vezes, ou seja, para i valendo 1,2,3,4e5. FOR i := 10 DOWNTO 1 DO WRITELN (i) ; No trecho de programa acima, 0 comando wRrTELW (i) ; ser executado dez vezes, ou seja, para i valendo 10, 9, 8, 7, 6, 5,4,3,2e 1. 5.2.2 ESTRUTURA DE REPETICAO WHILE, Aestrutura de repetigdo wars é utilizada quando o mimero de repetigdes necessérias no é fixo, apesar de também poder ser utilizada quando se conhece a quantidade de repetigdes. ‘Nessa estrutura, 0s comandos sero repetidos enquanto a condigio for verdadeira ¢ o teste condicional ocorre no inicio. Isso significa que existe a possibilidade da repetigdio nfo ser executada quando a condigio assumir valor falso logo na primeira verificagao, WHILE condig&o DO comando; Enquanto a condi cao for verdadeira, o comando sera executado. WHILE condicao DO BEGIN ‘comandot; comando2; END; Enquanto a condi¢ae for verdadeira, 0 comandoi € 0 comando2 serio executados. Exemplos: X= 0; WHILE X <> 5 DO BEGIN WRITELN (‘Valor de X = ',X); K=X42; END; WRITELN (‘Valor de X depois que sair da estrutura = ',X); No trecho de programa acima, os comandos WRITELN(' Valor de X = ',X) €X = X + 1; Serdo executados cinco vezes. O teste condicional avaliard x valendo 0, 1, 2,3,4€5. Simulagio: Voor de X= 0 1. Volores obtidos dentto da eurutura de repeticto | c 98 FUNDAMENTOS DA PROGRAMACAO DE COMPUTADORES YVolores oblides dento do estutura de repeticao 15 Vor obtido dentro da estutura de repetizao, que toma « condibofalsae inlerompe o repeticao “Volor de X depos que | si do esta Xea; ¥ = 10; WHILE ¥ > x DO BEGIN WRITELN ('Valor de ¥ = ',¥); yey-2; END; WRITELN (‘Valor de ¥ depois que sair da estrutura = ',¥); ‘No trecho de programa acima, os comandos WRITELN (‘Valor de ¥ = ',¥);eY = cinco vezes. O teste condicional avaliara x valendo 10, 8, 6, 4,2 € 0. ~ 2; sero executados Simulagio: Volor de ¥ 1 8 | Nolor de Y= 8 1 6 Valores obtides dentro do estrutura de | Valor de ¥ 1 4 repetigoo | Nolor de Y= 4 1 2 Volo bide dato do eshte de | Melos de ¥ = 2 1 ° condi en's nore 6 repetigao {que tomna @ condicdo falsa e interrompe @ 1 _ | WRITELN('Valor de X = ',X); K=X+1; END; No trecho de programa acima, os comandos wRITELN (‘Valor de X = ',X);@X = X + 1; nfo sero executados, pois com os valores iniciais de x e ¥ a condigdo € falsa, logo, no ocorrerd a entrada na estrutura de repetigao para execugdo de seus comandos. 5.2.3 ESTRUTURA DE REPETIGAO REPEAT Acestrutura de repeticdo repeat é utilizada quando o nimero de repetigdes necessérias ndo é fixo, apesar de também poder ser utilizada quando se conhece o niimero de repetigdes. CAPITULO S ESTRUTURA DE REPETIGAO 99 ‘Nessa estrutura, os comandos sero repetidos até a condigdo tomar-se verdadeira e o teste condicional ‘ocorre no final, o que significa que a repetiedo serd executada no minimo uma vez. REPEAT comandos ; UNTIL condicao; Os comandos serdo repetidos até que a condicao se tome verdadeira, Exemplos: x= 0; REPEAT WRITELN('Valor de X = ',X); X=Xe1; UNTIL X = WRITELN('Valor de X depois que sair da estrutura = ',X); No trecho de programa acima, os comandos WRITELN('Valor de X = ',X);@X = X + 1; sero executados cinco vezes. O teste condicional avaliara x valendo 1, 2, 3, 4e 5. | Simulagio: Valor de X= 0 Valor de X= 1 2 eae 3 Yeo obidos dono do exude epeicdo Naler deX=3 4 | Volor de X = 4 5 eomeuaen ee [Volor de X depois que | sair de estrutura = 5 ls No trecho do algoritmo anterior, portanto, os comandos que se localizam na estrutura de repetigio serio repetidos cinco vezes. Nesse exemplo, a estrutura RePrTA esté sendo utilizada para repetir o trecho do algo- ritmo um néimero definido de vezes. Xau ¥ = 10; REPEAT WRITELN (‘Valor de ¥ = ',¥); Ys ¥-2; UNTIL ¥ <= X; WRITELN('Valor de ¥ depois que sair da estrutura = ',¥); ‘No trecho de programa acima, os comandos WRITLN (‘Valor de ¥ = ',¥);€¥ = ¥ ~ 2; Serfoexecutados cinco vezes. O teste condicional avaliard v valendo 8, 6, 4, 2 € 0. Simulagio: 1 8 Velores obtidos dentro da estrutura de —repetigao _ | continua 100 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES continuago | olor de ¥ = 6 1 4 Valores obtidos dentro da estruturo de Volor de Y = 4 1 2 tepeticao Volor obtido dentto do estuiua de repet Volor de ¥ = 2 1 0 680, que toma 2 condigdo verdadeira e interrompe a tepetico Valor de Y depois que | s0ir do estutra = 0 5.3 ESTRUTURA DE REPETICAO EM C/C++ 5.3.1 ESTRUTURA DE REPETICAO FOR Essa estrutura de repetigdo é utilizada quando se sabe o nimero de vezes que um trecho do programa deve ser repetido. © formato geral do comando for € composto por trés partes: for (i = valor inicial; condigo; incremento ou decremento de i) comando; A primeira parte atribui um valor inicial a varidvel i, que tem como fungdo controlar o numero necessario de repetic&es. A segunda parte corresponde a uma expressio relacional que, quando assumir valor falso, determinaré 0 fim da repetigao. A terceira parte € responsavel por alterar o valor da varidvel i (incremento ou decremento) com 0 objetivo de, em algum momento, fazer com que a condigdo assuma valor falso. Caso seja necessaria a repeticao de apenas um comando, o compilador entendera que a estrutura de repetigao terminara quando for encontrado o primeiro ; (ponto-e-virgula). Exemplo: for (asi;ac=20;at+) cout << "\no valor dea é: " << a; ‘No exemplo anterior, a varidvel a é atribuido inicialmente o valor 1 ¢ depois vai sendo incrementada em uma unidade. A cada incremento, 0 comando cout ¢ executado. Esse processo se repete até o valor da varidvel «se tornar maior que 20 (quando a condigdo a <= 20 assumir valor falso). Se for necessairia a repetigdo de mais de um comando, o compilador entender que a estrutura de repetigao ‘comecaré quando for encontrado o simbolo { e terminara quando for encontrado o simbolo } Exemplo: for (as15;a>=1;a=a-2) { cout << "Digite um nimero: *; cin >> x; } No exemplo anterior, a varidvel a é inicializada com o valor 15 e vai sendo decrementada em duas unidades. A cada decremento, o bloco de comando que esti entre chaves { ... } & executado. Esse processo se repete até 0 valor da varidvel a se tornar menor que | (quando a condigo a>=1 assumir valor falso). Exemplos: CAPITULO 5 ESTRUTURA DE REPETIGAO to1 for (i = 1; i <= 5; it) cout << i; ou for (i = 1; i <= 5; ieiet) cout << i; Nos trechos de programa acima, que expressam a mesma coisa, o comando cout<< i; seri executado cinco vezes, ou seja, para 3 valendo 1, 2, 3, 4e 5. for (i = 10; i >= 4; i cout << i; ou for (i = 10; i cout << i; ii-1) Nos trechos de programa acima, que so exatamente a mesma coisa, o comando cout<< i; seré executado ez vezes, ou seja, para i valendo 10,9, 8, 7, 6, 5,4,3,2¢ 1 for (i = 0; i <= 10; i-i+2) cout << 4; No trecho de programa acima, 0 comando cout << i; serd executado seis vezes, ou seja, para i valendo 0, 2,4, 6, 8 € 10. for (i = 100; i >= 0; i=i-20) cout << i; No trecho de programa acima, o comando cout << i; seri executado seis vezes, ou seja, para i valendo 100, 80, 60, 40, 20 e 0. 5.3.2 ESTRUTURA DE REPETIGAO WHILE ‘Trata-se de uma estrutura de repeti¢ao que pode ser utilizada quando o nimero de repetigdes necessérias ni € fixo. Os comandos sero repetidos até a condigdo assumir o valor falso Nesse tipo de estrutura, 0 teste condicional ocorre no inicio. Isto significa que existe a possibilidade da repetic&io nao ser executada quando a condig&o assumir valor falso logo na primeira verificagao. while (condicao) comande Enquanto a condi ao for verdadeira, 0 comando sera executado. while (condicao) { comando2 ; comande2; comando3 ; .o Enquanto a condicao for verdadeira, os comandos que esto dentro das chaves serdio executados (coman- dol, comando2, comando3...). Exemplos: X20; while (x = 5) { cout << "Valor de X=" << x; Kexked; } cout << "Valor de X depois que sair da estrutura = " << X; No trecho de programa acima, os comandos cout << "Valor de X = " << X;€X = X + 1; Sedo executados cinco vezes. O teste condicional avaliard x valendo 0, 1, 2, 3,4 5. 102 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES Valores obtidos dent do estutua de repels Valor obtide dentro da esiuiuia de repetig6o, que toma 0 condigdo falta e inletompe a repetiso ty leon = Valor de X depois que scir do esiutua = 5 ty 10; while (¥ > X) { cout <¢ "Valor de Ye" cc ¥; y=Y- } cout << “Valor de ¥ depois que sair da estrutura =" << Y; No trecho de programa acima, 0s comandos cout << "Valor de ¥ = " ce ¥;@¥ = ¥ ~ 2; serdo ‘executados cinco vezes. O teste condicional avaliard y valendo 10, 8, 6, 4,2 € 0. Simulagio: Valor de Y = 10 | Nolor de ¥ “Yolor de ¥ | Nolor de Y= 4 Valores obtidos dentro de estrutura de repeligao Velor obtido denito do esiutura de repett 680, que tome a condigao verdodoia & inlenompe @ repetiego | Voor de ¥ = 2 "Volor de Y depois que soit do estutur xa; ¥=di while (x < ¥) { cout. << “Valor de X=" << X; x=X41 } ‘No trecho de programa acima, os comandos cout << "Valor de X = " << X;€X = X + 1; no serio executados, pois com os valores iniciais de xe ¥ a condigdo ¢ falsa, logo, nao ocorrerd a entrada na estrutura de repetigo para execugdo de seus comandos. 5.3.3 ESTRUTURA DE REPETIGAO DO-WHILE Trata-se de uma estrutura de repetiglio que pode ser utilizada quando o mimero de repeti¢bes necessérias nao ¢ fixo, Os comandos serdo repetidos até a condi¢do assumir o valor falso. Nese tipo de estrutura, o teste condicional ocorre no fim. Isso significa que a repetigao sera executada no minimo uma vez, quando todo o bloco for executado uma vez e, ao final, a condigao assumir valor falso. CAPITULO 5 ESTRUTURA DE REPETICRO 103 do { comandos: } while (condicao) ; Os comandos serio repetidos até que a condi cao assuma valor falso. Exemplos: x do { cout << "Valor de X =" ce X; KeX4a; } while (X I= 5); cout << “Valor de X depois que eair da estrutura = "<< x; No trecho de programa acima, os comandos cout << "Valor de X = " << X;eX = xX + 1; serdo executados cinco vezes. O teste condicional avaliard x valendo 0, 1, 2,3,4€5. Simulago: Valor de X = 0 Valor de X = 1 Valor de X = 2 Volor de Vaxexne 5 Valor obtido dent da estutura de repetiso, que oma a | condicdo falso e interrompe a repeticgo \Volores obtidos dentro do estruure de repeticéo Volor de X depois que soir da estutura = 5 xe. Y= 10; do { cout << “Valor de Y =" << ¥; ¥=¥-2; y while (¥ > X); cout << "Valor de ¥ depois que sair da estrutura = " << ¥; No trecho de programa acima, os comandos cout << "Valor de Y = " << ¥;€¥ = ¥ - 2; serfo executados cinco vezes. O teste condicional avaliard x valendo 10, 8, 6, 4,2 € 0. Simulagio: _Nalor de ¥ = 10 1 8 | Nalor de ¥ = 8 1 6 Volores obtidos dentro da esirutura de Volor de ¥ = 6 1 4 lal 2 Volor de ¥ = 4 1 ‘continua 104 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES | Volor obtido dentro do estutura de repet Valor de ¥ = 2 1 ° $80, que toma a condigao verdadeira intertompe « repeticéo Valor de ¥ depois que salt do esttutura = 0 5.4 ESTRUTURA DE REPETICAO EM JAVA 5.4.1 ESTRUTURA DE REPETICAO FOR Essa estrutura de repetigao ¢ utilizada quando se sabe o nlimero de vezes que um trecho do programa deve ser repetido, O formato geral do comando For ¢ composto por trés part for (isvalor inicial; condig&o; incremento ou decremento de i} comando; A primeira parte atribui um valor inicial & variavel , que tem como fungdo controlar 0 nimero necessério de repetigies. A segunda parte corresponde a uma expresso relacional que, quando assumir valor falso, determinara 0 fim da repetigao. A terceira parte ¢ responsével por alterar o valor da varidvel i (incremento ou decremento) com 0 objetivo de, em algum momento, fazer com que a condigao assuma valor falso. Caso seja necesséria a repeti¢ao de apenas um comando, o compilador entendera que a estrutura de repetigio terminaré quando for encontrado o primeiro ; (ponto-e-virgula). Exemplo: for (asl;ac=20;a++) System.out .printin("0 valor de a "sad; ‘No exemplo acima, a variavel a € inicializada com o valor | e é incrementada em uma unidade. A cada incremento, 0 comando system. out .printin é executado, Esse processo se repete até o valor da variavel a se tomar maior que 20 (quando a condigo a <= 20 assumir valor falso). Se for necesséria a repetigao de mais de um comando, a linguagem entenderd que a estrutura de repetigao comegard quando for encontrado o simbolo { e terminara quando for encontrado 0 simbolo }. Exemplo: for (a=15; { pa2a-2) System.out printin(*"Digite um ndmero: dado = new Scanner (System. in); x = dado.nextInt (); } No exemplo anterior, a varidvel a comeca com o valor 15 e é decrementada em duas unidades. A cada de- cremento, 0 bloco de comando que esti entre chaves { ... } & executado, Esse processo se repete até o valor da varivel a se tornar menor que 1 (quando a condigao a >=1 assumir valor falso).. Exemplos: for (i = 1; i <= 5; i++) system.out printin (i); ou for System.out .print1n(i) fewest 4) CAPITULO 5 ESTRUTURA DE REPETICAO 105 ‘Nos trechos de programa anteriores, que expressam a mesma coisa, o comando system.out .printIn (i); sera executado cinco vezes, ou seja, para 3 valendo 1, 2, 3,45. for (i = 10; i >= 1; 4--) System.out .print1n (4) ; ou for (i = 10; i >= 1; isi-1) system.out .print1n (i) ; Nos trechos de programa acima, que so exatamente a mesma coisa, o comando System.out .print1n(i) : serd executado dez vezes, ou seja, para é valendo 10, 9, 8,7, 6,5, 4,3, 2¢ 1. for (i = 0; i <= 10; System.out .printIn(i); +2) No trecho de programa acima, 0 comando system.out .printin(i); serd executado seis vezes, ou seja, para i valendo 0, 2, 4,6, 8 e 10. for (i = 100; i 2-0; 4. System.out .printIn(i) ; 20) No trecho de programa acima, 0 comando system.out .print in (i); serd executado seis vezes, ou seja, para i valendo 100, 80, 60, 40, 20. 0. 5.4.2 ESTRUTURA DE REPETICAO WHILE Trata-se de uma estrutura de repetigdo que pode ser utilizada quando o niimero de repetig&es necessérias nao € fixo, Os comandos serdo repetidos até a condig&o assumir o valor falso. Nesse tipo de estrutura, 0 teste condicional ocorre no inicio, o que significa que existe a possibilidade de a repetigdo nfo ser executada quando a condi¢do assumir valor falso logo na primeira verificagao. while (condig&o) comando; Enquanto a condi ao for verdadeira, 0 comando sera executado. while (condig&o} { comando1; comando2; comando3 ; ) Enquanto a condi¢&e for verdadeira, os comandos que esto dentro das chaves serdo executados (coman- dot, comando2, comando2...). Exemplos: x =o; white (x ( Systen.out printin(*Valor de X = +x); xeKe 1; } System.out .printIn(*Valor de X depois que sair da estrutura = +x); 5) No trecho de programa acima, os comandos system.out .printin(*Valor de X = “+X);@X =X +1; serio executados cinco vezes. O teste condicional avaliara x valendo 0, 1, 2,3,4€ 5. 106 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES Simulagio: 1 Nalorde X= 1 2 , Volor de X= 2 3 Valores obtidos dentro da estutura de repeticgo Valor de X= 3 4 _ | * Voor obsido denro da asta de repeticdo, que lorna o Wardex=4 > condigdo faea e interrompe a repeticdo | Volor de X depois que sain do esruvro = __| xea; v2 10; while (y > x) { system.out .printin("Valor de ¥ = “+Y); } System. out .printin(*Valor de Y depois que sair da estrutura = “+¥); No trecho de programa acima, os comandos System.out .printin(*Valor de ¥ = “+¥); €¥ = ¥ - 2 serao executados cinco vezes, O teste condicional avaliard y valendo 10, 8, 6, 4,2 0. Simulagio: Valor de 1 8 Valor de 1 6 Valores obtidos dentro da estrulura de Valor de 1 4 tepetigso Valor de Y= 4 1 2 | Volor obtido dentro da estrututa de repet= Valor de Y = 2 1 ° 780, que toma a condicéo verdadeira & inlerompe 0 repeticdo | Valor de ¥ depois que scir da estutura = 0 Kea; yeu; while (x < ¥) { System. out .printin(*Valor de X = "4x); K=eX+a; } No trecho de programa, os comandos system.out.printin(*valor de X= "sX); eX =X + 1; nfo serio executados, pois com os valores iniciais de x e ¥ a condigao ¢ falsa. Logo, ndo ocorreré a entrada na estrutura de repetig&o para execugio dos seus comandos. 5.4.3 ESTRUTURA DE REPETICAO DO-WHILE ‘Trata-se de uma estrutura de repetig%io que pode ser utilizada quando o nimero de repetigdes necessérias niio é fixo. Os comandos serdo repetidos até a condigo assumir o valor falso. Nesse tipo de estrutura, o teste condicional ocorre no fim. Isso significa que a repeti¢ao sera executada no ‘minimo uma vez, quando todo o bloco for executado uma vez €, ao final, a condigdo assumir valor falso. CAPITULO S ESTRUTURA DE REPETIGRO 107 do { comandos; } while (condigao) ; Os comandos serio repetidos até que a condicaio assuma valor falso. Exemplos: x= 0; do ( System.out.printin(*Valor de X =" +X); X=X41; } while (X 1-5); System.out.printin(*Valor de X depois que sair da estrutura = “+X); No trecho de programa acima, os comandos syatem.out.printin ("Valor de X - “+K),€X — X42; serao executados cinco vezes. O teste condicional avaliara x valendo 1, 2, 3, 4e 5. Simulagio: Valor de X = = Valores obsidos dento d de | . Ydos dento da esrulwa de repel es lores obidos dentto do estutra de repeticao Nalor de X= 3 4 —— Valor obtide dentro da estuura de repeticdo, que fora Nolorde: X= 5 concise folsae intrrampa o repetiogo ~ | Valor de X der X=1; Y= 10; ao System.out printin(*Valor de Y= * + Yi; Ye¥-2; } while (¥ >); System.out.printin(*Valor de Y depois que sair da estrutura = "+ ¥); ‘No trecho de programa acima, os comandos system.out .printin ("Valor de ¥ = "+ ¥);@¥ = ¥ - 2; sero executados cinco vezes. O teste condicional avaliard y valendo 8, 6, 4, 2 ¢ 0. Simulagio: Valor de Y = 10 _t 8 Volor de ¥ = 8 1 6 Valores obtidos dentro do estutura de Valor de ¥ = 6 1 4 ‘epeticao | Nalor de Y = 4 1 2 ‘continua 108 FUNDAMENTOS DA PROGRAMAGKO DE COMPUTADORES, ‘continuagdo Volor obiido denro da estrutura de repet- Valor de Y= 2 1 ° 60, que tora a condicdo verdadeira & inlerrompe « repaticdo | Volor de ¥ depois que | soir do estutura = 0 | EXERCICIOS RESOLVIDOS “1. Um funciondrio de uma empresa recebe aumento salarial anualmente. Sabe-se que: a) Esse funcionério foi contratado em 2005, com salério inicial de RS 1.000,00. b) Em 2006, ele recebeu aumento de 1,5% sobre seu salério inicial. ©) A partir de 2007 (inclusive), 0s aumentos salariais sempre corresponderam ao dobro do percentual do ano anterior. ‘Faca um programa que determine o salério atual desse funcionério. (AEST soucsc ALGORITWO DECLARE i, ano_atual, salario NUMERICO nove_salario, percentual NUMERICO LEIA ano_atual salaric & 1000 percentual © 1,5/100 novo_salario € salario + percentual * salario PARA i € 2007 ATE ano_atual FACA Inicio percentual € 2 * percentual novo salario € nove_salario + percentual * nove_salario Frm ESCREVA novo_salario FIM_ALGORITNO 14 soLUGAO - UTILIZANDO A ESTRUTURA FOR IN, \ EXERC\CAPS \ PASCAL\EX1_A. PAS € \EXERC\CAPS\ PASCAL\EX1_A. EXE 24 SOLUGAO - UTILIZANDO A ESTRUTURA WHILE: \EXERC\CAPS \ PASCAL\EX1_B. PAS € \BXERC\CAPS \ PASCAL \EX1_8. EXE 10 A ESTRUTURA FOR: ” \ BKERC\CAPS\C++\EX1_A.CPP € \EXERC\CAPS\C++\EX1_A. EXE 2* SOLUGAO - UTILIZANDO A ES RA WHILE: \ BXERC\CAPS\C++\EX1_B.CPP € \EXERC\CAPS\C++\EX1_B. EXE CAPITULO 5 ESTRUTURA DE REPETICAO 109 1A SOLUGAO ~ UTILIZANDO A ESTRUTURA FOR: \EXERC\CAPS\JAVA\EX1_A. java € \EXERC\CAPS\JAVA\EX1_A.class 24 SOLUGAO - UTILIZANDO A ESTRUTURA WHILE: \EXERC\CAPS\JAVA\EX1_B. java € \EXERC\CAPS\JAVA\EX1_B.class * 2. Faga um programa que leia um valor N inteiro e positivo, calcule e mostre o valor de E, conforme a formula a seguir: OARESRERIENEY sovucao ALGORTTWO DECLARE n, €, i, j, fat NUMERIC LEIA n een PARA i ¢ 1 ATE n FACA Intcro fat 1 PARA j © 1 ATE i FAGA infcro fat © fat + j PM e ces ita Fim ESCREVA e FIM_ALGORTTHO. 14 SoLUCAO ~ UTILIZANDO A ESTRUTURA FOR: Y \ EXERC\CAPS \ PASCAL\EX2_A. PAS € \EXERC\CAPS\PASCAL\EX2_A.EXE 24 SOLUGAO ~ UTILIZANDO A ESTRUTURA REPEA’ \ EXERC\CAPS \ PASCAL\EX2_B. PAS © \EXERC\CAPS\PASCAL\BX2_B. EXE D 14 SOLUGAO - UTILIZANDO A ESTRUTURA FOR: WZ \ EKERC\CAPS\C++\EX2_A.CPP € \EKERC\CAPS\C++\EX2_A.EXE 24 SOLUGAO - UTILIZANDO A ESTRUTURA DO-WHILE: \EXERC\CAPS\C++\EX2_B. CPP € \EXERC\CAPS\C++\EX2_B. EXE 14 SOLUGAO ~ UTILIZANDO A ESTRUTURA FOR: \ BXERC\CAPS \JAVA\EX2_A. java € \EXERC\CAPS\JAVA\EX2_A. class 24 soLucko - ur! ZANDO A ESTRUTURA DO-WHILE: \ EXERC\CAPS \JAVA\EX2_B. java € \EXERC\CAPS\JAVA\EX2_B. class 110 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES * 3. Faca um programa que leia um niimero N e que indique quantos valores inteiros e positivos devem ser lidos a seguir. Para cada mimero lido, mostre uma tabela contendo o valor lido ¢ 0 fatorial desse valor. (MMAUsoRAHET Soiucso ALGORTTMO DECLARE n, num, LEIA n PARA i © 1 ATE n FACA inicio LEIA num fate PARA j © 1 AT num FACA INicrIo fat © fat * 5 FIM ESCREVA fat FIM FIM_ALGORI™MO. 14 SOLUGAO ~ UTILIZANDO A ESTRUTURA FOR LA \EXERC\CAPS \ PASCAL\EX3_A. PAS € \EXERC\CAPS\PASCAL\EX3_A.BXE 24 SOLUGAO - UTILIZANDO A ESTRUTURA WHILE fat NuMERICO \EXERC\CAPS\ PASCAL\EX3_B. PAS € \EXERC\CAPS\PASCAL\EX3_B.EXE e. 14 SOLUGAO ~ UTILIZANDO A ESTRUTURA FOR \BXERC\CAPS\C++\BX3_A.CPP € \EKERC\CAPS\C++\EX3_A.EXE 24 SOLUGAO ~ UTILIZANDO & ESTRUTURA WHILE: \BXERC\CAPS\C++\EX3_B.CPP € \EXERC\CAPS\C++\EX3_B. EXE 14 SOLUGAO ~ UTILIZANDO A ESTRUTURA FOR \EXERC\CAPS\JAVA\EX3_A. java € \EXERC\CAPS\JAVA\EX3_A.clase 24 SOLUGAO ~ UTILIZANDO A ESTRUTURA WHILE \EXERC\CAPS \JAVA\EX3_B. java € \EXERC\CAPS\JAVA\EX3_B.class ‘4. Foi feita uma estatistica em Foram obtidos os seguintes dados: a) cédigo da cidade; b) _muimero de veiculos de passeio (em 2007); ©) mimero de acidentes de transito com vitimas (em 2007). -0 cidades brasileiras para coletar dados sobre acidentes de transito. Deseja-se saber: a) qual o maior e o menor indice de acidentes de transito e a que cidades pertencem; b) qual a média de veiculos nas cinco cidades juntas; ©) qual a média de acidentes de transito nas cidades com menos de 2.000 veiculos de passeio. CAPITULO S ESTRUTURA DE REPETICAO (ADREREHIN sovucao ALGORITMO DECLARE cont, cod, num vei, num_acid NUMERICO maior, cid maior, menor, cid_menor NUMERICO media vei, soma_vei, media_acid NUMERICO goma_acid, cont acid NUMERICO soma_vei <0 soma_acid ¢ 0 cont_acid © 0 PARA cont € 1 ATE 5 FACA avfcro LEIA cod, num vei, num_acid SE cont <1 ENTAO IN{CIO maior € num_acid cid maior — cod menor num_acid cid_menor cod FIM SENAO INfCIO SE num_acid > maior sNtKo Iwfcro maior © num_acid cid maior < cod Fim SE num_acid < menor ENTKo Infcro menor num acid cid_menor € cod FI FIM soma_vei € soma_vei + num vei SE num_vei < 2000 ENTAo Infcro soma_acid = soma_acid + num acid cont_acid @ cont_acid + 1 Fm rm ESCREVA maior, cid_maior ESCREVA menor, cid menor media_vei < soma_vei/s ESCREVA media_vei SE cont_acid = 0 ENTAO ESCREVA "Nao foi digitada nenhuma cidade com menos de 2000 ‘= vesculos" SENAO INfcro media_acid < soma_acid/cont_acid ESCREVA media_acid FIM FIM_ALGORTTWO 14 SOLUGAO ~ UTILIZANDO A ESTRUTURA FOR: \BKERC\CAPS\ PASCAL \EX4_A. PAS € \EXERC\CAPS\ PASCAL\EX4_A. EXE 24 SOLUGAO ~ UTILIZANDO A ESTRUTURA REPEAT: \BXERC\CAPS\ PASCAL\EX4_B. PAS € \EXERC\CAPS\PASCAL\EX4_B. EXE 112 FUNDAMENTOS DA PROGRAMAGAO DE COMPUTADORES 14 SOLUGAO ~ UTILIZANDO A ESTRUTURA FOR: \ BXERC\CAPS\C++\EX4_A. CPP € \EXERC\CAPS\C++\EX4_A. EXE 24 SOLUGAO ~ UTILIZANDO A ESTRUTURA DO-WHILE: \EXERC\CAP5\C++\EX4_B.CPP € \EXERC\CAPS\C++\EX4_B.EXE > 14 soLucao ~ uTH WA \ BXERC\CAPS \JAVA\EX4_A. java @ \EXERC\CAPS \JAVA\EX4_A.class 24 SOLOgAS ="UTILZANDO's E@TRUTURA DO-wHtURE \EXERC\CAPS\JAVA\EX4_B. java e€ \EXERC\CAPS\JAVA\EX4_B.class 5. Faca um programa que leia o nimero de termos e um valor positivo para X, calcule e mostre o valor da série a seguir: (AUSSIE! SoLucso ALGORITMO DECLARE fim, i, 5, x, expoente, num_termos NUMERICO den, denominador, fat, s NUMERTCO URTA num_termos, x seo denominador <1 PARA i @ 1 TO num_termos FACA atcro fim <— denoninador fat 1 PARA j © 1 ATE fim FAA anfcro fat @ fat +g PmM expoente © i+ 1 SE RESTO (expoente/ 2) = 0 ENTAO 3 © 6 - x°™"/fat SENAO 5 8 + x /fat SE denominador = 4 ENTKO den © -1 SE denominador = 1 ENTKO den © 1 SE den = 1 ENTRO denominador € denominador + 1 SENKO denominador € denominador - 1 FIM ESCREVA 5 FIM_ALGORITWO. 14 SOLUGAO ~ UTILIZANDO A ESTRUTURA FOR: \EXERC\CAPS\PASCAL\EXS_A. PAS € \EXERC\CAPS\PASCAL\EXS_A. EXE CAPITULO S ESTRUTURA DE REPETIGAO 113 24 SOLUCAO ~ UTILIZANDO A ESTRUTURA WHILE: \EXERC\CAPS\ PASCAL\EX5_B. PAS € \EXERC\CAPS\PASCAL\EXS_B.EXE 14 SOLUGAO ~ UTILIZANDO A ESTRUTURA FOR: \ EXERC\CAPS\C++\EXS_A.CPP € \EXERC\CAPS\C++\EXS_A.EXE 24 SOLUGAO - UTILIZANDO A ESTRUTURA WHILE: \EXERC\CAPS\C+ +\EX5_B. CPP € \EXERC\CAPS\C++\EX5_1 Q 14 SOLUGAG ~ UTILIZANDO A ESTRUTURA FOR: WA \ EXERC\CAPS\JAVA\EXS_A. java € \EXERC\CAPS\JAVA\EXS_A. class 24 SOLUGAO ~ UTILIZANDO & ESTRUTURA WHILE: \EXERC\CAPS\JAVA\EXS_B. java € \EXERC\CAPS\JAVA\EXS_B.class * 6. Uma empresa possui dez funcionarios com as seguintes caracteristicas: cédigo, mimero de horas trabalhadas ‘no més, tumo de trabalho (M — matutino, V — vespertino ou N — notumo), categoria (O — operiio ou G ~ gerente), valor da hora trabalhada, Sabendo-se que essa empresa deseja informatizar sua folha de pagamento, faga um pro- grama que: a) Leia as informagdes dos funcionarios, exceto o valor da hora trabalhada, no permitindo que sejam informados turnos nem categorias inexistentes. Trabalhe sempre com a digitagio de letras maiusculas. b) Calcule o valor da hora trabathada, conforme a tabela a seguir. Adote o valor de RS 450,00 para o salério minimo, G N 18% do salério minimo ° N 13% do salério minimo ©) Calcule o salirio inicial dos funcionérios com base no valor da hora trabalhada ¢ no nimero de horas trabalhadas. 4) Calcule o valor do auxilio-alimentagao recebido por funcionario de acordo com seu salario inicial, conforme a tabela a seguir. Ave R§ 300,00 20% do salario inicial Acima de R$ 600,00 ____ 5% do solo inicial ©) Mostre o cédigo, nimero de horas trabalhadas, valor da hora trabalhada, salério inicial, auxilio alimentagao ¢ salério final (salério inicial + auxilio-alimentagao).

Você também pode gostar