Você está na página 1de 15

Unidade II

Unidade II
Operadores Aritmticos e Operadores Lgicos

Esses operadores so empregados com muita frequncia em programao. com o seu uso e,
muitas vezes, da combinao de vrios desses operadores que so feitas as tarefas mais comuns de
processamento de dados.
Operadores Aritmticos
Operador

Operao

Tipos dos
Operandos

Tipos dos Resultados

adio

inteiro

inteiro

real

real

inteiro

inteiro

real

real

inteiro

inteiro

real

real

inteiro

real

real

real

subtrao

multiplicao

diviso

DIV

diviso inteira

inteiro

inteiro

MOD

resto da diviso inteira

inteiro

inteiro

Operadores Relacionais

18

OPERADOR

OPERAO

TIPO RESULTANTE

igual

lgico

<>

diferente

lgico

<

menor que

lgico

>

maior que

lgico

<=

menor ou igual

lgico

>=

maior ou igual

lgico

<=

est contido

lgico

>=

contm

lgico

in

pertence a

lgico

Programao de computadores
Operadores Lgicos
Operador

Operao

NOT

NO (negao)

AND

E (conjuno lgica)

OR

OU (disjuno lgica)

XOR

OU exclusivo

Observao: NOT um operador unrio.

Prioridades de operadores
Operadores aritmticos:
Prioridade mais alta: * / DIV MOD
Prioridade mais baixa: + Observaes:
1. Parnteses garantem maior prioridade.
Exemplo: para a expresso 3*(4+1) o resultado 15, e no 13, como resultaria em 3*4+1.
2. Se houver uma sequncia de operadores de igual prioridade, a execuo ser na ordem em que
eles aparecerem nas operaes.
Exemplo: o resultado da expresso 7/(3*2) ser diferente de 7/3*2. J no caso de 5*4/2 e de
5*(4/2), o resultado ser exatamente o mesmo. Na dvida, recomenda-se empregar parnteses
para se ter a certeza de que a ordem de execuo desejada seja cumprida.
Operadores lgicos:
Prioridade mais alta: NOT
Prioridade mdia: AND
Prioridade mais baixa: OR XOR
Exemplos:
A expresso (A>3) AND NOT (A>25) equivale a (A>3) AND (NOT (A>25))
Na expresso (X=O) OR (X>=2) AND (X<=5), ser resolvido primeiro o AND. Assim, a
expresso equivale a (X=O) OR ((X>=2) AND (X<=5))
19

Unidade II
Observao: operaes com mesma precedncia normalmente so executadas da esquerda para a
direita, embora o compilador possa, s vezes, rearranjar os operadores para otimizao de cdigo.
Importante: na dvida, aconselhvel usar parnteses para garantir a prioridade desejada.
Exemplo. Escrever um programa em Portugus Estruturado que, dados dois nmeros inteiros e
positivos, calcule e mostre o resto inteiro da diviso do primeiro nmero pelo segundo nmero.
Programa DIV_e_MOD
Var
N1, N2, R: inteiro;
Inicio
Escreva (Digite o primeiro nmero inteiro e positivo);
LElA (N1);
Escreva (Digite o segundo nmero inteiro e positivo);
LElA (N2);
RN1 MOD N2;
ESCREVA (O resto inteiro da diviso do primeiro nmero pelo segundo
nmero , R);
FIM.

Desvios Condicionais Comandos de Seleo


Alm dos algoritmos lineares, tambm chamados de algoritmos sequenciais, h situaes que
demandam a introduo de comandos de seleo (desvios condicionais simples e compostos) para que
decises possam ser tomadas.
Condio
Em Lgica de Programao, condio uma expresso lgica em funo da qual uma deciso possa
ser tomada. Vejamos um exemplo: imagine que um aluno somente aprovado se sua mdia final,
armazenada na varivel identificada por MF, for igual ou superior a sete (7). A condio relacionada com
esse exemplo MF>=7.
Deciso
Deciso a escolha de qual trecho do algoritmo deve ser executado de acordo com o resultado
obtido e comparado com uma condio estabelecida.
No caso do exemplo anterior, se a mdia final do aluno for 8,5, o algoritmo poderia tomar a deciso
de imprimir a frase O aluno foi aprovado.

