Você está na página 1de 11

Conceitos básicos de Algoritmo

Algoritmo é um conjunto de passos, bem definidos, a serem realizados em forma ordenada/seqüencial


e finita, para resolver um determinado problema. Todo algoritmo tem entrada (pode ser conhecida
dentro do algoritmo ou conhecida através de uma leitura) e tem saída (pelo menos uma saída).

Representação de Algoritmo
Um algortimo poder ser escrito usando:
Pseudo – Código.- Neste tipo de representação, um algoritmo é escrito utilizando-se de uma sintaxe de
escrita de uma programação estruturada, em uma linguagem comum, por exemplo, português-portugol.
Fluxograma.- Neste tipo de representação, um algoritmo é escrito utilizando-se de figuras para
representar o fluxo de passos do algoritmo.
Diagrama de N-S (Naissen – Schneiderman) ou de Chapin.- Chapin Neste tipo de representação, um
algoritmo é escrito utilizando-se de quadrados e retângulos para descrever os passos de um algoritmo.

Estruturas Lógicas utilizadas para a escrita de um algoritmo:


ESTRUTURA SEQUENCIAL
ESTRUTURA DE SELEÇÃO (CONTROLE)
ESTRUTURA DE ITERAÇÃO.
Estrutura Seqüencial.- Os passos de um algoritmo são realizados em forma seqüencial sem fazer
nenhum tipo de teste.
Criar um algoritmo para colocar um carro em movimento.
PSEUDO –CÓDIGO FLUXOGRAMA 1
Inicio. Inicio
Abrir a porta do carro
Pisar na embreagem
Entrar no carro Abrir a porta
Sentar no banco
Pegar o câmbio
Fechara a porta Entrar no carro
Ajustar o banco e os espelhos retrovisores
Colocar em 1ª. marcha
Colocar o cinto de segurança Sentar no carro
Pisar na embreagem Pisar acelerador
Pegar o câmbio Fechar a porta
Colocar o câmbio em “ponto morto” Soltar freio de mão
Soltar a embreagem Ajustar o banco e os espelhos
Ligar o carro Soltar embreagem
Pisar na embreagem Colocar o cinto de segurança
Pegar o câmbio Fim
Colocar o câmbio na primeira marcha Pisar na embreagem
Pisar no acelerador Carta N-S
Soltar o freio de mão Pegar o câmbio
Soltar a embreagem devagar Abrir a porta
Fim. Colocar em Ponto Morto
Entrar no carro
Soltar a embreagem .....
Pisar acelerador
Ligar o carro
Soltar freio de mão
Soltar embreagem
1
Estrutura de Seleção (Controle).- Permite a escolha de uma alternativa entre duas disponível. Se testa
se
uma condição (expressão lógica), se esta for Verdadeia faz-se o Bloco I e se for Falso faz-se o bloco II..
Pseudo-Código
<condição> Fluxograma Carta N-S
então F V F
<condição>
C1; <condição> V V V
V C11
C2; C1 C11
... V
V C12
Cn ; Bloco C1 C2 C12
V I
senão
C11; C2 C13
... ...
C12;
... F ... ...
C1n V; Bloco Cn C1n
II
fim-se Cn C1n

Estrutra de Iteração.- Um bloco de passos é executado um número de vezes de acordo a uma


fim se ;
determinada condição. Podem ser: (1) Enquanto_faça,
Enquanto_faça (2) Repita _até e (3) Para_faça.
Para_faça.
(1) Enquanto_faça .- O bloco é repetido enquanto a condição for verdadeira, se a condição for falsa
deixá-se da fazer o bloco. Fluxograma Carta N-S
<condição>
Pseudo-Código <condição>
condição VEnquanto <condição>
Enquanto <condição> faça
faça C1 C1
C1; F V C2
C2; V Bloco V C2
... V V V ...
...
Cn ;
Cn
fim_enquanto ;
Cn fim-enquanto
F
F
(2) Repita_até.- Nesta estrutura o bloco é feito até que a condição seja verdadeira.

