A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Conceitos Fundamentais de Algoritmos

Apresentações semelhantes


Apresentação em tema: "Conceitos Fundamentais de Algoritmos"— Transcrição da apresentação:

1 Conceitos Fundamentais de Algoritmos
Curso de Programação VBA

2 Algoritmo Qual sua importância na programação?
É o pensamento descrito como uma sequência de passos que visam atingir um objetivo Algoritmos no dia-a-dia: Receita de bolo, orientação para se chegar em algum endereço Qual sua importância na programação? Representar o raciocínio, independentemente de detalhes computacionais, que podem ser acrescentados mais tarde Focalizar primeiro na resolução algorítmica do problema, possibilitando depois codificá-la em qualquer linguagem

3 Algoritmo Texto Informal
Modo de preparo: Bata a margarina, as gemas e o açúcar até ficar cremoso Junte o leite, o coco e a farinha e continue batendo Acrescente o fermento e, por último, as claras em neve Unte uma forma com manteiga e leve ao forno para assar Quão cremoso? Quanto tempo? De uma só vez? Quanto tempo?

4 Algoritmo Texto Informal Refinado
Modo de preparo: Bata a margarina, as gemas e o açúcar até ficar cremoso por 15 minutos Junte o leite, o coco e a farinha e continue batendo por mais 15 minutos Acrescente 20 g de fermento e, por último, as claras em neve Unte uma forma com manteiga e leve ao forno para assar por 30 minutos

5 Algoritmo Texto Informal 2
Troca de pneu: Abra o porta-malas e verifique se todos os acessórios estão lá. Em caso negativo, feche o porta-malas e peça carona a alguém. Em caso positivo, retire o triângulo, posicione-o a cerca de 30m do carro, e, depois, retire o estepe e o macaco. Levante o carro...

6 Algoritmo Gráfico Informal
Troca de pneu

7 Algoritmo Gráfico Informal
Exercício Troca de Lâmpada Descreva detalhadamente a tarefa de troca de uma lâmpada

8 Resolução Exercício Lâmpada
Acionar o interruptor Se a lâmpada não acender, então Pegar uma escada; Posicionar a escada embaixo da lâmpada; Buscar uma lâmpada nova; Acionar o interruptor; Subir na escada; Retirar a lâmpada queimada; Colocar a lâmpada nova; Acionar o interruptor e testar a lâmpada

9 Algoritmo Gráfico Semi-formal
Troca de pneu (Fluxograma) Abre o porta-malas Acessórios OK? Sim Pega o triângulo Não Fecha o porta-malas

10 Algoritmo Gráfico Semi-formal
início ir para o primeiro soquete posicionar escada não acendeu? F soquetes restantes < 10 buscar lâmpada nova F V acionar o interruptor retirar a lâmpada queimada V acionar o interruptor subir na escada colocar lâmpada nova não acendeu? retirar a lâmpada queimada F ir ao próximo soquete colocar lâmpada nova V pegar uma escada acionar o interruptor fim

11 Algoritmo Textual Formal
Troca de pneu: Abre (porta_malas) Se acessorio_ok = FALSO Então fecha(porta_malas) espera_carona() Senão pega_triangulo() ...

12 Algoritmo Problemas Complexos
Problema da Torre de Hanói Seja a seguinte situação: deve-se mover todos os discos do primeiro eixo para o terceiro mantendo-se a ordem original em cada movimento, pode-se mover apenas um disco um disco nunca poderá ser sobreposto por outro maior

13 Algoritmo Problemas Complexos
Passo 1 Mova o disco menor para o terceiro eixo

14 Algoritmo Problemas Complexos
Passo 2 Mova o disco médio para o segundo eixo

15 Algoritmo Problemas Complexos
Passo 3 Mova o disco menor para o segundo eixo

16 Algoritmo Problemas Complexos
Passo 4 Mova o disco maior para o terceiro eixo

17 Algoritmo Problemas Complexos
Passo 5 Mova o disco menor para o primeiro eixo

