Você está na página 1de 9

COMO CONSTRUIR BONS ALGORITMOS Uma seqncia de passos que pode ser utilizada para que se construa bons

algoritmos a seguinte: a) ler o problema proposto at entende-lo. Se necessrio, consultar pessoas ( o pro essor, um colega, etc.) b) determinar as !ari!eis de entrada, as de sa"da, e as outras constantes e !ari!eis que ser#o necessrias para resol!er o problema. ($ssas !ari!eis poder#o ser modi icadas ou acrescidas de outras durante o processo de cria%#o do algoritmo). c) determinar de uma orma bem geral quais os passos ( ases) necessrios para a solu%#o do problema proposto d) detal&ar os passos em instru%'es ou comandos, ate que ten&amos comando primiti!os de inidos no nosso pseudoc(digo. e) escre!er o algoritmo ) Simular (e)ecutar com se !oc osse o computador) e corrigir os passos at que se ten&a o algoritmo uncionando corretamente para alguns dados de entrada poss"!eis. * aprendizado de algoritmos n#o se consegue a n#o ser atra!s de muitos e)erc"cios.

Algoritmos no se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos s se aprendem: Construindo algoritmos Testando algoritmos
+. $scre!a um algoritmo que leia !rios !alores !eri ique se ele se encontra no inter!alo entre , (e)clusi!e) e -. (inclusi!e). -. $scre!er um algoritmo que escre!e os n/meros pares entre +.. e -... 0. $scre!er um algoritmo que escre!e a soma dos n/meros entre . e +... 1. $scre!er um algoritmo que escre!e a soma dos n/meros pares entre . e +... ,. $scre!er um algoritmo que escre!e a soma dos n/meros m/ltiplos de 2 entre +.. e -... 3. $scre!er um algoritmo que escre!e a soma dos n/meros que n#o s#o m/ltiplos de +0 entre +.. e -... 2. $scre!er um algoritmo que l , !alores para a, um de cada !ez, e conta quantos destes !alores s#o negati!os, escre!endo esta in orma%#o. 4. $scre!er um algoritmo que l um n/mero n#o con&ecido de !alores, um de cada !ez, e conta quantos deles est#o em cada um dos inter!alos 5., -,6, (-,, 5,.6 , (,., 2,6, (2,, +..6. 7. $scre!er um algoritmo semel&ante ao anterior que calcula as mdias aritmticas de cada inter!alo e as escre!e, 8untamente com o n/mero de !alores de cada inter!alo.

