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

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

Conceitos Fundamentais de Algoritmos e Programação para iniciantes REFERÊNCIA: Material dos Profs. Reinaldo Gomes (UFRPE) e Robson.

Apresentações semelhantes


Apresentação em tema: "Conceitos Fundamentais de Algoritmos e Programação para iniciantes REFERÊNCIA: Material dos Profs. Reinaldo Gomes (UFRPE) e Robson."— Transcrição da apresentação:

1 Conceitos Fundamentais de Algoritmos e Programação para iniciantes REFERÊNCIA: Material dos Profs. Reinaldo Gomes (UFRPE) e Robson Fidalgo (UFPE)

2 Algoritmo Textual 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?!? De uma vez só?!? Quanto tempo?!?

3 Modo de preparo: –Bata a margarina, as gemas e o açúcar 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 Algoritmo Textual Informal Refinado

4 Algoritmo Gráfico-Textual Informal Montagem de um Aeromodelo –Material Cola especial para plásticos Estilete Lixas finas Durex ou fita crepe Pregador de roupas, elásticos

5 Identificação das peças Algoritmo Gráfico-Textual Informal

6 Instruções –Leia e entenda as instruções antes de começar a montagem –Lave as peças com água e detergente. Na lavagem serão removidos desmoldantes e sujeiras, que dificultam a colagem e a pintura. Faça isto dentro de uma bacia, para evitar perder peças pequenas, que porventura se soltem –Encontre as peças que devem ser usadas na primeira parte da montagem (figura do slide anterior) –Lixe as peças com cuidado eliminando as rebarbas –... Algoritmo Gráfico-Textual Informal

7 Troca de pneu Abra o porta-mala e verifique se todos 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 30 m do carro, e, depois, retire o estepe e o macaco. Levante o carro... Algoritmo Textual Informal 2

8 Troca de pneu Algoritmo Gráfico Informal

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

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

11 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 Algoritmo: Problemas Complexos

12 Passo 1: mova disco menor para terceiro eixo Algoritmo: Problemas Complexos

13 Passo 2: mova disco médio para segundo eixo Algoritmo: Problemas Complexos

14 Passo 3: mova disco menor para segundo eixo Algoritmo: Problemas Complexos

15 Passo 4: mova disco maior para terceiro eixo Algoritmo: Problemas Complexos

16 Passo 5: mova disco menor para primeiro eixo Algoritmo: Problemas Complexos

17 Passo 6: mova disco médio para terceiro eixo Algoritmo: Problemas Complexos

18 Passo 7: mova disco menor para terceiro eixo Algoritmo: Problemas Complexos

19 Seqüência de passos completa: Passo 1: mova disco menor para terceiro eixo Passo 2: mova disco médio para segundo eixo Passo 3: mova disco menor para segundo eixo Passo 4: mova disco maior para terceiro eixo Passo 5: mova disco menor para primeiro eixo Passo 6: mova disco médio para terceiro eixo Passo 7: mova disco menor para terceiro eixo Algoritmo: Problemas Complexos

20 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)

21 O que é Programação? = ABSTRAÇÃO! A realidade é complexa e rica em detalhes!

22 Abstração Realidade O que você abstrai dessa realidade?

23 Abstração O que é abstração?

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

25

26

27

28 MASLOW

29 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 Sistema de Locadora de Veículo Abstração+Programação

30 Sistema Computacional O que é um Sistema Computacional?

31 Sistema Computacional Sistema Computacional Software Hardware Peopleware

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

33 Programação de Sistema Computacional Exemplo 1 – Exibir a média de dois números Processamento EntradaSaída Dispositivo de Entrada Dispositivo de Saída Memória UCP 6, 8 (6 + 8) / 27

34 Programação de Sistema Computacional Exemplo 2 – Exibir se o aluno está aprovado ou reprovado Processamento EntradaSaí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

35 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 Baixo NívelAlto Nível (1) (2)(3)

36 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 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)

37 Atividade 1 (10min) 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?

38 Atividade 1 (10min) 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?

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

40 Noções de Lógica Em Lógica um conceito importante é o de Proposição Você sabe o que é uma PROPOSIÇÃO?

41 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: Robson Fidalgo é Professor (V) = 10 (F) 5 < 8 (V) –Contra-exemplos de Proposições: Onde você vai ? Os estudantes jogam vôlei. (quais ?)

42 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)