Pseudo-Código Carta N-S


Fluxograma
ma
Repita Ps
C1eudo-Código
Repita
C1; F C1
C2; V Bloco
F C2
... V F C2
Cn ; ... V
ate <condição>;
<condição
Cn ...

<condição>
Cn
até <condição>
V
V V

(3) Para_faça.- Nesta estrutura o bloco é repetido a partir do valor inicial da variável de controle até o
valor final desta.
Pseudo-Código Fluxograma
ma
Para var vari ate varf passo 1
faça Pseudo-Cód
Var  vari ate varf

C1;
C2; C1
...
Cn ; C2
...
Fim_para.
Cn
CONCEITOS BÁSICOS – continuação – ALGORITMOS – PROGRAMAS.

Programa.- É um conjunto de instruções / comandos que são executados em forma ordenada pelo
computador utilizando-se de uma linguagem de programação. Linguagem de Programação podem ser
classificados como de baixo nível e alto nível.

Linguagem de Programação de Baixo Nível.- Programas são escritos utilizando-se de instruções e/ou
comandos em forma codificada e o computador “entende” estas instruções. Popularmente diz-se que
este tipo de linguagem de programação está mais perto do computador. Exemplo é a linguagem de
programação ASSEMBLY.

Linguagens de Programação de Alto Nível.- Programas são escritos utilizando-se de instruções /


comandos geralmente escritos em inglês de acordo com a sintaxe de escrita de uma linguagem de
programação. Popularmente são ditos que estes programas estão mais perto do usuário. Para que estes
programas, escritos em linguagem de alto nível, possam ser executados devem passar pelas seguintes
fases: algoritmo, codificação do algoritmo (programa fonte), compilação (programa fonte é compilado,
isto é, deve-se usar um compilador que traduz o programa fonte para a linguagem de máquina desde
que o programa não tenha erro de sintaxe, caso haja erro, deve ser corrigido o(s) erro(s) de sintaxe e
compilar de novo até que não haja erro - gera-se um programa objeto), linkadição (ligação – nesta fase
são carregados as bibliotecas do compilador – gera-se o programa executável), execução (programa
executável mais dados gera-se resultados do programa). Exemplos de linguagem de alto nível:
FORTRAN, PASCAL, COBOL, entre outros.

Basicamente o que os programas fazem são combinações das seguintes operações:


Saída – Programas mostram ao usuário instruções ou resultados, na tela ou em outro periférico de
saída. Podem também fazer algum tipo de formatação ou desenho na tela.
Entrada – Programas efetuam leituras de dados (um número, um texto, uma tecla), normalmente
digitados pelo usuário. Após lido, um dado é guardado na memória para que possa ser usado depois.
Decisões – Diante de alternativas, os programas tomam decisões: o aluno passou? O número lido é
válido, ou seja, está dentro de uma faixa de valores esperada? Qual opção do menu deve ser executada?
Repetição – Por vezes os programas repetem algo que fizeram anteriormente, só parando quando
alguma condição for atingida. Em um menu, por exemplo, o programa só deve parar quando for
digitada a opção que indica o término.
Cálculos e outras computações – algumas coisas que um programa faz podem não estar visíveis. Por
exemplo, em um programa que calcule raízes de equações do segundo grau, na tela vão aparecer
mensagens pedindo para informar os coeficientes da equação e para mostrar os resultados, mas o
cálculo feito não é indicado.
CONSTANTES
Uma constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a
execução de um programa. Uma constante pode ser um número, um valor lógico ou uma seqüência de
caracteres quaisquer com algum significado.

Uma constante classifica-se como, numérica, lógica ou literal.

Constante numérica. – Pode ser um número com ou sem parte fracionária.