+.. $scre!a um algoritmo para ler 0. !alores, de 0 em 0, onde cada !alor representa as trs medidas 9, :, ; dos lados de di erentes tri<ngulos, calcular a rea de cada um deles pela (rmula= >>>>>>>>>>>>>>>> ?@$9 A S(S-9) (S-:) (S-;), onde S A (9B:B;)C++. $scre!er um algoritmo que gera os n/meros de +... a +777 e escre!e aqueles que di!ididos por ++ d#o um resto igual a ,. +-. $scre!er um algoritmo que l , con8untos de 0 !alores a, b, c, um con8unto por !ez e os escre!e assim como oram lidos. $m seguida, ordene-os em ordem decrescente e escre!a-os no!amente. +0. Dadas 4 bolas tendo uma deles peso di erente das demais. Dizer qual essa bola e se ela mais pesada ou mais le!e que as outras e qual o seu peso. Emprimir tambm o peso de todas as bolas. +1. $scre!er um algoritmo que l +. !alores para n, um de cada !ez, todos inteiros e positi!os, e para cada n lido, escre!a a tabuada de + at n de n. + ) n A n - ) n A -n ... n ) n A n+,. $scre!er um algoritmo que l um n/mero e calcula e escre!e quantos di!isores ele possui. +3. $scre!er um algoritmo que escre!e os n/meros m/ltiplos de 2 entre +.. e -.., bem como a soma destes n/meros. +2. $scre!a um algoritmo para ler, calcular e escre!er a mdia aritmtica entre dois n/meros. +4. $scre!er um algoritmo que l um n/mero n#o determinados de !alores a, todos inteiros e positi!os, um de cada !ez, e calcule e escre!a a mdia aritmtica dos !alores lidos, a quantidade de !alores pares, a quantidade de !alores impares, a percentagem de !alores pares e a percentagem de !alores "mpares. +7. $scre!er um algoritmo que leia 0 !alores: a, b, c e calcule e escre!a a mdia aritmtica, &armFnica e geomtrica correspondente. ;alcular a mdia aritmtica pela (rmula: a + b + c 3 ;alcular a mdia &armFnica pela (rmula: 3____ 1 + 1 + 1 a b c
0 a. b. c

;alcular a mdia geomtrica pela (rmula:

-.. $scre!er um algoritmo que l 0 !alores a, b, c que s#o lados de um tri<ngulo e calcule a rea deste tri<ngulo.
s( s a)( s b)( s c)

onde s A semi-per"metro

-+. Gara 9 e : inteiros e maiores que zero, azer um algoritmo para o clculo de 9 ele!ado H potncia de : e 9 di!idido por : usando multiplica%'es sucessi!as e subtra%'es sucessi!as, respecti!amente. * algoritmo de!e ser capaz de processar !rios pares (9,:). --. ;onsiderando a igualdade Soma A +0 B -0 B 00 B ...B I0 Jazer um algoritmo para ler um !alor K inteiro, positi!o e maior que zero e obter o menor !alor de I que satis a%a a rela%#o S*L9 M K.

-0. $scre!a um algoritmo para calcular o !alor de S, onde os !alores de I e G s#o lidos e S calculada pela (rmula: S A >>>>>>IN>>>>>>> GN ( I - G) N

-1. $scre!a um algoritmo para calcular o !alor de Sen ), obtido pela srie de Lac-Oaurin. Sen ) A ) - )0 C 3 B ), C +-. - )2C,.1. B P B )n C nN -,. Dada a srie: - 0 1 7 +3 -7 simo termo da srie. -3. Dada a srie: -- . 3 4 +1 +3 calcular o n-simo termo da srie. ,1 77 P. $scre!a um algoritmo para calcular o n-

--

-1

0.

0- P.

$scre!a um algoritmo para

