apostila (1)

Upload: george-fernandes

Post on 12-Jul-2015

400 views

Category:

Documents


0 download

TRANSCRIPT

Implementao de AlgoritmosProfessora Luclia Oliveira

Lgica de programao a tcnica de encadear pensamentos para atingir determinado objetivo5/29/2009

Implementao de Algoritmos Professora Luclia Oliveira

SumrioSumrio........................................................................................................................................................................................2 I - CONCEITOS INICIAIS........................................................................................................................................................4 Lgica de programao ..........................................................................................................................................................4 Algoritmo ................................................................................................................................................................................4 Instruo .................................................................................................................................................................................5 EXERCCIOS...........................................................................................................................................................................6 Programa de Computador ......................................................................................................................................................7 Fases........................................................................................................................................................................................7 Diagrama de Blocos.................................................................................................................................................................8 EXERCCIOS...........................................................................................................................................................................9 II - VARIVEIS........................................................................................................................................................................10 Tipos de Variveis..................................................................................................................................................................11 Numricas..........................................................................................................................................................................11 Cadeia ou String ou Alfanumricas ..................................................................................................................................11 Caractere ...........................................................................................................................................................................12 Lgico................................................................................................................................................................................12 Constantes..............................................................................................................................................................................12 III - EXPRESSES...................................................................................................................................................................13 Operadores Aritmticos.........................................................................................................................................................13 Operadores Relacionais.........................................................................................................................................................14 Operadores Lgicos...............................................................................................................................................................14 EXERCCIOS.........................................................................................................................................................................15 IV COMANDOS BSICOS..................................................................................................................................................17 Comando de Atribuio.........................................................................................................................................................17 Comando de Entrada.............................................................................................................................................................18 Comando de Sada.................................................................................................................................................................18 Primeiro Exemplo Portugus Estruturado e Pascal...........................................................................................................19 EXERCCIOS - Estrutura Sequencial....................................................................................................................................20 V ESTRUTURAS DE SELEO........................................................................................................................................22 Conceitos................................................................................................................................................................................22 Seleo Simples......................................................................................................................................................................22

2

Implementao de Algoritmos Professora Luclia Oliveira

Seleo Composta..................................................................................................................................................................22 Exemplo..................................................................................................................................................................................23 EXERCCIOS Estrutura de Seleo...................................................................................................................................24 Alternativa de Mltiplas Escolhas.........................................................................................................................................27 EXERCCIOS Alternativa de Mltiplas Escolhas..............................................................................................................29 VI ESTRUTURAS DE REPETIO..................................................................................................................................31 Comando Enquanto (While - Do)..........................................................................................................................................31 Comando Repita (Repeat - Until)..........................................................................................................................................32 EXERCCIOS Comando Enquanto (WHILE).....................................................................................................................33 Comando Para (For).............................................................................................................................................................37 EXERCCIOS Comando Para (For)...................................................................................................................................38 ANEXO I Questes de Raciocnio Lgico............................................................................................................................41 ANEXO II - Transferncia de Comandos: Portugus Estruturado para Pascal................................................................42

3

Implementao de Algoritmos Professora Luclia Oliveira

I - CONCEITOS INICIAISLgica de programao a tcnica de encadear pensamentos para atingir determinado objetivo. O aprendizado desta tcnica necessrio, para quem quer trabalhar com desenvolvimento de sistemas e programas. Algoritmo uma seqncia de passos finitos com o objetivo de solucionar um problema. O estudo da lgica o estudo dos mtodos e princpios usados para distinguir o raciocnio correto do incorreto. Naturalmente, essa definio no pretende afirmar que s possvel argumentar corretamente com uma pessoa que j tenha estudado lgica. Afirm-lo seria to errneo quanto pretender que s possvel correr bem, se estudou fsica e fisiologia, necessrias para a descrio dessa atividade. Alguns excelentes atletas ignoram completamente os processos complexos que se desenrolam dentro deles prprios quando praticam o esporte. Assim tambm acontece no nosso dia-a-dia. Quantas vezes j vimos um algoritmo e no sabamos que aquela seqncia de passos chamava-se algoritmo. Um exemplo bem freqente quando queremos falar em algum telefone pblico.

