Você está na página 1de 35

Lógica de Programação e

Algoritmo
Lógica de Programação

Lógica de Programação

1
Lógica de Programação

Sumário
Aula 1 – Definição de Logica e Algoritmo ............................................. 4
O que é lógica?...................................................................................... 4
Existe lógica no dia-a-dia? ................................................................... 4
Lógica de Programação: ...................................................................... 5
O que é um Algoritmo? ........................................................................ 5
Formas de Representação: .................................................................. 6
Descrição Narrativa ..............................................................................6
Fluxograma ou Diagrama de Fluxo: .....................................................8
Exemplo de Fluxograma ou Diagrama de Fluxo: ................................9
Diagrama de Chapin: ...........................................................................9
Pseudocódigo (Portugol) ................................................................... 10
Exercícios ............................................................................................10
DEFINIÇÃO DE ALGORITMO COMPUTACIONAL ............................11
Como os computadores entendem os Algoritmos .........................11
Aula 2 – Variável e Constante ...............................................................13
O que é uma variável? ........................................................................13
Tipos de Variáveis: .............................................................................13
Tipo “numérico”: ................................................................................ 13
Tipo “caracter”: .................................................................................. 14
Tipo “logico”: ...................................................................................... 14
Regras para nomes de variáveis ...................................................... 14
O que é uma constante? ....................................................................15
Aula 4 - Primeiro Programa usando VisualG ......................................17
Aula 3 - O que é uma expressão? ........................................................25
Expressões Aritméticas: ....................................................................26
Operadores Aritméticos .................................................................... 26
Precedência de Operadores ............................................................. 27
Expressões Relacionais: ....................................................................27
Operadores relacionais: .................................................................... 27
Expressões Lógicas: ..........................................................................28
Operadores lógicos: .......................................................................... 29

2
Lógica de Programação
Atribuição:.......................................................................................... 15
Forma Geral: ..................................................................................... 15
Onde: ................................................................................................. 16
Identificador: ...................................................................................... 16
Comando de Entrada: .........................................................................16
Comando de Saída: .............................................................................17
Forma Geral ...................................................................................... 17

3
Lógica de Programação

Aula 1 – Definição de Logica e Algoritmo

Hoje em dia, algoritmos computacionais estão presentes em quase tudo


na nossa vida. Além dos tradicionais computadores e notebooks, muitos estão
totalmente acostumados com o uso de aplicativos para smartphones e tablets,
TVs inteligentes podem executar programas personalizados e até mesmo
outros aparelhos que usamos no nosso dia-a-dia.
O Curso de Lógica de Programação onde aprendemos a desenvolver
algoritmos computacionais será muito importante para quem quer aprender
linguagens de programação do mercado, como C, Java, PHP e muitas outras.

O que é lógica?
Podemos dizer que a lógica é a arte do “bem pensar” ou a “ciência das
formas do pensamento”. Considerando que o raciocínio é a forma mais
complexo do pensamento, a lógica estuda a “correção do raciocínio”.
Resumidamente, a lógica estuda e ensina a colocar “ordem no pensamento”.
Exemplo 1:
Todo mamífero é um animal.
Todo o cavalo é um mamífero.
Portanto, todo cavalo é um animal.
Esta expressão é conclusiva, já que estudamos a veracidade do
pensamento em questão.

Exemplo 2

Deus é amor
O amor é cego
Stevie Wonder é cego
Portanto, Steve Wonder é Deus
A afirmação acima não é conclusiva porque, o fato de Stevie Wonder
ser cego não quer dizer que ele é Deus.

Existe lógica no dia-a-dia?


Quando falamos ou escrevemos, precisamos usar lógica nessas
atividades, pois queremos pensar, falar, escrever ou agir corretamente, ou
seja, colocar ordem no pensamento.

4
Lógica de Programação

Exemplo:
A gaveta está fechada.
A caneta está dentro da gaveta.
Precisamos primeiro abrir a gaveta para depois pegar a caneta.

Lógica de Programação:
A técnica de encadear o pensamento para atingir um determinado
objetivo.
O aprendizado desta técnica é necessário, para quem deseja trabalhar
com o desenvolvimento de sistemas e programas de computador.

O que é um Algoritmo?
Um algoritmo pode ser definido como um conjunto de regras (instruções),
bem definidas, para solução de um determinado problema. Algoritmos são
comuns em nosso cotidiano, como, por exemplo, uma receita de bolo.
Na informática, o algoritmo é o "projeto do programa", ou seja, antes de
se fazer um programa (software) na Linguagem de Programação desejada
deve-se fazer o algoritmo do programa.
Por que é importante fazer o algoritmo? Uma vez concebido o algoritmo,
este pode ser traduzido (codificado) para qualquer linguagem de
programação.
Um algoritmo não é a solução de um problema. Um algoritmo é um
'caminho' para a solução de um problema, ou seja, para um mesmo problema
poderemos ter diferentes algoritmos.