-2. Jazer um algoritmo que leia um n/mero real K e calcule o seguinte somat(rio : SA K >K> B >K>> - >K> B ... +N -N 0N , usando os -. primeiros termos da srie. -4. $scre!a um algoritmo para calcular o !alor de K, onde K calculado da seguinte orma : K A IN B (I-+)N C - B (I--)NC 0 B (I-0)NC1 B ... B + C I -7. ;alcular e imprimir a srie :

S =

02 X 04 +

03 X 02 -

0, X 03 0

+. . . +

+X 02

0.. ;alcular e imprimir a srie :

S =

+ +

0 7

1 +3

+. . .

+. +..
0

0+. ;alcular e imprimir a srie :

P =

+N +

-N 0

0N 2

1N +,

,N 0+

. . .

somando-se os ,. primeiros termos. * atorial ser obtido pela un%#o J9Q*@E9O que de!er ser de inida. 0-. Um sistema de equa%'es limeares da orma : 9) B :R A ; D) B $R A J pode ser resol!ido utilizando-se as seguintes (rmulas. K A >>$; - :J>> e S A >>9J - ;D>> 9$ - :D 9$ - :D $scre!a um algoritmo para ler o con8unto de coe icientes (9, :, ;, D, $, J) e imprimir a solu%#o, ou se8a K e S. 00. $scre!er um algoritmo que l um !alor I e calcula e escre!e os -. primeiros termos da srie: + B +C)- B +C)0 B +C)1 B ... 01. $scre!er um algoritmo que l um con8unto de 1 !alores i, a, b, c, onde i um !alor inteiro e positi!o e a, b, c, s#o quaisquer !alores reais e os escre!a. 9 seguir: Se i A + escre!er os 0 !alores a, b, c em ordem crescente. Se i A - escre!er os 0 !alores a, b, c em ordem decrescente. Se i A 0 escre!er os 0 !alores de orma que o maior !alor entre a, b, c ica entre os outros -. 0,. Uma uni!ersidade dese8a azer um le!antamento a respeito de seu concurso !estibular. Gara cada curso, ornecido o seguinte con8unto de !alores : - c(digo do curso= - n/mero de !agas= - n/mero de candidatos do se)o masculino= - n/mero de candidatos do se)o eminino. ;onsidere o c(digo do curso sendo zero para indicar o lag de entrada. Jazer um programa que: - calcule e imprima, para cada curso, o n/mero de candidatos por !aga e a porcentagem de candidatos do se)o eminino e o c(digo do curso= - determine e imprima o maior n/mero de candidatos por !aga 8untamente com o c(digo do curso (supor que n#o &a!er empate)= - calcule e imprima o total de candidatos. 03. Iuma brica trabal&am &omens e mul&eres di!ididos em trs classes : 9 - os que azem at trinta pe%as por mes= 1

: - os que azem de 0+ a 0, pe%as por mes= ; - os que azem mais de 0, pe%as por mes. 9 classe 9 recebe salrio m"nimo. 9 classe : recebe salrio m"nimo e mais 0T do salrio m"nimo por pe%a, acima das 0. iniciais. 9 classe ; recebe salrio m"nimo e mais ,T do salrio m"nimo por pe%a acima das 0. iniciais. Jazer um programa que : Oeia um con8unto de dados com : o n/mero de operrios= o n/mero de pe%as abricadas por mes= o se)o do operrio= ;onsidere o n/mero de operrios sendo zero como lag de entrada. ;alcular e imprimir : o n/mero e o salrio de cada operrio= o total da ol&a de pagamento mensal= o n/mero total de pe%as abricadas por ms= a mdia de pe%as abricadas pelos &omens em cada classe= a mdia de pe%as abricadas pelas mul&eres em cada classe= o n/mero do operrio(a) de maior salrio (supor n#o &a!er empate). 02. $scre!a um algoritmo que leia uma seqncia de !alores inteiros positi!os e : a) imprima todos os n/meros= b) imprima o maior e o menor !alor= c) imprima os !alores primos, pares e impares= 04. $scre!a um algoritmo que leia uma seqncia de dados (nome, se)o, idade, salrio) a) imprima todos p(s nomes dos uncionrios= b) imprima o total de &omens= c) imprima o total de mul&eres com salrio maior que @U ,..,..= d) imprima a mdia salarial. 07. Dado uma seqncia de dados (nome, salrio, idade, se)o) dos uncionrios de uma irma, escre!a um algoritmo para: a) imprimir os nomes das pessoas= b) imprimir o total de &omens e o total de de mul&eres= c) imprimir o maior salrio= d) imprimir a menor idade= e) para os salrios menores que @U ,....,.. imprima esses salrios acrescido de -.T. 1.. Jazer um programa que leia um con8unto de dados contendo a matr"cula, as trs notas e a reqncia de do aluno e calcule e imprima: a nota inal de cada aluno= a maior e a menor nota inal da turma (supor n#o &a!er empate)= a nota mdia da turma= o total dos alunos repro!ados= a porcentagem dos alunos repro!ados por reqncia. para cada aluno: a matr"cula, a reqncia, as trs notas, a nota inal e o apro!eitamento (9C@)= Emprimir a matr"cula quando or pertinente.

1+. $)istem 0 candidatos a uma !aga no Senado. Jeita a elei%#o os !otos s#o colocados em um arqui!o, ormando uma seqncia de !alores. * !oto de cada eleitor oi codi icado da seguinte orma : + - !oto para o candidato + - - !oto para o candidato 0 - !oto para o candidato 0 1 - !oto em branco , - !oto nulo. Dese8a-se saber : a) o candidato !encedor= b) o n/mero de !otos em branco= c) e o n/mero de eleitores

1-. Oeia 0 !alores DD , LL, 99 representando respecti!amente (dia, ms e ano). $scre!a um algoritmo para !eri icar a !alidade da data. ;onsidere ano bisse)to (um ano bisse)to ( e!ereiro com -7 dias) quando o ano m/ltiplo de 1 ) e que as datas (DD LL 99) est#o no inter!alo de .+ .+ 70 at 0+ +- 7,. 10. $scre!er um algoritmo que l o n/mero de um uncionrio, seu n/mero de &oras trabal&adas, o !alor que recebe por &ora, e o n/mero de il&os com idade menor do que +1 anos, o !alor do salrio am"lia por il&o e calcula o salrio deste uncionrio. 11. $scre!er um algoritmo que l o n/mero de um !endedor, o seu salrio- i)o, o tota+ de !endas por ele e etuadas e o percentual que gan&a sobre o total de !endas. ;alcular o salrio tota+ do !endedor. $scre!er n/mero do !endedor e o salrio total. 1,. Uma re!endedora de carros usados paga a seus uncionrios !endedores, um salrio i)o por ms, mais uma comiss#o tambm i)a para cada carro !endido e mais ,T do !alor das !endas por ele e etuadas. $scre!er um algoritmo que l o n/mero do !endedor, o n/mero de carros por ele !endidos, o !alor tota+ de suas !endas, o salrio i)o e o !alor que recebe por carro !endido e calcula o salrio mensal do !endedor, escre!endo-o 8untamente com o seu n/mero de identi ica%#o. 13. $scre!er um algoritmo que l o n/mero de um !endedor de uma empresa, seu salrio i)o e o total de !endas por ele e etuadas. ;ada !endedor recebe um salrio i)o, mais uma comiss#o proporcional Hs !endas por ele e etuadas. 9 comiss#o de 0T sobre o total de !endas at U +....,.. e ,T sobre o que ultrapassa este !alor. $scre!er o n/mero do !endedor, o total de suas !endas, seu salrio i)o e seu salrio total. 12. $scre!er um algoritmo que l 0 comprimentos de lados a, b, c e os ordena em ordem decrescente, de modo que o a represente o maior dos 0 lados lidos. Determine, a seguir, o tipo de tri<ngulo que estes 0 lados ormam, com base nos seguintes casos escre!endo sempre os !alores lidos e uma mensagem adequada: Se a M b B c n#o ormam tri<ngulo algum. Se a- A b- B c- ormam um tri<ngulo ret<ngulo. Se a- M b- B c- ormam um tri<ngulo obtus<ngulo. Se a- V b- B c- ormam um tri<ngulo acut<ngulo. Se orem todos iguais ormam um tri<ngulo equiltero. Se a A b ou b A c ou a A c ent#o ormam um tri<ngulo is(sceles 3

