Sunteți pe pagina 1din 5

SO DICAS FUNDAMENTAIS PARA O DESENVOLVIMENTO DA LGICA PARA ALGORITMOS: No sou matemtico, muito menos especialista em estatstica, mas acredito

que 7 em cada 10 pessoas apaixonadas por tecnologia, j tiveram vontade de desenvolver seu prprio software, ou melhorar um outro cdigo em um software livre. pensando nisso que o Algoritmizando estria hoje uma nova seo! Toda tera-feira, iremos postar uma matria ensinando esse fantstico mundo de programao. comeando a partir de algoritmos, e dependendo da participao do pessoal, nos comentrios, dvidas, etc, poderemos ir bem mais longe, e quem sabe, realmente formar alguns bons programadores Como hoje apenas uma introduo do que h por vim, estarei dando um breve conceito sobre o que uma linguagem de programao. Uma linguagem de programao um mtodo padronizado para expressar instrues para um computador. Voc pode programar para alcanar inmeros objetivos, como por exemplo, desenvolver um software, para automatizar tarefas, quem sabe vende-lo e ficar rico! ou melhor ainda, j pensou em criar um jogo de computador? ficar famoso e. rico! Voc tambm pode programar para web, desenvolver aplicativos e se fizer sucesso, hmm pode ficar rico! rsrs Sim, a rea de tecnologia um mercado em constante crescimento e com salrios iniciais relativamente altos. Se voc tem uma paixo em especial por computadores, por que no entender sua linguagem e se comunicar melhor com eles ^^ Na verdade, os computadores no so inteligentes, como todos pensam. Inteligente o programador! O computador entende apenas a linguagem binrio, ou seja, 1 e 0, ligado ou desligado, tenso alta ou tenso baixa No tem meio termo Quer dizer que tenho que aprender a programar em 0 e 1? Negativo. Hoje em dia, temos o que chamamos de compiladores e interpretadores. So eles que fazem essa traduo de nossa linguagem para linguagem de mquina. Na linguagem interpretada, o cdigo fonte traduzido para linguagem de mquina no momento da interpretao (execuo), e o cdigo fica visvel, enquanto na compilada, este feito anteriormente, no sendo possvel visualizar o cdigo fonte. Resumidamente, as linguagens de baixo nvel, so aquelas que possuem contato direto com o hardware do computador, geralmente linguagens compiladas, como por exemplo C, C++, Assembly Enquanto as linguagens de alto nvel o contato com o software, exemplos so linguagens interpretadas como Python, PHP, JavaScript, Pascal Para maioria dos seres mortais, a base de tudo, est nos Algoritmos Segundo a Wikipdia Um algoritmo uma sequncia finita de instrues bem definidas e no ambguas, cada uma das quais pode ser executada mecanicamente num perodo de tempo finito e com uma quantidade de esforo finita.

Ok Bruno Agora traduz!!! O algoritmo, uma instruo, ou uma ordem que voc dar ao computador, para que ele realize determinada tarefa. Ao contrrio do que a maioria das pessoas pensam, o computador no inteligente, quem inteligente, o programador! Simplificando Para que o computador entenda algo, necessrio que voc o ensine passo-a-passo, como deve proceder. Como em uma receita de bolo. Um exemplo: Em nossa linguagem, se eu fosse criar um algoritmo explicando o que acontece quando acordo at o momento que entro no chuveiro, seria mais ou menos o seguinte: Inicio Bruno Barbosa desperta abre os olhos senta na cama coloca o primeiro p no cho pe o segundo fica de p anda at a sala de estar chuta com o mindinho do p a ponta do sof diz algumas palavras de baixo calo devido ter machucado muito continua caminhando entra no banheiro fica nu (ui) entra em baixo do chuveiro liga o chuveiro toma banho FIM Pode-se perceber ento, que tudo um algoritmo. O sistema de buscas do Google, tem um algoritmo por trs dele, o msn que vocs tanto gostam, tambm tem um algoritmo, e assim sucessivamente. Para aprendermos melhor sobre isto, antes de passar para qualquer tipo de linguagem de programao propriamente dita, iremos aprender a programar em uma pseudo-linguagem, conhecida como Portugol ou Portugus Estruturado. O portugol, uma pseudo-linguagem criada para facilitar o aprendizado de algoritmos e lgica de programao, ela possui suas particularidades como qualquer outra linguagem, e a partir do prximo post, iremos passar a programar nesta linguagem, utilizando a ajuda do software VisualG. Ento no percam e nos acompanhem, que toda tera, um post novo para voc aprender a programar! Quando se trata de uma dvida em um cdigo j existente, feito pela prpria pessoa, ajudo com grande prazer assim que posso. Entretanto, muitas vezes as mesmas pedem que eu resolva exerccios que, foram passados para a mesma fazer, com o argumento de que gostaria que eu resolvesse para que esta aprenda e possa fazer o restante. Acontece que geralmente no apenas uma questo que me pedem, mas cinco ou mais exerccios.

