apostila - introducao a logica e algoritimos

Upload: ricardo-nates

Post on 09-Jul-2015

108 views

Category:

Documents


1 download

TRANSCRIPT

_________________________________________________________________________________________________Histria da Lgica

1

_________________________________________________________________________________________________Histria da Lgica

2

_________________________________________________________________________________________________Histria da Lgica

FIEP CIEP SESI SENAI IEL

SENAI - SERVIO NACIONAL DE APRENDIZAGEM INDUSTRIAL C.F.P. DE PONTA GROSSA

CURSO TCNICO EM INFORMTICA DISCIPLINA: TCNICAS DE PROGRAMAO I

Prof. Ademir Mazer Jr

3

_________________________________________________________________________________________________Histria da Lgica

4

_______________________________________________________________________________________________________SUM RIO

SUMRIO CONTEDO PROGRAMTICO............................................................8 HISTRIA DA LGICA..........................................................................9 INTRODUO A LGICA PROPOSICIONAL................................10Preliminares.............................................................................................................10Proposio.................................................................................................................................10 Conectivos Lgicos...................................................................................................................11 Valor Lgico.............................................................................................................................11 Princpios Fundamentais da Lgica..........................................................................................12 Tabela - Verdade.....................................................................................................................12

Operaes Lgicas sobre Proposies.....................................................................13Operao Negao (~)...............................................................................................................13 Operao Conjuno ( )............................................................................................................14 Operao Disjuno (V)............................................................................................................15 Operao Condicional ( ).....................................................................................................17 Operao Bicondicional ( )...................................................................................................18 Exerccios.............................................................................................................................19

Tautologia, Contradio e Contingncia.................................................................19Tautologia.................................................................................................................................19 Contradio...............................................................................................................................20 Contingncia.............................................................................................................................20 Exerccios.............................................................................................................................20

Implicao Lgica ou Conseqncia Lgica ( )................................................21 Equivalncia Lgica ( ) .....................................................................................21Exerccios.............................................................................................................................22

Introduo a Algoritmos..........................................................................23Noes de Lgica....................................................................................................23 Algoritmizando a Lgica.........................................................................................24 Fases de um programa.............................................................................................25Planejamento.............................................................................................................................25 Projeto.......................................................................................................................................25 Escrita........................................................................................................................................25 Depurao ................................................................................................................................26 Manuteno...............................................................................................................................26

Programao Estruturada.........................................................................................26 Pseudo-linguagem...................................................................................................26 Algoritmo X Qualidade...........................................................................................26 Mtodo para construo de algoritmos....................................................................27Mtodo Cartesiano....................................................................................................................27 Planejamento Reverso...............................................................................................................27 Tabelas de deciso.....................................................................................................................27 Exerccios.............................................................................................................................28

_______________________________________________________________________________________________________SUM RIO

Conceitos Bsicos......................................................................................29Tipos Primitivos......................................................................................................29Exerccios:............................................................................................................................29

Arquitetura de Memria..........................................................................................29Memria....................................................................................................................................30

Armazenamento de dados na memria....................................................................30 Formao de Identificadores...................................................................................30Constantes.................................................................................................................................30 Variveis...................................................................................................................................31 Exerccio...............................................................................................................................31

Expresses...............................................................................................................31Expresses Aritmticas.............................................................................................................31 Operadores Aritmticos............................................................................................................31 Funes Matemticas................................................................................................................32 Prioridades.................................................................................................................................32 Expresses Lgicas...................................................................................................................32 Operadores Relacionais.............................................................................................................33 Operadores Lgicos..................................................................................................................33

Comandos de Atribuio.........................................................................................33 Comandos de Entrada e Sada de Dados.................................................................34Entrada de Dados......................................................................................................................34 Sada de Dados..........................................................................................................................34

Blocos......................................................................................................................34

Estruturas de Controle............................................................................36Estrutura Seqencial................................................................................................36Exerccios.............................................................................................................................37

Estruturas de Seleo ou Deciso............................................................................37Deciso Simples........................................................................................................................37 Exerccios.............................................................................................................................38 Deciso Composta.....................................................................................................................38 Exerccios.............................................................................................................................38 Seleo Mltipla........................................................................................................................38 Exerccio...............................................................................................................................40

Estruturas de Repetio...........................................................................................40Repita ... At - Estrutura com teste no final............................................................................41 Exerccio...............................................................................................................................41 Enquanto .. Faa - Estrutura com teste no Incio....................................................................41 Exerccio...............................................................................................................................42 Para .. Passo - Estrutura com varivel de Controle.................................................................42 Exerccio...............................................................................................................................42

Estrutura de Dados..................................................................................45Agregados Homogneos .........................................................................................45Variveis Compostas Homogneas...........................................................................................45 Declarao............................................................................................................................45 Exerccio...............................................................................................................................46 Agregados Multidimensionais .................................................................................................46 Declarao............................................................................................................................46 Exerccios.............................................................................................................................48

_______________________________________________________________________________________________________SUM RIO

Agregados Heterogneos.........................................................................................48Registros....................................................................................................................................48 Declarao............................................................................................................................48

Conjunto de Registros.............................................................................................49Exerccio...............................................................................................................................50

Procedimentos e Funes.........................................................................53Procedimentos.........................................................................................................53Escopo de Variveis..................................................................................................................54 Parmetros.................................................................................................................................54

Funes....................................................................................................................55Passagem de Parmetros por Referncia e Valor......................................................................55 Exerccios.............................................................................................................................56

Recursividade..........................................................................................................57Recursividade Direta.................................................................................................................57 Recursividade Indireta..............................................................................................................57

Arquivos....................................................................................................59Definio.................................................................................................................59 Organizao dos Arquivos.......................................................................................59Seqencial.................................................................................................................................59 Direta ou Aleatria....................................................................................................................59 Declarao.................................................................................................................................60

Manipulao de Arquivos........................................................................................60Abertura.....................................................................................................................................60 Fechamento...............................................................................................................................60 Leitura.......................................................................................................................................60 Gravao...................................................................................................................................61 Posicionamento e verificao de fim e incio de arquivo.........................................................61 Avance (nome-arquivo);............................................................................................................... ...................................................................................................................................................61 FDA (nome-arquivo).................................................................................................................61 Posicione (nome-arquivo, chave);............................................................................................61 Estudo de Concepes...............................................................................................................62 Arquivo Direto Acessado Seqencialmente..............................................................................62 Arquivo Seqencial Acessado Randomicamente: Arquivo Indexado......................................62 Exerccios:............................................................................................................................62

_______________________________________________________________________________________________________SUM RIO

CONTEDO PROGRAMTICO1. Noes de Lgica 2. Conceito de Algoritmos 3. Componentes de Algoritmos 3.1. Tipos de dados primitivos 3.2. 3.3. 3.4. 3.5. 3.5.1. 3.5.2. 3.5.3. 3.6. 3.6.1. 3.6.2. 3.6.3. 3.7. 3.7.1. 3.7.2. 3.7.3. 3.7.4. 3.8. 3.8.1. 3.8.2. 3.9. 4.1. 4.2. 4.3. 4.4. 4. Subalgoritmos Funes Procedimentos Passagem de Parmetros Escopo de variveis Arquitetura da memria Armazenamento de dados em memria Variveis e constantes Expresses Expresses aritmticas Expresses lgicas Avaliao de expresses Instrues primitivas Atribuio Entrada de dados Sada de dados Estruturas de controle Estrutura Seqencial Estrutura de Deciso Estrutura de Repetio Alinhamentos Estruturas de dados Variveis Compostas Homogneas Variveis Compostas Heterogneas Arquivos