18 Algoritmo Problemas Complexos
Passo 6 Mova o disco médio para o terceiro eixo

19 Algoritmo Problemas Complexos
Passo 7 Mova o disco menor para o terceiro eixo

20 Algoritmo Problemas Complexos
Sequência de passos completa Passo 1: mova o disco menor para o 3 eixo Passo 2: mova o disco médio para o 2 eixo Passo 3: mova o disco menor para o 2 eixo Passo 4: mova o disco maior para o 3 eixo Passo 5: mova o disco menor para o 1 eixo Passo 6: mova o disco médio para o 3 eixo Passo 7: mova o disco menor para o 3 eixo

21 Abstração Operação mental que observa a realidade e captura apenas os aspectos relevantes para um contexto

22 Algoritmo Textual Formal
Exemplos de Abstração Nível 4 Sociedade Esforços humanos Economia Nível 3 A maioria das pessoas Indústrias Bens agrícolas Nível 2 Criança mimada Companhia de cosméticos Gado Nível 1 Minha irmã, Tracy Max Factor, Inc. Bessie, a vaca

23 Sistema Computacional
Peopleware Software Sistema Computacional Hardware

24 Programa de Sistema Computacional
A programação de um sistema computacional pode ser resumida em 3 passos básicos Entrada Processamento Saída Dispositivo de Entrada UCP Dispositivo de Saída Memória

25 Programa de Sistema Computacional
Exemplo 1 – Exibir a média de 2 números Entrada Processamento Saída Dispositivo de Entrada UCP Dispositivo de Saída Memória 6 , 8 (6 + 8) / 2 7

26 Programa de Sistema Computacional
Exemplo 2 – Exibir se o aluno está aprovado ou reprovado Entrada Processamento Saída Dispositivo de Entrada UCP Dispositivo de Saída Memória Se (5+3)/2>=7 aprovado Senão reprovado Ana, 5, 3 Ana, reprovado

27 Programa 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 Baixo Nível Alto Nível (1) (2) (3)

28 Noções de Lógica Exemplos de aplicação de lógica
O quarto está fechado e que meu livro está no quarto. Então, preciso primeiro abrir o quarto para pegar 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 Todo mamífero é animal e todo cavalo é mamífero. Então, todo cavalo é animal Todo mamífero bebe leite e o homem bebe leite. Então, todo homem é mamífero e animal (mas não é um cavalo)

29 Atividade 1 (10 minutos) 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?

30 Atividade 1 (10 minutos) Resolva os seguintes problemas de lógica
P5 – Qual o próximo número da seqüê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 capim para a outra margem do rio. A jangada só tem lugar para ele e mais outra coisa. O que ele deve fazer para atravessar o rio com seus pertences intactos?

31 Respostas Atividade 1 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 capim; deixe o capim e leve a cabra de volta; deixe a cabra e leve o leão, depois é só voltar e pegar a cabra.

32 Em Lógica um conceito importante é o de “Proposição”
Noções de Lógica Em Lógica um conceito importante é o de “Proposição” VOCÊ SABE O QUE É UMA PROPOSIÇÃO?

33 Noções de Lógica Proposição: é um enunciado verbal, ao qual deve ser atribuído, sem ambigüidade, um valor lógico verdadeiro (V) ou falso (F). Exemplos de proposições: Marcos é Professor (V) 3 + 5 = 10 (F) 5 < 8 (V) Contraexemplos de Proposições: Onde você vai ? 3 + 5 Os estudantes jogam vôlei. (quais ?) Voltar e pegar a cabra.

34 Noções de Lógica Operações Lógicas: são usadas para formar novas proposições a partir de proposições existentes. Considerando p e q duas proposições genéricas, pode-se aplicar as seguintes operações lógicas básicas sobre elas Definindo a prioridade: Usar parênteses Ex:((p v q)^(~q)) ou Obedecer (~) > (^) > (v)