5
Lógica de Programação

Formas de Representação:
Descrição Narrativa
Utiliza o português do dia-a-dia para escrever o algoritmo do
problema/tarefa.

EXEMPLOS

1) SACAR DINHEIRO NO BANCO 24 HORAS

Passo 1 - Ir até o banco 24 horas.

Passo 2 – Colocar o cartão.

Passo 3 – Digitar a senha.

Passo 4 – Solicitar a quantia desejada.

Passo 5 – Se o saldo for maior ou igual à quantia desejada, sacar; caso


contrário, mostrar mensagem de impossibilidade de saque.

Passo 6 – Retirar o cartão.

Passo 7 – Sair do banco 24 horas.

2) TROCAR UMA LÂMPADA

Passo 1 – Pegar uma lâmpada nova.

Passo 2 – Pegar uma escada.

Passo 3 – Posicionar a escada embaixo da lâmpada queimada.

Passo 4 –Subir na escada com a lâmpada nova na mão.

Passo 5 – Retirar a lâmpada queimada.

6
Lógica de Programação
Passo 6 – Colocar a lâmpada nova.

Passo 7 – Descer da escada.

Passo 8 – Testar o interruptor.

Passo 9 – Guardar a escada.

Passo 10 – Jogar a lâmpada velha no lixo.

3) SOMAR TRÊS NÚMEROS

Passo 1 – Receber os três números.

Passo 2 – Somar os três números.

Passo 3 – Mostrar o resultado obtido.

7
Lógica de Programação
Fluxograma ou Diagrama de Fluxo:
É uma representação gráfica de algoritmos, onde formas geométricas
diferentes implicam em ações (instruções, comandos) distintas.

Principais formas geométricas utilizadas em fluxogramas:

8
Lógica de Programação
Exemplo de Fluxograma ou Diagrama de Fluxo:

Diagrama de Chapin:
Foi criado por Ned Chapin a partir de trabalhos de Nassi-Shneiderman.
A grande vantagem de usar este tipo de diagrama é a representação das
estruturas que tem um ponto de entrada e um ponto de saída e são
compostas pelas estruturas básicas de controle de sequência, seleção e
repetição.

Exemplo:

9
Lógica de Programação

Pseudocódigo (Portugol)
Pseudocódigo é a lógica do seu programa escrito na sua linguagem
nativa. Que por ser feito em nosso idioma ficou batizado de “PORTUGOL”.

Exercícios
Utilizando apenas a descrição narrativa, resolva os seguintes algoritmos:

a) Um homem precisava atravessar um rio com um barco que


possui capacidade apenas para carregar ele mesmo e mais
uma de suas três cargas, que são: um lobo, um bode e um maço
de alfafa. O que o homem deve fazer para conseguir atravessar
o rio sem perder suas cargas? Escreva um algoritmo mostrando
a resposta, ou seja, indicando todas as ações necessárias para
efetuar uma travessia segura.

10
Lógica de Programação
b) Elabore um algoritmo que mova três discos de uma Torre de
Hanói, que consiste em três hastes(a – b – c), uma das quais
serve de suporte para três discos de tamanhos diferentes (1 –
2 – 3), os menores sobre os maiores. Pode-se mover um disco
de cada vez para qualquer haste, contanto que nunca seja
colocado um disco maior sobre um menor. O objetivo é transferir
os três discos para outra haste.

c) Três jesuítas e três canibais precisam atravessar um rio; para


tal dispõem de um barco com capacidade para duas pessoas.
Por medidas de segurança, não se deve permitir que em alguma
margem a quantidade de jesuítas seja inferior à de canibais.
Qual a solução para efetuar a travessia com segurança?
Elabore um algoritmo mostrando a resposta, indicando as ações
que concretizam a solução deste problema.

DEFINIÇÃO DE ALGORITMO COMPUTACIONAL


“São passos a serem seguidos por um módulo processador e seus
respectivos usuários que, quando executados na ordem correta, conseguem
realizar determinada tarefa. ”

É preciso estabelecer algumas regras para se criar algoritmos


computacionais. De forma geral os algoritmos computacionais utilizam a forma
de descrição narrativa, mas acrescentando determinados parâmetros e
informações a mais para a compreensão dos computadores.

Como os computadores entendem os Algoritmos


