You are on page 1of 74

Algoritmos e

Programação

Prof. Dr. Paulo Caetano da Silva

Aula 4
Algoritmos

- Operadores Lógicos

• e para a conjunção
• ou para a disjunção
• não para a negação

- Proposição: Variável lógica, uma relação ou uma


expressão lógica composta.
- Proposições:
p: OK, onde OK é uma variável lógica cujo conteúdo
é verdadeiro
q: A = 0, onde o valor de A é 3
r: TESTE, onde TESTE é uma variável cujo
conteúdo é falso
s: B # 1, onde o conteúdo de B é 2

- Conjunção: p e q

pes VeV=V
per VeF=F
qes FeV=F
qer FeF=F
- Disjunção : p ou q

p ou s V ou V = V
p ou r V ou F = V
q ou s F ou V = V
q ou r F ou F = F

- Negação : não p

não p não V = F não r não F = V


Exemplos:
Considerando TESTE uma variável lógica e A,
B,C variáveis numéricas.
A+B=0eC≠1
TESTE ou AxC > B

Considerando X = 2, Y = 5 e Z = 9 , Sim = falso e


NOME = “Maria”, então
não SIM e Quociente(Z,Y) + 1 = X é uma expressão
lógica verdadeira

NOME = “Jorge” e SIM ou x2 < Z + 10 é uma


expressão verdadeira ou falsa ?????
- Prioridade : aritmético, relacional, não, e, ou
• Podemos utilizar parênteses para redefinir a
prioridade das operações.
Exemplo: não( TOTAL ≥ 2 e A ≠ B) ou TESTE
Identificador  expressão
Exemplos:
TESTE  falso
X  (X+1)

- Comandos de Entrada e Saída


leia lista de identificadores
escreva lista de identificadores e/ou constantes
Exemplos:
leia NOTA, NUM
escreva A, X, 35
Exemplo: Considere que os seguintes valores
foram digitados nesta ordem : Paulo, 100, Maria,
75, José, 80
O comando leia X, A, Y, B, Z, C, faz as seguintes
atribuições:
X = “Paulo”, A = 100, Y = “Maria”, B = 75,
Z = “José” e C = 80
O comando escreva X, A, Y, B, Z, C produziria a
seguinte saída:
Paulo, 100, Maria, 75, José, 80
O comando escreva X, A produziria a seguinte
saída:
Paulo, 100
Utilizando quebras de linha:
escreva X saída : Paulo
escreva A saída: 100
Algoritmos e Programação

Lógica de Programação

• É a técnica de encadear pensamento para


atingir determinado objetivo.
Algoritmos
Estrutura Sequencial

Exemplo:

Algoritmo SEQUENCIA
declare A,B,C: numerico;
leia A, B;
C  (A+B) * B;
escreva A, B, C;
fim algoritmo
- Estrutura Condicional
Se condição
então sequência de comandos
fim se

Exemplo:
Algoritmo CONDICIONALSIMPLES
declare A,B,C: numerico;
leia A, B, C;
se ((A+B) < C)
então
escreva “Mensagem”;
fim se
fim algoritmo
- Estrutura Condicional Composta

Se condição
então
sequência A de comandos
senão
sequência B de comandos
fim se
Algoritmo CONDICIONALCOMPOSTA
declare A,B,X,Y numerico;
leia A,B;
se (A = B) então
X  1,5;
Y  2,5;
senão
X  - 1,5;
Y  -2,5;
fim se
escreva X, Y;
fim algoritmo
Algoritmos e Programação

Forma geral de um algoritmo


Algoritmo “nome do algoritmo”

var

// Aqui são declaradas as variáveis

Inicio

// Aqui inserimos expressões, instruções...

Fimalgoritimo
Algoritmos e Programação

Forma geral de um algoritmo


 As palavras reservadas Algoritmo e fimalgoritmo delimitam o início
e o fim de um algoritmo;

 Após a palavra reservada var (acrônimo para variáveis), separado