35 Noções de Lógica Operações Lógicas: são usadas para formar novas proposições a partir de proposições existentes. Considerando p e q duas proposições genéricas, pode-se aplicar as seguintes operações lógicas básicas sobre elas Definindo a prioridade: Usar parênteses Ex:((p v q)^(~q)) ou Obedecer (~) > (^) > (v)

36 Noções de Lógica Exemplos de aplicação das operações lógica Considere:
p = 7 é primo = (V) q = 4 é impar = (F) Então: 4 NÃO é impar = ~q = (~F) = (V) 7 NÃO é primo = ~p = (~V) = (F) 7 é primo E 4 NÃO é impar = p ^ ~q = (V ^ (~F)) = (V ^ V) = (V) 7 é primo E 4 é impar = p ^ q = (V ^ F) = (F) 4 é impar E 7 é primo = q ^ p = (F ^ V) = (F) 4 é impar E 7 NÃO é primo = q ^ ~p = (F ^ (~V)) = (F ^ F) = (F)

37 Noções de Lógica Exemplos de aplicação das operações lógica (Cont.)
Considere: p = 7 é primo = (V) q = 4 é impar = (F) Então: 7 é primo OU 4 NÃO é impar = p v ~q = (V v (~F)) = (V v V) = (V) 7 é primo OU 4 é impar = p v q = (V v F) = (V) 4 é impar OU 7 é primo = q v p = (F v V) = (V) 4 é impar OU 7 NÃO é primo = q v ~p = (F v (~V)) = (F v F ) = (F)

38 Noções de Lógica Exemplos de aplicação das operações lógica Resumindo:
Ou seja: Não (~) troca o valor lógico. Se é F passa a ser V e vice-versa E (^) só tem valor V quando as duas proposições forem V, basta uma proposição ser F para o resultado ser F OU (v) só tem valor F quando as duas proposições forem F, basta uma proposição ser V para o resultado ser V

39 Atividade 2 Considerando p = V e q = F, resolva as seguintes expressões lógicas ~p ~q p ^ q p v q (~p) ^ q (~p) v q p ^ (~q) p v (~q) (~p) ^ (~q) (~p) v (~q)

40 Respostas Atividade 2 Considerando p = V e q = F, resolva as seguintes expressões lógicas ~p = F ~q = V p ^ q = F p v q = V (~p) ^ q = F (~p) v q = F p ^ (~q) = V p v (~q) = V (~p) ^ (~q) = F (~p) v (~q) = V

41 Lógica de Programação e Algoritmo
O QUE É PROGRAMAÇÃO DE COMPUTADORES?  INSTRUÇÕES

42 Instruções Delimitadoras
Servem para especificar o início e o fim do algoritmo. início ... fim

43 Declaração de Variáveis
Utilizado para especificar os nomes e os respectivos tipos das variáveis necessárias no 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

44 Declaração de Variáveis
Exemplos: declare a,b,c: real; declare nome: string; declare sexo: caracter; declare pratica_esporte: lógico;

45 { <comentário> }
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 }

46 Instrução de Entrada Usada para ler dados de entrada do algoritmo.
leia(<variáveis>); onde: <variáveis> - conterão os dados lidos.

47 Instrução de Entrada Exemplos: leia(a,b,c); leia(nome); leia(sexo);
leia(pratica_esporte);

48 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.

49 escreva(“O valor de D é: ”, D); escreva(nome, sexo);
Instrução de Saída Exemplos: escreva(“O valor de D é: ”, D); escreva(nome, sexo); escreva(“Pratica esporte.”);

50 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.

51 Instrução de Atribuição
Exemplos D = B^2-4*A*C; nome = “Paulo”; Pratica_Esporte = TRUE; Sexo = ‘M’;

52 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.

53 Estruturas de Controle
São elas: Estrutura Seqüencial: os comandos ou instruções vão sendo executados na ordem em que aparecem no algoritmo.

54 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

55 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.

