Buscar

Relembrando Algoritmos

Prévia do material em texto

1ºAula
Relembrando Algoritmos
Objetivos de aprendizagem
Ao término desta aula, vocês serão capazes de: 
• relembrar o conceito de algoritmos;
• relembrar conceitos importantes na matéria, como sintaxe básica, estruturas de repetição, estruturas de condição, vetores 
e matrizes.
Prezados(as) alunos(as), estamos iniciando a disciplina de “Algoritmos 
II”. Nesta disciplina, vocês vão ver tópicos avançados de programação, 
como: registros, modularização e arquivos. No final da matéria, vocês verão 
alguns algoritmos de ordenação, para fecharmos a matéria.
Mas antes de iniciarmos, vamos relembrar o que vimos em “Algoritmos 
I”, pois o conteúdo vai ser usado em nossa disciplina.
Assim, leiam atentamente essa aula. Se achar necessário, façam uma 
revisão do conteúdo. E sempre que necessário, utilizem o “quadro de 
avisos” e o “fórum” para sanar as suas dúvidas.
E lembrem-se, você é o protagonista da sua aprendizagem. Boa aula!
Vamos lá?
Bons estudos!
6Algoritmos II
Seções de estudo
1 - Introdução e estruturas básicas
1 - Introdução e estruturas básicas
2 - Comandos básicos
3 - Estruturas Condicionais e de Repetição
4 - Vetores e Matrizes
Antes de relembrarmos como escrevemos algoritmos, 
vamos relembrar o que é um algoritmo. Na disciplina anterior, 
vimos que Guimarães e Lages definem algoritmo como: “[...] 
descrição de um padrão de comportamento, expressão em 
termos de um repertório bem definido e finito de ações 
primitivas, das quais damos por certo que elas podem ser 
executadas” (GUIMARÃES; LAGES, 1994, p. 4).
Farrer et. al. (1999, p. 14) descreve Algoritmo como: 
“um conjunto de comandos que, obedecidos, resultam numa 
sucessão finita de ações.”
Assim, Algoritmo é uma série de passos que são 
executados para chegarmos a uma solução. Uma receita de 
bolo é um grande exemplo disso.
Na computação, escrevemos algoritmos para ordenarmos 
ao computador o que deve ser feito. Para isso, usamos uma 
sintaxe bem definida para que a máquina entenda o que 
queremos.
Nesta aula, vamos relembrar a sintaxe do PORTUGOL 
(adaptado ao programa Visualg) que é usada para construção 
de algoritmos.
1.1 - Tipos de dados
Um algoritmo processa dados. Um algoritmo escrito em 
Portugol reconhece os seguintes tipos de dados.
• Inteiros: Representa números inteiros, que não possui 
parte fracionada. Por exemplo: 2, -6, 999. Nos algoritmos, 
declaramos com a palavra inteiro.
• Reais: Representa números reais, com parte 
fracionária. Ex: 3, 9.6, -90.2. É declarado através da palavra 
real.
• Caracteres: É uma sequência de letras, números 
e símbolos, que é declarada entre aspas (“”). É usado para 
armazenar textos. Declarado através da palavra caractere.
• Lógico: Representa valores verdadeiro ou falso. 
Declarado através da palavra logico.
1.2 - Operadores
Podemos considerar um algoritmo como uma sequência 
de instruções. Em cada instrução, podemos ter expressões. 
Por sua vez, as expressões são formadas por operadores. São 
avaliadas da esquerda para a direita, da mesma forma que 
lemos um texto. Porém, existe uma ordem de precedência, 
que indica quais expressões serão avaliadas primeiro. Vejamos:
• expressões dentro de parênteses e funções;
• operador unário menos ou negação;
• operadores aritméticos de divisão e multiplicação;
• operadores aritméticos de subtração e soma;
• operadores relacionais;
• operadores lógicos.
Há três tipos de operadores, que são:
Operadores aritméticos: São usados para operações 
matemáticas a serem realizadas, para obter resultados 
numéricos.
Quadro 1 - Operadores Aritméticos.
Operadores relacionais: São usados para testar uma 
relação entre os elementos. Se houver, a expressão retorna 
verdadeiro, caso contrário, a expressão retorna falso.
Quadro 2 - Operadores Relacionais.
Operadores lógicos: São usados para combinar 
expressões relacionais, compondo expressões mais sofisticadas.
Quadro 3 - Operadores Lógicos.
1.3 - Palavras reservadas
São palavras que a linguagem utiliza para compor um 
algoritmo, assim, já tem um sentido definido. O usuário 
não pode usar essas palavras para nomear variáveis ou para 
estabelecer outro sentido.
Quadro 4 - Palavras reservadas.
1.4 - Estrutura básica de um 
algoritmo
Um algoritmo possui a seguinte estrutura básica:
algoritmo “Nome do Programa” //Entre aspas você nomeia o 
algoritmo
// isto é um comentário
// abaixo você faz a declaração das variáveis do algoritmo
var
 var01 : inteiro
 var02 : logico