Exemplos:
25 3,14 7,8x103 -15 0,342 -2.726 -2,5x103 2,5x10-3 -106
Constante Lógica.- É um valor lógico que só pode ser falso ou verdadeiro usados em proposições
lógicas.
Exemplos:
FALSO VERDADEIRO

Constante literal.- Pode ser qualquer seqüência de caracteres (letras, números ou símbolos especiais)
colocada entre aspas para que não seja confundida com outro item qualquer.

Exemplos:
´JOSE DA SILA´ ´12345´ ´X1Y2W3´ ´*A!B?-´ ´04/12/2008´ ´MENSAGEM´

VARIÁVEIS
Sabe-se da matemática que uma variável é a representação simbólica dos elementos de um certo
conjunto. No algoritmo / programa a cada variável corresponde uma posição de memória, cujo
conteúdo pode variar ao longo do tempo durante a execução de um programa. Mesmo que uma
variável possa assumir diferentes valores ela só pode armazenar um valor a cada instante.

Toda variável é identificada por um nome ou identificador (identificador: formado por um ou mais
caracteres, sendo que o primeiro caractere deve ser uma letra e os caracteres seguintes letras ou dígitos
não sendo permitido o uso de símbolos especiais).. Por exemplo, em um algoritmo para o cálculo das
raízes de uma equação de 2º grau (Ax2 + Bx + C = 0), as variáveis/identificadores representarão as
posições de memória que armazenam os coeficientes da equação. As variáveis só podem armazenar
valores de um mesmo tipo e classificam-se em numéricas, lógicas e literais/caracteres (declaração de
variáveis). Palavras chaves não podem ser utilizadas para declararem variáveis (identificadores).
Palavras chaves têm um significado próprio.

DECLARE lista-de-identificadores: nome-do-tipo


Exemplo:
DECLARE NOTA, CODIGO, X5: numérico
TESTE, SIM: lógico
NOME, END1, END2: caractere

COMENTARIOS
São textos ou simplesmente frases, que aparece limitado por chaves, com o intuito de explicar ou
definir o significado de cada variável utilizada no algoritmo/programa.
Exemplo:
DECLARE MAT, {número de matricula do aluno}
NOTA, {total de pontos obtidos no semestre letivo}
COD {codigo do curso}
: numérico
NOME, {nome completo do aluno}
END, {endereço do aluno}
C {conceito final}
: caractere

EXPRESSOES LÓGICAS, RELACIONAIS e ARITMÉTICAS

Expressão lógica foi definida anteriormente como uma combinação de operando lógicos com
operadores lógicos, avaliada esta expressão tem-se como resultado VERDADEIRO ou FALSO.
Operandos lógicos.- Podem ser outras expressões lógicas, variáveis e/ou constantes lógicas,
expressões relacionais e expressões aritméticas.
Operadores Lógicos: negação (não), conjunção (e) disjunção (ou).
Exemplos de expressões lógicas: (A >B) e (C < D) SWITCH FALSO
(X <= Y) ou (W <= Y) e (A + B) = (C + D)
Complementado define-se expressão relacional como uma combinação de operandos relacionais com
operadores relacionais, quando avaliada uma expressão relacional tem-se como resultado o valor de
VERDADEIRA ou FALSA.

Operandos relacionais.- Podem ser outras expressões relacionais, variáveis e/ou constante e
expressões aritméticas.
Operadores Lógicos.- São = IGUAL, ≠ DIFERENTE, > MAIOR, < MENOR, >= MAIOR OU
IGUAL, <= MENOR OU IGUAL.
Exemplos de expressões relacionais:
A>B X <= Y (A+B) >= (B-C) 5 = (C+D) S>0

Expressão aritmética.- é uma combinação de operandos aritméticos com operadores aritméticos


quando avaliados seu resultado é um valor numérico.