Pensando nisso, resolvi disponibilizar vocs uma lista de 40 exerccios de Algoritmos elaborados por Flaviano O. Silva, e as respostas dos exerccios feitas por mim, no formato .alg que podem ser abertos no VisualG, para que sirva como fonte de estudos e referncia para que vocs possam resolver outros exerccios do tipo. E para voc que acompanhou toda srie Aprenda a Programar, est lanado o desafio! Voc consegue resolver as 40 questes sem dar nenhuma espiadinha nas respostas? Os exerccios foram elaborados para a Faculdade FAJESU, entretanto entrei em contato com o autor do mesmo, Prof. Flaviano e este autorizou a publicao da lista na Internet. A seguir, uma preview de algumas questes da lista: 25. Faa um algoritmo que leia dois nmeros e identifique se so iguais ou diferentes. Caso eles sejam iguais imprima uma mensagem dizendo que eles so iguais. Caso sejam diferentes, informe qual nmero o maior, e uma mensagem que so diferentes. 31. Escrever um algoritmo que leia trs valores inteiros distintos e os escreva em ordem crescente 33. Escrever um algoritmo que leia trs valores inteiros e verifique se eles podem ser os lados de um tringulo. Se forem, informar qual o tipo de tringulo que eles formam: equiltero, isscele ou escaleno. Propriedade: o comprimento de cada lado de um tringulo menor do que a soma dos comprimentos dos outros dois lados.

Fonte: http://algoritmizando.com/desenvolvimento/aprender-algoritmos/ Fonte: http://www.allgoritmos.com/search/label/algoritmos


Os algoritmos so sequncias finitas (que tem fim) e ordenada de comandos/instrues que possibilitam a resoluo de algum problema. Temos dois tipos de algoritmos: os computacionais e os no computacionais. Entre os no computacionais, temos os manuais de instruo, receitas de bolo, instrues de montagens de equipamento, etc. Veja um exemplo de um algoritmo no computacional abaixo, para fazer um sanduche de presunto: Exemplo Algoritmo no computacional Preparo de um Sanduche 1.Pegar o po 2.Pegar a faca 3.Cortar o po com a faca, longitudinalmente 4.Pegar o presunto 5.Colocar o presunto dentro do corte feito no po 6.Fechar o po Observe que, apesar de simples e rotineiro, esse um algoritmo. Mas, os algoritmos que nos interessam so os computacionais. nesse momento, que iremos falar sobre o Portugus Estruturado (ou simplesmente Portugol). O Portugol uma simplificao extrema do Portugus, limitadas a poucas palavras e estruturas que tem um significado bem definido. O Portugol muito utilizado em PCA (Princpio de Construo de Algoritmos) em cursos de programao. Por possuir uma sintaxe simples (forma de escrita do cdigo) a linguagem ideal para se aprender a programar. Leia mais: http://www.criarprogramas.com/2011/02/o-inicio-de-tudo-os-algoritmos/#ixzz1sbBAVACu Lembro da alegria quando entrei na faculdade de computao alguns bons anos atrs, bem que a alegria durou poucas semanas, at as primeiras provas de clculos e de algoritmos, em especfico as de algoritmo, pois aquelas

questes de condies, if, else, while, for e recurso simplesmente no entravam na minha cabea, ou melhor no entrava na cabea da maioria dos alunos da turma, eram poucos que tinha uma noo ou base de programao.