20

Programao de computadores
Como a condio na qual se baseia a deciso s admite duas respostas possveis, a deciso envolver,
no mximo, duas alternativas: uma ao caso a condio seja verdadeira (V) e outra ao caso a condio
seja falsa (F). Existe a possibilidade de haver apenas a primeira alternativa: nesse caso, se a condio for
falsa (F), o algoritmo apenas seguir o fluxo normal posterior ao desvio condicional, classificado como
desvio condicional simples.
Observao: muitas vezes, indicamos o caso da condio verdadeira como Sim (S) e o caso de
condio falsa como No (N).
Desvio Condicional Simples
O desvio condicional simples uma estrutura na qual se indica, no algoritmo, uma tomada de deciso
em que um trecho do algoritmo executado caso uma determinada condio seja verdadeira (V).
Em Portugus Estruturado, o desvio condicional simples indicado com as seguintes instrues:
se ... ento ... fim_se.
O fluxograma relacionado com o desvio condidonal simples est ilustrado na figura abaixo.

21

Unidade II
Suponha o seguinte problema: dada a mdia final de um aluno, indicada pela varivel identificada
por MF, mostrar a expresso Aprovado se esta mdia for igual ou superior a 7.
Um algoritmo simplificado para esse problema poderia ser:
Ler a mdia final de um aluno e implicar esta mdia na varivel MF.
Se MF for igual ou superior a 7 (sete), mostrar Aprovado.
O fluxograma para o caso acima poderia ser o mostrado na figura que segue.

Em Portugus Estruturado:
Programa Media_Aluno
Var
MF: real;
inicio
leia (MF);
se (MF>=7) ento
escreva (Aprovado);
fim_se;
fim.

Outro exemplo: fluxograma e programa em Portugus Estruturado envolvendo estrutura


condicional simples.

22

Programao de computadores

Programa Soma_Resultado
var
A, B, Res: inteiro;
inicio
leia (A);
leia (B);
Res A + B;
se (Res > 10) entao
escreva (Res);
fim_se;
fim.

Observao: na atribuio Res recebe A + B, poderamos ter feito Res A + B ou Res := A + B ou


Res = A + B.

23

Unidade II
Desvio Condicional Composto
O desvio condicional composto uma estrutura na qual se indica, no algoritmo, uma tomada de
deciso em que um trecho do algoritmo executado caso uma determinada condio seja verdadeira
(V) e outra uma tomada de deciso em que um trecho do algoritmo executado caso uma determinada
condio seja falsa (F).
Desvio condicional composto
Sintaxe - Portugus Estruturado
se (condio) entao
<instrues para condio verdadeira>
seno
<instrues para condio falsa>
fim_se;

Exemplo. Ler dois valores numricos e fazer sua adio. Caso o valor seja maior ou igual a 10, ele
dever ser apresentado somando-se a ele mais 5. Caso o valor somado no seja maior ou igual a 10,
dever ser apresentado subtraindo-se 7.
Programa em Portugus Estruturado
Programa Exemplo_Soma
var
A, B, res: inteiro;
inicio
leia (A);
leia (B);
res A + B
se (res >= 10) entao
res res +5;
senao
res res +7;
fim_ se;
escreva (O resultado :, res );
fim.

24

Programao de computadores
Laos de Repetio, Contadores e Acumuladores

Laos ou Loops

Muitas vezes, ao elaborarmos um algoritmo ou um programa de computador, precisamos repetir


uma sequncia de operaes ou de instrues mais de uma vez. A maneira como essas repeties podem
ser estruturadas so relacionadas com laos de repetio ou loops.
Uma sequncia de aes repetida por um nmero especfico de vezes, at que uma condio seja
satisfeita. Enquanto a condio for verdadeira (V), as instrues sero executadas.
Exemplo. Rotineiramente, durante os dias da semana, uma pessoa realiza a sequncia de aes
mostradas no quadro a seguir.
10 Dia
Acordar levantar tomar caf pegar o nibus
Ou