Para os humanos a interação não seria completamente nada sem o
alfabeto e os números não é mesmo? Mas com os computadores isso é um
pouco diferente. Chamada de "linguagem binaria", os famosos 1 e 0 é o que
dão origem a essa linguagem. Entenda um pouco sobre como ela funciona.
Para entender melhor como funciona essa TRADUÇÃO da linguagem
humana para a linguagem de máquina, como assim é chamada, é preciso
saber o alfabeto binário (não necessariamente decorá-lo).

11
Lógica de Programação
Cada algarismo 1 ou 0, é chamado de bit (binary digit) e para que se forme
um dígito são necessários oito bits e cada conjunto de oito bits é chamado de
byte, normalmente. Veja o alfabeto binário:

A B C D E F
0100 0100 0100 0100 0100 0100
0001 0010 0011 0100 0101 0110
G H I J K L
0100 0100 0100 0100 0100 0100
0111 1000 1001 1010 1011 1100
M N O P Q R
0100 0100 0100 0101 0101 0101
1101 1110 1111 0000 0001 0010
S T U V W X Y Z
0101 0101 0101 0101 0101 0101 0101 0101
0011 0100 0101 0110 0111 1000 1001 1010

Essa é a codificação ASCII (American Standard Code for Information


Interchange ou Código Padrão Americano para Intercâmbio de Informações)
e é a mais usada.
Aqui, temos um exemplo prático de um algoritmo simples para
computador que soma dois números inteiros:

Forma Descrição Narrativa


1: Defina o tipo das variáveis

2: Leia os números

3: Soma os números

4: Escreva a soma dos números

Agora, com mais detalhes:


1: Defina o tipo das variáveis
a, b, soma: inteiro
2: Leia os números
Leia a
Leia b
3: Soma os números
Soma = a + b
4: Escreva a soma dos números
Escreva soma

Como resultado final teríamos:


Programa adicionar
Variáveis
A, b, soma: inteiro
Inicio
Leia a
Leia b

12
Lógica de Programação
Soma = a + b
Escreva (soma)
Fim

Aula 2 – Variável e Constante


O que é uma variável?
Uma variável é um espaço da memória do computador que
"reservamos" para guardar informações (dados).

Tipos de Variáveis:
Tipo “numérico”:
Como o próprio nome sugere será o tipo de dado utilizado quando
desejarmos armazenar valores numéricos em nossas variáveis.

13
Lógica de Programação

Tipo “caracter”:
Será o tipo de dado utilizado quando desejarmos armazenar letras,
palavras ou frases em nossas variáveis.
Observem que sempre utilizamos o valor da variável entre “ ” (aspas
duplas)!
Tipo “logico”:
Será o tipo de dado utilizado quando desejarmos armazenar um valor
lógico. Desta forma, variáveis deste tipo só poderão armazenar dois valores:
VERDADEIRO ou FALSO.

As variáveis serão definidas (declaradas) sempre no início dos nossos programas, da seguinte forma:

Tipo da Variável nome da variável

Exemplos:

numerico x
numerico x , y , z
caracter nome , sobrenome
logico a , b

Observem que quando temos mais de uma variável, de mesmo tipo,


podemos fazer a declaração dessas variáveis na mesma linha, separando-
as por “,” (vírgula).

Regras para nomes de variáveis


Para definirmos os nomes das variáveis que iremos utilizar em nossos
programas, devemos seguir as seguintes regras:

14
Lógica de Programação

1. Deve começar com uma letra


2. Os próximos podem ser letras ou números
3. Não pode utilizar nenhum símbolo, exceto _
4. Não pode conter espaços em branco
5. Não pode conter letras com acentos
6. Não pode ser uma palavra reservada

Exemplos de nomes de variáveis validas ou invalidas

Nota1 
Salário Bruto 
Algoritmo 
Média 
9dade 
100vergonha 
Inicio_algoritmo 

O que é uma constante?


São informações (dados) que não variam com o tempo, ou seja,
permanecem sempre com o mesmo conteúdo e um valor fixo (invariável).
Como exemplos de constantes podemos citar:

Números, letras, palavras etc.

Atribuição:
É a principal forma de se armazenar um dado em uma variável. Esse
comando permite que seja fornecido um valor a uma variável de tal forma
que, o tipo desse valor seja compatível com a variável.

Forma Geral:
Identificador = expressão

15
Lógica de Programação
Onde:
Identificador:
é o nome da variável à qual está sendo atribuído um valor.

= é o símbolo de atribuição

expressão: pode ser uma expressão aritmética, lógica ou literal cuja a


avaliação (resultado) é atribuída ao identificador (variável)

Exemplo: x = a + b

Como se lê?
A variável x recebe o resultado do conteúdo da variável a somado ao
conteúdo da variável b.

O que faz o computador?