Turbo Pascal

_________________________________________________________________________________________________Histria da Lgica

HISTRIA DA LGICAAristteles e lgica silogstica (base da argumentao legal). Sofre deficincias da linguagem natural Os esticos e a introduo dos conectivos. 1700 - Leibniz e lgica simblica (proposional e predicados) 1800 - lgebra de Boole : leitura da lgica simblica para valores de um domnio e operadores Foco atual : lgica de primeira ordem, lgica de segunda ordem, resoluo por padres. Dijkstra: O objetivo da lgica o raciocnio automtico McCarty: a principal ferramenta para a computao

9

___________________________________________________________________________________Introduo a Lgica Propposicional

INTRODUO A LGICA PROPOSICIONALPreliminaresProposio Frase o elemento de comunicao que relaciona palavras entre si de modo a estabelecer uma mensagem com sentido completo. As frases podem ser de vrios tipos: Declarativa: O Sol uma estrela. Imperativa: No faa isto! Interrogativa: Onde voc mora? Exclamativa: Parabns! A linguagem natural nem sempre clara e precisa, sendo muito comum a ocorrncia de ambigidades que geram dvidas sobre o significado do que se est falando. Por isso, um dos objetivos da lgica estabelecer uma linguagem formal, onde se pode expressar com clareza, preciso e emitir juzo de verdadeiro ou falso para determinadas frases. Proposio um conceito primitivo (aceito sem definio). Mas nada impede que se estabeleam as suas caractersticas para melhor entendimento. Proposio uma frase declarativa (com sujeito e predicado), qual pode ser atribudo, sem ambigidade, um dos valores lgicos: verdadeiro (V) ou falso (F). Exemplos: 1) So proposies: a) O Japo fica na frica. b) O Brasil banhado pelo Oceano Atlntico. c) 3 + 4 = 7 d) 5 > 8 2) No So proposies: a) 3 + 4 b) Onde voc vai? c) Os estudantes jogam vlei. No tem predicado Sentena interrogativa. O sujeito no est claramente especificado e a sentena no pode ser classificada em V ou F.

As proposies podem ser simples ou compostas. Proposio simples nica, ou seja, no contem nenhuma outra proposio como parte integrante. Indicaremos tais proposies por letras minsculas de nosso alfabeto. 10

___________________________________________________________________________________Introduo a Lgica Propposicional

Exemplos: p: O Mxico fica na Amrica do Norte. Q: O nmero 16 quadrado perfeito. Proposio composta ou frmula formada por duas ou mais proposies relacionadas pelo conectivos lgicos. Sero indicadas por letras maisculas de nosso alfabeto. Notao: P (p,q,r,...) indica que a proposio composta P formada pelas proposies simples p, q, r, ... As proposies que fazem parte de uma proposio composta podem ser, elas mesmas, proposies compostas. Exemplos: P: 1 + 2 = 3 e 2 1 Q: 1 + 2 = 3 ou 2 1 R: Se 1 + 2 = 3, ento 2 1

Conectivos Lgicos Conectivos lgicos (ou operadores lgicos) so palavras ou expresses usadas para formar novas proposies a partir de proposies. Os conectivos lgicos so: no e ou se ..., ento ... ... se, e somente se ...

Valor Lgico O valor de uma proposio chamado valor lgico. Os valores lgicos possveis so: verdade (V) e falsidade (F). Notao: V (p) indica o valor lgico da proposio p. Assim, se a proposio p for verdadeira, V(p) = V; se a proposio p for falsa, V(p) = F. O valor lgico de uma proposio composta depende exclusivamente dos valores lgicos das suas proposies componentes e dos conectivos lgicos que as ligam. Exemplos: a) p: O Sol verde. b) q: Um hexgono tem seis lados. V(p) = F V(q) = V 11

___________________________________________________________________________________Introduo a Lgica Propposicional

c) r: 2 raiz da equao x2 + 3x - 4 = 0

V(r) = F

Princpios Fundamentais da Lgica Princpio da No-Contradio Uma proposio no pode ser simultaneamente verdadeira e falsa. Princpio do Terceiro Excludo Toda proposio ou s verdadeira ou s falsa, nunca ocorrendo um terceiro caso. Logo, toda proposio admite um e um s dos valores V ou F.

Tabela - Verdade Tabela-verdade uma maneira prtica de dispor organizadamente os valores lgicos envolvidos em uma proposio composta. Para a proposio simples p, temos:

Tabela-Verdade de p p V F

Para proposies compostas, veremos que o nmero dos componentes simples determina o nmero de linhas das tabelas-verdade. A princpio, vamos construir as tabelas-verdade dispondo, apenas, todas as possibilidades de valores lgicos das proposies componentes; os possveis valores lgicos das proposies compostas estudados mais adiante.

Proposio Composta por 2 Proposies Simples - P(p,q) Tabela-Verdade p V V F q F V F 12

___________________________________________________________________________________Introduo a Lgica Propposicional

F

V

Proposio Composta por 3 Proposies Simples - P(p,q,r) Tabela-Verdade p V V V V F F F F Teorema: O nmero de linhas distintas de uma tabela-verdade dado por 2n, onde n nmero de proposies simples componentes e 2 representa o nmero de valores lgicos possveis (V ou F). q V V F F V V F F r V F V F V F V F

Operaes Lgicas sobre ProposiesOperao Negao (~) Se p uma proposio, a negao da proposio p denotada por ~ p (l-se no p). Se V(p) = V, ento V(~ p) = F Se V(p) = F, ento V(~ p) = V Logo, a negao de uma proposio apresenta valor lgico oposto ao da proposio dada. A tabela-verdade da operao negao : p V F Exemplos: 1) Dada a proposio: 13 ~p F V

___________________________________________________________________________________Introduo a Lgica Propposicional

p: O Sol um planeta. A sua negao : ~ p: O Sol no um planeta.

2) Dada a proposio: q: 2 + 3 = 5 a sua negao : ~ q: 2 + 3 5 3) Dada a proposio: r: Rio de Janeiro um pas. A sua negao : ~ r: Rio de Janeiro no um pas. A negao pode, ainda, ser expressa de outras maneiras, como: ~ r: No verdade que Rio de Janeiro um pas. ~ r: falso que Rio de Janeiro um pas.

Negar uma proposio p no apenas afirmar algo diferente do que p afirma, ou algo com valor lgico diferente. Exemplo: A proposio O Sol uma estrela, que verdadeira, no negao da proposio O Sol um planeta, que falsa. Operao Conjuno () Duas proposies p e q podem ser combinadas pelo conectivo e para formar uma proposio composta denominada conjuno das proposies originais. Notao: p q (l-se: p e q) Exemplos: 1) Dada as proposies: p: Carlos estuda Matemtica. Q: Carlos joga xadrez. A conjuno : p q: Carlos estuda Matemtica e joga xadrez. 2) Dadas as proposies: p: 2 > 0 14

