Você está na página 1de 8

Expressar os Algoritmos

Algoritmos e Programao
Engenharias

Algoritmos Conceitos Bsicos


Aula 02

Profa. Noiza Waltrick Trindade


(noiza@uniderp.edu.br)
(noiza@anhanguera.com)

Mtodos de Representao de
Algoritmos

Caractersticas:

Para expressar os algoritmos criados para os


computadores so necessrias formas que
sejam adequadas.
Existem duas formas de representao de
algoritmos:
Fluxograma Representao grfica.
Pseudocdigo (Portugus estruturado)
Representao textual.

Mtodos de Representao de
Algoritmos

Fluxograma.

Fluxograma.
A representao grfica mais concisa que a
representao textual.
necessrio aprender a simbologia dos fluxogramas.

Pseudocdigo.

Representao grfica por meio de smbolos


geomtricos, da soluo algortmica de um
problema.

A transcrio para qualquer linguagem de programao


quase direta.
necessrio aprender as regras do pseudocdigo.

Fluxograma
Em algoritmos
complexos e longos o
uso de uma
apresentao na forma
de fluxograma se torna
extremamente
trabalhosa, podendo
ocupar diversas
pginas.

Pseudocdigo
Visa melhorar a interpretao do programador
em relao ao algoritmo criado, eliminando o
cdigo compilvel e apresentando um cdigo
mais limpo.
Normalmente o pseudo-cdigo escrito na
linguagem natural do programador, no Brasil
chamado de Portugol.

Portugol

Operadores Aritmticos

Exemplo de Portugol:
algoritmo "Exemplo1"
var num1, num2, maior: inteiro
inicio
escreva ("Entre com dois numeros: ")
leia(num1, num2)
se num1 > num2 entao
maior <- num1
senao
maior <- num2
fimse
escreva("O maior valor ",maior)
fimalgoritmo

+, -, *, /

importante a
utilizao de uma
indentao para
facilitar o prprio
entendimento e o
entendimento de
outros programadores.

Operadores Aritmticos
div ou \ (VisuAlg)
Operador de diviso inteira. Por exemplo, 5 \ 2 =
2. Tem a mesma precedncia do operador de
diviso tradicional.

Operadores aritmticos tradicionais de adio, subtrao,


multiplicao e diviso. Por conveno, * e / tm
precedncia sobre + e -. Para modificar a ordem de
avaliao das operaes, necessrio usar parnteses
como em qualquer expresso aritmtica.

+, - (operadores unrios)
Como operadores unrios so aplicados a um nico
operando. Enquanto o operador unrio - inverte o sinal do
seu operando, o operador + no altera o valor em nada o
seu valor.

Operadores Aritmticos
potencia(base,expoente) ou ^ (VisuAlg)
Operador de potenciao. Por exemplo, 5 ^ 2 = 25. Tem a
maior precedncia entre os operadores aritmticos
binrios (aqueles que tm dois operandos).a do operador
de diviso tradicional.

mod ou %
Operador de mdulo (isto , resto da diviso
inteira). Por exemplo, 8 MOD 3 = 2. Tem a mesma
precedncia do operador de diviso tradicional.

Identificadores
Nomes utilizados para referenciar variveis,
funes ou vrios outros objetos definidos
pelo programador.
Regras:
Podem conter letras, dgitos e sublinhado(_);
No podem comear com dgito;
No podem ser iguais a uma palavra-chave e nem
iguais a um nome de uma funo declarada pelo
programador ou pelas bibliotecas da linguagem
utilizada.

Constantes e Variveis
So repositrios de elementos pertencentes aos
tipos.
A diferena entre os dois :
uma constante declarada no incio do programa e no
mais modificada;
uma varivel pode ser alterada durante a execuo do
programa.

Tanto variveis quanto constantes so identificadas


por nomes.
Por esse motivo recomendado que se utilize nomes
ou abreviaturas que possam identificar o que est
armazenado.

Constantes e Variveis
Antes de utilizarmos uma varivel dentro do
algoritmo, necessrio definir o tipo.
Uma varivel de um determinado tipo s
poder armazenar dados daquele tipo.

Manipulao de Dados
Tipos: Apesar dos computadores trabalharem apenas
com nmeros, as linguagens de programao nos
permitem utilizar diferentes tipos de dados em um
programa.
Os tipos de dados so como um conjunto de objetos
que tem em comum o mesmo comportamento
diante de um conjunto definido de operaes:
Exemplo: Os seres Humanos so um tipo, todas as pessoas
formam um conjunto de objetos que se comportam de
forma similar quando comem, dormem, bebem, andam,
etc.

Manipulao de Dados
As palavras-chave que definem os tipos 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.