Operandos aritméticos.- variável e/ou constante numérica, outras expressões aritméticas, funções
aritméticas.
Operadores aritméticos.- São: ADIÇÃO + SUBTRAÇÃO - DIVISÃO /
MULTIPLICAÇÃO x EXPONENCIAÇÃO XY RADICIAÇÃO X
Funções geométricas: como Seno, Coseno, e outras.
Exemplos de expressões aritméticas: A+B C–D ExF/G 2xNOTA
TOTAL/N AxB+C LOG (A) SEN(X) COS(Y)

PRIORIDADES DAS OPERAÇÕES

Prioridad Aritmético Lógico Prioridade de


e Operador
1º Expressões entre parênteses, funções Expressões ( ) Aritmético
2º Potenciação, radiciação (esquerda para direita) Negação Relacional
3º Multiplicação, divisão(esquerda para direita) Conjunção Não
4º Adição, substração(esquerda para direita) Disjunção E
5º Ou

EXERCÍCIOS

VARIÁVEIS RELAÇÕES
X Y Z COR NOME X2 + Y > Z COR = ´AZUL´ NOME <> ´JOSE´
1 2 5 ´AZUL´ ´PAULO´ Falso Verdadeiro Verdadeiro
4 3 2 ´VERDE´ ´JOSE´ Verdadeiro Falso Falso
1 1 2 ´BRANCO´ ´PEDRO´ Falso Falso Verdadeiro
1 2 1 ´AZUL´ ´JOSE´ Verdadeiro Verdadeiro Falso
LEMBRETE

P Q P ∧Q P ∨Q ¬P
V V V V F
V F F V F
F F F V V
F F F F V

COMANDO DE ATRIBUIÇÃO

Este comando permite que se forneça um valor a certa variável, onde o valor atribuído deve ser
compatível, do mesmo tipo, com a variável na qual está sendo armazenado.

Variável/identificador  expressão
Variável/identificador: nome da variável à qual está sendo atribuído o valor
 : é o símbolo de atribuição
expressão : pode ser uma expressão aritmética, expressão lógica ou expressão literal de
cuja avaliação é obtido o valor a ser atribuído à variável.

Variável/identificador  expressão

Exemplo
K  1
COR  ´VERDE´
TESTE  FALSO
A  B
MEDIA  SOMA / N
COD  N2 + 1 >= 5
SIM  X = 0 e Y <> 2

COMANDOS DE ENTRADA e SAÍDA

Unidades/dispositivos de ENTRADA e SAÍDA possibilitam a comunicação entre o usuário e o


computador. Um comando de entrada:

LER lista-de-variáveis/identificadores
LER: é uma palavra chave
lista-de-variáveis/identificadores: são os nomes das variáveis, separados por vírgula, nas
quais serão armazenados os valores provenientes do
dispositivo de entrada.

LER (lista-de-variáveis/identificadores)

Exemplo
LER (NOTA, NUM)
LER (PESO, ALTURA)
ESCREVER lista-de-variáveis/identificadores
ESCREVER: é uma palavra chave
lista-de-variáveis/identificadores: são os nomes das variáveis, separados por vírgula, cujos
conteúdos serão mostrados aos usuários através de um
dispositivo de saída.

ESCREVER (lista-de-variáveis/identificadores)

Exemplo
ESCREVER (NOTA, NUM)
ESCREVER (PESO, ALTURA)

Variáveis
Variáveis armazenam valores, e são o mecanismo de uso da memória. Você só precisa informar o nome de
cada uma e o tipo de dado; o compilador cuida do gerenciamento da memória. Pode-se fazer o seguinte com
variáveis:
Declarar: na seção var informe o nome das variáveis que o programa vai precisar e o tipo de dado que cada
uma vai armazenar. O nome de uma variável deve seguir as mesmas regras que você viu para nomes de
programas: começar com uma letra, seguida de letras, dígitos ou barra de sublinhado. Não podem, da
mesma forma, ser usadas palavras reservadas
Atribuir: com o sinal  você guarda um valor diretamente na variável. O nome da variável sempre aparece
à esquerda, e a direita pode ter qualquer expressão cujo resultado possa ser armazenado na variável.
Recuperar o valor: onde for preciso usar o valor da variável, basta inserir o nome dela.
Ler um valor do teclado: com a instrução LER pode-se ler algo digitado do teclado, sendo o valor lido
guardado na variável indicada entre parênteses.
Variáveis armazenam somente um valor de cada vez. A cada atribuição ou leitura, o valor anterior é
perdido.
Escrever um valor para um dispostivo de saída, monitor, ESCREVER
PRIMEIRO ALGORITMO – utilizando ESTRUTURA DE SEQUENCIA.
ENUNCIADO do problema encontrar a média aritmética de quatro notas (provas).