___________________________________________________________________________________Introduo a Lgica Propposicional

q: 2 1 a conjuno : p q: 2 > 0 e 2 1

O smbolo pode ser usado, tambm, para definir a interseco de dois conjuntos. A B = {x / x A x B} A conjuno de duas proposies (p q) verdadeira se, e somente se, cada componente for verdadeiro. A tabela-verdade da operao conjuno : p V V F F p V V F F q V F V F OU ^ V F F F pq V F F F q V F F F

Operao Disjuno (V) Duas proposies p e q podem ser combinadas pelo conectivo ou (com sentido de e/ou) para formar uma proposio composta denominada disjuno das proposies originais. Notao: p q (l-se: p ou q) Na linguagem natural, o conectivo ou pode traduzir tanto a idia de hipteses mutuamente exclusivas (ou ocorre isto ou ocorre aquilo) quanto a de que pelo menos uma das hipteses ocorre. Exemplos: 1) A sentena chove ou faz frio verdadeira nos seguintes casos: s chove; s faz frio; chove e faz frio. 2) O mesmo no acontece com a sentena Pedro passar nos exames ou repetir de ano, que s verdadeira nos seguintes casos: Pedro passar nos exames; Pedro repetir de ano. Mas falsa a hiptese: 15

___________________________________________________________________________________Introduo a Lgica Propposicional

Pedro passar nos exames e repetir de ano.

No primeiro exemplo, a disjuno inclusiva e, no segundo, a disjuno exclusiva. Em nosso estudo, vamos nos preocupar apenas com a disjuno inclusiva. Exemplos: 1) Dadas as proposies: p: Joo estudante. Q: Joo mecnico. A disjuno : p q: Joo estudante ou mecnico. 2) Dadas as proposies: p: 10 nmero primo q: 10 nmero composto a disjuno : p q: 10 nmero primo ou nmero composto. O smbolo pode ser usado, tambm, para definir a unio de dois conjuntos: A B = {x / x A x B} A disjuno inclusiva de duas proposies (p q) falsa se, e somente se, todas as componentes forem falsas. A tabela-verdade da operao disjuno : p V V F F Exemplos: 1) Determinar o valor lgico da proposio composta P dada a seguir: P: 3 < ou 2 no nmero primo. Resoluo: 3 < uma proposio verdadeira. 2 no nmero primo uma proposio falsa. Com as proposies simples dadas esto ligadas pelo conectivo ou, ento: V(P) = V 16 q V F V F p q V V V F

___________________________________________________________________________________Introduo a Lgica Propposicional

2)Sejam as proposies: p: Maurcio jogador de vlei. Q: Maurcio bonito. Escrever em linguagem natural as seguintes proposies: a) p q Resoluo: a) Maurcio jogador de vlei e Maurcio bonito. b) Maurcio jogador de vlei ou Maurcio no bonito. 3) Construir a tabela-verdade para a proposio p ~ q. Resoluo: p V V F F q V F V F ~q F V F V p~q V V F V b) p ~q

Operao Condicional ( ) Duas proposies p e q podem ser combinadas pelo conectivo lgico se ..., ento ... para formar uma nova proposio denominada condicional. Notao: p q (l-se: se p, ento q).

Outras maneiras de se ler o condicional p q: q, se p. p condio suficiente para q. q condio necessria para p. Exemplo: A proposio condicional Se chove, ento a rua fica molhada, tambm pode ser lida das seguintes formas: Chover uma condio suficiente para a rua ficar molhada. A rua ficar molhada uma condio necessria quando chove. No condicional p q, a proposio p chamada antecedente e a proposio q conseqente. Exemplos: 1) Dadas as proposies: p: 1 litro = 1 dm3 q: 1 ml = 1 cm3 a condicional : 17

___________________________________________________________________________________Introduo a Lgica Propposicional

p q: Se 1 l = 1 dm3, ento 1 ml = 1 cm3. 2) Dadas as proposies: p: Chove q: Faz frio a condicional : p q: Se chove, ento faz frio. 3) Dadas as proposies: p: 5 < 2 q: 2 Z a condicional : p q: Se 5 < 2, ento 2 Z. Obs.: O smbolo Z representa o conjunto dos nmero inteiros. A proposio condicional p q s falsa quando p verdadeira e q falsa. Caso isto no ocorra, a proposio condicional ser verdadeira. A tabela-verdade da operao condicional : p V V F F q V F V F p q V F V V

Operao Bicondicional ( ) Duas proposies p e q podem ser combinadas pelo conectivo lgico ... se, e somente se ... para formar uma nova proposio denominada bicondicional. Notao: p q (l-se: p se, e somente se q) Outras maneiras de se ler o bicondicional p q: p condio necessria e suficiente para q. q condio necessria e suficiente para p. Exemplos: 1) Dadas as proposies: p: Perereca se transforma em sapo. Q: Sapo se transforma em prncipe. A bicondicional : p q: Perereca se transforma em sapo se, e somente se, sapo se transforma em prncipe. 18

___________________________________________________________________________________Introduo a Lgica Propposicional

2) Dadas as proposies: p: Joo homem. Q: Joo tem a voz grave. A bicondicional : p q: Joo homem se, e somente se, Joo tem a voz grave. A proposio bicondicional p q s verdadeira quando V(p) = V(q), caso contrrio falsa. A tabela-verdade da operao bicondicional : p V V F F q V F V F pq V F F V

Tabela verdade resumo dos conectivos p V V F F q V F V F p^q V F F F pvq V V V F ~p F F V F p q V F V V p q V F F V

Prioridade dos conectivos a) Parnteses Usar parnteses em todas as frmulas indicando assim a prioridade das subfrmulas. ((( ~p ) v q) ((r ^ ~q) p)) Quando o significado for claro podemos simplificar o uso de parnteses. b) Tabela abaixo (~) > (^) > ( v) > () > () Exerccios Dadas as proposies a seguir, monte a expresso e a tabela verdade correspondente: 1. a)Est chovendo 2. b)Est frio

19

___________________________________________________________________________________Introduo a Lgica Propposicional

2. a)Joo vai viajar 3. b)Maria vai viajar 4. c)Se Maria viajar ao lado de Joo, Joo ficar feliz 3. a)Joo vai viajar se Maria for 4. b)Maria vai viajar se Mario for 5. c)Mario vai viajar se Carlos ou Maria for 4. 5. 6. 1. Dadas as expresses abaixo, monte as tabelas verdade a) p ^ (q r) (p q) b) (p q) ^ (r q) (p ^ r) c) ((p ~p) ^ ~(q r)) (~q ^ r) s

Tautologia, Contradio e ContingnciaTautologia Uma proposio composta uma tautologia quando o seu valor lgico sempre verdade (V), quaisquer que sejam os valores lgicos das proposies componentes. Exemplos: p: Chove ~p: No chove (p ~p) A tabela-verdade : p V F Logo, (p ~p) uma tautologia. Contradio Uma proposio composta uma contradio quando o seu valor lgico sempre a falsidade (F), quaisquer que sejam os valores lgicos das proposies componentes. Exemplo: p: Chove ~p: No chove (p p) ~ A tabela-verdade : p V F Logo, (p ~p) uma tautologia. ~p F V p ~p F F ~p F V p ~p V V