14. $scre!er um algoritmo que l a &ora de in"cio de um 8ogo e a &ora do inal do 8ogo (considerando apenas &oras inteiras) e calcula a dura%#o do 8ogo em &oras, sabendo-se que o tempo m)imo de dura%#o do 8ogo de -1 &oras e que o 8ogo pode iniciar em um dia e terminar no dia seguinte. 17. $scre!er um algoritmo que l o n/mero de um uncionrio, o n/mero de &oras por ele trabal&adas, o !alor que recebe por &ora, o n/mero de il&os com idade in erior a +1 anos, a idade, o tempo de ser!i%o do uncionrio e o !alor do salrio am"lia por il&o. ;alcular o salrio bruto, o desconto do EISS (4,,T do salrio bruto) e o salrio am"lia. ;alcular o E@ (Emposto de @enda) como segue: Se Salrio :ruto M +.,..,.. ent#o E@ A +,T do S: Se Salrio :ruto M ,..,.. e S: VA +.,..,.. ent#o E@ A 4T do S: Se salrio :ruto VA ,..,.. ent#o E@ A . ;alcular o adicional con orme especi icado: Se idade superior a 1. anos 9DE; A -T do S: Se tempo de ser!i%o superior a +, anos 9DE; A 0.,T do S: Se tempo de ser!i%o V +, anos mas superior a , anos e idade maior do que 0. anos ent#o 9DE; A +,,T do S:. ;alcular o salrio l"quido. $scre!er o n/mero do uncionrio, salrio bruta, total dos descontos, adicional e salrio l"quido. ,.. $scre!er um algoritmo que l o n/mero de identi ica%#o e as 0 notas obtidas por um aluno nas 0 !eri ica%'es e a mdia dos e)erc"cios que azem parte da a!alia%#o. Gara cada aluno, calcular a mdia de apro!eitamento, usando a (rmula: L9 A Il B I- ) - B I0 ) 0 B L$ 2 9 atribui%#o de conceitos obedece H tabela abai)o: Ldia de 9pro!eitamento MA 7.. MA 2., e V 7.. MA 3.. e V 2., MA 1.. e V 3.. V 1.. ;onceito 9 : ; D $