56 Exemplo: se A>0 então B = A + 1; A = 0; fim-se
Instruções de Seleção Exemplo: se A>0 então B = A + 1; A = 0; fim-se

57 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.

58 Instruções de Seleção Exemplo: se A>B então B = A + 1; A = 0; senão
fim-se

59 Instruções de Seleção Exemplo: se A>B então B = A + 1; A = 0; senão
fim-se

60 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.

61 Instruções de Repetição
Exemplo: enquanto A>0 faça leia(B); escreva(B); A = A - 1; fim-enquanto;

62 Instruções de Repetição
Repita / Até repita <comandos>; até <sentença>; OBS.: <comandos> serão executados até que <sentença> resulte em TRUE.

63 Instruções de Repetição
Exemplo: Repita leia(B); escreva(B); A = A - 1; até A<1;

64 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

65 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;

66 Estrutura de um Algoritmo
Um algoritmo em Portugol tem a seguinte estrutura: início <declaração de variáveis> <inicialização de variáveis> <corpo lógico do algoritmo> fim

67 Lógica de Programação & Algoritmo
Estruturas básicas de um algoritmo: - Seqüê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

68 Lógica de Programação & Algoritmo
Algoritmo para ligar de um telefone público - Seqüência Início Tirar o fone do gancho; Ouvir o sinal de linha; Introduzir o cartão; Teclar o número desejado; Conversar; Desligar; Retirar o cartão; Fim. Este algoritmo só usa uma estrutura de sequência “Início/Fim”

69 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 Tirar o fone do gancho; Se ouvir o sinal de linha, então Introduzir o cartão; Teclar o número desejado; Conversar; Desligar; Retirar o cartão; Senão ir para o próximo telefone; Fim. Este algoritmo usa uma estrutura de decisão “Se-então/Senão”

70 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 Repita Tirar o fone do gancho; Se ouvir o sinal de linha então Introduzir o cartão; Teclar o número desejado; Conversar; Desligar; Retirar o cartão; Senão ir para o próximo telefone; Até ouvir o sinal de linha Fim. Este algoritmo usa uma estrutura de repetição “Repita/Até”

71 Lógica de Programação & Algoritmo
Algoritmo para ligar de um telefone público – Repetição E se o telefone chamado estiver com defeito? E se o telefone chamado estiver ocupado? E se acabarem os créditos do cartão telefônico? E se ...? Um algoritmo SEMPRE sofre melhorias sucessivas. (Técnica de refinamentos sucessivos)

72 Fluxogramas - Exemplo 1 Achar o valor da expressão: D = B2 - 4AC.
Início 1 Escrever D Ler A, B, C D = B^2 - 4*A*C 1 Fim

73 Fluxogramas - Exemplo 2 Achar o maior de dois números A e B.
Início Ler A, B Comparar A com B A=B A<B A>B Escrever: “A e B iguais” Escrever: “A é maior” Escrever: “B é maior” Fim

74 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

75 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

76 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.

77 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.

78 Atividade 3 Reescreva corretamente o algoritmo abaixo
Algoritmo aprovação Início Obter as 2 notas do aluno; Repita Se Média do aluno >=7, então Informar que o aluno está REPROVADO; Até Média < 7 Senão Média >= 7 Informar que o aluno está APROVADO; Até último aluno; Fim.

79 RESPOSTA - Atividade 3 Algoritmo aprovação Início Repita
Obter as 2 notas do aluno; Se Média do aluno >=7, então Informar que o aluno está APROVADO Senão Informar que o aluno está REPROVADO; Até último aluno Fim

80 Outros exercícios... 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)

81 mais exercícios... 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

82 ainda mais exercícios... 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

83 ALGUNS COMANDOS DE PROGRAMAÇÃO
LA VBA declare Dim Início Sub ou Function Fim End Sub ou End Function Caracter String Inteiro Integer Real Double Lógico Boolean Se If Enquanto While


Carregar ppt "Conceitos Fundamentais de Algoritmos"

Apresentações semelhantes


Anúncios Google