20

___________________________________________________________________________________Introduo a Lgica Propposicional

Contingncia Uma proposio contingente (ou uma indeterminao) quando no uma tautologia e no uma contradio.

Exerccios Dadas as proposies abaixo, diga se ela uma Tautologia, Contradio ou Contingncia 1. (p ^ ~p) ^ p 2. (p ^ ~q) ^ p 3. (p ^ ~p) q 4. (q ^ ~p) ^ r 5. p ^ (q r) (p q)

Implicao Lgica ou Conseqncia Lgica ( )Dadas as proposies compostas P e Q, diz-se que ocorre uma implicao lgica (ou relao de implicao) entre P e Q quando a proposio condicional P Q uma tautologia. OU Uma frmula A consequncia lgica de uma frmula B, se e somente se para qualquer interpretao em que B verdadeira A tambm verdadeira. Assim B implica logicamente em A se B A uma tautologia, e B ^ ~A uma contradio. Notao: P Q (l-se: P implica Q). Os smbolos e tm significados diferentes: O smbolo realiza uma operao entre proposies, dando origem a uma nova proposio p q cuja tabela-verdade pode conter tanto V quanto F. O smbolo entre duas proposies dadas indica uma relao, isto , que a proposio condicional associada uma tautologia. Exemplo: Mostrar que (p q) p. p V V F F q V F V F p q V F F F (p q) p V V V V

Como (p q) p uma tautologia, ento (p q) p, isto , ocorre a implicao lgica.

21

___________________________________________________________________________________Introduo a Lgica Propposicional

Equivalncia Lgica ( )Dadas as proposies compostas P e Q, diz-se que ocorre uma equivalncia lgica entre P e Q quando suas tabelas-verdade forem idnticas. OU Uma frmula A equivalncia lgica de uma frmula B (A logicamente equivalente a B) se A implicao lgica de B e B implicao lgica de A. Assim A equivalncia lgica de B se A B uma tautologia. Notao: P Q ou P Q (l-se: P equivalente a Q) Intuitivamente, proposies logicamente equivalentes transmitem a mesma informao, a mesma idia, a partir das mesmas proposies componentes. Exemplo: Mostrar que (p q) (q p) e p q so equivalentes. p V V F F q V F V F p q V F V V q p V V F V (p q) (q p) V F F V pq V F F V

Logo, (p q) (q p) p q. O bicondicional no uma operao lgica bsica, mas a conjuno de proposies condicionais. Exemplo: Mostrar que (p q) ~ ( ~ p ~q). Analisemos a tabela-verdade envolvendo as seguintes proposies: A p q V F F F B ~p~q F V V V ~B ~ (~ p ~ q) V F F F

p V V F F

q V F V F

~p F F V V

~q F V F V

A~B V V V V

Como (p q) ~ ( ~ p ~ q) uma tautologia, ento (p q) ~ (~ p ~ q), isto , ocorre a equivalncia lgica.

Exerccios Verifique se os pares de frmulas abaixo so equivalncias lgicas ou implicaes lgicas. 22

___________________________________________________________________________________Introduo a Lgica Propposicional

a) (p ^ q) e q b) ~(p ^ q) e ( ~p v ~q) c) (~p v q) e (p q)

23

____________________________________________________________________________________________Introduo a Algoritmos

Introduo a AlgoritmosNoes de LgicaO que Lgica? Lgica trata da correo do pensamento. Como filosofia, ela procura saber por que pensamos assim e no de outro jeito. Com arte ou tcnica, ela nos ensina a usar corretamente as leis do pensamento. Poderamos dizer tambm que a Lgica a arte de pensar corretamente e, visto que a forma mais complexa do pensamento o raciocnio, a Lgica estuda ou tem em vista a correo do raciocnio. Podemos ainda dizer que a lgica tem em vista a ordem da razo. Isto d a entender que a nossa razo pode funcionar desordenadamente, pode pr as coisas de pernas para o ar. Por isso a Lgica ensina a colocar Ordem no Pensamento. Exemplos: a) Todo o mamfero animal. Todo cavalo mamfero. Portanto, todo cavalo animal. b) Todo mamfero bebe leite. O homem bebe leite. Portanto, todo homem mamfero e animal. Existe Lgica no dia-a-dia? Sempre que pensamos, o raciocnio e a lgica nos acompanham necessariamente. Tambm quando falamos, pois a palavra falada a representao do pensamento; e, visto que a palavra escrita a representao da palavra falada, tambm pensamos quando escrevemos, utilizando a Lgica ou a Ilgica. Da percebemos a importncia da Lgica na nossa vida no s na teoria, como tambm na prtica, j que quando queremos pensar, falar ou escrever corretamente precisamos colocar em Ordem o Pensamento, isto , utilizar a Lgica. Exemplos: a) A gaveta est fechada. A bala est na gaveta. Preciso primeiro abrir a gaveta, para depois pegar a bala. b) Joo mais velho que Jos. Marcelo mais novo que Jos. Portanto, Joo mais velho que Marcelo.

____________________________________________________________________________________________Introduo a Algoritmos

Algoritmizando a LgicaConstruir algoritmos o objetivo fundamental de toda a programao, mas, afinal, O que Algoritmo? Algoritmo uma seqncia de passos que visam atingir um objetivo bem definido. (Ordem do Pensamento e, portanto, Lgica) Apesar de achar este nome estranho, algoritmos so comuns em nosso cotidiano, como, por exemplo, uma receita de bolo. Nela est descrita uma srie de ingredientes necessrios, uma seqncia de diversos passos - aes - a serem cumpridos para que se consiga fazer determinado tipo de bolo - objetivo bem definido aguardado ansiosamente por todos. Para aprimorar nosso conceito de algoritmo, vamos tornar mais evidente alguns outros conceitos, como, por exemplo, o de ao: Ao um acontecimento que a partir de um estado inicial, aps um perodo de tempo finito, produz um estado final previsvel e bem definido, em que: Estado a situao atual de dado objeto. Portanto, podemos redefinir Algoritmo como: Algoritmo a descrio de um conjunto de aes que, obedecidas, resultam numa sucesso finita de passos, atingindo o objetivo. Em geral um algoritmo destina-se a resolver um problema: fixa um padro de comportamento a ser seguido, uma norma de execuo a ser trilhada, com o objetivo de alcanar a soluo de um problema. O que padro de comportamento? Imagine a seguinte seqncia de nmeros: 1, 6, 11, 16, 21, 26.... Para determinar o stimo elemento da srie, precisamos descobrir qual a sua regra de formatao, isto , seu padro de comportamento. Para tal, observamos que a srie obedece uma constncia; visto que existe uma diferena constante entre cada elemento, a qual pode ser facilmente determinada, somos capazes de determinar o stimo e qualquer outro termo. Podemos, ento, descrever uma atividade bem quotidiana, como, por exemplo, trocar uma lmpada. Apesar de aparentemente bvias demais, muitas vezes fazemos esse tipo de atividade inconscientemente. Sem percebermos seus pequenos detalhes. Vejamos se ela fosse descrita passo a passo: pegue a escada; posicione-a embaixo da lmpada; busque uma lmpada nova; suba na escada; retire a lmpada velha; coloque a lmpada nova.