chegar ao destino

pegar o carro
20 Dia
Acordar levantar tomar caf pegar o nibus
Ou

chegar ao destino

pegar o carro

N-simo Dia
Acordar levantar tomar caf pegar o nibus
Ou

chegar ao destino

pegar o carro

25

Unidade II
Essa pessoa executa, repetidamente, as aes descritas de segunda-feira a sexta-feira. Ou seja, as
aes se repetem at que chegue o sbado. Sendo assim, podemos reescrever o quadro anterior de uma
maneira mais sinttica, como mostrado nos quadros que seguem.
Enquanto (no chegar ao fim de semana) faa
Acordar levantar tomar caf pegar o nibus
Ou

chegar ao destino

pegar o carro

ou
Enquanto (dia < N) faa
Acordar levantar tomar caf pegar o nibus
Ou

chegar ao destino

pegar o carro

Conclumos que os esquemas apresentados nos ltimos dois quadros representam, de modo bem
mais resumido, as N repeties de aes apresentadas no primeiro quadro. Pensando em termos
prticos da programao, os modelos adotados nos dois ltimos quadros so bem mais confortveis e
sintticos do que o modelo do primeiro quadro.
Conforme veremos no prximo contedo, as estruturas de repetio so representadas por trs tipos
de comandos:
repetio com teste no incio;
repetio com teste no final;
repetio com varivel de controle.
Esses comandos podem realizar a repetio de aes (conjunto de comandos). Essas aes so
executadas repetidamente enquanto uma determinada condio for satisfeita (verdadeira).
Variveis Contadores e Acumuladores
Em algoritmos contendo estruturas de repetio, comum surgir a necessidade de utilizarmos
variveis do tipo contador e/ou acumulador.
Contadores
Um contador utilizado para contar o nmero de vezes que um evento ou uma instruo ocorre,
ou seja, contar a quantidade de vezes que uma instruo executada.
26

Programao de computadores
De modo geral, um contador pode ser expresso como: VARIVEL VARIVEL + CONSTANTE
Podemos ler a expresso acima como o novo valor da varivel o valor antigo da varivel somado
de um valor constante.
Vejamos um exemplo: CONT CONT + 1
Um contador uma varivel qualquer, identificada por um smbolo escolhido pelo programador, que
recebe ela mesma mais um valor (uma constante). No caso do exemplo CONT CONT + 1 , a varivel
CONT est recebendo o valor dela mesma mais 1.
Usualmente, a constante que ser somada no contador o valor 1, para contar de um em um,
mas isso no obrigatrio. Poderamos ter qualquer valor como constante, por exemplo o nmero 3, se
desejssemos contar de 3 em 3.
Importante Contadores:
A varivel do contador deve possuir um valor inicial conhecido, isto , ela deve ser inicializada.
Normalmente, inicializa-se a varivel do contador com o valor zero, ou seja, zera-se a varivel
antes de utiliz-la. Para zerar uma varivel basta atribuir a ela o valor zero: VARIVEL O.
A constante em VARIVEL VARIVEL + CONSTANTE, que geralmente o valor 1, determina o
valor do incremento da varivel do contador, ou seja, o que ser somado (acrescido) a ela.
Acumuladores
Um acumulador (ou somador) utilizado para obter somatrios (representados pelo smbolo ).
De modo geral, um acumulador pode ser expresso como: VARIVEL1 VARIVEL1 + VARIVEL2.
Podemos ler a expresso acima como o novo valor da varivel 1 o valor antigo da varivel 1
somado do valor da varivel 2.
Vejamos um exemplo: AC1 AC1 + AC2
Um acumulador ou somador uma varivel qualquer que recebe ela mesma mais uma outra varivel.
No caso de AC1 AC1 + AC2, a varivel AC1 est recebendo o valor dela mesma mais o valor da varivel
AC2. A varivel AC2 representa o valor a ser somado, acumulado na varivel AC1.

