SlideShare uma empresa Scribd logo
1 de 69
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
O que é Programação? = ABSTRAÇÃO!
A realidade é complexa
e rica em detalhes!
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
Abstração
Realidade
O que abstrai desta realidade?
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
Abstração
O que é abstração?
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
Abstração
Abstração
=
Operação mental que
observa a realidade e
captura apenas os
aspectos relevantes
para um contexto
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
MASLOW
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
• 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
Sistema Computacional
O que é um
Sistema Computacional?
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
Sistema Computacional
Sistema
Computacional
Software
Hardware
Peopleware
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
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
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
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
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
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
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
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
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
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
Lógica de Programação & Algoritmo
O que é
Programação
de computadores?
 INSTRUÇÕES
Algoritmos e Programação
Docente Ricardo Castro setembro 2022
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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”
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Mais conteúdo relacionado

Semelhante a 2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx

Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAislan Rafael
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturadodasko
 
Aula 1 - Programação 1
Aula 1 - Programação 1Aula 1 - Programação 1
Aula 1 - Programação 1Isaac Barros
 
Conceitos fundamentais-de-algoritmos
Conceitos fundamentais-de-algoritmosConceitos fundamentais-de-algoritmos
Conceitos fundamentais-de-algoritmosVando Junqueira
 
Conceitos Fundamentais de algoritmos
Conceitos Fundamentais de algoritmosConceitos Fundamentais de algoritmos
Conceitos Fundamentais de algoritmosPsLucas
 
Introduçao a Algoritmo...................
Introduçao a Algoritmo...................Introduçao a Algoritmo...................
Introduçao a Algoritmo...................Márcio Santos
 
Aula 01 - Apresentação - Introdução a Lógica.pptx
Aula 01 - Apresentação - Introdução a Lógica.pptxAula 01 - Apresentação - Introdução a Lógica.pptx
Aula 01 - Apresentação - Introdução a Lógica.pptxMárcio Santos
 
Introdução a lógica de Programação Aula-01
Introdução a lógica de Programação Aula-01Introdução a lógica de Programação Aula-01
Introdução a lógica de Programação Aula-01EdsonEmanoel
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Robson Ferreira
 

Semelhante a 2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx (20)

Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
scilab aula 05
scilab  aula 05scilab  aula 05
scilab aula 05
 
Lp m1(parte1)
Lp m1(parte1)Lp m1(parte1)
Lp m1(parte1)
 
Logica Programação. ...
Logica Programação. ...Logica Programação. ...
Logica Programação. ...
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
Lp
LpLp
Lp
 
122172 1445
122172 1445122172 1445
122172 1445
 
Aula 3-lógica.pptx
Aula 3-lógica.pptxAula 3-lógica.pptx
Aula 3-lógica.pptx
 
Algoritmos e Programação
Algoritmos e ProgramaçãoAlgoritmos e Programação
Algoritmos e Programação
 
Forb.cap1
Forb.cap1Forb.cap1
Forb.cap1
 
Aula 1 - Programação 1
Aula 1 - Programação 1Aula 1 - Programação 1
Aula 1 - Programação 1
 
122172 1444
122172 1444122172 1444
122172 1444
 
Conceitos fundamentais-de-algoritmos
Conceitos fundamentais-de-algoritmosConceitos fundamentais-de-algoritmos
Conceitos fundamentais-de-algoritmos
 
Conceitos Fundamentais de algoritmos
Conceitos Fundamentais de algoritmosConceitos Fundamentais de algoritmos
Conceitos Fundamentais de algoritmos
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 
Introduçao a Algoritmo...................
Introduçao a Algoritmo...................Introduçao a Algoritmo...................
Introduçao a Algoritmo...................
 
Aula 01 - Apresentação - Introdução a Lógica.pptx
Aula 01 - Apresentação - Introdução a Lógica.pptxAula 01 - Apresentação - Introdução a Lógica.pptx
Aula 01 - Apresentação - Introdução a Lógica.pptx
 
Introdução a lógica de Programação Aula-01
Introdução a lógica de Programação Aula-01Introdução a lógica de Programação Aula-01
Introdução a lógica de Programação Aula-01
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
Aula01
Aula01Aula01
Aula01
 

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
  • 4. Abstração Realidade O que abstrai desta realidade? Algoritmos e Programação Docente Ricardo Castro setembro 2022
  • 5. Abstração O que é abstração? Algoritmos e Programação Docente Ricardo Castro setembro 2022
  • 6. Abstração Abstração = Operação mental que observa a realidade e captura apenas os aspectos relevantes para um contexto Algoritmos e Programação Docente Ricardo Castro setembro 2022
  • 7. Algoritmos e Programação Docente Ricardo Castro setembro 2022
  • 8. Algoritmos e Programação Docente Ricardo Castro setembro 2022
  • 9. Algoritmos e Programação Docente Ricardo Castro setembro 2022
  • 10. MASLOW 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