Constantes e Variveis
So repositrios de elementos pertencentes aos
tipos.
A diferena entre os dois :
uma constante declarada no incio do programa e no
mais modificada;
uma varivel pode ser alterada durante a execuo do
programa.

Tanto variveis quanto constantes so identificadas


por nomes.
Por esse motivo recomendado que se utilize nomes
ou abreviaturas que possam identificar o que est
armazenado.

Variveis
Notao que ser utilizada para a declarao de uma
varivel ou constante:
var
<lista-de-variveis> : <tipo-de-dado>

Variveis
Exemplo:
var quantidade, filhos, netos: inteiro
aberto: logico
altura: real
resposta: caractere

Caso existam variveis de mais de um tipo a lista de


variveis deve vir em um nova linha seguida do tipo.

Atribuio

Atribuio

utilizada para dar um valor para uma


determinada varivel.
Para as variveis apenas podem ser atribudos
valores do mesmo tipo e resultados de
operaes que so do mesmo tipo da sua
declarao.

Blocos de Instruo

Criando um Algoritmo

altura <- 1.80


filhos <- 3
netos <- filhos *2-3
aberto <- FALSO

Exemplos:
Algoritmo nome
<declarao de variveis>
inicio
<primeira instruo do bloco>
<segunda instruo do bloco>
...
<ltima instruo do bloco>
fimalgoritmo

Estrutura de um Algoritmo

As FASES para se desenvolver um algoritmo


podem ser descritas em:

PROCESSAMENTO

varivel <- valor do mesmo tipo da varivel

Blocos de Instruo

As instrues de uma linguagem de


programao sempre so executadas em
seqncia.
A utilizao de blocos de instrues deixa
claro onde a seqncia de instrues inicia e
termina.
Todo algoritmo tem pelo menos um bloco de
instruo.

ENTRADA

Exemplos:

SADA

NOME DO ALGORITMO
VAR
declarao de variveis
.
.
.
INICIO DO ALGORITMO
bloco de comandos
.
.
.
FIM DO ALGORITMO

algoritmo "Exemplo2"
var
n1, n2, d: inteiro
inicio
escreva("Digite dois numeros: ")
leia(n1)
leia(n2)
d <- n1 + n2
escreva("A soma eh igual a ", d)
fimalgoritmo

Exemplos reais de algoritmos


Problema 1: Calcular a soma de dois nmeros
inteiros.
algoritmo "exemplo03"
var n1, n2, total: inteiro
inicio
n1 <- 5
n2 <- 8
total <- n1 + n2
fimalgoritmo

Exemplos reais de algoritmos


Problema 3: Realizar a soma entre dois nmeros
inteiros pares e entre dois nmeros inteiros mpares,
depois multiplicar o total dessas somas.
algoritmo "exemplo05"
var np1, np2, ni1, ni2, nptotal, nitotal, total: inteiro
inicio
np1 <- 4
np2 <- 12
ni1 <- 13
ni2 <- 7
nptotal <- np1 + np2
nitotal <- ni1 + ni2
total <- nptotal * nitotal
fimalgoritmo

Exemplos reais de algoritmos


Problema 5: Encontrar as razes de uma equao de
segundo grau.
Toda equao que pode ser escrita na forma: ax + bx
+ c, em que x a varivel a, b e c so os
coeficientes da equao do segundo grau. Para
encontrar as razes podemos utilizar a frmula de
Baskara.
Faa um algoritmo que encontre as razes da
equao:
x2 5x + 6.

Exemplos reais de algoritmos


Problema 2: Calcular a taxa de juros de um
determina-do valor. (Juros de 1.8%).
algoritmo "exemplo04"
var n1: inteiro
juros, total: real
inicio
juros <- 1.8
n1 <- 80
total <- (juros * n1) / 100
fimalgoritmo

Exemplos reais de algoritmos


Problema 4: Calcular o nmero de vrtices de um cubo.
Obs: Sabe-se que a relao entre vrtices, arestas e faces de um
objeto geomtrico dada pela frmula: vrtice + faces = arestas +2
Um cubo contm 6 faces e 12 arestas.

algoritmo "exemplo06"
var faces, arestas, vertices: inteiro
inicio
faces <- 6
arestas <- 12
vertices <- (-faces + 2) + arestas
fimalgoritmo

Exemplos reais de algoritmos


Soluo para o Problema 5 para a equao igual a
x2 5x + 6.
algoritmo "exemplo07"
var delta, x1, x2, a, b, c: real
inicio
a <- 1
b <- -5
c <- 6
delta <- b*b -(4*a*c)
x1 <- (-b -(delta^(1/2))) / (2 * a)
x2 <- (-b +(delta^(1/2))) / (2 * a)
fimalgoritmo