PSEUDO-CÓDIGO
INICIO.
DECLARE P1, PE, P3, P4: numéricos {Definindo as variáveis a serem utilizadas no algoritmo}
{ P1, ..P4: Variáveis de entrada armazena os valores das notas}
MF: numérico { MF: variável de saída, armazena a media final}

LER P1 {Entrada do valor da variável P1 via teclado}


LER P2
LER P3
LER P4
MF  (P1 + P2 + P3 + P4) / 4 {Soma-se as quarto notas e divide-se por 4 e este valor é
atribuído a variável MF}
ESCREVER P1, P2, P3, P4 , MF {Mostra-se os valores das notas e da média final MF.}
FIM.

EXERCÍCIO
Identifique os dados de entrada, processamento e saída no algoritmo abaixo
 Receba código da peça ➢Receba valor da peça
 Receba Quantidade de peças
 Calcule o valor total da peça (Quantidade * Valor da peça)
 Mostre o código da peça e seu valor total

ALGORTIMO
INICIO.
DECLARE CODIGO_PECA, VALOR_PECA, QTDE_PECAS, VALOR_TOTAL_PECA: numéricos;
LER (CODIGO_PECA)
LER (VALOR_PECA)
LER (QTDE_PECAS)
VALOR_TOTAL_PECA  QTDE_PECAS * VALOR_PECA
ESCREVER (CODIGO_PECA, VALOR_TOTAL_PECA)
FIM.

EXEMPLO: ALGORTIMO USANDO ESTRUTURA DE SELEÇÃO


INICIO.
declare A,B,X,Y: numérico
leia (A,B)
SE ( A = B) Se a condição A = B for VERDADEIRA faz-
ENTÃO se o Bloco I e a seqüência lógica do algoritmo
X ← 1.5 V Bloco I continua após o FIM-SE, isto é,
Y ← 2.5 Mostrará-se o valor de X e Y
SENÃO
X ← -1.5 F Bloco II Se a condição A = B for FALSA faz-se o
Y ← -2.5 Bloco II e a seqüência lógica do algoritmo
continua após o FIM-SE, isto é,
FIM-SE
Mostrará-se o valor de X e Y
escreva (X,Y)
FIM.
<CONDIÇÃO> É uma expressão lógica.

Expressão lógica é uma combinação de operandos lógicos com operadores lógicos, resultado de
avaliar a expressão lógica ou a é expressão é VERDADEIRA ou é FALSA.
Operando lógicos: são outras expressões lógicas, expressão relacional e/ou uma expressão aritmética,
constante lógica e variável lógica.
Operadores lógicos são: conjunção (ou, união), disjunção (e, interseção) e não (negação) existem
outros operadores lógicos que não serão abordados nesta disciplina.

(A = B) e (B + C < 0) ou (K <= 2) not(TOTAL >= 2) e (A <> B) ou TESTE

(1) (2) (3) (4) (5) (6)


Operador Operador Operador Operador Operador
Lógico Lógico Lógico Lógico Lógico

(1), (2),...(5) e (6) são operandos lógicos(expressões relacionais)

(A + 1 >= SqRt(B)) ou (NOME <> ‘ANA’)

Operando Lógico Operador Lógico Operando Lógico

