Logica de Programacao

132
Lógica de Programação Everton Coimbra de Araújo Ministério da Educação Escola Técnica Aberta do Brasil Universidade Tecnológica Federal do Paraná Cuiabá, 2009

description

Lógica de Programação

Transcript of Logica de Programacao

  • Lgica de

    Programao

    Everton Coimbra de Arajo

    Ministrio da Educao

    Escola Tcnica Aberta do Brasil

    Universidade Tecnolgica Federal do Paran

    Cuiab, 2009

  • Ficha Catalogrfica

    Cuiab, 2009

    Reviso

    Capa (lay out)

    Ilustrao

    Diagramao

    Germano Aleixo Filho

    Marcelo Velasco

    Marcelo Velasco

    Terencio Francisco de Oliveira

    Prof Dr Ana Arlinda de Oliveira - UFMT

    Prof Dr Lucia Helena Vendrusculo Possari - UFMT

    Prof Dr Gleyva Maria Simes de Oliveira - UFMT

    Prof. Dr. Henrique Oliveira da Silva - UTFPR

    Prof. M. Sc. Oreste Preti - UAB/UFMT

    Oreste Preti e Gleyva Maria S. de Oliveira

    Prof Dr Maria Lucia Cavalli Neder - UFMTComisso Editorial

    Designer Educacional

    A663l Arajo, Everton Coimbra de

    Lgica de programao / Everton Coimbra de Arajo.-

    Cuiab : EdUFMT, 2009.

    132 p. : il. ; color.

    Bibliografia: p. 132.

    ISBN

    1.Informtica. 2. Lgica de programao. I. Ttulo

    CDU - 004.422.612

    978-85-61819-62-0

  • Amigo(a) estudante:

    O Ministrio da Educao vem desenvolvendo Polticas e Programas para

    expanso da Educao Bsica e do Ensino Superior no Pas. Um dos caminhos

    encontrados para que essa expanso se efetive com maior rapidez e eficincia

    a modalidade a distncia. No mundo inteiro so milhes os estudantes que

    freqentam cursos a distncia. Aqui no Brasil, so mais de 300 mil os

    matriculados em cursos regulares de Ensino Mdio e Superior a distncia,

    oferecidos por instituies pblicas e privadas de ensino.

    Em 2005, o MEC implantou o Sistema Universidade Aberta do Brasil (UAB), hoje,

    consolidado como o maior programa nacional de formao de professores,

    em nvel superior.

    Para expanso e melhoria da educao profissional e fortalecimento do Ensino

    Mdio, o MEC est implementando o Programa Escola Tcnica Aberta do Brasil

    (e-Tec Brasil). Espera, assim, oferecer aos jovens das periferias dos grandes

    centros urbanos e dos municpios do interior do Pas oportunidades para maior

    escolaridade, melhores condies de insero no mundo do trabalho e, dessa

    forma, com elevado potencial para o desenvolvimento produtivo regional.

    O e-Tec resultado de uma parceria entre a Secretaria de Educao

    Profissional e Tecnolgica (SETEC), a Secretaria de Educao a Distncia (SEED)

    do Ministrio da Educao, as universidades e escolas tcnicas estaduais e

    federais

    O Programa apoia a oferta de cursos tcnicos de nvel mdio por parte das

    escolas pblicas de educao profissional federais, estaduais, municipais e, por

    outro lado, a adequao da infra-estrutura de escolas pblicas estaduais e

    municipais.

    Do primeiro Edital do e-Tec Brasil participaram 430 proponentes de adequao

    de escolas e 74 instituies de ensino tcnico, as quais propuseram 147 cursos

    tcnicos de nvel mdio, abrangendo 14 reas profissionais. O resultado deste

    Edital contemplou 193 escolas em 20 unidades federativas. A perspectiva do

    Programa que sejam ofertadas 10.000 vagas, em 250 plos, at 2010.

    .

    PROGRAMA e-TEC BRASIL

  • Assim, a modalidade de Educao a Distncia oferece nova interface para a

    mais expressiva expanso da rede federal de educao tecnolgica dos

    ltimos anos: a construo dos novos centros federais (CEFETs), a organizao

    dos Institutos Federais de Educao Tecnolgica (IFETs) e de seus cmpus.

    O Programa e-Tec Brasil vai sendo desenhado na construo coletiva e

    participao ativa nas aes de democratizao e expanso da educao

    profissional no Pas, valendo-se dos pilares da educao a distncia,

    sustentados pela formao continuada de professores e pela utilizao dos

    recursos tecnolgicos disponveis.

    A equipe que coordena o Programa e-Tec Brasil lhe deseja sucesso na sua

    formao profissional e na sua caminhada no curso a distncia em que est

    matriculado(a).

    Braslia, Ministrio da Educao setembro de 2009.

  • Caro estudante:

    Os avanos tecnolgicos na rea de informtica e comunicao, associados a

    modelos pedaggicos que so apoiados pelo uso de tecnologia, deram

    origem modalidade de ensino chamada Ensino a Distncia ou, simplesmente,

    EaD.

    A caracterstica desse modelo a separao fsica entre aluno e professor.

    Para suprir a distncia, a interao, entre o aluno e o professor, mediada

    tanto por recursos tecnolgicos quanto pelo material impresso. Nessa

    modalidade de ensino, o material impresso, juntamente com recursos de vdeo,

    videoconferncia e um Ambiente Virtual de Aprendizagem, so as bases

    tecnolgicas, s quais voc ter acesso durante sua formao.

    Todos esses recursos so meios de comunicao entre professor e aluno. Cada

    recurso possui uma caracterstica prpria e necessita de um canal especfico

    de comunicao. Para assistir aos vdeos, participar de videoconferncia ou

    realizar as atividades do Ambiente Virtual de Aprendizagem, voc precisar ter

    acesso a computadores e a internet. Porm, tais recursos tecnolgicos nem

    sempre esto disponveis em tempo integral, por isso a importncia do material

    impresso, que permitir a voc ter acesso ao conhecimento

    independentemente de possuir a sua disposio as tecnologias de informtica

    e comunicao.

    Aliado s atividades presenciais e s atividades a distncia, o material impresso

    ir, tambm, apoi-lo na realizao das atividades de estudos, estimulando-o a

    participar de forma mais ativa em seu processo de ensino-aprendizagem,

    construindo progressivamente o conhecimento de maneira interativa. Assim, o

    professor deixa de ser a nica fonte de informao. O distanciamento fsico

    no ser impedimento para o processo de cooperao e interao entre voc

    e o professor. O educador criar oportunidades para que voc participe de

    forma ativa durante seu processo de aprendizagem. Dessa maneira, voc ser

    parte essencial na construo de seu prprio conhecimento.

    O material foi elaborado visando formao de Tcnicos em Informtica,

    segundo os parmetros do Catlogo Nacional de Cursos Tcnicos. O

    profissional formado dever ter qualificao para atender demanda regional

    em consonncia com as tendncias tecnolgicas. Alm disso, deve estar

    ancorado em um conhecimento cientfico-tecnolgico, de relacionamento

    interpessoal e comunicao oral. Deve tambm ter pensamento crtico e

    racional, capacidade para resolver problemas de ordem tcnica, capacidade

    CURSO TCNICO EM INFORMTICA

  • criativa e inovadora, capacidade de gesto e viso estratgica. Essa base lhe

    tornar competitivo no mercado de trabalho.

    Mas isso somente no suficiente. Voc deve demonstrar: honestidade,

    responsabilidade, adaptabilidade, capacidade de planejamento, ser gil e ter

    capacidade de deciso. Alm de ser possuidor de um esprito crtico, uma

    formao tecnolgica generalista e uma cultura geral slida e consistente.

    Foi pensando nessa formao que equipes de professores da rede pblica

    federal de educao elaboraram seu material. Professores que atuam tanto no

    ensino mdio quanto no ensino superior. Todos profissionais conceituados em

    suas respectivas reas de atuao. O objetivo desses profissionais auxiliar

    voc em sua formao profissional.

    Tanto os recursos didticos pedaggicos, quanto os profissionais envolvidos

    fazem parte do projeto Escola Tcnica Aberta do Brasil, e-Tec Brasil. Um projeto

    que estabelece parceria entre Instituies de Ensino Pblico Federal, no papel

    de formadores, e municpio, ou Estado, que disponibilizam os plos que

    recebero os cursos oferecidos na modalidade de EaD.

    Mas lembre-se: simplesmente ter acesso aos recursos didticos e tecnolgicos,

    alm de ter a disposio uma equipe especializada de profissionais, no

    suficiente. necessrio que esse material seja utilizado intensamente, de forma

    a tornar-se fonte de conhecimento que lhe auxiliar em todos os momentos de

    sua formao.

    Cientes de que esse tambm o seu desejo, a equipe do e-Tec Brasil deseja a

    todos timo processo de aprendizagem.

    Atenciosamente,

    Equipe de formadores do curso de Informtica da

    Universidade Tecnolgica Federal do Paran.

  • SUMRIO Lgica de Programao - Everton Coimbra de Arajo

    CONVERSA INICIAL

    UNIDADE I - PROGRAMAO: ANTES DO INCIO

    Conceitos Bsico

    Descrio Narrativa

    UNIDADE II - TIPOS DE DADOS, VARIVEIS, EXPRESSES, SINTAXE E SEMNTICA

    Tipos de Dados

    Variveis

    Expresses e Operadores

    Sintaxe e Semntica

    UNIDADE III - INTRODUO AOS PSEUDOCDIGOS

    Pseudocdigos

    Endentao

    Declarao de Variveis

    Atribuio de Variveis

    Entrada de Dados

    Sada de Dados

    ............................................................................................................. 9

    ..................................................................................................... 13

    ................................................................................................ 20

    ........................................................................................................ 33

    ................................................................................................................... 35

    ....................................................................................... 37

    ............................................................................................... 41

    ........................................................................................................ 45

    ............................................................................................................. 47

    ....................................................................................... 47

    .......................................................................................... 48

    ................................................................................................... 48

    ....................................................................................................... 49

  • Algumas Situaes

    Pseudocdigos - Estrutura Condicional

    UNIDADE IV - ESTRUTURAS DE REPETIO COM PSEUDOCDIGOS

    Estruturas de Repetio

    Estruturas de Repetio Contada

    Estruturas de Repetio Condicional, com Teste no Incio

    Estruturas de Repetio Condicional, com Teste no Final

    UNIDADE V - CONJUNTOS

    Conjuntos

    Matriz

    Classificao e Pesquisa

    UNIDADE VI - SUBALGORITMOS E REGISTROS

    Subalgoritmos

    Registros

    RETOMANDO A CONVERSA INICIAL

    REFERNCIAS

    .................................................................................................. 49

    ............................................................... 54

    .......................................................................................... 65

    ........................................................................ 65

    ............................... 70

    ................................ 78

    ................................................................................................................. 87

    ........................................................................................................................ 92

    ........................................................................................ 96

    ........................................................................................................ 111

    .................................................................................................................. 121

    .............................................................................. 129

    ..................................................................................................................... 131

  • 9Lgica de Programao - Everton imbra de Arajo Co

    CONVERSA INICIAL

    Caro estudante:

    Neste mdulo, voc ter condies de desenvolver seus conhecimentos sobre

    Algoritmo, pois trataremos aqui dos fundamentos e da prtica desse contedo.

    Voc ter oportunidade, ao longo da leitura das unidades, de perceber que a

    utilizao da linguagem algortmica faz parte de seu cotidiano e

    fundamental para o conhecimento da rea de informtica.

    Nesse sentido, elaboramos uma dinmica de organizao do contedo,

    partindo de uma introduo sobre a temtica, passando pelos conceitos

    fundamentais dela e buscando, por meio de exemplos, sua compreenso

    sobre algoritmo e a importncia deste na formao do tcnico em Informtica.

    Assim, na unidade I voc ser introduzido nos conceitos de lgica, algoritmo,

    dados, informao, processamento de dados e lgica de programao.

    Daremos continuidade a essa iniciao, na unidade II, ao tratarmos de

    conceitos que devem ser conhecidos antes do estudo da programao com o

    uso de pseudocdigos, tais como tipos de dados, variveis e expresses.

    Na unidade III, voc conhecer a programao hipottica muito usada em

    todo o mundo, ou seja, a pseudocdigo, e entrar em contato com a

    representao de algoritmos atravs dessa linguagem e sua abordagem com

    estruturas condicionais.

    Na unidade IV, haver um aprofundamento sobre pseudocdigos, fazendo uso

    de estruturas de repetio.

    Na unidade V sero abordados conjuntos, strings e mtodos de classificao e

    pesquisa.

    Finalmente, na Unidade VI, voc ter oportunidade de conhecer subalgoritmos

    e registro.

    Assim, esperamos que, ao final desta disciplina, voc esteja habilitado a:

    - Desenvolver algoritmos atravs de diviso modular e

    refinamentos sucessivos;

    - Interpretar algoritmos nas formas de pseudocdigo;

    - Desenvolver algoritmos e represent-los por meio de linguagem

    de programao procedural;

  • - Avaliar resultados de testes dos algoritmos desenvolvidos;

    - Detectar e corrigir erros em algoritmos;

    - Integrar mdulos desenvolvidos separadamente.

    Sugerimos que voc dedique tempo suficiente para fazer a leitura, realizar as

    atividades e retirar suas dvidas. Sempre que considerar necessrio, volte ao

    texto, refaa as atividades! No se limite a este material, faa pesquisas,

    converse com professores e colegas. Voc ver que aprender uma

    interessante aventura!

    Bom estudo!

    Everton Coimbra de Arajo

    10 Lgica de Programao - Everton imbra de Arajo Co

  • UNIDADE IPROGRAMAO:

    ANTES DO INCIO

  • 13Lgica de Programao - Everton imbra de Arajo Co

    Nesta unidade, voc estudar alguns conceitos relativos Lgica, Algoritmo, Dados,

    Informao, Processamento de Dados e Lgica de Programao. Estes conceitos e

    observaes objetivam uma sustentao cientfica aos temas propostos.

    Organizamos esse contedo a fim de que voc perceba a importncia de cada

    tema aqui trabalhado para a aprendizagem sobre programao e de como

    efetuar o levantamento e a identificao de componentes necessrios para a

    resoluo de um problema. Alm disso, fizemos uma introduo s tcnicas de

    programao.

    Os problemas que utilizamos nesta unidade voc encontra em seu cotidiano, o

    que poder colaborar para iniciarmos um processo de raciocnio, buscando a

    identificao do problema e de todos os componentes necessrios para sua

    resoluo.

    Inicialmente, a representao de resoluo de algoritmos ser a Descrio

    Narrativa, na qual os passos de resoluo so expressos em linguagem natural,

    como se fossem regras para utilizao de determinado aparelho, um manual.

    Assim, ao final desta leitura esperamos que voc tenha condies de:

    - Definir os fundamentos necessrios para a lgica de programao;

    - Identificar que, para um processamento de dados, preciso que dados sejam

    informados;

    - Verificar que, para chegar a um resultado e fornecer informaes, um proces-

    samento de dados necessrio.

    1. CONCEITOS BSICOS

    Nesta seo, voc ir estudar conceitos que so fundamentais para sua

    formao em Informtica: Lgica, Algoritmo, Dados e Informao, Dados de

    Entrada e Sada, Processamento de Dados e Lgica de Programao.

    1.1. LGICA

    - Voc j ouviu falar em Lgica? No? Mas, certamente j ouviu

    algum responder algo do tipo: ' lgico que eu sei, ou

    lgico que isso no daria certo. No ?

    - Mas ser que, quando damos uma resposta assim, estamos

    tendo pensamento lgico?

    - Voc saberia dizer o que Lgica?

    Escreva, a seguir, o que voc entende por lgica.

  • 14 Lgica de Programao - Everton imbra de Arajo Co

    Pois bem, a palavra lgica vem do grego clssico e foi criada pelo filsofo

    grego Aristteles no sculo IV a.C. para estudar o pensamento humano e distinguir

    interferncias e argumentos certos e errados.

    A Lgica uma cincia de ndole matemtica, fortemente ligada Filosofia.

    tambm a designao para o estudo de sistemas prescritivos de raciocnio, ou

    seja, sistemas que definem como se "deveria" realmente pensar para no errar,

    usando a razo, dedutivamente e indutivamente.

    Assim, um sistema lgico um conjunto de axiomas e regras de inferncia que visam

    representar formalmente o raciocnio vlido, dedutivo ou indutivo.

    Para que voc compreenda melhor o que so esses dois tipos de pensamento e

    como se diferenciam, acompanhe minha explicao e os exemplos.

    O pensamento dedutivo se caracteriza por apresentar concluses que devem,

    necessariamente, ser verdadeiras caso todas as premissas sejam verdadeiras.

    Exemplo: Todo ser humano mortal.

    O homem um ser humano

    Portanto, ele mortal.

    Lembra-se do Sherlock Holmes, do autor Arthur Conan Doyle? As respostas aos

    enigmas policiais eram encontradas por Sherlock mediante pensamento dedutivo,

    que se traduzia na to conhecida frase: "Elementar, meu caro Watson".

    J o pensamento indutivo significa partir de premissas particulares, na busca de

    uma lei geral, universal.

    Por exemplo: O ferro conduz eletricidade

    O ferro metal

    O ouro conduz eletricidade

    O ouro metal

    O cobre conduz eletricidade

    O cobre metal

    Logo: os metais conduzem eletricidade.

    Os indutivistas acreditavam que as explicaes para os fenmenos

    advinham unicamente da observao dos fatos. Por isso eles

    poderiam produzir resultados falsos.

    Por exemplo: O cavalo, o burro e a mula so quadrpedes.

    O cavalo, o burro e a mula so mamferos.

    Logo: Todos os mamferos so quadrpedes.

    Voc saberia dizer o que raciocnio ou pensamento dedutivo e

    indutivo?

    Dedutivo:

    Indutivo:

  • 15Lgica de Programao - Everton imbra de Arajo Co

    Esta induo falsa, pois apresenta duas premissas verdadeiras, no entanto a

    generalizao de concluso falsa.

    Portanto, podemos concluir que

    a Lgica a cincia das formas do pensamento. A Lgica estuda a correo

    do raciocnio, visto que ele a forma mais complexa do pensamento. Podemos

    dizer que a Lgica visa ordem da razo, isto , a razo pode funcionar

    desordenadamente e a lgica estuda e ensina a colocar ordem no

    pensamento.

    Muito bem!

    Agora que voc fez o exerccio, prossiga sua

    leitura da seo 2, que trata dos algoritmos.

    Mas, o que a Lgica tem a ver com

    algoritmos?

    1.2. ALGORITMO

    Agora, ento, voc ter oportunidade de relembrar esse assunto e,

    principalmente, verificar que no h como falar de algoritmos sem antes tecer

    comentrios sobre automao.

    Automao um processo em que uma tarefa deixa de ser desempenhada

    pelo homem e passa a ser realizada por mquinas, no importando se estas

    mquinas so mecnicas ou eletrnicas (SALIBA, 1993)

    Vamos ver como pode ocorrer uma automao?

    Determinada tarefa, para que seja automatizada, deve ter todas as etapas

    conhecidas, e a mquina ou dispositivo que desempenhar este processo dever

    estar apta a garantir sua repetibilidade.

    O objetivo maior da automao que o resultado de uma tarefa possa ser

    Agora, tente voc elaborar um raciocnio dedutivo e outro

    indutivo!

    Dedutivo:

    Indutivo:

    Certamente voc j ouviu falar em algoritmo, no?

    Voc consegue se lembrar o que algoritmo? E automao,

    voc saberia dizer o que ?

  • 16 Lgica de Programao - Everton imbra de Arajo Co

    conhecido ou obtido por vrias vezes, no mesmo intervalo de tempo e com a

    mesma qualidade.

    Exemplos:

    So exemplos de automao os caixas eletrnicos dos bancos, que hoje

    realizam tarefas antes realizadas pelos bancrios, e as funes mecnicas

    de montagem na linha de produo automotiva.

    Observe que cada situao-problema, ou processo para ser solucionada precisa

    seguir algumas etapas que podemos chamar de especificao de sequncia

    ordenada de passos. A esta especificao damos o nome ALGORITMO.

    1.3. DADO E INFORMAO

    Voc saberia dizer o que significa dado em Informtica?

    Podemos dizer que o dado a matria-prima da informao, ou seja, a

    informao composta de um conjunto organizado de dados. O dado puro e

    simples, muitas vezes, confundido com a prpria informao, no carrega

    obrigatoriamente nenhum carter informativo.

    Imagine que cada letra deste texto estivesse solta na

    pgina, ou seja, que as letras no estivessem presas por

    nenhum processo tipogrfico. Ao sacudirmos a pgina, as

    letras cairiam no cho, concorda?

    Os montinhos de letras espalhadas pelo cho conteriam

    todos os dados que constituem a informao deste texto,

    sendo, porm, impossvel constitu-lo novamente apenas

    recolocando as letras sobre o papel. Isso o que pode

    acontecer com um dado puro e simples.

    Veja estes exemplos de algoritmo que voc pode observar no

    seu dia a dia:

    - resolver uma operao matemtica seguindo passos

    at chegar ao resultado final;

    - ligar o forno de micro-ondas seguindo as etapas de

    conectar energia, apertar determinados botes,

    sequencialmente, at que a mquina seja ligada;

    - tomar medicamentos seguindo orientao mdica;

    - fazer receitas culinrias.

    E agora, voc consegue pensar em outros exemplos? Ento

    escreva no espao abaixo pelo menos mais dois exemplos

    de algoritmos que voc encontrou em seu dia a dia.

    a)

    b)

  • 17Lgica de Programao - Everton imbra de Arajo Co

    Cada tipo de informao est associado a determinado conjunto de dados,

    criados especificamente para se adequar aos processos de transmisso da

    informao. Quando falamos, trabalhamos com fonemas que, atravs do sistema

    vocal transmitem informaes, respeitando regras lingusticas e idiomticas.

    Quando escrevemos, trabalhamos com letras que, ao serem ligadas entre si,

    formam palavras (o que j uma informao), que formam frases.

    Um mesmo conjunto de dados pode ser utilizado para representar informaes de

    natureza distinta.

    Veja o exemplo da escrita na lngua portuguesa, que utiliza o alfabeto formado

    por letras, e a escrita na lngua japonesa, que utiliza smbolos.

    H tambm os casos em que a linguagem escrita se socorre do mesmo alfabeto,

    porm com idiomas distintos. Sendo assim, podemos verificar que, apesar de

    utilizar o mesmo alfabeto, a lngua portuguesa distinta das demais lnguas

    (francs, ingls, alemo, etc.). Esse um exemplo de que, quando falamos em

    dados, podemos encontrar um mesmo veculo e um mesmo conjunto de dados,

    com formas de informao totalmente distintas, que dependero apenas das

    tcnicas de unio dos dados.

    Com base em suas reflexes, cremos que j possvel enunciar uma definio que

    atenda ao significado de dado e informao. Vamos s definies?

    Dado: smbolo que expressa a unidade mnima da informao (tomo

    da informao).

    Informao: conjunto de dados reunidos com regras especficas natureza

    da informao.

    1.4. DADOS DE ENTRADA E SADA

    Quando um problema surge em nosso dia a dia,

    geralmente ele ocupa totalmente nossa ateno, e isso

    pode interferir em nossa capacidade de percepo.

    Ai... Tirei zero...

    Ai... Tirei zero...

    Ai... Tirei zero...

    Na ilustrao acima, h uma preocupao fundamental: a mdia baixa na

    avaliao. O estudante tem como foco principal o problema. No h uma

    Este material que voc est lendo foi redigido em lngua

    portuguesa brasileira. O que voc acha que aconteceria se ele

    tivesse que ser utilizado por um estudante que dominasse

    apenas a lngua francesa? O mesmo conjunto de dados

    (alfabeto comum a muitas lnguas) est sendo utilizado, mas,

    nesse caso, haveria transmisso da informao?

  • 18 Lgica de Programao - Everton imbra de Arajo Co

    preocupao com os dados que levaram quela situao.

    Em sua opinio, o que levou o aluno a tirar uma nota abaixo da mdia? Que

    aes ou atitudes anteriores colaboraram para que obtivesse aquele resultado?

    Visualizando o problema e os componentes causadores dele, podemos identificar

    dados que auxiliaro em sua resoluo. H situaes em que esta identificao

    imediata, apesar de no percebermos. Porm, em situaes mais complexas, um

    exaustivo trabalho de identificao de probabilidades e condies se faz

    necessrio.

    A estes componentes, probabilidades e condies damos o nome de dados de

    entrada, pois por meio do processamento destes dados, com o uso de um

    algoritmo, que chegamos soluo do problema, que gerar uma sada de

    dado, ou seja, a resposta, informao ou resultado desejado.

    1.5. PROCESSAMENTO DE DADOS

    A informao pura e simples nada significa se no for transmitida. Ao mesmo tempo,

    s podemos afirmar a existncia de uma comunicao se houver informao para

    ser enviada.

    Ento, observe os conceitos de comunicao e informao:

    Comunicao pode ser considerada o intercmbio de informao entre

    sujeitos ou objetos.

    Informao o resultado do processamento, manipulao e organizao de

    dados de tal forma que represente uma modificao (quantitativa ou

    qualitativa) no conhecimento do sistema (pessoa, animal ou mquina) que a

    recebe.

    Por isso, embora sejam distintas em suas definies, s podemos justificar uma com

    a existncia da outra.

    Podemos dizer que a informao s existe aps o trmino de um processo que

    envolve:

    - A elaborao dela mesma;

    - A transmisso dos dados que formam a informao;

    - A absoro, por outra entidade diferente daquela que originou a informao,

    de todos os dados organizados de maneira idntica informao original.

    Voc saberia dizer qual a relao entre informao e

    comunicao? Qual o sentido da informao se ela no puder

    ser comunicada? E qual o sentido da comunicao se no

    houver informao?

  • 19Lgica de Programao - Everton imbra de Arajo Co

    O universo dos conjuntos de dados associados a um veculo de comunicao

    extenso. Para que a transmisso da informao seja realizada com sucesso

    necessrio:

    - que a entidade geradora saiba codificar a informao com o

    conjunto de dados escolhidos;

    - que a entidade receptora saiba decodificar a informao, por meio

    do conjunto de dados escolhidos para a transmisso.

    1.6. LGICA DE PROGRAMAO

    Quando falamos em lgica de programao, ns nos remetemos sequncia de

    instrues.

    Voc sabe o que instruo?

    Instruo pode ser considerada um conjunto de regras ou normas definidas

    para a realizao de uma tarefa. Em informtica, instruo a informao que

    indica a um computador uma ao elementar a executar.

    Nas disciplinas de programao, quando nos dado um problema, o primeiro

    passo determinar uma sequncia de instrues tal que, fornecidos os dados de

    entrada, por meio da execuo da sequncia de instrues alcancemos como

    sada a soluo do problema.

    Agora, para que voc exercite seus conhecimentos sobre lgica

    de programao, vamos lhe propor um desafio, por meio de

    um estria muito conhecida:

    Um senhor est numa das margens de um rio com uma raposa,

    uma dzia de galinhas e um saco de milho. Ele pretende

    atravessar o rio com sua carga, num barco que s comporta ele e parte de sua

    carga. Ele no pode deixar a raposa com as galinhas, nem as galinhas com o

    milho. O que fazer para atravessar o rio e chegar outra margem com a

    raposa, as galinhas e o milho?

    Ajude o senhor a resolver esse empasse! Porm, tente encontrar a resposta

    antes de prosseguir a leitura.

    Descreva-a no quadro abaixo:

  • 20 Lgica de Programao - Everton imbra de Arajo Co

    Voc conseguiu chegar resposta? Ento, parabns! Caso contrrio,

    acompanhe o caminho por mim percorrido para solucionar o problema.

    Geralmente, os estudantes tentam partir para a resoluo imediata, alguns

    chegam a desenhar duas margens separadas por um rio e os demais personagens

    tentando encontrar a soluo. Poucas so as situaes em que ocorre a

    preocupao em avaliar a essncia do problema, ou seja, as caractersticas de

    cada personagem, os dados de entrada.

    A identificao do problema relativamente simples, o prprio texto a retrata

    muito bem, sem necessidade de informao complementar.

    Os componentes fornecidos tambm so suficientes, bastando uma anlise

    detalhada caracterstica de cada um deles.

    J os dados de sada, neste caso, no so informaes, e sim uma maneira de

    resolver o problema proposto.

    Avaliando as caractersticas de cada componente, identificamos que,

    evidentemente, o senhor no pode deixar em uma das margens, sozinhos, a

    raposa e as galinhas. Fatalmente, a raposa comeria as galinhas. Nem as galinhas e

    o milho, pois as galinhas comeriam os gros.

    A questo escrever uma sequncia de passos (um algoritmo) que processe estes

    dados e oriente o senhor a realizar seu intento, sem que haja perda.

    bvio que, na primeira viagem, ele no pode levar a raposa, pois as galinhas

    comeriam o milho.

    Tambm no pode levar o milho, pois a raposa comeria as galinhas.

    Como resolver esse problema?

    Veja o algoritmo (sequncia de

    passos) identificado (dados de sada)

    para a resoluo do problema:

    Atravesse as galinhas

    Retorne sozinho

    Atravesse a raposa

    Retorne com as galinhas

    Atravesse o milho

    Retorne sozinho

    Atravesse as galinhas.

    s s

    2. DESCRIO NARRATIVA

    O que voc imagina que seja descrio narrativa?

    Ao depararmos com um problema, cuja necessidade de automao iminente,

  • 21Lgica de Programao - Everton imbra de Arajo Co

    precisamos ter certeza de que o compreendemos e de que sabemos o que se

    espera da soluo para depois, sim, iniciarmos o trabalho de programao.

    No h como aceitar uma resposta sem sabermos se ela que se deseja. Para

    isso, quando essa situao ocorre, uma ampla anlise do problema em questo

    se faz necessria.

    Por meio desta anlise, possvel identificar alguns dos passos que devem ser

    seguidos e respeitados para que seja possvel a resoluo da situao-problema.

    Esses passos compem a tabela usada para estudo de um problema e

    consequentemente serviro como base para a construo da Descrio Narrativa

    de como este problema deve ser resolvido.

    Esta tabela e estes passos sero amplamente discutidos e exemplificados na

    sequncia.

    Entretanto, antes disso, vale a pena observarmos que uma das maiores

    dificuldades encontradas pelos estudantes na disciplina de algoritmos a

    interpretao de texto.

    No conseguir identificar aquilo que se pede (problema), o que se espera obter

    (dados de sada), o que ser necessrio para o processamento (dados de

    entrada) e a maneira de processar esses componentes dificulta muito o processo

    de resoluo.

    Portanto, aproveitamos para destacar a importncia do exerccio dirio da leitura,

    seja no contexto escolar, seja no profissional, seja no lar. Mediante o hbito da

    leitura, firmamos ainda mais a compreenso ou interpretao do que lemos e

    essas competncias so fundamentais para todas as reas do conhecimento, no

    somente quando tratamos da Lngua Portuguesa, como equivocadamente

    pensam muitos estudantes.

    Nos casos descritos a seguir nos prximos tpicos, por exemplo, voc precisar

    interpretar o texto para identificar os elementos necessrios sua resoluo.

    Portanto, exercite a leitura e ver como isso poder ajud-lo no somente em

    informtica, mas em todas as reas do conhecimento, ok?

    2.1. RESOLUES SEQUENCIAIS

    Agora, observando o exemplo abaixo, vamos verificar se o texto que traz o

    problema (enunciado) teve uma correta interpretao. Para isso, propomos o

    preenchimento de uma tabela como mostrada a seguir.

    PROBLEMA I

    De trs prisioneiros que estavam em crcere, um tinha viso normal, o segundo

    tinha apenas um olho e o terceiro era cego. Os trs eram, pelo menos, de

    inteligncia mdia.

    O carcereiro disse aos prisioneiros que, de um jogo de trs chapus brancos e

    dois vermelhos, escolheria trs e os colocaria na cabea deles. Cada um deles

  • 22 Lgica de Programao - Everton imbra de Arajo Co

    estava proibido de ver a cor do chapu em sua prpria cabea.

    Reunindo-os, o carcereiro ofereceu a liberdade ao prisioneiro com viso

    normal se ele fosse capaz de dizer a cor do chapu que tinha na cabea.

    O prisioneiro confessou que no podia dizer e se retirou.

    A seguir, o carcereiro ofereceu a liberdade ao prisioneiro que s tinha um olho

    na condio de que ele dissesse a cor de seu chapu.

    O prisioneiro confessou que tambm no sabia diz-lo e tambm se retirou.

    O carcereiro no se deu o trabalho de fazer a idntica proposta ao prisioneiro

    cego, mas insistncia deste, concordou em dar-lhe a mesma oportunidade.

    O prisioneiro cego abriu um amplo sorriso e disse: No necessito da minha viso.

    Pelo que meus amigos disseram, vejo claramente que meu chapu branco.

    O Problema

    Soluo

    esperada

    Dados de

    entrada

    Dados de

    sada

    Etapas

    encontradas

    De trs prisioneiros, verificar qual ou quais identificam a cor do

    chapu posto em sua cabea, sem olh-lo.

    Cada preso deve identificar a cor do

    chapu que tem em sua cabea.

    Existem cinco chapus: trs brancos e dois vermelhos.

    Observaes complementares

    Detalhamento dos Dados de Entrada

    Chapus

    Existem duas cores possveis entre os cinco existentes

    Neste problema em particular, no se obtm dados ou

    informaes ao seu trmino, apenas a resoluo do

    problema, que a identificao da cor do chapu sobre a

    cabea do prisioneiro.

    - Colocar na cabea de cada preso um chapu;

    - Escolher um dentre os trs prisioneiros para perguntar a cor do

    chapu sobre sua cabea;

    - Efetuar a pergunta para todos.

    1. Ponha os chapus na cabea dos presos;

    2. Pergunte ao primeiro preso a cor de seu chapu;

    3. Pergunte ao segundo preso a cor de seu chapu;

    4. Pergunte ao terceiro preso a cor de seu chapu;

    Descrio

    Narrativa da

    soluo

    encontrada

    Tabela I: Interpretao do problema I

  • 23Lgica de Programao - Everton imbra de Arajo Co

    A tabela apresentada no regra, nem pr-requisito para resoluo de

    algoritmos, porm pode ser vista como uma tima ferramenta para apoio ao incio

    de um aprendizado to exigente como Programao.

    Atente bem a cada um de seus itens, tente identificar a real importncia de eles

    existirem. Caso identifique novos itens relevantes, inclua-os. Caso acredite que

    nem todos so necessrios para a resoluo de seus algoritmos, retire-os. Lembre-

    se de que uma ferramenta deve ter o propsito de auxiliar, e no dificultar. No

    entanto, ela s poder auxiliar se voc souber como utiliz-la.

    Observe, no problema anterior, que a escolha de quem ser interrogado antes faz

    parte do problema, at de forma racional, pois primeiro se pergunta para quem

    tem mais condies visuais, assumindo-se que talvez, por ter viso total, ter

    condies de identificao.

    Poder ser notado que a resoluo deste algoritmo no est diretamente ligada

    aos passos que devem ser percorridos, mas sim ao raciocnio lgico do terceiro

    preso.

    Sendo assim, vejamos o raciocnio utilizado por ele para saber seguramente a cor

    do chapu em sua cabea.

    a) O primeiro prisioneiro s poderia ter visto na cabea dos outros dois as seguintes

    combinaes de chapus:

    A primeira possibilidade est descartada, pois ele teria acertado, uma vez que s

    existiam dois chapus vermelhos. Sendo assim, restaram as trs ltimas.

    Voc percebeu que o preenchimento desta tabela facilita a

    compreenso dos elementos que compem o problema? E voc

    j identificou que dados levaram o prisioneiro cego a identificar

    qual a cor do chapu lhe foi colocado sobre a cabea?

  • 24 Lgica de Programao - Everton imbra de Arajo Co

    b) O segundo prisioneiro, tendo em vista as possibilidades que restaram, s poderia

    ter visto:

    Como a primeira e a terceira so iguais, ele s pode ter visto vermelho ou branco.

    Se ele tivesse visto vermelho, teria certeza de que seu chapu era branco, pois se

    fosse vermelho, o primeiro teria acertado. Logo, ele s poderia ter visto chapu

    branco no terceiro prisioneiro; da sua dvida: o dele seria branco ou vermelho?

    c) Foram essas as concluses que o terceiro tirou para dizer que o chapu dele

    era branco.

    Voc deve ter percebido que o terceiro prisioneiro usou a lgica, conceito j

    estudado nesta unidade, para responder acertadamente sobre a cor de seu

    chapu, ou seja, baseando-se nos dados que tinha, ordenou o raciocnio e

    chegou resposta.

    A situao exposta neste exemplo reflete o que voc precisar sempre ter em

    mente:

    necessrio saber resolver o problema antes de usar ferramentas para

    faz-lo.

    O programador tem que ter total domnio do problema e do ambiente,

    pois s desta maneira ele poder aplicar linguagens de programao e

    outras ferramentas que o auxiliem a resolv-los.

    Nos problemas resolvidos, h grande possibilidade de maior detalhamento.

    Para isso, necessrio sempre um estudo pormenorizado do ambiente em que se

    deseja promover a automao. Os exerccios descritos e resolvidos tratam os

    problemas de uma forma generalizada, porm, se durante a leitura e aplicao

    voc encontrar particularidades que devam ser tratadas em decorrncia de novo

    ambiente, faa-o como exerccio de abstrao.

    O exemplo anterior apresentou um pequeno problema, com

    uma nica possibilidade de soluo, no havendo condies

    ou pr-requisitos para tomar um caminho ou outro, ou ainda

    encontrar uma situao em que inviabializaria a resoluo do

    problema. A este tipo de resoluo, d-se a caracterstica de

    sequencial, pois cada passo ocorre um aps o outro, sem

    desvio.

  • 25

    2.2. RESOLUES CONDICIONAIS

    No difcil imaginar o que so resolues condicionais, sim?

    O prprio nome nos remete ao conceito. Resolues condicionais so necessrias

    quando, diante de uma nova situao, temos que lidar com condies para

    que determinada tarefa seja desempenhada.

    A identificao destas condies faz parte da identificao do problema e, por isso,

    muitas vezes deparamos com a dificuldade de encontr-las e de como resolv-las.

    O exemplo a seguir tem a caracterstica de uma estrutura condicional, veja:

    PROBLEMA II

    O governo federal implantou um plano de apoio s famlias de baixa renda,

    que consiste na entrega de cesta bsica. Foi determinado um local para

    distribuio destas cestas, onde se encontra uma pessoa que solicita algumas

    informaes para cada cidado que para l se dirige. Sendo identificada a

    veracidade das informaes, entregue uma cesta bsica a cada cidado.

    Tabela II: Interpretao do problema II

    O Problema

    Soluo

    esperada

    Dados de

    entrada

    Dados de

    sada

    Etapas

    encontradas

    Entregar cestas bsicas populao com baixa renda.

    Observaes complementares

    Detalhamento dos Dados de Entrada

    - No so todos que tm direito cesta bsica;

    - Deve-se, atravs de perguntas, identificar se o cidado tem

    direito, ou no, cesta bsica.

    Entrega de cesta bsica apenas para quem realmente necessite.

    Questionrio

    Conjunto de perguntas que permitiro a identificao da

    necessidade, ou no, de cesta bsica

    Se for identificada a necessidade de cesta bsica, deve

    ser entregue ao cidado, caso contrrio, deve ser dito a

    ele que no possui direito.

    Lgica de Programao - Everton imbra de Arajo Co

    - Solicitar ao cidado o preenchimento do questionrio;

    - Avaliar o questionrio e identificar a necessidade;

    - Proceder com o cidado de acordo a avaliao obtida

    pelo questionrio.

  • 26 Lgica de Programao - Everton imbra de Arajo Co

    Descrio

    Narrativa da

    soluo

    encontrada

    1. Entregar questionrio para cidado preencher;

    2. Avaliar o questionrio preenchido;

    3. Se o cidado necessitar de cesta bsica, ento proceda

    entrega;

    4. Se o cidado no necessitar de cesta bsica, ento

    informe que no tem direito.

    No problema exposto acima, o enunciado praticamente esclarece todas as

    dvidas e expe todos os passos a serem cumpridos para chegarmos soluo,

    bastando apenas uma especial ateno ao texto, para, assim, a interpretao ser

    perfeita.

    O objetivo entregar cesta bsica s famlias de baixa renda. Mas qual famlia

    de baixa renda? Como saber disso?

    Neste caso, no interessa as particularidades, pois o texto diz que as informaes

    sero solicitadas por um responsvel e a ele compete esta identificao, cabendo

    a seu programa apenas trabalhar com a informao passada pelo responsvel.

    Uma vez identificado que a famlia de baixa renda, entrega-se a cesta. Caso

    contrrio, apenas informa quais famlias no tm direito cesta bsica.

    2.3. RESOLUES COM PONTOS DE REPETIO

    a) Repetio contada

    Sem dvida, pudemos perceber situaes condicionais no exemplo anterior, mas

    ainda existem ocasies em que determinado problema, para ser resolvido,

    necessita de um processo que pode se repetir por vrias vezes, podendo esta

    quantidade ser predeterminada ou condicional, e isso tambm deve ser

    trabalhado. A esta caracterstica dado o nome de repetio.

    Veja o exemplo:

    PROBLEMA III

    Em um instituto de pesquisa voltado criao de pinguins, foi levantada a

    temperatura de todos os dias do ms de novembro. Encontre a quantidade de

    dias com temperatura positiva, a quantidade de dias com temperaturas

    negativa, alm da mdia da temperatura nos dias quentes.

    Tabela III: Interpretao do problema III

    O ProblemaObservaes complementares

    Encontrar a quantidade de dias de novembro com

    temperatura positiva e negativa, alm da mdia de

    temperatura nos dias em que esta foi positiva.

    - O ms de novembro tem 30 dias;

    - Nem todas as temperaturas obrigatoriamente so positivas

    ou negativas.

  • 27Lgica de Programao - Everton imbra de Arajo Co

    Soluo

    esperada

    Dados de

    entrada

    Dados de

    sada

    Etapas

    encontradas

    Detalhamento dos Dados de Entrada

    Temperatura

    - Quantidade de dias com temperatura positiva;

    - Quantidade de dias com temperatura negativa;

    - Mdia da temperatura nos dias positivos.

    - Solicitar temperatura para cada dia;

    - Identificar se a temperatura positiva ou negativa;

    - Somar as mdias positivas e efetuar o clculo da mdia.

    Apresentao da quantidade de dias do ms de novembro

    com temperatura positiva e negativa, alm da mdia de

    temperatura nos dias em que a mesma foi positiva.

    Deve ser verificado se positiva ou negativa.

    Descrio

    Narrativa da

    soluo

    encontrada

    1. Solicitar temperatura para cada dia do ms de novembro;

    2. Se a temperatura informada for positiva, deve-se som-la

    acumulando esta soma, e tambm somar, acumulando, a

    quantidade de dias com temperatura positiva;

    3. Se a temperatura informada for negativa, deve-se somar e

    acumular a quantidade de dias com temperatura

    negativa;

    4. Obtidas todas as temperaturas, deve-se informar a mdia

    delas em dias de temperatura positiva.

    Este problema interessante, pois trata uma situao que se repete um nmero

    de vezes conhecido, o que chamamos de repetio contada.

    Nem sempre o problema traz a quantidade de vezes que um processo se repetir.

    Normalmente essa informao vem de forma implcita, como neste texto.

    Voc observou que no foi dito quantas vezes preciso solicitar a temperatura?

    Mas voc viu que foi dito que a situao se passa em novembro, ficando mais

    fcil definir a quantidade de repeties, no ?

    Um outro detalhe que no pode passar despercebido que a mdia desejada

    no de todas as temperaturas, apenas das positivas. Logo, necessrio saber

    quando a temperatura positiva e, quando o for, somar estes valores.

    Observe que no podemos, alm disso, dividir este valor pela quantidade de

    temperatura, apenas pela quantidade identificada como positiva.

    Outra solicitao a quantidade de dias negativos. Esta a mais fcil, pois j

    identificamos a quantidade de dias positivos para chegar mdia e temos o total

  • 28 Lgica de Programao - Everton imbra de Arajo Co

    dos dias. Basta deduzirmos que os negativos so o resultado de uma subtrao

    entre o total de dias e os dias com temperatura positiva.

    b) Repetio contada e condicional - aninhadas

    Para voc verificar como ocorre uma repetio contada e condicional

    aninhada, acompanhe o problema a seguir:

    PROBLEMA IV

    Uma vincola deseja saber o percentual de vinho branco seco vendido durante

    determinado ms. So vrios os tipos de vinho comercializados, assim como so

    vrios os clientes da empresa. A quantidade desejada se refere venda total

    da vincola no ms em referncia.

    Por questes da estrutura de como os dados so utilizados neste algoritmo,

    deve-se, para cada dia, verificar cliente por cliente, os tipos de vinho e

    respectiva quantidade comprada.

    Tabela IV: Interpretao do problema IV

    O Problema Observaes complementares

    Identificar o percentual de vinho branco seco vendido em

    determinado ms.

    - No se sabe qual o ms se deseja fazer a verificao;

    - Cada cliente pode comprar vrios tipos de vinho.

    Soluo

    esperada

    Dados de

    entrada

    Detalhamento dos Dados de Entrada

    Apresentao do percentual que representa a venda de vinho

    branco seco, perante toda a venda de determinado ms.

    - Ms

    - Cliente

    - Tipo do vinho e quantidade comprada por cada cliente

    Deve ser solicitado antes do cliente, o tipo de

    vinho e a quantidade comprada por cliente, pois

    o ms que identifica a quantidade de vezes que

    deve ser verificada a venda.

    Dados de

    sada- Percentual de vinho branco seco vendido no ms

  • 29Lgica de Programao - Everton imbra de Arajo Co

    Etapas

    encontradas

    - Identificar o ms em que se deseja fazer esta pesquisa;

    - Identificar para cada dia os clientes que compraram vinhos;

    - Identificar a quantidade e tipo de vinho comprados por

    cliente;

    - Saber que, para cada tipo de vinho comprado, se deve

    verificar se o desejado para a pesquisa: Vinho Branco

    Seco. Caso seja, deve-se somar a quantidade informada,

    para, ao final, fazer verificao do percentual;

    - Devem-se somar todos os vinhos comprados por todos os

    clientes, pois o percentual dever ser encontrado sobre o

    total comercializado;

    - Calcular e informar o percentual desejado.

    Descrio

    Narrativa da

    soluo

    encontrada

    1. Solicitar o ms em que se deseja fazer a pesquisa

    2. Solicitar, para cada dia do ms, os clientes que compraram

    vinhos na vincola.

    3. Solicitar, para cada cliente, o tipo de vinho e a quantidade

    comprada.

    4. Se o tipo de vinho for Branco e Seco, deve-se acumular a

    quantidade informada.

    5. Para cada tipo de vinho informado, independentemente de

    ele ser do tipo desejado para pesquisa ou no, deve-se

    acumular a quantidade.

    6. Aps a informao do tipo e quantidade comprada pelo

    cliente, deve-se verificar se o cliente comprou mais vinho.

    7. Caso a resposta seja positiva, deve-se retornar ao item 3

    Caso contrrio, deve-se verificar se h mais clientes que

    compraram vinho neste dia.

    8. Caso a resposta seja positiva, deve-se retornar ao item 2.

    Caso contrrio, deve-se prosseguir.

    9. Uma vez encontrado todos os valores, deve-se efetuar o

    clculo do percentual referente s vendas de Vinho Branco

    Seco e inform-lo ao usurio.

    interessante observamos que, neste caso, o nico lao repetitivo que se pode

    chamar de repetio contada o mais externo, o que se referencia aos dias do

    ms utilizado para a pesquisa.

    Aos laos internos denominamos de laos condicionais, pois sua continuidade

    depende de uma situao que nem sempre se conhece, mas se pode prever. H

    casos em que esta condio alcanada por meio de processos do prprio

    algoritmo (como em uma repetio contada).

    SABER M

    Este exerccio nos mostra uma situao um pouco mais

    curiosa que os anteriores: h processos repetitivos

    dentro de um processo repetitivo. A esta caracterstica

    damos o ttulo de repetio aninhada.

  • 30 Lgica de Programao - Everton imbra de Arajo Co

    H casos em que esta condio alcanada em decorrncia de uma interao

    com o usurio, como ocorre no exemplo, em que se pergunta se o cliente comprou

    ou no mais vinho. Isso aps a avaliao total da primeira interao do lao.

    Chegamos ao final dessa unidade, em que voc teve a

    oportunidade, na seo de Conceitos Bsicos, de identificar o

    que Lgica e a importncia desse conceito para aprender

    algoritmo. Voc estudou o conceito de algoritmo e

    automao. Pde verificar o que dado e informao e a

    relao entre esses dois conceitos.

    Voc estudou sobre dado de entrada e de sada e verificou como

    importante no observar o problema em si, mas os componentes, as

    probabilidades e as condies para sua resoluo. No item Processamento

    de Dados, voc observou a relao entre comunicao e informao. Em

    Lgica de Programao voc viu o que instruo e como a execuo da

    sequncia de instrues permite chegar resoluo do problema.

    Na seo 2 - Descrio Narrativa - voc pde conhecer um pouco sobre

    linguagem e a importncia da leitura para identificar um problema. No item

    Resolues Sequenciais, por meio de exemplos, voc pde verificar os

    processos para chegar soluo de um problema.

    No item Resolues Condicionais, voc observou que a identificao das

    condies faz parte da identificao do problema e que a resoluo deste

    depende de verificar quais so essas condies.

    No item Resolues com Pontos de Repetio, voc verificou que, alm das

    situaes condicionais, um processo pode se repetir vrias vezes e esta

    quantidade pode ser predeterminada ou condicional.

    No item Repetio Aninhada, voc teve oportunidade de verificar que

    processos repetitivos podem ocorrer dentro de um processo repetitivo.

    Voc deve ter percebido, pelo estudo dessa unidade, que falamos um

    pouco sobre os conceitos bsicos que envolvem as tcnicas de

    programao. So noes que precisam ser compreendidas de modo

    significativo para uma futura compreenso de toda a lgica envolvida nos

    processos de programao na rea da Informtica.

    Espero que voc tenha tido condies de observar que, por exemplo, a

    descrio narrativa uma maneira simples de se programar, por isso voc

    deve ter identificado que, se voc faz descries narrativas todos os dias,

    voc capaz de programar, sim?

    Bem, agora que voc j teve contato com as primeiras conceituaes,

    podemos dar um passo adiante!

    Realmente, espero que nossa conversa nesta unidade tenha fornecido a

    voc os subsdios mnimos para continuidade do trabalho! Mas, se ainda

    restam dvidas, leia esta unidade quantas vezes julgar necessrio.

    Lembre-se sempre que voc capaz!

    At a Unidade II!

  • UNIDADE IITIPOS DE

    DADOS, VARIVEIS,

    EXPRESSES, SINTAXE

    E SEMNTICA

  • 33Lgica de Programao - Everton imbra de Arajo Co

    Na unidade anterior, buscamos introduzir voc no campo do raciocnio lgico e

    de algumas ferramentas para resoluo de problemas.

    Nesta segunda etapa, voc ter contato com alguns conceitos que deve

    conhecer antes de iniciar a programao com uso de pseudocdigos: tipos de

    dados, variveis e expresses. Depois disso, passaremos a estudar conceitos,

    exemplos e a prtica de programar, usando pseudocdigo para resoluo de

    algoritmos.

    Assim, por meio do estudo desta unidade esperamos que voc seja capaz de:

    - Compreender o que so e quais so os tipos de dados bsicos;

    - Definir e compreender o uso de variveis;

    - Conhecer a definio e o correto uso de expresses e operadores;

    - Compreender, identificar e aplicar sintaxe e semntica.

    Salvetti & Barbosa (1998) ressaltam que um programa de computador descrito

    em uma linguagem de programao. Geralmente, cada linguagem de

    programao tem seus prprios tipos de dados, isto , conjunto de valores,

    operaes e relaes j implementadas (disponveis para uso). Na

    implementao surge o conceito de domnio, isto , da limitao do conjunto de

    valores dos elementos representados.

    Os tipos de dados que sero tratados nesta sesso so classificados de acordo

    com o tipo de informao contida neles. Lembramos que a classificao

    apresentada aqui no se aplica a nenhuma linguagem de programao

    especfica, pois a idia mostrar, de forma sintetizada, os padres utilizados na

    maioria das linguagens.

    2.1.1. DADOS NUMRICOS

    Os dados numricos so divididos, basicamente, em dois grandes conjuntos:

    inteiros e reais. Veremos nas definies que tudo que foi aprendido nas aulas

    bsicas de matemtica, totalmente utilizado no conceito destas duas classes de

    tipos de dados numricos.

    Nmeros inteiros so aqueles que no possuem componentes decimais ou

    fracionrios, podendo ser positivos ou negativos.

    Esse fcil! Quer ver alguns exemplos?

    Vamos l!

    36 um nmero inteiro positivo

    0 um nmero inteiro

    - 8 um nmero inteiro negativo

    2.1. TIPOS DE DADOS

  • 34 Lgica de Programao - Everton imbra de Arajo Co

    Os dados de tipo Real so aqueles que podem possuir componentes decimais ou

    fracionrios, podendo tambm ser positivos ou negativos.

    Bem, agora vejamos...

    Podemos citar como exemplos de dados de tipo real:

    36.01 um nmero real positivo com duas casas decimais

    166. um nmero real positivo com zero (nenhuma) casa decimal

    - 18.8 um nmero real negativo com uma casa decimal

    0.0 um nmero real com uma casa decimal

    0. um nmero real com zero (nenhuma) casa decimal.

    importante observar que h uma diferena entre 0, que um dado do tipo inteiro,

    e 0. ou 0.0, que so dados do tipo real. Portanto, a simples existncia do ponto

    decimal serve para diferenciar um dado numrico do tipo inteiro de um tipo real.

    2.1.2. DADOS LITERAIS

    O que um dado literal? Voc saberia dizer?

    O tipo de dados literal, conforme Saliba (1993), pode ser definido como

    constitudo por uma sequncia de caracteres com letras, dgitos e/ou smbolos

    especiais. Este tipo de dado tambm muitas vezes chamado de

    alfanumrico, cadeia de caracteres ou, ainda, String.

    Usualmente, os dados literais so representados nos algoritmos pela coleo de

    caracteres, delimitada em seu incio e trmino com o caractere aspas ().

    comum, em algumas linguagens, a diferenciao entre a representao de um

    nico dado literal, que chamado de caractere (por exemplo: 'A') e um conjunto

    de caracteres, chamado de String (por exemplo: Ol, Mundo). Note que, no

    exemplo de caractere, foram utilizadas aspas simples (apstrofo). J no exemplo

    de string, aspas duplas. interessante esta diferenciao, pois, para algumas

    linguagens, ela necessria (por exemplo C e Java).

    O dado do tipo literal possui um comprimento dado pelo nmero de caracteres

    nele contido. Veja os exemplos:

    "QUEM ?" - Literal de comprimento 5

    " " - Literal de comprimento 1

    "cOmO !?#" - - Literal de comprimento 8

    "AbcDEFghi" - - Literal de comprimento 9

    "4+5-1=" - Literal de comprimento 6

    "1" - Literal de comprimento 1

    Ateno aos detalhes!

    Perceba que 1.2 representa um dado do tipo LITERAL de comprimento 3,

    constitudo pelos caracteres 1, . e 2, diferente de 1.2 que um dado do tipo

    REAL.

  • 35Lgica de Programao - Everton imbra de Arajo Co

    2.1.3. DADOS LGICOS

    So caracterizados, como tipos lgicos, os dados com valor verdadeiro e falso,

    ressaltando que este tipo de dado poder representar apenas um dos dois

    valores. Ele chamado por alguns de tipo booleano, devido contribuio do

    filsofo e matemtico ingls George Boole na rea da lgica matemtica.

    Para facilitar a citao de um dado do tipo lgico e diferenciao entre nomes

    de variveis, alguns autores/professores apresentam estes valores delimitados pelo

    caractere ponto (.).

    Como exemplo deste tipo de dados, temos os valores: .Falso. (para o valor lgico:

    falso) e .Verdadeiro. (para o valor lgico: verdadeiro). Observe que isso no

    regra, apenas conveno para alguns.

    2.2. VARIVEIS

    Para Lopes & Garcia (2002), uma varivel um local na memria principal, isto ,

    um endereo que armazena um contedo.

    Para facilitar a programao, permitido que demos nome a esse endereo. O

    contedo de uma varivel pode ser de um dos vrios tipos apresentados em

    passo anterior.

    Para Forbellone & Eberspacher (2000), um dado classificado como varivel

    quando tem a possibilidade de ser alterado em algum instante no decorrer do

    tempo, ou seja, durante a execuo do algoritmo, em que utilizado, o valor do

    dado sofre alterao ou o dado dependente da execuo em certo momento

    ou circunstncia.

    Uma vez definidos o nome e o tipo de uma varivel, no podemos alter-los no

    decorrer de um algoritmo. Por outro lado, o contedo da varivel um objeto de

    constante modificao no decorrer do programa, de acordo com o fluxo de

    execuo deste.

    Quando formos dar nome s variveis, faz-se necessrio seguirmos algumas regras.

    bom ressaltar que estas regras iro variar de acordo com a linguagem escolhida

    como ferramenta, mas a grande maioria adota as seguintes regras genricas:

    - O primeiro caractere uma letra;

    - Se houver mais de um caractere, s poderemos usar: letra ou algarismo;

    - Nomes de variveis escritas com letras maisculas sero diferentes de

    letras minsculas;

    - Nenhuma palavra reservada ferramenta (linguagem de

    programao) poder ser usada como nome de uma varivel;

    - Procure dar nomes representativos para a varivel. Lembre-se de que ao

    ler seu nome, importante saber o que ela contm.

  • 36 Lgica de Programao - Everton imbra de Arajo Co

    As variveis so definidas no incio, pois isso permite a alocao (reserva) de uma

    rea na memria (endereo) para a varivel. Outro objetivo da declarao de

    variveis que, aps a declarao, o algoritmo sabe os tipos de operao que

    cada varivel pode realizar. Algumas operaes s podem ser realizadas com

    variveis do tipo inteiro. Outras s podem ser realizadas com variveis dos tipos

    inteiro ou real, e outras s com variveis de caractere, entre outras que sero vistas

    neste livro.

    2.2.1. DECLARAO DE VARIVEIS

    Para ilustrar uma declarao de variveis, necessrio que sejam nominados os

    tipos de dados que encontramos nos problemas. Vejamos alguns tipos j vistos:

    Inteiro int ou integer

    Real real, float ou double

    Literal char (um caractere) ou string (cadeia de caracteres).

    Lgico boolean ou lgico.

    Neste caso, para nomear os tipos de dados de modo vlido, precisamos retomar a

    premissa de que interpret-los de modo correto fundamental.

    Que tal observarmos alguns exemplos para tornar ainda mais clara essa ideia?

    Vamos l...

    Sendo dada uma lista de compras com o cdigo, quantidade e preo de

    oito produtos, faa um algoritmo que escreva o valor total da compra.

    Ao serem fornecidos um valor a ser pago e uma taxa para multa, pois o

    pagamento est sendo feito aps o vencimento, calcule o valor da multa

    e o valor total a ser pago.

    solicitada a um motorista, recm-chegado de uma viagem, a quantidade de

    quilmetros por ele percorrida. O motorista informa o solicitado, e voc dever

    informar a ele a quantos metros se refere a quantidade de quilmetros.

    string CODIGO

    int QUANTIDADE

    float PRECO, VALOR TOTAL

    float VLRCONTA, TAXAMULTA, VLRMULTA, VLRTOTAL

    int QUILOMETROS, METROS

    Observe que o trabalho de identificao de variveis e de seus tipos , na maioria

    das vezes, muito fcil, pois basta identific-los no enunciado. O que ocorre

    tambm com grande frequncia a identificao de algumas variveis

  • 37Lgica de Programao - Everton imbra de Arajo Co

    necessrias apenas durante a resoluo do algoritmo, mas isso no problema.

    Basta relacionarmos estas variveis lista j existente.

    O conceito de expresso em termos computacionais, segundo nos informa Lopes

    & Garcia (2002), est intimamente ligado ao conceito de expresso (ou frmula)

    matemtica, no qual um conjunto de variveis e constantes numricas se

    relaciona por meio de operadores, compondo uma frmula que, uma vez

    avaliada, resulta em um valor.

    Para Saliba (1993), o conceito de expresso aplicado computao assume uma

    conotao mais ampla: uma expresso uma combinao de variveis,

    constantes e operadores, que, uma vez avaliada, resulta em um valor.

    Aqui constam algumas definies. importante que voc leia com ateno esses

    conceitos e busque outras fontes de informao sobre isso. Tambm se faz

    necessrio que voc procure o significado das palavras que no conhece.

    2.3. EXPRESSES E OPERADORES

    No conceito de Saliba (1993), descrito acima, por exemplo, voc

    saberia conceituar operadores?

    Operadores, ainda segundo esse mesmo autor, so elementos funcionais que

    atuam sobre operandos e produzem determinado resultado.

    Ah! Essa esta bem simples...

    Vejamos o exemplo abaixo:

    A expresso 5 2 relaciona dois operandos (os nmeros 5 e 2) por meio do

    operador (-) que representa a operao de subtrao.

    Os operadores podem ser classificados em binrios, unrios e ternrios. Esta

    classificao atribuda de acordo com o nmero de operandos sobre os quais o

    operador atua. Neste momento, sero abordados somente os operadores binrios

    e unrios, mas importante destacar que os ternrios esto presentes em vrias

    linguagens de programao e que sua forma de uso depende exclusivamente da

    linguagem que est sendo utilizada. Observe, a seguir, exemplos de operadores

    binrios e unrios.

    - binrios: operaes matemticas simples nas quais o operador envolve

    dois algarismos.

    1+3

    4-1

    - unrios: o operador somente se encarrega de informar se o nmero

    positivo ou negativo.

    +2

  • 38 Lgica de Programao - Everton imbra de Arajo Co

    Outra classificao feita aos operadores em considerao ao tipo de dado de

    seus operandos e do valor resultante de sua avaliao. Esta classificao de

    operadores aritmticos, lgicos, relacionais e literais. Vejamos de que se trata.

    2.3.1. EXPRESSES ARITMTICAS

    So aquelas cujo resultado da avaliao do tipo numrico, seja ele inteiro seja

    real. Somente o uso de operadores aritmticos e de variveis numricas

    permitido em expresses deste tipo.

    A prioridade entre operadores define a ordem em que eles devem ser avaliados

    dentro de uma mesma expresso.

    Quando h dois ou mais operadores de mesma prioridade em uma expresso, a

    execuo se d da esquerda para a direita.

    bvio que, se utilizarmos o conceito de agrupamento de operaes atravs de

    parnteses, isso poderia ser facilmente visto.

    O caractere * adotado na maioria das linguagens de programao para

    representar a operao de multiplicao, ao invs do caractere x, por fora da

    possibilidade de ocorrncia do mesmo nome de varivel. Pela mesma razo, o

    smbolo ** adotado para representar a operao de exponenciao. Algumas

    linguagens de programao adotam o smbolo ^, e outras adotam funo para

    resoluo deste problema.

    Por exemplo: em Java, utiliza-se Math.pow(3, 2) para elevar o nmero 3 ao

    quadrado.

    2.3.2. EXPRESSES LGICAS

    So aquelas cujo resultado da avaliao um valor lgico (.Verdadeiro. ou

    .Falso.). Veja, a seguir, operadores lgicos para expresses lgicas.

    Para tratar expresses lgicas, vamos recorrer lgica matemtica, na qual Filho

    (2000) define proposio como todo o conjunto de palavras ou smbolos que

    exprimem um pensamento de sentido completo.

  • 39Lgica de Programao - Everton imbra de Arajo Co

    As proposies transmitem pensamentos, isto , afirmam fatos ou exprimem juzos

    que formamos a respeito de determinados entes.

    Podemos citar como exemplo de proposio:

    a) A Lua um satlite da terra.

    b) Recife a capital de Pernambuco.3

    c) 2 8.

    A lgica matemtica (assim como a que veremos para algoritmos) adota como

    regras fundamentais do pensamento os dois seguintes princpios:

    a) Princpio da no contradio

    Uma proposio no pode ser verdadeira e falsa ao mesmo tempo.

    b) Princpio do terceiro excludo

    Toda a proposio ou verdadeira ou falsa, isto , verifica-se sempre

    um destes casos, e nunca um terceiro.

    As proposies vistas no exemplo anterior so ditas simples ou atmicas, pois

    no contm nenhuma outra proposio como parte integrante de si

    mesma. H somente a ocorrncia de uma informao sendo repassada.

    Chama-se proposio composta ou proposio molecular aquela formada pela

    combinao de duas ou mais proposies, como nos exemplos:

    a) Carlos careca e Pedro estudante.

    b) Carlos careca ou Pedro estudante.

    c) Se Carlos careca, ento infeliz.

    Quando pensamos, efetuamos, muitas vezes, certas operaes sobre proposies,

    chamadas operaes lgicas.

    a) Negao

    Chamamos negao de uma proposio p a proposio representada

    por no p, cujo valor lgico a verdade quando p falsa, e a

    falsidade quando p verdadeira. Assim no p tem o valor lgico

    oposto daquele de p.

    b) Conjuno

    Chamamos conjuno de duas proposies p e q a proposio

    representada por p E q, cujo valor lgico verdade quando as

    proposies p e q so ambas verdadeiras, e falsa nos demais casos.

    c) Disjuno

    Chama-se disjuno de duas proposies p e q a proposio

    representada por p OU q cujo valor lgico a verdade quando ao

    menos uma das proposies p e q verdadeira, e a falsidade quando

    as proposies p e q so ambas falsas.

    Os operadores lgicos tambm so chamados de operadores booleanos.

  • 40 Lgica de Programao - Everton imbra de Arajo Co

    Suponha duas perguntas feitas a quatro pessoas que se candidataram a uma

    entrevista de emprego de programador. As respostas s perguntas sero Sim ou

    No. Suponha tambm que s ser chamado para a entrevista o candidato que

    responder Sim s duas perguntas.

    Neste caso, apenas a candidata Neusa seria chamado para a entrevista, pois o

    operador .E. s considera a expresso como verdadeira se todas as expresses

    testadas forem verdadeiras.

    Vejamos, a seguir, operadores relacionais para expresses lgicas.

    Estes operadores so somente usados quando se deseja efetuar comparaes.

    Vale destacar que as comparaes s podem ser feitas entre objetos de

    mesma natureza, isto , variveis do mesmo tipo de dado. O resultado de uma

    comparao sempre um valor lgico.

    Toda expresso respeita uma ordem de execuo de seus operadores, sempre da

    esquerda para a direita, assim como na matemtica. Para isso, segue uma tabela

    com as prioridades.

  • 41Lgica de Programao - Everton imbra de Arajo Co

    2.4. SINTAXE E SEMNTICA

    O conceito de linguagem est associado a um objeto de comunicao:

    indivduos que partilham uma mesma linguagem so capazes de se comunicar. As

    lnguas naturais so utilizadas como meio formal de se estabelecer uma linguagem

    de comunicao. Para tanto, so necessrios um vocabulrio, ou lxico

    (dicionrio/glossrio), e um conjunto de regras gramaticais ou sintaxe: para

    construir um objeto de comunicao nessa lngua, a sintaxe permite associar e

    manipular os itens do lxico. A esse objeto, construdo segundo as normas da

    lngua, d-se o nome de assero vlida, ou gramatical. Asseres vlidas com

    diversos graus de complexidade podem ser construdas: em grau crescente de

    complexidade, podemos ter oraes, sentenas, conjunto de sentenas (ou

    pargrafos) e conjuntos de pargrafos (ou textos). A essas asseres, possvel

    tambm associar um significado e, assim, estaremos trabalhando no campo da

    semntica.

    Bem, de acordo com o que foi exposto acima, podemos, de modo conciso,

    dizer:

    SINTAXE : So regras gramaticais de formao de

    sentenas/asseres vlidas ou gramaticalmente

    corretas;

    SEMNTICA : a associao das asseres ao significado, permitindo

    sua interpretao.

    Tendo estas definies sido trazidas do idioma humano, pode-se afirmar que no

    h diferena ao encontrado na rea tecnolgica, pois podemos dizer que a

    sintaxe de uma linguagem expressa as regras que devem ser obedecidas para

    atingir determinado resultado, fazendo uso dela. E a semntica representa o

    contedo das palavras da linguagem, permitindo assim uma interpretao

    correta do escrito com determinada linguagem.

  • 42 Lgica de Programao - Everton imbra de Arajo Co

    Esta unidade tem grande importncia no aprendizado de

    programao. Foram aqui apresentados conceitos e

    exemplos de tipos de dados possveis de uso em nossos

    pseudocdigos, conceitos e regras para uso de variveis,

    alm de uma introduo sobre expresses e operaes. Na

    parte de expresses lgicas, trouxemos uma pequena

    demonstrao sobre suas operaes, as quais sero

    fortemente tratadas mais adiante. J nos conceitos de sintaxe e semntica,

    que foram tratados tambm de forma breve, foi comentada a grande

    importncia delas, principalmente da sintaxe. Todos estes conceitos sero

    utilizados nas prximas unidades. Da a relevncia de uma releitura, caso

    ainda restem dvidas.

    Encerramos esta unidade por aqui, esperando, claro, que esses conceitos e

    exemplos tenham ajudado voc a compreender ainda mais as etapas da

    programao.

    Mas ainda temos um longo caminho. Vamos em frente!

  • UNIDADE IIIINTRODUO AOS

    PSEUDOCDIGOS

  • 45Lgica de Programao - Everton imbra de Arajo Co

    Nesta unidade, iremos introduzir voc na linguagem de programao hipottica,

    muito usada em todo o mundo. chamada de pseudocdigo. Utiliza o idioma

    nativo e algumas regras sintticas, mas a facilidade de passar para algoritmos

    regras verbais, por ns conhecida e usada, mais simples e facilita depois a

    introduo a uma linguagem de programao.

    Por meio de exemplos voc ter contato com a representao de algoritmos

    recorrendo a pseudocdigos. Abordaremos tambm os pseudocdigos com

    estruturas condicionais e faremos breve comentrio sobre funes.

    Assim, esperamos que, ao final da leitura desta unidade, voc possa:

    - Conhecer e entender pseudocdigos;

    - Compreender a importncia da endentao;

    - Conhecer estruturas de deciso;

    - Resolver problemas com estrutura sequencial e condicional por meio de

    pseudocdigos;

    - Reconhecer e utilizar algumas funes predefinidas para auxlio na

    resoluo dos problemas.

    O que pseudocdigo?

    3.1. PSEUDOCDIGOS

    Para Saliba (1993), pseudocdigo uma forma para representao de

    algoritmos rica em detalhes, como a definio dos tipos das variveis usadas

    no algoritmo. Por assemelhar-se bastante forma em que programas so

    escritos, encontra muita aceitao.

    Para ns, a aplicao de pseudocdigos aos algoritmos, a partir deste ponto, ser

    mera traduo. Como um texto em portugus passado para outro idioma.

    Necessitamos saber apenas a ortografia (palavras) e regras gramaticais (sintaxe).

    Mas, qual a vantagem do uso de pseudocdigos?

    3.1.1 VANTAGENS

    O pseudocdigo a escrita, por meio de regra predefinida, dos passos a serem

    seguidos para a resoluo de um problema. o resultado da anlise e resoluo

    de um problema exposto em um enunciado.

    A passagem de um algoritmo para uma linguagem de programao tem um

    trnsito fcil, bastando, para isso, o conhecimento do vocabulrio e regras

    sintticas da linguagem/idioma desejado.

    3.1.2 ESTRUTURA BSICA PARA UM PSEUDOCDIGO

    A ferramenta para representao de algoritmos utilizada at agora (Descrio

  • 46 Lgica de Programao - Everton imbra de Arajo Co

    Narrativa), possui suas regras, embora sejam bem flexveis.

    No caso do pseudocdigo, as regras so mais arbitrrias, pois trazemos de nosso

    idioma palavras que representaro comportamentos e aes que devero ser

    tomadas pelo algoritmo.

    A estas palavras, d-se o nome de Palavras Reservadas Linguagem, ou seja,

    voc NO pode utilizar tais palavras para outros fins seno quele que ela

    representa. Comearemos agora, pouco a pouco, a conhecer estas palavras.

    Veja a estrutura bsica que um pseudocdigo deve ter e seu comparativo para

    as linguagens de implementao propostas.

    E ateno! As palavras reservadas esto em negrito e o texto em itlico dever

    ser preenchido pelo programador, desconsiderando os sinais < > . No se

    assuste, muito simples. Para cada uma das estruturas existem consideraes

    logo aps aquelas.

    A seguir, um exemplo clssico encontrado em todos os livros de iniciao

    programao, o famoso Ol, Mundo!

  • 47Lgica de Programao - Everton imbra de Arajo Co

    3.2. ENDENTAO

    A endentao est diretamente ligada formatao de programas, tendo como

    finalidades principais:

    - melhorar a legibilidade deles;

    - facilitar a manutenibilidade posterior;

    - facilitar a identificao do erro lgico durante a execuo.

    Endentao deve ser utilizada para indicar que as instrues endentadas

    esto sob controle da instruo anterior no endentada. O uso consistente de

    endentao essencial para a legibilidade do programa.

    Use sempre endentao para instrues dentro de blocos ou para instrues que

    fazem parte de alguma estrutura de controle ou seguindo um rtulo.

    Observe, no pseudocdigo anterior, que a instruo Escreva est endentada e,

    visivelmente, nota-se que ela est sob o controle de Incio e Fim.

    A declarao das variveis a serem manipuladas no algoritmo devem estar entre

    as palavras reservadas Variveis e Incio. Toda varivel utilizada deve ter um nome

    e um tipo. Na unidade anterior, foram tratados os tipos de dados possveis para

    uma varivel e as regras para atribuir um nome a ela.

    3.3. DECLARAO DE VARIVEIS

  • 48 Lgica de Programao - Everton imbra de Arajo Co

    3.4. ATRIBUIO DE VARIVEIS

    A atribuio de varivel se d quando precisamos armazenar algum valor para

    ser usado posteriormente em nosso algoritmo, seja este uso em operaes ou na

    simples informao para o usurio. Quando utilizamos pseudocdigo para

    representar algoritmos, devemos convencionar um smbolo para representar esta

    operao. Normalmente utilizamos := (dois pontos seguido de um igual sem

    espao), um simples sinal de = (igual) ou ainda os smbolos grficos ou para

    representar que a parte que est direita do operador atribida varivel a

    seu lado esquerdo. Como na matemtica, sem segredos.

    3.5. ENTRADA DE DADOS

    Uma operao de entrada de dados se refere a qualquer valor que seja

    informado (digitado) pelo usurio. Este valor pode ser numrico ou literal, e ser

    armazenado, obrigatoriamente, em uma varivel de seu respectivo tipo. Ou seja,

    um valor literal no pode ser armazenado em uma varivel numrica, porm um

    valor numrico pode ser armazenado em uma varivel literal, mas este ser

    tratado como literal. Quando representamos um algoritmo por meio de

    pseudocdigos, vrias palavras de nosso idioma podem ser utilizadas, tais como

    Leia, Entre, Pegue ou Receba.

    Perceba que, como so vrias as opes, faz-se necessrio que seja

    estabelecida uma conveno. Aqui ser definida como Leia.

    interessante saber que o valor informado pelo usurio ser guardado

    (armazenado) na varivel imediatamente aps a instruo Leia. Apesar de

    algumas literaturas trazerem vrias variveis em uma nica instruo Leia,

    separadas apenas por vrgulas (,), recomendado que cada instruo Leia tenha

    apenas uma varivel ligada a ela.

  • 49Lgica de Programao - Everton imbra de Arajo Co

    3.6. SADA DE DADOS

    Uma operao de sada de dados se refere a qualquer valor exibido ou retornado

    ao usurio. Este valor pode ser uma mensagem de orientao, o resultado de uma

    expresso, um valor constante ou uma varivel ( lgico que ser exibido o valor

    contido na varivel). Quando representamos um algoritmo por meio de

    pseudocdigos, vrias palavras de nosso idioma podem ser utilizadas, tais como

    Escreva, Informe, Mostre ou Exiba. Novamente, h a ocorrncia de vrias

    possibilidades, o que sugere a escolha de um dos termos. No caso desta unidade

    optamos por Escreva.

    interessante saber que, quando desejarmos exibir ao usurio uma frase, esta

    deve estar entre aspas (estas aspas, podem ser a simples ou as duplas, mas

    usaremos as duplas). Se quisermos exibir um valor numrico constante, basta

    inform-lo aps a instruo. Se o que desejarmos exibir ao usurio for o contedo

    de uma varivel, basta informarmos tal varivel aps a instruo Escreva.

    3.7. ALGUMAS SITUAES

    3.7.1. ESTRUTURA SEQUENCIAL

    Com os conceitos e as instrues primitivas passadas, podemos iniciar o

    desenvolvimento e o aprendizado necessrio para a resoluo e representao

  • 50 Lgica de Programao - Everton imbra de Arajo Co

    de algoritmos em sua forma de pseudocdigos.

    O primeiro passo na codificao de um pseudocdigo a identificao das

    variveis que se faro necessrias para a resoluo. Como fazer isso? Bom, o

    comeo deve ser com o enunciado. Devemos trabalhar o texto e nele identificar

    o que deve ser recebido pelo pseudocdigo para que solucione o problema

    proposto e tambm aquilo que ser informado ao usurio, normalmente a

    resoluo.

    Sobre o salrio bruto de um funcionrio, so descontados 8% de

    INSS, 10% de IR (imposto de renda) e sobre o restante 0,5%

    referente filiao sindical. Para cada dependente (filhos), o

    funcionrio ganha R$ 50,00. Ao ser fornecido o valor do salrio

    bruto do funcionrio e a quantidade de dependentes, calcule :

    a) O total dos descontos

    b) Total de acrscimo

    c) Salrio lquido.

    Algoritmo CalculoDeFolha

    Variveis

    SalarioBruto, INSS, IR, FS, TotalDeDescontos, TotalDeAcrescimos,

    SalarioLiquido : Real

    Dependentes : Inteiro

    Incio

    Escreva Informe o Salrio Bruto

    Leia SalarioBruto

    Escreva Informe a Quantidade de Dependentes

    Leia Dependentes

    INSS SalarioBruto*0.08

    IR SalarioBruto * 0.10

    FS (SalarioBruto (INSS+IR)) * 0.005

    TotalDeDescontos INSS + IR + FS

    TotalDeAcrescimos (Dependentes * 50)

    SalarioLiquido SalarioBruto TotalDeDescontos + TotalDeAcrescimos

    Escreva O Total de Descontos : , TotalDeDescontos

    Escreva O Total de Acrscimos : , TotalDeAcrescimos

    Escreva O Salrio Lquido : , SalarioLiquido

    Fim

    Mas isso no tudo! Podem surgir alguns problemas

    durante a resoluo, e a emerge a necessidade de outras

    variveis. Ateno a esta prxima etapa.

  • 51Lgica de Programao - Everton imbra de Arajo Co

    Observe, no quadro a seguir, o que ser fornecido ao algoritmo para que

    processe o desejado.

    Sobre o salrio bruto de um funcionrio, so descontados 8% de INSS, 10% de IR

    (imposto de renda) e sobre o restante 0,5% referente filiao sindical. Para

    cada dependente (filhos) o funcionrio ganha R$ 50,00. Ao ser fornecido o

    valor do salrio bruto do funcionrio e a quantidade de dependentes, calcule:

    ...

    Algoritmo CalculoDeFolha

    Variveis

    SalarioBruto, INSS, IR, FS, TotalDeDescontos, TotalDeAcrescimos,

    SalarioLiquido : Real

    Dependentes : Inteiro

    Incio

    Escreva Informe o Salrio Bruto

    Leia SalarioBruto

    Escreva Informe a Quantidade de Dependentes

    Leia Dependentes

    ...

    Fim

    Veja a ligao entre as declaraes destas variveis e seu real uso dentro do

    pseudocdigo. Realmente so dados de entrada.

    Agora, identificada na figura a declarao do que informado ao usurio, ou

    seja, aquilo que deve ser resolvido pelo algoritmo: o problema.

    ..., calcule :

    a) O Total dos Descontos

    b) Total de Acrscimo

    c) Salrio Lquido

    Algoritmo CalculoDeFolha

    Variveis

    SalarioBruto, INSS, IR, FS, TotalDeDescontos, TotalDeAcrescimos,

    SalarioLiquido : Real

    Dependentes : Inteiro

    Incio

    ...

    Escreva O Total de Descontos : , TotalDeDescontos

    Escreva O Total de Acrscimos : , TotalDeAcrescimos

    Escreva O Salrio Lquido : , SalarioLiquido

    Fim

  • 52 Lgica de Programao - Everton imbra de Arajo Co

    Note agora a existncia de variveis que no so nem de entrada, nem de sada.

    Podemos caracteriz-las como variveis auxiliares, pois elas realmente auxiliam a

    resoluo do problema.

    Algoritmo CalculoDeFolha

    Variveis

    SalarioBruto, INSS, IR, FS, TotalDeDescontos, TotalDeAcrescimos,

    SalarioLiquido : Real

    Dependentes : Inteiro

    Incio

    ...

    INSS SalarioBruto*0.08

    IR SalarioBruto * 0.10

    FS (SalarioBruto (INSS+IR)) * 0.005

    TotalDeDescontos INSS + IR + FS

    TotalDeAcrescimos (Dependentes * 50)

    SalarioLiquido SalarioBruto TotalDeDescontos + TotalDeAcrescimos

    ...

    Fim

    ...

    No caso especfico deste problema, estas variveis so desnecessrias, pois o

    resultado pode ser obtido diretamente, mediante operaes matemticas.

    Vejamos como poderia ficar esta resoluo.

    Algoritmo CalculoDeFolha

    Variveis

    SalarioBruto, TotalDeDescontos, TotalDeAcrescimos, SalarioLiquido : Real

    Dependentes : Inteiro

    Incio

    ...

    TotalDeDescontos (SalarioBruto * 0.08) + (SalarioBruto * 0.10)

    TotalDeDescontos (SalarioBruto TotalDeDescontos) * 0.005

    ...

    Fim

    ...

    Observe que, para a implementao, optou-se por duas linhas para o clculo do

    desconto, pois a Filiao Sindical sobre o Salrio Bruto j descontado o INSS e IR.

    bvio que, matematicamente, daria para incluir tudo isso em uma nica linha,

    porm poderia ficar poluda, dificultando a compreenso da referida linha de

    operao.

    Outra situao seria a resoluo, inclusive sem o uso das variveis de sada,

    porm, no incio do aprendizado, este uso excessivo de variveis benfico, mas

    com o decorrer deve ser evitado, otimizando o desempenho e os recursos

    utilizados.

  • 53Lgica de Programao - Everton imbra de Arajo Co

    Algoritmo CalculoDeFolha

    Variveis

    SalarioBruto : Real

    Dependentes : Inteiro

    Incio

    ...

    Escreva O Total de Descontos : , (SalarioBruto * 0.08) + (SalarioBruto *

    0.10) + ((SalarioBruto ((SalarioBruto * 0.08) + (SalarioBruto * 0.10))) *

    0.05

    Escreva O Total de Acrscimos : , (Dependentes * 50)

    Escreva O Salrio Lquido : , SalarioBruto ((SalarioBruto * 0.08) +

    (SalarioBruto * 0.10) + ((SalarioBruto ((SalarioBruto * 0.08) +

    (SalarioBruto * 0.10))) * 0.05) + (Dependentes * 50)

    Fim

    ...

    Note a expresso acima. H casos em que isso no recomendado, tampouco

    dever ser feito, pois, em uma necessidade de alterao, dificultar a

    compreenso.

    O problema a ser solucionado neste enunciado relativamente simples. Ser

    informado pelo usurio um valor qualquer (SalarioBase) e sobre este valor devero

    ser aplicados dois percentuais: um como crdito (gratificao) ao valor

    informado, e outro como dbito (imposto). Ou seja, o primeiro valor aumentar o

    valor inicial, e o segundo diminuir. Os valores a serem aplicados esto explcitos

    no enunciado, devendo apenas ser aplicados em uma frmula/expresso.

    Perceba que, neste pseudocdigo, foram utilizadas apenas as variveis

    necessrias: a de entrada (SalarioBase) e a de sada (SalarioLiquido). Poderia

    optar-se por um desenvolvimento mais detalhado e fazer uso de variveis

    Desenvolva um programa que receba o salrio-base de um

    funcionrio, calcule e mostre o salrio a receber, sabendo-se

    que esse funcionrio tem gratificao de 5% sobre o salrio-

    base e paga imposto de 7% sobre o salrio-base.

    Algoritmo CalculoDeFolha

    Variveis

    SalarioBase, SalarioLiquido : Real

    Incio

    Escreva Informe o Salrio Base

    Leia SalarioBase

    SalarioLiquido SalarioBase + (SalarioBase * 0.05)

    (SalarioBase * 0.07)

    Escreva O Salrio Lquido : ,SalarioLiquido

    Fim

  • 54 Lgica de Programao - Everton imbra de Arajo Co

    auxiliares, mas no seria nada otimizado e muito menos til neste caso. Caso se

    opte por este uso, a resoluo seria semelhana do mostrado a seguir.

    Algoritmo CalculoDeFolha

    Variveis

    SalarioBase, SalarioLiquido, Credito, Debito : Real

    Incio

    ...

    Credito (SalarioBase * 0.05)

    Debito (SalarioBase * 0.07)

    SalarioLiquido SalarioBase + Credito Debito

    ...

    Fim

    ...

    Observe que, como foram informados os valores em percentual a serem

    descontados, estes puderam ser aplicados diretamente na frmula, sem

    necessidade de aplicar a regra de trs.

    3.8.1. ESTRUTURA CONDICIONAL

    Se ... Ento

    Seno Se ... Ento

    Seno ...

    Fim se

    3.8. PSEUDOCDIGOS ESTRUTURA CONDICIONAL

    Leia dois valores numricos e inteiros, e efetue a soma destes

    valores. Caso o valor