2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx
1.
2. Algoritmo: CONCEITO
• O que é um ALGORITMO?
• OBS.: Não existe um algoritmo para construir
algoritmos
– a criação de um algoritmo é um exercício de criatividade
(conhecimento) e experiência (técnica e prática)
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
3. O que é Programação? = ABSTRAÇÃO!
A realidade é complexa
e rica em detalhes!
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
11. • A tarefa de programar sistemas
computacionais envolve o exercício
constante da abstração da realidade e
sua codificação em uma linguagem de
programação
Abstração
Realidade
Realidade
Sistema de Locadora de Veículo
Abstração
+
Programação
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
12. Sistema Computacional
O que é um
Sistema Computacional?
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
14. Programação de Sistema Computacional
• A programação de um sistema computacional pode
ser resumida em 3 passos básicos
Processamento
Entrada Saída
Dispositivo
de Entrada
Dispositivo
de Saída
Memória
UCP
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
15. Programação de Sistema Computacional
• Exemplo 1 – Exibir a média de dois números
Processamento
Entrada Saída
Dispositivo
de Entrada
Dispositivo
de Saída
Memória
UCP
6 , 8 (6 + 8) / 2 7
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
16. Programação de Sistema Computacional
• Exemplo 2 – Exibir se o aluno está aprovado ou reprovado
Processamento
Entrada Saída
Dispositivo
de Entrada
Dispositivo
de Saída
Memória
UCP
Ana, 5, 3 Se (5+3)/2>=7
aprovado
Senão
reprovado
Ana, reprovado
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
17. Programação de Sistema Computacional
• Tipos de Linguagens de Programação
– 1 - Totalmente codificadas em binário (0´s e 1´s)
– 2 - Usa instruções simbólicas para representar os 0´s e 1´s
– 3 - Voltadas para facilitar o raciocínio humano
Linguagem
Assembly
(Mnemônica)
LOAD R1, val1
LOAD R2, val2
ADD R1, R2
STORE R1, val2
Linguagem
de
Máquina
0010 0001 1110
0010 0010 1111
0001 0001 0010
0011 0001 1111
Linguagem
de
Alto Nível
val2 = val1+val2
Baixo Nível Alto Nível
(1) (2) (3)
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
18. Noções de Lógica
• Exemplos de aplicação da lógica
– O quarto está fechado e que meu livro está no quarto. Então, preciso
primeiro abrir o quarto para tirar o livro
– Rosa é mãe de Ana, Paula é filha de Rosa, Júlia é filha de Ana. Então,
Júlia é neta de Rosa e sobrinha de Paula
– Todos os mamífero são animais e todos os cavalos são mamíferos.
Então, todos os cavalos são animais
– Todos os mamífero bebem leite e o Homem bebe leite. Então, todo o
Homem é mamífero e animal (mas não é um cavalo)
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
19. Atividade 1
• Resolva os seguintes problemas de lógica
– P1 – Uma lesma deve subir um poste de 10m de altura. De
dia sobe 2m e à noite desce 1m. Em quantos dias atingirá o
topo do poste?
– P2 - Três gatos comem três ratos em três minutos. Cem
gatos comem cem ratos em quantos minutos?
– P3 - O pai do padre é filho do meu pai. O que eu sou do
Padre?
– P4 - Se um bezerro pesa 75 kg mais meio bezerro, quanto
pesa um bezerro inteiro?
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
20. Atividade 1
• Resolva os seguintes problemas de lógica
– P5 – Qual o próximo número da sequência 7,8,10,13,17,?
– P6 – Um pai de 80kg e suas 2 filhas (40kg cada), precisam
sair de uma ilha com um barco. Porém a capacidade do
barco é de 80kg. Como farão para sair da ilha?
– P7 – Usando uma jangada, um camponês precisa
atravessar uma cabra, um leão e um fardo de trigo para a
outra margem do rio. A jangada tem apenas lugar para ele
e mais outra coisa. O que ele deve fazer para atravessar o
rio com seus pertences intactos?
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
21. RESPOSTAS - Atividade 1
• Respostas
– R1 - 9(nove) dias. No nono dia a lesma sobe 2(dois) metros, atinge o
topo e evidentemente não desce 1 metro
– R2 – 3 (três) minutos
– R3 – Tio
– R4 – 150 (cento e cinqüenta) kg
– R5 – 22
– R6 – Vão as duas filhas. Uma delas volta. O pai sai. A outra filha volta.
As duas filhas saem juntas.
– R7 - Primeiro leve a cabra, volte e pegue o fardo; deixe o fardo e leve a
cabra de volta; deixe a cabra e leve o leão, depois é só voltar e pegar a
cabra.
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
22. Noções de Lógica
Em Lógica um conceito importante
é o de “Proposição”
Sabe o que é uma
PROPOSIÇÃO?
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
23. Lógica de Programação & Algoritmo
O que é
Programação
de computadores?
INSTRUÇÕES
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
24. Instruções Delimitadoras
• Servem para especificar o início e o fim do
algoritmo.
início
...
fim
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
25. Declaração de Variáveis
• Utilizado para especificar os nomes e os
respectivos tipos das variáveis necessárias ao
algoritmo
declare <variáveis>: <tipo>;
onde:
<variáveis> - lista de nomes de variáveis separados
por vírgula
<tipo> - inteiro, real, caracter, string, lógico
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
26. Declaração de Variáveis
• Exemplos:
declare a,b,c: real;
declare nome: string;
declare sexo: caracter;
declare pratica_desporto: lógico;
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
27. Bloco de Comentário
• Serve para explicar um determinado trecho do
algoritmo, para torna-lo mais claro, facilitando
seu entendimento por outras pessoas ou
posteriormente.
{ <comentário> }
Exemplo:
{ Isto é um exemplo de comentário }
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
28. Instrução de Entrada
• Usada para ler dados de entrada do algoritmo.
leia(<variáveis>);
onde:
<variáveis> - contem os dados lidos.
Algoritmos e Programação
29. Instrução de Entrada
• Exemplos:
leia(a,b,c);
leia(nome);
leia(sexo);
leia(pratica_desporto);
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
30. Instrução de Saída
• Usada para mostrar os resultados do
processamento dos dados de entrada.
escreva(<resultados>);
onde:
<resultados> - geralmente é o conteúdo de uma ou
mais variáveis com a resposta do problema.
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
31. Instrução de Saída
• Exemplos:
escreva(“O valor de D é: ”, D);
escreva(nome, sexo);
escreva(“Pratica desporto.”);
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
32. Instrução de Atribuição
• Utilizado para atribuir um determinado
valor a uma variável.
<variável> <expressão>;
onde:
<variável> - nome de uma variável
<expressão> - um valor do mesmo tipo da
variável ou uma expressão lógica ou aritmética.
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
33. Instrução de Atribuição
• Exemplos
D B^2-4*A*C;
nome “Paulo”;
Pratica_desporto TRUE;
Sexo ‘M’;
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
34. Estruturas de Controle
• Baseado na lógica estruturada, Bohn e
Jacopini provaram que apenas três estruturas
são suficientes para explicar a solução de
qualquer problema, inclusive tornando-os
estruturados e mais legíveis.
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
35. Estruturas de Controle
• São elas:
– Estrutura Sequêncial: os comandos ou instruções
são executados na ordem em que aparecem no
algoritmo.
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
36. Estruturas de Controle
• Estrutura de Repetição: comandos são
executados repetidas vezes até que uma
condição de paragem seja satisfeita
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
37. Estruturas de Controle
• Estrutura de Seleção: Conforme o resultado de
uma expressão lógica, determinados
comandos são executados e outros não,
caracterizando assim uma seleção de
comandos
TRUE
FALSE
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
38. Instruções de Seleção
• Tipo simples:
se <sentença> então
<comandos>;
fim-se
OBS.:
<comandos> serão executados apenas se
<sentença> resultar em TRUE.
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
39. Instruções de Seleção
• Exemplo:
se A>0 então
B A + 1;
A 0;
fim-se
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
40. Instruções de Seleção
• Tipo composto:
se <sentença> então
<comandos1>;
senão
<comandos2>;
fim-se
OBS.:
<comandos1> serão executados apenas se <sentença>
resultar em TRUE. Em caso contrário, <comandos2>
serão executados.
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
41. Instruções de Seleção
• Exemplo:
se A>B então
B A + 1;
A 0;
senão
A 0;
B A + 1;
fim-se
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
42. Instruções de Repetição
• Enquanto / Fim-Enquanto
enquanto <sentença> faça
<comandos>;
fim-enquanto;
OBS.:
<comandos> serão executados enquanto
<sentença> resultar em TRUE.
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
43. Instruções de Repetição
• Exemplo:
enquanto A>0 faça
leia(B);
escreva(B);
A A - 1;
fim-enquanto;
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
44. Instruções de Repetição
• Repita / Até
repita
<comandos>;
até <sentença>;
OBS.:
<comandos> serão executados até que <sentença>
resulte em TRUE.
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
45. Instruções de Repetição
• Exemplo:
repita
leia(B);
escreva(B);
A A - 1;
até A<1;
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
46. Instruções de Repetição
• Para / Até / Fim-Para
para <variável> <inicial> até <final> faça
<comandos>;
fim-para;
OBS.:
<variável> - contador do tipo inteiro
<inicial> - valor inicial da variável
<final> - valor final da variável
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
47. Instruções de Repetição
• Exemplo:
{ Comandos para escrever 10 vezes uma frase na
tela do computador }
para i 1 até 10 faça
escreva(“Último tipo de repetição”);
fim-para;
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
48. Estrutura de um Algoritmo
• Um algoritmo em Portugal tem a seguinte
estrutura:
início
<declaração de variáveis>
<inicialização de variáveis>
<corpo lógico do algoritmo>
fim
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
49. Lógica de Programação & Algoritmo
• Estruturas básicas de um algoritmo:
– Sequência – Início/Fim
• Define uma estrutura onde as instruções serão executadas
na ordem que aparecem.
– Seleção – Se-Então/Senão
• Define uma estrutura condicional que dada a sua avaliação
(V ou F) determina qual “caminho” do algoritmo será
executado
– Repetição – Repita, Enquanto ou Para
• Define uma estrutura de iteração condicional (V ou F) ou
contada (pré-definida) de instruções
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
50. Lógica de Programação & Algoritmo
• Algoritmo para ligar de um telefone público - Sequência
Início
1. Tirar o auscultador do gancho;
2. Ouvir o sinal de linha;
3. Introduzir o cartão;
4. Teclar o número desejado;
5. Conversar;
6. Desligar;
7. Retirar o cartão;
Fim.
Este algoritmo só usa uma
estrutura de sequência
“Início/Fim”
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
51. Lógica de Programação & Algoritmo
• Algoritmo para ligar de um telefone público –
Seleção
E se o telefone público estiver com defeito?
Início
1. Tirar o auscultador do gancho;
2. Se ouvir o sinal de linha, então
1. Introduzir o cartão;
2. Teclar o número desejado;
3. Conversar;
4. Desligar;
5. Retirar o cartão;
3. Senão
1. ir para o próximo telefone;
Fim.
Este algoritmo usa uma
estrutura de decisão
“Se-então/Senão”
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
52. Lógica de Programação & Algoritmo
• Algoritmo para ligar de um telefone público – Repetição
E se o próximo telefone público também estiver com defeito?
Início
1. Repita
1. Tirar o fone do gancho;
2. Se ouvir o sinal de linha então
1. Introduzir o cartão;
2. Teclar o número desejado;
3. Conversar;
4. Desligar;
5. Retirar o cartão;
3. Senão
1. ir para o próximo telefone;
2. Até ouvir o sinal de linha
Fim.
Este algoritmo usa uma
estrutura de repetição
“Repita/Até”
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
53. Lógica de Programação & Algoritmo
• Algoritmo para ligar de um telefone público – Repetição
• E se o telefone do destino estiver com defeito?
• E se o telefone do destino estiver ocupado?
• E se acabarem os créditos do cartão telefonico?
• E se ...?
Um algoritmo
SEMPRE sofre melhorias sucessivas.
(Técnica de refinamentos sucessivos)
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
54. Fluxogramas - Exemplo 1
• Achar o valor da expressão: D = B2 - 4AC.
Início
Ler A, B, C D = B^2 - 4*A*C
1
1
Escrever D
Fim
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
55. Fluxogramas:
Exemplo 2
• Achar o maior de
dois números A e B.
Início
Ler A, B
A=B A<B
A>B
Comparar
A com B
Escrever:
“A e B iguais”
Fim
Escrever:
“A é maior”
Escrever:
“B é maior”
56. Português Estruturado - Exemplo 1
• Achar o valor da expressão: D = B2 - 4AC.
Ler os valores de A, B e C
Calcular a expressão D = B2 - 4AC
Mostrar o resultado desse cálculo
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
57. Português Estruturado - Exemplo 2
• Achar o maior de dois números A e B.
Ler dois números A e B
Comparar A com B
Mostrar o resultado dessa comparação
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
58. Pseudocódigo - Exemplo 1
• Achar o valor da expressão: D = B2 - 4AC.
Início
Declare A,B,C,D; { Declaração de variáveis }
Leia(A,B,C);
D B^2 - 4*A*C; { Operação de atribuição }
Escreva(D);
Fim.
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
59. Pseudocódigo - Exemplo 2
• Achar o maior de dois números A e B.
Início
Declare A,B; { Declaração de variáveis }
Leia(A,B);
Se A = B Então Escreva(“A e B iguais”);
Senão Se A>B Então Escreva(“A é maior”);
Senão Escreva(“B é maior”);
Fim-Se
Fim-Se
Fim.
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
60. Atividade 3
• Reescreva corretamente o algoritmo abaixo
• Algoritmo aprovação
Início
1. Obter as 2 notas do aluno;
2. Repita
1. Se Média do aluno >=7, então
1. Repita
1. Informar que o aluno está REPROVADO;
2. Até Média < 7
2. Senão Média >= 7
1. Informar que o aluno está APROVADO;
3. Até último aluno;
Fim.
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
61. RESPOSTA - Atividade 3
• Algoritmo aprovação
Início
1. Repita
1. Obter as 2 notas do aluno;
2. Se Média do aluno >=7, então
1. Informar que o aluno está APROVADO
3. Senão
1. Informar que o aluno está REPROVADO;
2. Até último aluno
Fim
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
62. EXERCÍCIOS
Na aplicação flowgoritm;
1. Construa um algoritmo, que permita ao utilizador
introduzir dois valores inteiros para serem
comparados. Como saída informe qual é maior,
menor, ou se são iguais.
2. Elabore um algoritmo que solicite quantos
números inteiros ele pretende avaliar. Em
seguida, o utilizador deve introduzir os respetivos
valores inteiros. Por fim, como saída, informe
qual o maior dos valores introduzidos.
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
63. Exercício:
Modifique o algoritmo elaborado nas sessões anteriores,
onde verificavamos se o número era par:
Modifique o algoritmo para solicitar 10 números inteiros ao
utilizador e calcule a soma e média dos números pares e
ímpares.
Algoritmos e Programação
64. 1) leia um número inteiro e mostre uma mensagem indicando se
este número é par ou ímpar, e se é positivo ou negativo
2) leia quatro números inteiros e encontre a média aritmética
simples entre as que correspondem a números pares. Lembre-
se que não pode haver divisão por zero
3) leia 4 notas, calcule a média dessas e escreva: Reprovado
(média < 5), Recuperação (média >= 5 e < 7) e Aprovado
(média >= 7)
Outros exercícios...
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
65. 4) leia a idade de um nadador e exiba sua categoria segundo as
regras: A(5 até 7); B(8 até 10); C(11 até 13); D(14 até 18) e E(
Idade > 18)
5) leia dois números inteiros, uma operação matemática
(+,-,*,/) e faça o calculo destes números segundo a operação
lida
6) leia o nome e a idade de três pessoas e informe o nome da
pessoa mais velha e o nome da pessoa mais nova. Considere
que não existem idades iguais
mais exercícios...
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
66. 7) leia os números inteiros A e B e informe se A é múltiplo,
divisor ou nada de B
8) leia três números e mostre-os em ordem crescente
9) leia uma milhar e informe se esse número é palíndromo.
Exemplos de números palíndromos: 9889, 7337 e 2002
10) leia um número inteiro entre 20 e 59 e mostre seu extenso.
Exiba um erro se o número estiver fora do intervalo
ainda mais exercícios...
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
67. AMBIENTES/LINGUAGENS DE PROGRAMAÇÃO
LA PASCAL
declare Var
Início Begin
Fim End
Caracter Char
Inteiro Integer
Real Real
Lógico Boolean
Leia Read
Escreva Write
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
68. AMBIENTES/LINGUAGENS DE PROGRAMAÇÃO
LA C
declare
Início {
Fim }
Caracter Char
Inteiro Int
Real Double
Lógico Boolean
Leia Scanf
Escreva Printf
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
69. Próximos passos?
• Praticar a leitura e entendimento de
Algoritmos na sua área de aplicação
• Aprender uma Linguagem de Programação
para Computadores
• Programação!
Algoritmos e Programação
Docente Ricardo Castro setembro 2022