____________________________________________________________________________________________Introduo a Algoritmos

Involuntariamente, j seguimos uma determinada seqncia de aes que, representadas neste algoritmo, fazem com que ele seja seguido naturalmente por pessoas, estabelecendo um padro de comportamento. assim tambm com os algoritmos escritos para computador, voc deve especificar todos os passos, para que o computador possa chegar ao objetivo. Por exemplo: Dados os nmeros naturais(N) 0, 1, 2, 3, 4, 5, 6, ... pass1 pass2 pass3 faa N igual a zero some 1 a N volte ao passo 2

Soma dos primeiros 100 nmeros naturais: pass1 pass2 pass3 faa N igual a zero some 1 a N se N for menor ou igual a 100 ento volte ao passo 2 seno pare Nos dois exemplos acima, o primeiro possui repertrio bem definido mas no finito, enquanto que o segundo tem um critrio de parada, ou seja, finito e descreve um padro de comportamento, ou seja, temos um algoritmo.

Fases de um programaComo tudo na terra, o programa tem um tempo de vida, chamado de ciclo de vida de um programa.

Planejamento a fase onde definimos o problema a ser resolvido utilizando um computador. Nesta fase relacionamos a entrada e a sada do futuro programa, assim como a definio dos arquivos auxiliares que ele venha a utilizar.

Projeto a fase onde a resoluo do problema concebida. Neste ponto so definidos detalhes do algoritmo, estrutura de dados empregados pelo programa.

Escrita Consiste em codificar o programa em uma linguagem de programao apropriada.

____________________________________________________________________________________________Introduo a Algoritmos

Depurao Ao final da escrita estaremos com o programa quase pronto; mas ser que ele funciona? Esta a fase onde depuramos o programa, ou seja, corrigimos os erros. Manuteno Passada a fase de depurao, o programa ser ento liberado para utilizao. Mas durante sua vida til, um programa pode ser alterado; neste caso teremos que fazer novas mudanas, ou seja, manuteno.

Programao Estruturada um mtodo de projeto que tem por objetivo gerar um produto (programa), que tem certas caractersticas desejveis, tais como: 1. correo - os programas devem antes de mais nada, dar respostas certas para entradas certas. 2. 3. complitude - os programas devem dar respostas inteligveis para entradas erradas. 4. 5. flexibilidade - os possveis erros de programao devem ser fceis de serem removidos, e as alteraes devido a mudanas devem ser implementadas facilmente. 6. 7. eficincia - programas devem ser eficientes quanto aos recursos computacionais como economia de memria, tempo de processamento. 8. 9. transparente - programas devem ser fceis de serem compreendidos.

Pseudo-linguagemEscrever um algoritmo em portugus (portugol) visa principalmente facilitar o projetista, pensar no problema e no na mquina.

Algoritmo X QualidadeTodo algoritmo deve ser feito de maneira lgica e racional, visando principalmente a sua eficincia e clareza. Ao construir algoritmos devemos: 1. Saber que estes sero lidos por outras pessoas, alm de ns mesmos, permitindo sua fcil correo. 2. Escrever comentrios na sua elaborao. Algoritmos sem comentrios sinal de amadorismo, e um dos grandes erros que programadores cometem. Sua elaborao deve ser clara e resumida, limitando-se s ocasies de maior detalhamento. Devem acrescentar alguma coisa, no apenas frasear. 3. Os comandos nos dizem o que est sendo feito, os comentrios dizem o porqu. 4. Todo algoritmo deve possuir comentrios no prlogo, explicando o que ele faz e dar instrues para seu uso. 5. Utilizar espaos e/ou linhas em branco para melhorar a legibilidade. 10.Nomes representativos para variveis. Uma seleo adequada de nomes de variveis o

____________________________________________________________________________________________Introduo a Algoritmos

princpio mais importante da legibilidade de algoritmos. 11.Um comando por linha suficiente. 12.Uso de parnteses aumenta a legibilidade e previne erros. 13.Utilize identao, pois mostra a estrutura lgica do algoritmo. Deve ser feita segundo certos padres estabelecidos.

Mtodo para construo de algoritmosA. Ler atentamente o enunciado. justamente o enunciado do exerccio que fornece o encaminhamento necessrio resoluo do problema, que se torna, portanto, dependente de sua completa compreenso. B. Retirar do enunciado a relao das entradas de dados. C. Retirar do enunciado a relao das sadas de dados. D. Determinar o que deve ser feito para transformar as entradas determinadas nas sadas especficas. Nesta fase que determinamos a construo de algoritmos propriamente dito, pois, a partir de alguns requisitos especificados, devemos determinar qual a seqncia de aes capaz de transformar um conjunto definido de dados nas informaes de resultado. Para isso, podemos: D.1. Utilizar o Mtodo Cartesiano quando a complexidade (variedade) no estiver totalmente absorvida, conhecida. Mtodo Cartesiano Nosso principal objetivo enquanto programadores vencer a complexidade, o que mantm clebre a frase de Descartes Dividir para Conquistar. Este mtodo consiste justamente em atacar o problema abrangente dividindo-o em partes menores, a fim de torn-lo mais simples ou especfico e, se necessrio, dividir novamente as partes no compreendidas. Podemos esquematizar o seguinte procedimento (algoritmo) para o mtodo: i. Dividir o problema em suas partes principais. ii. Analisar a diviso obtida para garantir coerncia. Iii. Se alguma parte no for bem compreendida, aplicar a ela o mtodo. iv. Analisar o objeto para garantir entendimento e coerncia. D.2. Aplicar o Planejamento Reverso.

Planejamento Reverso Processo utilizado que, a partir das sadas (informaes de resultado), procura desagregar, desmontando a informao, a fim de atingir os dados de entrada, quando ento teramos (do fim para o incio) todas as aes. D.3. Montar uma tabela de deciso quando uma ou mais aes dependentes de um conjunto de condies assumirem determinadas combinaes de valores.

Tabelas de deciso Objetiva basicamente relacionar as aes que dependem de alguma condio com as prprias condies, a fim de esclarecer e visualizar facilmente quais valores o conjunto de condies deve

____________________________________________________________________________________________Introduo a Algoritmos

