Você está na página 1de 43

Algoritmos de Programação

Material Complementar 2 – Algoritmos de Programação

Análise e Desenvolvimento de Sistemas - Semipresencial


Assuntos Abordados Neste Material

Algoritmos e Algoritmos de Programação

Algoritmos com Estruturas Condicionais


Algoritmos de Programação

Escreveremos nossos códigos que simulam a estrutura de um programa de computador em


Portugol (ou Pseudo-código).

Mas antes, precisamos ver alguns conceitos sobre algoritmos de programação:


Variáveis

Conceito principal envolvendo algoritmos de programação.


São responsáveis por armazenar dados durante a execução de um programa.
Funcionam como “recipientes” ou “caixas” nas quais podemos guardar os mais
variados tipos de valores.
Cada variável possui um tipo, que indica tipo de valor que será armazenado por
ela, não sendo possível armazenar valores diferentes além das que o tipo permite.

4
Tipos de Variáveis

Inteiro: armazenam apenas números inteiros (ex: 2; 5; 128; 1024; etc)


Real: podem armazenar números inteiros ou com casas decimais (ex: 2,5;
10; 3,14; etc)
Caractere: armazenam valores textuais (letras, palavras e/ou números. Ex:
nomes, endereços, telefones, etc)
Lógico: armazenam apenas valores lógicos, ou seja, VERDADEIRO ou FALSO.

5
Variáveis

