Buscar

742189_pc1_slides_02


Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

Pontif´ıcia Universidade Cato´lica de Minas Gerais
Instituto de Cieˆncias Exatas e Informa´tica
Instituto Polite´cnico
Programac¸a˜o de Computadores I
Prof. Joa˜o Leonardo Ribeiro Neto
12 de Fevereiro de 2014
Algoritmo - conceituac¸a˜o
• Quando escrevemos um programa para ser executado por um
computador, concebemos pre´viamente um me´todo para
solucionar um determinado problema. Este me´todo,
geralmente independe de um computador e/ou de uma
linguagem de programac¸a˜o em particular. Este me´todo, mais
do que uma linguagem de programac¸a˜o em particular e´ que
sera´ o nosso objeto de estudo.
• O algoritmo, e´ utilizado em Programac¸a˜o de Computadores,
para descrever um me´todo capaz de solucionar um
determinado problema e que seja adequado para ser
implementado utilizando uma linguagem de programac¸a˜o.
Algoritmo - conceituac¸a˜o
• Na maioria dos algoritmos e´ tambe´m importante considerar a
organizac¸a˜o dos dados envolvidos, o que os torna tambe´m um
item fundamental na programac¸a˜o de computadores.
• Podemos enta˜o adotar a seguinte definic¸a˜o de algoritmo:
Algoritmo e´ a descric¸a˜o de um conjunto de comandos
que, obedecidos, resultam numa sucessa˜o finita de
ac¸o˜es.[Farrer et al. (1999)]
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
• Constantes: um determinado valor fixo que na˜o se modifica
ao longo do tempo:
• Constante nume´rica: 25; 3.14,...
• Constante lo´gica: falso ou verdadeiro
• Constante literal: “Joa˜o da Silva”, “Mensagem”,
“10/02/2014”, ...
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
• Exerc´ıcio
• Identificar o tipo de cada uma das constantes abaixo:
1 21;
2 “BOLA”;
3 “VERDADEIRO”;
4 0.21 × 102;
5 falso.
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
• Varia´veis na matema´tica: e´ a representac¸a˜o simbo´lica dos
elementos de um certo conjunto;
• Varia´veis nos algoritmos, destinados a resolver um problema
no computador: corresponde a uma posic¸a˜o de memo´ria, cujo
conteu´do pode variar ao longo do tempo durante a execuc¸a˜o
de um programa.[Farrer et al. (1999)]
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
• Formac¸a˜o dos identificadores:
• Permitidos: A, NOTA, X5, MATR´ICULA, A32B,....
• Na˜o permitidos: 5B, X-Y, E(13), A:B, B*D, ...
• Declarac¸a˜o de varia´veis: As varia´veis podem armazenar
valores de um mesmo tipo, de maneira que tambe´m sa˜o
classificadas como sendo nume´ricas, lo´gicas e literais;
• declare lista-de-identificadores nome-do-tipo
• Exemplos:
• declare NOTA, CO´DIGO, X5 nume´rico
• declare TESTE lo´gico
• declare NOME literal
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
• Os identificadores sa˜o escritos sempre com letra maiu´scula,
enquanto as palavras chaves sa˜o escritas em letra minu´scula
e grifadas;
• Denomina-se palavra-chave aquela que tem significado
pro´prio, independente do algoritmo em que esteja inserida.
Portanto na˜o podem ser utilizadas como identificadores, que
por sua vez identificam uma posic¸a˜o de memo´ria.
Figura : 1
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Comenta´rios: Facilitar o entendimento do algoritmo:
declare MAT, {nu´mero de matr´ıcula do aluno}
nume´rico
Expresso˜es aritme´ticas:
Os operadores sa˜o aritme´ticos e operandos sa˜o constantes e/ou
varia´veis do tipo nume´rico. A notac¸a˜o utilizada para expresso˜es
aritme´ticas nos algoritmos e´, basicamente, a mesma da
matema´tica, a menos das seguintes restric¸o˜es:
• omitir o operador de multiplicac¸a˜o, o que e´ comum nas
expresso˜es matema´ticas. Evitar confusa˜o quanto ao nome de
varia´veis;
• nas expresso˜es aritme´ticas, as operac¸o˜es guardam entre si
uma relac¸a˜o de prioridade, tal como na matema´tica. Para se
obter uma sequeˆncia de ca´lculo diferente utilizar somente
pareˆnteses.
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Exemplos:
X + Y
X - Y
Z × NOTA
TOTAL/N√
F1 + G 2 - H√
P × (P − A)× (P − B)× (P − C )
A-B×(C + D/(E-1)-F)+G
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Func¸o˜es:
LOG10(EA) - logaritmo na base 10 de EA
LN(EA) - logaritmo neperiano de EA
EXP(EA) - o nu´mero e(base de LN) elevado a EA
ABS(EA) - valor absoluto de EA
TRUNCA(EA) - a parte inteira de um nu´mero fraciona´rio
ARREDONDA(EA) - transforma , por arredondamento, um
nu´mero fraciona´rio em inteiro
QUOCIENTE(EAX, EAY) - quociente da divisa˜o de EAX por EAY
RESTO(EAX, EAY) - resto da divisa˜o de EAX por EAY
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
= igual a < menor que
6= diferente de ≥ maior ou igual a
> maior que ≤ menor ou igual a
Tabela : Operadores relacionais
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
X Y Z NOME X 2+Y>Z NOME6=”JOSE´”
1 2 5 “PAULO” falso verdadeiro
4 3 1 “JOSE´” verdadeiro falso
1 1 2 “PEDRO” falso verdadeiro
Tabela : Expresso˜es lo´gicas
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Dadas as varia´veis nume´ricas A e B, a varia´vel literal NOME,
completar o quadro a seguir, preenchendo os espac¸os em branco
com os resultados lo´gicos(falso ou verdadeiro) obtidos como
resultado das relac¸o˜es, tendo em vista os valores atribu´ıdos a estas
varia´veis.
A B NOME A+1≥ √B NOME 6=”ANA”
3 16 “MARIA”
5 64 “PEDRO”
2.5 9 “ANA”
Tabela : Expresso˜es lo´gicas
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Operadores lo´gicos: A algebra das proposic¸o˜es define treˆs
conectivos usados na formac¸a˜o de novas proposic¸o˜es a partir de
outras ja´ conhecidas.
e - para a conjunc¸a˜o
ou - para a disjunc¸a˜o
na˜o - para a negac¸a˜o
Neste contexto considera-se uma proposic¸a˜o como sendo uma
varia´vel, uma relac¸a˜o ou uma expressa˜o lo´gica composta.
Conjunc¸a˜o das proposic¸o˜es p e q
p e q
Disjunc¸a˜o das proposic¸o˜es p e q
p ou q
Negac¸a˜o da proposic¸a˜o p
na˜o p
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
p q p e q p ou q na˜o p na˜o q
V V V V F F
V F F V F V
F V F V V F
F F F F V V
Tabela : Expresso˜es lo´gicas
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Exerc´ıcio:
Considerando A, B, e C varia´veis nume´ricas, contendo os valores 1,
4.5 e 8, respectivamente; NOME e COR varia´veis literais contendo
as sequeˆncias de caracteres “TANIA” e “BRANCO” e TESTE
varia´vel lo´gica contendo o valor verdadeiro, determinar os
resultados obtidos da avaliac¸a˜o das seguintes expresso˜es lo´gicas:
1 A=1 e TESTE
2 NOME = “PEDRO” ou COR 6= “BRANCO”
3 na˜o TESTE ou RESTO(C,2) = 1
4 C < 10 ou TESTE e COR = “PRETO”
5 A2 + C 1/3=3 e (A+TRUNCA(B+C)>13 ou NOME=”ANA”
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Comando : Pode ser descrito como uma ac¸a˜o a ser executada em
um dado momento.
Comando de atribuic¸a˜o:
identificador ← expressa˜o
onde:
identificador: e´ o nome da varia´vel a` qual esta´ sendo atribu´ıdo o
valor;
←: e´ o s´ımbolo de atribuic¸a˜o;
expressa˜o: pode ser uma expressa˜o aritme´tica, expressa˜o lo´gica ou
expressa˜o literal de cuja avaliac¸a˜o e´ obtido o valor a ser atribu´ıdo a`
varia´vel.
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Exemplos:
1 K ← 1
2 COR ← “VERDE”
3 TESTE ← falso
4 A ← B
5 ME´DIA ← SOMA/N
6 COD ← N2 + 1 ≥ 5
7 SIM ← X = 0 e Y 6= 2
8 TOTAL ← √N + X 2+Y
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Comandosde entrada e sa´ıda:
Seja a seguinte situac¸a˜o: ı´nicio da execuc¸a˜o de um programa que
se encontra armazenado na memo´ria principal do computador.
Como e quem determina o momento da entrada dos dados para o
programa e a sa´ıda dos resultados obtidos?
Isto e´ tarefa do programador e ele assim o faz quando, no
desenvolvimento do algoritmo, descreve as ac¸o˜es a serem
executadas pelo computador.
leia lista-de-identificadores
escreva lista-de-identificadores e/ou constantes
Exemplos:
• leia X
• leia NOME,N,Y
• escreva K, SOMA
• escreva 21, “NOME”, N
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Estrutura sequencial:
Num algoritmo aparece em primeiro lugar as declarac¸o˜es seguidas
por comandos que, se na˜o houver indicac¸a˜o em contra´rio, devera˜o
ser executados numa sequeˆncia linear, seguindo-se o texto em que
esta˜o escritos, de cima para baixo. Iniciaremos os algoritmos com a
palavra Algoritmo e terminaremos com a expressa˜o fim algoritmo.
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Estrutura sequencial:
Figura : 2
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Estrutura sequencial:
Figura : 3
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Estrutura condicional: A estrutura condicional permite a escolha
do grupo de ac¸o˜es e estruturas a ser executado quando
determinadas condic¸o˜es, representadas por expresso˜es lo´gicas, sa˜o
ou na˜o satisfeitas.
Estrutura condicional simples:
Figura : 4
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Estrutura condicional simples:
Figura : 5
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Estrutura condicional composta
Figura : 6
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Estrutura condicional composta
Figura : 7
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Fazer um algoritmo que leia treˆs valores inteiros, determine e
imprima o menor deles
No exemplo seguinte, sera´ usada a te´cnica de refinamentos
sucessivos.
Figura : 8
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Figura : 9
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Figura : 10
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Figura : 11
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Exerc´ıcios:
1) Dados treˆs valores X,Y,Z, verificar se eles podem ser os
comprimentos dos lados de triaˆngulo e, se forem, verificar se e´ um
triaˆngulo equila´tero, iso´sceles ou escaleno. Se eles na˜o formarem
um triaˆngulo escrever uma mensagem.
2) Dados treˆs valores distintos, coloca´-los em ordem crescente.
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Estrutura de repetic¸a˜o: A estrutura de repetic¸a˜o permite que
uma sequeˆncia de comandos seja executada repetidamente ate´ que
uma determinada condic¸a˜o de interrupc¸a˜o seja satisfeita.
Figura : 12
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Estrutura de repetic¸a˜o:
Figura : 13
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Estrutura de repetic¸a˜o:
Figura : 14
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Estrutura de repetic¸a˜o:
Figura : 15
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Estrutura de repetic¸a˜o:
Figura : 16
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Estrutura de repetic¸a˜o:
Figura : 17
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Exerc´ıcios:
3) Fazer um algoritmo que calcula o valor de N!(fatorial de N),
sendo que o valor inteiro de N encontra-se dispon´ıvel em uma
unidade de entrada de dados e que
a) N! = 1 x 2 x 3 x . . . x (N-1) x N;
b) 0! = 1, por definic¸a˜o.
4) A conversa˜o de graus Farenheit para cent´ıgrados e´ obtida por
C =
5
9
(F − 32)
Fazer um algoritmo que calcule e escreva uma tabela de
cent´ıgrados em func¸a˜o de Farenheit, que variem de 50 a 150 de 1
em 1.
Conjunto particular de regras e convenc¸o˜es
para o desenvolvimento de um algoritmo
Exerc´ıcios:
5) Desenvolver um algoritmo que verifique e escreva todos os
valores inteiros no intervalo de 0 a 1000 que tenham, ao mesmo
tempo, as seguintes caracter´ısticas:
• A soma de seus algarismos maior ou igual a 13;
• Contenha o algarismo 0(zero);
• Seja ı´mpar.
6)Desenvolva um algoritmo para ler um nu´mero inteiro e exibir o
maior nu´mero primo que seja menor do que o nu´mero digitado.
7) Desenvolva um algoritmo que solicite ao usua´rio treˆs nu´meros
a,b e c , onde a e´ maior do que 1. Seu algoritmo deve somar todos
os inteiros entre b e c que sejam divis´ıveis por a. Escreva a soma.
Bibliografia
Farrer, H., Becker, C., Faria, E., Matos, H., Santos, M., & Maia,
M. L. (1999). Algoritmos estruturados. LTC - Livros Te´cnicos e
Cient´ıficos Editora S.A.