7
 var03 : real
 // (...)
inicio // comeca a declaração das instruções do algoritmo
 <comando1>
 <comando2>
fimalgoritmo
1.5 - Variáveis
O conceito de variável é um dos conceitos mais 
importantes em algoritmos, pois por meio dele armazenamos 
dados a serem salvos para serem processados em um algoritmo.
Cada variável tem um nome para sua identificação. E esse 
nome deve obedecer às seguintes regras:
• deve ser iniciado por uma letra ou pelo sinal de 
sublinhado (underline);
• a partir da segunda letra, podemos usar letras e 
números;
• com exceção do sinal de sublinhado, outros símbolos 
são proibidos em nomes de variáveis;
• não podem ter nomes iguais as palavras reservadas da 
sintaxe do PORTUGOL.
As variáveis são declaradas em um algoritmo no bloco 
var, antes da declaração dos comandos do algoritmo. Em cada 
linha do bloco var, colocamos o nome da variável, depois 
escrevemos o sinal de dois-pontos (:) e depois colocamos o 
tipo dessa variável (inteiro, real, logico, caractere).
Agora que vocês relembram as definições elementares de 
um algoritmo, vamos relembrar os comandos básicos.
2 - Comandos básicos 3 - Estruturas Condicionais e de 
Repetição
Um algoritmo possui comandos básicos. Vamos 
relembrar?
2.1 - Atribuição
Para colocarmos dados em uma variável, usamos o 
comando de atribuição. O identificador fica no lado esquerdo 
da expressão. O valor ou a expressão que computará o valor 
a ser atribuído fica no lado direito da expressão. Eles são 
separados pelo sinal de atribuição (<-).
X <- 9
2.2 - Expressões
Para calcular valores, usamos expressões. Essas expressões 
usam valores, variáveis e operadores. Seu resultado pode ser 
salvo em uma variável.
SOMA <- x + 9
POTENCIA <- I ** 2
2.3 - Comentários
Vocês podem deixar mais claro seu código explicando 
o que esse programa faz. Para isso, existem os comentários. 
Durante a execução, o computador vai descartar tudo o que 
você escrever em um comentário.
Para escrevermos comentários, usamos as chaves para 
delimitar o início e o fim de um comentário ou usamos as duas 
barras para declarar que o restante da linha é um comentário. 
X <- 9 // atribui o valor 9 a variável X
2.4 - Comando de leitura
Outra forma de definir valores em uma variável é usar o 
comando leia. Esse comando permite que o programa espere 
o usuário informar os valores para uma variável.
Sua sintaxe é definida da seguinte forma:
leia(<variaveis>)
Onde <variaveis> é uma lista de variáveis que devem ter 
seus valores indicados pelo usuário. As variáveis são separadas 
por vírgulas.
Exemplos:
leia(X)
leia(X, X1)
2.5 Comando de escrita
Para que o algoritmo possa apresentar dados ao usuário, 
usamos o comando escreva. Sua sintaxe é semelhante ao 
comando leia, mas além de aceitar variáveis, o comando 
escreva aceita caracteres.
Exemplos:
escreva(X)
escreva(“Valor de X=”, X)
Há o comando escreval, onde depois de escrever todos os 
dados especificados, ele pula uma linha na exibição.
Agora, vamos rever as estruturas condicionais e de 
repetição, que são também importantes em algoritmos.
3.1 - Estruturas Condicionais
As estruturas condicionais permitem ao programador 
definir comandos que serão executados em determinadas 
condições. As condições são expressas por meio de valores, 
variáveis, operadores relacionaise operadores lógicos. 
As estruturas condicionais são expressas da seguinte 
forma:
se <condição> entao
 //comandos caso resultado da condição seja verdadeira
senao //opcional
 //comandos caso o resultado da condição seja falsa
fimse
Vamos a um exemplo:
se media >= 7.0 entao
 escreva(“Aprovado!”)
senao
 escreva(“Reprovado!”)