com um espaço ou enter, descrevemos os tipos de dados
utilizados na lista de comandos;

 Entre as palavras reservadas inicio e fimalgoritmo definimos a lista


de comandos do algoritmo;
Algoritmos e Programação

Forma geral de um algoritmo


 Palavras reservadas fazem parte da sintaxe da linguagem, e são
utilizadas em casos específicos
 Ex.: A palavra reservada algoritmo é utilizada no início de todo
algoritmo, E SOMENTE NO INÍCIO!
Algoritmos e Programação

Palavras reservadas
 aleatorio, abs, algoritmo, arccos, arcsen, arctan, arquivo, asc, ate,
caracter, caso, compr, copia, cos, cotan, cronometro, debug,
declare, e, eco, enquanto, entao, escolha, escreva, exp, faca,
falso, fimalgoritmo, fimenquanto, fimescolha, fimfuncao, fimpara,
fimprocedimento, fimrepita, fimse, funcao, grauprad, inicio, inteiro,
interrompa, leia, literal, log, logico, logn, maiusc, mensagem,
minusc, nao, numerico, numpcarac, ou, outrocaso, para, passo,
pausa, pi, pos, procedimento, quad, radpgrau, raizq, rand, randi,
repita, se, sem, senao, timer, tan, verdadeiro, xou;
Algoritmos e Programação

Algoritmos computacionais
 Um algoritmo computacional deve ser uma seqüência de
instruções que deve manipular dados
 Instruções: comandos que determinam a forma pela qual os
dados devem ser tratados
 Dados: informações recolhidas/fornecidas por diversos meios
e que serão processadas pelo computador através das
instruções
Algoritmos e Programação

Tipos de dados
Os dados manipulados por um algoritmos podem ser números, letras,
frases, etc. Não faz sentido somar duas letras. Então, para poder
distinguir dados de naturezas distintas e saber quais operações
podem ser realizadas com eles, os algoritmos lidam com o
conceito de tipos de dados.

O tipo de um dado define o conjunto de valores e o conjunto de


operações que podem atuar sobre o conjunto de valores.
Algoritmos e Programação

Tipos de Dados (cont´)


 Os tipos de dados podem variar de uma linguagem
para outra.

Tipos de Dados Simples

Numérico Caracter Lógico

Inteiro Real
Algoritmos e Programação

Tipos de Dados (cont´)


 Os Tipos de Dados Numéricos são divididos basicamente em dois
grandes conjuntos:
 Inteiros;
 Reais;

 Os inteiros podem ser positivos, negativos ou nulos, mas não


possuem um componente decimal;
Algoritmos e Programação

Tipos de Dados (cont´)


 Os números inteiros são aqueles que não possuem
componentes decimais ou fracionários, podendo ser positivos
ou negativos. (Conj. N e Z)
 Ex.: 25 – número inteiro positivo
0 – número inteiro
-12 – número inteiro negativo

 Um objeto real pode receber um valor inteiro, mas um objeto


inteiro não pode receber um valor real;
Algoritmos e Programação

Tipos de Dados (cont´)

 Um objeto real pode receber um valor inteiro, mas um objeto


inteiro não pode receber um valor real;

 Declaração:

Linguagem Algorítmica Pascal C

inteiro integer int


Algoritmos e Programação

Tipos de Dados (cont´)


• Os dados de tipo real são aqueles que podem possuir
componentes decimais ou fracionários, e podem também ser
positivos ou negativos.

Exemplos de dados do tipo real:

25.01 – número real positivo com duas casas decimais


144. – número real positivo com zero casas decimais
-13.3 – número real negativo com uma casa decimal
0.0 – número real com zero casas decimais
0. – número real com zero casas decimais
Algoritmos e Programação

Tipos de Dados (cont´)


 Declaração (real):

Linguagem Algorítmica Pascal C

real real float


Algoritmos e Programação

Tipos de Dados (cont´)


 Dados Literais
 O tipo de dado literal é constituído por uma sequência de
caracteres contendo letras, dígitos e/ou símbolos especiais.
 Este tipo de dados é também muitas vezes chamado de