Na memória do computador já havia sido reservado um espaço para as
variáveis x, a e b (realizado no momento em que as variáveis foram
declaradas) e após a atribuição este espaço na memória receberá o valor
da variável a somado a variável b.

IMPORTANTE
Em operações de atribuição, nas quais o lado direito da atribuição é
representado por uma expressão aritmética, lógica ou literal, primeiro serão
efetuadas todas as operações das expressões, para após a atribuição ser
realizada!

X = ((14 + 4) / 2) * 9 - 10
________________lado direito da atribuição.

Comando de Entrada:
É o comando que possibilita interatividade nos programas de
computador. Basicamente, esse tipo de comando possibilita que dados
digitados pelo usuário sejam armazenados na variável indicada no
comando.

Forma Geral

Ler nome de uma variável

Exemplo: Ler nome

16
Lógica de Programação
Como se lê?

Leia um valor digitado pelo usuário e armazene no variável nome.

O que faz o computador?

Fica aguardando que o usuário digite um dado. Após o usuário digitar o


dado e pressionar a tecla “enter”, o dado informado é armazenado na
variável especificada no comando, neste caso para a variável “nome”.

Comando de Saída:
É o comando responsável por imprimir dados na tela do computador, ou
seja, uma informação ao usuário. Estas informações podem ser expressões
textuais, valor de variáveis ou constantes.
Forma Geral
Escrever expressão ou variável ou constante
Exemplo:
Escrever “Adoro a disciplina de Lógica de programação!”
Resultado:

Aula 4 - Usando VisualG


Vamos usar um programa bastante útil para aprender em nossa língua
como programar.

17
Lógica de Programação

A Tela Principal do VisuAlg


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.

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).

18
Lógica de Programação

Abrir (Ctrl-A): Abre um arquivo anteriormente gravado, substituindo o texto presente no editor. Se este tiver
sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto.

Novo (Ctrl-N): Cria um novo "esqueleto" de pseudocódigo, substituindo o texto presente no editor. Se este
tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto.

Salvar (Ctrl-S): Grava imediatamente o texto presente no editor. Na primeira vez que um novo texto é
gravado, o VisuAlg pede seu nome e localização.

Imprimir: Imprime imediatamente na impressora padrão o texto presente no editor. Para configurar a
impressão, use o comando Imprimir do menu Arquivo (acessível também pelo atalho Ctrl-P).

Cortar (Ctrl-X): Apaga texto selecionado, armazenando-o em uma área de transferência.

Copiar (Ctrl-C): Copia o texto selecionado para a área de transferência.

Colar (Ctrl-V): Copia texto da área de transferência para o local em que está o cursor.

Gravar bloco de texto: Permite a gravação em arquivo de um texto selecionado no editor. A extensão
sugerida para o nome do arquivo é .inc.

Inserir bloco de texto: Permite a inserção do conteúdo de um arquivo. A extensão sugerida para o nome do
arquivo é .inc.

Desfazer (Ctrl-Z): Desfaz último comando efetuado.

Refazer (Shift-Ctrl-Z): Refaz último comando desfeito.

Localizar (Ctrl-L): Localiza no texto presente no editor determinada palavra especificada.

Substituir (Ctrl-U): Localiza no texto presente no editor determinada palavra especificada, substituindo-a por
outra.

Corrigir Indentação (Ctrl-G): Corrige automaticamente a indentação (ou tabulação) do pseudocódigo,


tabulando cada comando interno com espaços à esquerda.

Numerar linhas: Ativa ou desativa a exibição dos números das linhas na área à esquerda do editor. A linha
e a coluna do editor em que o cursor está em um determinado momento também são mostradas na barra de
status (parte inferior da tela). Por motivos técnicos, esta opção é automaticamente desativada durante a
execução do pseudocódigo, mas volta a ser ativada logo em seguida.

Mostrar variáveis modificadas: Ativa ou desativa a exibição da variável que está sendo modificada. Como
o número de variáveis pode ser grande, muitas podem estar fora da janela de visualização; quando esta

19
Lógica de Programação
característica está ativada, o VisuAlg rola a grade de exibição de modo que cada variável fique visível no
momento em está sendo modificada. Este recurso é especialmente útil quando se executa um pseudocódigo
passo a passo. Por questões de desempenho, a configuração padrão desta característica é desativada,
quando o pseudocódigo está sendo executado automaticamente. No entanto, basta clicar este botão para
executá-lo automaticamente com a exibição ativada. No final da execução, a configuração volta a ser
desativada.

Restaurar tela inicial: ???

Executar (F9): Inicia (ou continua) a execução automática do pseudocódigo.

Executar com timer (Shift-F9):: Insere um atraso (que pode ser especificado no intervalo ao lado) antes da
execução de cada linha. Também realça em fundo azul o comando que está sendo executado, da mesma
forma que na execução passo a passo.

