Técnico em Informática Lógica de Programação Aula I Introdução à Lógica de Programação
Ministério da Educação Secretaria de Educação Profissional e Tecnológica Secretaria de Educação a Distância
Instituto Federal de Educação, Ciência e Tecnologia do Sul de Minas Gerais - Campus Muzambinho Centro de Educação a Distância – CEAD Curso Técnico em Informática
Disciplina Lógica de Programação
Professora Autora Aracele Garcia de Oliveira Fassbinder
Diagramação da Capa Igor Xavier de Magalhães Silva Brasil
Muzambinho – 2013
Indicação de ícones Os ícones são elementos gráficos utilizados para ampliar as formas de linguagem e facilitar a organização e a leitura hipertextual. Atenção: indica pontos de maior relevância no texto.
Saiba mais: oferece novas informações que enriquecem o assunto ou “curiosidades” e notícias recentes relacionadas ao tema estudado. Glossário: indica a definição de um termo, palavra ou expressão utilizada no texto. Mídias Integradas: sempre que se desejar que os estudantes desenvolvam atividades empregando diferentes mídias: vídeos, filmes, jornais, ambiente virtual de ensino e aprendizagem e outras. Atividades de aprendizagem: apresenta atividades em diferentes níveis de aprendizagem para que o estudante possa realizá-las e conferir o seu domínio do tema estudado.
1
Sumário
Palavra da professora-autora ........................................................................................ 4 Apresentação da disciplina ............................................................................................ 5 Projeto instrucional ........................................................................................................ 7 Aula 1 - Introdução à Lógica de Programação ......................................................................... 9 1.1
História da Computação ................................................................................................... 9
1.2
Lógica de Programação, Algoritmos e Programas ......................................................... 12
1.3
Desenvolvimento de Algoritmos .................................................................................... 16
1.4
Editor e Interpretador de Pseudocódigos: VisuALG...................................................... 19 1.4.1Como obter o VisuALG?........................................................................................ 19 1.4.2Executando o VisuALG ......................................................................................... 20 1.4.3A linguagem do VisuALG...................................................................................... 21 1.4.4Comando de Saída de Dados .................................................................................. 23 1.4.5Seu primeiro algoritmo no VisuALG: Olá Mundo................................................. 24 1.4.6Comando de Entrada de Dados .............................................................................. 26
1.5
Atividades propostas para a aula 1 ................................................................................. 28
Aula 2 – Variáveis, Constantes, Tipos de Dados e Operadores ............................................ 29 2.1 Variáveis e Constantes .......................................................................................................... 29 2.2 Identificadores ....................................................................................................................... 30 2.3 Tipos de Dados ...................................................................................................................... 31 2.4 Declarações de Variáveis ...................................................................................................... 32 2.5 Atribuição de Valores para Variáveis ................................................................................... 33 2.6 Operadores ............................................................................................................................ 36 2.7 Definição do Problema Base: ................................................................................................ 41 2.8 Atividades propostas para a aula 2 ........................................................................................ 43 Aula 3 – Estruturas Condicionais ou de Seleção .................................................................... 42 3.1 Desvio e Seleção do Fluxo de Instruções .............................................................................. 42 3.2 Se...entao...senao ................................................................................................................... 44 3.2.1 Resolvendo o “problema base” no VisuALG ........................................................ 46 3.2.2 Condição Composta e os operadores booleanos.................................................... 46 3.2.2 Aninhamento da estrutura se ................................................................................. 48 3.3 Caso...escolha ........................................................................................................................ 48 3.3.1 Resolvendo o “problema base” no VisuALG ........................................................ 49
2
3.4 Atividades propostas para a aula 3 ........................................................................................ 51 Aula 4 – Estruturas de Repetição ............................................................................................ 52 4.1 Contexto ................................................................................................................................ 52 4.2 Para...faça .............................................................................................................................. 53 4.3 Enquanto ............................................................................................................................... 54 4.4 Repita .................................................................................................................................... 55 4.5 Resolvendo o “problema base” ............................................................................................. 56 4.6 Atividades propostas para a aula 4 ........................................................................................ 60 Aula 5 - Variáveis Indexadas Homogêneas ............................................................................. 61 5.1 Vetores e Matrizes................................................................................................................. 61 5.2 Variáveis Indexadas Unidimensionais (vetor) ...................................................................... 63 5.2.1 Trabalhando com Vetores no VisuALG ................................................................ 64 5.2.2 Resolvendo o problema base ................................................................................. 67 5.3 Variáveis Indexadas Bidimensionais (matriz) ....................................................................... 70 5.3.1 Trabalhando com Matrizes no VisuALG .............................................................. 72 5.4 Atividades propostas para a aula 5 ........................................................................................ 74 Aula 6 - Subalgoritmos ............................................................................................................. 75 6.1 Modularização do Código ..................................................................................................... 75 6.1.1 Funções.................................................................................................................. 76 6.1.2 Procedimentos ....................................................................................................... 81 6.2 Atividades propostas para a aula 6 ........................................................................................ 84 Referências .................................................................................................................................. 85
Currículo da professora-autora .................................................................................. 87
3
Palavra da professora-autora Caro estudante, Após o estudo de vários assuntos relacionados ao mundo da Informática, chegou a hora de dar um passo essencial na sua formação: o estudo da Lógica de Programação. A Lógica de Programação é muito importante para todos aqueles que buscam compreender a melhor forma de se comunicar com os computadores!
Este caderno sobre Lógica de Programação possui um papel fundamental na sua formação como "Técnico em Informática", pois ele traz o conteúdo necessário para que você consiga expressar a resolução de problemas de uma forma que o computador entenda, ou seja, através dos algoritmos implementados em uma determinada linguagem de programação. Aproveite ao máximo todo material contido aqui, dedique-se muito, pois estamos falando da introdução ao desenvolvimento de sistemas. Após todo este estudo, você terá condições de passar de um simples usuário de computador para um programador de sistemas, seja web, desktop ou para dispositivos móveis.
A aprendizagem de programação de computadores existe muito esforço e prática. Para terminar, deixo a você algumas dicas úteis de como estudar algoritmos: Faça a leitura deste caderno e procure ler materiais adicionais. Pergunte sempre que estiver com dúvida. Resolva os exercícios propostos e os complementares. Comece a resolver os algoritmos pelos mais simples e avance quando estiver confiante de que aprendeu o conteúdo que lhe foi proposto. Crie rotinas de estudo. Um assunto é sequência do outro. Concentre-se em manter o mesmo ritmo de aprendizagem ao longo de toda a disciplina, a fim de obter melhores resultados. A única maneira de aprender algoritmos é praticando, resolvendo todos eles. Não basta apenas ler o conteúdo e assistir as aulas. Fique atento sobre isso!
Bons estudos! Um grande abraço!
Professora Aracele Garcia de Oliveira Fassbinder 4
Apresentação da disciplina Olá, car@ estudante! Através desta disciplina você descobrirá a importância de conhecer os fundamentos do desenvolvimento de sistemas. A Lógica de Programação é a base para as demais disciplinas do seu curso e é através dela que você conseguirá o embasamento necessário para conseguir escrever algoritmos em Linguagens de Programação importantes para o desenvolvimento de sistemas.
O objetivo deste material é auxiliá-lo no conhecimento de conteúdos dos fundamentos da Lógica de Programação e desenvolvimento de algoritmos. Com ele, você perceberá a importância de conhecer esses conceitos para aplicá-los de maneira coerente na construção de algoritmos que automatizem tarefas feitas manualmente ou resolvem algum tipo de problema específico.
Programar exige muito raciocínio, paciência e treino, muito treino. É importante lembrar que a aprendizagem é um processo contínuo. Além disso, cada pessoa aprende de uma maneira, ou seja, possui o seu próprio estilo de aprendizagem. Sendo assim, esta disciplina possui diversas atividades que contribuem para o desenvolvimento do seu raciocínio lógico e comunicação interpessoal.
Para que você obtenha sucesso, será necessário que se envolva com as atividades propostas, buscando cumprir as tarefas, seguir as instruções, agir com organização e controle sobre o tempo previsto. Será preciso, também, participar de forma ética e ativa nos fóruns e encontros presenciais, com os colegas da turma e com o tutor presencial. O seu sucesso depende exclusivamente de você! Mas isso não significa que você está sozinho, conte sempre com os colegas, tutores e com a professora. Entre em contato através do ambiente virtual de aprendizagem, através de fóruns de dúvidas e chats.
O estudo da da Aula 1 deste caderno é importantíssima ! Procure perceber os conceitos relacionados com a lógica de programação: a história do computador, instruções, algoritmos e a ferramenta que vamos utilizar para implementar os nossos algoritmos. O objetivo desta aula é que você perceba e identifique o que é a
5
Lógica e a importância desse conceito para aprender algoritmos, ou seja, aprender a base da programação !
A segunda aula traz os tipos de dados possíveis de uso em nossos pseudocódigos, conceitos e regras para uso de variáveis, além de expressões e operações. Estes novos conceitos são importantes e precisamos conhecê-los antes de efetivamente começar a trabalhar com programação! Na terceira aula você continuará aprendendo sobre os pseudocódigos, mas trabalhará de forma específica com as Estruturas Condicionais. Na quarta aula você aprenderá a trabalhar com as Estruturas de Repetição, a fim de repetir blocos de comandos para resolver problemas que envolvem tarefas repetitivas.
Na quinta aula você trabalhará com formas de armazenamento um pouco mais complexas que as variáveis aprendidas nas primeiras aulas.
E, por fim, você aprenderá uma técnica muito útil para modularizar o seu código e deixá-lo mais legível.
Esta é a base da Lógica de Programação, independente da Linguagem de Programação que será utilizada para desenvolver algoritmos.
Fica aqui o desafio de concluirmos este estudo com SUCESSO! Profª. Aracele Garcia de Oliveira Fassbinder
6
Projeto instrucional Disciplina: Lógica de Programação (carga horária: 60h). Ementa: Introdução à Computação, Lógica de Programação, Instruções, Algoritmos, comandos de entrada e saída de dados, dados, tipos de ados, estruturas sequenciais, estruturas condicionais, estruturas de repetição, variáveis indexadas homogêneas e subprogramação. AULA
1. Introdução à Lógica de Programação
2. Variáveis e Operadores
3. Estruturas de Decisão
OBJETIVOS DE APRENDIZAGEM
MATERIAIS
CARGA HORÁRIA (horas)
Conhecer a história da Computação e compreender a sua evolução. Compreender a importância da Lógica e das Linguagens de Programação para o desenvolvimento de sistemas. Definir e compreender o uso de variáveis e constantes. Compreender o que são e quais são os tipos de dados básicos. Conhecer a definição e o correto uso de expressões e operadores. Compreender o uso das estruturas condicionais ou de seleção no processo de criação de algoritmos.
10
Caderno e Ambiente Virtual de EnsinoAprendizagem. http://eadinfo.muz.i fsuldeminas.edu.br/
10
10
Resolver algoritmos que incluem o uso de estruturas condicionais. Compreender o uso das estruturas de repetição no processo de criação de algoritmos. 4. Estruturas de Repetição
Resolver algoritmos que incluem o uso de estruturas de repetição e as estruturas já estudadas.
7
10
Compreender variáveis homogêneas.
o
uso das compostas
5. Variáveis Compostas Homogêneas: Vetores Resolver algoritmos que e Matrizes incluem o uso de variáveis indexadas homogêneas. Compreender a aplicação da modularização do código para resolver problemas mais complexos. 6. Subalgoritmos Resolver problemas que envolvam a modularização do código.
8
Caderno e Ambiente Virtual de EnsinoAprendizagem.
10
http://eadinfo.muz.i fsuldeminas.edu.br 10
Aula 1 - Introdução à Lógica de Programação Objetivos Conhecer a história da Computação e compreender a sua evolução. Compreender a importância da Lógica e das Linguagens de Programação para o desenvolvimento de sistemas.
1.1 História da Computação Por volta de 4000-1200 anos a.C., habitantes da primeira civilização conhecida na Suméria mantém um registro de transações comerciais em tábuas de argila. A necessidade de contar e quantificar coisas mais complexas que os cálculos que utilizavam somente os dedos e recursos primários foram apoiados pelo desenvolvimento do Ábaco, inventado na Babilônia, por volta de 3000-2400 a.C.
Figura 1.1 - Ábaco Russo Fonte: Wikipedia (Ábaco), 2012
A evolução constante da matemática e das ciências exatas fez com que Blaise Pascal criasse, por volta de 1640 d.C., um somador baseado no mecanismo de engrenagem, o qual é chamado de “Pascalene” ou “Pascalina”, a primeira máquina somadora mecânica. Pascal, que aos 18 anos trabalhava com seu pai em um escritório de coleta de impostos na cidade de Rouen, desenvolveu a máquina para auxiliar o seu trabalho de contabilidade. Entretanto, apenas em 1672, o alemão Gottfried Leibniz conseguiu o que Pascal não tinha conseguido: criar uma calculadora mais completa, que efetuava a soma e a divisão, além da raiz quadrada. 9
Leia mais sobre a história dos computadores e da computação. Acesse: http://www.tecmundo.com.br/mac-os-x/1697-a-historia-dos-computadores-e-dacomputacao.htm#ixzz2FIrZSpgE
Figura1.2 - Máquina de Pascal Fonte: A era da Tecnologia, 2012
A Máquina de Pascal e todas as outras que apareceram antes ou depois dela estavam longe de serem consideradas um computador, pois não podiam ser programadas, isto quer dizer que a entrada era feita apenas de números, mas não de instruções a respeito do que fazer com estes números. Até que, por volta de 1833, Charles Babbage, hoje conhecido como o "Pai do Computador", iniciou o projeto Máquina Analítica com Cartões Perfurados, que é considerado um dos primeiros modelos teóricos de um computador, pois era possível passar instruções para que a máquina as reproduzisse automaticamente, com pouca intervenção humana.
Figura 1.3 - Máquina Analítica de Charles Babbage Fonte: DMA Departamento de Matemática Aplicada, 2012
10
Os primeiros programas para computador foram baseados nos estudos publicados pela matemática Ada Augusta Byron King (1815-1852), mais conhecida como Condessa de Lovelace ou Ada Lovelace. Ela foi pioneira na área de Lógica de Programação e é principalmente conhecida por ter escrito um programa que poderia utilizar a máquina analítica de Charles Babbage. Este programa utilizava os conceitos de subprogramação e repetições. Ela também iniciou o desenvolvimento do que hoje conhecemos como desvios condicionais. Os trabalhos iniciados por Ada inspiraram o trabalho de Alan Turing que, em 1940, construiu o primeiro computador moderno.
Figura 1.4 - Primeira efetiva programadora de computadores Fonte: American University in Bulgaria, 2012
Os acontecimentos seguintes envolveram diversos matemáticos, lógicos, físicos e engenheiros. Os trabalhos consistiam, em sua maioria, em continuar uma linha de trabalho já iniciada por outra pessoa ou na criação de um novo trabalho que viesse a refutar algum outro.
Refutar significa encontrar um raciocínio ou um argumento que contradiz o que outra pessoa está dizendo. Citaremos alguns nomes influentes para a história dos computadores e da lógica de programação, mas deixaremos para você a busca por novas informações. Tente pesquisar sobre George Boole (Lógica Simbólica), Cantor (Teoria dos Conjuntos), Gottlob Fregue (Lógica, Teoria da Linguagem) e outros lógicos e matemáticos, tais como G. Peano, Bertrand Russel, Whitehead, Godel, Alonso Church, Alan Turing (Teoria da Computabilidade e Máquina de Turing), Isaac Asimov (Robot).
11
Além disso, procure conhecer mais sobre a história dos computadores modernos, pesquise por Bell Labs, Colossus, Mark I, IBM, ENIAC, Grace Murray (programadora do Mark I) e Edsger Dijkstra (construiu um algoritmo eficiente para caminhos curtos), dentre outros.
Saiba mais sobre a História da Computação através do livro digital “História da Computação – o caminho do pensamento e da tecnologia”, escrito por Cléuzio Fonseca Filho e disponibilizado aqui: http://www.pucrs.br/edipucrs/online/historiadacomputacao.pdf
Biografia de Alan Turing em http://informatica.hsw.uol.com.br/alan-turing.htm
1.2 Lógica de Programação, Algoritmos e Programas A Lógica é a Ciência que estuda o raciocínio. Raciocínio pode ser definido como uma forma de processar informações simbólicas a fim de atingir um determinado objetivo ou conhecimento. A Lógica relaciona-se intimamente com três grandes áreas de conhecimento, tais como a Matemática, a Informática, a Filosofia e a Linguística. Vários dos fundadores da moderna Ciência da Computação foram lógicos. A Inteligência Artificial Simbólica tem na Lógica um de seus principais pilares. Toda a Matemática utiliza-se, em sua expressão linguística, de conceitos puramente lógicos; não é possível daí entender Matemática seriamente sem entender em detalhes a Lógica, pelo menos em suas bases elementares.(FASSBINDER, 2010) A Lógica, quando aplicada na Matemática, para estudar o raciocínio matemático, pode ser chamada de Lógica Matemática. No caso da área de Informática, temos a Lógica de Programação, a qual é uma aplicação da lógica para escrevermos Algoritmos, representados em uma determinada Linguagem de Programação que o computador entenda e, assim, fazer com que o computador resolva algum problema ou automatize alguma tarefa. 12
A Lógica de Programação permite que criemos uma sequência de instruções ou passos a serem seguidos pelo computador a fim de obtermos uma solução para um problema. Desta forma, LÓGICA DE PROGRAMAÇÃO é a técnica de encadear os pensamentos para se atingir um objetivo. Estes pensamentos podem ser descritos como uma sequência de instruções. INSTRUÇÕES são conjuntos de regras ou normas definidas para a realização de uma tarefa. Em informática, instrução é a informação que indica a um computador uma ação elementar a ser executada. Antes de falarmos o que é um algoritmo, pense na seguinte situação “Comer uma maça”. Esta tarefa bem simples exige uma sequência de instruções logicamente ordenadas para que, ao final, o objetivo seja alcançado, ou seja, que você consiga comer a maça!
Figura 1.5 - Sequência de instruções para comer uma maça Fonte: Comidas e Bebidas, 2012
Uma sugestão de instruções válidas e ordenadas para que você consiga comer uma Não tem como você jogar o caroço e as
maça:
sementes 1. 2. 3. 4. 5. 6.
no
lixo
sem
antes
ter
Pegar a maça descascado e comido a maça! Lavar a maça Pegar uma faca Você percebe a importância de raciocinar Descascar a maça com a faca Comer a maça sobre as instruções e como elas devem Jogar o caroço e as sementes no lixo ser ordenadas para que o resultado final seja alcançado com sucesso?
13
Agora podemos definir um dos conceitos mais importantes da área de desenvolvimento de programas para quaisquer tipos de dispositivos, sejam eles computadores, tabletes, celulares, televisão digital, carros, equipamentos domésticos, dentre outros: o ALGORITMO! Um ALGORITMO é um conjunto de instruções, logicamente ordenadas, para a obtenção de um objetivo específico.
Leia mais sobre a definição de algoritmo através do artigo “O que é um algoritmo de computador”, disponível no portal HowStuffWorks. Acesse: http://informatica.hsw.uol.com.br/questao717.htm A noção de algoritmo é muito simples e não é específica da área de informática. Os algoritmos fazem parte da sua vida, mesmo que você não tenha consciência disso! Todas as situações descritas abaixo fazem parte da vida das pessoas e elas, mentalmente, criam um algoritmo para resolvê-las. Explicar para uma pessoa como ela faz para chegar a um determinado lugar. o Você precisa saber a origem da pessoa. A partir disso, você verifica todos os passos lógicos para que ela consiga chegar ao seu destino. Fazer um bolo seguindo uma receita. o Você precisa identificar os ingredientes (a entrada do seu algoritmo) e seguir alguns passos básicos, tais como pegar uma vasilha, colocar os ingredientes, batê-los com uma batedeira, pegar uma forma, untar a forma, colocar a massa, ligar o forno, colocar a forma e esperar um tempo até que o bolo fique pronto. Sair para trabalhar. o Você espera o despertador tocar. Se ele tocar você o desliga. Aí você vai até o banheiro, escova os dentes, troca de roupa, toma café. Se estiver chovendo, então você pega um guarda-chuva, sai de casa e pensa um caminho para chegar ao trabalho.
14
A ordem das instruções é importante para se atingir o resultado desejado. Além disso, o algoritmo sempre deve ter um fim, para que o objetivo esperado seja alcançado. Agora, o mais importante de tudo: cada pessoa raciocina de uma forma, ou seja, cada pessoa desenvolve algoritmos de acordo com os seus pensamentos, suas experiências de vida e sua compreensão sobre o problema. Desta forma, teremos algoritmos diferentes, mas que conseguem resolver o mesmo problema proposto! Os algoritmos serão utilizados para desenvolvermos programas que resolvem problemas específicos ou automatizam tarefas até então realizadas de forma manual.
Automação é um processo em que uma tarefa deixa de ser desempenhada pelo homem e passa a ser realizada por máquinas, não importando se estas máquinas são mecânicas ou eletrônicas. (SALIBA, 1993) Para que uma tarefa seja automatizada devem-se conhecer todas as etapas necessárias para promover essa automatização e, além disso, o dispositivo que desempenhará este processo deve estar apto a garantir a repetição da tarefa, conforme programação definida. Para que isso aconteça, você deve ter em mente o seguinte: Programas são escritos em determinadas Linguagens de Programação. Existem diversas Linguagens de Programação. Então você deve escolher aquela que pode ser entendida pelo dispositivo que desempenhará a tarefa que está sendo automatizada. Você pode escrever programas para computadores, dispositivos móveis, carros, microondas, geladeiras, televisões digitais, dentre outros.
Artigo “Os 10 tipos de computadores”, disponível no portal HowStuffWorks http://informatica.hsw.uol.com.br/10-tipos-de-computador.htm
15
De forma bastante geral, neste caderno, trataremos algoritmo, programa, software e sistemas como termos parecidos e que possuem a mesma essência: são escritos em uma linguagem de programação que o computador ou outro equipamento entenda, são constituídos de instruções lógicas ordenadas, possuem um fim e, principalmente, realizam uma determinada tarefa ou resolvem um determinado problema.
Leia mais sobre as definições de algoritmo, programa, software e sistema em:
http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_de_computadores http://pt.wikipedia.org/wiki/Programa_de_computador http://pt.wikipedia.org/wiki/Software http://pt.wikipedia.org/wiki/Sistema
1.3 Desenvolvimento de Algoritmos A primeira preocupação no momento de desenvolver um algoritmo é dividir o problema apresentado nas três fases fundamentais de qualquer resolução lógica:
ENTRADA
PROCESSAMENTO
SAÍDA
Imagine o seguinte problema: Você precisa calcular a média final dos alunos da disciplina de Lógica de Programação, sendo que eles realizarão três provas parciais (P1, P2, P3), onde a média aritmética simples é obtida através da fórmula (P1 + P2 + P3)/3.
Problema
Calcular a média aritmética simples dos alunos da disciplina de Lógica de Programação.
Solução Esperada A média final dos alunos. Dados de Entrada
P1, P2, P3
Processamento
O cálculo desta fórmula: Média= (P1 + P2 + P3)/3
Dados de Saída
A média final dos alunos. 16
A próxima etapa consiste em programar este algoritmo em uma Linguagem de Programação que o computador entenda. Ou seja, uma Linguagem de Programação é uma forma de codificar o seu algoritmo para que seja possível manter uma comunicação com o computador. Desta forma, ele poderia executar todo aquele algoritmo que foi desenvolvido por um programador.
Programador é o nome que recebe uma pessoa que programa ou desenvolve sistemas, escreve algoritmos, etc... Imagine a seguinte situação: uma conversa entre duas pessoas:
Figura 1.6 - Ilustrando a ideia de Linguagens de Programação Fonte: Zun, 2012
Imagine que a menina seja o seu programa e o menino seja o computador, mas vocês estão tentando se comunicar!
Quando a menina diz “Olá, tudo bem?!”, este é o algoritmo que ela criou. Ele tem um fim, segue uma ordem (a ordem das palavras e da gramática da linguagem utilizada) e possui um objetivo: cumprimentar você. O Português é a linguagem de Programação que a menina utilizou para se comunicar com você, pois você também entende esta língua! Então, da mesma forma que usamos linguagens para nos comunicarmos com outras pessoas e estas linguagens possuem regras que devemos seguir para conseguirmos nos comunicar, isso também acontece com os algoritmos (programas, sistemas, softwares, etc...) e os computadores (dispositivos móveis, etc...).
17
A Linguagem de Programação que utilizaremos para criar os nossos algoritmos neste caderno é conhecida como “Portugol”. É uma linguagem simples, fácil de ser compreendida, muito utilizada no ensino de programação e é baseada na língua portuguesa.
Alguns autores da área de Lógica de Programação não consideram Portugol como uma linguagem de programação completa. Muitas a chamam de pseudolinguagem. Ela é realmente muito utilizada no ensino introdutório de algoritmos e programação, mas para desenvolver programas mais robustos você vai ter que optar por outras linguagens, tais como Java, C, C++, dentre outras. Mas os computadores não entendem o Português, certo? A linguagem que os computadores entendem é a binária. Desta forma, existe um programa de fins específicos, conhecido por “Compilador”, que traduz o seu algoritmo escrito em uma linguagem de programação para a linguagem de máquina entendida pelos computadores!
Leia
mais
sobre
o
que
são
compiladores.
Acesse:
http://pt.wikipedia.org/wiki/Compiladores É comum, quando se trabalha com programação, fazermos uso de um ambiente específico para a escrita e testes de algoritmos. Ambientes mais complexos e robustos são chamados de IDE (Integrated Development Environment) ou Ambiente de Desenvolvimento Integrado. Este tipo de ambiente possui diversos recursos acoplados e disponíveis para os programadores, tais como editor, compilador, linker, depurador, modelagem, testes, dentre outros.
Saiba mais sobre Ambientes de Desenvolvimento Integrado. Acesse: http://pt.wikipedia.org/wiki/Ambiente_de_Desenvolvimento_Integrado
18
Neste caderno, faremos uso do VisuALG, que não pode ser classificado como um IDE, pois é um ambiente simples para programação de algoritmos em Portugol. O VisuALG é um editor e interpretador de Pseudocódigos, desenvolvido pela empresa Apoio Informática sob domínio público, em uma versão freeware.
Você poder ler mais informações sobre o VisuALG acessando o site da empresa Apoio Informática: http://www.apoioinformatica.inf.br/o-visualg A partir de agora começaremos a parte prática do conteúdo deste caderno. Vamos perceber a forma correta de fazer uso do VisuALG e também vamos compreender a linguagem que usaremos para construir nossos algoritmos.
O conteúdo desta aula não tem a pretensão de ser totalmente original. Algumas figuras e explicações fazem parte do material disponibilizado pela empresa Apoio Informática. Acesse: http://www.apoioinformatica.inf.br/a-tela-principal.
1.4 Editor e Interpretador de Pseudocódigos: VisuALG É um programa criado pela empresa Apoio Informática e é muito útil para quem está iniciando seus aprendizados em Lógica de Programação ou na construção de Algoritmos Computacionais. Nele você pode digitar os comandos em Portugol e ver seu programa funcionando! 1.4.1 Como obter o VisuALG? A versão 2.5, disponível neste endereço abaixo, é uma versão stand-alone, que não precisa ser instalada e funciona até dentro de pendrives !
Segundo a Wikipédia, são chamados stand alone, ou stand-alone (literalmente "ficam em pé por si só") os programas completamente auto-suficientes: para seu funcionamento não necessitam bibliotecas ou outros arquivos auxiliares. 19
Você pode obter a versão stand-alone aqui: http://www.guanabara.info/2007/09/visualg-v25/ A versão do VisuALG que será utilizada também estará disponível para você através do ambiente virtual de ensino e aprendizagem. Basta fazer o download do arquivo, salvá-lo no seu computador e clicar duas vezes sobre o mesmo para que a tela inicial apareça. 1.4.2 Executando o VisuALG Basta dar dois cliques no arquivo VisuAlg25.exe. Imediatamente aparecerá a tela principal do VisuALG:
Figura 1.7 - Tela Principal do VisuALG Fonte: Elaborado pela Autora
A tela do VisuALG compõe-se da barra de tarefas, do editor de textos (que toma toda a sua metade superior), do quadro de variáveis (no lado esquerdo da metade inferior), do simulador de saída (no correspondente lado direito) e da barra de status. Quando o programa é carregado, já apresenta no editor um "esqueleto" de pseudocódigo, com a intenção de poupar trabalho ao usuário e de mostrar o formato básico que deve ser seguido. Explicaremos a seguir cada componente da interface do VisuALG. 20
A Barra de Tarefas contém os comandos mais utilizados no VisuALG (estes comandos também podem ser acessados pelo menu ou por atalhos no teclado).
Figura 1.8 - Barra de Tarefas do VisuALG Fonte: Apoio Informática: a Tela do VisuALG, 2012
Veja mais explicações sobre a barra de tarefas do VisuALG. Acesse: http://www.apoioinformatica.inf.br/a-tela-principal 1.4.3 A linguagem do VisuALG A linguagem que o VisuAlg interpreta é bem simples: é uma versão portuguesa dos pseudocódigos largamente utilizados nos livros de introdução à programação, conhecida como "Portugol". A linguagem do VisuAlg permite apenas um comando por linha.
Para facilitar a digitação e evitar confusões, todas as palavras-chave do VisuALG foram implementadas sem acentos, cedilha, etc. Portanto, o tipo de dados lógico é definido como logico, o comando se..então..senão é definido como se..entao..senao, e assim por diante. O VisuALG também não distingue maiúsculas e minúsculas no reconhecimento de palavras reservadas e nomes identificadores de variáveis. Em qualquer linguagem de programação, se uma palavra é reservada, ou seja, se ela é própria da linguagem de programação, então você não pode utilizá-la fora daquele
21
contexto para o qual ela foi criada Veja a lista de palavras reservadas da linguagem do VisuALG:
Figura 1.9 - Palavras Reservadas da Linguagem do VisuALG Fonte: TONET, 2012, p. 49
O formato básico do pseudocódigo, ou seja, dos algoritmos que podem ser criados no VisuALG é o seguinte:
Onde: A primeira linha é composta pela palavra-chave algoritmo seguida do seu nome delimitado por aspas duplas. Este nome será usado como título nas janelas de leitura de dados. A seção seguinte é a de declaração de variáveis, que termina com a linha que contém a palavra-chave inicio.
22
Deste ponto em diante está a seção de comandos, que continua até a linha em que se encontra a palavra-chave fimalgoritmo. Esta última linha marca o final do pseudocódigo: todo texto existente a partir dela é ignorado pelo interpretador. O VisuALG permite a inclusão de comentários: qualquer texto precedido de "//" é ignorado, até se atingir o final da sua linha. Por este motivo, os comentários não se estendem por mais de uma linha: quando se deseja escrever comentários mais longos, que ocupem várias linhas, cada uma delas deverá começar por "//". 1.4.4 Comando de Saída de Dados escreva (<lista-de-expressões>) O comando acima escreve no dispositivo de saída padrão o conteúdo de cada uma das expressões que compõem <lista-de-expressões>. As expressões dentro desta lista devem estar separadas por vírgulas; depois de serem avaliadas, seus resultados são impressos na ordem em que aparecem. É possível especificar o número de espaços no qual se deseja escrever um determinado valor. Por exemplo, o comando escreva(x:5) escreve o valor da variável x em 5 espaços, alinhado-o à direita. Para variáveis reais, pode-se também especificar o número de casas fracionárias que serão exibidas. Por exemplo, considerando y como uma variável real, o comando escreva(y:6:2)escreve seu valor em 6 espaços colocando 2 casas decimais. escreval (<lista-de-expressões>) Idem ao anterior, com a única diferença que pula uma linha em seguida.
Releia este item sempre que estiver com dúvidas sobre o comando de escrita do VisuALG. Inicialmente, você pode ficar um pouco confuso sobre esta ideia de lista de expressões, mas após a aula 2 você compreenderá que é possível escrever valores armazenados em variáveis, valores diretos, textos que aparecem entre as duplas e a concatenação entre textos que aparecem entre aspas duplas, valores diretos e valores armazenados em variáveis. Exemplos: escreval (2), escreval(2+2), escreval(“Olá”), escreval(nome), escreval(“Olá ", nome). 23
1.4.5 Seu primeiro algoritmo no VisuALG: Olá Mundo Vamos criar o primeiro algoritmo no VisuALG? Popularmente, quando se está aprendendo uma nova linguagem de programação o primeiro algoritmo criado é chamado de Hello, World! Em português, Olá Mundo.
Saiba mais sobre o primeiro programa Hello, World e a implementação do mesmo
em
diversas
linguagens
de
programação.
Acesse:
http://pt.wikipedia.org/wiki/Programa_Ol%C3%A1_Mundo Para criar um novo algoritmo, clique no menu Arquivo e escolha a opção novo ou clique no ícone novo. Entretanto, toda vez que você inicia o VisuALG, ele já abre com um novo arquivo de algoritmo para ser digitado.
Barra de menus
Para salvá-lo: clique no menu Neste espaço você digita os seus
Arquivo e escolha a opção
algoritmos.
Salvar.
O
esqueleto
do
algoritmo já vem definido ao Para executá-lo: clique no
abrir o VisuALG ou ao criar um
menu Algoritmo e escolha a
novo arquivo.
opção Executar.
Para exibir as linhas no VisuALG, clique no menu Exibir e escolha a opção Número de Linhas.
24
Digite o código abaixo:
Digite apenas o nome do algoritmo, complete a função, o autor e acrescente o comando da linha 10. Os demais textos aparecem automaticamente quando você abre o VisuALG ou clica no menu Arquivo e escolhe a opção novo. Os textos que aparecem na cor verde, iniciados por //, são os comentários da linguagem, servem para deixar o código mais legível, mas são desconsiderados no momento de execução do algoritmo.
Para executar qualquer algoritmo no VisuALG, basta acessar o menu Algoritmo e clicar na opção Executar. Um atalho para a execução de algoritmos é o F9. O resultado aparece neste prompt com a cor preta:
25
1.4.6 Comando de Entrada de Dados Através de comandos de entrada é possível que o usuário digite valores que serão salvos em variáveis. A explicação sobre variáveis será feita na próxima aula! Utilize o comando abaixo quando você precisar que o usuário digite algum valor: leia (<lista-de-variáveis>) O comando leia recebe valores digitados pelo usuário, atribuindo-os às variáveis cujos nomes estão em <lista-de-variáveis> (é respeitada a ordem especificada nesta lista). Observe o exemplo abaixo:
Abra o VisuALG e digite: o nome do algoritmo: “Exemplo com comando de entrada – leia”; declare a variável numero. Observe que não existe acentuação nas palavras reservadas e nos identificadores da linguagem do VisuALG. A única acentuação que pode existir é aquela que aparece em palavras que estão entre aspas duplas, assim como em “Exemplo de código”, “Média”, “O número digitado é”, etc... digite os comandos que estão nas linhas 10, 11 e 12. o O comando da linha 10 faz com que apareça no prompt a frase “Digite um número”.
26
o O comando da linha 11 faz com que o cursor do mouse fique piscando no prompt, aguando o usuário digitar um valor. Quando o usuário digita o valor e tecla <enter>, este valor é armazenado na variável numero. o O comando da linha 12 exibe no prompt a frase “O número digitado é” concatenado com o valor armazenado na variável numero. A concatenação é feita através da vírgula. Desta forma, se o número digitado é 8, a frase que aparece no prompt é O número digitado é 8. Tecle F9 para executar o algoritmo. O resultado aparece a seguir:
Se você estiver no prompt e teclar Esc, o programa será imediatamente interrompido. Daí, basta clicar no ícone fechar (um x no canto superior direito do prompt) e você consegue voltar para a tela principal do VisuALG.
Todas as aulas possuem atividades complementares. Elas estão localizadas no anexo deste caderno.
27
1.5 Atividades propostas para a aula 1
1. Escreva, a seguir, o que você entende por lógica. ________________________________________________________________ ________________________________________________________________ 2. Escreva no espaço abaixo pelo menos mais dois exemplos de algoritmos que você encontrou em seu dia a dia: ________________________________________________________________ ________________________________________________________________ 3. Descrever as tarefas a seguir de tal maneira que qualquer pessoa que leia as suas instruções, saiba exatamente como agir. a. Tomar banho _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ b. Trocar uma lâmpada _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________
28