Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Programação de ComputadoresCapítulo 2 – Aula 3
Algoritmos
• Definição: conjunto das regras e procedimentoslógicos perfeitamente definidos que levam àsolução de um problema em um número finito deetapas.
• Recebem: um ou mais valores (entrada)
• Geram: um ou mais valores (saída)
Método para construção de Algoritmos
• Para a construção de qualquer tipo de algoritmo,é necessário seguir estes passos:
1. Compreender completamente o problema a ser resolvido, destacandoos pontos mais importantes e os objetos que o compõem.
2. Definir os dados de entrada, ou seja, quais dados serãofornecidos e quais objetos fazem parte desse cenário-problema.
3. Definir o processamento, ou seja, quais cálculos serão efetuadose quais as restrições para esses cálculos. O processamento éresponsável pela transformação dos dados de entrada em dados desaída. Além disso, deve-se verificar quais objetos sãoresponsáveis pelas atividades.
Método para construção de Algoritmos
• Para a construção de qualquer tipo de algoritmo,é necessário seguir estes passos:
4. Definir os dados de saída, ou seja, quais dados serão geradosdepois do processamento.
5. Construir o algoritmo utilizando um dos tipos descritos napróxima seção.
6. Testar o algoritmo realizando simulações.
Algoritmos
1. Compreender completamente o problema a ser resolvido,destacando os pontos mais importantes e os objetos que ocompõem.
• Exemplo: calcular os valores da função de segundo grau dada por:
y = 3x2 + 2x.
2. Definir os dados de entrada, ou seja, quais dados serãofornecidos e quais objetos fazem parte desse cenário-problema.
• Entrada: valores atribuídos à variável X
• Saída: resultado assumido pela variável Y
Algoritmos
3. Definir o processamento, ou seja, quais cálculos serãoefetuados e quais as restrições para esses cálculos. Oprocessamento é responsável pela transformação dosdados de entrada em dados de saída. Além disso, deve-se verificar quais objetos são responsáveis pelasatividades.
• Eleve ao quadrado o valor atribuído a X, multiplique-o por 3 eadicione, a esse resultado, o dobro do valor atribuído a X.
• Atribua o resultado final à variável Y.
Algoritmos
4. Definir os dados de saída, ou seja, quaisdados serão gerados depois do processamento.
• Exiba (escreva) o valor assumido pela variável Y
Algoritmos
• Lembre-se: Todo algoritmo deve ter INÍCIO e FIM.
• Representação:
Linguagem natural (Descrição Narrativa ou passo a
passo)
Fluxograma (Diagrama de Blocos ou esquema)
Pseudocódigo (Português Estruturado)
Algoritmos
• Fluxograma - Símbolos
AlgoritmosA figura representa umgrafo e apresenta círculosnumerados, representandopontos a serem alcançadose setas com númerosindicando o temponecessário para ir de umponto a outro. Porexemplo, para ir de 2 até5 o tempo necessário é 3.
a) Indique o percurso que consome o menor tempo partindo de 1 para chegar em 8.
b) Apresente um percurso que passe pelo menor número de pontos para, partindo do ponto 1,chegar ao 8.
Algoritmos
Elabore um roteiro do
caminho a ser seguido
para o labirinto ao lado
partindo da seta usando a
marcação feita para as
linhas e colunas.
Exemplo: E1, A1, A4, etc.
Algoritmos
Desenvolva um fluxograma e um pseudocódigo para
ler um nome, endereço e telefone e mostrá-los na
tela.
Algoritmos
Desenvolva umfluxograma e umpseudocódigo paraler um nome,endereço e telefonee mostrá-los natela.
Início
nome
“Entre com o Nome:”
“Entre com o Endereço:”
endereco
“Nome:”, nome“Endereço:”, endereco“Telefone:”, telefone
Fim
nome, endereco,
telefone: caractere
“Entre com o Telefone:”
telefone
A
A
Programa agenda
Var
nome, endereco, telefone : caractere;
Início
Escreva (“Entre com o nome:”);
Leia (nome);
Escreva (“Entre com o endereço:”);
Leia (endereço);
Escreva (“Entre com o telefone:”);
Leia (telefone);
Escreva (“Nome:”, nome);
Escreva (“Endereço:”, endereco);
Escreva (“Telefone:”, telefone);
Fim
Pseudocódigo
Constantes, variáveis ou expressões do mesmo tipo podemser comparadas, através dos operadores indicados na tabelaabaixo.
O resultado destas comparações é sempre um valor lógico,isto é, VERDADEIRO ou FALSO.
= igual
ou <> ou != diferente
< menor
ou <= menor ou igual
> maior
ou >= maior ou igual
Operadores Relacionais
Os operadores lógicos servem para combinar expressões.
Os operadores lógicos são:
E (and)
OU (or)
NÃO (not)
Na maioria das linguagens os operadores lógicos sãousados na sua forma em inglês, ou seja, and, or e not.
Operadores Lógicos
Estes operadores produzem os resultados indicados nastabelas abaixo (Tabela Verdade).
A B A E B A B A OU B A NÃO A
F F F F F F F V
F V F F V V V F
V F F V F V
V V V V V V
Operadores Lógicos
programa operadores
var
A, B, C, D, N : lógico
início
A falso
B verdadeiro
C A e B
D B ou C
N não(A e B)
fim
Qual será o valor da variável C, D e N?
Operadores Lógicos
programa operadores
var
A, B, C, D, N : lógico
início
A falso
B verdadeiro
C A e B
D B ou C
N não(A e B)
fim
Qual será o valor da variável C, D e N?
C = falso D = verdadeiro N = verdadeiro
Operadores Lógicos
1. Desenvolva um fluxograma e um algoritmo para ler a base e aaltura de um retângulo, calcular o seu perímetro e área, eexibir o resultado na tela.
2. Faça um fluxograma e escreva um programa em pseudocódigo paraum algoritmo que leia dois números e exiba a sua soma e o seuproduto.
3. Ler dois valores para as variáveis A e B e efetuar a troca dosvalores das variáveis, de modo que a variável A passe a contero valor de B e a variável B passe a ter o valor de A. Imprimiros dois valores em tela.
Exercícios:
4. Sendo dados A = 127, B = 10, C = 5, D = falso, E = verdadeiro,qual é o resultado de cada uma das sentenças abaixo?
a) não D
b) D e E
c) (A > B) ou (B < C)
d) não (A < B)
e) (D e E) ou (A = B)
f) (D ou E) e (A < B)
g) (A + B < C) e D ou E e não D
Exercícios:
5. Determine os resultados que serão impressos depois que oalgoritmo abaixo for executado.
PROGRAMA incognitaVAR
A, B, C : inteiro;D, E : real;F, X, Y : lógico;
InícioA := 7;B := -6;C := 49;D := 13.3;E := 1000.0;F := verdadeiro;X := não ((A B) e (D E) ou F);Y := (C div A > abs(B)) e F;Escreva (X, Y);
Fim
Exercícios:
1. Desenvolva um fluxograma e um algoritmo para ler a base e aaltura de um retângulo, calcular o seu perímetro e área, eexibir o resultado na tela.
Fluxograma
Exercícios - Respostas
Início
base
“Entre com a Base:”
“Entre com a Altura:”
altura
“O perímetro do retânguloé:”,perímetro“A área do retângulo é:”, area
Fim
base, altura, area, perimetro: real
A
A
perimetro := 2 * (base + altura)area := base * altura
1. Faça um fluxograma e um pseudocódigo que leia o valor do ladode um quadrado (em cm) e exiba a sua área (em cm2).
Pseudocódigo
Exercícios - Respostas
Programa retanguloVar
base, altura, perimetro, area : real;Início
Escreva (“Entre com a base:”);Leia (base);Escreva (“Entre com a altura:”);Leia (altura);perimetro := 2 * (base + altura);area := base * altura;Escreva (“O perímetro do retângulo é:”, perimetro);Escreva (“A área do retângulo é:”, area);
Fim
2. Faça um fluxograma e escreva umprograma em pseudocódigo para umalgoritmo que leia dois números eexiba a sua soma e o seu produto.
Fluxograma
Exercícios - RespostasInício
N1, N2
“Digite doisnúmeros:”
“A soma é:”,S, “e o produto é:”,P
Fim
N1, N2, S, P : real
P := N1 * N2
S := N1 + N2
2. Faça um fluxograma e escreva um programa em pseudocódigo paraum algoritmo que leia dois números e exiba a sua soma e o seuproduto.
Pseudocódigo
Exercícios - Respostas
Programa Soma_e_Produto
Var
N1, N1, S, P: real;
Início
Escreva (“Digite dois números:”);
Leia (N1, N2);
S := N1 + N2;
P := N1 * N2;
Escreva (“A soma é:”, S, “e o produto é:”, P);
Fim
3. Ler dois valores para as variáveisA e B e efetuar a troca dos valoresdas variáveis, de modo que avariável A passe a conter o valorde B e a variável B passe a ter ovalor de A. Imprimir os doisvalores em tela.
Fluxograma
Exercícios - Respostas Início
AUX AA B
B AUX
Fim
A, B, AUX: real
A
“Digite um valor para A:”
“Digite um valor para B:”
B
A, B
3. Ler dois valores para as variáveis A e B e efetuar a troca dosvalores das variáveis, de modo que a variável A passe a conter ovalor de B e a variável B passe a ter o valor de A. Imprimir osdois valores em tela.
Pseudocódigo
Exercícios - Respostas
programa trocavar
A, B, Aux : realInício
escreva (“Digite um valor para A:”)leia (A)escreva (“Digite um valor para B:”)leia (B)Aux := AA := BB := Auxescreva (A, B)
Fim
4. Sendo dados A = 127, B = 10, C = 5, D = falso, E = verdadeiro,qual é o resultado de cada uma das sentenças abaixo?
a) não D = não (falso) = verdadeiro
b) D e E = (falso) e (verdadeiro) = falso
c) (A > B) ou (B < C)
=(127 > 10) ou (10 < 5) = (verdadeiro) ou (falso) = verdadeiro
d) não (A < B) = não (127 < 10) = não (falso) = verdadeiro
Exercícios - Respostas
4. Sendo dados A = 127, B = 10, C = 5, D = falso, E = verdadeiro,qual é o resultado de cada uma das sentenças abaixo?
e) (D e E) ou (A = B)
= (falso e verdadeiro) ou (127 = 10) = (falso) ou (falso) = falso
f) (D ou E) e (A < B)
= (falso ou verdadeiro) e (127 < 10) = (verdadeiro) e (falso) =falso
Exercícios - Respostas
4. Sendo dados A = 127, B = 10, C = 5, D = falso, E = verdadeiro,qual é o resultado de cada uma das sentenças abaixo?
g) (A + B < C) e D ou E e não D
= (127 + 10 < 5) e (falso) ou (verdadeiro) e não (falso)
= (137 < 5) e (falso) ou (verdadeiro) e (verdadeiro)
= (falso) e (falso) ou (verdadeiro) e (verdadeiro)
= (falso) ou (verdadeiro)
= verdadeiro
Exercícios - Respostas
5. Determine os resultados que serão impressos depois que oalgoritmo abaixo for executado.
PROGRAMA incognitaVARA, B, C : inteiro;D, E : real;F, X, Y : lógico;
InícioA := 7;B := -6;C := 49;D := 13.3;E := 1000.0;F := verdadeiro;X := não ((A B) e (D E) ou F);Y := (C div A > abs(B)) e F;Escreva (X, Y);
Fim
Exercícios - Respostas
Calculando o X:= não ((A B) e (D E) ou F)= não ((7 -6) e (13.3 1000.0) ou verdadeiro)= não ((verdadeiro e falso) ou verdadeiro)= não (falso ou verdadeiro)= não (verdadeiro)= falso
Calculando o Y= (C div A > abs(B)) e F= (49 div 7 > abs(-6)) e verdadeiro= (7 > 6) e verdadeiro= verdadeiro e verdadeiro= verdadeiro
Portanto, X = falso e Y = verdadeiro.
Tarefa 1Sala 316: entregar dia
Sala 312: entregar dia
Obrigada !