Intervalo do timer: Atraso em cada linha, para quando se deseja executar o pseudocódigo com timer.

Passo (F8): Inicia (ou continua) a execução linha por linha do pseudocódigo, dando ao usuário a oportunidade
de acompanhar o fluxo de execução, os valores das variáveis e a pilha de ativação dos subprogramas.

Parar (Ctrl-F2): Termina imediatamente a execução do pseudocódigo. Evidentemente, este botão fica
desabilitado quando o pseudocódigo não está sendo executado.

Liga/desliga breakpoint (F5): Insere/remove um ponto de parada na linha em que esteja o cursor. Estes
pontos de parada são úteis para a depuração e acompanhamento da execução dos pseudocódigos, pois
permitem a verificação dos valores das variáveis e da pilha de ativação de subprogramas.

Desmarcar todos os breakpoints (Ctrl-F5): Desativa todos os breakpoints que estejam ativados naquele
momento.
Executar em modo DOS: Com esta opção ativada, tanto a entrada como a saída-padrão passam a ser uma
janela que imita o DOS, simulando a execução de um programa neste ambiente.

Gerar valores aleatórios: Ativa a geração de valores aleatórios que substituem a digitação de dados. A faixa
padrão de valores gerados é de 0 a 100 inclusive, mas pode ser modificada (basta alterar intervalo ao lado).
Para a geração de dados do tipo caractere, não há uma faixa pré-estabelecida: os dados gerados serão
sempre strings de 5 letras maiúsculas.

Intervalo dos valores aleatórios: Faixa de valores que serão gerados automaticamente, quando esta opção
estiver ativada.

Perfil (F7): Após a execução de um pseudocódigo, exibe o número de vezes que cada umas das suas linhas
foram executadas. É útil para a análise de eficiência (por exemplo, nos métodos de ordenação).

Mostrar pilha de ativação (Ctrl-F3): Exibe a pilha de subprogramas ativados num dado momento. Convém
utilizar este comando em conjunto com breakpoints ou com a execução passo a passo.

20
Lógica de Programação
Ajuda (F1): Possibilita acesso às páginas de ajuda e às informações sobre o VisuAlg.

Quadro de Variáveis

É formado por uma grade na qual são mostrados o escopo de cada variável (se for do programa principal,
será global; se for local, será apresentado o nome do subprograma onde foi declarada), seus nomes (também
com os índices, nos casos em que sejam vetores), seu tipo ("I" para inteiro, "R" para real, "C" para caractere
e "L" para lógico) e o seu valor corrente. A versão atual do VisuAlg permite a visualização de até 500 variáveis
(contando individualmente cada elemento dos vetores).

A Barra de Status

Situada na parte inferior da tela, esta barra contém dois painéis: o primeiro mostra a linha e a coluna onde o
cursor está, e o segundo mostra a palavra Modificado no caso em que o pseudocódigo tenha sido alterado
desde que foi carregado ou salvo pela última vez. Nesta barra, há ainda um terceiro painel disponível, que
ainda não tem um uso específico na atual versão.

Menu do VisuAlg
Este menu compõe-se de 7 partes:

Arquivo: Possui os comandos para se abrir, salvar e imprimir algoritmos:

Novo: Cria um novo "esqueleto" de pseudocódigo, substituindo o texto existente no editor. Se este texto
anterior tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto.

Abrir: Abre o texto de um pseudocódigo anteriormente gravado, substituindo o texto existente no editor. Se
este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto.

Salvar: Salva imediatamente o texto presente no editor. Caso seja a primeira vez que um novo texto é
gravado, o VisuAlg pedirá o nome do arquivo e sua localização.

Salvar como: Permite salvar o texto presente no editor exibindo antes uma janela na qual se pode escolher
o nome do arquivo e sua localização.

Enviar por email: Permite o envio por email do texto presente no editor.

Imprimir: Permite a impressão do algoritmo corrente, mostrando antes a janela de configuração de impressão
(o correspondente botão da barra de tarefas imprime imediatamente o texto do pseudocódigo na impressora
padrão).

Sair: Abandona o VisuAlg.

Além destes comandos, há ainda a lista dos 5 últimos algoritmos utilizados, que podem ser abertos
diretamente ao se escolher o seu nome.

Editar: Além dos conhecidos comandos de um editor de texto (copiar, cortar, colar, desfazer, refazer,
selecionar tudo, localizar, localizar de novo, substituir), há também as seguintes opções:

Corrigir indentação: Corrige automaticamente a indentação do pseudocódigo, tabulando cada comando


interno com espaços à esquerda.