algoritmo "exemplo07"
var delta, x1, x2, a, b, c: real
inicio
a <- 1
b <- -5
c <- 6
delta <- QUAD(b) -(4*a*c)
x1 <- (-b - RAIZQ(delta)) / (2.0 * a)
x2 <- (-b + RAIZQ(delta)) / (2.0 * a)
fimalgoritmo

Entrada e Sada
As linguagens de programao esto
preparadas para receber entradas e
apresentar sadas.
Dessa forma, durante a execuo de um
programa, um usurio poder informar
valores de entrada para que sejam
processados pelo computador, que, por sua
vez, retornar o resultado do processamento
(sada).

Entrada

Sada

o meio pelo qual o usurio pode informar para o


programa quais os valores de entrada.
realizada pelo comando:
leia(<varivel>);
A leitura de um valor implica no uso de uma varivel,
pois tal valor precisa ser armazenado em algum
lugar:
var variavel1: real;
...
leia(variavel1);

Para que o usurio tenha acesso aos resultados do


processamento do programa, toda linguagem de
programao fornece mecanismos de apresentao
(sada) dos dados.
realizada pelo comando:
escreva(<valor>);
O valor escrito na tela do monitor pode ser um texto
(neste caso, entre aspas duplas) ou o contedo de
uma varivel/constante. Pode tambm intercalar
texto com variveis, separando-os por vrgulas.

Sada
Exemplo 1
var variavel: real
...
leia(variavel)
...
escreva(O resultado : ,
variavel)

Supondo que o valor digitado


fosse 3.2 a resposta do
comando escreva seria:
O resultado : 3.2

Exemplo 2
var variavel1: real
...
leia(variavel1)
...
escreva(O valor , variavel1, o
resultado final)
Supondo que o valor digitado
fosse 4.5 a resposta do
comando escreva seria:
O valor 4.5 o resultado final

Exemplos reais de algoritmos


Problema 6: Adaptao do problema 4.
algoritmo "exemplo08"
var faces, arestas, vertices: inteiro
inicio
faces <- 6
arestas <- 12
//vertices <- arestas faces + 2
vertices <- (-faces + 2) + arestas
escreva("O nmero de vrtices do objeto especificado : ",
vertices)
fimalgoritmo

Exemplos reais de algoritmos


Exerccio: Adaptar o algoritmo de calcular a taxa de juros de
um determinado valor, para que o usurio possa fornecer o
valor da taxa de juros e o valor que ser calculado os juros.
algoritmo "exemplo09"
var n1: inteiro
juros, total: real
inicio
escreva ("Entre com a taxa de juros: ")
leia (juros)
escreva ("Entre com um valor: ")
leia (n1)
total <- (juros * n1) / 100
escreva ("O juros de ", juros, " sobre o valor ", n1, " eh ", total)
fimalgoritmo

Depurao
Verificar o algoritmo linha por linha a procura
de erros.
Esse procedimento pode ser feito utilizando o
chamado teste de mesa.
Exemplo: Teste de mesa para o objeto
geomtrico cubo.

Depurao

Primeiramente colocam-se nmeros nas linhas que sero executadas.


Depois, fazer um quadro onde as colunas sero as variveis do algoritmo,
e as linhas sero cada linha referente ao algoritmo.
1. escreva(Entre com o nmero de faces do objeto: );
2. leia(faces);
3. escreva(Entre com o nmero de arestas do objeto: );
4. leia(arestas);
5. vertices = arestas + 2 faces;
6. escreva(O nmero de vrtices do objeto especificado : , vertices);

Exemplos reais de algoritmos

Depurao
1. leia(a, b);
2. a = b;
3. b =a;
4. escreva(a, b);

NO HOUVE A TROCA DE VALORES!


Algum sabe o porqu e como resolver?

Problema 7: Trocar os valores de duas variveis. Faa um algoritmo que


armazene dois nmeros e que retorne para o usurio uma troca de
valores.
Exemplo:
Algoritmo troca;
var a, b: inteiro;
incio
1. leia(a, b);
2. a = b;
3. b =a;
4. escreva(a, b);
fim
Exerccio: Fazer a depurao (teste de mesa) do algoritmo anterior.

Varivel
Uma nica varivel pode manter apenas um
valor a cada momento.
a mesma coisa que dois corpos no podem
ocupar o mesmo lugar no espao, um precisa
dar lugar para o outro.
Ou seja, para que d certo o nosso exemplo,
necessrio o uso de mais uma varivel que
possa armazenar temporariamente o valor de
uma das variveis.

Links para o VisuAlg


http://www.baixaki.com.br/site/dwnld6775.ht
m
https://mega.co.nz/#!6x4VTbSK!RbMfYddYiaZ
kuAiUfm6dkU1wj6GZAaiU6rqj7WpY0tw

Você também pode gostar