Variável Lógica OPERADOR ou ∨ OPERADOR e ∧ OPERADOR não ¬ Número de


(Conjunção) (Disjunção) (Negação) combinações a
serem utilizadas na
P Q P ∨Q P ∧Q ¬P ¬Q
tabela é 2n, onde n é
V F V V F V o número de
V F V F F V variáveis, 22 = 4
F V V F V F
F V F F V F

ITERAÇÃO COM CONDIÇÃO NO INICIO (ENQUANTO_FAÇA)

Calcular: X = A*A e Y= Y+X A ESTRUTURA LÓGICA de Iteração TESTE DE


CONDIÇÃO NO INICIO DO BLOCO
ALGORITMO ENQUANTO_FAÇA primeiro verifica a condição,
INICIO. se for VERDADEIRA, faz-se o Bloco de passos até
FIM-ENQUANTO e repete-se este procedimento até
declare A,X,Y: numérico que a condição seja FALSA.
leia A
Y←0 Lembre-se que os valores da condição lógica devem
ENQUANTO ( A > 0 ) ser conhecidos, neste caso, deve-se ler primeiro o
FAÇA valor da variável A antes de iniciar a estrutura
X←A*A V ENQUANTO_FAÇA e este valor deve ser mudado
BLOCO
Y←Y+X dentro do bloco, neste caso, deve-se ler A ou atribuir
escreva X,Y algum valor a esta variável.
leia A Se a condição for FALSA não se faz o Bloco e a
FIM-ENQUANTO seqüência lógica do algoritmo continua após
FIM_ENQUANTO, neste caso, é mostrado os
FIM. valores de X e Y.
ITERAÇÃO COM CONDIÇÃO NO FIM (REPITA_ATE)

ALGORITMO Na estrutura lógica de iteração TESTE DE CONDIÇÃO


INICIO. NO FIM DO BLOCO ( REPITA_ATE),
REPITA_ATE), a condição é
testada após ter sido realizado pelo menos uma vez o
declare A,X,Y: numérico BLOCO de iteração.
leia A
Y←0 O Bloco de passos é realizado se a condição for FALSA
REPITA e repete-se o procedimento até que a condição de teste
seja VERDADEIRA.
X←A*A F BLOCO
Y←Y+X No exemplo, calcula-se primeiro os valores de X e Y e
escreva X,Y mostram-se os valores destas variáveis, se lê outro valor
leia A de A e verifica-se a condição (A < 0) se for FALSA faz-
se o BLOCO e repete-se o procedimento ate que a
ATE QUE (A < 0) condição for VERDADEIRA deixa-se de fazer o bloco e
o programa termina.
FIM.

ITERAÇÃO COM CONDIÇÃO FINITA (PARA_FAÇA)

ALGORITMO Para var


var vari ate varf passo 1 faça
INICIO. Nesta estrutura lógica de iteração com CONDIÇÃO
FINITA (PARA_FAÇA) o bloco é repetido a partir do
declare A,X,Y, VAR_C: numérico valor inicial da variável de controle var até o valor final
Y←0 desta, com incremento unitário (PASSO 1, por default não
é colocado, assume-se o valor de 1. A variável de controle
PARA VAR_C  1 ATE 100 PASSO 1 pode ser decrementada, neste caso seria PASSO -1 ou um
FAÇA outro valor, o valor inicial vari deve ser maior que o valor
final varf)
leia A
X←A*A BLOCO No exemplo, o vari é 1 e o varf 100 e incremento unitário,
Y←Y+X o bloco é repetido 100 vezes, um teste interno é feito,
escreva X,Y inicialmente a variável var começa em 1 e antes de
executar mais uma vez o BLOCO este valor é
incrementado em 1 verifica-se se é menor igual a 100, se
FIM_PARA
for VERDADEIRA o BLOCO é repetido mais uma vez,
SE FOR FALSO termina de ser executado a estrutura
FIM. PARA.

Você também pode gostar