Gravar bloco de texto: Permite a gravação em arquivo de um texto selecionado no editor. A extensão
sugerida para o nome do arquivo é .inc.

21
Lógica de Programação
Inserir bloco de texto: Permite a inserção do conteúdo de um arquivo. A extensão sugerida para o nome do
arquivo é .inc.

Exibir: Possui os comandos para ativar/desativar as seguintes características:

Número de linhas: Ativa/desativa a exibição da numeração das linhas na área à esquerda do editor. A
numeração corrente da posição do cursor também é mostrada na primeira parte da barra de status, situada
na parte inferior da tela. Por motivos técnicas, a numeração é desativada durante a execução do
pseudocódigo, voltando à situação anterior logo em seguida.

Variáveis modificadas: Ativa/desativa a exibição da variável que está sendo modificada. Como o número de
variáveis pode ser grande, muitas podem estar fora da janela de visualização; quando esta característica está
ativada, o VisuAlg rola a grade de exibição de modo que cada variável fique visível no momento em está
sendo modificada. Este recurso é especialmente útil quando se executa um pseudocódigo passo a passo.
Por questões de desempenho, a configuração padrão desta característica é desativada, quando o
pseudocódigo está sendo executado automaticamente. No entanto, basta clicar este botão para executá-lo
automaticamente com a exibição ativada. No final da execução, a configuração volta a ser desativada.

Pseudocódigo: Contém os comandos relativos à execução do algoritmo:

Executar: Inicia (ou continua) a execução automática do pseudocódigo.

Passo a passo: Inicia (ou continua) a execução linha por linha do pseudocódigo, dando ao usuário a
oportunidade de acompanhar o fluxo de execução, os valores das variáveis e a pilha de ativação dos
subprogramas.

Executar com timer: Insere um atraso (que pode ser especificado) antes da execução de cada linha.
Também realça em fundo azul o comando que está sendo executado, da mesma forma que na execução
passo a passo.

Parar: Termina imediatamente a execução do pseudocódigo. Evidentemente, este item fica desabilitado
quando o pseudocódigo não está sendo executado.

Liga/desliga breakpoint: Insere/remove um ponto de parada na linha em que esteja o cursor. Estes pontos
de parada são úteis para a depuração e acompanhamento da execução dos pseudocódigos, pois permitem
a verificação dos valores das variáveis e da pilha de ativação de subprogramas.

Desmarcar todos os breakpoints: Desativa todos os breakpoints que estejam ativados naquele momento.

Executar em modo DOS: Com esta opção ativada, tanto a entrada como a saída-padrão passa a ser uma
janela que imita o DOS, simulando a execução de um programa neste ambiente.

Gerar valores aleatórios: Ativa a geração de valores aleatórios que substituem a digitação de dados. A faixa
padrão de valores gerados é de 0 a 100 inclusive, mas pode ser modificada. Para a geração de dados do tipo
caractere, não há uma faixa pré-estabelecida: os dados gerados serão sempre strings de 5 letras maiúsculas.

Perfil: Após a execução de um pseudocódigo, exibe o número de vezes que cada umas das suas linhas foi
executada. É útil para a análise de eficiência (por exemplo, nos métodos de ordenação).
Pilha de ativação: Exibe a pilha de subprogramas ativados num dado momento. Convém utilizar este
comando em conjunto com breakpoints ou com a execução passo a passo.

Linguagens: Permite a tradução automático do pseudocódigo presente no editor para outras linguagens de
programação. Atualmente, apenas a tradução para Pascal está implementada, mas ainda em fase de testes.

Ferramentas: Neste menu, é possível configurar algumas opções do VisuAlg: cores e tipos de letras na
exibição do pseudocódigo, número de espaços para indentação automática, etc.

22
Lógica de Programação
Ajuda: Entre outras coisas, possibilita acesso às páginas de ajuda e às informações sobre o VisuAlg.

A Linguagem de Programação do VisuAlg (1)


Introdução

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". Tomei a liberdade
de acrescentar-lhe alguns comandos novos, com o intuito de criar facilidades específicas para o ensino de
técnicas de elaboração de algoritmos. Inicialmente, pensava em criar uma sintaxe muito simples e "liberal",
para que o usuário se preocupasse apenas com a lógica da resolução dos problemas e não com as palavras-
chave, pontos e vírgulas, etc. No entanto, cheguei depois à conclusão de que alguma formalidade seria não
só necessária como útil, para criar um sentido de disciplina na elaboração do "código-fonte".