Exemplo de algoritmo para falar em um telefone pblico 1 Retirar o telefone do gancho; 2 Esperar o sinal; 3 Colocar o carto; 4 Discar o nmero; 5 Falar no telefone; 6 Colocar o telefone no gancho. 4

Implementao de Algoritmos Professora Luclia Oliveira

O algoritmo exatamente esse conjunto de passos que resolveu o problema de uma pessoa falar no telefone. como se fssemos ensinar uma mquina a fazer alguma tarefa especfica. Outro exemplo clssico um algoritmo para resolver o problema de fritar um ovo que poderia estar escrito em forma de uma receita. A receita um algoritmo, pois formada de aes que devem ser tomadas para fritar um ovo.

Exemplo de algoritmo para fritar um ovo 1 pegar frigideira, ovo, leo e sal; 2 colocar leo na frigideira; 3 acender o fogo; 4 colocar a frigideira no fogo; 5 esperar o leo esquentar; 6 colocar o ovo; 7 colocar o sal; 8 retirar quando estiver pronto. Cada linha do algoritmo pode-se chamar de uma instruo, logo, podemos dizer que um algoritmo um conjunto de instrues. Assim como fritar um ovo, nos algoritmos computacionais no podemos trocar ou omitir certas instrues, caso contrrio no obteremos o resultado esperado. Por exemplo, se omitirmos a instruo acender o fogo, no teremos ao final do algoritmo um ovo frito. Instruo Indica a um computador uma ao elementar a ser executada. At as coisas mais simples podem ser descritas por um algoritmo. Por exemplo:

Algoritmo para o fim de semana 1 vejo a previso do tempo; 5

Implementao de Algoritmos Professora Luclia Oliveira

2 se fizer sol vou praia; seno vou estudar; 3 almoar; 4 ver televiso; 5 dormir. EXERCCIOS 1 Fazer um algoritmo para tomar banho:

2 Crie um algoritmo para fazer uma prova:

3 Faa um algoritmo para somar dois nmeros: 6

Implementao de Algoritmos Professora Luclia Oliveira

Programa de Computador Nada mais do que um algoritmo escrito numa linguagem de computador (C, Pascal, Fortran, Delphi, Cobol, Java e outras). a traduo para o ingls do algoritmo feito em portugus. O mais importante de um programa a sua lgica, o raciocnio utilizado para resolver o problema, que exatamente o algoritmo. A forma de escrever um algoritmo em pseudocdigo (algoritmo que no usa nenhuma linguagem de programao) vai variar de autor para autor, pois, um traduz ao p da letra a linguagem C, outro, o Pascal, outro, mistura as duas linguagens e assim por diante. importante lembrar que estas variaes vo sempre ocorrer, podemos dizer que uma variao de autores adotados. Fases A principal finalidade de um computador realizar a tarefa de processamento de dados, isto , receber dados atravs de dispositivos de entrada que podem ser, por exemplo, teclado, mouse, scanner, entre outros; realizar operaes com estes dados e gerar uma resposta que ser expressa em um dispositivo de sada que pode ser, por exemplo, uma impressora, um monitor de vdeo, entre outros. Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em trs fases fundamentais:

ENTRADA DE DADOS

PROCESSAMENTO DE DADOS

SADA DE DADOS

7

Implementao de Algoritmos Professora Luclia Oliveira