assumir para que se efetue sua respectiva ao. E. Construir o algoritmo. F. Executar o algoritmo. Implica executar todas as aes descritas seguindo o fluxo de execuo estabelecido, verificando se os resultados obtidos correspondem ao esperado quando da montagem do algoritmo, detectando ento algum possvel erro no desenvolvimento deste. Essa atividade conhecida por teste de mesa. Exerccios 1. Um homem precisa atravessar um rio com um barco que possui capacidade de carregar apenas ele mesmo e mais uma de suas trs cargas, que so: um lobo, um bode e um mao de alfafa. O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas? 2. Suponha que voc possua um rob e queira faz-lo trocar uma lmpada, sendo que o mesmo foi programado para obedecer aos seguintes comandos: pegue pressione gire garras 180 no sentido horrio gire garras 180 no sentido anti-horrio mova para desloque-se para e ainda capaz de: perceber quando algum comando no pode mais ser executado sentir alguma fonte de calor Que ordens voc daria para que seu rob trocasse a lmpada? 3. Construa um algoritmo que mostre todos os passos que voc segue para escolher o tipo de roupa com que vai sair, aps levantar, levando em considerao apenas o tempo (bom, nublado, chuvoso) e a temperatura (quente, moderado, frio). 4. Elabore um algoritmo que mova trs discos de uma Torre de Hani, que consiste em trs hastes (a - b - c), uma das quais serve de suporte para trs discos diferentes (1 - 2 - 3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco maior sobre um menor. O objetivo transferir os trs discos para outra haste. 5. Trs jesutas e trs canibais precisam atravessar um rio; para tal, dispem de um barco com capacidade para duas pessoas. Por medidas de segurana no se permite que em alguma margem a quantidade de jesutas seja inferior de canibais. Qual a seqncia de passos que permitiria a travessia com segurana? 6. Numa determinada noite, acontece uma queda de energia. Voc sabia que poderia encontrar uma vela na gaveta da cozinha, um lampio embaixo da cama, fusveis de reserva no armrio da sala e fsforos na estante da cozinha. Descreva a seqncia de passos que poderia ser utilizada para diagnosticar e resolver o problema, que pode ser previsto em duas possibilidades: a) o fusvel queimou; b) a queda na estao da companhia eltrica.

________________________________________________________________________________________________Conceitos Bsicos

Conceitos BsicosEm cada linguagem a frase de construo envolve dois aspectos: a sintaxe - forma como pode ser escrita; a semntica - contedo - a lgica de cada comando.

Tipos PrimitivosAs informaes manipuladas pelo computador se apresentam atravs dos dados (informaes) e das instrues (comandos). Os dados possuem diferentes tipos, que podem ser classificados em quatro tipos primitivos: 1. 2. 3. 4. Inteiro: valores de -32,768 at +32,768 Real: valores com virgulas negativos ou positivos com grande abrangncia. Caracter: toda e qualquer informao composta de caracteres alfanumricos (0..9, a..z, A..Z) e/ou caracteres especiais (!, @, #, $, %, ^, &, *, etc). Estes caracteres (podendo ser um s ou uma cadeia) aparecero sempre entre apstrofos, ou aspas. Exemplo: "ASD",'2e3', "V". Lgico: tambm conhecido como tipo Booleano, toda e qualquer informao que pode assumir somente dois valores (aberto/fechado, acesso/apagado), no nosso caso apenas pode-se usar V (verdadeiro) ou F (falso).

Exerccios: 1) Classifique os dados de acordo com o seu tipo, sendo (I = inteiro, R = real, C = caracter, L = lgico). ( ) 0 ( ) 1 ( ) 0,0 ( ) 0 ( ) -1 ( ) a ( ) + 36 ( ) + 32 ( ) - 0,001 ( ) + 0,05 ( ) + 3257 ( ) +3257 ( ) -0,0 ( ) .V. ( )V ( )F ( ) .V. ( )F ( ) -32 ( ) -1,9E123 ( ) '0' ( ) +3257 ( ) 'F'

( ) abc

Arquitetura de MemriaDe um modo geral, a memria do computador pode ser vista como um conjunto de clulas, cada uma identificada unicamente por um nmero inteiro distinto, conhecido como endereo.

30

________________________________________________________________________________________________Conceitos Bsicos

Memria endereo 1 2 : N informaes A 10 : .V. O acesso s informaes armazenadas na memria (leitura, escrita) feita Byte a Byte. Cada Byte formado por uma combinao de 8 dgitos binrios (0 e 1), sendo assim, um Byte possui 256 (2 8) estados possveis ou representa 256 smbolos de informao.

Armazenamento de dados na memriaCada informao de determinado tipo representada de diferentes formas, e necessita de uma certa quantidade de memria para armazen-las. O nmero de bytes necessrios para armazenar uma informao depender do seu tipo. Por exemplo, na maioria das linguagens de programao o tipo inteiro armazenado ocupando 2 bytes, ou seja 65536 (28 x 28 = 216) possibilidades (-32767, -32766, ....., -1,0, 1..... 32767, 32768). Um dado do tipo caractere formado por vrios smbolos, sendo que cada um ocupa 1 byte. Desta forma o nmero de bytes utilizados no armazenamento do tipo caractere depender do seu tamanho. 1 endereo - 1 byte

Formao de IdentificadoresPodemos imaginar a memria como sendo um armrio repleto de gavetas, no qual as gavetas seriam os locais fsicos responsveis por armazenar objetos; os objetos (que podem ser substitudos ou no) seriam as informaes (dados), e as gavetas as variveis ou constantes. Visto que na memria (armrio) existem inmeras variveis (gavetas), precisamos diferenci-las, o que feito por meio de identificadores (etiquetas). Cada varivel (gaveta), no entanto, pode guardar apenas uma informao (objeto) de cada vez, sendo sempre do mesmo tipo (material). Os identificadores possuem certas regras para serem formados: Devem comear por um caracter alfabtico; 5. 6. Podem ser seguidos por mais caracteres alfabticos e/ou alfanumricos; No permitido o uso de caracteres especiais ou espaos, com exceo do underscore( _ ). Variveis e Constantes

So entidades que armazenam valores. A diferena entre variveis e constantes est na possibilidade de alterao do valor armazenado, durante todo o tempo de durao do programa.

Constantes Entendemos que uma informao constante quando no sofre nenhuma variao no decorrer do tempo. A declarao de constantes deve ser feita da seguinte maneira: Const um_cm = 1 nome = Joo 31

________________________________________________________________________________________________Conceitos Bsicos

pi = 0,1415

Variveis Entendemos que uma informao varivel quando sofre variaes durante o decorrer do tempo. A declarao de variveis feita da seguinte maneira: Variveis dlar : real endereo : caracter existe : lgico

Exerccio Assinale os identificadores vlidos: 1 - abc 5 - 123a 9 - #55 13 BAC 17 - U2 2 - AB/C 6 - 080 10 - AH! 14 - xyz 18 - p{0} 3 - Joo 7-1a3 11 - Etc... 19 - A123 4 - [x] 8 - (x) 12 - ...a 16 - A_B-C 20 - A.

15 - Porta_mala

Expresses um conjunto de constantes e/ou variveis e/ou funes ligadas por operadores aritmticos ou lgicos. Expresses Aritmticas Denominamos expresso aritmtica aquela cujos operadores so aritmticos e cujos operandos so constantes e/ou variveis do tipo numrico (inteiro e/ou real). Operadores Aritmticos Chamamos de operadores aritmticos o conjunto de smbolos que representa as operaes bsicas da matemtica: Operadores Binrios:1 1 1 1 1 1 1 1

+ adio * multiplicao ** potenciao - subtrao / diviso // radicao mod resto da diviso div quociente da diviso inteira 32

Operadores Unrios:

________________________________________________________________________________________________Conceitos Bsicos

1 1

+ -

manut. sinal manut. sinal

Exemplo: 9/4 = 2,25 9 div 4 = 2 9 mod 4 = 25 15 div 7 = 2 15 mod 7 = 1