A linguagem do VisuAlg permite apenas um comando por linha: desse modo, não há necessidade de tokens
separadores de estruturas, como o ponto e vírgula em Pascal. Também não existe o conceito de blocos de
comandos (que correspondem ao begin e end do Pascal e ao { e } do C), nem comandos de desvio
incondicional como o goto. Na versão atual do VisuAlg, com exceção das rotinas de entrada e saída, não há
nenhum subprograma embutido, tal como Inc(), Sqr(), Ord(), Chr(), Pos(), Copy() ou outro.

Importante: 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-chave e nomes de variáveis.

Formato Básico do Pseudocódigo e Inclusão de Comentários

O formato básico do nosso pseudocódigo é o seguinte:

algoritmo "semnome"
// Função :
// Autor :
// Data :
// Seção de Declarações
inicio
// Seção de Comandos
fimalgoritmo

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 (nas futuras versões do VisuAlg,
talvez utilizemos este dado de outras formas). A seção que se segue é a de declaração de variáveis, que
termina com a linha que contém a palavra-chave inicio. Deste ponto em diante está a seção de
comandos, que continua até a linha em que se encontre 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
"//".

Tipos de Dados

O VisuAlg prevê quatro tipos de dados: inteiro, real, cadeia de caracteres e lógico (ou booleano). As
palavras-chave que os definem são as seguintes (observe que elas não têm acentuação):

23
Lógica de Programação
 inteiro: define variáveis numéricas do tipo inteiro, ou seja, sem casas decimais.
 real: define variáveis numéricas do tipo real, ou seja, com casas decimais.
 caractere: define variáveis do tipo string, ou seja, cadeia de caracteres.
 logico: define variáveis do tipo booleano, ou seja, com valor VERDADEIRO ou FALSO.

O VisuAlg permite também a declaração de variáveis estruturadas através da palavra-chave vetor, como
será explicado a seguir.

Nomes de Variáveis e sua Declaração

Os nomes das variáveis devem começar por uma letra e depois conter letras, números ou underline, até um
limite de 30 caracteres. As variáveis podem ser simples ou estruturadas (na versão atual, os vetores podem
ser de uma ou duas dimensões). Não pode haver duas variáveis com o mesmo nome, com a natural
exceção dos elementos de um mesmo vetor.

A seção de declaração de variáveis começa com a palavra-chave var, e continua com as seguintes
sintaxes:

<lista-de-variáveis> : <tipo-de-dado>
<lista-de-variáveis> : vetor "["<lista-de-intervalos>"]" de <tipo-de-dado>

Na <lista-de-variáveis>, os nomes das variáveis estão separados por vírgulas. Na <lista-de-


intervalos>, os <intervalo> são separados por vírgulas, e têm a seguinte sintaxe:

<intervalo>: <valor-inicial> .. <valor-final>

Na versão atual do VisuAlg, tanto <valor-inicial> como <valor-final> devem ser inteiros. Além
disso, exige-se evidentemente que <valor-final> seja maior do que <valor-inicial>.

Exemplos:

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 não há a necessidade de ponto e vírgula após cada declaração: basta pular linha. A declaração de
vetores é análoga à linguagem Pascal: a variável 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 número total de variáveis suportado pelo VisuAlg é 500 (cada elemento de um vetor é contado
individualmente).

Constantes e Comando de Atribuição

O VisuAlg tem três tipos de constantes:

 Numéricos: são valores numéricos escritos na forma usual das linguagens de programação.
