Vous êtes sur la page 1sur 7

1 Prof .. Alesandra Bonato Altran De modo a encontrar uma forma estruturada de representao da resoluo de um problema, surgem os Algoritmos.

Vale lembra que, um algoritmo no a soluo do problema, pois, se assim fosse, cada problema teria um nico algoritmo, assim, um algoritmo um caminho para a soluo de um problema. Pode-se dizer que um algoritmo uma sequencia de procedimentos finitos a serem seguidos e quando executados em determinado perodo de tempo, chegar a seu objetivo, ou seja, resoluo de um problema ou execuo de uma tarefa. Em outras palavras, uma sequencia de passos que visam atingir um objetivo bem definido. Essa uma definio geral, podendo se aplicada a qualquer circunstncia que exija a descrio da soluo. No dia-a-dia, as pessoas utilizam algoritmos de maneira intuitiva, sem que haja necessidade de planejar os passos da resoluo dos problemas cotidianos. So exemplos de algoritmos: Fazer caf; Trocar um pneu furado; Fazer um bolo; Trocar uma lmpada queimada. Apesar de bvias demais, muitas vezes realiza-se esse tipo de atividade inconscientemente, sem perceber seus pequenos detalhes. Cada uma dessas atividades pode ser resolvida de diversas maneiras, com poucos (ou muitos) detalhes que, certamente, dificultam (ou facilitam) a resoluo. A seguir, ser apresentado um exemplo para entender melhor esta questo, explicitando, passo a passo, a resoluo de um problema. 1 2 3 4 5 6 Pegar a escada; Posicion-la embaixo da lmpada; Buscar uma lmpada nova; Subir na escada; Retirar a lmpada velha; Colocar a lmpada nova.

Algoritmo Troca de Lmpada 1 Assim, o problema da lmpada queimada foi resolvido seguindo uma determinada seqncia de passos. Porm, possvel incluir alguns passos intermedirios para verificar o problema antecipadamente. Dessa forma, o algoritmo ficaria: Algoritmo Troca de Lmpada 2 1. Pegar a escada; 2. Posicion-la embaixo da lmpada; 3. Buscar uma lmpada nova; 4. Acionar o interruptor; 5. Se a lmpada no acender, ento; 1. Subir na escada; 2. Retirar a lmpada queimada; 3. Colocar a lmpada nova. Sendo assim, pode-se dizer que todo algoritmo composto por instrues finitas, e bem definidas, com objetivo de resolver um problema proposto. Comprovando o que foi dito anteriormente, um caminho para a soluo de um problema. Os caminhos que levam soluo so muitos, alguns mais curtos, outros mais longos, o importante, na verdade, alcanar o objetivo.

2 Todo algoritmo deve ser feito de maneira lgica e racional, visando principalmente, a sua eficincia e clareza. O importante saber interpretar o problema antes de comear a construir o algoritmo, veja a seguir um esboo das dos principais passos para a construo de um algoritmo: Passos para a construo de um algoritmo 1. Identificar o objetivo do problema mediante leitura atenta de seu enunciado. justamente o enunciado de um exerccio que fornece o encaminhamento necessrio resoluo do problema, que se torna, portanto, dependente de sua completa compreenso; 2. Retirar do enunciado todos os dados necessrios para a resoluo do problema, ou seja, identificar as entradas de dados que o enunciado fornece; 3. Retirar do enunciado todos os dados que sero gerados como resultado da soluo do problema, ou seja, identificar as sadas de dados que o enunciado fornece (ou seja, sada desejada); 4. Determinar o que dever ser feito para transformar as entradas determinadas nas sadas desejadas. Nesta fase que se determina a construo do algoritmo propriamente dito pois, a partir de alguns requisitos especificados, deve-se determinar qual a seqncia de aes capaz de transformar um conjunto definido de dados nas informaes de resultado; 5. Construir o algoritmo. nessa fase que se esquematiza todo o processo de resoluo do problema, ou seja, constri-se o passo a passo, a seqncia das aes a serem executadas. 6. Testar a soluo. O teste da soluo realizado atravs da execuo de todas as aes mediante anlise dos resultados obtidos, a partir da que so detectados possveis erros. Caso haja, basta corrigi-lo e realizar o teste novamente. Durante a formalizao do algoritmo necessrio que algumas etapas fundamentais sejam identificadas, tais como, entrada, processamento e sada. A seguir, apresentado um esquema simples para fazer essa identificao: Nota-se que as questes acima so claras e objetivas, assim, a analogia a cada etapa torna mais simples a identificao das mesmas. Veja nos exemplos a seguir, como feita a identificao de cada etapa: Exemplo 1 Construir um algoritmo para fazer um suco de laranja. O que eu preciso? (Entrada) Como chegar ao que eu quero? (Processamento) O que quero? (Sada) Entrada: laranja; Processamento: cortar a laranja; espremer a laranja; Sada: suco de laranja. Note que o processo para resolver o problema de para fazer o suco de laranja foi descrito sucintamente, cumprindo-se assim, as etapas descritas acima. Ao ler o enunciado pde-se notar que o objetivo (O que eu quero?) era fazer um suco de laranja, para isso foi necessrio utilizar laranja (O que eu preciso?), e, para chegar ao suco, foi preciso cortar e espremer as laranjas (Como chegar onde eu quero?). Porm, esse processo talvez possa ser feito de forma um pouco mais detalhada, veja a seguir, outra opo: Entrada: laranja; faca; jarra; Processamento: cortar a laranja; espremer a laranja; Sada: suco de laranja. Logo, como dito anteriormente, no existe uma nica maneira de resolver um problema, porm, todas tm que estar cumprindo as necessidades que o processo de resoluo requer.