* algoritmo de!e escre!er o n/mero do aluno, suas notas, a mdia dos e)erc"cios, a mdia de apro!eitamento, o conceito correspondente e a mensagem: W9G@*X9D*W se o conceito or 9, :, ou ; e W@$G@*X9D*W se conceito or D ou $. ,+. Uma empresa decidiu conceder um aumento de salrios a seus uncionrios de acordo com a tabela abai)o: Salrio Atual ndice De Aumento . - 1..,.. +,T 1..,.+ - 2..,.. +-T 2..,.+ - +....,.. +.T +....,.+ - +.4..,.. 2T +.4..,.+ - -.,..,.. 1T acima de -.,..,.. sem aumento

$scre!er um algoritmo que l, para cada uncionrio, o seu n/mero e o seu salrio atual e escre!e o numero do uncionrio, seu salrio atua+, o percentual de seu aumento e o !alor do salrio corrigido. ,-. $scre!er um algoritmo que l um n/mero n#o determinado de con8untos de !alores, cada um ormado pelo n/mero de um aluno e suas 0 notas. ;alcular, para cada aluno, a mdia ponderada com pesos respecti!os de 1 para a maior nota e 0 paras as outras duas. $scre!er o n/mero do aluno, suas 0 notas, a mdia calculada e uma mensagem WaprovadoW se nota MA , ou WreprovadoW para nota V ,. ,0. $scre!er um algoritmo que l, para cada !endedor de uma empresa, o seu n/mero de identi ica%#o, seu salrio i)o e o total de !endas em reais por ele e etuadas. ;ada !endedor recebe um salrio i)o e uma comiss#o proporcional Hs !endas por ele e etuadas. 9 comiss#o de 0T sobre o total de !endas at U +....,.. e ,T sobre o que ultrapassa este !alor. $scre!er, para cada !endedor, o seu n/mero de identi ica%#o, o tota+ de suas !endas, seu salrio i)o e seu salrio total. ,1. $scre!er um algoritmo que l , con8untos de - !alores, o primeiro representando o n/mero de um aluno e o segundo representando a sua altura em cent"metros. $ncontrar o aluno mais alto e o mais bai)o e escre!er seus n/meros, suas alturas e uma mensagem dizendo se o mais alto ou o mais bai)o. ,,. $scre!er um algoritmo que gera e escre!e os , primeiros n/meros per eitos. Um n/mero per eito aquele que igual a soma dos seus di!isores. ($).: 3 A l B - B 0= -4 A + B - B 1 B 2 B +1 etc.). ,3. Supondo que a popula%#o de um pa"s 9 se8a da ordem de 7......... de &abitantes com uma ta)a anual de crescimento de 0,+T e que a popula%#o de um pa"s : se8a de -.......... de &abitantes com uma ta)a anua+ de crescimento de +,,T, escre!er um algoritmo que calcula quantos anos ser#o necessrios para que a popula%#o do pa"s 9 ultrapasse a do pa"s :, mantidas as ta)as atuais de crescimento. ,2. $scre!er um algoritmo que l um !etor X536 e o escre!e. ;onte, a seguir quantos !alores de X s#o negati!os e escre!a esta in orma%#o. ,4. $scre!er um algoritmo que l um !etor K(+..) e o escre!e. Substitua, a seguir, todos os !alores nulos de K por + e escre!a no!amente o !etor ) ,7. $scre!er um algoritmo que l um !etor ;5,.6 e o escre!e. $ncontre, a seguir, o maior elemento de ; e o escre!a. 3.. $scre!er um algoritmo que l um !etor I54.6 e o escre!e. $ncontre, a seguir, o menor elemento e a sua posi%#o no !etor I e escre!a: Yo menor elemento de n = , L, Ye a sua posio = Z, G. 3+. $scre!er um a+goritmo que l um !etor 95+,6 e o escre!e. *rdene, a seguir os elementos de 9 em ordem crescente e escre!a no!amente 9. 3-. $scre!er um algoritmo que l um !etor I5-.6 e o escre!e. Qroque, a seguir, o +[ elemento com o /ltimo, o -[ com o pen/ltimo, etc., at o +.[ com o ++[ e escre!a o !etor I assim modi icado. 30. $scre!er um algoritmo que l um !etor \(-.) e o escre!e. Qroque, a seguir, os elementos de ordem "mpar com os de ordem par imediatamente seguintes e escre!a o !etor ] modi icado. 4