fimse
3.2 - Estruturas de Repetição
As estruturas de repetição permitem que o programador 
indique comandos que serão repetidos várias vezes. Em 
algoritmos, temos três tipos de estruturas de repetição, a saber:
8Algoritmos II
ENQUANTO...FAÇA: Executa uma sequência de 
comandos repetidas vezes, enquanto que uma condição 
especificada seja verdadeira. Quando o algoritmo entra nesse 
loop, a condição especificada é testada. Caso a condição seja 
falsa, nenhuma interação é executada.
Caso a condição estabelecida seja verdadeira, todos os 
comandos que estão nesse bloco são executados. Ao final 
da execução, o fluxo retorna ao teste da condição. Se o teste 
passar, os comandos são executados mais uma vez, caso 
contrário, a execução do laço é encerrada.
Vejamos um exemplo:
x <- 0
enquanto x < 10 faca
escreva(x)
x <- x + 1
fimenquanto
REPITA...ATÉ: Semelhante ao laço enquanto, possui 
duas diferenças sutis. Ela executa todos os comandos dessa 
estrutura no mínimo uma vez, testando apenas no final da 
execução das instruções. Além disso, ela repete as instruções 
até que a condição seja verdadeira. Observe este exemplo:
repita
escreval(“Entre com um valor menor que 100: ”)
leia(x)
ate x < 100
PARA...ATÉ...FAÇA: Ao contrário dos dois loops 
apresentados, essa estrutura repete a sua execução sempre um 
número determinado de vezes (o que não ocorre usualmente 
em um laço enquanto). Nesse laço é usada uma variável 
contadora, onde tem um valor inicial, um valor a ser somado 
a cada iteração (o incremento, definido na cláusula passo) e 
o valor que o contador tem que chegar para que o laço seja 
interrompido. O incremento é realizado automaticamente 
pelo laço.
para i de 1 ate 10 passo 1 faca
escreva(i)
fimpara
Para finalizarmos, relembraremos agora como 
funcionam vetores e matrizes.
4 - Vetores e Matrizes
Uma variável pode armazenar, de uma só vez, um 
conjunto de dados do mesmo tipo. A estas variáveis damos o 
nome de vetores e matrizes.
Para declararmos um vetor:
<identificador> : vetor [<inicial>..<final>] de <tipo>
Onde:
● <identificador> é o nome do vetor;
● <inicial> e <final> são os números das posições 
inicial e final desse vetor;
● <tipo> é o tipo de dados desse vetor.
 Exemplo: idades : vetor[1..20] de inteiro
Para declararmos uma matriz, usamos a seguinte notação:
<identificador> : vetor [<inicial>..<final>, <inicial2>..<inicial2>] de 
<tipo>
Onde:
● <identificador> é o nome da matriz;
● <inicial> e <final> são os números das posições inicial 
e final das linhas da matriz;
● <inicial2> e <final2> são os números das posições 
inicial e final das colunas da matriz;
● <tipo> é o tipo de dados dessa matriz.
 Exemplo: mat: vetor[1..20, 1..10] de inteiro
Para acessarmos um elemento de um vetor ou de uma 
matriz, indicamos a posição do elemento na expressão. 
Vejamos alguns exemplos:
idade[5] <- 30
soma <- mat[6][4]
Assim, encerramos a nossa revisão. Na próxima aula, para 
iniciarmos os nossos estudos, estudaremos os registros.
Retomando a aula
Chegamos ao final da nossa revisão. Vamos recordar os 
principais pontos?
1- Introdução e estruturas básicas
Relembramos, nessa seção, que o algoritmo é uma 
sequência de passos que deve ser executada para chegarmos 
a uma solução. Vocês relembraram aqui as definições 
elementares, como os operadores, as variáveis e a estrutura 
básica de um algoritmo em Portugol.
2 - Comandos básicos
Nessa seção, você recordou dos comandos leia e escreva, 
lembramos também como criar comentários para deixar seu 
código mais legível, e como são escritas as expressões e as 
atribuições em um algoritmo.
3 - Estruturas Condicionais e de Repetição
Relembramos aqui estruturas poderosas para os 
algoritmos, que permitem aos programas “tomar decisões” 
diante de um contexto ou repetir operações com poucas linhas 
de código.
4 - Vetores e Matrizes
Você revisou como funciona a declaração e o uso de 
vetores e matrizes, que permitem que você salve um conjunto 
de dados em uma variável.
GUIMARÃES, Ângelo de Moura; LAGES, Newton 
Alberto de Castilho. Algoritmos e Estrutura de Dados. Rio de 
Janeiro: LTC, 1994;
Vale a pena
Vale a pena ler
9
MANZANO, José Augusto N. G.; OLIVEIRA, Jayr 
Figueiredo de Oliveira. Algoritmos - lógica para desenvolvimento de 
programação. 2. ed. São Paulo: Érica, 2014.
VENANCIO, Claudio Ferreira. Desenvolvimento de 
Algoritmos: Uma Nova Abordagem. São Paulo: Érica, 2000.
FARRER, Harry; et. al. Algoritmos Estruturados. 3. ed. São 
Paulo: LTC, 1999.
Minhas anotações

Continue navegando