Funes Matemticas Alm das operaes aritmticas bsicas anteriormente citadas, podemos usar nas expresses aritmticas algumas funces da matemtica:1 1 1 1 1 1 1 1 1 1 1 1

sen(x) cos(x) tg(x) arctg(x) arccos(x) arcsen(x) abs(x) int(x) frac(x) ard(x) sinal(x) nulo; rnd(x)

- seno de x; - coseno de x; - tangente de x; - arco cuja tangente x; - arco cujo coseno x; - arco cujo seno x; - valor absoluto (mdulo) de x; - a parte inteira de um nmero fracionrio; - a parte fracionria de x; - transforma por arredondamento, um nmero fracionrio em inteiro; - fornece o valor -1, +1 ou 0 conforme o valor de x seja negativo, positivo ou - valor randmico de x;

Onde x pode ser um nmero, varivel, expresso aritmtica ou tambm outra funo matemtica.

Prioridades A hierarquia das expresses e funes aritmticas a seguinte:1 1 1 1 1 1 1 1 1 1

( ) parnteses mais internos funes matemticas ** // * / div mod + Expresses Lgicas Denominamos expresso lgica aquela cujos operadores so lgicos e/ou relacionais e cujos 33

________________________________________________________________________________________________Conceitos Bsicos

operandos so relaes e/ou variveis e/ou constantes do tipo lgico. Operadores Relacionais Utilizamos os operadores relacionais para realizar comparaes entre dois valores de mesmo tipo primitivo. Tais valores so representados por constantes, variveis ou expresses aritmticas. Os operadores so:1 1 1 1 1 1

= > < >= altura2 ento incio escreva(Altura 1 maior); fim {se} fim. {algoritmo} 38

_____________________________________________________________________________________________Estruturas de Controle

Exerccios 1. Faa um algoritmo que conhea as quatro notas bimestrais e, informe a mdia do aluno e se ele passou; mdia para aprovao = 6. 2. Conhea trs nmeros inteiros, e informe qual o maior. 3. Encontrar o dobro de um nmero se este for par, se mpar encontrar o triplo. Deciso Composta Se ento incio C; B; fim; seno incio A; fim; Notamos agora que se a condio for satisfeita (Verdadeira), os comandos C e B sero executados, mas se a condio for falsa, tambm podem ser executados comandos, neste caso o comando A entrando no seno.

Exerccios 1. Construa um algoritmo que verifique a validade de uma senha fornecida pelo usurio. A senha valida deve ser igual a LGICA. 2. Conhecendo-se trs nmeros, encontrar o maior. 3. Dados trs nmeros inteiros, coloc-los em ordem crescente. 4. Seleo Mltipla Escolha varivel caso valor1 : comando1; caso valor2 : comando2; caso valor3 : comando3; caso valor4 : comando4; caso contrrio comando_F fimescolha; Esta estrutura evita que faamos muitos blocos se, quando o teste ser sempre em cima da mesma varivel.

39

_____________________________________________________________________________________________Estruturas de Controle

Exemplo: se X = V1 ento incio C1; fim seno incio se X = V2 ento incio C2; fim; seno incio se X = V3 ento incio C2; fim seno incio se X = V4 ento incio C3; fim seno incio C4; fim; fim; fim; fim; Com a estrutura de escolha mltipla, o algoritmo ficaria da seguinte maneira: escolha X caso V1 : C1; caso V2 : C2; caso V3 : C2; caso V4 : C3; seno C4; fimescolha;

40

_____________________________________________________________________________________________Estruturas de Controle

Exerccio 1. Numa festinha de fim de curso, foi feito um sorteio para distribuir o dinheiro restante em caixa. Dez pessoas foram sorteadas com direito a tentar a sorte mais uma vez, da seguinte forma: Deveriam apanhar uma bola numerada de 0 a 9 e conforme o algarismo sorteado o prmio seria: Nmero da Bola 0 1 2 3 4 5 6 7 8 9 Prmio (% do valor do caixa) 05 25 10 07 08 05 15 12 03 10

Faa um algoritmo que calcule o prmio recebido individualmente por pessoa. 2. Sendo dados 3 nmeros positivos, verificar a natureza do tringulo formado, quanto aos seus ngulos, com estes nmeros como medida dos lados. 3. Considerando trs notas inteiras, encontrar a mdia aritmtica simples entre as que correspondem a nmeros pares. 4. Dados 4 nmeros, coloc-los em ordem crescente. 5. Conhecer o nome e a idade de trs pessoas, informar quem o mais velho e quem o mais novo. 6. Dadas duas medidas, informar a figura geomtrica que se forma, sendo que cada medida corresponde ao tamanho de dois lados paralelos. 7. Dada a hora (apenas a hora, sem minutos ou segundos), informar qual a direo do sol. 8. Sendo conhecidos os valores de Z e W encontrar: y = (7x2 - 3x - 8t) / 5(x + 1) sabendo-se que os valores de x so assim definidos: se w > 0 ou z < 7 x = (5w + 1) / 3; t = (5z + 2); caso contrrio x = (5z + 2); t = (5w + 1) / 3;

Estruturas de RepetioEstas estruturas possibilitam que nosso algoritmo seja muito mais enxuto e fcil de se programar. Imagine um algoritmo de fatorial de 8: 41

_____________________________________________________________________________________________Estruturas de Controle

variveis fat : real; incio fat := 8 * 7; fat := fat * 6 ; fat := fat * 5; fat := fat * 4; fat := fat * 3; fat := fat * 2; escreva(fat); fim. O resultado ser o fatorial com certeza mas, imagine se fosse o fatorial de 250. Ou ainda, o usurio deseja fornecer o nmero e o algoritmo deve retornar o fatorial, qual nmero ser digitado? Quantas linhas devero ser escritas? Para isso servem as estruturas de repetio, elas permitem que um determinado bloco de comandos seja repetido vrias vezes, at que uma condio determinada seja satisfeita.

Repita ... At - Estrutura com teste no final Esta estrutura faz seu teste de parada aps o bloco de comandos, isto , o bloco de comandos ser repetido, at que a condio seja V. Os comandos de uma estrutura repita .. at sempre sero executados pelo menos uma vez. Repita comando1; comando2; comando3; at ;

Exerccio 1. Construa o algoritmo de clculo do fatorial com a estrutura Repita .. At. Enquanto .. Faa - Estrutura com teste no Incio Esta estrutura faz seu teste de parada antes do bloco de comandos, isto , o bloco de comandos ser repetido, at que a condio seja F. Os comandos de uma estrutura enquanto .. faa podero ser executados uma vez, vrias vezes ou nenhuma vez.

42

_____________________________________________________________________________________________Estruturas de Controle

Enquanto < condio > Faa incio < bloco de comandos >; fim;