Podem ser inteiros ou reais. Neste último caso, o separador de decimais é o ponto e não a
vírgula, independente da configuração regional do computador onde o VisuAlg está sendo
executado. O VisuAlg também não suporta separadores de milhares.
 Caracteres: qualquer cadeia de caracteres delimitada por aspas duplas (").
 Lógicos: admite os valores VERDADEIRO ou FALSO.

24
Lógica de Programação
A atribuição de valores a variáveis é feita com o operador <-. Do seu lado esquerdo fica a variável à qual
está sendo atribuído o valor, e à sua direita pode-se colocar qualquer expressão (constantes, variáveis,
expressões numéricas), desde que seu resultado tenha tipo igual ao da variável.

Alguns exemplos de atribuições, usando as variáveis declaradas acima:

a <- 3
Valor1 <- 1.5
Valor2 <- Valor1 + a
vet[1] <- vet[1] + (a * 3)
matriz[3,9] <- a/4 - 5
nome_do_aluno <- "José da Silva"
sinalizador <- FALSO

Aula 3 - O que é uma expressão?


Conjunto de variáveis e constantes numéricas que se relacionam por
meio de operadores compondo uma fórmula que, uma vez avaliada, resulta
em um valor.

As expressões dividem-se:

 Expressões aritméticas
 Expressões relacionais
 Expressões lógicas

25
Lógica de Programação

Expressões Aritméticas:
Aquela cujos os operadores são aritméticos e cujos operandos são
constantes ou variáveis do tipo numérico.

Operadores Aritméticos
Conjunto de símbolos que representam as operações básicas da
matemática.

A <- 5
B <- 2
+ Adição A+B 7
- Subtração A-B 3
* Multiplicação A*B 10
/ Divisão A/B 2.5
\ Divisão Inteira A\B 2
^ Exponenciação A^B 25
% Módulo A%B 1
Exemplos:

26
Lógica de Programação
Precedência de Operadores
Define a hierarquia utilizada para a resolução de expressões. As
operações com maior precedência serão sempre as que tiverem entre os
parênteses mais internos da expressão.

ORDEM DE PRECEDÊNCIA
Aritméticos ()
^
*/
+-
Relacionais Todos
Lógicos E
OU
NÃO

Exemplos:

4 + 9 + 7 + 8 / 4 = 22

(4 + 9 + 7 + 8) / 4 = 7

1 – 4 * 3 / 6 = -1

10 * ( (4 + 4) / 2) = 40

Expressões Relacionais:
Uma expressão relacional trata-se de uma comparação realizada entre
dois valores de mesmo tipo. Estes valores são representados na relação
através de constantes, variáveis ou expressões aritméticas. O resultado
sempre será um valor lógico (VERDADEIRO ou FALSO).

Operadores relacionais:
Utilizamos operadores relacionais para realizar comparações entre dois
valores de mesmo tipo.

27
Lógica de Programação

Exemplos:

Expressões Lógicas:
Utilizamos operadores relacionais para realizar comparações entre dois
valores de mesmo tipo.

28
Lógica de Programação
Operadores lógicos:
Utilizaremos três operadores para compor as expressões lógicas. Estes
operadores permitem que mais de uma condição seja testada em uma única
expressão, ou seja, pode-se fazer mais de uma comparação (teste) ao mesmo
tempo.

Operadores Lógicos:

Tabela Verdade:

Tabela com os possíveis resultados dos testes lógicos, utilizando


valores lógicos.

Exemplos:

Expressão Quando eu não saio


Somente quando chover e
Se chover e relampejar, eu
relampejar ao mesmo tempo
não saio.
(apenas uma possibilidade)
Somente quando chover,
Se chover ou relampejar, eu somente quando relampejar ou
não saio. quando chover e relampejar ao
mesmo tempo (3 possibilidades)

29
Lógica de Programação

Exemplos:

Se

(Salario > 180) e (salario < 800) então escrever “Salário válido para
financiamento”

Senão

Escrever “Salário fora da faixa permitida para financiamento”

fim_se

Exemplo de valores para ser impresso na tela a mensagem “Salário


válido para financiamento”

Salario = 200 salários = 660 salários = 700

Exemplo de valores para ser impresso na tela a mensagem “Salário


fora da faixa permitida para financiamento”
salario = 100 salários = 180 Salario = 800 Salario = 1000

30
Lógica de Programação

Funções Internas
O visualG possui algumas funções internas que
executam cálculos automaticamente.

Abs Valor Absoluto Abs(-10) 10


Exp Exponenciação Exp(3,2) 9
Int Valor Inteiro Int(3.9) 3
RaizQ Raiz Quadrada RaizQ(25) 5
Pi Retorna Pi Pi 3.14..
Sen Seno(rad) Sen(0.523) 0.5
Cos Cosseno (rad) Cos(0.523) 0.86
Tan Tangente (rad) Tan(0.523) 0.57
GraupRad Graus para Rad GraupRad(30) 0.52

Exercícios

1. Faça um Programa que descobre a idade atual da


pessoa obtendo como informação o ano de
nascimento e o ano atual.

Idade = ano_atual – ano_nasc

2. Faça um programa que converta a temperatura atual


de Fahrenheit para Celsius.

𝐹 − 32
𝐶 =
1.8

31
Lógica de Programação

Propriedades dos elementos do triângulo


A Desigualdade Triangular

32
Lógica de Programação

É sempre possível construir um triângulo dados os comprimentos dos três


lados? Observa as imagens (medidas em cm).
Conclusão: O comprimento do maior dos lados tem de ser menor que a
soma dos comprimentos dos lados de menor comprimento.

De um modo geral, temos a DESIGUALDADE TRIANGULAR


Num triângulo o comprimento de qualquer lado é menor que a soma dos outros
dois.

Mas também...
O comprimento de qualquer lado é maior que a diferença entre os
comprimentos dos outros dois.

Atividade:

33
Lógica de Programação

Sabendo como identificar quando três lados formam um


triangulo, faça um programa que receba o valor dos três
lados e calcule se os mesmos formam um triangulo. Mostre
na tela o resultado.

34

Você também pode gostar