43 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)

44 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)

45 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

46 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)

47 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

48 Lógica de Programação & Algoritmo O que é Programação de computadores? INSTRUÇÕES

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

50 Declaração de Variáveis Utilizado para especificar os nomes e os respectivos tipos das variáveis necessárias no algoritmo declare : ; onde: - lista de nomes de variáveis separados por vírgula - inteiro, real, caracter, string, lógico

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

52 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. { } Exemplo: { Isto é um exemplo de comentário }

53 Instrução de Entrada Usada para ler dados de entrada do algoritmo. leia( ); onde: - conterão os dados lidos.

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

55 Instrução de Saída Usada para mostrar os resultados do processamento dos dados de entrada. escreva( ); onde: - geralmente é o conteúdo de uma ou mais variáveis com a resposta do problema.

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

57 Instrução de Atribuição Utilizado para atribuir um determinado valor a uma variável. ; onde: - nome de uma variável - um valor do mesmo tipo da variável ou uma expressão lógica ou aritmética.

58 Instrução de Atribuição Exemplos D B^2-4*A*C; nome Paulo; Pratica_Esporte TRUE; Sexo M;

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

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

61 Estruturas de Controle Estrutura de Repetição: comandos são executados repetidas vezes até que uma condição de parada seja satisfeita

62 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

63 Instruções de Seleção Tipo simples: se então ; fim-se OBS.: serão executados apenas se resultar em TRUE.

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

65 Instruções de Seleção Tipo composto: se então ; senão ; fim-se OBS.: serão executados apenas se resultar em TRUE. Em caso contrário, serão executados.

66 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

67 Instruções de Repetição Enquanto / Fim-Enquanto enquanto faça ; fim-enquanto; OBS.: serão executados enquanto resultar em TRUE.

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

69 Instruções de Repetição Repita / Até repita ; até ; OBS.: serão executados até que resulte em TRUE.

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

71 Instruções de Repetição Para / Até / Fim-Para para até faça ; fim-para; OBS.: - contador do tipo inteiro - valor inicial da variável - valor final da variável

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

73 Estrutura de um Algoritmo Um algoritmo em Portugol tem a seguinte estrutura: início fim

74 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

75 Lógica de Programação & Algoritmo Algoritmo para ligar de um telefone público - Seqüência Início 1.Tirar o fone 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 seqüência Início/Fim

76 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 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; Fim. Este algoritmo usa uma estrutura de decisão Se-então/Senão

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

78 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)

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

80 Fluxogramas: Exemplo 2 Achar o maior de dois números A e B. Início Ler A, B A=BAB Comparar A com B Escrever: A e B iguais Fim Escrever: A é maior Escrever: B é maior

81 Português Estruturado - Exemplo 1 Achar o valor da expressão: D = B 2 - 4AC. Ler os valores de A, B e C Calcular a expressão D = B 2 - 4AC Mostrar o resultado desse cálculo

82 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

83 Pseudocódigo - Exemplo 1 Achar o valor da expressão: D = B 2 - 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.

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

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

86 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

87 #! /usr/bin/perl -w my $file = $ARGV[0]; open NEW, $file; my $numero_g=0; my $numero_c=0; my $numero_total=0; my $um=0; while ( ) { if (/\>/) { #if ($um == 2) { # last; #} #$um++; next; } # print $_; chomp; for ($i=0; $i

88 UM EXERCÍCIO Construa um algoritmo para escolher as duas maiores laranjas de um balaio

89 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 e = 7) Outros exercícios...

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

91 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 ) 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...

92 AMBIENTES/LINGUAGENS DE PROGRAMAÇÃO LAPASCAL declareVar InícioBegin FimEnd CaracterChar InteiroInteger Real LógicoBoolean LeiaRead EscrevaWrite

93 AMBIENTES/LINGUAGENS DE PROGRAMAÇÃO LAC declare Início{ Fim} CaracterChar InteiroInt RealDouble LógicoBoolean LeiaScanf EscrevaPrintf

94 Próximos passos? Praticar a leitura e entendimento de Algoritmos de sua área de aplicação Aprender uma Linguagem de Programação para Computadores Programação!


Carregar ppt "Conceitos Fundamentais de Algoritmos e Programação para iniciantes REFERÊNCIA: Material dos Profs. Reinaldo Gomes (UFRPE) e Robson."

Apresentações semelhantes


Anúncios Google