l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Algoritmos e Estruturas de Dados
Introdu¸c˜ao
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br>
V´ıdeoaulas, exemplos e exerc´ıcios em linguagem C, acesse
www.mathgraph.com.br
26 de fevereiro de 2016
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Sum´ario
1 Introdu¸c˜ao
2 Estrutura Sequencial
3 Estrutura Condicional
se... ent˜ao
se ... sen˜ao ...
4 Estruturas de Repeti¸c˜ao
enquanto... fa¸ca
para... at´e... fa¸ca
repita... at´e...
5 Estruturas Homogˆeneas de Dados
Vetor
Matriz
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
2/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Algoritmos computacionais
Defini¸c˜ao
Segundo Cormem (2001) um algoritmo computacional pode ser
entendido como“... qualquer procedimento computacional bem
definido que toma algum valor ou conjunto de valores como
entrada e produz algum valor ou conjunto de valores como sa´ıda.
Portanto, um algoritmo ´e uma sequˆencia de passos computacionais
que transformam a entrada na sa´ıda”.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
3/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Algoritmos computacionais
Outras defini¸c˜oes
• ”Algoritmo ´e uma sequˆencia de passos que visa atingir um
objetivo bem definido”(FORBELLONE, 1999)
• “Algoritmo ´e a descri¸c˜ao de uma seq¨uˆencia de passos que
dever ser seguida para a realiza¸c˜ao de uma tarefa”
(ASCENCIO, 2007)
• “Algoritmo ´e uma sequˆencia finita de instru¸c˜oes ou opera¸c˜oes
cuja execu¸c˜ao, em tempo finito, resolve um problema
computacional, qualquer que seja sua instˆancia”(SALVETTI,
1999)
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
4/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Algoritmos computacionais
Outras defini¸c˜oes
• “Algoritmo s˜ao regras formais para a obten¸c˜ao de um
resultado ou da solu¸c˜ao de um problema, englobando
f´ormulas de express˜oes aritm´eticas”(MANZANO, 1997)
• “A¸c˜ao ´e um acontecimento que, a partir de um estado inicial,
ap´os um per´ıodo de tempo finito, produz um estado final
previs´ıvel e bem-definido. Portanto, um algoritmo ´e a
descri¸c˜ao de um conjunto de comandos que, obedecidos,
resultam numa sucess˜ao finita de a¸c˜oes”(FARRER, 1999)
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
5/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Algoritmos computacionais
Continua¸c˜ao
Um algoritmo ´e como uma“receita de bolo”para o computador,
onde est˜ao definidos todos os comandos que ele deve executar p
ara se chegar a um resultado. Da´ı, temos que, o algoritmo ´e uma
sequˆencia de instru¸c˜oes, onde cada instru¸c˜ao representa uma
A¸C˜AO que deve ser entendida e realizada. Em algoritmos
computacionais, o computador possui um conjunto limitado de
instru¸c˜oes e o algoritmo deve ser expresso nos termos destas
instru¸c˜oes. O computador utiliza dois conceitos b´asicos para
construir e interpretar algoritmos, s˜ao eles:
• Estruturas de Dados → para manipula¸c˜ao das informa¸c˜oes
• Estruturas de Controle → para manipula¸c˜ao das a¸c˜oes
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
6/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Tipos de Algoritmos
Descri¸c˜ao Narrativa
A descri¸c˜ao narrativa consiste em analisar o enunciado do
problema e escrever, utilizando um linguagem natural (por
exemplo, a l´ıngua portuguesa), os passos a serem seguidos para
resolu¸c˜ao do problema (semelhante a escrever uma receita).
• Vantagem: N˜ao ´e necess´ario aprender nenhum conceito novo,
pois uma l´ıngua natural j´a ´e bem conhecida.
• Desvantagem: A linguagem natural (n˜ao padronizada e
informal) abre espa¸co para v´arias interpreta¸c˜oes. Ser´a mais
dif´ıcil estrutur´a-la e transcrever este algoritmo para uma
linguagem de programa¸c˜ao.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
7/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Tipos de Algoritmos
Fluxograma
Analisar o enunciado do problema e escrever, utilizando s´ımbolos
gr´aficos pr´e-definidos, os passos a serem seguidos para a resolu¸c˜ao
do problema.
• Vantagem: Vis˜ao geral do fluxo de processamento.
• Desvantagem: ´E necess´ario aprender a simbologia dos
fluxogramas e, al´em disso o algoritmo resultante n˜ao
apresenta muitos detalhes, dificultando sua transcri¸c˜ao para
uma linguagem de programa¸c˜ao.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
8/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Tipos de Algoritmos
Fluxograma
Os s´ımbolos utilizados para representar o uso em fluxograma
podem variar dependendo do autor. A seguir ´e apresentada a lista
de s´ımbolos a ser utilizada nas aulas deste curso.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
9/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Tipos de Algoritmos
Pseudoc´odigo
Consiste em analisar o enunciado do problema e escrever, por meio
de regras predefinidas, os passos a serem seguidos para a resolu¸c˜ao
do problema.
• Vantagem: A passagem (transcri¸c˜ao) do algoritmo para uma
linguagem de programa¸c˜ao ´e quase imediata, bastando
conhecer as regras e palavras reservadas da linguagem que
ser´a utilizada.
• Desvantagem: ´E necess´ario aprender as regras para se
escrever um algoritmo corretamente.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
10/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Estruturas de Dados
Defini¸c˜ao
Uma estrutura de dados ´e um meio para armazenar e organizar
dados com o objetivo de facilitar o acesso e as modifica¸c˜oes.
Nenhuma estrutura de dados ´unica funciona bem para todos os
prop´ositos, e assim ´e importante conhecer os pontos fortes e as
limita¸c˜oes de v´arias delas (CORMEN, 2001)
As estruturas de dados representam as informa¸c˜oes do problema a
ser resolvido. Tais estruturas est˜ao organizadas em tipos distintos
de informa¸c˜oes. Dentro do escopo das estruturas de dados,
define-se os seguintes termos:
Constante, Vari´avel e Identificador.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
11/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Estruturas de Dados
Constantes
Representam valores constantes, ou seja, que n˜ao variam no
decorrer do algoritmo.
Exemplo 1:
Seja x = 2, efetuando as seguintes opera¸c˜oes:
y = x → y = 2
A = 3x + 5x → A = 3*(2) + 5 * 2 → A = 16
Exemplo 2:
Seja PI = 3,14, efetuando as seguintes opera¸c˜oes:
A = PI .*1 → A = 3,14
A = PI * 2 → A = 6,28
A = PI * 3 → A = 9,42
Nos exemplos 1 e 2, tanto o valor de x quanto PI n˜ao variam a
medida que as opera¸c˜oes s˜ao executadas.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
12/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Estruturas de Dados
Vari´aveis
Representam informa¸c˜oes cujos valores s˜ao modificados ao longo
do tempo.
Exemplo 1:
Deseja-se saber o sal´ario de um funcion´ario considerando que ele
recebe R$ 1.000, 00 por mˆes, supondo que teve um aumento de
20% e deve-se descontar 8% de INSS do novo sal´ario, qual ser´a o
sal´ario l´ıquido?
Resposta:
salario = 1.000
reajuste = salario * 0,2
salario = salario + reajuste
imposto = salario * 0,08
salario = salario - imposto
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
13/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Estruturas de Dados
Vari´aveis
Matematicamente, vari´avel ´e a representa¸c˜ao simb´olica dos
elementos de um certo conjunto. Computacionalmente, pode-se
definir vari´avel como um local reservado na mem´oria do
computador usado para armazenar dados.
Uma vari´avel possui nome (identificador) e tipo, possui apenas um
valor em um determinado instante, mas seu conte´udo pode variar
ao longo do tempo.
O conceito de vari´avel, em computa¸c˜ao, corresponde a posi¸c˜oes de
mem´oria RAM (Random Access Memory) onde s˜ao
armazenados os dados manipulados pelo programa quando este for
executado.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
14/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Estruturas de Dados
Identificador
Nome de um local onde se pode colocar qualquer valor do
conjunto de valores poss´ıveis de um tipo b´asico associado. Usado
para manipular os dados necess´arios no algoritmo.
O identificador ´e tamb´em usado para rotular valores constantes,
assim como o nome PI, utilizado no exemplo 2, em constantes (o
identificador PI foi utilizado para representar o valor constante
3,14).
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
15/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Estruturas de Dados
Regras para forma¸c˜ao de identificadores
1 Come¸car sempre o nome com uma letra ou o caractere
sublinhado“ ”;
2 N˜ao usar espa¸cos em branco, pontua¸c˜ao, acentos nem
caracteres especiais (@, #, ?, $, etc);
3 N˜ao usar palavras reservadas, ou seja, palavras que perten¸cam
a linguagem de programa¸c˜ao que estiver sendo usada (ex: if,
for, case, int, etc).
Importante: Um identificador deve representar o melhor poss´ıvel
o papel da vari´avel no algoritmo
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
16/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Estruturas de Dados
Identificadores v´alidos
1 nota, nota1, nota 1, operador, salario, nome, x, y,
enderecoResidencial,
2 aluno01, preco produto, Area, Tensao A, tensao B, media,
soma, S.
Identificadores inv´alidos
1 1K, nota 1, sal´ario, x@1, y%2, aluno 01, preco produto.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
17/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Tipos Primitivos de Dados
Num´ericos
1 Inteiros. Ex: ...-100... -2, -1, 0, 1, 2, ..., 100, ...
2 Reais. Ex: ... -100, ..., -50.2, ..., -2, ..., -1.5, ..., 0, ..., 1, ...,
2, ..., 25.12,
Literal
Caractere ou alfanum´ericos. Ex: “ESCOLA”,“livro”,“18”,
“R$ 55,36”, ...
L´ogicos ou booleanos
Assume um estado: verdadeiro (V) ou falso (F)
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
18/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Tipos Primitivos de Dados
Declara¸c˜ao
´E a cria¸c˜ao (ou defini¸c˜ao) do identificador da vari´avel (ou
constante) que ser´a utilizado no algoritmo. Esta vari´avel ser´a
utilizada para a manipula¸c˜ao de um determinado tipo de dado.
Formato
tipo do dados: identificador;
tipo do dado: identificador1, identificador2, . . . , identificadorn
1 Todas as vari´aveis utilizadas em algoritmos ser˜ao definidas no in´ıcio
do mesmo, por meio de um comando de uma das formas seguintes:
2 Em uma mesma linha podem ser denidas uma ou mais vari´aveis do
mesmo tipo, separando-se os nomes das mesmas por v´ırgulas.
3 Vari´aveis de tipos diferentes devem ser declaradas em linhas
diferentes.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
19/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Tipos Primitivos de Dados
Exemplos
inteiro: idade;
real: salario;
caracter: nome;
l´ogico: temFilhos;
No exemplo, foram declaradas quatro vari´aveis, sendo elas:
• Vari´avel nome: capaz de armazenar dados literais;
• Vari´avel idade: capaz de armazenar um n´umero inteiro;
• Vari´avel salario: capaz de armazenar um n´umero real;
• Vari´avel temFilhos: capaz de armazenar um valor l´ogico,
verdadeiro (V) ou falso (F).
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
20/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Comandos b´asico
Tabela: Comandos em pseudoc´odigo
Comando Fun¸c˜ao Exemplo
← atribui um valor a uma vari´avel x ← 2
leia
obter um valor informado externo
e atribuir a uma vari´avel
leia x;
escreva
mostrar algo, que pode ser uma
vari´avel, texto ou ambos
escreva x;
escreva ”mensagem de teste”;
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
21/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Estrutura Sequencial
Sobre a estrutura
Na estrutura sequencial os comandos s˜ao executados numa
sequˆencia pr´e-estabelecida. Cada comando ´e executado somente
ap´os o t´ermino do comando anterior.
Em pseudoc´odigos, a estrutura sequencial caracteriza-se por um
conjunto de comandos dispostos ordenadamente.
Formato
in´ıcio
tipo: vari´avel1, vari´avel2, . . . ; //declara¸c˜ao das vari´avieis
leia vari´avel1, vari´avel2; //dados de entrada
comandos/a¸c˜oes; //a¸c˜oes a serem executadas
escreva“Mensagem pr´e-determinada”, vari´avel; //dados de sa´ıda
fim.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
22/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Estruturas Condicional
Finalidade
Utilizada quando o problema apresenta alguma ou algumas
condi¸c˜oes. Em problemas que apresentam classifica¸c˜ao,
compara¸c˜ao, verifica¸c˜ao, restri¸c˜ao, e outras situa¸c˜oes que existam
condi¸c˜oes a serem observadas.
Classifica¸c˜ao:
1 Simples
2 Composta
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
23/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Condicional Simples
Pseudoc´odigo
se (condi¸c˜ao) ent˜ao
comandos/a¸c˜oes;
fimse;
Caracter´ısticas:
• A a¸c˜ao ser´a executada apenas se a condi¸c˜ao for verdadeira.
• A a¸c˜ao ou a¸c˜oes a serem executadas s˜ao escritas depois da
palavra ent˜ao e antes de fimse.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
24/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Condicional Composta
Pseudoc´odigo
se (condi¸c˜ao) ent˜ao
comando1;
sen˜ao
comando2;
fimse;
Funcionamento:
Se a condi¸c˜ao for verdadeira, ser´a executado o comando1; caso
contr´ario, se a condi¸c˜ao for falsa, ser´a executado o comando2.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
25/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Sele¸c˜ao de M´ultipla Escolha
Finalidade
Utilizada para simplificar a escrita de sele¸c˜oes encadeadas
se-sen˜ao-se.
Pseudoc´odigo
escolha X
V1: C1;
V2: C2;
. . .
Vn: Cn;
fimescolha;
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
26/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Estruturas de Repeti¸c˜ao
Finalidade
Permitem executar mais de uma vez (repetir) um determinado
trecho do algoritmo
• O trecho do algoritmo em repeti¸c˜ao ´e tamb´em chamado de
la¸co (ou“loop”)
• As repeti¸c˜oes devem ser sempre finitas
Quanto a quantidade de repeti¸c˜oes, os la¸cos podem ser
1 Pr´e-determinados: Sabe-se antes a quantidade de execu¸c˜oes
2 Indeterminados: N˜ao se conhece a quantidade de execu¸c˜oes
Quanto ao crit´erio de parada, os la¸cos podem utilizar
1 Vari´avel de controle
2 Teste no in´ıcio
3 Teste no final
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
27/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Estruturas de Repeti¸c˜ao
enquanto... fa¸ca
• La¸co que verifica antes de cada execu¸c˜ao, se ´e“permitido”
executar o trecho do algoritmo
• O la¸co acontece enquanto uma dada condi¸c˜ao permanecer
verdadeira
Pseudoc´odigo
enquanto(condi¸c˜ao) fa¸ca
comandos/a¸c˜oes;
fimenquanto;
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
28/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Estruturas de Repeti¸c˜ao
Exemplo: Fa¸ca um algoritmo que leia a nota de cada aluno de uma
turma com 50 alunos, em seguida apresente a m´edia da turma.
in´ıcio
real: mediaTurma, somaNotas, nota;
inteiro: i; //contador
i ← 0; //inicializa¸c˜ao do contador
somaNotas ← 0; //inicializaodoacumulador
enquanto (i < 50) fa¸ca // teste da condi¸c˜ao de parada
leia nota;
//soma em somaNotas os valores lidos em nota
somaNotas ← somaNotas + nota ;
i ← i + 1; //incremento do contador
fimenquanto;
mediaTurma ← somaNotas / 50; // c´alculo da m´edia da turma
escreva“m´edia da turma =“, mediaTurma;
fim.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
29/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Estruturas de Repeti¸c˜ao
para... at´e... fa¸ca
• Utilizada somente em casos nos quais a quantidade de
repeti¸c˜oes previamente conhecida.
• Incorpora internamente o funcionamento de um contador para
controlar a quantidade de la¸cos
Pseudoc´odigo
para v de vi at´e vf passo p fa¸ca
comandos/a¸c˜oes;
fimpara;
• v: vari´avel de controle
• vi : valor inicial de v
• vf : valor final de v
• p: varia¸c˜ao de v
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
30/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Estruturas de Repeti¸c˜ao
repita... at´e...
• A verifica¸c˜ao se ´e permitido repetir a a¸c˜ao ocorre no final da
estrutura
• Trata-se de um la¸co que se mant´em repetindo at´e que uma
dada condi¸c˜ao se torne verdadeira
Pseudoc´odigo
repita
comandos/a¸c˜oes;
at´e (condi¸c˜ao);
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
31/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Estruturas de Repeti¸c˜ao
Compara¸c˜ao
´E importante perceber que existem la¸cos mais adequados ou
convenientes para cada situa¸c˜ao
Tabela: Compara¸c˜ao entre Estruturas de Repeti¸c˜ao
Estrutura Condi¸c˜ao Qtd. de Execu¸c˜oes
Condi¸c˜ao de
Existˆencia
enquanto ... in´ıcio zero ou muitas verdadeira
para ... in´ıcio valor final - valor inicial verdadeira
repita ... final m´ınimo uma falsa
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
32/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Estrutura Homogˆenea de Dados
Defini¸c˜ao
• Estruturas homogˆeneas de dados possibilitam o
armazenamento de grupos de valores em uma ´unica vari´avel
que ser´a armazenada na mem´oria do computador.
• S˜ao ditas homogˆeneas porque os valores a serem armazenados
devem ser do mesmo tipo.
• Entre outros nomes que estas estruturas recebem, iremos
cham´a-las de vetores e matrizes.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
33/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Vetor
Vetor - Arranjo Unidimensional
• Um vetores ´e uma vari´avel composta (arranjo) com m´ultiplas
posi¸c˜oes.
• Podem ser vistos como lista de elementos do mesmo tipo.
• S˜ao estruturas lineares e est´aticas, ou seja, s˜ao compostas por
um n´umero finito e pr´e-determinado de valores
Representa¸c˜ao:
Exemplo: Vetor de notas de uma turma com 10 alunos:
Notas = 6,1 3,4 9,2 8,5 4,6 8,3 7,4 6,5 10 9,6
Posi¸c˜ao 1 2 3 4 5 6 7 8 9 10
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
34/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Vetor
Pseudoc´odigo - Declara¸c˜ao
tipo: identificador[qtd. de elementos];
Exemplo: Fa¸ca um algoritmo que leia as notas de uma turma com
50 alunos e mostre o vetor resultante.
inicio
inteiro: i, notas[50];
para i de 1 at´e 50 passo 1 fa¸ca
escrever ”Entre com um valor: ”;
ler notas[i];
fimpara;
para i de 1 at´e 50 passo 1 fa¸ca
escrever notas[i];
fimpara;
fim.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
35/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Matriz
Matriz - Array Bidimensional
Uma matriz ´e uma vari´avel composta homogˆenea bidimensional
formada por elementos do mesmo tipo, alocados sequencialmente
na mem´oria, organizada em linhas e colunas.
Representa¸c˜ao:
Aluno
6,1 3,4 9,2 8,5 4,6 8,3 7,4 6,5 10 9,6 1
Turma 5,6 3,1 8 4,5 7 6 7,3 9,8 6,7 8 2
8,6 9 5,5 8,4 3,5 7,3 8,9 8,1 5,7 7 3
1 2 3 4 5 6 7 8 9 10
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
36/37
l ´o g i c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h
Matriz
Pseudoc´odigo - Declara¸c˜ao
tipo: identificador[qtd. linha][qtd. coluna];
Exemplo: Fa¸ca um algoritmo que leia as notas de 5 turmas, cada turma com 50
alunos, e mostre a matriz resultante.
inicio
inteiro i, j;
real notas[5][50];
para i de 1 at´e 5 passo 1 fa¸ca
para j de 1 at´e 50 passo 1 fa¸ca
escreva ”Entre com um valor: ”;
leia notas[i][j];
fimpara;
fimpara;
para i de 1 at´e 5 passo 1 fa¸ca
para j de 1 at´e 50 passo 1 fa¸ca
escreva notas[i][j];
fimpara;
fimpara;
fim.
Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016
37/37

Lógica de programação

  • 1.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Algoritmos e Estruturas de Dados Introdu¸c˜ao Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> V´ıdeoaulas, exemplos e exerc´ıcios em linguagem C, acesse www.mathgraph.com.br 26 de fevereiro de 2016
  • 2.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Sum´ario 1 Introdu¸c˜ao 2 Estrutura Sequencial 3 Estrutura Condicional se... ent˜ao se ... sen˜ao ... 4 Estruturas de Repeti¸c˜ao enquanto... fa¸ca para... at´e... fa¸ca repita... at´e... 5 Estruturas Homogˆeneas de Dados Vetor Matriz Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 2/37
  • 3.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Algoritmos computacionais Defini¸c˜ao Segundo Cormem (2001) um algoritmo computacional pode ser entendido como“... qualquer procedimento computacional bem definido que toma algum valor ou conjunto de valores como entrada e produz algum valor ou conjunto de valores como sa´ıda. Portanto, um algoritmo ´e uma sequˆencia de passos computacionais que transformam a entrada na sa´ıda”. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 3/37
  • 4.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Algoritmos computacionais Outras defini¸c˜oes • ”Algoritmo ´e uma sequˆencia de passos que visa atingir um objetivo bem definido”(FORBELLONE, 1999) • “Algoritmo ´e a descri¸c˜ao de uma seq¨uˆencia de passos que dever ser seguida para a realiza¸c˜ao de uma tarefa” (ASCENCIO, 2007) • “Algoritmo ´e uma sequˆencia finita de instru¸c˜oes ou opera¸c˜oes cuja execu¸c˜ao, em tempo finito, resolve um problema computacional, qualquer que seja sua instˆancia”(SALVETTI, 1999) Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 4/37
  • 5.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Algoritmos computacionais Outras defini¸c˜oes • “Algoritmo s˜ao regras formais para a obten¸c˜ao de um resultado ou da solu¸c˜ao de um problema, englobando f´ormulas de express˜oes aritm´eticas”(MANZANO, 1997) • “A¸c˜ao ´e um acontecimento que, a partir de um estado inicial, ap´os um per´ıodo de tempo finito, produz um estado final previs´ıvel e bem-definido. Portanto, um algoritmo ´e a descri¸c˜ao de um conjunto de comandos que, obedecidos, resultam numa sucess˜ao finita de a¸c˜oes”(FARRER, 1999) Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 5/37
  • 6.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Algoritmos computacionais Continua¸c˜ao Um algoritmo ´e como uma“receita de bolo”para o computador, onde est˜ao definidos todos os comandos que ele deve executar p ara se chegar a um resultado. Da´ı, temos que, o algoritmo ´e uma sequˆencia de instru¸c˜oes, onde cada instru¸c˜ao representa uma A¸C˜AO que deve ser entendida e realizada. Em algoritmos computacionais, o computador possui um conjunto limitado de instru¸c˜oes e o algoritmo deve ser expresso nos termos destas instru¸c˜oes. O computador utiliza dois conceitos b´asicos para construir e interpretar algoritmos, s˜ao eles: • Estruturas de Dados → para manipula¸c˜ao das informa¸c˜oes • Estruturas de Controle → para manipula¸c˜ao das a¸c˜oes Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 6/37
  • 7.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Tipos de Algoritmos Descri¸c˜ao Narrativa A descri¸c˜ao narrativa consiste em analisar o enunciado do problema e escrever, utilizando um linguagem natural (por exemplo, a l´ıngua portuguesa), os passos a serem seguidos para resolu¸c˜ao do problema (semelhante a escrever uma receita). • Vantagem: N˜ao ´e necess´ario aprender nenhum conceito novo, pois uma l´ıngua natural j´a ´e bem conhecida. • Desvantagem: A linguagem natural (n˜ao padronizada e informal) abre espa¸co para v´arias interpreta¸c˜oes. Ser´a mais dif´ıcil estrutur´a-la e transcrever este algoritmo para uma linguagem de programa¸c˜ao. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 7/37
  • 8.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Tipos de Algoritmos Fluxograma Analisar o enunciado do problema e escrever, utilizando s´ımbolos gr´aficos pr´e-definidos, os passos a serem seguidos para a resolu¸c˜ao do problema. • Vantagem: Vis˜ao geral do fluxo de processamento. • Desvantagem: ´E necess´ario aprender a simbologia dos fluxogramas e, al´em disso o algoritmo resultante n˜ao apresenta muitos detalhes, dificultando sua transcri¸c˜ao para uma linguagem de programa¸c˜ao. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 8/37
  • 9.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Tipos de Algoritmos Fluxograma Os s´ımbolos utilizados para representar o uso em fluxograma podem variar dependendo do autor. A seguir ´e apresentada a lista de s´ımbolos a ser utilizada nas aulas deste curso. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 9/37
  • 10.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Tipos de Algoritmos Pseudoc´odigo Consiste em analisar o enunciado do problema e escrever, por meio de regras predefinidas, os passos a serem seguidos para a resolu¸c˜ao do problema. • Vantagem: A passagem (transcri¸c˜ao) do algoritmo para uma linguagem de programa¸c˜ao ´e quase imediata, bastando conhecer as regras e palavras reservadas da linguagem que ser´a utilizada. • Desvantagem: ´E necess´ario aprender as regras para se escrever um algoritmo corretamente. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 10/37
  • 11.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Estruturas de Dados Defini¸c˜ao Uma estrutura de dados ´e um meio para armazenar e organizar dados com o objetivo de facilitar o acesso e as modifica¸c˜oes. Nenhuma estrutura de dados ´unica funciona bem para todos os prop´ositos, e assim ´e importante conhecer os pontos fortes e as limita¸c˜oes de v´arias delas (CORMEN, 2001) As estruturas de dados representam as informa¸c˜oes do problema a ser resolvido. Tais estruturas est˜ao organizadas em tipos distintos de informa¸c˜oes. Dentro do escopo das estruturas de dados, define-se os seguintes termos: Constante, Vari´avel e Identificador. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 11/37
  • 12.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Estruturas de Dados Constantes Representam valores constantes, ou seja, que n˜ao variam no decorrer do algoritmo. Exemplo 1: Seja x = 2, efetuando as seguintes opera¸c˜oes: y = x → y = 2 A = 3x + 5x → A = 3*(2) + 5 * 2 → A = 16 Exemplo 2: Seja PI = 3,14, efetuando as seguintes opera¸c˜oes: A = PI .*1 → A = 3,14 A = PI * 2 → A = 6,28 A = PI * 3 → A = 9,42 Nos exemplos 1 e 2, tanto o valor de x quanto PI n˜ao variam a medida que as opera¸c˜oes s˜ao executadas. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 12/37
  • 13.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Estruturas de Dados Vari´aveis Representam informa¸c˜oes cujos valores s˜ao modificados ao longo do tempo. Exemplo 1: Deseja-se saber o sal´ario de um funcion´ario considerando que ele recebe R$ 1.000, 00 por mˆes, supondo que teve um aumento de 20% e deve-se descontar 8% de INSS do novo sal´ario, qual ser´a o sal´ario l´ıquido? Resposta: salario = 1.000 reajuste = salario * 0,2 salario = salario + reajuste imposto = salario * 0,08 salario = salario - imposto Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 13/37
  • 14.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Estruturas de Dados Vari´aveis Matematicamente, vari´avel ´e a representa¸c˜ao simb´olica dos elementos de um certo conjunto. Computacionalmente, pode-se definir vari´avel como um local reservado na mem´oria do computador usado para armazenar dados. Uma vari´avel possui nome (identificador) e tipo, possui apenas um valor em um determinado instante, mas seu conte´udo pode variar ao longo do tempo. O conceito de vari´avel, em computa¸c˜ao, corresponde a posi¸c˜oes de mem´oria RAM (Random Access Memory) onde s˜ao armazenados os dados manipulados pelo programa quando este for executado. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 14/37
  • 15.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Estruturas de Dados Identificador Nome de um local onde se pode colocar qualquer valor do conjunto de valores poss´ıveis de um tipo b´asico associado. Usado para manipular os dados necess´arios no algoritmo. O identificador ´e tamb´em usado para rotular valores constantes, assim como o nome PI, utilizado no exemplo 2, em constantes (o identificador PI foi utilizado para representar o valor constante 3,14). Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 15/37
  • 16.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Estruturas de Dados Regras para forma¸c˜ao de identificadores 1 Come¸car sempre o nome com uma letra ou o caractere sublinhado“ ”; 2 N˜ao usar espa¸cos em branco, pontua¸c˜ao, acentos nem caracteres especiais (@, #, ?, $, etc); 3 N˜ao usar palavras reservadas, ou seja, palavras que perten¸cam a linguagem de programa¸c˜ao que estiver sendo usada (ex: if, for, case, int, etc). Importante: Um identificador deve representar o melhor poss´ıvel o papel da vari´avel no algoritmo Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 16/37
  • 17.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Estruturas de Dados Identificadores v´alidos 1 nota, nota1, nota 1, operador, salario, nome, x, y, enderecoResidencial, 2 aluno01, preco produto, Area, Tensao A, tensao B, media, soma, S. Identificadores inv´alidos 1 1K, nota 1, sal´ario, x@1, y%2, aluno 01, preco produto. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 17/37
  • 18.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Tipos Primitivos de Dados Num´ericos 1 Inteiros. Ex: ...-100... -2, -1, 0, 1, 2, ..., 100, ... 2 Reais. Ex: ... -100, ..., -50.2, ..., -2, ..., -1.5, ..., 0, ..., 1, ..., 2, ..., 25.12, Literal Caractere ou alfanum´ericos. Ex: “ESCOLA”,“livro”,“18”, “R$ 55,36”, ... L´ogicos ou booleanos Assume um estado: verdadeiro (V) ou falso (F) Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 18/37
  • 19.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Tipos Primitivos de Dados Declara¸c˜ao ´E a cria¸c˜ao (ou defini¸c˜ao) do identificador da vari´avel (ou constante) que ser´a utilizado no algoritmo. Esta vari´avel ser´a utilizada para a manipula¸c˜ao de um determinado tipo de dado. Formato tipo do dados: identificador; tipo do dado: identificador1, identificador2, . . . , identificadorn 1 Todas as vari´aveis utilizadas em algoritmos ser˜ao definidas no in´ıcio do mesmo, por meio de um comando de uma das formas seguintes: 2 Em uma mesma linha podem ser denidas uma ou mais vari´aveis do mesmo tipo, separando-se os nomes das mesmas por v´ırgulas. 3 Vari´aveis de tipos diferentes devem ser declaradas em linhas diferentes. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 19/37
  • 20.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Tipos Primitivos de Dados Exemplos inteiro: idade; real: salario; caracter: nome; l´ogico: temFilhos; No exemplo, foram declaradas quatro vari´aveis, sendo elas: • Vari´avel nome: capaz de armazenar dados literais; • Vari´avel idade: capaz de armazenar um n´umero inteiro; • Vari´avel salario: capaz de armazenar um n´umero real; • Vari´avel temFilhos: capaz de armazenar um valor l´ogico, verdadeiro (V) ou falso (F). Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 20/37
  • 21.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Comandos b´asico Tabela: Comandos em pseudoc´odigo Comando Fun¸c˜ao Exemplo ← atribui um valor a uma vari´avel x ← 2 leia obter um valor informado externo e atribuir a uma vari´avel leia x; escreva mostrar algo, que pode ser uma vari´avel, texto ou ambos escreva x; escreva ”mensagem de teste”; Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 21/37
  • 22.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Estrutura Sequencial Sobre a estrutura Na estrutura sequencial os comandos s˜ao executados numa sequˆencia pr´e-estabelecida. Cada comando ´e executado somente ap´os o t´ermino do comando anterior. Em pseudoc´odigos, a estrutura sequencial caracteriza-se por um conjunto de comandos dispostos ordenadamente. Formato in´ıcio tipo: vari´avel1, vari´avel2, . . . ; //declara¸c˜ao das vari´avieis leia vari´avel1, vari´avel2; //dados de entrada comandos/a¸c˜oes; //a¸c˜oes a serem executadas escreva“Mensagem pr´e-determinada”, vari´avel; //dados de sa´ıda fim. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 22/37
  • 23.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Estruturas Condicional Finalidade Utilizada quando o problema apresenta alguma ou algumas condi¸c˜oes. Em problemas que apresentam classifica¸c˜ao, compara¸c˜ao, verifica¸c˜ao, restri¸c˜ao, e outras situa¸c˜oes que existam condi¸c˜oes a serem observadas. Classifica¸c˜ao: 1 Simples 2 Composta Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 23/37
  • 24.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Condicional Simples Pseudoc´odigo se (condi¸c˜ao) ent˜ao comandos/a¸c˜oes; fimse; Caracter´ısticas: • A a¸c˜ao ser´a executada apenas se a condi¸c˜ao for verdadeira. • A a¸c˜ao ou a¸c˜oes a serem executadas s˜ao escritas depois da palavra ent˜ao e antes de fimse. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 24/37
  • 25.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Condicional Composta Pseudoc´odigo se (condi¸c˜ao) ent˜ao comando1; sen˜ao comando2; fimse; Funcionamento: Se a condi¸c˜ao for verdadeira, ser´a executado o comando1; caso contr´ario, se a condi¸c˜ao for falsa, ser´a executado o comando2. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 25/37
  • 26.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Sele¸c˜ao de M´ultipla Escolha Finalidade Utilizada para simplificar a escrita de sele¸c˜oes encadeadas se-sen˜ao-se. Pseudoc´odigo escolha X V1: C1; V2: C2; . . . Vn: Cn; fimescolha; Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 26/37
  • 27.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Estruturas de Repeti¸c˜ao Finalidade Permitem executar mais de uma vez (repetir) um determinado trecho do algoritmo • O trecho do algoritmo em repeti¸c˜ao ´e tamb´em chamado de la¸co (ou“loop”) • As repeti¸c˜oes devem ser sempre finitas Quanto a quantidade de repeti¸c˜oes, os la¸cos podem ser 1 Pr´e-determinados: Sabe-se antes a quantidade de execu¸c˜oes 2 Indeterminados: N˜ao se conhece a quantidade de execu¸c˜oes Quanto ao crit´erio de parada, os la¸cos podem utilizar 1 Vari´avel de controle 2 Teste no in´ıcio 3 Teste no final Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 27/37
  • 28.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Estruturas de Repeti¸c˜ao enquanto... fa¸ca • La¸co que verifica antes de cada execu¸c˜ao, se ´e“permitido” executar o trecho do algoritmo • O la¸co acontece enquanto uma dada condi¸c˜ao permanecer verdadeira Pseudoc´odigo enquanto(condi¸c˜ao) fa¸ca comandos/a¸c˜oes; fimenquanto; Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 28/37
  • 29.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Estruturas de Repeti¸c˜ao Exemplo: Fa¸ca um algoritmo que leia a nota de cada aluno de uma turma com 50 alunos, em seguida apresente a m´edia da turma. in´ıcio real: mediaTurma, somaNotas, nota; inteiro: i; //contador i ← 0; //inicializa¸c˜ao do contador somaNotas ← 0; //inicializaodoacumulador enquanto (i < 50) fa¸ca // teste da condi¸c˜ao de parada leia nota; //soma em somaNotas os valores lidos em nota somaNotas ← somaNotas + nota ; i ← i + 1; //incremento do contador fimenquanto; mediaTurma ← somaNotas / 50; // c´alculo da m´edia da turma escreva“m´edia da turma =“, mediaTurma; fim. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 29/37
  • 30.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Estruturas de Repeti¸c˜ao para... at´e... fa¸ca • Utilizada somente em casos nos quais a quantidade de repeti¸c˜oes previamente conhecida. • Incorpora internamente o funcionamento de um contador para controlar a quantidade de la¸cos Pseudoc´odigo para v de vi at´e vf passo p fa¸ca comandos/a¸c˜oes; fimpara; • v: vari´avel de controle • vi : valor inicial de v • vf : valor final de v • p: varia¸c˜ao de v Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 30/37
  • 31.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Estruturas de Repeti¸c˜ao repita... at´e... • A verifica¸c˜ao se ´e permitido repetir a a¸c˜ao ocorre no final da estrutura • Trata-se de um la¸co que se mant´em repetindo at´e que uma dada condi¸c˜ao se torne verdadeira Pseudoc´odigo repita comandos/a¸c˜oes; at´e (condi¸c˜ao); Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 31/37
  • 32.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Estruturas de Repeti¸c˜ao Compara¸c˜ao ´E importante perceber que existem la¸cos mais adequados ou convenientes para cada situa¸c˜ao Tabela: Compara¸c˜ao entre Estruturas de Repeti¸c˜ao Estrutura Condi¸c˜ao Qtd. de Execu¸c˜oes Condi¸c˜ao de Existˆencia enquanto ... in´ıcio zero ou muitas verdadeira para ... in´ıcio valor final - valor inicial verdadeira repita ... final m´ınimo uma falsa Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 32/37
  • 33.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Estrutura Homogˆenea de Dados Defini¸c˜ao • Estruturas homogˆeneas de dados possibilitam o armazenamento de grupos de valores em uma ´unica vari´avel que ser´a armazenada na mem´oria do computador. • S˜ao ditas homogˆeneas porque os valores a serem armazenados devem ser do mesmo tipo. • Entre outros nomes que estas estruturas recebem, iremos cham´a-las de vetores e matrizes. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 33/37
  • 34.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Vetor Vetor - Arranjo Unidimensional • Um vetores ´e uma vari´avel composta (arranjo) com m´ultiplas posi¸c˜oes. • Podem ser vistos como lista de elementos do mesmo tipo. • S˜ao estruturas lineares e est´aticas, ou seja, s˜ao compostas por um n´umero finito e pr´e-determinado de valores Representa¸c˜ao: Exemplo: Vetor de notas de uma turma com 10 alunos: Notas = 6,1 3,4 9,2 8,5 4,6 8,3 7,4 6,5 10 9,6 Posi¸c˜ao 1 2 3 4 5 6 7 8 9 10 Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 34/37
  • 35.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Vetor Pseudoc´odigo - Declara¸c˜ao tipo: identificador[qtd. de elementos]; Exemplo: Fa¸ca um algoritmo que leia as notas de uma turma com 50 alunos e mostre o vetor resultante. inicio inteiro: i, notas[50]; para i de 1 at´e 50 passo 1 fa¸ca escrever ”Entre com um valor: ”; ler notas[i]; fimpara; para i de 1 at´e 50 passo 1 fa¸ca escrever notas[i]; fimpara; fim. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 35/37
  • 36.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Matriz Matriz - Array Bidimensional Uma matriz ´e uma vari´avel composta homogˆenea bidimensional formada por elementos do mesmo tipo, alocados sequencialmente na mem´oria, organizada em linhas e colunas. Representa¸c˜ao: Aluno 6,1 3,4 9,2 8,5 4,6 8,3 7,4 6,5 10 9,6 1 Turma 5,6 3,1 8 4,5 7 6 7,3 9,8 6,7 8 2 8,6 9 5,5 8,4 3,5 7,3 8,9 8,1 5,7 7 3 1 2 3 4 5 6 7 8 9 10 Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 36/37
  • 37.
    l ´o gi c a d e p r o g r a m a ¸c ˜a o m a t h g r a p h Matriz Pseudoc´odigo - Declara¸c˜ao tipo: identificador[qtd. linha][qtd. coluna]; Exemplo: Fa¸ca um algoritmo que leia as notas de 5 turmas, cada turma com 50 alunos, e mostre a matriz resultante. inicio inteiro i, j; real notas[5][50]; para i de 1 at´e 5 passo 1 fa¸ca para j de 1 at´e 50 passo 1 fa¸ca escreva ”Entre com um valor: ”; leia notas[i][j]; fimpara; fimpara; para i de 1 at´e 5 passo 1 fa¸ca para j de 1 at´e 50 passo 1 fa¸ca escreva notas[i][j]; fimpara; fimpara; fim. Prof. Sinaide Nunes Bezerra <contato@mathgraph.com.br> — AED — 26 de fevereiro de 2016 37/37