alfanumérico, cadeia de caracteres e string (inglês).
 Usualmente, os dados literais são representados nos
algoritmos pela coleção de caracteres, delimitada em seu
início e término com o caractere aspas (“).
 Diz-se que o dado do tipo literal possui um comprimento
dado pelo número de caracteres nele contido.
Algoritmos e Programação

Dados Não-Numéricos
 Tipos de dados não numéricos:
 Caracter: formado pelas letras (de A a Z, e de a a z), dígitos
(de 0 a 9) e caracteres especiais (~, ., ?, >, <, ...);
 A diferença entre caracteres e dados numéricos estão na
forma de armazenamento, e nas operações legais permitidas
sobre os mesmos;
 Exemplo: operações aritméticas sobre os dados numéricos.
Algoritmos e Programação

Tipos de dados
 Exemplo de dados do tipo literal:

– “QUAL ?” – literal de comprimento 6


– “ ” – literal de comprimento 1
– “qUaL ?!$” – literal de comprimento 8
– “AbCdefGHi” – literal de comprimento 9
– “1-2+3=” – literal de comprimento 6
– “0” – literal de comprimento 1

– Note que, por exemplo, “1.2” representa um dado do tipo literal


de comprimento 3, constituido pelos caracteres “1”, “.” e “2”,
diferindo de 1.2 que é um dado do tipo real.
Algoritmos e Programação

Dados Não-Numéricos
 Objetos declarados como do tipo caracter poderão
armazenar um ou mais caracteres;

 Para armazenar uma seqüência de caracteres será


utilizada a estrutura cadeia de caracteres, que consiste
num tipo de dado estruturado;
 Exemplo:
 ‘Z’ é um caracter;
 ‘ANA’ é uma cadeia de caracteres;
Algoritmos e Programação

Dados Não-Numéricos

 Declaração:

Linguagem Algorítmica Pascal C

caracter char char


Algoritmos e Programação

Tipos de dados
 Dados Lógicos (booleanos)
 O tipo de dados lógico é usado para representar dois únicos
valores lógicos possíveis: verdadeiro e falso. É comum
encontra-se em outras referencias outros tipos de pares de
valores lógicos como sim/não, 1/0, true/false.

 Exemplo: VERDADEIRO – valor lógico verdadeiro


FALSO – valor lógico falso
Algoritmos e Programação

Dados Não-Numéricos

 Tipo Lógico: os valores lógicos podem assumir uma entre duas


possibilidades (verdadeiro ou falso);

 Só poderá armazenar um destes dois valores;


 Muito utilizados em controle do fluxo lógico do algoritmo;

Linguagem Algorítmica Pascal C

lógico boolean bool


Algoritmos e Programação

Tipos de dados

TIPO DESCRIÇÃO
Representa valores inteiros
Inteiro
Ex.: 2, 5, -3, 100, -151...
Representa valores reais
Real ou numerico
Ex.: 10.0, 5.6, -3.45....
Representa texto entre aspas duplas
Literal ou caractere
Ex.: “Sport Recife”, “B”, “1234”
Representa os valores lógicos
Logico
VERDADEIRO ou FALSO
Algoritmos e Programação

Tipos de dados
 Exemplo:

algoritmo “dados”

var nome: literal


idade: inteiro
altura: real
nota_1, nota_2: real
inicio

fimalgoritmo
Algoritmos e Programação

Identificadores
 Devem começar por um caractere alfabético.

 Podem ser seguidos por mais caracteres alfabéticos ou


numéricos.

 Não devem ser usados caracteres especiais.


 Exemplos
Identificadores válidos:
Alpha, X, BJ153, K7, Notas, Media, ABC, INPS, FGTS.
Identificadores inválidos:
5X, E(13), A:B, X-Y, Nota/2, AWQ*, P&AA.
Algoritmos e Programação

Variáveis
 Uma variável pode ser imaginada como um “depósito” para