ENTRADA: So os dados de entrada do algoritmo. PROCESSAMENTO: So os procedimentos utilizados para chegar ao resultado final. SADA: So os dados j processados, os resultados, mostrados na tela do computador (monitor de vdeo) ou impressora. Diagrama de Blocos uma forma padronizada para representar os passos lgicos de um determinado processamento. Com o diagrama, tambm conhecido como fluxograma, podemos definir uma seqncia de smbolos, com significado bem definido, portanto, sua principal funo a de facilitar a visualizao dos passos de um processamento. Simbologia do Diagrama de Bloco Existem diversos smbolos em um diagrama de bloco. Veja no quadro abaixo alguns dos smbolos que iremos utilizar: Smbolo Funo Indica o incio ou fim de um processamento TERMINAL Exemplo: Incio do algoritmo Processamento em geral Exemplo: x Comea por algarismo peso do aluno -> espao no permitido

10

Implementao de Algoritmos Professora Luclia Oliveira

Tipos de Variveis Numricas So aquelas que armazenam dados numricos, podendo ser divididos em duas classes: Inteiro: so aqueles que no possuem componentes decimais ou fracionrios, podendo ser positivos ou negativos. Normalmente uma varivel do tipo inteira poder ocupar 1, 2 ou 4 bytes na MP. Exemplos: 10 -10 nmero inteiro positivo nmero inteiro negativo

Real: so aqueles que podem possuir componentes decimais ou fracionrios, podendo tambm ser positivos ou negativos. Normalmente uma varivel do tipo real poder ocupar 4 ou 8 bytes na MP. Exemplos: 25.03 235. -10.5 nmero real positivo com duas casas decimais nmero real positivo com zero casas decimais nmero real negativo com uma casa decimal

Cadeia ou String ou Alfanumricas So aquelas que possuem letras e/ou nmeros. Pode em determinados momentos conter somente dados numricos ou somente letras. Se usado somente para armazenamento de nmeros, no poder ser utilizado para operaes matemticas.

O nmero de bytes possveis para armazenamento de uma varivel desse tipo depender da quantidade de caracteres.

11

Implementao de Algoritmos Professora Luclia Oliveira

Exemplos: Maria 123 A String de comprimento 5 String de comprimento 3 String de comprimento 1

Caractere aquele que armazena apenas uma letra ou dgito, uma string de comprimento 1. Se usado para armazenar nmero no poder ser utilizado para operaes matemticas.

Normalmente uma varivel do tipo caractere ocupar 1 byte na MP.

Exemplos: A 5 caractere que armazena uma letra caractere que armazena um nmero Lgico Tambm conhecido como booleano. representado no algoritmo pelos dois nicos valores lgicos possveis: verdadeiro ou falso. Porm comum encontrar em outras referncias outros pares de valores lgicos como: sim/no, 1/0, true/false, verdadeiro/falso. Constantes

Constante um determinado valor fixo que no se modifica ao longo do tempo, durante a execuo de um programa. Conforme seu tipo, a constante classificada como sendo numrica, lgica ou literal. As declaraes das constantes em um algoritmo so feitas antes das declaraes das variveis:

12

Implementao de Algoritmos Professora Luclia Oliveira

Sintaxe: Nome da constante = valor da constante;

III - EXPRESSESO conceito de expresso em termos computacionais est intimamente ligado ao conceito de expresso (ou frmula) matemtica, onde um conjunto de variveis e constantes numricas relaciona-se por meio de operadores compondo uma frmula que, uma vez avaliada, resulta num valor. Operadores Aritmticos Os operadores matemticos so: Operador + * / Div Mod Funo Somar Subtrair Multiplicar Dividir Quociente inteiro Resto da diviso

Os operadores Div e Mod s podem ser aplicados com operandos inteiros. O operador / sempre conduz a um resultado real. Com os operadores +, - e * , se pelo menos um dos operandos for real, ento o resultado ser real. Exemplos de expresses aritmticas: 3*3=9 9 / 2 = 4.5 9 DIV 2 = 4 9 MOD 2 = 1 2 / 9 = 0.22 2 + 4.6 = 6.6

13

Implementao de Algoritmos Professora Luclia Oliveira

Operadores Relacionais