Exerccio 1. Construa o algoritmo de clculo do fatorial com a estrutura Enquanto .. Faa. Para .. Passo - Estrutura com varivel de Controle Nas estruturas de repetio vistas at agora, acorrem casos em que se torna difcil determinar quantas vezes o bloco ser executado. Sabemos que ele ser executado enquanto uma condio for satisfeita - enquanto..faa, ou at que uma condio seja satisfeita - repita...at. A estrutura para .. passo repete a execuo do bloco um nmero definido de vezes, pois ela possui limites fixos: Para := at passo N faa incio < bloco de comandos >; fim; Exerccio 1. Construa o algoritmo de clculo do fatorial com a estrutura Para .. Passo. 2. Analise o desempenho dos trs algoritmos de fatorial feitos e responda qual a melhor estrutura a se usar. 3. Dado um conjunto de nmeros inteiros, obter a soma e a quantidade de elementos. 4. Encontrar os N primeiros termos de uma progresso geomtrica, onde o primeiro termo e a razo so conhecidos. 5. Idem ao exerccio 1, calculando tambm a soma dos nmeros negativos, positivos, pares e mpares. 6. Determinar o menor entre um conjunto de nmeros inteiros fornecidos um de cada vez. 7. A converso de graus Fahrenheit para centgrados obtida pela frmula C = 5/9 (F-32). Escreva um algoritmo que calcule e escreva uma tabela de graus centgrados em funo de graus Fahrenheit que variem de 50 a 150 de 1 em 1. 8. Uma rainha requisitou os servios de um monge e disse-lhe que pagaria qualquer preo. O monge, necessitando de alimentos, indagou rainha sobre o pagamento, se poderia ser feito com gros de trigo dispostos em um tabuleiro de xadrez, de tal forma que o primeiro quadro deveria conter apenas um gro e os quadros subseqentes, o dobro do quadro anterior. A rainha achou o trabalho barato e pediu que o servio fosse executado, sem se dar conta de que seria impossvel efetuar o pagamento. Faa um algoritmo para calcular o nmero de gro que o monge esperava receber. 9. Prepare um algoritmo que calcule o valor de H, sendo que ele determinado pela srie 10.H = 1/1 + 3/2 + 5/3 + 7/4 + ... + 99/50. 11.Elabore um algoritmo que determine o valor de S, onde: 12.S = 1/1 - 2/4 + 3/9 - 4/16 + 5/25 - 6/36 ... - 10/100 13.Escreva uma algoritmo que calcule e escreva a soma dos dez primeiros termos da seguinte srie: 2/500 - 5/450 + 2/400 - 5/350 + ... 14.Construa um algoritmo que calcule o valor aproximado de PI utilizando a frmula 15.PI = 3//(H*32), onde: H = 1/1**3 - 1/3**3 + 1/5**3 - 1/7**3 + 1/9**3 - ... 43

_____________________________________________________________________________________________Estruturas de Controle

16.Fulano tem 1,50 metro e cresce 2 cm pr ano, enquanto Ciclano tem 1,10 metro e cresce 3 cm por ano. Construa um algoritmo que calcule e imprima quantos anos sero para que Ciclano seja maior que Fulano. 17.Em uma eleio presidencial, existem quatro candidatos. Os votos so informados atravs de cdigo. Os dados utilizados para a escrutinagem obedecem seguinte codificao: 1, 2, 3, 4 = voto para os respectivos candidatos; 5 = voto nulo; 6 = voto em branco; Elabore um algoritmo que calcule e escreva: total de votos para cada candidato; total de votos nulos; total de votos em branco; percentual dos votos em branco e nulos sobre o total; situao do candidato vencedor sobre os outros trs, no caso, se ele obteve ou no mais votos que os outros somados; Como finalizador do conjunto de votos, tem-se o valor 0. 13.Calcule o imposto de renda de um grupo de contribuintes considerando que os dados de cada contribuinte, nmero do CPF, nmero de dependentes e renda mensal so valores fornecidos pelo usurio. Para cada contribuinte ser feito um desconto de 5% de salrio mnimo por dependente. Os valores da alquota para clculo do imposto so: Renda Lquida Alquota at 2 salrios mnimos isento 2..3 salrios mnimos 5% 3..5 salrios mnimos 10% 5..7 salrios mnimos 15% acima de 7 salrios mnimos 20% O ltimo valor, que no ser considerado, ter o CPF igual a zero. Deve ser fornecido o valor atual do salrio mnimo. 14.Realizou-se uma pesquisa para determinar o ndice de mortalidade infantil em um certo perodo. Construa um algoritmo que leia o nmero de crianas nascidas no perodo e, depois, num nmero indeterminado de vezes, o sexo de uma criana morta (masculino, feminino) e o nmero de meses da vida da criana. Como finalizador, teremos a palavra fim no lugar do sexo da criana. Determine e imprima: a porcentagem de crianas mortas no perodo; a porcentagem de crianas do sexo masculino mortas no perodo; a porcentagem de crianas que viveram dois anos ou menos no perodo.

15.Suponha que exista um prdio sem limites de andares, ou seja, um prdio infinito, onde existam trs elevadores, denominados A, B e C. Para otimizar o sistema de controle dos elevadores, foi realizado um levantamento no qual cada usurio respondia: o elevador que utilizava com maior freqencia; o andar ao qual se dirigia; o perodo que utilizava o elevador, entre: 44

_____________________________________________________________________________________________Estruturas de Controle

M = matutino; V = vespertino; N = noturno.

Construa um algoritmo que calcule e imprima: qual o andar mais alto a ser utilizado; qual o elevador mais freqentado e em que horrio se encontra seu maior fluxo; qual o horrio mais usado de todos e a que elevador pertence; qual a diferena percentual entre o mais usado dos horrios e o menos usado (especificando qual o menos usado); qual a percentagem sobre o total de servios prestados do elevador de mdia utilizao.

45

______________________________________________________________________________________________Estruturas de Dados

Estrutura de DadosMesmo possuindo tipos bsicos para as declaraes de variveis, voc deve ter notado que eles muitas vezes no so suficientes para representar toda e qualquer informao que possa surgir. Portanto, em muitas situaes esses recursos so escassos, o que poderia ser suprido se existissem mais tipos de informao ou, ainda melhor, se esses tipos pudessem ser construdos, criados, medida que se fizessem necessrios.

Agregados HomogneosDa mesma forma que na Teoria dos Conjuntos, uma varivel pode ser interpretada como um elementos e uma estrutura de dados como um conjunto. As variveis compostas homogneas so formadas de variveis com o mesmo tipo primitivo. Os agregados homogneos correspondem a posies de memria, identificadas por um mesmo nome, referenciadas por um ndice, e que possuem um mesmo tipo. Variveis Compostas Homogneas Suponha que voc est dentro de um elevador, para ir a um determinado andar voc deve especificar o seu nmero, isto , em um vetor, voc deve se referenciar por seu ndice para acessar qualquer um de seus elementos.

Declarao Tipo IDENTIFICADOR = vetor [LI .. LF] de ; variveis varivel : IDENTIFICADOR; Onde: LI - representa o limite inicial do vetor; LF - representa o limite final do vetor; - qualquer um dos tipos primitivos, ou ainda um outro tipo que pode ser construdo, o qual veremos adiante.

Primeiramente criaremos um novo tipo e lhe daremos um nome, aps isso podemos us-lo para declarar as variveis que sero utilizados dentro do programa.

46

______________________________________________________________________________________________Estruturas de Dados

Exemplo: Utilizaremos o exerccio de mdia das notas: tipo v_notas = vetor [1..4] de real; variveis notas : v_notas; ndice: inteiro; mdia: real; incio para ndice