armazenar valores de dados, para o qual existe um nome,
conhecido como identificador, e cujo o conteúdo pode ser alterado
pelo algoritmo.

 Através do identificador de uma variável que o algoritmo tem


acesso ao seu conteúdo.

 O ato de criar uma variável é conhecida como declaração de


variável.
Algoritmos e Programação

Variáveis (cont´)
 Para se declarar uma variável, segue-se o formato
abaixo:

<lista-de-variáveis> : <tipo-de-dado>

 Exemplos:
Var
X: inteiro
Nome, Endereço, Data: caractere
ABC, XPTO, Peso, Dolar: real
Resposta, H286: logico
Algoritmos e Programação

Variáveis (cont´)
– Representa uma posição na memória, onde pode ser armazenado
um dado
– Possui um nome e um valor
– Durante a execução do algoritmo, pode ter seu valor alterado (seu
valor pode variar)
– Mudanças no valor das variáveis:
• Por entrada de dados (“Ler N1”)
• Por atribuição (“N2  14”)

39
Algoritmos e Programação

Operador de atribuição

 Utilizamos o operador de atribuição para inserir um valor em uma


variável;

 Representado por uma seta apontando para a esquerda ();

 Só podemos atribuir valores do mesmo tipo da variável;


Algoritmos e Programação

Operador de atribuição (cont´)


 Exemplo:
Algoritmo “exemplo”

Var nome: literal


idade: inteiro

Inicio

nome  “Thyago Maia”;


idade  27;

fimalgoritmo
Algoritmos e Programação

Variáveis (cont´)
 Regras para identificação das variáveis:
 Nomes de variáveis não podem ser iguais a palavras
reservadas;
 Nomes de variáveis devem possuir como primeiro caractere
uma letra ou sublinhado (_). Os demais caracteres podem ser
letras, números ou sublinhado;
 Nomes devem ter no máximo 127 caracteres;
 Nomes não podem ter espaços em branco;
 Não há diferença entre letras maiúsculas e minúsculas;
Algoritmos e Programação

Variáveis (cont´)
 Cada variável utilizada em um algoritmo deve ter sido declarada
antes de ser utilizada pela primeira vez.

 Ao criarmos uma variável, temos de, explicitamente, associar-lhe


um tipo de dados.

 Uma variável declarada como sendo do tipo numérico, não poderá


armazenar qualquer outro valor que não seja um número.

 Não pode haver duas variáveis com o mesmo nome.


Algoritmos e Programação

Operador de atribuição (cont´)


 Exemplo 2 (erros de atribuição):

Algoritmo “exemplo”

Var nome: literal


idade: inteiro
soma: inteiro
Inicio

nome <- Thyago Maia;


idade <- 27.34;
soma <- 2 + 3 + 5;

fimalgoritmo
Algoritmos e Programação

Operador de atribuição (cont´)


 Exemplo 2 (erros de atribuição):

Algoritmo “exemplo”

Var nome: literal


idade: inteiro

Inicio

nome  Thyago Maia; LITERAIS SEMPRE COM “”


idade  27.34; A VARIÁVEL É INTEIRA, NÃO REAL

fimalgoritmo
Algoritmos e Programação

Constantes
 Uma constante faz exatamente o que o nome sugere: representa
um dado cujo valor não muda durante todo o algoritmo.

 São os valores expressos em sua natureza: inteiro, real, caractere


e logico.
Algoritmos e Programação

Exercícios
 Classifique o conteúdo das variáveis abaixo de acordo
com seu tipo:

0 “abc” “João”
5.7 1012 FALSO
-49 342 569
“Lucas” “Verdadeiro” 0.00001
Verdadeiro “444” -78.1
Algoritmos e Programação

Exercícios
 Classifique o conteúdo das variáveis abaixo de acordo
com seu tipo: RESPOSTAS

0 inteiro “abc” literal “João” literal


5.7 real 101 inteiro FALSO logico
-49 inteiro 342 inteiro 9 inteiro
“Lucas” literal “Verdadeiro” literal 0.00001 real
Verdadeiro logico “444” literal -78.1 real
Algoritmos e Programação