3 A seguir, mostrado outro exemplo explicitando, novamente, as etapas de resoluo de um problema atravs de um algoritmo. Exemplo 2 Construir um algoritmo para calcular a mdia aritmtica entre quatro notas dadas. Entrada: nota 1 nota 2 nota 3 nota 4 Processamento: somar as notas; dividir o resultado por 4 Sada: mdia O algoritmo de um problema tem vrias formas de representao; dentre elas: pseudocdigo, descrio narrativa, fluxograma e diagrama de Chaplin. 1. Pseudocdigo - utiliza uma representao de forma estruturada, atravs da descrio de cada passagem a ser executada para realizao de uma tarefa. uma representao bastante utilizada. 2. Descrio narrativa - utiliza uma representao natural para realizao das tarefas. pouco utilizada, pois, apresenta ambigidades e ms interpretaes. 3. Fluxograma - uma forma universal de representao pois, utiliza de figuras geomtricas para ilustrar os passos a serem seguidos. Bastante utilizado; tambm chamado de diagrama de blocos. 4. Diagrama de Chaplin - tambm conhecido como diagrama Nassi-Shneiderman (N-S), apresenta soluo por meio de um diagrama de quadros com uma viso hierrquica e estruturada. Esse tipo de diagrama muito pouco utilizado por apresentar dificuldades em representar recursividade. No que segue, sero abordadas apenas as duas formas mais usuais de representao, o pseudocdigo e o fluxograma. A palavra pseudocdigo significa cdigo falso; dado esse nome devido sua proximidade com a representao em linguagem de programao; sua descrio formal representada da seguinte forma: Todo cuidado pouco para que o pseudocdigo represente um caminho correto para resoluo do problema em questo. Veja algumas observaes detalhando a construo de um pseudocdigo: Todo algoritmo representado por pseudocdigo dever ser, primeiramente, identificado, ou seja, o primeiro passo dar um nome algoritmo. Assim, onde est escrito <nome_do_algoritmo> ter que ser substitudo por um nome especfico, relativo ao problema a ser resolvido. . Todas as variveis que sero utilizadas na resoluo do problema devem ser previamente declaradas. Do mesmo modo, onde estiver est escrito <declarao_de_variveis> ter que ser substitudo por definies especficas sobre as variveis, que sero vistas mais detalhadamente no que segue. . Todos os passos para resoluo do problema devem ser bem descritos, logo, onde est escrito <corpo_do_algoritmo>, ter que ser substitudo por algumas representaes, tais como: entrada de valores para as variveis; operaes de Algoritmo <nome_do_algoritmo> <declarao_de_variveis> Incio <corpo_do_algoritmo> Fim. atribuio, lgicas e aritmticas; escolhas e laos de repetio; exibio de resultados, entre outros. Toda essa teoria ser apresentada posteriormente. Cabe ressaltar ainda, que durante a formalizao de um pseudocdigo, importante atentar a algumas observaes relevantes, tais como: No utilizar espao entre as letras, se preferir, utilize o caractere _ ; ? No iniciar nomes com algarismos (nmeros), ou seja, no utilizar nomes do tipo 1A; . No utilizar caracteres especiais, tais como, acentos (, ~, ), smbolos (@, #, $, %, &), etc.;

4 . No utilizar como nomes de variveis palavras reservadas, ou seja, as palavras que por definio j fazem parte das estruturas do algoritmo, tais como, se, enquanto, etc.; No utilizar nomes iguais para representar variveis diferentes; . Ser sucinto e utilizar nomes coerentes. O fluxograma um tipo de representao algoritmo que utiliza smbolos grficos (figuras geomtricas) para representar as aes ou instrues a serem seguidas. Assim, a representao simblica utilizada no fluxograma (ou diagrama de blocos), est apresentada no quadro abaixo: Terminal Representa incio e fim do fluxograma. Entrada Representa a entrada de dados do fluxograma. Sada Representa a sada de dados do fluxograma. Atribuio Representa execuo de operaes ou aes como clculos e atribuio de valores. Deciso Representa uma ao lgica que resultar na escolha de uma das seqncias de instrues. Conector Utilizado para interligar partes do fluxograma ou desviar o fluxo para outro trecho. Direo Seta de orientao do fluxo, pode ser de forma vertical ou horizontal. Logo, a utilizao desses smbolos de forma interligada e coerente, a fim de representar a resoluo de um problema especfico, se d o nome de fluxograma. Como mostra o exemplo abaixo: Incio <nome da varivel a ser lida> <execuo das aes> <nome da varivel a ser impressa> Fim Os blocos que representam o incio e o fim so representados exatamente como mostra a figura, agora, nos demais, a informao dentro de cada figura deve ser substitudas; por exemplo, onde est escrito <nome da varivel a ser lida>, ser substitudo por A, V, etc. A apresentao mais detalhada dessas formas de representao, ser realizada nos prximos captulos, agora sero abordadas apenas as caractersticas tericas principais sobre os dados que so utilizados em um algoritmo. Os dados so os valores a serem utilizados na resoluo do problema. No decorrer da organizao dos algoritmos, necessrio armazenar informaes a serem utilizadas posteriormente, para tanto, utiliza-se de variveis e constantes. Uma constante um tipo de dado que no sofre nenhuma alterao no decorrer do tempo, ou seja, o valor constante do incio ao fim da execuo do algoritmo, por exemplo: 5, Verdadeiro, 0.3, SIM Em outras palavras, so todos os nmeros, letras ou palavras fixas, no podem ser modificados em nenhum momento. Por exemplo, na equao y=2x+1, o numero 1 que est sendo adicionado, ser sempre o mesmo para qualquer valor de x.

5 J, uma varivel, como o prprio nome diz, um tipo de dado que pode ser alterado, em algum momento, durante a execuo do algoritmo, ou seja, o valor sofre alterao em um determinado momento, tais como: o clima, o peso de uma pessoa, as notas da escola Agora, para o mesmo exemplo acima, o da equao y=2x+1, o x e o y so as variveis, pois, podem assumir qualquer valor em um determinado momento. Assim, uma varivel (ou constante) tem que ser definida segundo o conjunto de valores que ela receber. Deste modo, os tipos de dados referem-se, exatamente, a esses valores, podendo ser classificados como variveis (ou constantes) do tipo inteiro, real, caracter (ou literal) e lgico. Variveis do Tipo Inteiro So variveis que podem armazenar qualquer valor pertencente ao conjunto dos nmeros inteiros (nulo, positivos e negativos), por exemplo: Variveis do Tipo Real So variveis que podem armazenar qualquer valor pertencente ao conjunto dos nmeros reais (nulos, negativos e positivos), como segue: Variveis do Tipo Caracter So variveis que podem armazenar qualquer tipo de informao composta por um conjunto de caracteres alfanumricos, sendo: numricos (0...9), alfabticos (A...Z e a...z) e especiais (#, ?, !, @), como os exemplos abaixo: Variveis do Tipo Lgico So variveis que podem armazenar apenas os valores lgicos, verdadeiro (V) ou falso (F), podendo ser representadas como: sim - no, 0 - 1 Toda varivel, ou constante, tem que ter um nome, ou seja, tem que ser identificada. Assim, um identificador uma seqncia de caracteres alfabticos e/ou numricos que obedecem s seguintes regras: 1. O primeiro caractere deve ser uma letra. 2. No utilizar espaos entre as letras. 3. No utilizar caracteres especiais. 4. Os nomes das variveis no podem ser os mesmos das palavras reservadas. 5. No utilizar nomes muito longos. 6. Os nomes escolhidos devem ser explicativos do seu contedo. Os operadores so utilizados para representar expresses de clculo, comparao, condio e atribuio. Esses operadores so divididos em operadores de atribuio, aritmticos, relacionais e lgicos. Operadores de Atribuio O operador de atribuio utilizado para expressar o armazenamento de um valor em uma varivel, ou seja, indica o que a varivel vai receber em seu contedo num determinado momento. Identificador valor Assim, o operador indica qual valor que o identificador est recebendo naquele exato momento, veja os exemplos a seguir: nome Fulano de tal? Resp x + 1 Valor 131.5 Resposta Verdadeiro num 0 soma X + Y + Z

6 Operadores Aritmticos Os operadores aritmticos so dados por um conjunto de smbolos que representam as operaes bsicas da matemtica, veja a tabela a seguir: Operadores - Exemplos + adio: - subtrao 5 - 1, c - d, y - 3 * multiplicao 3 * 4, m * n, t * 2 / diviso 10 / 2, x1 / x2 ** ou exponenciao x ** 2, 3 ^ 3 MOD operador que retorna o resto da diviso inteira 9 mod 4 (=1) DIV - quociente da diviso inteira 9 div 4 (=2) SQRT - raiz quadrada SQRT (4) Os operadores aritmticos vistos na tabela acima, quando utilizados tem que obedecer a uma ordem de prioridade, que a seguinte: 1. parnteses mais internos; 2. potenciao (**), raiz quadrada(SQRT); 3. multiplicao (*), diviso (/), resto da diviso inteira (mod), quociente da diviso inteira (div); 4. adio (+), subtrao (?). 2 + 3, a + b, x + 1

Operadores Relacionais Os operadores relacionais so utilizados para estabelecer uma relao de comparao entre valores ou expresses. Tais valores so representados por constantes, variveis, ou expresses aritmticas, utilizando, para tanto, os smbolos mostrado logo abaixo: Operadores Exemplos = igual a > maior que < menor que 5 > 2, x > y 1 < 10, c < d >= maior ou igual a 15 >= 10, x >= y <> diferente de 7 <> 3, b <> c 3 = 3, a = b

<= menor ou igual a Operadores Lgicos

2 <= 6, k <= t

Os operadores lgicos so utilizados para concatenar ou associar expresses que estabelecem uma relao de comparao entre valores. So utilizados trs operadores bsicos para a formao de novas proposies lgicas compostas a partir de outras proposies lgicas mais simples, que so: Operadores no ( negao) e (conjuno) ou (disjuno)

O resultado dessas expresses sempre um valor lgico (verdadeiro ou falso), e a ordem de prioridade a mesma apresentada acima, primeiro negao, depois conjuno e, por ltimo, disjuno. Agora, considerando situaes com operaes mistas, ou seja, com a utilizao de vrios tipos de operaes em uma mesma expresso, as prioridades para execuo devem ser as mesmas que as adotadas na matemtica: 1. Efetuar operaes em parnteses mais internos ( ( ) ) 2. Efetuar exponenciao e funes (** ou ^)

7 3. Efetuar multiplicao e diviso (*, /) 4. Efetuar adio e subtrao (+, -) 5. Efetuar atribuio (?) 6. Efetuar operaes relacionais ( =, >, <, >=, <=, <>) 7. Efetuar operaes lgicas (no, e, ou) As expresses que utilizam os operadores aritmticos, relacionais e lgicos so denominadas expresses aritmticas relacionais e lgicas, respectivamente. Durante a criao de um algoritmo necessrio que se saiba o que se tem, e onde se quer chegar, para tanto, utiliza-se uma seqncia lgica de aes, que devem ser bem estruturadas para que ocorra uma execuo correta. Em outras palavras, quando se constri um algoritmo necessrio ter em mente a inteno de quem ir utiliz-lo. Assim, torna-se importante conhecer a seqncia dos fatos, ou seja, saber o que fornecido e em que isso resulta. A seguir, sero apresentados os principais conceitos relacionados entrada e sada de dados. A entrada de dados nada mais que a passagem dos dados do problema para o algoritmo, que a utiliza para realizar o processamento. Entrada/Processamento/Sada - a entrada de dados a etapa em que so passadas, ao algoritmo, todas as informaes necessrias para que o mesmo execute aes que levem soluo do problema. Resumindo, entrada de dados nada mais que a apresentao das informaes que se tm sobre o problema, sendo estas utilizadas para obteno da resposta desejada. A sada de dados a forma de mostrar o resultado das operaes realizadas durante o processamento, ou seja, a resposta do problema. As estruturas de seleo podem ser classificadas em seleo simples ou seleo composta, como segue: Seleo Simples A seleo simples utilizada para verificar se uma condio dada atendida. Se a condio for satisfeita, um conjunto de aes ser executado; caso contrrio, ou seja, se no for satisfeita, o fluxo de execuo do algoritmo seguir at o fim do bloco de deciso. Algoritmo Soma Inteiro: X, Y, S Inicio Ler X, Y Imprimir S Fim. SX+Y

Vous aimerez peut-être aussi