algoritmo: do Lat. algorithmos < Ár. alkharizmi: [Inform.] conjunto de etapas bem definidas necessárias para chegar à resolução de um problema.
January 4, 2006
Eu disse aí há uns dois posts atrás que eu ia começar a escrever artigos explicativos para quem está iniciando em áreas que eu já conheço há mais tempo como GNU/Linux, PHP/MySql, linguagem C e algoritmos. Então, resolvi começar pelo último. Esse é o primeiro de uma série de artigos que eu pretendo fazer e onde pretendo abordar:
Os últimos eu faço questão de colocar até porque eu quero revisar pra Olimpíada desse ano (aliás, quero ir pro México pra Olimpíada Internacional de Informática nesse ano!). Eles são meio complicadinhos, mas a gente chega lá.
Hoje vou começar com o primeiro item: O que é um algoritmo?
Um algoritmo é um procedimento computacional definido que recebe um ou mais valores (entrada) e produz um ou mais valores (saída). O algoritmo é aquela fórmula matemática, aquele pedaço de código, que fica ali no meio da entrada e da saída para transformar o primeiro no segundo.
Vamos supôr por exemplo que temos a função:

A sua entrada é o x e a sua saída é o y (ou f(x), o valor que a função retorna).
O algoritmo aqui seria o seginte:
O algoritmo, portanto, é a lógica do nosso problema matemático, ou, informático. É a seqüência de passos que eu faço na minha cabeça (ou, quando é complexo, no papel) antes de escrever, em C, a função f:
int f(int x) {
int z, y;
z = pow(x, 2);
y = z/3;
return y;
}
Se formos pensar, veremos que tudo o que fazemos é um algoritmo, é um procedimento que recebe uma entrada e envia uma saída. Não só no computador, mas na vida. Quando eu falo com alguém, eu espero sua entrada (o que a pessoa fala pra mim), então penso e transformo essa entrada numa saída (a resposta que vou dar pra pessoa). E assim é com várias outras coisas. Podemos dizer também que acordar é um algoritmo, por exemplo:
Podem existir vários algoritmos diferentes para resolver o mesmo problema. No caso de Acordar, cada um acorda de forma diferente, por exemplo. Foi até um exemplo meio estranho esse aí, mas outro algoritmo poderia dar outra saída, como por exemplo simplesmente abrir os olhos e cair da cama. Ou no caso acima da função matemática, poderíamos ter um algoritmo que fizesse a mesma coisa de maneira diferente também.
O algoritmo que usamos depende principalmente do tempo que ele demora pra ser executado e a memória que ele gasta no computador. Chamamos isso de custo. Quando começarmos a ver os algoritmos de ordenação de vetores, veremos que cada algoritmo faz uma coisa diferente, mas todos fazem a mesma coisa: ordenar o vetor. Para uma entrada pequena, um pode ser mais rápido... Para uma maior, outro. Portanto, o algoritmo que queremos usar (o tempo que ele vai demorar pra ser executado e a memória que ele vai gastar no computador) depende principalmente do tamanho da entrada (que chamamos de N e no exemplo da função seria a variável X).
Na maioria dos casos (e vai ser sempre assim aqui nos meus artigos), a entrada será o teclado (por exemplo, o usuário digita o X para a função) e a saída será a tela (por exemplo, o programa imprime o resultado da função, o Y, para a tela). Essas são a entrada e saída padrão (standard input output do C), que é usada nas olimpíadas e na maioria dos problemas que resolvemos no computador.
Em resumo, portanto, um algoritmo é a lógica de um programa computacional. Nos próximos artigos, isso deverá ser mais esclarecido e começaremos a ver algoritmos "de verdade"
Qualquer dúvida, sugestão ou notificação de erro; poste um comentário ou me envie um e-mail.
Compare Preços de: notebooks, acer aspire, hp pavilion, computadores, pentium 4, nintendo wii, ps3, celulares, câmeras digitais
Gostei do artigo, ótima introdução.
Não esqueça de entrar no assunto de Algoritmos Geométricos.
Olá Tiago,
Gostei do artigo,
acompanho o seu site já algum tempo,
e estou sempre aguardando você postar as novidades, bom já estou na espera dos próximos artigos.
Parabéns!
Gabriel Santana
M4sk4r4
Opa Tiago, muito bom a sua abordagem rapaz!
Algoritmos, é um tema pouco valorizado por muitos programadores iniciantes, que querem logo jogar a mão na massa hehehe
ah ficou muito bem explicado, parabéns!
Abraços!
Minha professora já marcou a prova de Lógica de Programação para dia 09/01, próxima segunda-feira, se puder agilizar nos artigos ficarei grato. ![]()
Muito bom o tutorial, explicou melhor que uns professores meus da faculdade que tem até mestrado
Sinceramente, 2 meses falando de algoritmo…tsc tsc, no seu caso não seria nem uma aula. ![]()
Olá Tiago,
Vi seu artigo sobre algoritmo recursivo, assunto que precisei relembrar quando estive diante de um problema num programa. Gostei tanto q vim aqui no primeiro artigo. =)
E achei fantastico. Por mais que os livros e os professores tentem fazer um cenario, uma metafora, nenhum conseguiu ser tão objetivo e eficaz como você.
Continue os com artigos…estão “massa”.
Um abraço!
Valeu pelos comentários, galera! Fico contente que vocês tenham gostado dos artigos (estou quase até achando que estou no nível de um professor universitário… hehehe…). Sintam-se a vontade para darem sugestões de que assuntos devo abordar nessa série!
Um abraço,
Tiago.
Sua explicação em relação a ese assunto éh bastante clara e explicida, resumindo está excelente.
becitóz
Olá.
Há uma certa polêmica na área acadêmica a respeito de algoritmos e heurísticas. Você poderia indicar a diferença entre eles.
Obrigada.
Será q vcs podem me explicar, sobre o teste de mesa de um algoritmo. obrigada
Olá Tiago,
Muito boa a introdução, pois para mim que sou iniciante ajudou bastante, principalmente a analogia feita com a matemática.
Se vc puder, nos próximos artigos, colocar bastante exemplos com a linguagem C seria ótimo mesmo, pois tenho interesse em aprender essa linguagem.
Abraços
Junior
Blz mesmo este artigo , pra mim que estou começando então, estar o maximo
olá tiago!!! interessante e útil esse seu artigo! certamente me ajudará bastante no teste da disciplina algoritmo e programação…
olá,tiago adorei seu assunto ´tá bem claro e resumido qualquer dúvida,recorro a vc.
Nossa muito bom a introdução e estava em busca na net desse esclarecimento sobre algorito e encontrei…
Muito bom!!
[…] O artigo está em outro local agora: O que é um algoritmo? […]
A sua definição de Algoritmo está equivocada, ela é muito mais genérica do que o publicado. Algoritmo não recebe um ou mais valores e retorna um ou mais valores. Um algoritmo pode não ter nenhuma entrada e várias saídas, ou o contrario. e não necessariamente ele é computacional, e se for mesmo assim não se aplica a sua definição.
olá!!!
gostei muito de suas explicações,
“quase professor universitário” Tiago.
rsrs!!!!
gostaria q vc explicasse um pouco a respeito
de fluxograma.
to achando meio xato e complicado!
e meu professor ainda por cima é péssimo pra
explicar!
aguardo resposta
Grato
DIEGO
sou galileu (batele) preciso de uma informaçao que por exemplo vai me deixar recordar do algoritmao em linguagem computacional
hum….
mt boa a explicaçao, porém só entendi o q seria um algoritmo…
mais aki na se fala exatamente como se usa na realidade…
pensei q iria me ajudar e só vi q tinha coisas escritas sobre algoritmo e nao resoluçoes…
bj [;)]
Estou com um grande probleminha fazer um programa em lógica que dê a sequinte saida tamanho 5 rodar no visualg
O que faz um algoritmo ser melhor do que o outro? Quais os critérios que são utilizados para avaliar a qualidade de um algorotmo?
Qual os critérios para avaliar a qualidade de uma lgoritimo?
Muito Bom cara… Não sei se vc dá aula em algum lugar. Se não, seria interessante pensar nisto,
pois, vc tem o dom de ensinar de forma decomplicada. Parabéns. Muito bom memso.
por favor me ajude a decifrar ….o q faz um algotmo ser melhor do que o outro ???
aguardo resposta
Adorei o seu artigo, mas tenho uma pergunta, gostaria de saber o que faz um algoritmo ser melhor do que o outro? Quais os critérios que são utilizados para avaliar a qualidade de um algoritmo?
Por favor me envie a resposta o mais breve, pois estou com muita duvida.
Agradece, Maria Cunha
O que faz um algoritmo ser melhor do que o outro? Quais os critérios que são utilizados para avaliar a qualidade de um algoritmo?
preciso da resposta para um trabalho q deve ser entregue amanhã
obrigada
Blz,é a primeira vez q acessei esse site gostei mto estou começando agora o curso de Análise e desenvolvimento de sistemas, e realmente sua materia está resumida e bem explicada.
O que faz um algoritmo ser melhor do que o outro? Quais os critérios que são utilizados para avaliar a qualidade de um algorotmo?
Preciso entregar um trabalho,não sei se vc pode me ajudar.
A pergunta é a seguinte :O que faz um algoritmo ser melhor que o outro?
Quais são os critérios utilizados para avliar qualidade de um algoritmo?
sabe eu gostaria de saber como que um algoritmo pode ser melhor que outro? e quais os criterios para avaliar um algoritimo…..responde ai ………quebra esse calho
Simples claro e conciso, este esclarecimento sobre algorítmo esgotou qualquer duvida que poderia se ter.
O que faz um algoritmo ser melhor do que o outro?
Quais são os critérios utilizados para avliar qualidade de um algoritmo?
por favor responda a pergunta da marleni #22, é um trabalho e esta valendo nota, nos esclareça esta pergunta o prazo de entrega do trabalho é dia 29/05/2007. Por favor.
E por favor me mande também por E-mail esta resposta.
É URGENTE, POR FAVOR ME ENVIE.
O que faz um algoritmo ser melhor que o outro? Quais os critérios que são ultilizados para avaliar a qualidade de um algoritmo?
Por favor me responda urgentimente é um trabalho que estamos fazendo e o plazo de entrega do mesmo é no dia 29/05/2007.
O que faz um algoritmo ser melhor que o outro? Quais são os critérios que são utilizados para avaliar a qualidade (complexidade) de um algoritmo?
Esta pergunta foi respondida aqui em: Análise de Algoritmos
EU detestei
Gostei muito desse artigo. é um assunto que eu realmente quero
saber bem afundo. Espero que vc continue escrevendo artigos importantes e interessantes.
Peço que vc escreva um artigo sobre como montar um Servidor e sobre
Segurança de Rede.
qual software vc usa pra fazer algoritmo???????????
espero sua resposta,
obs:
gostei do artigo, di grande valor pra iniciantes, parabens pela iniciativa
Gramei d leer o seu artigo
Stava lendo cada palavra com muita atencao
Gostei
Muito bom!!! vc explica fácil parabéns mesmo, foi melhor do que alguns professores. rsrs!.
Continue assim com essas iniciativas de falar mais sobre algoritmos, estarei atento as suas novas publicações.
até mais
Dado um grafo qualquer, o programa deverá calcular as seguintes informações:
a. para cada vértice:
• grau de entrada,
• grau de saída
b. para o grafo como um todo:
• a soma dos graus de entrada
• a soma dos graus de saída
• o número de arcos/arestas
Voce pode me ajudar a fazer em linguagem C?
Espero anciosamente.
Dado um grafo qualquer, o programa deverá calcular as seguintes informações:
a. para cada vértice:
• grau de entrada,
• grau de saída
b. para o grafo como um todo:
• a soma dos graus de entrada
• a soma dos graus de saída
• o número de arcos/arestas
A saída deverá conter n linhas, uma para cada vértice, em que cada linha contém, nesta ordem, o grau de entrada e o grau de saída do vértice respectivo.
Na última linha (linha n+1), o programa deverá imprimir sem espaços, nesta ordem, a soma dos graus de entrada, a soma dos graus de saída e o número de arestas.
Estou usando em lista de adjacencia.
Voce pode me ajudar a fazer em linguagem C?
Espero anciosamente.
Legal sua explicação sobre algoritmos Tiago, é boa mesmo
mas eu preciso de uma ajuda, preciso fazer um trabalho na
escola sobre algoritmos. Tem que ser um algorimo com cinco formas
de resolver, você pode me dar um exemplo ???
VALEU.
Gostei muito da sua explicação sobre algoritmos.
Estou começando sistemas de informação e estava meio confusa sobre o tema.
Parabens pela iniciativa!
Comecei a ler ![]()
Sou estudante Universitário do Curso de Analise e Desenvolvimento de Software.
Gostaria de saber o por que da obediencia dos sistemas de algoritmos aos nossos comandos(pascal,visualg2.0) etc…
Gostei da introdução, estou ansioso pelos próximos tópicos.
cara valeu muito fera ,até eu que sou iniciante em algoritmo entendi sua explanação.está de parabéns.
Olha, gostei muito de seu artigo.. sou estudante de Sistemas de Informação e gostei muito de sua abordagem sobre algoritmo, pois eleva bem a intenção logica de como proceder… deu para entender como enchergar logicamente o sentido do algoritmo…. continue postando para termo mais referencias de opinioes sobre o assunto, que é muito interessante e que pode ajudar aos colegas a enchergarem mais como aprender e facilitar mais os estudos, pois, opinioes diferentes são formas diferentes de interpretar o que é algoritmo…. forte abraço.
Welinton.
Parabéns!!
Sou iniciante no assunto sem conhecimento algum.
Entendi objetivamente o conceito.
Obrigada!!
1. Dado 3 valores, entre 0 e 1000, faça um algoritmo que informe se o valor digitado é menor que 100.
alguém poderia me ajudar a solucionar ?
Obrigada
oi to com dificuldade no processamento alguem poderia me ajudar ae
obrigado
Oi Tiago…primeiramente parabéns pela sua explicação de algorítmos!Desculpa te incomodar,é que estou no primeiro semestre de “Sistemas de Informação” e estou tendo dificuldades nessa matéria “algorítmos”não estou conseguindo compreender a explicação,será que vc poderia me mandar uma maneira mais fácil e complexa ??? Tipo com exemplos de vários exercícios,eu estou com 30 exercícios pra resolver e está complicado viu,por favor se possível me mande algum artigo no meu e-mail!!!Ficarei aguardando sua resposta o mais rápido possível!!Obrigado!!!me ajuda aí ……..
Thiago bom dia
Comecei ontem o curso de Licenciatura em Informática, gostaria muito das suas orientações.
O primeiro assunto dado pelo professor foi Algoritmo
Alvaro,
como faço para postar pergunta para o Tiago no forum? Nao achei opçao.
Nossa gostei de muito de suas explicações
conseguir ter um poco de noção rsrs
algoritmo muito bommmmmm
Muito legal todas essas informações sobre algoritmo … e esta sendo muito util para pesquisas e aprendisado.
gostaria de saber se poderia falar um pouco sobre visual algoritmo … e que estou precisando para um trabalho e não encontrei …
OI EU QUERIA SABER COMO DESENVOLVER UM ALGORITMO QUE LEIA UMA TEMPERAURA EM GRAUS CELSIUS E CONVERTA PARA FAHRENHEIT
EU ADOREI O CONCEITO SOBRE ALGORITMO
OI EU QUERIA SABER COMO DESENVOLVER UM ALGORITMO QUE LEIA UMA TEMPERATURA EM GRAUS CELSIUS E CONVERTA PARA FAHRENHEIT. F=180*(C+32)/100
por favor me ajude
E.1.A.Q Simule as compras em surmercado sabe-se que todos os produtos tem codigo,preço,quantidade e setor. uma pessoa pode pegar varias vezes o mesmo item. não exister limite de compras para cada produto passado pelo caixa deve ser informado um subtotal. ao final o programa deve mostrar todos itenas quantidades de cada um e total a ser pago ( use a criatividade)
E.1.A.Q Mostre todos os multiplos de 5 existentes entre 1 e 1000
E.1.A.Q Dado um valor ele informa seu dobro.tiplos e quaduplos simultaneamente.
se a alguem sabe me responda por favor e para amanha
Nossa! sou iniciante de um curso técnico de informática..
Parabéns aí, Thiagão! Fui muito bem exclarecida!
Sou estudante de Engenharia e gostaria de esta atualizado quando ao problemas e soluções de algoritmos livres e de repitação
Grato
Irã Pezos
estou fazendo curso de informática gratuito patrocindo pelo estado.
já se passaram 04 meses,e até agora não consegui aprender nada sobre algoritmo.
será que te alguma material mais simples, para aprender.
Faço engenharia eletrica-eletronica(UNIRP SÃO JOSE DO RIO PRETO), e gostei muito da forma como esta explicado, quero contar com o auxilio de voces para manter-me informado sobre materias deste nivel, um abraço e boa tarde!
Este design foi copiado do CSS Zen Garden e modificado com autorização de seu autor, Gunta Klavina.
Todo o conteúdo deste site (incluindo textos, imagens, arquivos de áudio e quaisquer outros trabalhos), exceto quando especificado o contrário, está licenciado por Tiago Madeira sob uma Licença Creative Commons.