1 Introduo: A Programao de Computadores costumava ser considerada como uma forma de arte e somente os iniciados conseguiam entender os seus princpios. Utilizando uma viso mais moderna, pode-se perceber que a Programao pode ser encarada como cincia por utilizar ferramentas como: metodologias, tcnicas e conceitos. Curiosamente, uma das sries de livros mais famosos da computao The Art of Computer Programming 2 embora chame a programao de arte, trata a mesma como cincia e tcnica. Deixando de lado essa discusso, pode-se afirmar que nem todas as pessoas podem desenvolver a habilidade de programar, assim como nem todos sabem consertar automveis ou construir casas. Uma coisa pode ser afirmada com alto grau de certeza: s se aprende a programar programando. Vem da a importncia de resolver a maior quantidade possvel de exerccios. A presente lista de exerccios uma compilao de algumas obras clssicas cuidadosamente listadas nas referncias ao final, alm de problemas desenvolvidos durante os mais de 20 anos de ensino dessa disciplina. Para facilitar os trabalhos, os exerccios encontram-se divididos por assunto e por grau de dificuldade. A lista pode ser aproveitada tanto na parte inicial do estudo de Algoritmos quanto no estudo de qualquer linguagem de programao procedural. Aproveite bem.
1 Nesta nova verso, foram includos exerccios para tratamento de STRINGS, exerccios com MATRIZES e a lista de exerccios com funes foi aumentada. 2 A arte da programao de computadores. Srie de Livros escritos por Donald Knuth a partir de 1962 e em andamento at hoje. Lista de Exerccios de Programao Prof. Fernando Cardeal 2
Lista de Exerccios de Programao Prof. Fernando Cardeal 3
2 Problemas sequenciais 2.1 Transformao de unidade 1. Faa um algoritmo que leia a idade de uma pessoa expressa em anos, meses e dias e mostre-a expressa apenas em dias. Considere que todos os meses possuem 30 dias. 2. Faa um algoritmo que leia a idade de uma pessoa expressa em dias e mostre-a expressa em anos, meses e dias. Considere que todos os meses possuem 30 dias. 3. Faa um algoritmo que leia uma temperatura informada em graus Fahrenheit e a transforme em graus Celsius. A frmula de converso : C = (F-S2) 1,8 . 4. Faa um algoritmo que leia o tempo de durao de um evento em uma fbrica expressa em segundos e mostre-o expresso em horas, minutos e segundos.
2.2 Clculos simples 1. Faa um algoritmo que leia as trs notas de um aluno, calcule e exiba a mdia aritmtica simples das notas. 2. Faa um algoritmo que leia as trs notas de um aluno, calcule e exiba a sua mdia aritmtica ponderada, considerando que os pesos das notas so: 3, 2 e 4. 3. O custo ao consumidor de um carro novo a soma do custo de fbrica com a percentagem do distribuidor e dos impostos (aplicados ao custo de fbrica). Supondo que a percentagem do distribuidor seja de 28% e os impostos de 45%, escreva um algoritmo que leia o custo de fbrica de um carro e escreva o custo ao consumidor. 4. Escreva um algoritmo para efetuar o clculo da quantidade de combustvel gasto em uma viagem, sabendo-se que o carro faz 12 km com um litro. O algoritmo deve ler o TEMPO gasto na viagem e a VELOCIDADE MDIA. Lembre-se da seguinte frmula: distncia = velocidade x tempo. 5. Escreva um algoritmo que leia as variveis inteiras A e B e troque os seus contedos, ou seja, o contedo de A ir para B e vice-versa. 6. Uma fbrica de camisetas produz os tamanhos pequeno, mdio e grande, sendo vendidas respectivamente por 10, 12 e 15 reais. Construa um algoritmo em que o usurio fornea a quantidade de camisetas pequenas, mdias e grandes referentes a uma venda, e a mquina informe quanto ser o valor arrecadado. 7. Faa um algoritmo que leia o saldo de uma aplicao financeira e exiba o novo saldo, considerando o reajuste de 1,5%. 8. Faa um algoritmo que leia um nmero no formato CDU (centena, dezena e unidade) e o exiba no formato UDC. Exemplo: se for lido o nmero 234, dever ser exibido o nmero 432. Importante: o nmero deve ser armazenado em uma varivel antes de ser exibido. Lista de Exerccios de Programao Prof. Fernando Cardeal 4
9. Faa um algoritmo que leia a razo de uma Progresso Aritmtica, leia o primeiro termo, calcule e exiba o 10termo. 10. Escreva um algoritmo que leia um nmero entre 0 e 60, calcule e exiba o seu sucessor, sabendo que o sucessor de 60 0. No pode ser utilizado nenhum comando de deciso ou de repetio. 3 Problemas com decises (testes condicionais) 3.1 Decises simples 1. Faa um algoritmo que leia 2 valores inteiros X e Y e os escreva com a mensagem: So mltiplos ou No so mltiplos. 2. Faa um algoritmo que leia um nmero inteiro e informe se este par ou se impar. 3. Faa um algoritmo que leia a idade de uma pessoa e informe se MAIOR de idade, se MENOR de idade ou se MAIOR DE 65 anos. A idade um nmero inteiro. 4. Faa um algoritmo que leia as 3 notas de um aluno, calcule e exiba a sua mdia aritmtica e informe uma das mensagens a seguir: Aprovado (se a mdia for maior ou igual a 7), Reprovado (se a mdia for menor do que 3) e Em Prova Final (para os demais casos). 5. Faa um algoritmo que leia trs nmeros inteiros e informe qual o maior deles. 6. Escreva um algoritmo que leia uma data (dia, ms e ano separados) e informe se a data vlida ou no. Lembre-se que os meses 1, 3, 5, 7, 8, 10 e 12 tm 31 dias. O ms 2 tem 28 dias (ignore anos bissextos). 7. Elabore um algoritmo que leia a idade de um nadador e o classifique em uma das seguintes categorias: Infantil A = 5 - 7 anos infantil B = 8-10 anos juvenil A = 11-13 anos juvenil B = 14-17 anos adulto = maiores de 18 anos 8. Escreva um programa que receba a altura e o sexo de uma pessoa e que calcule e mostre o seu peso ideal, utilizando as seguintes frmulas: - para homens: (72.7 * altura) - 58 - para mulheres: (62.1 * altura) - 44.7 9. Uma empresa conceder um aumento de salrio aos seus funcionrios, varivel de acordo com o cargo, conforme a tabela abaixo. Faa um algoritmo que leia o salrio e o cargo de um funcionrio e calcule o novo salrio. Se o cargo do funcionrio no estiver na tabela, ele dever, ento, receber 5% de aumento. Mostre o salrio antigo, o novo salrio e a diferena. Cdigo Cargo Percentual 101 Gerente 10% 102 Engenheiro 20% Lista de Exerccios de Programao Prof. Fernando Cardeal 5
103 Tcnico 30%
10. Um comerciante comprou um produto e quer vende-lo com um lucro de 45% se o valor da compra for menor do que R$100,00; caso contrrio, o lucro deve ser de 30%. Escreva um algoritmo que leia o valor do produto e exiba o valor da venda. 11. Faa um algoritmo que leia um percurso em quilmetros, o tipo do carro e exiba o consumo estimado de combustvel, sabendo-se que um carro tipo C faz 12 km com um litro de combustvel, um tipo B faz 9 km/litro e o tipo A, 8 km por litro. 12. Se um ano for divisvel por 4 e no for divisvel por 100 ele bissexto, exceto os que so divisveis por 400 que tambm so bissextos. Faa um algoritmo que, dado o valor de um ano, exiba se o ano ou no bissexto. Teste o seu algoritmo/programa para os seguintes valores: 1996: Foi um ano bissexto ( divisvel por 4 e no por 100) 2000: Foi um ano bissexto ( divisvel por 4, por 100 e por 400) 2001: No foi um ano bissexto (no divisvel por 4) 1900: No foi um ano bissexto ( divisvel por 4 e por 100, mas no por 400). 2012: Foi um ano bissexto ( divisvel por 4 e no por 100)
Lista de Exerccios de Programao Prof. Fernando Cardeal 6
3.2 Decises Mltiplas (Faa Caso/Switch) 1. Um banco conceder um crdito especial aos seus clientes, varivel com o cdigo de classe do cliente obtido durante a movimentao da sua conta corrente no ltimo ano. Faa um algoritmo que leia o cdigo de classe de um cliente, seu saldo mdio e calcule o valor do crdito de acordo com a tabela abaixo. Mostre uma mensagem informando o saldo mdio e o valor do crdito. CLASSE Percentual Z nenhum crdito C 20% do valor do saldo mdio B 30% do valor do saldo mdio A 40% do valor do saldo mdio 2. Desenvolva um algoritmo que leia dois nmeros inteiros e uma operao: (+ - * / %). O algoritmo deve executar a operao e mostrar o resultado. Cuidado com a diviso por zero. 3. Construa um algoritmo que leia um nmero de 1 a 7 e escreva o dia da semana correspondente, sendo que domingo o dia nmero 1. Mostre mensagem de erro caso o nmero seja invlido. 4. Escreva um algoritmo que leia um nmero de um ms (de 1 a 12) e que informe o trimestre correspondente ao ms. Caso o nmero seja invlido, emita uma mensagem, 5. Considerando somente o alfabeto, escreva um algoritmo que leia uma letra e mostre uma das seguintes mensagens: Vogal maiscula, Vogal minscula ou Consoante. 6. Escreva um algoritmo que leia a idade de uma pessoa e, conforme a DEZENA da idade e a tabela a seguir, classifique a pessoa: 0 - Criana 1 - Adolescente 2 - Jovem 3 - Jovem Adulto 4 - Adulto 10 - Matusalm Outra - Melhor idade 7. Escreva um algoritmo que leia o nmero de lados e a medida do lado de um polgono regular e, conforme o nmero de lados, informe: a) Se for 3: escrever TRINGULO e o valor do seu permetro. b) Se for 4: escrever QUADRADO e o valor da sua rea. c) Se for 5: escrever PENTGONO d) Outro: escrever POLGONO no identificado.
Lista de Exerccios de Programao Prof. Fernando Cardeal 7
4 Algoritmos com repetio 1. Escreva um algoritmo que leia os seguintes dados relativos a uma turma de faculdade: quantidade de alunos e numero de aulas. Em seguida, leia para cada aluno a quantidade de faltas e informe quem foi reprovado por faltas. Para ser reprovado o aluno tem que ter mais de 25% de faltas. 2. Escreva um algoritmo que leia uma quantidade indeterminada de nmeros inteiros at encontrar o nmero 0 (zero). Conte e exiba quantos nmeros esto entre 100 e 200, inclusive. 3. Chico mede 1,30 m de altura e cresce 2 centmetros por ano, enquanto Z mede 1,10 m de altura e cresce 3 centmetros por ano. Faa um algoritmo que calcule e exiba quantos anos sero necessrios para que Z seja mais alto do que Chico. O algoritmo tambm deve exibir as alturas finais de Chico e de Z quando ocorrer a ultrapassagem. 4. Uma rainha requisitou os servios de um monge e disse-lhe que pagaria qualquer preo. O monge, necessitando de alimentos, perguntou rainha se o pagamento poderia ser feito com gros de trigo dispostos em um tabuleiro de xadrez de forma que o primeiro quadro contivesse apenas um gro e cada quadro subsequente contivesse o dobro do quadro anterior. A rainha considerou o pagamento barato e mandou executar o servio, sem se dar conta que seria impossvel efetuar o pagamento. Faa um algoritmo que calcule e exiba o nmero de gros que o monge esperava receber. 5. Faa um algoritmo que leia 15 valores inteiros, encontre e mostre o maior e o menor deles. 6. Faa um algoritmo que leia N valores inteiros e informe o maior e o menor deles. O valor de N deve ser lido no incio. 7. Escreva um algoritmo que calcule e exiba os 10 primeiros termos da sequncia de Fibonacci. Os dois primeiros termos da sequncia so 1 e 1. Cada termo seguinte a soma dos dois termos anteriores (1 1 2 3 5 8 ...) 8. Escreva um algoritmo que leia um valor para N e exiba os N primeiros termos da sequncia de Fibonacci (1 1 2 3 5 8 13...). 9. Desenvolva um algoritmo que calcule a mdia ponderada de vrios valores inteiros positivos, lidos externamente. Para cada nmero inteiro lido, dever ser fornecido tambm o seu peso. O final da leitura acontecer quando for lido um valor negativo (que no deve ser considerado para o clculo). 10. Faa um algoritmo que leia uma quantidade indeterminada de nmeros inteiros e calcule o fatorial de cada um deles. Lembre-se que o fatorial de zero um (0! = 1). Se forem fornecidos nmeros negativos, exibir mensagem apropriada e no calcular o fatorial. O algoritmo deve prosseguir at ser lido o nmero 100, que no deve ser processado. 11. Escreva um algoritmo que leia os valores de N resistncias ligadas em paralelo, calcule e exiba a resistncia equivalente. O valor de N lido no incio da execuo do algoritmo. O clculo da resistncia equivalente feito de acordo com a frmula a seguir, onde RE = resistncia equivalente e R1, Lista de Exerccios de Programao Prof. Fernando Cardeal 8
R2, etc. so as resistncias em paralelo que tambm so lidas pelo algoritmo:
12. Uma empresa deseja aumentar os preos de seus produtos em 20%. Faa um algoritmo que leia o cdigo e o preo de custo de cada produto e calcule o preo novo. Calcule tambm, a mdia dos preos com e sem aumento. Mostre o cdigo e o preo novo de cada produto e, no final, as mdias. A entrada de dados deve terminar quando for lido um cdigo de produto negativo. 13. Faa um algoritmo que leia um nmero, encontre e informe todos os seus divisores. Se o nmero for primo, exibir uma mensagem apropriada (lembre- se que nmero primo aquele divisvel apenas por si e por 1). 14. Desenvolva um algoritmo que leia um conjunto de 20 informaes contendo, cada uma delas, a altura e o sexo de uma pessoa (M ou m ou F ou f), calcule e mostre o seguinte: A maior e a menor altura da turma; A mdia da altura das mulheres; A mdia da altura da turma. 15. Desenvolva um algoritmo que leia e processe diversas operaes em relao ao estoque de um produto. O algoritmo dever ler e executar as operaes conforme segue: a. Inicialmente l o saldo ORIGINAL do produto; b. Se ler a operao = C (compra) deve ler a quantidade comprada e acrescentar ao saldo. O saldo deve ser mostrado aps a operao. c. Se ler a operao = V (venda) deve ler a quantidade vendida e, se o saldo for suficiente, deve subtrair a quantidade do saldo e mostrar o saldo final. Se o saldo no for suficiente, deve exibir a mensagem Saldo insuficiente, Operao no efetuada. d. Se ler a operao = S (saldo) deve mostrar o saldo. e. Se ler a operao = F (fim) deve finalizar a execuo. f. Qualquer outra operao lida deve gerar a mensagem Operao invlida.
1 R c = 1 R 1 + 1 R 2 + 1 R 3 ++ 1 R n
Lista de Exerccios de Programao Prof. Fernando Cardeal 9
5 Problemas com VETORES (arrays unidimensionais) 1. Escreva um algoritmo que leia e mostre um vetor de 20 elementos inteiros. A seguir, conte quantos valores pares existem no vetor. 2. Desenvolva um algoritmo que leia um conjunto de 30 valores e os coloque em 2 vetores conforme sejam pares ou mpares. Depois exiba o vetor dos nmeros pares e o vetor dos nmeros mpares. 3. Desenvolva um algoritmo que leia e mostre um vetor com N elementos inteiros (N deve ser informado no incio do processo) e, a seguir, execute as seguintes operaes: i) Localize e informe todos os nmeros pares encontrados, inclusive informando em que posies do vetor eles esto; ii) Informe a quantidade de nmeros pares encontrados. 4. Desenvolva um algoritmo que leia dois vetores de 10 elementos inteiros e faa a multiplicao dos elementos de mesmo ndice, colocando o resultado em um terceiro vetor. Mostre os vetores originais e o vetor resultante. 5. Desenvolva um algoritmo que leia um vetor de 20 elementos inteiros e mostre-o. Em seguida, troque o primeiro elemento com o ltimo, o segundo com o penltimo, o terceiro com o antepenltimo, e assim sucessivamente. Mostre o novo vetor depois da troca. 6. Desenvolva um algoritmo que leia um vetor de 10 elementos inteiros e mostre-o ordenado em ordem crescente. 7. Escreva um algoritmo que leia um vetor de 15 elementos inteiros. Encontre e mostre o menor elemento e sua posio no vetor. Considere que podem existir valores repetidos. 8. Desenvolva um algoritmo que leia um vetor X(20) e o escreva. Escreva, a seguir, cada um dos valores distintos que aparecem em X dizendo quantas vezes cada valor aparece em X. 9. Desenvolva um algoritmo que leia um vetor (A) de N elementos (N informado no incio da execuo). Em seguida, compacte o vetor, retirando os valores nulos e negativos. Coloque o resultado no vetor B e exiba o resultado. 10. Uma locadora de DVDs tem guardada, em um vetor de 500 posies, a quantidade de filmes retirados por seus clientes durante o ano de 2012. A locadora decidiu fazer uma promoo e, para cada 10 filmes retirados, o cliente tem direito a uma locao grtis. Desenvolva um algoritmo que crie outro vetor contendo a quantidade de locaes gratuitas a que cada cliente tem direito, exibindo o resultado em seguida (apenas com aqueles clientes que tm direito a locaes grtis). A posio do vetor corresponde ao cdigo do cliente. 11. Certa loja resolveu utilizar vetores para controlar o seu estoque de mercadorias. Para isso projetou trs vetores: o primeiro conter os cdigos das mercadorias, o segundo conter os nomes das mercadorias correspondentes aos cdigos do primeiro vetor e o terceiro vetor conter os saldos em estoque com a mesma correspondncia. Desenvolva um algoritmo que atenda a loja citada, realizando as seguintes operaes: Lista de Exerccios de Programao Prof. Fernando Cardeal 10
a) Crie os trs vetores (codigos, produtos e saldos) com capacidade para 500 produtos; b) Leia os dados iniciais para a montagem do estoque. A leitura deve ser feita at encontrar um produto com cdigo negativo. Esse deve ser desconsiderado. c) Aps a montagem do estoque, o algoritmo dever ler vrios pedidos de mercadoria contendo cdigo e quantidade desejada e processar da seguinte forma: i) Para cada cdigo lido, deve pesquisar se o produto existe no estoque; ii) Se no existir, emitir mensagem Produto xxxx no cadastrado; iii) Caso o produto exista, o algoritmo deve verificar se o saldo suficiente para atender ao pedido do cliente e, se for, deve atualizar o estoque (subtraindo a quantidade pedida); iv) Caso o saldo seja insuficiente, deve emitir a mensagem Produto xxxx xxxxxxxxxxxxxx saldo x insuficiente. v) Aps o processamento de cada pedido, o algoritmo deve perguntar se deseja processar novo pedido (S ou N), repetindo o processo at o cliente digitar N ou n.
Lista de Exerccios de Programao Prof. Fernando Cardeal 11
6 Problemas com MATRIZES (arrays bidimensionais)
1. Escreva um programa em C que leia uma matriz 4x4 de nmeros inteiros e a imprima no formato de matriz, conforme exemplificado: xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
2. Escreva um programa em C que leia uma matriz de NxN de nmeros inteiros e imprima os elementos ACIMA da diagonal principal. O valor de N deve ser lido no incio.
3. Escreva um programa em C que leia uma matriz de NxN de nmeros inteiros e imprima o PRODUTO dos elementos da diagonal principal. O valor de N deve ser lido no incio.
4. Escreva um programa em C que leia uma matriz 3x2 de nmeros inteiros e gere uma nova matriz que seja a sua matriz transposta. Exiba as duas de forma arrumada conforme problema 1.
5. Escreva um programa que leia uma matriz de 2x3 e outra de 3x4 de valores float. Calcule e imprima a matriz produto. Tambm exiba as matrizes originais.
6. Dada uma matriz real A mxn , verificar se existem elementos repetidos em A. Exibir os elementos.
7. Leia uma matriz 5 x 5. Leia tambm um valor X. O programa dever fazer uma busca desse valor na matriz e, ao final escrever a localizao (linha e coluna) ou uma mensagem de no encontrado.
8. Gere e imprima duas matrizes A e B 5x5 com valores aleatrios entre 0-4. Aps isso calcule a matriz C, resultante da soma da matriz A com a matriz B. Imprimir a matriz C. Pesquise como gerar nmeros aleatrios (rand).
Lista de Exerccios de Programao Prof. Fernando Cardeal 12
7 Problemas com Funes
Nota: para testar as funes, faa programas que as utilizem. 1. Faa uma funo que receba a idade de uma pessoa em anos, meses e dias e retorne essa idade expressa em dias. 2. Faa uma funo que receba um valor inteiro e positivo, calcule e retorne o seu fatorial. 3. Faa uma funo que recebe, por parmetro, um valor inteiro e positivo e retorne o nmero de divisores desse valor. 4. Faa uma funo que receba um valor inteiro e retorne o valor 1 se o nmero for primo e retorne o valor 0 caso no seja primo. 5. Escreva uma funo que receba por parmetro um valor inteiro e positivo N e retorne o valor de S = 1 + 1/1! + ! + 1/3! + ... + 1 /N! 6. Faa uma funo que receba por parmetro o raio de uma esfera e calcule o seu volume (v = 4/3. .R 3 ). 7. Faa uma funo que verifique se um valor perfeito ou no. Um valor dito perfeito quando ele igual soma dos seus divisores excetuando ele prprio. (Ex: 6 perfeito, 6 = 1 + 2 + 3, que so seus divisores). A funo deve retornar 1 (um) se o nmero for perfeito ou 0 (zero) se no for. 8. Escreva uma funo que receba por parmetro um valor inteiro e positivo N e retorne o valor de S, conforme abaixo: S = 1 + + 1/3 + + 1/5 +...+ 1/N 9. Faa uma funo que receba a idade de um nadador por parmetro e retorne a categoria desse nadador de acordo com a tabela abaixo. Para testar a funo, escreva um programa que leia as idades de N nadadores (N lido no incio) e, a partir do retorno da funo, exiba a categoria de cada nadador. Idade Categoria Retorno 5 a 7 anos Infantil A A 8 a 10 anos Infantil B B 11-13 anos Juvenil A C 14-17 anos Juvenil B D Maiores de 18 anos (inclusive) Adulto E
10. Faa uma funo que receba, por parmetro, a altura (alt) e o sexo de uma pessoa e retorne o seu peso ideal. Para homens, calcular o peso ideal usando a frmula peso ideal = 72.7 x alt - 58 e, para mulheres, peso ideal = 62.1 x alt - 44.7.
Lista de Exerccios de Programao Prof. Fernando Cardeal 13
8 Problemas com STRINGS (cadeias de caracteres)
1. Escreva um programa que leia uma String e mostre a quantidade de palavras nela. 2. Escreva um programa que leia uma String e mostre a quantidade de vogais nela. 3. Escreva um programa que receba uma string e imprima uma tabela que informe o nmero de ocorrncias de cada caractere na string. 4. Uma palavra denominada um palndromo se for invertida e a leitura da mesma permanecer sem nenhuma alterao. Algumas palavras que so palndromos so: aba, radar, reter, rever, rir, rotor, dentre outras. Construa um programa que detecte se uma palavra (string) digitada pelo usurio ou no um palndromo. 5. Escreva um programa que leia uma string e elimine o excesso de espaos entre as palavras, inclusive no incio e no fim da string. Exiba a string antes e depois. Exemplo: Lida: Frase cheia de espaos . Aps: Frase cheia de espaos. Note que foram eliminados os espaos do incio, do fim e foi deixado apenas um espao entre as palavras. 6. Escreva um programa que leia uma String correspondendo ao nome de uma pessoa e crie uma nova String contendo apenas as iniciais do nome. (Ex: "Joo da Silva" => "JdS"). 7. Escreva um programa que leia uma String e cria outra com os caracteres duplicados exceto os espaos. (Ex: Teste de programa => TTeessttee ddee pprrooggrraammaa). 8. Escreva um programa que leia uma String e transforme todos os caracteres em minsculos. Exiba a string original e a convertida. 9. Escreva um programa que leia uma String e transforme todos os caracteres em maisculos. Exiba a string original e a convertida. 10. Escreva um programa em C que leia uma palavra fornecida pelo teclado e em seguida imprima o caractere presente no meio da palavra, caso esta tenha um nmero mpar de caracteres. Caso tenha um nmero par de caracteres o programa deve imprimir os dois caracteres centrais. Como exemplo, considere a palavra SONHO. O caractere a ser impresso ser o N. Outro exemplo: CASA => seria impresso AS.
Lista de Exerccios de Programao Prof. Fernando Cardeal 14
9 Bibliografia
FARRER, Harry e outros. Algoritmos Estruturados. 3 ed. So Paulo: LTC, 1999. FORBELONE, Andr Luiz. Lgica de Programao. 3 ed. So Paulo: Prentice Hall, 2005. LOPES, Anita; GARCIA, Guto. Introduo Programao: 500 algoritmos resolvidos. Rio de Janeiro: Campus, 2002.