Uma expresso relacional uma comparao realizada entre dois valores de mesmo tipo, tendo como resposta sempre um valor booleano (verdadeiro ou falso). Estes valores so representados na relao atravs de constantes, variveis ou expresses aritmticas. Os operadores relacionais so:

Smbolo = = > < Exemplo de relaes: X=1 y=2 z=5 Igual

Descrio Diferente Menor ou igual Maior ou igual Maior que Menor que

X *X+Y>Z 1 * 1 +2>5 1 + 2 >5 3 > 5 Resultado desta expresso: FALSO Operadores Lgicos Uma expresso lgica serve para combinar resultados de expresses aritmticas e/ou relacionais, variveis e/ou constantes, retornando verdadeiro ou falso. Exemplo de operadores lgicos, matematicamente conhecidos:

14

Implementao de Algoritmos Professora Luclia Oliveira

E Ou No E / AND OR / OU

And Or Not

Uma expresso AND (E) verdadeira se todas as condies forem verdadeiras. Uma expresso OR (OU) verdadeira se pelo menos uma condio for verdadeira.

NOT / NO Uma expresso NOT (NO) inverte o valor da expresso ou condio, se verdadeira inverte para falsa e vice-versa. Tabela E (AND) VeV=V VeF=F FeV=F FeF=F Tabela OU (OR) V ou V = V V ou F = V F ou V = V F ou F = F Tabela NO (NOT) No V = F No F = V

As prioridades entre os operadores so: 1 - ( ) 2 - funes 3 - No 4 - *, / , Div, Mod, E 5 - +, -, Ou 6 - =, < >, =. Observao: em caso de empate entre as prioridades, resolver da esquerda para a direita. EXERCCIOS 1. Identifique o tipo dos dados: (a) inteiro; (b) real;

15

Implementao de Algoritmos Professora Luclia Oliveira

(c) lgico; (d) cadeia ou literal ( ) verdadeiro ( ) aula ( ) -0.342 2. ( ) c*d ( ) 897 ( ) 35.23 ( ) falso ( ) 345 ( ) -23 ( ) 1 2 3 4 ( ) -18.589 ( ) Maria

Indique os identificadores como vlidos ou invlidos: (a) identificador vlido (b) identificador invlido ( ) ano ( ) media_salario ( ) mdia ( ) ai! ( ) A15B34 ( ) aula ( ) 3/1 ( ) nome-aluno ( ) 5

3.

Faa a declarao de 2 variveis do tipo inteira, 2 do tipo real, 2 de um nico caractere e 2 do tipo cadeia de caracteres.

4.

Indique qual o resultado das expresses aritmticas abaixo: Sendo: x = 6.0 d = 12 a) b) c) d) e) 5. x+yz*a= d div y = d mod y = y div d = y mod d = falso): a) a = 2.0, b = 9.0, nome = ana, profissao = advogado y=2 p=4 z = 4.0 q=3 f) g) h) i) j) a=8 r = 10 100 * (q div p) + r = p * (r mod q) q/2 raiz (r (q * q ) ) = (a + r) * r = b = 7.5 s = 2.5 c = 7.7

((z / a) + b * a) d =

Dadas as informaes abaixo, informe qual o valor das relaes (verdadeiro ou

16

Implementao de Algoritmos Professora Luclia Oliveira

a + 1 > = raiz (b) nome < > ana profissao = mdico b) a = 6.0, b = 121.0,

( ) ( ) ( ) nome = pedro, ( ) ( ) ( ) nome = maria, resultado = verdadeiro ( ) ( ) ( ) ( ) profissao = mdico

a + 1 > = raiz (b) nome < > ana profissao = mdico c) x = 3, y = 4, z = 16,

( x + y > z ) and (nome = maria) (resultado) or ( y > = x ) (not resultado) and ( z div y + 1 = x ) (nome = jos) and ( x + y + z < ( y * y ))

IV COMANDOS BSICOSComando de Atribuio Este comando utilizado para atribuir valores a variveis e, em portugol (portugus estruturado), representado por