logica

47
Lógica de Programação Algoritmos e implementação Este material aborda os conceitos básicos de lógica de programação, com o intuito de auxiliar o aluno nos seus primeiros passos na programação de computadores. Versão: 1.03 Me. Marcos Roberto de Moraes - Maromo 01/08/2013

description

logica

Transcript of logica

  • Lgica de Programao Algoritmos e implementao Este material aborda os conceitos bsicos de lgica de programao, com o intuito de auxiliar o aluno nos seus primeiros passos na programao de computadores. Verso: 1.03 Me. Marcos Roberto de Moraes - Maromo 01/08/2013

  • 1

    Lista de Figuras

    Figura 1 - Planilha Eletrnica ............................................................................................ 5 Figura 2 - Trecho do programa Chrome em Binrio (Fonte: K19) .................................... 6 Figura 3 - Trecho de programa na Linguagem C# ............................................................. 7 Figura 4 Compilao ...................................................................................................... 7 Figura 5 - Ilustrao do Funcionamento de uma Mquina Virtual (Fonte: K19) .............. 8 Figura 9 Fila de Pessoas .................................................................................................... 9 Figura 10 - Receita (Fonte: obadenbaden.com.br) ........................................................ 10 Figura 11 - Principais formas usadas em fluxogramas (smbolos mais usados) ............. 12 Figura 12 - Fluxograma para soma de dois valores ........................................................ 13 Figura 13 - Zebra (imagem construda em ASCII) ........................................................... 15 Figura 14 - Exemplo de Tipos de dados na Linguagem C ............................................... 16 Figura 15 - Exemplo de declarao em C# ..................................................................... 17 Figura 16 - Exemplo de declarao em Java ................................................................... 17 Figura 17 - Exemplo de inicializao em C# .................................................................... 17 Figura 18 - Exemplo de inicializao em Java ................................................................. 18 Figura 19 - Exemplo de nomes de variveis vlidos utilizando caracteres especiais em outros idiomas. ............................................................................................................... 20 Figura 20 - Operadores Matemticos ............................................................................. 21 Figura 21 - Exemplo de uso de operador de verificao de igualdade em C# ............... 22 Figura 22 - Exemplo de uso do operador && em C# ...................................................... 22 Figura 23 - Exemplo de Tabela da Verdade .................................................................... 22 Figura 24 Fluxograma: mdia de duas notas ............................................................... 26 Figura 25 - Exemplo If/then/else .................................................................................... 27 Figura 26 - Fluxograma com cadeia de ifs ...................................................................... 28 Figura 27 - Cadeia de Ifs em C# ...................................................................................... 29 Figura 28 - Cdigo Fatorial em C# (Condio pr-testada ) ........................................... 35 Figura 29 - Cdigo Fatorial em C# (Condio ps-testada ) ........................................... 36 Figura 30 - Cdigo Fatorial em C# (Comando for) .......................................................... 37 Figura 31 - Exemplo de um algoritmo para o clculo da mdia de 4 notas ................... 41 Figura 32 - Programa Visualg .......................................................................................... 42

  • 2

    Sumrio

    1 Introduo ................................................................................................................. 4

    2 Programao ............................................................................................................. 5

    2.1 Programa ............................................................................................................ 5

    2.2 Linguagem de Mquina ..................................................................................... 6

    2.3 Linguagem de Programao .............................................................................. 6

    2.4 Compilador ......................................................................................................... 7

    2.5 Mquinas Virtuais .............................................................................................. 7

    2.6 Exerccios de Fixao ......................................................................................... 8

    3 Lgica de Programao ............................................................................................. 9

    3.1 Lgica ................................................................................................................. 9

    3.2 Algoritmos e Implementao .......................................................................... 10

    3.3 Representao dos Algoritmos ........................................................................ 11

    3.3.1 Linguagem Natural ................................................................................... 11

    3.3.2 Fluxogramas .............................................................................................. 11

    3.3.3 Pseudocdigo ........................................................................................... 13

    3.4 Exerccio de Fixao ......................................................................................... 14

    4 Tipos de Dados ........................................................................................................ 15

    4.1 Constantes ....................................................................................................... 16

    4.1.1 Constantes Inteiras ................................................................................... 16

    4.2 Variveis ........................................................................................................... 16

    4.2.1 Declarao ................................................................................................ 17

    4.2.2 Inicializao ............................................................................................... 17

    4.3 Tipos de variveis ............................................................................................. 18

    4.3.1 Tipos primitivos em C ............................................................................... 18

    4.3.2 Tipos primitivos em C# ............................................................................. 18

    4.3.3 Tipos primitivos em Java .......................................................................... 19

    4.4 Conveno para a nomenclatura ..................................................................... 19

    4.5 Regras para a nomenclatura ............................................................................ 20

    4.6 Exerccio de Fixao ......................................................................................... 20

    5 Operadores .............................................................................................................. 21

    5.1 Tabela Verdade ................................................................................................ 22

    5.1.1 Exerccios de Fixao ................................................................................ 23

    6 Controle de Fluxo - Deciso .................................................................................... 26

    6.1 Estrutura SE ENTO SENO / IF... THEN... ELSE ............................................... 26

    7 Comandos de Fluxo - Estruturas de Repetio ....................................................... 31

  • 3

    7.1 Tipos ou modelos de repetio ....................................................................... 31

    7.2 Repetio pr-testada ..................................................................................... 31

    7.3 Repetio ps-testada ..................................................................................... 32

    7.4 Repetio com varivel de controle ................................................................ 33

    7.5 Iterao de coleo .......................................................................................... 34

    7.6 Exemplo em trs formas: ................................................................................. 34

    7.7 Exerccios de Fixao ....................................................................................... 38

    8 Linguagem de Projeto de Programao .................................................................. 41

    8.1 Linguagem PDL ................................................................................................. 42

    8.1.1 Tipos de Dados ......................................................................................... 43

    8.1.2 Nomes de Variveis e sua Declarao ...................................................... 43

    8.1.3 Constantes e Comando de Atribuio ...................................................... 44

    8.2 Exerccios de Fixao ....................................................................................... 45

    9 Bibliografia .............................................................................................................. 46

  • 4

    1 Introduo

    Com base nas experincias que tive com os meus alunos nos ltimos 15 anos, ao elaborar esta apostila resolvi usar uma abordagem um pouco diferente em relao ao que apresentado na maioria dos livros sobre o assunto. Aqui se pretende embasar a teoria

    por meio da prtica em linguagem de programao C e Pascal.

    A cada captulo, sero apresentados diversos problemas que serviro de base para o aprendizado sobre algoritmos e lgica de programao. Os exerccios servem como complementao do aprendizado, por essa razo so chamados de exerccios de fixao.

    Bom aprendizado.

    Professor Me. Marcos Roberto de Moraes Mestre em Educao, Especialista em Administrao de Sistemas de Informao, Tecnlogo em Processamento de Dados, Professor do Curso Superior de Tecnologia em Anlise e Desenvolvimento de Sistemas e Mecnica de Preciso da Fatec de Mogi Mirim-SP

  • 5

    2 Programao

    Neste captulo sero apresentados alguns conceitos importantes antes de iniciarmos o estudo da lgica de programao. Afinal o que so programas? O que uma linguagem de mquina? Para que servem as diferentes linguagens de programao, o que um Compilador? O que o processo de compilao? E por fim, o que so Mquinas Virtuais?

    2.1 Programa

    Figura 1 - Planilha Eletrnica

    O que um programa de computador?

    Um programa ou programa de computador um conjunto de instrues que so interpretadas pelo computador com a finalidade de se executar uma determinada tarefa. Essas instrues esto armazenadas em um arquivo que comumente chamado de executvel e, dentro deste arquivo, as instrues aparecem no formato binrio que extremamente difcil de ser lido por um ser humano.

    uma coleo de instrues que descrevem uma tarefa a ser realizada por um computador. O termo pode ser uma referncia ao cdigo fonte, escrito em alguma linguagem de programao, ou ao arquivo que contm a forma executvel deste cdigo fonte.

    No momento em que um programa gerado, dito a ele em qual sistema operacional e em qual arquitetura de processador ele ser executado. Ou seja, nele estaro contidas instrues especcas para um determinado tipo de processador, alm de instrues especcas para um determinado sistema operacional. (K19, 2011)

  • 6

    2.2 Linguagem de Mquina

    Todo computador possui um conjunto de instrues que seu processador capaz de executar. Essas instrues so chamadas de cdigo de mquina, so representadas por sequncias de bits, normalmente limitadas pelo nmero de bits do registrador principal da CPU. Esse cdigo chamado de cdigo binrio. So formados por 0 e 1.

    Na Linguagem de Mquina o cdigo escrito como uma sequncia de nmeros que representam as instrues a serem executadas pelo processador. uma linguagem praticamente impossvel de se trabalhar dado dificuldade de se ler o cdigo e de mant-lo. (K19, 2011). Podemos verificar essa complexidade na figura abaixo:

    Figura 2 - Trecho do programa Chrome em Binrio (Fonte: K19)

    2.3 Linguagem de Programao

    Uma linguagem de programao um mtodo padronizado para expressar instrues para um computador. um conjunto de regras sintticas e semnticas usadas para definir um programa de computador. Permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados sero armazenados ou transmitidos e quais aes devem ser tomadas sobre vrias circunstncias.

    Outra definio dada por Said (2007) que linguagens de programao so conjuntos de padres e comandos com sintaxes predefinidas que o programador utiliza para traduzir os algoritmos escritos, o que permite dar ordens ao processador e memria de um computador.

    Escrever um programa em Linguagem de Mquina totalmente invivel. As Linguagens de Programao que tentam se aproximar das linguagens humanas. Veja um trecho de cdigo na Linguagem C#.

  • 7

    Figura 3 - Trecho de programa na Linguagem C#

    2.4 Compilador

    Se o processador entende apenas Linguagem de Mquina, como ele ir interpretar o cdigo escrito em uma Linguagem de Programao?

    Um compilador um programa de computador ou um conjunto de programas que, a partir de um cdigo fonte escrito em uma linguagem de programao, cria um programa semanticamente equivalente, porm escrito em outra linguagem, objeto. Ou seja, o papel do compilador , basicamente, traduzir um cdigo em Linguagem de Programao para um cdigo em Linguagem de Mquina.

    Figura 4 Compilao

    2.5 Mquinas Virtuais

    A empresa que desejar ter a sua aplicao disponvel para diversos sistemas operacionais (Windows, Linux, Mac OS X, etc), e arquiteturas de processadores (Intel, ARM, PowerPC, etc), ter que escrever verses diferentes do cdigo fonte para cada plataforma (sistema operacional + arquitetura de processador). Isso pode ser traduzido, do ponto de vista dos administradores de uma empresa, como um investimento muito alto em desenvolvimento e manuteno de um sistema. (K19, 2011)

  • 8

    Para solucionar esse problema, ou seja, a tarefa custosa de gerenciar diversas verses do cdigo, alguns softwares compilar os programas para uma mquina virtual. De acordo com os autores da K19, Uma mquina virtual funciona como uma camada a mais entre o cdigo compilado e a plataforma. Portanto, quando compilamos um cdigo fonte, estamos criando um executvel que a mquina virtual saber interpretar e ela quem dever traduzir as instrues do seu programa para a plataforma. (K19, 2011)

    Figura 5 - Ilustrao do Funcionamento de uma Mquina Virtual (Fonte: K19)

    2.6 Exerccios de Fixao

    1. O que so algoritmos? E qual sua importncia?

    2. Pesquise informaes na internet sobre a histria das linguagens de programao. Crie uma linha do tempo identificando os principais acontecimentos sobre o assunto nos ltimos 40 anos.

  • 9

    3 Lgica de Programao

    Neste captulo so apresentados os conceitos de lgica, algoritmos e implementao.

    3.1 Lgica Existem muitas definies para a palavra lgica, porm no caso do nosso estudo no relevante um aprofundamento nesse ponto, suficiente apenas discutir alguns pontos de vista sobre o assunto.

    Lgica uma parte da filosofia que estuda o fundamento, a estrutura e as expresses humanas do conhecimento. A lgica foi criada por Aristteles no sculo IV a.C. para estudar o pensamento humano e distinguir interferncias e argumentos certos e errados. (CABRAL, 2012)

    A lgica estuda a correo do raciocnio, ou seja a ordem da razo. Isso d para entender que a nossa razo pode funcionar desordenadamente. Por isso, a lgica estuda maneiras de colocar ordem no pensamento. (SAID, 2007)

    Considere o problema de descobrir a idade da pessoa mais velha de um grupo de pessoas. Suponha que estas pessoas esto em uma la qualquer (banco, cinema, etc.), e que esta fila no est vazia.

    Figura 6 Fila de Pessoas

    Vamos elaborar uma estratgia para resolver este problema. Uma soluo bem simples seria fazer o seguinte (Veja a seo a seguir - 3.2 Algoritmos e Implementao).

  • 10

    3.2 Algoritmos e Implementao

    Um algoritmo uma sequncia de passos que resolve algum problema ou alcana algum objetivo, como a sequncia de passos para resolver o problema de descobrir a idade mais velha de uma pessoa. importante salientar que um algoritmo simplesmente diz o que deve ser feito. Como uma receita de bolo.

    Dizemos que um algoritmo um sequencia finita de passos, descritos em uma ordem lgica, que visam atingir um objetivo bem definido.

    Figura 7 - Receita (Fonte: obadenbaden.com.br)

    Para resolver um problema, como em uma receita qualquer, devemos denir como executar os passos do algoritmo. Por exemplo, para o problema anterior (Seo 3.1- Lgica) de encontrar a maior idade do grupo de pessoas na fila, deveramos denir como colher as informaes sobre as idades das pessoas (perguntar para a prpria pessoa, ver a data de nascimento em algum cadastro que a pessoa tenha feito) e como manter as informaes sobre as idades (anotar em um papel ou guardar em uma varivel no computador).

    A denio de como os passos de um algoritmo sero executados uma implementao do algoritmo. Resumindo, algoritmo o que deve ser feito e implementao o como deve ser feito. (CAELUM, 2011)

    Uma soluo simples para o nosso problema:

    1) Pegue a idade da primeira pessoa. A nica informao que voc tem que esta idade a maior at o momento. Ento, guarde em algum lugar esta informao.

    2) Percorra cada uma das prximas pessoas e faa o seguinte:

    a) Pegue a idade da pessoa, esta a idade atual.

    b) Compare a idade atual com a maior at o momento. Esta comparao pode resultar em trs possibilidades: a idade atual menor, igual ou maior.

    c) Se a altura atual for maior, ento faa o valor da maior idade ser igual a atual.

    Um algoritmo deve ter uma sequencia de passos finitos e que garanta a sua repetio, ou seja, toda vez que for executado deve chegar ao resultado desejado.

  • 11

    3.3 Representao dos Algoritmos

    H diversas formas de representar os algoritmos, as formas mais utilizadas de representao: Fluxograma e Pseudocdigo. H ainda a linguagem natural, que ser apresentada apenas como forma introdutria neste material, j que no se recomenda solucionar um problema computacional com o seu uso.

    3.3.1 Linguagem Natural

    Suponha que voc tenha um colega que o mais novo cliente do seu banco, e ele quer aprender a sacar dinheiro no caixa eletrnico. Voc j tem uma soluo para o problema dele, ento resolve ensin-lo a sacar dinheiro. Para tanto, voc escreve no papel as seguintes instrues:

    1. Passe o carto do banco no leitor. 2. Digite a senha da conta-corrente. 3. No menu que aparecer, escolha a opo SAQUE. 4. Digite o valor desejado e tecle ENTRA. 5. Confirme o valor do saque e aperte ENTRA. 6. Aguarde na frente do caixa at sair o dinheiro. 7. Pegue o dinheiro.

    Com esse algoritmo para sacar dinheiro, de forma ordenada, se seu amigo seguir os passos conseguir ter as notas em suas mos.

    Mas,

    Seu amigo j recebeu o carto?

    Tem dinheiro na mquina?

    Tem saldo na conta?

    Muitas vezes, tero diferentes verses, ou diferentes fluxos de uma mesma verso de um algoritmo, para se resolver um problema, como esse que foi exemplificado.

    3.3.2 Fluxogramas

    Fluxograma um tipo de diagrama, s vezes conhecidos como diagrama de blocos, e pode ser entendido como uma representao esquemtica de um processo, muitas vezes feito atravs de grficos que ilustram de forma descomplicada a transio de informaes entre os elementos que o compem.

    uma representao grfica de algoritmos onde formas geomtricas diferentes implicam aes distintas (instrues e comandos). Facilita o entendimento das ideias contidas nos algoritmos.

  • 12

    Forma Significado

    Terminador: Incio e Fim do Fluxograma.

    Processo

    Entrada de Dados

    Sada de Dados

    Deciso

    Conector

    Sentido do fluxo

    Figura 8 - Principais formas usadas em fluxogramas (smbolos mais usados)

  • 13

    Exemplo:

    Vamos supor que precisemos criar um algoritmo para somar dois valores (dados pelo usurio) e exibir o seu resultado.

    3.3.3 Pseudocdigo

    Esta forma de representao de algoritmos rica em detalhes, como a definio dos tipos das variveis usadas no algoritmo. Por assemelhar-se bastante forma em que os programas so escritos, encontra muita aceitao.

    Na verdade, esta representao suficientemente geral para permitir a traduo de um algoritmo nela representado para uma linguagem de programao especfica seja praticamente direta. (UFRN, 2004)

    A forma geral da representao de um algoritmo na forma de pseudocdigo a seguinte:

    Algoritmo uma palavra que indica o incio da definio de um algoritmo em forma de pseudocdigo.

    um nome simblico dado ao algoritmo com a finalidade de distingui-los dos demais.

    consiste em uma poro opcional onde so declaradas as variveis globais usadas no algoritmo principal e, eventualmente, nos subalgoritmos.

    Incio

    A, B

    SOMA A + B SOMA Fim

    Figura 9 - Fluxograma para soma de dois valores

  • 14

    consiste de uma poro opcional do pseudocdigo onde so definidos os subalgoritmos.

    Exemplo:

    A soma de dois valores, agora representados em pseudocdigo.

    A representao em pseudocdigo bem simples e na maioria dos casos o suciente para se explicar um algoritmo. Existem alguns interpretadores de portugol como o VisuAlg e, no caso da lngua inglesa, temos algumas linguagens como Pascal e BASIC cuja sintaxe se assemelha muito com a sintaxe de um pseudocdigo em ingls. (K19, 2011)

    3.4 Exerccio de Fixao

    1. Pesquise sobre as formas de representar algoritmos. O que dito sobre descrio narrativa? interessante ou no utilizar essa forma para a elaborao de algoritmos?

    2. Baixe o aplicativo VISUALG e tente executar o algoritmo acima. Veja instrues no captulo 8 - Linguagem de Projeto de Programao.

  • 15

    4 Tipos de Dados

    Neste captulo so apresentados os conceitos de tipos de dados, constantes e variveis. Declarao e inicializao de variveis nas linguagens C# e Java. Apresenta-se tambm as regras de declarao e as convenes utilizadas.

    Figura 10 - Zebra (imagem construda em ASCII)

    Nota sobre ASCII: ASCII (acrnimo para American Standard Code for Information Interchange, que em portugus significa "Cdigo Padro Americano para o Intercmbio de Informao") uma codificao de caracteres de oito bits baseada no alfabeto ingls. Os cdigos ASCII representam texto em computadores, equipamentos de comunicao, entre outros dispositivos que trabalham com texto. Desenvolvida a partir de 1960, grande parte das codificaes de caracteres modernas a herdaram como base.

    Os dados representam as informaes processadas pelo computador. Alguns tipos de dados: numricos (inteiros e reais), dados caracteres ou literais, lgicos, datas, entre outros.

    Os tipos numricos inteiros so dados numricos positivos, negativos e no fracionrios. Ex: 50, 12, 0, -14. J os tipos reais so aqueles tambm numricos positivos e negativos, mas, nesse caso, fracionrio. Exemplo: 50.34, 12.14, -14.23.

    Os tipos caracteres so sequencias de letras, nmeros e smbolos especiais, tambm conhecido por cadeia de string, literal ou alfanumrico. So representados entre aspas. Exemplo: bola, Programa, 19-3806-5555, etc.

    Os tipos lgicos, chamados de booleanos, so dados que representam apenas dois valores: verdadeiro e falso. Nas linguagens de alto nvel como Pascal, C/C++, PHP, reconhecido pelos termos em ingls, ou seja, true ou false. Nota: Algumas linguagens tratam datas como tipos especiais. Nos exemplos deste material, quando usarmos datas, utilizaremos entre aspas como se fosse um tipo string.

  • 16

    Figura 11 - Exemplo de Tipos de dados na Linguagem C

    4.1 Constantes

    Constantes so usadas em expresses para representar vrios tipos de valores. Em C# existem regras rgidas para determinar como devem ser escritos estes valores. A seguir iremos mostrar as regras para escrever constantes.

    4.1.1 Constantes Inteiras

    So valores numricos sem ponto decimal, precedidos ou no por um sinal. No possvel separar o sinal do valor numrico. Constantes vlidas so, por exemplo:

    1997

    -3

    +5

    0

    -32000

    Alguns exemplos de erros na escrita de constantes inteiras so:

    1.3 (No possvel usar ponto decimal).

    - 345 (No possvel colocar um espao entre o sinal e o valor numrico).

    23 (No possvel usar notao de expoentes)

    4.2 Variveis

    Em computao uma varivel representa um endereo da memria RAM. Nela somos capazes de armazenar informaes de vrios tipos: numricos, strings (texto), booleanos (verdadeiro ou falso), objetos e etc.

    Quando declaramos uma varivel estamos atribuindo um nome simblico um endereo da memria RAM. Dentro de nosso programa utilizaremos esse nome

    varX

    189

  • 17

    para manipular a informao contida no endereo da memria relacionado varivel. (K19, 2011)

    O computador, para poder trabalhar com algumas destas informaes precisa saber onde, na memria, o dado est localizado. Fisicamente, cada posio de memria, possui um endereo, ou seja, um nmero, normalmente em hexadecimal, que indica onde cada informao est localizada.

    Como utilizamos as variveis? Para utilizarmos as variveis na linguagem Java ou C# (duas das mais utilizadas atualmente) precisamos passar pelas seguintes etapas: declarao e inicializao.

    4.2.1 Declarao

    Tanto em Java como em C# declaramos uma varivel informando o seu tipo e o seu nome (identicador).

    Figura 12 - Exemplo de declarao em C#

    Figura 13 - Exemplo de declarao em Java

    4.2.2 Inicializao

    Aps declararmos uma varivel, antes de utiliz-la, devemos inicializ-la para evitarmos um erro de compilao.

    Figura 14 - Exemplo de inicializao em C#

  • 18

    Figura 15 - Exemplo de inicializao em Java

    4.3 Tipos de variveis

    Pelo fato das variveis possurem um tipo nas linguagens C, Java e C#, normalmente dizemos apenas qual o tipo da varivel? quando queremos saber qual o tipo de dado associado quela varivel em questo. Existem diversos tipos de dados, sendo os mais bsicos os tipos primitivos que so pr-denidos pelas duas linguagens. (K19, 2011)

    4.3.1 Tipos primitivos em C

    Tipo Tamanho em Bytes Faixa Mnima

    char 1 -127 a 127

    unsigned char 1 0 a 255

    signed char 1 -127 a 127

    int 4 -2.147.483.648 a 2.147.483.647

    unsigned int 4 0 a 4.294.967.295

    signed int 4 -2.147.483.648 a 2.147.483.647

    short int 2 -32.768 a 32.767

    unsigned short int 2 0 a 65.535

    signed short int 2 -32.768 a 32.767

    long int 4 -2.147.483.648 a 2.147.483.647

    signed long int 4 -2.147.483.648 a 2.147.483.647

    unsigned long int 4 0 a 4.294.967.295

    float 4 Seis digitos de preciso

    double 8 Dez digitos de preciso

    long double 10 Dez digitos de preciso

    4.3.2 Tipos primitivos em C#

    Tipo C# Tipo .NET Descrio Faixa de dados

    Bool System.Boolean Booleano true ou false

    Byte System.Byte Inteiro de 8-bit com sina -127 a 128

    Char System.Char Caracter Unicode de 16-bit U+0000 a U+ffff

    Decimal System.Decimal Inteiro de 96-bit com sinal com 28-29 dgitos significativos

    1,0 10-28 a 7,9 1028

    Double System.Double Flutuante IEEE 64-bit com 15-16 dgitos significativos

    5,0 10-324 a 1,7 10308

    Float System.Single Flutuante IEEE 32-bit com 7 1,5 10-45 a 3,4 1038

  • 19

    dgitos significativos

    Int System.Int32 Inteiro de 32-bit com sinal -2.147.483.648 a 2.147.483.647

    Long System.Int64 Inteiro de 64-bit com sinal 9,223,372,036,854,775,808 a 9,223,372,036,854,775,807

    Object System.Object Classe base

    Sbyte System.Sbyte Inteiro de 8-bit sem sinal 0 a 255

    Short System.Int16 Inteiro de 16-bit com sinal -32,768 a 32,767

    String System.String String de caracteres Unicode

    Uint System.UInt32 Inteiro de 32-bit sem sinal 0 a 4,294,967,295

    Ulong System.UInt64 Inteiro de 64-bit sem sinal 0 a 18,446,744,073,709,551,615

    Ushort System.UInt16 Inteiro de 16-bit sem sinal 0 a 65,535

    4.3.3 Tipos primitivos em Java

    Java possui 8 tipos primitivos. Quatro deles so usados para representar inteiros. So eles: byte, short, int, long. A diferena entre eles o tamanho em bytes. Todos representam nmeros inteiros positivos e negativos.

    Outros dois tipos primitivos so usados para representar nmeros reais (ponto flutuante). So eles: float e double. A diferena entre eles a quantidade de bytes utilizados para sua representao. Tanto float quanto o double seguem a norma IEE7541 para formao de nmeros de ponto flutuantes.

    Os dois ltimos tipos so char e boolean. O primeiro utilizado para representar caracteres ou nmeros positivos. O segundo aceita dois valores lgicos true ou false.

    Tipo Faixa de dados

    byte (8bits) -128 a 127

    short (16bits) -32768 a 32767

    int (32bits) 2147483648 a 2147483647

    long (64bits) 9223372036854775808 a 9223372036854775807

    float (32 bits) single-precision 32-bit IEEE 754 floating point

    double (64 bits) double-precision 64-bit IEEE 754 floating point

    char (16 bits) '\u0000' (ou 0) a '\uffff' (or 65.535 inclusive)

    Boolean Assume true ou false (tamanho no defnido)

    4.4 Conveno para a nomenclatura

    Tanto em Java como em C# existe uma conveno para a escrita dos nomes das variveis. Ambas as linguagens utilizam o padro Camel Case, que consiste em escrever o nome da varivel com a primeira letra de cada palavra em maiscula exceto a primeira.

    Tambm devemos nos lembrar de que as trs linguagens so Case Sensitive, ou seja, numeroDaConta e NumeroDaConta so consideradas duas variveis diferentes pelo fato do nome da primeira comear com letra minscula e a da segunda maiscula.

    1 A Norma IEEE 754-2008 define os formatos adequados para representar nmeros em ponto flutuante

    de preciso simples (32 bits) e de preciso dupla (64 bits)

  • 20

    4.5 Regras para a nomenclatura

    As linguagens C, Java e C# possuem regras muito parecidas. O nome de uma varivel:

    1. No deve comear com um dgito; 2. No pode ser igual a uma palavra reservada; 3. No pode conter espao(s); 4. Pode ser uma palavra de qualquer tamanho; 5. Pode conter letras, dgitos e _ (underscore). Em Java, pode conter tambm o

    caractere $.

    As linguagens Java e C# nos permite escrever os nomes das variveis em qualquer idioma, pois elas aceitam qualquer caractere Unicode. Portanto so vlidas as variveis escritas com as acentuaes do portugus, assim como as variveis escritas em japons, por exemplo.

    int nmeroDaConta;

    int ; Figura 16 - Exemplo de nomes de variveis vlidos utilizando caracteres especiais em outros idiomas.

    Apesar de ser possvel o uso de caracteres em outros idiomas, assim como o uso dos caracteres $ (cifro) e _ (underscore), no recomendvel utiliz-los. No utilizar tais caracteres uma das boas prticas de programao.

    4.6 Exerccio de Fixao

    1. Indique os nomes de variveis que so vlidos. Justifique os nomes invlidos. a) tempo b) nota_final c) us$ d) char e) 2dias f) teste 1 g) raio.do.circulo

    2. Indique quais dos nmeros abaixo so constantes inteiras (longas ou no)

    vlidas. Justifique suas respostas. a) 100 b) 2 345 123 c) 3.0 d) -35 e) - 234 f) 0L g) 2l

  • 21

    5 Operadores

    Nas diferentes linguagens de programao utilizamos os operadores para manipularmos as variveis de nossa aplicao. As linguagens C, Java e C# possuem diversos operadores que so categorizados da seguinte forma:

    Aritmtico (+, -, *, /, %)

    Atribuio (=, +=, -=, *=, /=, %=)

    Relacional (==, !=, =)

    Lgico (&&, ||)

    Veja a seguir uma lista de operadores matemticos bsicos, listados em ordem de precedncia. Use parnteses para outra ordem.

    Operador Objetivo

    *, /, % Multiplicao, Diviso, Mdulo

    +, - Adio, subtrao

    Exemplo

    Figura 17 - Operadores Matemticos

    Lista de operadores de atribuio e Incremento:

    Operador Objetivo

    = Atribuir valor

    v++ Incremento varivel v por 1.

    v+=n Incremento varivel v por n.

    v*=n Multiplique varivel v por n.

    v-=n Subtrair n da varivel v.

    Veja lista de operadores relacionais:

    Operador Objetivo

    == Verifica a igualdade.

    != Verifica a desigualdade.

  • 22

    Figura 18 - Exemplo de uso de operador de verificao de igualdade em C#

    Veja a lista dos operadores lgicos:

    Operador Objetivo

    && And condicional.

    || OR condicional.

    ! NOT condicional.

    Figura 19 - Exemplo de uso do operador && em C#

    5.1 Tabela Verdade

    Os autores da K19 (K19, 2011) apresentam a tabela verdade com uma tabela matemtica muito utilizada na lgebra Booleana e faremos o uso dela para compreendermos melhor os operadores lgicos. Sendo A e B duas variveis booleanas, conra como caria a tabela verdade para os operadores lgicos E (&&) e OU (||):

    Figura 20 - Exemplo de Tabela da Verdade

    > Mais de.

    < Menor que.

    >= Maior que ou igual a.

  • 23

    Rapidamente notamos que a operao E devolve true apenas quando A e B so

    true. Tambm notamos que a operao OU devolve false apenas quando A e B so false.

    Vamos utilizar os exemplos de operadores lgicos dados anteriormente para ilustrarmos melhor como funciona a tabela verdade.

    Exemplo 1:

    Seja A=5, B=3, C=2. Calcule o resultado da expresso lgica:

    1) A + 7 > B * C

    Sendo A = 5

    Ento 5 + 7 = 12

    E

    3 * 2 = 6

    Ento a expresso 12 > 6, ou seja, o resultado .verdadeiro. (Verdadeiro)

    Exemplo 2:

    Suponha que temos trs variveis A = 5, B = 8 e C =1, os resultados das expresses seriam:

    Operaes Lgicas so utilizadas quando se torna necessrio tomar decises em um fluxograma ou diagrama de bloco. Num fluxograma, toda deciso ter sempre como resposta o resultado .verdeiro. ou .falso. (true ou false)

    Uma estrutura de deciso ou desvio faz parte das tcnicas de programao que conduzem a estruturas de programas que no so totalmente sequenciais. Com as instrues de SALTO ou DESVIO pode-se fazer com que o programa proceda de uma ou outra maneira, de acordo com as decises lgicas tomadas em funo dos dados ou resultados anteriores.

    5.1.1 Exerccios de Fixao

    1. Crie um fluxograma para calcular o estoque mdio de uma pea, sendo que: ESTOQUEMDIO = (QUANTIDADE MNIMA + QUANTIDADE MXIMA) /2.

  • 24

    2. Crie um fluxograma para calcular a idade aproximada em anos de uma pessoa,

    Sendo que IDADE = ANOATUAL ANONASC.

    3. Crie um fluxograma para calcular a seguinte expresso: X:= X ^ 2 + 2. Onde X informado como entrada pelo usurio.

    4. Crie um fluxograma para calcular a seguinte expresso: A:= A + B * C . Os valores devem ser lidos do teclado.

    5. Crie um fluxograma para calcular a mdia ponderada de duas notas de um aluno. A nota 1 tem peso 3 e a nota 2 tem peso 7.

    6. Indique com um I os tipos inteiros, R os tipos reais, B os tipos booleanos e

    L os tipos literais para os dados abaixo:

    ( ) 100 ( ) 34.34 ( ) 12.12 ( ) 0 ( ) -34 ( ) -9 ( ) 10/11/09 ( ) Maria ( ) 0 ( ) .verdadeiro. ( ) .falso. ( ) ( ) 34 ( ) -1.45 ( ) -30.3

    7. Construa um fluxograma que:

    Leia a cotao do dlar Leia um valor em dlares Converta esse valor para Real Mostre o resultado

    8. Construa um fluxograma que:

    Leia 4(quatro) nmeros Calcule o quadrado para cada um Somem todos e Mostre o resultado

    9. Construa um algoritmo para pagamento de comisso de vendedores de peas,

    levando-se em considerao que sua comisso ser de 5% do total da venda e

    que voc tem os seguintes dados:

    Identificao do vendedor Cdigo da pea Preo unitrio da pea Quantidade vendida

    10. Construa um algoritmo que receba como entrada os seguintes dados:

    Peso de uma pessoa; Sua altura em centmetros; E em seguida calcule o ndice de Massa Corprea (IMC) atravs da seguinte frmula: PESO / ALT ^ 2

  • 25

    11. Construa um algoritmo que leia trs valores e mostre o produto dos mesmos.

    12. Construa um algoritmo para calcular o volume de uma garrafa de gua,

    utilizando a frmula: VOLUME:= 3.14159 * R ^ 2 * H, onde R o valor do Raio, e

    H a altura.

    13. Construa um algoritmo para efetuar as operaes bsicas de adio,

    multiplicao e diviso de dois valores dados pelo usurio A e B, apresentando

    ao final todos os resultados.

    14. Uma loja de animais precisa de um programa para calcular o custo da criao

    de determinada ave. O custo calculado com a frmula CUSTO:= (NRAVES *

    0.30) / 15 + 10. Construa um algoritmo para efetuar o presente clculo e

    apresentar ao final o custo de criao do nmero de aves informado pelo

    usurio (Valor lido).

    At agora entendemos o que um programa, como ele funciona, de que maneira armazenamos os dados na memria do computador atravs das variveis e como realizamos operaes de diversos tipos por meio dos operadores que as linguagens disponibilizam.

    Nos dois prximos captulos sero estudadas instrues para o controle de fluxo: instrues de deciso e de repetio.

  • 26

    6 Controle de Fluxo - Deciso

    Por meio do fluxograma que calcula a mdia de duas notas de um aluno e mostra como resultado se o mesmo foi aprovado ou no, de acordo com a seguinte condio: para ser aprovado o aluno dever ter mdia superior ou igual a sete.

    6.1 Estrutura SE ENTO SENO / IF... THEN... ELSE

    A estrutura de deciso SE/IF normalmente vem acompanhada de um comando, ou seja, se determinada condio for satisfeita pelo comando SE/IF ento execute determinado comando. Imagine um algoritmo que determinado aluno somente estar aprovado se sua mdia for maior ou igual a 7.0, como visto no fluxograma da Figura 24 Fluxograma: mdia de duas notas.

    SE MEDIA >= 7.0 ENTO ALUNO APROVADO SENO ALUNO REPROVADO

    Veja o cdigo na linguagem C#.

    Figura 21 Fluxograma: mdia de duas notas

    Incio

    N1, N2

    Soma N1 + N2

    Media (N1 + N2) / 2

    Media, Aprovado

    Fim

    Media>=7 Media, Reprovado

    Sim No

  • 27

    Figura 22 - Exemplo If/then/else

    Podemos tambm, dentro de uma mesma condio testar outras condies. Supondo que agora tenhamos uma nova condio, a de RECUPERAO. Dessa forma, se a Mdia for Menor ou igual a 3.5 o aluno est REPROVADO, com Mdia superior a 3.5 e menor que 7 o aluno est de RECUPERAO, caso seja maior ou igual a 7.0 sua situao ser aprovado.

  • 28

    Incio

    N1, N2

    Soma N1 + N2

    Media (N1 + N2) / 2

    Fim

    Media3.5 &&

    Media

  • 29

    Exemplo em C#

    Figura 24 - Cadeia de Ifs em C#

    Exerccios de Fixao

    1. Crie um Fluxograma e depois escreva um programa que contenha duas

    variveis: precoDoProduto1 e precoDoProduto2. Alm disso, o seu programa dever imprimir na tela a mensagem O produto X o mais caro., substituindo X por 1 quando o valor do precoDoProduto1 for maior que o valor do precoDoProduto2 ou por 2 quando ocorrer o contrrio.

    2. Crie um Fluxograma e depois escreva um programa que guarde dois valores numricos: a e b. Imprima na tela a mensagem divisvel. quando a for divisvel por b ou a mensagem No divisvel., caso contrrio.

    3. Escreva um programa que contenha uma varivel: horaDoDia. Essa varivel dever conter a hora do dia e trs mensagens devero ser impressas na tela de acordo com a hora: Bom dia, Boa tarde ou Boa noite. No se preocupe em capturar a hora do sistema, insira a hora manualmente em seu programa.

    4. Elabore um diagrama de blocos que leia um nmero. Se positivo armazene-o em A, se for negativo, em B. No final mostrar o resultado.

    5. Construa um diagrama de blocos que leia um nmero e verificar se ele par ou mpar. Quando for par armazenar esse valor em P e quando for mpar armazen-lo em I. Exibir P e I no final do processamento.

  • 30

    6. Construa um diagrama de blocos para ler uma varivel numrica N e imprimi-la somente se a mesma for maior que 100, caso contrrio imprimi-la com o valor zero.

    7. Tendo como dados de entrada a altura e o sexo de uma pessoa. Construa um diagrama de blocos que calcule seu peso ideal, utilizando as seguintes frmulas:

    Para homens: (72.7*h) - 58

    Para mulheres: (62.1*h) - 44.7 (h = altura)

    8. Escreva um algoritmo que leia trs nmeros e imprima o maior deles.

    9. Escreva um algoritmo que leia trs nmeros e os imprima em ordem crescente.

    10. Uma empresa paga R$10.00 por hora normal trabalhada e R$ 15.00 por hora extra. Escreva um algoritmo que leia o total de horas normais e o total de horas extras trabalhadas por um empregado em um ano e calcule o salrio anual deste trabalhador.

  • 31

    7 Comandos de Fluxo - Estruturas de Repetio

    Em TI, uma estrutura de repetio uma estrutura de desvio do fluxo de controle presente em linguagens de programao que realiza e repete diferentes instrues ou aes dependendo se uma condio verdadeira ou falsa, em que a expresso processada e transformada em um valor booleano. Esto associados a uma estrutura de repetio uma condio (tambm chamada "expresso de controle" ou "condio de parada") e um bloco de cdigo: verifica-se a condio, e caso seja verdadeira, o bloco executado. Aps o final da execuo do bloco, a condio verificada novamente, e caso ela ainda seja verdadeira, o cdigo executado novamente.

    Deve-se observar que, caso o bloco de cdigo nunca modifique o estado da condio, a estrutura ser executada para sempre, uma situao chamada lao infinito (loop infinito). Da mesma forma, possvel especificar uma estrutura em que o bloco de cdigo modifica o estado da condio, mas esta sempre verdadeira.

    Algumas linguagens de programao especificam ainda uma palavra reservada para sair da estrutura de repetio de dentro do bloco de cdigo, "quebrando" a estrutura. Tambm oferecida por algumas linguagens uma palavra reservada para terminar uma iterao especfica do bloco de cdigo, forando nova verificao da condio.

    7.1 Tipos ou modelos de repetio

    1. Repetio pr-testada; 2. Repetio ps-testada; 3. Repetio com varivel de controle e; 4. Iterao de coleo.

    7.2 Repetio pr-testada

    A construo "enquanto" (tambm chamada "repetio pr-testada") a mais difundida estrutura de repetio, e sua estrutura bsica a seguinte:

    Enquanto (condio) Faa (bloco de cdigo) Fim Enquanto

    Nesta estrutura, a condio primeiramente verificada, e se for verdadeira o bloco executado. No final de execuo do bloco a condio novamente testada.

    Em diagrama de blocos:

  • 32

    Nr

  • 33

    7.4 Repetio com varivel de controle

    A construo "para" (ou "repetio com varivel de controle") uma estrutura de repetio que designa uma varivel de controle para cada iterao do bloco, e uma operao de passo a cada iterao. Sua estrutura bsica a seguinte:

    Para (V) De (vi) At (vf) Passo (p) Faa (bloco de cdigo) Fim Para

    Na construo acima, V uma varivel de controle, vi o estado inicial de V e vf o estado de sada da estrutura de repetio. O passo indica qual ser o incremento entre cada iterao do cdigo. No incio da estrutura, vi atribudo V, e verificado se V igual a vf, a condio de parada. Caso no seja, o bloco de cdigo executado e ento o passo adicionado V (V = V + p). Segue-se ento com nova verificao da condio de parada. O passo opcional, e caso seja omitido assume-se incremento de uma unidade.

    Em diagrama de blocos

    Cont

    V:=vi,vf,p

    processamento

    Esta estrutura bastante utilizada para a iterao de vetores, em que cada iterao representa um ndice do vetor. Nesse caso, para vetores multidimensionais possvel aninhar este tipo de construo para as diversas dimenses associadas. Por exemplo, para uma estrutura bidimensional como uma matriz, que possui linhas e colunas, a estrutura exemplificada abaixo:

    Para (V) De (vi) At (vf) Faa Para (Y) De (yi) At (yf) Faa (bloco de cdigo) Fim Para Fim Para

    Em diagrama de blocos

  • 34

    Cont

    V:=vi,vf,p

    processamento

    Y:=yi,yf,p

    7.5 Iterao de coleo

    A estrutura "para cada" usada para iterar itens de uma coleo, sendo uma especializao da estrutura "para". Menos flexvel que a estrutura "para", esta estrutura torna implcita a atribuio inicial e o incremento do passo, e determina que a condio de parada somente a situao na qual todos os elementos do conjunto j foram iterados. Sua estrutura bsica :

    Para Cada (item) De (conjunto) Faa (bloco de cdigo) Fim Para

    7.6 Exemplo em trs formas:

    Considere o seguinte problema: Elaborar um diagrama de blocos de um programa que efetue o clculo do fatorial de um nmero maior do que 0 (zero) informado pelo usurio. Nota: supondo que o usurio entre com o nmero 5, desta forma temos que 5! = 5 X 4 X 3 X 2 X 1, ou 5! = 1 X 2 X 3 X 4 x 5.

  • 35

    Exemplo em diagrama de repetio pr-testada:

    Incio

    N

    Cont

  • 36

    Exemplo em diagrama de repetio ps-testada:

    Incio

    N

    Cont

  • 37

    Exemplo em diagrama com varivel de controle, construo para.

    Incio

    N

    Fat

    Fim

    Fat:=1

    Cont:=1.N,1

    Fat:=Fat * Cont

    Cdigo correspondente na linguagem C#.

    Figura 27 - Cdigo Fatorial em C# (Comando for)

  • 38

    7.7 Exerccios de Fixao

    1. Faa um algoritmo que determine o maior entre N nmeros. A condio de parada a entrada de um valor 0 (Zero), ou seja, o algoritmo deve ficar calculando o maior at que a entrada seja igual a 0 (Zero).

    2. Uma rainha requisitou os servios de um monge e disse-lhe que pagaria qualquer preo. O monge, necessitando de alimentos, indagou rainha sobre o pagamento, se poderia ser feito com gros de trigo dispostos em um tabuleiro de xadrez, de tal forma que o primeiro quadro deveria conter apenas um gro e os quadros subsequentes, o dobro do quadro anterior. A rainha achou o trabalho barato e pediu que o servio fosse executado, sem se dar conta de que seria impossvel efetuar o pagamento. Tarefa: Faa um algoritmo para calcular o nmero de gros que o monge esperava receber.

    3. Faa um algoritmo que conte de 1 a 100 e a cada mltiplo de 10 emita uma mensagem: Mltiplo de 10.

    4. Elabore um algoritmo que gere e escreve os nmeros mpares entre 100 e 200.

    5. Construa um algoritmo que leia 500 valores

    a. Encontre o maior valor b. Encontre o menor valor c. Calcule a mdia dos nmeros lidos

    6. Faa um algoritmo que dado um nmero pelo usurio, mostre se o mesmo

    mltiplo de 5, se par ou mpar, negativo ou positivo.

    7. Faa um algoritmo que dado um nmero pelo usurio, mostre se o mesmo um nmero primo ou no.

    8. Em um circo havia vrios animais de diferentes espcies. Faa um algoritmo que leia a idade e a espcie de cada animal existente neste circo e ao final mostre qual a idade e espcie mais velha. O algoritmo deve solicitar se o usurio deseja continuar a execuo. Quando o usurio digitar n termina-se o fluxo e exibido o resultado. Nota: no circo no h animais de idade igual.

    9. Faa um algoritmo que mostre o nmero de nmeros pares (entre 1 e 168) que so mltiplos de 6. Deve-se listar cada um deles no resultado em tela.

    10. Em uma sala de reunio haviam vrias pessoas sentadas, sabendo-se que a ltima pessoa se chamava Joo e era o nico com 33 anos de idade. Faa um algoritmo que leia o Nome, a Idade e o Sexo de cada pessoa na sala e mostre ao final:

  • 39

    a. Quantas pessoas so do sexo masculino; b. Quantas pessoas so do sexo feminino; c. Quantas pessoas so menores de 21; d. E a mdia de idade da sala.

    11. Faa um algoritmo que exiba na tela a tabuada do 1 ao 10.

    12. Faa um algoritmo que receba o peso da carga de N caminhes em KG, e seu

    preo por arroba (15KG). Informe ao final qual o valor em R$ de mercadoria de todos os caminhes.

    13. Faa um fluxograma que pea ao usurio que digite um nmero qualquer. Caso o nmero seja positivo, mostrar mensagem que o nmero positivo. Caso negativo mostrar mensagem que o nmero negativo. O programa dever repetir esta operao at que o usurio digite o nmero zero.

    14. Dados 3 valores A, B, C, verifique se esses podem ser valores de lados um tringulo e, se for, determine se o tringulo equiltero, issceles ou escaleno.

    Sabe-se que:

    Para que esses valores possam ser tringulos as somas dos dois lados devem ser maior que a do outro lado.

    O tringulo equiltero um polgono com trs lados iguais.

    O tringulo isscele: tem dois lados iguais.

    O tringulo escaleno: tem trs lados diferentes

    Veja figura:

    15. Faa um algoritmo que leia 2 valores numricos e um smbolo. Caso o smbolo seja um dos relacionados abaixo efetue a operao correspondente com os valores e mostre o resultado. Ateno para a diviso por 0!

    + operao de soma

    - operao de subtrao

    * operao de multiplicao

    / operao de diviso

  • 40

    16. Dados 20 nmeros, verifique quantos destes so mltiplos de 3.

    17. Faa um algoritmo que apresente o resultado de uma tabuada de um nmero qualquer.

    18. Faa um algoritmo que apresente o resultado das tabuadas do 1 ao 10 listadas na tela em sequencia.

    19. Elabore um diagrama de blocos que apresente o valor de uma potncia de uma base qualquer elevada a um expoente qualquer, ou seja, de Nm.

    20. Elabore um diagrama de blocos que apresente no final, o somatrio dos valores pares existentes entre 10 e 20.

    21. Elabore um diagrama de blocos que apresente as potncias de 2, variando de 0 a 10, ou seja 20, 21, ... 210.

    22. Dado o fluxograma a seguir, realize o teste de mesa e mostre ao final os valores de A, B e C.

  • 41

    8 Linguagem de Projeto de Programao

    O diagrama de blocos, para o desenvolvimento da lgica de programao, a primeira forma de notao grfica. A outra etapa consiste em escrever o diagrama de uma forma narrativa denominada pseudocdigo, conhecido popularmente por portugus estruturado, ou at mesmo portugol.

    Essa tcnica baseada em uma PDL Program Design Language (Linguagem de Projeto de Programao), usada como referncia genrica para uma linguagem de projeto de programao, tendo como finalidade mostrar uma notao para elaboraes de algoritmos, os quais sero utilizados na definio, criao e desenvolvimento de uma linguagem computacional, como: Pascal, C/C++, C#, Java, entre outras. Abaixo, apresentado um exemplo deste tipo de algoritmo. (MANZANO, 2000)

    algoritmo "Media4" var n1, n2, n3, n4: real media: real inicio escreva("Entre com a nota 1: ") leia(n1) escreva("Entre com a nota 2: ") leia(n2) escreva("Entre com a nota 3: ") leia(n3) escreva("Entre com a nota 4: ") leia(n4) media

  • 42

    Figura 29 - Programa Visualg

    8.1 Linguagem PDL

    Abaixo algumas das sintaxes que podem ser usadas na linguagem PDL: O formato bsico do nosso pseudocdigo o seguinte:

    algoritmo "semnome" // Funo : // Autor : // Data : // Seo de Declaraes inicio // Seo de Comandos fimalgoritmo

    A primeira linha composta pela palavra-chave algoritmo seguida do seu nome delimitado por aspas duplas. Este nome ser usado como ttulo nas janelas de leitura de dados. A seo que se segue a de declarao de variveis (var), que termina com a linha que contm a palavra-chave inicio. Deste ponto em diante est a seo de comandos, que continua at a linha em que se encontre a palavra-chave fimalgoritmo. Esta ltima linha marca o final do pseudocdigo: todo texto existente a partir dela ignorado pelo interpretador.

  • 43

    O VisuAlg permite a incluso de comentrios: qualquer texto precedido de "//" ignorado, at se atingir o final da sua linha. Por este motivo, os comentrios no se estendem por mais de uma linha: quando se deseja escrever comentrios mais longos, que ocupem vrias linhas, cada uma delas dever comear por "//".

    8.1.1 Tipos de Dados

    O VisuAlg prev quatro tipos de dados: inteiro, real, cadeia de caracteres e lgico (ou booleano). As palavras-chave que os definem so as seguintes (observe que elas no tm acentuao):

    inteiro: define variveis numricas do tipo inteiro, ou seja, sem casas decimais.

    real: define variveis numricas do tipo real, ou seja, com casas decimais.

    caractere: define variveis do tipo string, ou seja, cadeia de caracteres.

    logico: define variveis do tipo booleano, ou seja, com valor VERDADEIRO ou FALSO

    O VisuAlg permite tambm a declarao de variveis estruturadas atravs da palavra-chave vetor, como ser explicado a seguir.

    8.1.2 Nomes de Variveis e sua Declarao

    Os nomes das variveis devem comear por uma letra e depois conter letras, nmeros ou underline, at um limite de 30 caracteres. As variveis podem ser simples ou estruturadas (na verso atual, os vetores podem ser de uma ou duas dimenses). No pode haver duas variveis com o mesmo nome, com a natural exceo dos elementos de um mesmo vetor.

    A seo de declarao de variveis comea com a palavra-chave var, e continua com as seguintes sintaxes:

    : : vetor "[""]" de

    Na , os nomes das variveis esto separados por vrgulas.

    Na , os so separados por vrgulas, e tm a seguinte sintaxe:

    : ..

    Na verso atual do VisuAlg, tanto como devem ser inteiros. Alm disso, exige-se evidentemente que seja maior do que .

    Exemplos:

  • 44

    var a: inteiro Valor1, Valor2: real vet: vetor [1..10] de real matriz: vetor [0..4,8..10] de inteiro nome_do_aluno: caractere sinalizador: logico

    Note que no h a necessidade de ponto e vrgula aps cada declarao: basta pular linha. A declarao de vetores anloga linguagem Pascal: a varivel vet acima tem 10 elementos, com os ndices de [1] a [10], enquanto matriz corresponde a 15 elementos com ndices [0,8], [0,9], [0,10], [1,8], [1,9], [1,10],... at [4,10]. O nmero total de variveis suportado pelo VisuAlg 500 (cada elemento de um vetor contado individualmente).

    8.1.3 Constantes e Comando de Atribuio

    O VisuAlg tem trs tipos de constantes:

    1. Numricos: so valores numricos escritos na forma usual das linguagens de programao. Podem ser inteiros ou reais. Neste ltimo caso, o separador de decimais o ponto e no a vrgula, independente da configurao regional do computador onde o VisuAlg est sendo executado. O VisuAlg tambm no suporta separadores de milhares.

    2. Caracteres: qualquer cadeia de caracteres delimitada por aspas duplas (").

    3. Lgicos: admite os valores VERDADEIRO ou FALSO.

    A atribuio de valores a variveis feita com o operador

  • 45

    algoritmo "estcivil" var ec : caracter x,cs,cc,cv : numerico inicio cs

  • 46

    9 Bibliografia

    CABRAL, G. (2012). O que Lgica. Brasil Escola.

    CAELUM. (2011). CS-14 Algoritmos e Estrutura de Dados em Java. Material Caelum.

    K19. (2011). Lgica de Programao. Apostila.

    MANZANO, J. A. (2000). Algoritmos Estudo dirigido. So Paulo: rica.

    UFRN. (2004). Algoritmo e Lgica de Programao.

    SAID, Ricardo (2007). Curso de Lgica de Programao. So Paulo: Universos dos Livros Editora Ltda.