27

Unidade II
Importante Acumuladores:
A varivel 1 do acumulador deve possuir um valor inicial conhecido, isto , ela deve ser inicializada.
Normalmente, inicializa-se a varivel do acumulador com zero, ou seja, zera-se a varivel antes de
utiliz-la. Para zerar uma varivel, basta atribuir a ela o valor zero: VARIVEL1 O.
A varivel 2 indica o valor a ser acumulado, somado e armazenado na varivel 1.
Estruturas de Repetio

Introduo
H trs estruturas bsicas para a construo de algoritmos: os algoritmos sequenciais, os algoritmos
com seleo e os algoritmos com repetio. A combinao dessas trs estruturas permite a construo
de algoritmos para a resoluo de problemas complexos.
Uma estrutura de repetio permite que uma sequncia de instrues ou comandos seja executada
vrias vezes, at que uma condio seja satisfeita, ou seja, repete-se um conjunto de instrues sem que
seja necessrio escrev-las vrias vezes. As estruturas de repetio, assim como as de deciso ou seleo,
envolvem a avaliao de uma condio ou teste.
Estruturas de Repetio
As estruturas de repetio podem ser classificadas em condicionais e em incondicionais. Para
todos os casos estudados a seguir, vamos tomar como exemplo uma situao hipottica de uma
pesquisa de inteno de votos que ser finalizada no momento em que o total de 20 (vinte) pessoas
forem entrevistadas.
Estruturas de Repetio Condicionais
Os comandos colocados dentro de uma estrutura de repetio condicional tm sua execuo
repetida at que a condio lgica estabelecida seja satisfeita.
Temos, basicamente, dois tipos de repeties condicionais: o comando ENQUANTO...FAA e o
comando REPITA AT.
ENQUANTO...FAA
Sintaxe Geral
ENQUANTO (condio) FAA
bloco de comandos
FIM ENQUANTO

28

Programao de computadores
Exemplo
ENQUANTO (numero_pessoas <= 20) FAA
RECEBA intencao_votos
FIM_ENQUANTO;

REPITA...AT
Sintaxe Geral
REPITA
bloco de comandos
AT (condio)

Exemplo
REPITA
RECEBA intencao_votos
AT (numero_pessoas > 20)

A diferena bsica entre essas duas estruturas que a estrutura ENQUANTO...FAA testa a condio
antes de executar o bloco de comando e a estrutura REPITA...AT executa o bloco de comandos e depois
testa a condio. Dessa maneira, a estrutura REPITA...AT deve ser usada sempre que se queira executar
o bloco de comandos pelo menos uma vez.
Observao: os operadores das condies dessas duas estruturas so inversos.
Estrutura de Repetio Incondicional
Os comandos colocados dentro de uma repetio incondicional tm sua execuo repetida um
determinado nmero de vezes.
PARA varivel DE x AT y PASSO z FAA

Esse comando pode ser utilizado tanto em sentido crescente (x menor do que y e z positivo), quanto
em sentido decrescente (x maior do que y e z negativo).
Nele, temos o seguinte:
x o nmero inicial;
y o nmero final;
z o incremento/decremento que ocorrer em varvel em cada repetio.
29

Unidade II
Sintaxe Geral
PARA varivel DE x AT y PASSO z FAA
bloco de comandos
FIM PARA;

Exemplo
PARA numero_pessoas DE 1 AT 21 PASSO 1 FAA
RECEBA intencao_votos
FIM PARA;

Observao. Repetio com Teste no Incio: nesse tipo de repetio h uma condio logo no incio,
e, enquanto esta condio for satisfeita (verdadeira), o conjunto de aes limitadas pelo bloco da
repetio executado. Quando a condio for falsa o comando abandonado, prosseguindo para o
prximo comando na sequncia.

30

Informaes:
www.sepi.unip.br ou 0800 010 9000

Você também pode gostar