Relembrando ...

 Palavra-chave é qualquer palavra que tenha um


significado especifico para um algoritmo e que não
deve ser utilizada para qualquer outro propósito, tal
como para dar um nome a uma variável.
Algoritmos e Programação

Exercícios
1. Classifique os dados especificados abaixo de acordo com seu tipo,
assinalando com I os dados do tipo inteiro, com R os reais, com L os
literais, com B os lógicos(booleanos), e com N aqueles para os quais
não é possível definir a priori um tipo de dado.

( ) 0.21 ()1 ( ) VERDADEIRO ( ) “0.” ( )1%


( ) “José” ( ) 0,35 ( ) FALSO ( ) -0.001 ( ) TRUE
( ) +3257 ( ) “a” ( ) “FALSO” ( ) “-0.0” ( ) ±3
( ) “+3257” ( ) “abc” ( ) CORRETO ( ) Maria ( ) +36
Algoritmos e Programação

Exercícios (cont´)
2. Assinale os identificares válidos:

a) (X) b) U2 c) AH! d) “ALUNO”


e) #55 f) KM/L g) UYT h) ASDRUBAL
i) AB*C j) 0&0 l) P{0} m) B52
n) Rua o) CEP p) dia/mês
Algoritmos e Programação

Exercícios (cont´)
3. Supondo que as variáveis NB, NA, NMat, SX sejam
utilizadas para armazenar a nota do aluno, o nome do
aluno, o número da matrícula e o sexo, declare-as
corretamente, associando o tipo primitivo adequado ao
dado que será armazenado.
Algoritmos e Programação

Exercícios (cont´)
4. Encontre os erros da seguinte declaração de variáveis:

Endereco, Nfilhos: inteiro


Idade, X: caractere
XPTO, C, Peso, R$: real
Lampada, C: logico
Algoritmos e Programação

Operadores
– Usados para incrementar, decrementar, comparar e avaliar dados, que
são operações básicas em processamento de dados.
– Tipos:
• Aritméticos (+, -, *, /, ** ou ^)
–Resultados numéricos
• Relacionais (>, <, >=, <=, ==, !=)
–Resultados lógicos (V ou F)
• Lógicos (&& - e, || - ou, ! - não)
–Combinam resultados lógicos
Algoritmos e Programação

Operadores Aritméticos

Operador Significado Prioridade

^ (**) pow(x,y) Potenciação I

* multiplicação II

/ divisão II

+ adição III

- subtração III

 As operações são realizadas em uma expressão de acordo com a


ordem de prioridade. Quando houver empate entre operações, elas
serão realizadas da esquerda para a direita.
Algoritmos e Programação

Operadores Aritméticos (cont´)

Total  preço * quantidade

X  1 + 7 * 2 ** 2 - 1
Exemplos:
Y  3*(1-2)+4*2

MEDIA = (N1+N2+N3+N4) / 4
Algoritmos e Programação

Operadores Aritméticos (cont´)

Expressão Matemática Expressão Algoritmica

2.a+b 2*a+b

a.x2 a*x^2

a a/2+b
+b
2

 Os parênteses quebram o ordem de prioridade natural.


a/2+b errado
a
2+b
a/(2+b) certo
Algoritmos e Programação

Operadores Aritméticos (cont´)

 Quando houverem parênteses aninhados, a prioridade será do


mais interno.

a / (a + b) - (2 * (b + c))
2 1

4 3

5
Algoritmos e Programação

Operadores (cont´)
• Operadores relacionais são muito usados quando temos que tomar decisões
nos algoritmos. Com eles fazemos testes, comparações, que resultam em
valores lógicos (verdadeiro ou falso):

Exemplo:
tendo duas variáveis, A = 5 e B = 3:

==
!=
Algoritmos e Programação

Exercício
5) Tendo as variáveis SALARIO, IR e SALLIQ, e considerando os
valores abaixo, informe se as expressões são verdadeiras ou
falsas.
Algoritmos e Programação

Exercício (cont´)

6) Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo


são verdadeiras ou falsas.

a) (A+C) > B ( )
b) B >= (A + 2) ( )
c) C == (B –A) ( )
d) (B + A) <= C ( )
e) (C+A) > B ( )
Algoritmos e Programação

Exercício (cont´)
7) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expressões abaixo
são verdadeiras ou falsas.

a) (A > C) && (C <= D) ( )


b) (A+B) > 10 || ((A+B) == (C+D)) ( )
c) (A>=C) && (D >= C) ( )
Algoritmos e Programação

Expressões e Operações Lógicas


 Expressões Lógicas
 Operações onde a execução de uma ação ou seqüência
de subações está sujeita a uma certa condição,
representada através de uma expressão lógica
 Operações lógicas:
 == (igual a) / != (diferente)
 < (menor) / > (maior)
 <= (menor ou igual) / >= (maior ou igual)
Algoritmos e Programação

Expressões e Operações Lógicas


 Expressões Lógicas
 Operadores lógicos:
 && - e (conjunção)
 || - ou (disjunção)
 ! - não (negação)
Algoritmos e Programação

Comandos – Entrada e Saída


 Comandos de entrada e saída
 Comandos que permitem a interação do usuário com o
programa
 Comando de entrada
 Scanf (leia)
 Comando de saída
 Printf (escreva)
Algoritmos e Programação

Estrutura Seqüencial

 Todos os comandos que estão entre as palavras Início e


Fim devem ser executados de maneira seqüencial

Pseudocódigo Linguagem C

Início main( ) {
d1; d1;
d2; d2;
. .
. .
dn; dn;
Fim }
Algoritmos e Programação

Estrutura Seqüencial - Exemplo


 Exemplo
 Algoritmo que lê dois dados, calcula a média e imprime o
resultado
Algoritmo Media #include <stdio.h>;
var num1, num2, media: inteiro; void main ()
Início {
leia (num1) int num1, num2, media;
leia (num2) scanf ("%d", &num1);
media  (num1 + num2) / 2 scanf ("%d", &num2);
escreva (media) media = (num1 + num2) / 2;
FimAlgoritmo printf("%d", media);
}
Algoritmos e Programação

Teste de Mesa (Rastreio)

• Todo algoritmo deve ser testado

• Usar dados e resultados previamente calculados,


seguir precisamente as instruções do algoritmo e
verificar se o procedimento está correto ou não
Algoritmos e Programação

Teste de Mesa (Rastreio) – (cont´)


Utilize a tabela abaixo:
Algoritmos e Programação

Exercício

1. Faça um algoritmo que leia a idade da


pessoa expressa em anos, meses e dias e
mostre-a expressa apenas em dias.
Algoritmos e Programação

Exercício (cont´)

2. O custo ao consumidor de um carro novo é a soma do


custo de fábrica com a percentagem do distribuidor e
dos impostos (aplicados ao custo de fábrica).
Supondo que a percentagem do distribuidor seja de
28% e os impostos de 45%. Escrever um algoritmo
que leia o custo de fábrica e imprima o custo ao
consumidor.
Algoritmos e Programação

Exercício (cont´)
3. Tendo como entrada o total vendido por um funcionário no
mês de abril, faça um algoritmo que mostre a sua comissão e
salário bruto neste mês, sabendo que o seu salário base é
R$1.200,00 e sua comissão é de 10% sobre o total vendido.
Algoritmos e Programação

Exercício (cont´)
4. Entre com a base e a altura de um retângulo e mostre os
resultados:
• Perímetro (Perímetro é igual à soma dos 4 lados)
• Área (Área é igual à lado vezes lado)
Referências
1. Machado, A.F. da V. “Algoritmos e Estruturas de Dados”.
(disponível na web)
2. Antunes, L. “Introdução à Computação - Algoritmos”.
(disponível na web)
3. S/N. “Algoritmo I”. Instituto Federal do Rio Grande do Sul.
(disponível na web)
4. Farias, T.M.T. de. “Algoritmos e Programação”. (disponível na
web)

You might also like