Uma variável pode ser declarada recebendo qualquer nome, desde que:
- Não inicie com número;
- Não contenha espaço;
- Não contenha caracteres especiais (ç, &, *, $, etc);
- Não seja uma palavra reservada da linguagem (inteiro, var, inicio, etc);
- Não contenha acentuação (^, ´, `, ~, etc).

6
Exemplos

Válidas Não válidas

nome_completo; nome completo;


aviacao; aviação;
endereco; endereço;
bim1; 1bim;

7
Comandos Básicos

Entrada
LEIA (ou Ler): comando de entrada. Utilizado para armazenar valores nas
variáveis. Ex:

LEIA (nome) // ao ser digitado um nome no programa e pressionado ‘Enter’, o valor


digitado será armazenado na variável ‘nome’

LEIA (idade) // mesmo procedimento é executado com a variável ‘idade’. O usuário


digita um valor no teclado, aperta ‘Enter’, e este valor é armazenado na variável
‘idade’.

8
Comandos Básicos

Atribuição ( )

Atribuição: utilizado para atribuir (armazenar) um valor diretamente para outra variável.
Ex:
n1  10 // o valor 10 foi armazenado diretamente na variável ‘n1’. Seu valor não foi lido,
ou seja, não foi digitado pelo usuário, e sim, atribuído diretamente para a variável no
código do programa.
n2  n1 // variável ‘n2’ recebe o valor contido dentro da variável ‘n1’ (neste exemplo, 10).

9
Comandos Básicos

Saída

ESCREVA (ou Escrever): comando de saída. Serve para mostrar algo na tela do programa. Ex:
ESCREVA (“Qual seu nome?”) // aqui, estamos mostrando uma frase na tela do programa
ESCREVA (“Valor de X: ”, x) // aqui, estamos mostrando um texto junto do valor de uma
variável (no caso, a variável x)

10
Comandos Básicos

Saída

ESCREVAL (ou ESCREVERL): comando de saída similar ao ‘Escreva’. Sua principal diferença
é que, ao apresentar uma saída na tela, ele irá pular uma linha para indicar que a
próxima saída de dados aparecerá na linha abaixo.
Ex:
ESCREVAL (“Qual seu nome?”) // aqui, estamos mostrando uma frase na tela do programa
ESCREVAL (“Valor de X: ”, x) // aqui, estamos mostrando um texto junto do valor de uma
variável (no caso, a variável x)

11
Imagine o seguinte problema:
Você precisa escrever um algoritmo em Portugol para fazer a
conversão de quilômetros para metros. Por exemplo, ao ser digitado
1 quilômetro o algoritmo deve fazer o cálculo, armazenar em uma
variável e mostrar o resultado, nesse caso, 1000 metros.

Vamos ver como fica o


algoritmo:
Exemplo
PROGRAMA: converter_km_em_metos;
VAR
km, metros: REAL;
INICIO
ESCREVA (“Quantos Km você percorreu?: ");
LEIA (km);
metros  km * 1000;
ESCREVA (“Então você andou“, metros, “metros!”);
FIM.
Exemplo
PROGRAMA: converter_km_em_metos;
VAR
km, metros: REAL;
INICIO
ESCREVA (“Quantos Km você percorreu?: ");
LEIA (km); ENTRADA
metros  km * 1000; PROCESSAMENTO
ESCREVA (“Então você andou“, metros, “metros!”);
SAÍDA
FIM.
Tcherto?
Bora praticar um pouco?

15
Exercício 01

Escreva um algoritmo que efetue o cálculo do salário de um instrutor horista. O programa


deve ler o nome do instrutor, a quantidade de horas trabalhadas e o valor da hora. Com base
na quantidade de horas trabalhadas e no valor da hora, deve ser feito o cálculo do salário. O
algoritmo deve mostrar na tela o nome do funcionário e o seu salário
Exercício 02

Crie um algoritmo que leia 4 notas bimestrais de um aluno e ,com base


nessas notas, calcule e mostre a média anual deste aluno.
Nas últimas aulas temos trabalhado com algoritmos sequenciais
escritos em portugol, de estruturas simples, compostos
basicamente de entradas, processamentos e saídas.
Mas e se....
Eu precisar fazer algum tipo de teste, de validação, sobre os
valores lidos? Como fazer isso em portugol?

Resposta: utilizando estruturas condicionais


Estruturas Condicionais

Definição:
Estruturas condicionais são, de maneira bem básica e direta, testes que o
programa faz para que possa tomar alguma decisão. Estes testes baseados
em condições.

Pense que estruturas condicionais são como perguntas, onde a resposta


para estas perguntas será sempre verdadeira OU falsa.

20
Estruturas Condicionais

Pense que uma estrutura condicional funciona como um caminho


que inicia reto, mas em determinado momento, apresenta (uma
bifurcação (ou mais de uma).

Por qual direção você seguira?

O caminho que seguirá dependerá da resposta para alguma


pergunta, como por exemplo:

Pra que lado é o estacionamento?

SE for para a direita, ENTAO irei nesta direção;

SENÃO, irei na outra. Esta Foto de Autor Desconhecido está licenciado em CC BY-NC-ND

21
Tipos de Estruturas Condicionais

Simples Composta Encadeada (aninhada)

Estruturas onde há apenas uma condição Estruturas onde há apenas uma condição Estruturas onde há mais de uma condição
(que pode ser simples ou composta). (que pode ser simples ou composta). (que podem ser simples ou compostas).

Os comandos serão executados apenas se a Os comandos serão executados apenas se a Entretanto, apenas uma condição é verificada
condição for verdadeira. condição for verdadeira. por vez.

Os comandos serão executados apenas se a


Caso contrário, nenhum comando desta Caso contrário, os comandos presentes
condição for verdadeira.
estrutura será executado. dentro da instrução ‘SENAO’ serão
executados (obrigatoriamente). Caso contrário, testa-se a próxima condição, e
assim sucessivamente, até que não hajam
mais condições, OU que a instrução SENAO
seja executada
22
Muito complicado?
Vamos a um exemplo prático então
Exemplo 1

Criar um algoritmo que leia um número inteiro e, caso este número seja
positivo, mostrar a mensagem “O número digitado é positivo”. Após isto,
apresentar a mensagem “Fim do teste”.
Exemplo 1

Para este exemplo, vamos utilizar uma estrutura condicional SIMPLES.


Estrutura Condicional Simples

Sua estrutura básica é:

SE (<condição>) ENTAO
<comandos>
FIMSE;

Caso a resposta seja verdadeira, os comandos listados após a instrução ‘ENTAO’


serão executados.
Caso contrário, segue-se a execução do código a partir da linha abaixo do ‘FIMSE’.

26
Resolução do Exemplo 1

PROGRAMA: positivo;
VAR
num: INTEIRO;
INICIO
ESCREVA (“Informe um valor inteiro: ”);
LEIA (num);
SE (num > 0) ENTAO
ESCREVA (“O número digitado é positivo”);
FIMSE;
ESCREVA (“Fim do teste”);
FIM.
Resolução do Exemplo 1

No exemplo do slide anterior, a frase “O número digitado é positivo” só será


exibida pelo programa SE a condição num > 0 for VERDADEIRA.
Após o comando ser executado, o algoritmo prossegue com sua execução após a
instrução ‘FIMSE’.
Se a condição resultar em FALSO, os comandos entre as instruções ‘ENTAO’ e
‘FIMSE’ não serão executados.
Nesse caso, o programa ignorará os comandos da condicional e prosseguirá com
sua execução normalmente após a instrução ‘FIMSE’.
Exemplo 2

Criar um algoritmo que leia um número inteiro e, caso este número seja
positivo, mostrar a mensagem “O número digitado é positivo”. Senão, apresentar
a mensagem “O número digitado é negativo ou é zero”.
Após isto, apresentar a mensagem “Fim do teste”.
Exemplo 2

Para este exemplo, vamos utilizar uma estrutura condicional COMPOSTA.


Estrutura Condicional Composta

Sua estrutura básica é: Caso a resposta seja verdadeira, os comandos


listados após a instrução ‘ENTAO’ serão
executados.
SE (<condição>) ENTAO
SENÃO (se for falsa), os comandos listados
<comandos>
após a instrução ‘SENAO’ serão executados.
SENAO
Após conclusão da condicional, segue-se a
<comandos> execução do código a partir da linha abaixo do
FIMSE; ‘FIMSE’.

31
Resolução do Exemplo 2

PROGRAMA: positivo_ou_negativo;
VAR
num: INTEIRO ;
INICIO
ESCREVA (“Informe um valor inteiro: ”);
LEIA (num);
SE (num > 0) ENTAO
ESCREVA (“O número digitado é positivo”);
SENAO
ESCREVA (“O número digitado é negativo ou é zero”);
FIMSE;
ESCREVA (“Fim do teste”);
FIM.
Resolução do Exemplo 2

No exemplo do slide anterior, a frase “O número digitado é positivo” só será


exibida pelo programa SE a condição num > 0 for VERDADEIRA.
Caso a condição seja FALSA, então os comandos especificados após a instrução
‘SENAO’ serão executados, ou neste exemplo, a frase “O número digitado é
negativo ou é zero” só será exibida pelo programa.
Após o comando ser executado, o algoritmo prossegue com sua execução após a
instrução ‘FIMSE’.
Resolução do Exemplo 2

IMPORTANTE: caso o resultado de uma condição numa estrutura composta seja


em FALSO, os comandos dentro de ‘SENAO’ serão OBRIGATORIAMENTE
executados.
Exemplo 3

Criar um algoritmo que leia um número inteiro e, caso este número seja positivo,
mostrar a mensagem “O número digitado é positivo”. Senão, se o número digitado for
negativo, mostrar a mensagem “O número digitado é negativo”. Porém, se o valor
digitado for zero, apresentar a mensagem “O número digitado é zero”.
Após isto, apresentar a mensagem “Fim do teste”.
Exemplo 3

Para este exemplo, vamos utilizar uma estrutura condicional ENCADEADA.


Estrutura Condicional Encadeada

Sua estrutura básica é: Caso a resposta seja verdadeira, os comandos listados


após a instrução ‘ENTAO’ serão executados.
SENÃO (se for falsa), um novo teste será realizado pela
SE (<condição>) ENTAO
próxima instrução SE.
<comandos> Caso a resposta desta nova condição seja verdadeira, os
SENAO comandos listados após a instrução ‘ENTAO’ serão
executados.
SE (<condição>) ENTAO
SENÃO, os comandos listados após a instrução ‘SENAO’
<comandos> serão executados.
SENAO Após conclusão da condicional, segue-se a execução do
código a partir da linha abaixo do ÚLTIMO ‘FIMSE’.
<comandos>
FIMSE;
FIMSE;

37
Estrutura Condicional Encadeada x Múltiplas EC Simples

SE (<condição>) ENTAO
SE (<condição>) ENTAO
<comandos>
<comandos>
FIMSE;
SENAO
SE (<condição>) ENTAO SE (<condição>) ENTAO
<comandos> <comandos>

SENAO FIMSE;

<comandos>
SE (<condição>) ENTAO
FIMSE;
<comandos>
FIMSE; FIMSE;

38
Estrutura Condicional Encadeada

IMPORTANTE: Numa estrutura encadeada, escrevemos uma instrução ‘FIMSE’


para cada instrução ‘SE’.
Resolução do Exemplo 3
PROGRAMA: positivo_ou_negativo_ou_zero;
VAR
num: INTEIRO;
INICIO
ESCREVA (“Informe um valor inteiro: ”);
LEIA (num);
SE (num > 0) ENTAO
ESCREVA (“O número digitado é positivo”);
SENAO
SE (num < 0) ENTAO
ESCREVA (“O número digitado é negativo”);
SENÃO
ESCREVA (“O número digitado é ZERO”);
FIMSE;
FIMSE;
ESCREVA (“Fim do teste”);
FIM.
Resolução do Exemplo 3
No exemplo do slide anterior, a frase “O número digitado é positivo” só será
exibida pelo programa SE a condição (num > 0) for VERDADEIRA.
Caso a condição seja FALSA, então será testado o calor da segunda condição
(num < 0). Se este segundo teste resultar em VERDADEIRO, então a frase “O
número digitado é negativo” só será exibida pelo programa.
Caso todos os testes resulte em FALSO, os comandos especificados após a
instrução ‘SENAO’ serão executados, ou neste exemplo, a frase “O número
digitado é zero” será exibida.
Após o comando ser executado, o algoritmo prossegue com sua execução após a
última instrução ‘FIMSE’.
Resolução do Exemplo 3

Com isso, conseguimos testar todas as possibilidades para o valor digitado:


Ele pode ser positivo;
Ele pode ser negativo;
Ele pode ser zero.
Tcherto?
Bora praticar um pouco?

Você também pode gostar