Porm, o tempo foi passando e as coisas, ou melhor as condies, foram se encaixando e agora aps formado a algum tempo, vejo o quanto eram fceis aquelas provas. Mas enfim, lembro que na poca da faculdade eu li um texto falando sobre a questo de algoritmos e como um programa de computador deve funcionar, e como lembrei desse exemplo simples, nada mais justo que postar por aqui para quem iniciante na arte de programa ou da criao de algoritmos possa entender um pouco melhor e claro clarear as idias, afinal tudo que novo acaba assustando um pouco no incio. O exemplo que vou citar um exemplo extremamente simples, mas como citei anteriormente bem interessante para iniciantes. E para exemplificar, vamos usar os velhos telefones pblicos de ficha, ento vamos imaginar que voc precisa fazer uma ligao de um orelho. Para isso voc precisa: 1 Tirar o fone do gancho; 2 Ouvir se existe sinal de linha; 3 Colocar a ficha; 4 Discar o nmero desejado; 5 Aguardar ser atendido; 6 Conversar com quem atender; 7 Desligar(Colocar o fone no gancho); Acima como voc pode ver que para realizar uma simples ligao partindo do pressuposto que estamos utilizando um telefone pblico e que obtivemos sucesso na liga, temos que percorrer esses 7 passos. Porm temos que analisar as condies desses casos. 1 Condio: 1 Tirar o fone do gancho; 2 Ouvir se existe sinal de linha; 3 Caso no tenha sinal devemos desligar(Colocar o fone no gancho); 2 Condio: 1 Tirar o fone do gancho; 2 Ouvir se existe sinal de linha; 3 Colocar a ficha; 4 Discar o nmero desejado; 5 Telefone ocupado, ou ningum atendeu; 7 Desligar(Colocar o fone no gancho); 8 Retirar a ficha do orelho visto que a mesma no foi utilizada; Olha s que interessante as duas condies citadas acima, elas devem ser validadas caso voc crie um sistema que simule um orelho de ficha, e caso voc esquea de programar/tratar alguma condio e o usuria resolva realizar uma operao que o sistema acabe no validando o que ele ir receber como retorno so os famosos erros de memria ou ento outra mensagem qualquer de erro. Bem esse foi exemplo simples, mas espero que tenha ajudado de alguma forma aos iniciantes na arte de desenvolver sistemas.

Um algoritmo um procedimento computacional definido que recebe um ou mais valores (entrada) e produz um ou mais valores (sada). O algoritmo aquela frmula matemtica, aquele pedao de cdigo, que fica ali no meio da entrada e da sada para transformar o primeiro no segundo. Vamos supr por exemplo que temos a funo:

A sua entrada o x e a sua sada o y (ou f(x), o valor que a funo retorna). O algoritmo aqui seria o seginte: 1.Entrada: Receber o valor X. 2.Elevar X ao quadrado e guardar o nmero resultante como Z. 3.Dividir Z por 3 e guardar o nmero resultante como Y. 4.Sada: Imprimir o valor Y. O algoritmo, portanto, a lgica do nosso problema matemtico, ou, informtico. a seqncia de passos que eu fao na minha cabea (ou, quando complexo, no papel) antes de escrever, em C, a funo 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 sada. No s no computador, mas na vida. Quando eu falo com algum, eu espero sua entrada (o que a pessoa fala pra mim), ento penso e transformo essa entrada numa sada (a resposta que vou dar pra pessoa). E assim com vrias outras coisas. Podemos dizer tambm que acordar um algoritmo, por exemplo: 1.Entrada: Meu crebro disse que eu estou acordado! 2.Percebi que acordei, mas estou com sono. Espero um pouco. 3.Sada: Abrir os olhos. 4.Sada: Se espreguiar. 5.Sada: Tirar a coberta. 6.Sada: Sentar na cama. 7.Sada: Sair da cama. Podem existir vrios 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 sada, como por exemplo simplesmente abrir os olhos e cair da cama. Ou no caso acima da funo matemtica, poderamos ter um algoritmo que fizesse a mesma coisa de maneira diferente tambm. O algoritmo que usamos depende principalmente do tempo que ele demora pra ser executado e a memria que ele gasta no computador. Chamamos isso de custo. Quando comearmos a ver os algoritmos de ordenao de vetores (arrays), veremos que cada algoritmo faz uma coisa diferente, mas todos servem para o mesmo propsito: ordenar o vetor. Para uma entrada pequena, um pode ser mais rpido... Para uma maior, outro. Portanto, o algoritmo que queremos usar (o tempo que ele vai demorar pra ser executado e a memria que ele vai gastar no computador) depende principalmente do tamanho da entrada (que chamamos de n e no exemplo da funo seria l em cima seria a varivel x). Na maioria dos casos (e vai ser sempre assim aqui nos meus artigos), a entrada ser o teclado (por exemplo, o usurio digita o X para a funo) e a sada ser a tela (por exemplo, o programa imprime o resultado da funo, o Y, para a tela). Essas so a entrada e sada padro (standard input output do C), que usada nas olimpadas e na maioria dos problemas que resolvemos no computador. Em resumo, portanto, um algoritmo a lgica de um programa computacional.

S-ar putea să vă placă și