31. $scre!er um algoritmo que l um !etor ^5-.6 (gabarito) e a seguir l um n/mero n#o determinado de n/meros de alunos e !etores @5-.6 (resposta), um n/mero e um !etor @ de cada !ez. * n/mero representa o n/mero de um aluno e o !etor @ representa o con8unto de respostas daquele aluno. Gara cada aluno calcular o n[ de acertos e ca+cular a nota. nota A n/mero de acertos _ .., $scre!er o n[ do aluno, sua nota e a mensagem WaprovadoW se ti!er nota maior ou igual a , ou WreprovadoW se a nota or menor do que ,. 3,. $scre!er um algoritmo que l, um !etor X5-.6 e o escre!e. ;ompacte, a seguir, o !etor S, retirando dele todos os !alores nulos ou negati!os e escre!a o !etor compactado. 33. $scre!er um algoritmo que l um !etor X(-.) e o escre!e. @etire, a seguir, os elementos em duplicata, compactando o !etor S, e escre!endo o !etor compactado. 32. $scre!a um algoritmo que l um con8unto de 0. !alores e os coloca em - !etores con orme orem pares ou impares. * taman&o dos !etores de , posi%'es. Se algum !etor esti!er c&eio, escre!e-lo. Qerminada a leitura escre!er o conte/do dos - !etores. ;ada !etor pode ser preenc&ido tantas !ezes quantas or necessrio. 34. $scre!a um algoritmo que l uma matriz L(,,,) e calcula as somas: a) da lin&a 1 de L b) da coluna - de L c) da diagonal principal d) da diagonal secundria e) de todos os elementos da matriz $scre!a estas somas e a matriz. 37. $scre!er um algoritmo que l uma matriz L(3,3) e calcula as somas das partes &ac&uriadas.

$scre!er a matriz L e as somas calculadas 2.. $scre!er um algoritmo que l uma matriz L(+.,+.) e a escre!e. Qroque, a seguir: ` a lin&a - com a lin&a 4. ` a coluna 1 com a coluna +. ` a diagonal principal com a secundria ` a lin&a , com a coluna +. $scre!a a matriz assim modi icada. 2+. $scre!er um algoritmo que l uma matriz L(3,3) e um !alor 9 e multiplica a matriz L pelo !alor 9 e coloca os !alores da matriz multiplicados por 9 em um !etor de X(03) e escre!e no inal o !etor X. $scre!er um algoritmo que l uma matriz L(,,,) e cria - !etores SO(,), S;(,) que conten&am respecti!amente as somas das lin&as e das colunas de L. $scre!er a matriz e os !etores criados.

Você também pode gostar