Apostila Lógica de Programação.pdf

download Apostila Lógica de Programação.pdf

of 86

Transcript of Apostila Lógica de Programação.pdf

  • 8/17/2019 Apostila Lógica de Programação.pdf

    1/86

     

    LÓGICA DE PROGRAMAÇÃO

    EDIÇÃO Nº 1 - 2007

    LAÉRCIO DA CRUZ LOUREIRO ___________________________________________________________________

    Apoio Gestão e Execução Conteúdo e Tecnologia

  • 8/17/2019 Apostila Lógica de Programação.pdf

    2/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    2

    SUMÁRIO

    AULA 1 - INTRODUÇÃO À LÓGICA E AO PROCESSO DE PROGRAMAÇÃO .. 7

    AULA 2 - LINGUAGENS DE PROGRAMAÇÃO .................................................. 16

    AULA 3 - FORMAS DE REPRESENTAÇÃO DE UM ALGORITMO .................... 27

    AULA 4 - VARIÁVEIS E CONSTANTES.............................................................. 42

    AULA 5 - ESTRUTURAS DE PROGRAMAÇÃO - CONDICIONAIS.................... 52

    AULA 6 - ESTRUTURAS DE PROGRAMAÇÃO - REPETIÇÃO.......................... 68

    AULA 7 - MODULARIZAÇÃO DE ALGORITMOS............................................... 77

  • 8/17/2019 Apostila Lógica de Programação.pdf

    3/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    3

    Apresentação

    Este livro didático contém a disciplina de Lógica de Programação.

    O material apresenta aos alunos do EAD os fundamentos da lógica de

    programação de sistemas informatizados, estimulando o desenvolvimento de um

    bom estilo de construção de sistemas e o pensamento lógico. Os tópicos

    apresentados estão distribuídos em aulas, e cada uma avança gradativamente nastécnicas essenciais para a elaboração de programas de computadores.

    É importante ressaltar que o livro foi desenvolvido com o objetivo de oferecer

    um aprendizado independente, que está inerente aos estudos do EAD, e o conteúdo

    foi revisado com o intuito de oferecer uma linguagem simples, objetiva e estimulante.

    Lembre-se de que a sua passagem por esta disciplina será também

    acompanhada pelo Sistema de Ensino Tupy Virtual, seja por correio postal, fax,

    telefone, e-mail ou Ambiente Virtual de Aprendizagem.Entre sempre em contato conosco quando surgir alguma dúvida ou

    dificuldade.

    Toda a equipe terá a maior alegria em atendê-lo, pois a sua aquisição de

    conhecimento nessa jornada é o nosso maior objetivo.

    Acredite no seu sucesso e bons momentos de estudo!

    Equipe Tupy Virtual.

    Carta do Professor

  • 8/17/2019 Apostila Lógica de Programação.pdf

    4/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    4

    Apesar do que você possa ter ouvido, programar um computador não é difícil. É a

    habilidade que qualquer um pode desenvolver, dedicando prática, paciência e muito

    café. Wang (2007)

    Caro aluno,Desde o advento dos computadores, as comunidades de

    programadores de software vêm crescendo não somente para a criação de soluções

    para atender às novas necessidades do mercado, mas também uma resposta para

    acompanhar as mudanças dos negócios empresariais. Esta constante evolução (ou

    transformação) nos oferece hoje recursos poderosos e ao mesmo tempo simples,

    para a construção de sistemas.

    A criação de programa para computadores é uma atividade que sofre do

    mesmo sentimento de aprender matemática: há pessoas que adoram e há pessoasque odeiam. Muitos especialistas tentam encontrar meios para melhorar as

    abordagens didáticas, que facilitem a conquista de novos adeptos, mas ainda se

    percebe que há uma mistura de sentimento e vocação. Porém, diferente da

    matemática, a programação de sistemas é uma atividade interativa que fornece

    feedback imediato, como resultado de exploração, investigação e auto-avaliação do

    programador.

    É importante observarmos que lógica é uma prática comum em nossas

    atividades diárias, desde a decisão em qual local almoçar até aceitar um emprego.Por isso, acredita-se que os obstáculos da lógica de programação não estão nos

    conceitos e sim nas linguagens de programação utilizadas, bem como na utilidade

    do trabalho de construção que está sendo realizado.

    Por outro lado, ao conquistar sua posição como programador, você poderá

    sentir a grande satisfação de um artista, já que utilizará seus conhecimentos e

    habilidades para construir soluções que serão utilizadas por outras pessoas, para

    resolver problemas.

    Então, eis a proposta deste trabalho: oferecer uma abordagem simples e

    construtiva para minimizar os desafios que a disciplina exige do aluno. Incentivá-

    lo(a) a persistir na evolução dos seus estudos de lógica de programação, e fazê-lo(a)

    perceber que a prática trará os resultados esperados.

    Professor Laércio da Cruz Loureiro

  • 8/17/2019 Apostila Lógica de Programação.pdf

    5/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    5

    Cronograma de Estudo

    Acompanhe no cronograma abaixo os conteúdos das aulas e atualize as

    possíveis datas de realização de aprendizagem e avaliações.  

    Semana Carga horária Aula Data / Avaliação

    8Introdução à Lógica de

    Programação e ao Processode Programação

     _/_ a _/_

    112 Linguagens de

    Programação _/_ a _/_

    8 Variáveis e Constantes _/_ a _/_

    2

    12 Estruturas de Programação – Condicionais

     _/_ a _/_

    12 Estruturas de Programação – Repetição

     _/_ a _/_3

    8 Modularização do programa _/_ a _/_

  • 8/17/2019 Apostila Lógica de Programação.pdf

    6/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    6

    Plano de Estudo

    EmentaFundamentos da lógica de programação, motivadores e histórico, processo e os

    passos que envolvem a programação de computadores, linguagens de

    programação, interpretadores e compiladores, conceitos básicos sobre algoritmos e

    suas representações, construir algoritmos com variáveis, constantes, operadores,

    estruturas condicionais e de repetição.

    Objetivos da Disciplina

    •  Geral 

    .Transmitir ao aluno os conhecimentos essenciais para a programação de

    computadores, aprendendo termos de lógica de programação e seus componentes.

    Incentivar no aluno a capacidade de interpretação de problemas e a composição de

    soluções usando regras lógicas.

    •  Específicos

    - Conhecer os principais componentes para a programação de computadores;

    - Desenvolver programas usando algoritmos, representados através de

    pseudocódigos e fluxogramas;- Acostumar-se com as regras de sintaxe utilizadas em linguagem de programação.

    Carga Horária: 60 horas.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    7/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    7

    Aula 1 

    INTRODUÇÃO À LÓGICA E AO

    PROCESSO DE PROGRAMAÇÃO

    Objetivos da aula

    Ao final desta aula, você deverá ser capaz de:

    •  Descrever os fundamentos lógicos associados ao

    desenvolvimento de software;•  Descrever o processo de desenvolvimento de software;

    •  Descrever as técnicas para a resolução de problemas;

    •  Identificar as fases de execução de um programa.

    Conteúdos da aula

    Acompanhe os assuntos desta aula e, se preferir, ao

    término, assinale o conteúdo já estudado.

      História do desenvolvimento de sistemas

      Terminologias

      O processo de desenvolvimento de software

      Fases de execução de um programa

      Técnicas para resolução de problemas

      Exercícios propostos.

    Prezado aluno, seja bem vindo a nossa primeira

    aula. Vamos conhecer as bases da lógica de

    programação, como surgiu e sua evolução.

    Boa Aula! 

  • 8/17/2019 Apostila Lógica de Programação.pdf

    8/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    8

    1 HISTÓRIA DO DESENVOLVIMENTO DE SISTEMAS

    As linguagens de programação de hoje são o resultado de desenvolvimentos

    que iniciaram em 1950. Conceitos numéricos foram inventados, testados e

    aprimorados a partir da incorporação de sucessivas linguagens de programação.

    Com raras exceções, os fundamentos de uma linguagem de programação são

    fortemente influenciados pela experiência com linguagens anteriores. À medida que

    as linguagens evoluíram, novos conceitos e paradigmas continuam a ser criados e o

    cenário de linguagens de programação daqui a dez anos irá ser, provavelmente,

    muito diferente da experiência atual.

    Uma das linguagens antigas de alto nível que foi um grande sucesso, a

    Fortran,  introduziu expressões simbólicas e a capacidade do programador criar

    procedimentos modulares. A última versão do padrão da linguagem foi publicado em

    1997.

    A linguagem COBOL também foi uma linguagem de grande adesão pelos

    programadores e empresas (e ainda é considerada uma opção importante), e sua

    principal contribuição foi o conceito de descrição de dados.

    A linguagem Fortran foi amplamente adotada pela computação numérica e alinguagem COBOL, para o processamento de dados comerciais.

    Nos dois casos, três necessidades influenciaram no aprimoramento das

    linguagens:

    • A constante necessidade de aprimorar a capacidade da linguagem para

    atender às complexidades dos problemas apresentados;

    • Aumentar a velocidade na construção de programas e com isto fazer mais com

    menos;

    •  Facilitar a adoção da linguagem por profissionais que possuam um nívelmínimo de conhecimento, necessário para a construção de programas.

    Atualmente, podemos considerar que as linguagens estão mais próximas das

    três necessidades descritas anteriormente, mas alguns incovenientes se

    apresentaram à medida que essa abordagem evolui:

  • 8/17/2019 Apostila Lógica de Programação.pdf

    9/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    9

    •  Com uma construção cada vez mais fácil, reduz o nível de domínio do

    programador sobre o conhecimento da linguagem. Em caso de problema na

    construção do programa, o programador pode ter dificuldades para resolvê-lo,

     já que não possui um “amplo” controle sobre as peculiaridades da linguagem;

    •  Com a necessidade de velocidade na construção de sistemas, os aplicativos

    utilizados acabam gerando maior importância que a própria linguagem. Isso

    exige do programador domínio sobre a linguagem, como também, sobre o

    próprio programa que será utilizado para implementar a linguagem;

    • Com o volume cada vez maior de recursos disponíveis na linguagem, exige-se

    cada vez mais a atualização do programador em novas tecnologias, sem

    conseguir obter o domínio completo de recursos essenciais;

    •  Com a inserção de mais recursos à linguagem, para que o programador“esteja no topo da tecnologia”, precisará dedicar cada vez mais tempo para

    aprender e construir recursos, que antes poderiam ser realizados de forma

    mais simples.

    PERCEBEU O DESAFIO?

    À medida que evoluímos as linguagens de programação, melhoramos

    a capacidade e velocidade na construção de programas, mas também

    geramos cada vez mais opções para se resolver um problema,aumentando a complexidade para a elaboração de soluções.

    Então, diante desse desafio, é imprescindível ao programador “perceber” as

    nuances que se apresentam nas linguagens de hoje. Por isso a grande importância

    que a Lógica de Programação desempenha sobre o programador, formando uma

    sólida base de discernimento a ser aplicada na adoção de uma linguagem

    específica. Com uma forte base de lógica de programação, o programador terá

    maiores chances em dominar qualquer linguagem de desenvolvimento de sistemas.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    10/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    10

    2 TERMINOLOGIAS NO DESENVOLVIMENTO DE SISTEMAS

    Como todo segmento profissional, desenvolver sistemas possui um amplo

    conjunto de termos técnicos. Esses termos são o reflexo de anos de mudanças e

    particularidades aplicadas nas linguagens de programação, mas podem variar de

    acordo com o contexto em que são utilizadas. Nesse momento do curso é

    importante você entender os seguintes termos:

    Termo Significado

    Programa de computador É um conjunto de instruções que orientam ocomputador para o que fazer e quando fazer.

    Especificação Documento que descreve como o problema deveser resolvido, fazendo-se uso da linguagem de

    programação.

    Implementar Ato de escrever o código de programação paraatender a uma especificação de solução para um

    problema.

    Código de Programação É o conteúdo da linguagem de programação,inserido pelo programador, de acordo com as

    regras da linguagem

    Processo de desenvolvimento Compreende todas as fases e atividades para aconstrução de um sistema.

    Compilar o programa Traduzir o código de programação para alinguagem de máquina do computador.

    Depurar o programa Utilizar uma ferramenta para verificar se o códigode programação está construído de acordo com as

    regras da linguagem de programação.

    Sintaxe da linguagem São as regras implícitas na linguagem deprogramação que o programador precisa respeitar

    para que o programa funcione adequadamente.Processamento É o momento em que o programa está realizando a

    execução do código inserido pelo programador.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    11/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    11

    3 O PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

    Uma medida de sucesso no desenvolvimento de software é a capacidade em

    produzir bons produtos, com bons processos e de forma consistente. Para atender

    esse tipo de consistência, depende primariamente da presença de dois fatores:

    •  Pessoas que sabem como construir programas;

    •  Entendimento claro do que precisa ser feito e qual o problema que precisa ser

    solucionado, estabelecendo limites objetivos e claros.

    Segundo Donaldson e Siegel (2000), os seguintes princípios determinam um bomprocesso de desenvolvimento de software:

    •  Planejar o trabalho antes de realizá-lo;

    •  Obter o acordo na definição de responsabilidades;

    •  Estabelecer e incentivar equipes autogerenciáveis;

    •  Determinar pontos de verificação;

    •  Manter uma contínua interação com o cliente do sistema;

    •  Monitorar o progresso do trabalho;

    •  Orientar o responsável pelo trabalho e treinar as equipes;•  Fornecer avaliações intermediárias dos trabalhos;

    •  Fornecer um feedback das entregas realizadas pelos profissionais envolvidos;

    •  Melhorar constantemente o processo de desenvolvimento, ajustando os erros

    enfrentados nos processos anteriores.

    Desse modo, podemos afirmar que o trabalho de desenvolvimento de sistemas

    também recebe premissas que facilitam a entrega de produtos e,

    conseqüentemente, asseguram sua qualidade.

    Um ciclo de desenvolvimento de software parte de princípios. Chama-se ciclo

    porque é um conjunto de etapas que, juntas, giram de acordo com um sentido lógico

    de seqüência a ser executada, durante o trabalho de construção de um sistema.

    Mostramos um exemplo de ciclo na figura 1.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    12/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    12

    Figura 1 – Ciclo de Desenvolvimento de Software

    Dessa forma, podemos descrever sete passos para atender um ciclo de vida

    de desenvolvimento:1. Definição do Problema;

    2. Desenho da solução;

    3. Refinamento da solução;

    4. Estratégia de testes do desenvolvimento;

    5. Codificação do programa e testes;

    6. Documentação;

    7. Manutenção do programa.

    A construção de código de programação também possui seu próprio ciclo de

    elaboração (figura 2), que faz parte do ciclo maior para o desenvolvimento da

    solução apresentada anteriormente.

    Figura 2 – Ciclo de Construção de Código do Programa

  • 8/17/2019 Apostila Lógica de Programação.pdf

    13/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    13

    4 AS FASES DE EXECUÇÃO DE UM PROGRAMA

    Um programa de computador possui três fases distintas:

    •  Entrada

    •  Processamento

    •  Saída

    Na fase de entrada de dados , você fornece os dados para o computador, no

    momento em que o programa solicita informações. A fase de entrada de dados é a

    primeira fase de execução de um programa de computador.

    A segunda fase é a de processamento, na qual o programa realiza ações comos dados digitados, de acordo com a programação implementada.

    A terceira fase é a de saída , em que o computador apresenta o resultado do

    processamento também de acordo com a programação realizada (saída em tela ou

    na impressora).

    O processo de construção de programas deve considerar as três fases,

    principalmente quando a especificação envolve o usuário do computador. Também é

    importante ressaltar que, em cada uma das fases, há um conjunto de orientações

    que o programador precisa seguir e a linguagem de programação em uso, suportaas três fases de forma diferente, mas apresenta os mesmos resultados esperados

    em cada fase.

    5 TÉCNICAS PARA A RESOLUÇÃO DE PROBLEMAS

    O matemático George Polya (1945), uma autoridade na resolução deproblemas, dividiu a solução de problemas em quatro passos:

    1. Entender o problema: este primeiro passo é o mais complexo e é o mais

    importante. O objetivo é obter o maior número de informações sobre o

    problema, usando técnicas como entrevistas e observações, e elaborando

    modelos representativos que facilitem o entendimento do problema. É

  • 8/17/2019 Apostila Lógica de Programação.pdf

    14/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    14

    também importante verificar a fonte de informações para obter o

    entendimento do problema;

    2. Elaborando um plano: uma vez entendido o problema, é necessário elaborar

    uma visão sobre a solução para o problema. Um plano é composto de um

    conjunto de atividades que deverão ser realizadas para a solução do

    problema. Nesta fase é importante:

    a. Localizar se problemas semelhantes já foram solucionados e obter a

    informação necessária para reproduzir a solução para o novo

    problema;

    b. Restringir o problema em uma forma simples que possa ser

    solucionado. Caso se apresente um grande problema, dividir em partes

    para facilitar a solução;c. Generalizar o problema para garantir que futuros problemas

    semelhantes possam ser resolvidos da mesma forma (ou com

    pequenos ajustes);

    3. Executar o plano: uma vez o plano definido, deve ser acompanhado para

    que o resultado esperado seja atingido. Cada elemento do plano deverá ser

    verificado após ser aplicado. Se partes do plano se apresentaram

    insatisfatórias, o plano deverá ser revisado;

    4. Avaliação: finalmente, o resultado deverá ser avaliado para garantir que estáválido e o problema está resolvido.

    SÍNTESE

    Nesta aula você pôde perceber como a lógica de programação é uma

    disciplina fundamental para o programador, baseando-se nos desafios e nas

    técnicas atuais para a resolução de problemas.

    Como toda atividade sempre possui uma história, você aprendeu que a

    história da programação de computadores é um fato relevante a ser observado, e

  • 8/17/2019 Apostila Lógica de Programação.pdf

    15/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    15

    permite que possamos entender como as linguagens de programação chegaram até

    a atualidade.

    Falamos sobre as técnicas para o desenvolvimento de software e quais os

    elementos fundamentais para essas técnicas, desde a terminologia básica até os

    passos que devem ser seguidos para um resultado final de sucesso.

    Espero que você esteja gostando e obtendo o sentimento de segurança nos

    tópicos que estamos abordando. Vamos em frente!

    EXERCÍCIOS PROPOSTOS

    1) De acordo com seus estudos, descreva quais são os principais desafios do

    programador da atualidade.

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________  ___________________________________________________________________

    2) O que é código de programação?

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________

    3) Liste os passos para o ciclo de desenvolvimento de um sistema.

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________

  • 8/17/2019 Apostila Lógica de Programação.pdf

    16/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    16

    Aula 2 

    LINGUAGENS DE PROGRAMAÇÃO

    Objetivos da aula

    Ao final desta aula, você deverá ser capaz de:

    •  Entender as similaridades entre a linguagem humana e as linguagens

    utilizadas para programar um computador;

    •  Relacionar as características que envolvem a construção de um programa;•  Fornecer orientações para selecionar uma linguagem de programação para

    uso;

    •  Definir algoritmo e reconhecer seus elementos essenciais.

    Conteúdos da aula

    Acompanhe os assuntos desta aula, se preferir, ao

    término, assinale o conteúdo já estudado.

      Língua vs. Linguagem de programação

      Compiladores vs. Interpretadores

      Programação e o sistema operacional

      Programação e a Internet

      Escolhendo uma linguagem de programação

      O que são algoritmos?  Exercícios propostos

    Prezado aluno, nesta segunda aula, você aprenderá quais são os

    componentes de uma linguagem de programação de computadores,

  • 8/17/2019 Apostila Lógica de Programação.pdf

    17/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    17

    quais são os elementos que influenciam o desenvolvimento de programas e o

    principal assunto em lógica de programação: algoritmos.

    Vamos em frente e boa aula! 

    1 LÍNGUA VS. LINGUAGEM DE PROGRAMAÇÃO

    A linguagem humana é baseada em símbolos, que fornecem um meio para a

    comunicação entre as pessoas. É constituída por elementos que determinam as

    regras e devem ser seguidas para que se mantenha uma comunicação adequada.

    Uma linguagem de programação de computador recebe as mesmas premissas, ou

    seja, é constituída por um conjunto de regras que determinam a forma como o

    computador irá executar atividades específicas.

    O Novo Dicionário Aurélio da Língua Portuguesa define linguagem como: o uso

    da palavra articulada ou escrita como meio de expressão e de comunicação entre as

    pessoas. O Dicionário também descreve a Linguagem de Programação como:

    linguagem que se expressa um conjunto de ações de forma aceitável pelo

    computador.

    É importante percebermos essa semelhança para que tenhamos a primeiraabsorção das regras associadas a uma linguagem de computador e, com isso,

    possamos obter uma adaptação construtiva na programação de computadores.

    Hoje vivemos um nível de uso das linguagens de computador muito próximas

    da linguagem humana. Usando ainda a referência ao Novo Dicionário Aurélio, as

    linguagens atuais são consideradas “Linguagem de Programação de Alto Nível”, ou

    seja, é a linguagem de programação que se assemelha ao inglês comum, o que

    torna mais fácil seu aprendizado e uso na definição de programas de computador.

    Fica então a mensagem de que não há nada de complicado associado àslinguagens de programação de computadores. Na verdade é um constante exercício

    da memória humana que, no momento da construção de um programa, o

    programador   precisa lembrar-se das regras e dos elementos disponíveis na

    linguagem para atingir o seu objetivo.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    18/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    18

    Também é preciso lembrar que se aplica, na construção dos programas, a

    lógica booleana, necessária para condicioná-lo de acordo com validações, regras e

    orientações que desejamos aplicar no computador.

    Conforme observamos na aula anterior, a evolução das linguagens de

    computador gerou uma grande variação, que foram conseqüências não apenas de

    revisões e aprimoramentos, como também, a orientação de uma linguagem

    específica para problemas particulares. Dessa forma, centenas de linguagens de

    programação surgiram e hoje são classificadas em quatro gerações:

    • Linguagens de primeira geração (1GL):  são linguagens totalmente

    dependentes do computador, são conhecidas como “linguagem de máquina”,

    e exigem o mais baixo nível de abstração que um programa pode ser

    construído. Seu uso está cada vez mais restrito na atualidade;• Linguagens de segunda geração (2GL):  com o objetivo de melhorar a

    produtividade na construção dos programas para computador, a primeira

    revisão das linguagens e a construção de novas, tinham por finalidade

    fornecer elementos de programação mais abstratos e com um grande

    número de funcionalidades pré-construídas. As funcionalidades eram

    organizadas na forma de “bibliotecas”, que podiam ser reutilizadas nos

    programas, acelerando a sua construção;

    • Linguagens de terceira geração (3GL): também conhecidas como linguagensestruturadas, são reconhecidas pela grande capacidade procedural e

    estrutural dos dados. Isso significa que programas grandes podiam ser

    divididos em pedaços integrados, facilitando a manutenção dos mesmos;

    • Linguagens de quarta geração (4GL): são as conhecidas “linguagens de alto

    nível” destinadas à construção de programas para finalidades específicas.

    Além de usufruir das características de modularização e bibliotecas das

    linguagens de terceira geração, oferecem um meio ainda mais poderoso na

    construção de programas, principalmente no que se refere à reutilização debibliotecas de programas. Com o uso cada vez mais comum de bancos de

    dados relacionais, essas linguagens foram potencializadas para a construção

    e manipulação de dados. São as linguagens amplamente utilizadas na

    atualidade.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    19/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    19

    2 COMPILADORES VS. INTERPRETADORES

    Como vimos, atualmente, as linguagens de quarta geração são as mais

    utilizadas. Significa que trabalhamos em um nível de construção de programas que o

    computador não entende. A isto chamamos de “abstração de código”, ou seja, não

    sabemos como o computador resolverá o programa que construímos, por ser

    linguagem de máquina, mas sabemos todas as regras de alto nível que devem ser

    seguidas.

    É nesse cenário que ferramentas específicas, chamadas compiladores e

    interpretadores, são utilizadas para converter o programa construído em linguagem

    de alto nível para a linguagem de baixo nível do computador. Essa conversão,

    também muito conhecida como “tradução”, gera o nível de facilidade que as

    linguagens atuais necessitam para manter a produtividade que os negócios exigem

    hoje.

    A primeira abordagem de tradução é a interpretação. A ferramenta de

    interpretação de programas (interpretador) realiza a tradução do programa

    construído em alto nível, em tempo de execução do programa. Conforme vimos na

    aula anterior, sempre que você executar o programa, precisará que o interpretadorrealize a tradução, tal qual mostramos na figura 3.

    Programa deComputador

    InterpretadorLinguagem de

    MáquinaComputador

    Construir, testar e executar o programa

     

    Figura 3 – Etapas na construção e execução de programas interpretados

    A segunda abordagem de tradução é a compilação (figura 4). A ferramenta de

    compilação (compilador) interpreta o programa construído em linguagem de alto

  • 8/17/2019 Apostila Lógica de Programação.pdf

    20/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    20

    nível e gera um programa equivalente em linguagem de máquina. A tradução é

    realizada de várias formas e sua abordagem depende do compilador em uso.

    Programa deComputador

    CompiladorLinguagem de

    MáquinaComputador

    Construir o programa e primeira compilação

    Programa deComputador

    (em linguagem demáquina)

    Computador

    Testar e executar o programa compilado

     

    Figura 4 – Etapas na construção e execução de programas compilados

    3 PROGRAMAÇÃO E O SISTEMA OPERACIONAL

    Segundo Custer (1993), um sistema operacional é um programa de

    computador que fornece um ambiente no qual outros programas de computador

    possam ser executados, permitindo-lhes tirar vantagem fácil do processador e de

    dispositivos de entrada e saída, como os discos.

    Como todo dispositivo computacional necessita de um sistema operacional,

    bem como as variações que existem atualmente no mercado (Windows, Linux e

    suas várias compilações), é importante você perceber a importância que o software

    básico possui na construção de programas.

    Como o sistema operacional é responsável pela disponibilidade de vários

    recursos do computador, as atuais linguagens de programação se utilizam das

    bibliotecas fornecidas pelo sistema operacional para realizar suas principais tarefas.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    21/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    21

    As potencialidades de um programa são derivadas das capacidades que o sistema

    operacional oferece para a linguagem de programação.

    Por exemplo, é dessa forma que o Windows e as interfaces gráficas

    fornecidas com o Linux oferecem ao programador a facilidade para a construção de

    programas que utilizam janelas. Quando um programador insere o comando para

    desenhar uma janela, a linguagem, após interpretada ou compilada, realiza o

    desenho através do diálogo entre a linguagem e os recursos do sistema operacional,

    que, por sua vez, se utiliza das características físicas do computador.

    Isso também vale para armazenar informações, imprimir dados e outras

    atividades que um programa pode realizar.

    Nesse momento, o importante é você reconhecer a importância em conhecer

    as potencialidades do sistema operacional para conseguir explorá-las ao máximo ecom isto obter resultados ricos e poderosos na construção de seus programas.

    4 PROGRAMAÇÃO E A INTERNET

    Da mesma forma que o sistema operacional oferece recursos e influencia na

    construção de programas, a Internet oferece um novo nível de oferta de recursos. A

    Internet de hoje disponibiliza um conjunto de funcionalidades que o programadorpode explorar para construir programas a serem utilizadas por dezenas ou milhares

    de pessoas, com a ajuda de três elementos fundamentais:

    •  Um meio comum de acesso às informações (rede de comunicação pública –

    Internet);

    •  Uma interface gráfica comum para manipular as informações (páginas

    apresentadas em um único aplicativo - Navegador);

    •  Uso de uma linguagem de programação comum, independente do

    computador utilizado pelo usuário.

    O desenvolvimento para a Internet também se baseia nas mesmas premissas

    de construção de programas, mas possui particularidades que exigem do

    programador algumas preocupações que a programação para Windows ou Linux

    não exigem. A maioria dessas particularidades está associada aos elementos

    fundamentais acima mencionados.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    22/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    22

    5 ESCOLHENDO UMA LINGUAGEM DE PROGRAMAÇÃO

    Além das gerações das linguagens de programação de computadores, há

    uma categoria atual que fornece uma nova abordagem para a construção de

    programas: as ferramentas de desenvolvimento rápido de sistemas, ou RAD ( rapid

    application development ). Com o maior número de necessidades das soluções

    baseadas em interfaces gráficas, um novo conjunto de ferramentas de software

    explora essas oportunidades, na forma de um processo interativo para o

    programador no desenvolvimento da solução.

    As linguagens RAD, como são conhecidas, permitem ao programador

    desenhar como o programa deverá se apresentar (interface com o usuário) e então

    escrever o código de programação para fazer com que a janela desenhada tenha

    alguma funcionalidade para o usuário. Com este método, houve certo nivelamento

    das ferramentas utilizadas para construir programas, liberando o programador para

    manter o foco na linguagem e na lógica empregada em resolver o problema.

    Dessa forma, a escolha de uma linguagem de programação recebe um

    conjunto de avaliações que, de acordo com o objetivo, determina qual deve ser a

    melhor aplicada. Não existe a melhor linguagem. O que existe são algumas variáveisque podem ser consideradas na escolha de uma linguagem:

    •  Prazo para o desenvolvimento do programa e a experiência do programador

    na linguagem, que favoreçam a produtividade de execução dos trabalhos de

    programação;

    •  Sistema operacional onde o programa será executado;

    •  Necessidades tecnológicas específicas que favoreçam uma linguagem em

    particular;

    •  Evolução da linguagem, compatibilidade com novas tecnologias e visão decrescimento futuro;

    •  Tamanho da equipe envolvida na construção do sistema;

    •  Suporte do fabricante ou de uma comunidade constituída, que forneça um

    nível mínimo de segurança na construção de programas.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    23/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    23

    Nesse contexto, a importância de um bom entendimento e conhecimento sobre

    lógica de programação, objeto desse livro didático, é fundamental para que a

    elaboração de um programa possa ser utilizada em qualquer linguagem.

    Há um site independente na Internet que procura realizar uma pesquisa mensal

    de popularidade das atuais linguagens de programação

    (http://www.tiobe.com/index.htm?tiobe_index). A tabela 1, a mais atual publicada,

    apresenta o seguinte resultado para as 10 primeiras.

    Tabela 1 – Ranking de Linguagens 

    Ranking Linguagem

    1 Java

    2 C3 C++

    4 PHP

    5 Visual Basic

    6 Perl

    7 Python

    8 JavaScript

    9 C#

    10 Ruby

    6 O QUE SÃO ALGORITMOS?

    Segundo Ximenes (1993), um algoritmo é qualquer conjunto finito de

    instruções que possa ser seguido para a realização de uma tarefa específica ou

    resolução de um determinado problema. Já na área de Informática, também de

    acordo com Ximenes (1993), um algoritmo é definido como uma seqüência

    ordenada e finita de passos, independente da linguagem de programação a ser

    utilizada para codificá-lo, que leva à solução de um dado problema.

    É provável que você já tenha ouvido falar em algoritmos. Na verdade, a

    palavra pode ser aplicada a qualquer atividade que aplique o conceito acima

  • 8/17/2019 Apostila Lógica de Programação.pdf

    24/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    24

    descrito. Receitas de bolo, manuais com procedimentos de execução e roteiros para

    atendimentos específicos são alguns exemplos de algoritmos.

    Aplicamos o conceito de algoritmo diariamente, a partir do momento que

    estabelecemos um planejamento mental para realizar uma determinada tarefa,

    considerando que deveremos executar um conjunto de passos até a conclusão do

    objetivo a ser atingido.

    Por exemplo:

    Início

    1. Colocar a chave na ignição;

    2. Virar a chave;

    3. Se o carro pegar

    3.1. Pressionar o pedal de embreagem;3.2. Posicionar a primeira marcha;

    3.3. Acelerar o carro;

    4. Senão

    4.1. Repetir;

    Fim

    Um algoritmo possui quatro propriedades essenciais:

    •  Completo: para que um algoritmo seja considerado completo, todas as

    ações precisam ser descritas e devem ser únicas;•  Não pode haver redundância: um conjunto de instruções só pode ter

    uma única forma de ser interpretada. Conforme nosso exemplo acima, o

    algoritmo só permite uma forma de ligar o carro usando a chave de

    ignição;

    •  Determinístico: esta terceira propriedade significa que se as instruções

    forem executadas, é certo que o resultado esperado será sempre atingido;

    •  Finito: significa que as instruções precisam terminar após um número

    limitado de passos.

    SÍNTESE

  • 8/17/2019 Apostila Lógica de Programação.pdf

    25/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    25

    Nesta segunda aula avançamos um pouco mais no mundo da programação

    de sistemas de computador. Começamos entendendo as razões que definem a

    linguagem de computador como um meio para o programador realizar suas

    atividades e percebemos a grande similaridade com a linguagem humana.

    Aprendemos também quais os agentes internos e externos que influenciam

    na tarefa de programar um computador e ressaltamos a importância que o contexto

    de execução do programa determina os primeiros passos na sua construção.

    E já que falamos tanto de linguagem, obtivemos o primeiro contato com as

    gerações de linguagens de computador, suas características e os elementos

    essenciais para escolher a linguagem a ser utilizada.

    Finalmente, fizemos nossa primeira incursão sobre o termo algoritmo.

    Perceba que muitos conceitos aqui apresentados encaixam-se com asinformações tratadas na primeira aula, sendo uma abordagem estruturada e

    construtiva na elaboração de seu conhecimento para o desenvolvimento de

    sistemas.

    Espero que você tenho chegado até aqui motivado pelo conhecimento até

    agora absorvido e tenha certeza que muito mais vêm por aí. Fique firme, pratique os

    exercícios sugeridos e vamos seguindo em frente.

    EXERCÍCIOS PROPOSTOS

    2) Quais são as gerações das linguagens de programação?

     ___________________________________________________________________ 

     ___________________________________________________________________ 

  • 8/17/2019 Apostila Lógica de Programação.pdf

    26/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    26

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________

    2) Cite a diferença entre o compilador e um interpretador.

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________

    3) Descreva com as suas próprias palavras o que é um algoritmo.

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________

    4) Quais são as propriedades essenciais de um algoritmo?

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________ 

  • 8/17/2019 Apostila Lógica de Programação.pdf

    27/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    27

    Aula 3 

    FORMAS DE REPRESENTAÇÃO DE

    UM ALGORITMO

    Objetivos da aula

    Ao final desta aula, você deverá ser capaz de:

    •  Entender as opções de representação de um algoritmo;

    •  Fornecer as orientações nas técnicas de representação de algoritmos;

    •  Construir um algoritmo usando pseudocódigo;

    •  Apresentar graficamente um algoritmo usando um fluxograma.

    Conteúdo da aula

    Acompanhe os assuntos desta aula, se preferir, ao

    término, assinale o conteúdo já estudado.  Formas de representação de um algoritmo

      O que é um pseudocódigo?

      Interpretador de Linguagem Algorítmica

      Regras para construção de um pseudocódigo

      O que é um fluxograma?

      Regras para representação gráfica de um algoritmo

      Exercícios propostos

    Nesta terceira aula, você conhecerá detalhes técnicos envolvidos na

    construção de algoritmos e aprender como representá-los.

    Como você verá nesta unidade a representação de algoritmos e o

    uso de um software para apoio, são recursos comuns que o programador iniciante

    obtém para melhor entendimento e prática na lógica de programação.

    Boa aula! 

  • 8/17/2019 Apostila Lógica de Programação.pdf

    28/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    28

    1 FORMAS DE REPRESENTAÇÃO DE UM

    ALGORITMO

    Os algoritmos podem ser representados de várias formas, como:

    • Usando uma língua comum (português, inglês, espanhol e etc.) meio utilizado

    para a descrição de receitas, manuais de procedimentos, etc., sendo a forma

    mais espontânea na representação de algoritmos;

    •  Usando uma linguagem de português estruturado, que também é conhecida

    como pseudocódigo ou pseudo linguagem. O pseudocódigo também recebe

    variações de nomes, como: Portugol, PDL (Program Design Language ),pascalóide, linguagem algorítmica e outros. Nesse curso vamos utilizar o

    termo “pseudocódigo”, considerando ser a forma mais pura de objetivo desse

    método;

    • Usando representações gráficas, como diagramas e fluxogramas.

    Cada uma das formas de representação possui vantagens e desvantagens e

    cabe ao programador escolher qual oferece as melhores características para atender

    suas necessidades. Também é comum a combinação das representações,

    principalmente quando há necessidade de um nível de entendimento de váriaspessoas. As três formas mais comuns para representar um algoritmo são:

    • Diagrama de Nassi-Shneiderman (Diagrama de Chapin);

    •  Pseudocódigo;

    • Fluxogramas (Diagrama de Fluxo).

    Nesse curso focalizaremos os pseudocódigos e fluxogramas.

    2 O QUE É UM PSEUDOCÓDIGO?

    É uma forma especial de linguagem, bem mais restrita que a lingua portuguesa

    e com significados bem definidos para todas as palavras utilizadas nas instruções

    inseridas em um programa. O objetivo principal dessa abordagem é permitir ao

    programador pensar no problema em si e não nas regras particulares de uma

  • 8/17/2019 Apostila Lógica de Programação.pdf

    29/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    29

    linguagem de programação ou em qual equipamento/sistema operacional irá

    executar o algoritmo.

    No pesudocódigo, assim como nas linguagens de programação, basicamente

    utilizamos comandos que compõem a execução do algoritmo. São comandos

    executados seqüencialmente, de forma que um comando somente será executado

    ao término da execução do comando anterior.

    Um exemplo de pseudocódigo é:

    Inicio

    fim

    Nas próximas páginas, vamos explorar os principais componentes dessa

    linguagem e, à medida que o curso evoluir, novos elementos da linguagem serão

    apresentados, para representar a solução do problema que será proposto.

    3 INTERPRETADOR DE LINGUAGEM ALGORÍTMICA

    Um dos grandes desafios do programador iniciante é acostumar-se com as

    tarefas para a construção de algoritmos. Tradicionalmente, aprende-se lógica de

    programação usando-se uma linguagem particular, dessa forma, o iniciante aprende

    lógica já inserido na linguagem de programação final que será utilizada (Pascal, C,

    C++ e etc.). Alguns autores acreditam que essa abordagem acelera o processo de

    aprendizagem, mas exige do iniciante um grau de entendimentos dos elementos

    envolvidos, que pode não atender a todos. Coisas como experiência anterior com a

    informática, interesse natural em programação de computadores e capacidade deautodesenvolvimento, fornecem um contexto adequado para essa abordagem.

    Para os programadores iniciantes, que possuem alguma limitação no

    aprendizado sobre lógica de programação, é necessária uma abordagem mais clara,

    comum e gradual.

    Assim, surgiram as iniciativas dos projetos de Interpretador de Linguagem

    Algorítmica (ILA). De forma geral, são necessidades percebidas na área acadêmica

  • 8/17/2019 Apostila Lógica de Programação.pdf

    30/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    30

    para envolver os alunos nos primeiros passos no mundo da programação. Vários

    programas foram lançados com esta finalidade, mas, infelizmente, não se mantém

    um padrão mínimo da linguagem de pseudocódigo utilizada.

    Nesse curso utilizaremos um ILA projetado no mundo acadêmico de Portugal,

    um software chamado Portugol, construído usando a linguagem Java para seu

    desenvolvimento. Os exemplos e exercícios apresentados serão todos compatíveis

    com o ambiente desse sistema.

    A grande vantagem no uso dessa ferramenta é a simplicidade da linguagem

    utilizada e a capacidade de relacionamento em gerar código e fluxograma em um

    ambiente único. De todos os programas que testei, este se apresenta com a melhor

    abordagem dos elementos necessários da ferramenta para um programador

    iniciante.

    3.1 INSTALAÇÃO DO ILA - Portugol

    Efetue o download do programa Portugol  a partir da Biblioteca do curso,

    identificado pelo seguinte nome:

    Portugol233.zip

    Ao terminar o download,  acesse a pasta onde o arquivo foi salvo e

    descompacte-o. Ao terminar a descompactação, uma subpasta será apresentadacom o nome de dist (figura 5). Abra-a e observe que haverá um arquivo com o nome

    run.bat, efetue um duplo-clique sobre esse arquivo para executar o programa.

    Figura 5 – Lista de Arquivos da pasta dist do software Portugol

  • 8/17/2019 Apostila Lógica de Programação.pdf

    31/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    31

    É importante verificar que, para executar o programa, é necessário que uma

    Máquina Virtual Java (JVM ou Java Virtual Machine) esteja instalada no sistema

    operacional. Caso contrário, a execução do arquivo acima apresentará um erro.

    Caso você precise instalar uma JVM, acesse novamente a página da

    biblioteca do curso, verifique que há dois arquivos que poderão ser baixados:

    plataforma Windows e plataforma Linux. Efetue o download do programa de acordo

    com o seu sistema operacional. São eles:

    Plataforma Windows - jre-6u1-windows-i586-p.exe

    Plataforma Linux - jre-6u1-linux-i586-rpm.bin

    Execute o programa baixado e siga as instruções da instalação.

    Caso tudo funcione adequadamente, ao executar o arquivo run.bat, será

    apresentada uma janela conforme a figura 6.

    Figura 6 – Janela de entrada no sistema Portugol 

    O sistema oferece dois ambientes para construção de algoritmos: editor de

    texto, para a construção usando pseudocódigo ou o editor de fluxogramas, para aconstrução usando uma abordagem gráfica.

    3.2 AMBIENTE DO EDITOR DE PSEUDOCÓDIGO DO PORTUGOL

    Ao executar o programa de Editor de Texto (Portugol IDE), um ambiente de

    construção de pseudocódigo é apresentado (figura 7).

  • 8/17/2019 Apostila Lógica de Programação.pdf

    32/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    32

    Figura 7 – Janela principal do sistema Portugol

    O programa possui elementos visuais como todo software para Windows,

    possui um menu de comandos, uma barra de ferramentas, e dois painéis principais:

    editor de código e informações.

    No painel de informações, há uma divisão em guias que oferece três áreas de

    conteúdo, conforme mostra a figura 8.

    Guia Descrição/Objetivo

    Ecran Apresenta os resultados do algoritmo

    Informações Apresenta informações sobre o sistemae pontos de observação sobre a

    execução do programa.

    Ajuda da Linguagem Manual com as regras da linguagem de

    pseudocódigo utilizada na ferramenta.

    Figura 8 – Páginas do painel de informações

  • 8/17/2019 Apostila Lógica de Programação.pdf

    33/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    33

    4 REGRAS BÁSICAS PARA A CONSTRUÇÃO DE UM

    PSEUDOCÓDIGO

    Conforme vimos, um pseudocódigo recebe regras da mesma forma que uma

    linguagem convencional. Possui regras de sintaxe (forma como os comandos devem

    ser escritos) e regras de semântica (conjunto de ações que serão exercidas pelo

    computador durante a execução do referido comando).

    Todo programa escrito em pseudocódigo deve conter a estrutura do blo0co

    principal de comandos, que deve começar com a palavra “inicio” e terminar com a

    palavra “fim” (sem as aspas). Os comandos para a execução do programa são

    inseridos dentro do bloco inicio-fim.

    Observe o programa abaixo escrito em pseudocódigo:

    inicio

    variavel texto nome

    variavel inteiro nota1, nota2, media

    enquanto nome =/= "fim" faz

    escrever "Digite o nome do aluno"

    ler nome

    escrever "Informe a nota da primeira prova"

    ler nota1

    escrever "Informe a nota da segunda prova"

    ler nota2

    media = 7 então 

    escrever "Aluno aprovado = ", nome

    senão

    escrever "Aluno reprovado = ", nome

    fimse

  • 8/17/2019 Apostila Lógica de Programação.pdf

    34/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    34

    ler nome

    fimEnquanto

    fim

    Observe que as palavras em negrito são os comandos em conformidade com a

    sintaxe da linguagem de pseudocódigo, que é aplicada no Interpretador da

    Linguagem. Perceba também que algumas linhas possuem recuos em relação à

    linha anterior. A essa distribuição de recuos chamamos indentação, significando

    que os elementos possuem uma hierarquia facilitando a leitura do programa por

    outras pessoas.

    4.1 DIGITANDO O ALGORITMO NO SOFTWARE PORTUGOL

    Ao digitar um programa no PORTUGOL IDE (figura 9), para verificar se o

    programa funciona de acordo com suas expectativas, clique no botão Executar, ou

    pressionar a tecla F3, ou executar o comando Executar do menu Algoritmo.

    Figura 9 – Comando Executar

    Após a execução do algoritmo, observe que o painel de informações apresentará

    conteúdo nas guias ecran e informações. No ecran, são apresentadas as

    mensagens do comando ESCREVER e LER (Entrada e Saída do algoritmo).

  • 8/17/2019 Apostila Lógica de Programação.pdf

    35/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    35

    Quando a instrução LER é executada, uma caixa de diálogo é apresentada

    solicitando a informação para a entrada de dados pelo usuário (figura 10).

    Figura 10 – Programa em execução no painel de informações

    Em Informações, são apresentados dados sobre a execução do algoritmo

    (figura 11), os horários de execução e os passos realizados.

    Figura 11 – 0 painel de informações apresenta um resumo

    5 O QUE É UM FLUXOGRAMA?

    O fluxograma, ou diagrama de fluxo, foi por muito tempo a representação

    preferida dos programadores para a construção de algoritmos. Um fluxograma é

    uma representação gráfica da seqüência de ações que podem ocorrer em um

    programa.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    36/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    36

    O fluxograma utiliza-se de símbolos específicos para a representação gráfica

    dos algoritmos, e sofrem algumas variações de acordo com o autor ou ferramenta

    em uso. A tabela 2 mostra a simbologia tradicionalmente utilizada por fluxogramas.

    Tabela 2 – Elementos gráficos utilizados em fluxogramas

    Processos – Utilizado na atribuição de

    valores para variáveis

    Decisão – Representa as decisões queocorrem no programa

    Leitura – Para ler o conteúdo das variáveis

    Escrita – Utilizado para a escrita de dados e

    conteúdos de variáveis

    Conector – Muito utilizado para conectar

    partes do fluxo ou na integração com outros

    fluxos

    Terminal – Normalmente utilizado para Inicio

    e Fim do fluxo.

    Setas de fluxo de controle

  • 8/17/2019 Apostila Lógica de Programação.pdf

    37/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    37

    Com esses elementos visuais o programador representa cada passo que o

    programa deve executar, obtendo uma visão gráfica do fluxo do programa.

    Existe um grande número de ferramentas baseadas em computador para

    apoiar a construção de fluxogramas, tanto para Windows como também para Linux.

    Em nosso curso, vamos utilizar a ferramenta Portugol  para a representação

    gráfica em fluxogramas. Esse software permite a conversão direta entre o programa

    construído em pseudocódigo e sua correspondência representativa em fluxograma,

    segundo nos mostra a figura 12.

    Figura 12 – Converter o algoritmo em fluxogrma

    Mas é possível também realizar a operação contrária, ou seja, iniciar a

    construção de um algoritmo pelo fluxograma e converter o diagrama para

    pseudocódigo. Veja as figuras 13 e 14.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    38/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    38

    Figura 13 – Ambiente de visualização/construção de Fluxogramas

  • 8/17/2019 Apostila Lógica de Programação.pdf

    39/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    39

    Figura 14 – Exemplo de Fluxograma

  • 8/17/2019 Apostila Lógica de Programação.pdf

    40/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    40

    SÍNTESE

    Agora sim!

    Começamos a ter uma visão prática sobre a construção de programas de

    computador. Nesta aula você aprendeu as duas principais representações que

    podem ser utilizadas para a construção de algoritmos. São as ferramentas principais

    do curso e servem como principal base para acelerar no conhecimento de

    linguagens de programação.

    Cabe ressaltar que o uso dessas ferramentas tem como principal objetivo

    facilitar a descrição do seu entendimento para a solução de um problema e a opção

    entre pseudocódigo ou fluxograma dependerá do contexto do problema a ser

    resolvido.

    Nas próximas aulas você conhecerá os comandos utilizados em cada

    representação de um algoritmo, estudando detalhadamente cada exemplo.

    Até a próxima aula.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    41/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    41

    EXERCÍCIOS PROPOSTOS

    3) Descreva as diferenças entre um pseudocódigo e um fluxograma.

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________

    2) Execute o software Portugol e construa em pseudocódigo e/ou fluxograma os

    algoritmos abaixo (não se preocupe nesse momento em utilizar desvios

    condicionais):

    •  Troca de pneu de um carro;

    •  Troca de lâmpada de um cômodo da casa;

    •  Realizar uma ligação e conversar por um telefone celular;

    •  Verificação do nível de óleo do carro.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    42/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    42

    Aula 4 

    VARIÁVEIS E CONSTANTES

    Objetivos da aula

    Ao final desta aula, você deverá ser capaz de:

    •  Conceituar variáveis e constantes em um algoritmo;

    •  Declarar variáveis, determinar o tipo de dados a ser armazenado e comentar

    algoritmos;

    •  Atribuir valores às variáveis;•  Trabalhar com expressões matemáticas.

    Conteúdos da aula

    Acompanhe os assuntos desta aula, se preferir, ao

    término, assinale o conteúdo já estudado.  Variáveis e constantes

      Tipos de dados e Atribuição de valores

      Comentando algoritmos

      Operadores aritméticos e relacionais

      Expressões aritméticas e relacionais

      Instruções Ler e Escrever (pseudocódigo)

      Exercícios propostos

    As variáveis e constantes são elementos fundamentais de um

    programa de computador. Nesta aula você obterá o conhecimento

    necessário para construir algoritmos usando estes elementos de

    programação.

    Boa aula!

  • 8/17/2019 Apostila Lógica de Programação.pdf

    43/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    43

    1 VARIÁVEIS E CONSTANTES

    As variáveis e constantes são conceitos fundamentais para a construção de

    algoritmos, pois são através deles que um algoritmo “armazena” os dados dos

    problema.

    1.1 VARIÁVEIS

    Quando uma determinada informação do problema tem a possibilidade de

    sofrer alterações (ou variações) no decorrer da execução do programa, essa

    informação deverá ser tratada como uma variável  do problema e deve ser

    representada no algoritmo. Como o próprio nome sugere, as variáveis podem conter

    valores diferentes a cada instante do programa, segundo as instruções do algoritmo.

    Do ponto de vista técnico, uma variável é um espaço de memória do

    computador que “reservamos” para guardar os dados elementares do problema a

    ser resolvido.

    Quando descrevemos uma variável no algoritmo, utilizamos um nome (ou

    identificador) para representá-la e seu conteúdo pode ser alterado, consultado ou

    apagado quantas vezes forem necessárias, pois a variável sempre armazenará o

    último valor atribuído para o seu conteúdo. A ação de descrever uma variável no

    algortimo é chamada de declaração ou declarar uma variável.

    1.2 CONSTANTES

    Quando uma informação não tem qualquer possibilidade de alteração, ouvariar, no decorrer da execução do programa, deve ser tratada como uma

    constante.

    Do ponto de vista técnico, uma constante é uma área de armazenamento do

    computador que manterá seu conteúdo durante toda a execução do programa. Esta

    área possui um nome (ou identificador) e poderá ser recuperada (lida) a qualquer

    momento no algoritmo.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    44/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    44

    2 TIPOS DE DADOS E ATRIBUIÇÃO DE VALORES

    Toda variável ou constante precisa receber um tipo de dado, que determinará

    qual o domínio de seu conteúdo. Os tipos mais comuns de dados são conhecidos

    como tipos primitivos, descritos na tabela 3.

    Tabela 3 – Tipos de dados usados em Pseudocódigo

    Tipo Descrição Domínio

    Inteiro Todo e qualquer dado numérico

    que pertença ao conjunto de

    números inteiros relativos

    (negativo, nulo ou positivo)

    -2.147.483.648

    2.147.483.647

    Real Todo e qualquer dado numérico

    que pertença ao conjunto de

    números reais (negativo, nulo ou

    positivo)

    -1.7 E 308

    1.7 E 308

    Lógico Todo e qualquer dado que só pode

    assumir duas situações (dados

    biestáveis, algo como verdadeiro oufalso)

    Verdadeiro ou Falso,

    normalmente entre pontos.

    Por exemplo, .verdadeiro.

    ou .f.

    Texto Todo e qualquer dado composto

    por um conjunto de caracteres

    alfanuméricos (números, letras e

    caracteres especiais)

    Seqüências de caracteres

    entre aspas.

    Toda variável possui algum conteúdo que será armazenado e manipulado pelo

    algoritmo. As variáveis que serão utilizadas nos algoritmos devem ser declaradas

    inicialmente. A declaração de uma variável indica o tipo de dado que ela pode

    guardar no decorrer da execução do algoritmo (ou no decorrer da execução do

    programa que futuramente será construído).

    Para declararmos uma variável, temos que criar-lhe um identificador, que será

    o nome da variável no algoritmo e também temos que definir o tipo de dado que a

  • 8/17/2019 Apostila Lógica de Programação.pdf

    45/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    45

    variável pode armazenar. Faremos a declaração de variáveis obedecendo ao

    seguinte padrão:

    variavel [tipo] [nome]

    Onde tipo  pode ser uma das palavras: inteiro, real, lógico ou texto; o nomedeve seguir as seguintes regras:

    • Deve começar por um caractere alfabético;

    • Pode ser seguido por mais caracteres alfabéticos e/ou numéricos;

    • Não é permitido o uso de caracteres especiais, como: @, #, &, *, +, ? etc.

    (exceto o sublinhado).

    Exemplos de nomes corretos de variáveis:

    Agencia Nome_Aluno Endereco Salario

    Data_Venda Sexo Nr_Nota_Fiscal Nr_Tentativas

    2.1 CASE SENSITIVE

    Algumas linguagens possuem regras particulares para os nomes das variáveis.

    Mas há uma observação importante e que pode variar de uma linguagem para outra,

    é a sensibilidade por letras maiúsculas e minúsculas utilizadas no nome da variável.

    Por exemplo, Nome é diferente de NOME.

    Por isso, para que você não tenha problemas futuros, neste curso declare

    sempre as variáveis em letras maiúsculas.

    2.2 ATRIBUIÇÃO DE VALORES

    Conforme vimos, cada variável deve armazenar e determinar um tipo de dado.

    A definição de tipos de dados diferentes oferece uma série de vantagens para a

    programação de computadores. As duas mais importantes são:

    • A economia no armazenamento de dados na memória;

    • Velocidade nas operações aritméticas e lógicas.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    46/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    46

    A forma de atribuir um valor para uma variável é utilizando o sinal de igual 

    acompanhado do valor a ser atribuído. Em pseudocódigo é utilizado o símbolo de

    seta:

    X 2

    3 COMENTANDO ALGORITMOS

    Um tópico importante, mas pouco explorado nas linguagens de programação é

    a necessidade de inserir comentários no algoritmo construído. Toda linguagem de

    programação, bem como um pseudocódigo fornecem uma forma simples (e

    normalmente padronizada) para inserir comentários no programa.

    O aspecto importante em inserir comentários está na capacidade de leitura que

    forneceremos para outros programadores que, porventura, venham a reutilizar o

    programa construído. As soluções lógicas que construímos para um problema pode

    variar de programador para programador, por isso trabalhar com comentários é uma

    prática saudável para o relacionamento com outros profissionais.

    Ao fazer uso dos comentários, você estará documentando o programa para seu

    próprio uso. Não é incomum um programador esquecer quais foram as bases que

    utilizou para construir o algoritmo e, caso necessite revisar um programa há muito

    tempo sem ser acessado, como procederá se o esqueceu?

    Para inserir um comentário, inicie a frase com duas barras comuns. Por

    exemplo:

     //Exemplo de comentário

    4 OPERADORES ARITMÉTICOS E RELACIONAIS

  • 8/17/2019 Apostila Lógica de Programação.pdf

    47/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    47

    4.1 OPERADORES ARITMÉTICOS

    Quando construímos algoritmos, é comum trabalharmos com expressõesmatemáticas para a resolução de alguns problemas. As expressões matemáticas

    podem fazer uso de operadores aritméticos e lógicos. As operações são ações

    executadas sobre os operandos (variáveis ou constantes) que foram previamente

    definidos.

    Chamamos de operadores aritméticos o conjunto de símbolos que representa

    as operações básicas da matemática e podem ser aplicadas a números inteiros e/ou

    reais, conforme tabela 4.

    Tabela 4 – Operadores Aritméticos

    Operação Operador

    Adição +

    Subtração -

    Multiplicação *

    Divisão /

    Potenciação ^

    Radiciação %

    Os símbolos utilizados como operador na tabela 4, são representativos na

    ferramenta de pseudocódigo utilizada neste curso. Algumas linguagens possuem

    variações nos símbolos utilizados para potenciação e radiciação.

    Um aspecto importante no uso de operadores aritméticos é sua prioridade

    matemática, ou seja, um operador de maior prioridade realizará sua operação antes

    de um operador de menor prioridade. A tabela 5 apresenta as regras de prioridade eque podem ser alteradas com o uso de parênteses.

    Tabela 5 – Prioridade de cálculo dos operadores aritméticos

    Operador Operação Prioridade

    ^, ** Exponenciação 1

  • 8/17/2019 Apostila Lógica de Programação.pdf

    48/86

  • 8/17/2019 Apostila Lógica de Programação.pdf

    49/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    49

    5 INSTRUÇÕES LER E ESCREVER

    Na construção de algoritmos, é conveniente que o usuário possa informar

    dados externos para serem operados pelo programa. Assim, um programa pode

    receber um dado informado por um operador através de um comando de leitura. Da

    mesma forma, pode ser necessário conhecer o resultado de determinada operação

    executada pelo computador, então será necessária uma forma de exibir os dados.

    Cada linguagem tem uma forma específica para entrada e saída de dados. Emalgoritmos usaremos os comandos genéricos Ler e Escrever, para realizar a

    interface com o usuário, conforme mostra a figura 15.

    Figura 15 – Exemplo de algoritmo de entrada e saída de dados

    A instrução Ler é utilizada quando se deseja obter informações do teclado do

    computador, ou seja, é um comando de entrada de dados. Para simplificar, usa-se

    a instrução Ler, quando se necessita que o usuário do algoritmo digite algum dado(e posteriormente do programa).

    A instrução Escrever é utilizada quando se deseja mostrar informações na tela

    do computador, ou seja, é um comando de saída de dados. Para simplificar, usa-

    se a instrução Escrever, quando se necessita mostrar algum dado para o usuário do

    algoritmo (e posteriormente do programa).

  • 8/17/2019 Apostila Lógica de Programação.pdf

    50/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    50

    Algumas sugestões importantes para escrever algoritmos em pseudocódigo,

    para realizar operações de entrada e saída:

    • Incluir comentários nas linhas mais importantes do programa;

    •  Utilizar nomes significativos para as variáveis e constantes, que possamidentificar o seu conteúdo;

    • Efetuar a indentação das linhas para facilitar a leitura.

    SÍNTESE

    Nesta aula estudamos os primeiros elementos para o desenvolvimento de um

    algoritmo, principalmente no que se refere à entrada e saída de dados. Um processo

    comum de execução de um programa é entrar com uma informação, processá-la e

    apresentar o resultado obtido, processo descrito nesta aula.

    Também conhecemos a importância das variáveis e constantes na

    programação de computadores. Na verdade, todo trabalho realizado por um

    computador é baseado na manipulação de informações contidas em sua memória.Parte desta aula é sabermos classificar os dados de acordo com o tipo de

    informação contida neles.

    Finalmente, procuramos compreender como trabalhar com expressões

    aritméticas e lógicas, componentes necessários para a construção de algoritmos.

    EXERCÍCIOS PROPOSTOS

    4) Considerando as variáveis abaixo, assinale N para numérico, C para texto e L

    para lógico:

    ( ) 1000 ( ) “4,56”

  • 8/17/2019 Apostila Lógica de Programação.pdf

    51/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    51

    ( ) “12” ( ) .Verdadeiro.

    ( ) .v. ( ) “cinco”

    ( ) “Casa 8” ( ) “5”

    ( ) -456 ( ) 456

    ( ) -4.56 ( ) 45.876

    2) Supondo que as variáveis Nota1, Nota2, Matrícula e Sexo serão utilizadas para

    armazenar as notas de um aluno, o número da matrícula do aluno e o sexo do aluno,

    respectivamente, efetue abaixo a declaração das variáveis e seus tipos

    corretamente.

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________ 

     ___________________________________________________________________

    3) Encontre os erros da seguinte declaração de variáveis:

    VariáveisNumérico endereço, nfilhos, valor$, xpto, c, peso

    Texto idade, x

    Lógico NomeDoPai

     ___________________________________________________________________ 

     ___________________________________________________________________

    4) Desenvolva algoritmos para os problemas abaixo, usando a ferramenta Portugol:

    a. Calcular a média entre 4 valores informados pelo usuário e apresentar

    o resultado;

    b. Calcular o resultado de xy, onde x e y serão fornecidos pelo usuário e

    apresentar o resultado.

    Aula 5 

  • 8/17/2019 Apostila Lógica de Programação.pdf

    52/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    52

    ESTRUTURAS DE PROGRAMAÇÃO -

    CONDICIONAIS

    Objetivos da aula

    Ao final desta aula, você deverá ser capaz de:

    •  Utilizar os operadores lógicos;

    •  Utilizar uma estrutura de controle seqüencial e condicional;

    •  Detectar os erros comuns de programação.

    Conteúdos da aula

    Acompanhe os assuntos desta aula, se preferir, ao

    término, assinale o conteúdo já estudado.

      Estruturas de controle

      Usando expressões lógicas

      Desvios condicionais simples e compostos

      Bloco SE-ENTÃO-SENÃO

      Bloco ESCOLHE-CASO

      Identificando erros comuns de lógica

    A proposta desta aula é lhe apresentar e lhe ensinar uma abordagem

    comum na construção de programas, o que são chamados de

    estruturas de controle. A lógica condicional e seus elementos serão

    tratados.

    Boa aula e vamos adiante!

  • 8/17/2019 Apostila Lógica de Programação.pdf

    53/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    53

    1 ESTRUTURAS DE CONTROLE

    Os exemplos de algoritmos que vimos até agora já nos deram uma visão

    simples do que é um bloco de código de programação. Quando um algoritmo é

    executado e todos os seus passos (instruções) são processados em seqüência, sem

    desvios e sem repetir ou omitir nenhuma linha, é chamado de algoritmo seqüencial

    (figura 16).

    Por exemplo:

    inicio

    real soma, numero1, numero2escrever "Digite um numero: "

    ler numero1

    escrever "Digite outro numero: "

    ler numero2

    soma

  • 8/17/2019 Apostila Lógica de Programação.pdf

    54/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    54

    se soma

  • 8/17/2019 Apostila Lógica de Programação.pdf

    55/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    55

    2 USANDO EXPRESSÕES LÓGICAS

    Como vimos na aula anterior, foram apresentados os operadores aritméticos

    (soma, subtração, etc.) com eles formamos EXPRESSÕES ARITMÉTICAS, por

    exemplo B = A * C2. Também foram apresentados os operadores relacionais (maior

    que, menor que, igual e etc.), com eles construímos EXPRESSÕES RELACIONAIS,

    ou seja, estamos relacionando elementos para realizar uma comparação, por

    exemplo B 10 E X 10 OU Y > 20 ENTÃO

    Neste caso, retornará verdadeiro se X

    for maior que 10 OU se Y for maior que

    20. Uma das expressões for verdadeira,

    o retorno do teste será verdadeiro.

    (há três possibilidades)

    Negação NÃO SE NÃO A = Y ENTÃO

    Este operador inverte o resultado, nesteexemplo, se A for igual a Y retornará

    FALSO.

    (somente há uma possibilidade)

    Disjunção

    (Exclusiva)

    XOU SE X > 10 XOU Y > 20 ENTÃO

    Somente se X > 10 ou Y > 20 retornará

    verdadeiro, um ou outro.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    56/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    56

    Operação Operador Exemplo de expressão lógica

    (há duas possibilidades)

    Dessa forma, estamos revisitando a tabela verdade, que apresenta os

    resultados possíveis dos operadores lógicos (tabela 8).

    Tabela 8 – Resumo de possibilidades usando os operadores lógicos

    Retorno de cada expressão E OU NÃO XOU

    Expressão A Expressão B A e B A ou B Não A A xou B

    F F F F V F

    F V F V V V

    V F F V F VV V V V F F

    3 DESVIOS CONDICIONAIS SIMPLES E

    COMPOSTOS

    Para que a execução do algoritmo seja desviada para um caminho específico,

    com um conjunto de instruções específicas, é necessário um comando de desvio. Ocomando de desvio é dado pela palavra SE, que inicia um bloco de instruções e

    deve terminar com a palavra FIMSE.

    Dentro deste bloco haverá instruções que serão executadas de acordo com o

    resultado do teste lógico inserido no desvio.

    Esse desvio precisa conter um teste lógico, para que determine se as

    instruções dentro do bloco SE deverão ser executadas ou não. O teste lógico é

    composto de expressões aritméticas, relacionais e lógicas.

    A estrutura de um bloco SE-ENTÃO é:

    SE expressão (ões) lógicas  ENTÃO

    Instruções de comando  

    FIMSE

  • 8/17/2019 Apostila Lógica de Programação.pdf

    57/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    57

    A diferença entre o desvio condicional simples e desvio composto está na

    resposta que deve ser dada, caso não existam instruções para o outro resultado da

    expressão aplicada na palavra SE. Quando se deseja incluir as instruções para o

    outro resultado, deverá ser utilizada a palavra SENÃO, dentro do bloco SE.

    A estrutura de um bloco SE-ENTÃO-SENÃO é:

    SE expressão (ões) lógicas  ENTÃO

    Instruções de comando

    SENÃO

    Instruções de comando

    FIMSE

    Destaquemos também que existem casos em que é necessário se estabelecer

    um conjunto de verificações de condições sucessivas. Essa estrutura é chamada de

    estrutura de desvio condicional encadeado (ou aninhado), significa permitir que,

    a partir de uma condição atendida, poderá estabelecer novas condições e, dessa

    forma, teremos condições dentro de condições.

    A estrutura de um bloco de desvio condicional encadeado é:

    SE expressão (ões) lógicas  ENTÃO

    SE expressão (ões) lógicas  ENTÃOInstruções de comando

    FIMSE

    SENÃO

    Instruções de comando

    FIMSE

    Programadores mais experientes preocupam-se com o uso de blocos

    condicionais encadeados. Não há limite de encadeamento de blocos, mas uma

    combinação muito grande poderá gerar grande dificuldade ao programador em

    localizar um problema de lógica. Diante disso, há uma prática comum de limitar até

    sete encadeamentos e, acima disso, utiliza-se da estrutura ESCOLHE-CASO, que

    veremos mais adiante nesta aula.

    Por exemplo:

  • 8/17/2019 Apostila Lógica de Programação.pdf

    58/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    58

    •  Considere o problema exposto na figura 17, em que se estabelecem três

    condições para calcular o reajuste do salário de um funcionário:

    o  Quando o salário for menor do que 500, o reajuste será de 15%;

    o  Quando o salário for maior ou igual que 500 e menor ou igual a 1000, o

    reajuste será de 10%;

    o  Quando o salário for maior que 1000, o reajuste será de 5%.

  • 8/17/2019 Apostila Lógica de Programação.pdf

    59/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    59

    Figura 17 – Fluxograma com desvio condicional composto

    4 BLOCO SE-SENÃO-ENTÃO

    Em pseudocódigo, as instruções de desvios condicionais devem também

    seguir regras específicas. Um exemplo de Desvio Simples:inicio

    inteiro A

    inteiro B

    escrever "Digite um valor para A:"

    ler A

    escrever "Digite um valor para B:"

  • 8/17/2019 Apostila Lógica de Programação.pdf

    60/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    60

    ler B

    se A < B ENTÃO 

    escrever "A é menor que B!!"

    fimse

    fim

    Observe que, no exemplo, caso o usuário digitar o valor de B maior do que A,

    nada irá acontecer no programa. Se desejarmos apresentar alguma instrução para o

    B ser maior que A, precisamos utilizar a palavra SENÃO. Por exemplo:

    inicio

    inteiro A

    inteiro B

    escrever "Digite um valor para A:"ler A

    escrever "Digite um valor para B:"

    ler B

    se A < B ENTÃO 

    escrever "A é menor que B!!"

    SENÃO

    escrever "B é menor que A!!"

    fimsefim

    5 BLOCO ESCOLHE-CASO

    Quando há um conjunto de testes lógicos a serem realizados em um mesmo

    momento do programa, exigindo que vários blocos SE-ENTÃO sejam construídos,

    poderá haver certo desconforto para o programador construí-lo e para outros

    programadores interpretarem. Nesses casos, se houver erro, o programador terá

    grande dificuldade de localizá-lo, já que há um conjunto muito grande de testes que

    devem ser feitos.

    Nessa situação, um outro bloco de desvio pode ser utilizado: ESCOLHE-

    CASO. Essa abordagem é uma excelente potencialização dos desvios compostos

  • 8/17/2019 Apostila Lógica de Programação.pdf

    61/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    61

    que algumas linguagens disponibilizam e geram algumas dificuldades para sua

    utilização.

    A estrutura de um bloco ESCOLHE-CASO é:

    ESCOLHE expressão (ões) 

    CASO expressão (ões)

    Instruções  

    CASO expressão (ões)

    Instruções  

    DEFEITO

    FIMESCOLHE

    Por exemplo:inicio

    real a, b, resposta

    inteiro escolha

    a

  • 8/17/2019 Apostila Lógica de Programação.pdf

    62/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    62

    escrever "Você não digitou uma opção válida"

    fimescolhe

    fim

    E como ficaria a representação do algoritmo em fluxograma? Veja a figura 18.

    Figura 18 – Fluxograma baseado no algoritmo 

    6 IDENTIFICANDO ERROS COMUNS DE LÓGICA

    6.1 O que são erros de programação?

  • 8/17/2019 Apostila Lógica de Programação.pdf

    63/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    63

    Este é um excelente momento para você refletir sobre uma característica

    inerente aos trabalhos de programação de computadores: os erros de programação,

    ou bugs .

    Conforme vimos nas primeiras aulas, o desafio do programador é construir o

    melhor conjunto de lógica e instruções para entregar a solução para um problema.

    Por isso, é fundamental um excelente entendimento de qual é o problema a ser

    resolvido e quais são as variáveis que devem ser consideradas para sua resolução.

    Segundo Behring (1989), bug   é um erro ou um defeito na construção de um

    programa, ou ainda um engano na instalação do equipamento de processamento de

    dados, provocando seu mau funcionamento .

    Nesse contexto, um algoritmo pode conter dois tipos de erros na sua

    construção:•  Erros de sintaxe;

    •  Erros de lógica.

    6.2 Erros de sintaxe

    Os erros de sintaxe ocorrem quando a instrução foi digitada fora dos padrões

    que a linguagem exige, por exemplo, em pseudocódigo utilizado neste curso, a

    criação de um bloco SE, sem terminar com a palavra FIMSE, ou a palavra ENTÃO,

    sem o til na letra A. Todos os softwares mais atuais de mercado para programaçãode computadores, já fornecem um aviso após a digitação de uma sintaxe errada,

    orientando o programador para corrigir o problema antes de executar o programa

    (apesar desse comportamento ser uma opção para o programador, dentro do

    software em uso).

    No caso do software que estamos utilizando neste curso (Portugol), quando o

    programador digita uma palavra que está correta no pseudocódigo, o editor destaca

    a palavra em negrito figura 19).

    Figura 19 – Exemplos de reconhecimento dos elementos construídos 

  • 8/17/2019 Apostila Lógica de Programação.pdf

    64/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    64

    Além disso, o editor também apresenta cores diferentes para os elementos que

    compõem as instruções digitadas, exemplo: valores em vermelho e símbolo de

    atribuição de valor em azul.

    6.3 Erros de lógica

    Os erros de lógica são mais complexos de resolver. Nesses casos, o programa

    foi construído com a sintaxe correta e executado tranqüilamente, mas o resultado

    apresentado não foi o esperado. Dessa forma, os erros de lógica não apresentam

    mensagem de erro específica e resolvê-los é, muitas vezes, uma tarefa trabalhosa

    para o programador.Diante desse grande desafio, os fabricantes de software para programadores

    ampliaram o potencial das ferramentas para analisar código. São ferramentas

    conhecidas como debugger  ou depuradores de código  de programação . Existem

    as mais variadas ferramentas disponíveis no mercado, pagas e gratuitas.

    Normalmente as mais comuns utilizadas são as fornecidas em conjunto com alguma

    ferramenta de desenvolvimento. A ferramenta Portugol também oferece um recurso

    de depuração  do pseudocódigo criado pelo programador figura 20).

  • 8/17/2019 Apostila Lógica de Programação.pdf

    65/86

    SOCIESC – Sociedade Educacional de Santa Catarina

    Algoritmos

    65

    Figura 20 – Menu Algoritmo do software Portugol