Como escrever um Algoritmo Estruturado Módulo IV: Lógica da Programação e Algoritimos Versão 1.0 Faculdade de Comunicação –UnB Parte A, B e C - PCLLA/FAC/UnB Benedito Medeiros Neto Universidade Brasília – 27 e 29 de Março, 5 e 12 de Abril de 2017 PROGRAMAÇÃO DE COMPUTADORES, LÓGICAL, LINGUAGEM E APLICAÇÕES/EAD M_I - Introdução ao Pensamento Computacional e Conceitos; M_II - Ambientes de Ensino: Linguagem Python (Lista de Exercício/NM); M_III - Tomadas de decisões (Lista de Exercício/MN); da Programação e Algoritmos (Lista de Exercício/BMN); M_V - Estruturas: laços, listas e fila (Lista de Exercícios/MN); _VI - Strings: dados textuais e matrizes (Lista de M_IV - Lógica M Como escrever um Algoritmo Estruturado Módulo IV: Lógica da Programação e Algoritimos PARTES A, B e C Lógica: Relaciona-se com a razão, investiga a correção do pensamento/raciocínio, ou seja, quais operações são válidas ou não. Estuda e ensina a colocar ordem no pensamento. TAREFA: Leitura da Representação de ALGORITMOS (Baixar no site) . ? Porque os ALGORITMOS ficaram tão relevantes para o profissional da comunicação? Nos últimos 10 anos ? PARTE A PARTE A: Como escrever um Algoritmo Estruturado Algoritmo: É uma sequência finita de passos para realizar uma tarefa ou solucionar um problema. Na prática, criamos algoritmos com o objetivo de automatizar: queremos que o resultado de uma tarefa possa ser conhecido ou obtido repetidamente, no mesmo intervalo de tempo, com a mesma qualidade. TAREFA: Quais as principais diferenças entre as representações de ALGORITIMOS? Vide texto. Lista de Presença do dia 27/03/2017 Como escrever um Algoritmo Estruturado Passo 1: leia cuidadosamente a especificação do problema até o final (fazer anotações e dúvidas) Passo 2: Exemplo de ALGORITIMO A enquanto não ENTENDEU faça se VEZES < 5 então “leia a especificação até o final VEZES <= VEZES + 1; senão “pergunte ao professor até entender”; ENTENDEU <= verdadeiro fim do se fim enquanto Como escrever um Algoritmo Estruturado Passo 3: Levantar e analisar todas as saídas exigidas na especificação do PROBLEMA (Tela do computador ou outro dispositivo); Passo 4: Levantar e analisar todas as entradas citadas na especificação do PROBLEMA (leituras, no teclado, etc); Passo 5 : Verificar se é necessário gerar valores internamente ao algoritmo e levantar as variáveis necessárias e os valores iniciais de uma (comentar); Como escrever um Algoritmo Estruturado Passo 6: Levantar e analisar todas as transformações necessárias para, dadas entradas e valores gerados internamente, produzindo as especificadas; Passo 7: Testar cada passo do algoritmo, verificando se as transformações intermediárias executadas estão conduzindo aos objetivos desejados. Utilizar, sempre que possível, valores de teste que permitam prever os resultados a priori; Passo 8: Fazer uma reavaliação geral, elaborando o algoritmo através da interação das parte. TAREFA: Completar a especificação do ALGORITMO A do Passo 2, elaborar a sua Representação, usando Fluxograma. Enviar via SLACK para MN. Lista de Presença do dia 29/03/2017 Como escrever um Algoritmo Estruturado Algoritmo ALGORITIMO B repita até elaborar um ALGORITMO #Vou avaliar a minha disposição Escreve “Estou avaliando" se não estou disposto # Variável Boleana então interrompa meu estudo senão Invente um problema Escreva um algoritmo fim se fim repita Mostre os algoritmos feitos a um colega Escreva ”Gostei !” Escreva “Reveja o seu Algoritmo" fim do algoritmo A ESCOLHA de uma LINGUAGEM de PROGRAMAÇÃO LISTA DE EXERCÍCIO: Definir bem entra e saída. Usar o Python para implementar o ALGORITIMO B. Incluir nome do programador, data e local. Um teste do Programa. Este é O EXERCÍCIO 9. A escolha de uma Linguagem de programação LISTA DE EXERCÍCIO: Usar o Python para implementar o EXERCÍCIO 15, completo. Dado um conjunto de valores inteiros e positivos, fornecido pelo teclado, determinar qual é o menor valor do conjunto Achar o maior e menor número de uma série de números positivos fornecidos (existe pelo menos um número para iniciar). pg. 29. Lidando com Erros a) b) Sabendo Porque Python Não Entende Você Examinando as Fontes dos Erros b.1) Classificando quando os erros ocorrem b.2) Distinguindo tipos de erros c) Capturando exceções c.1) Manipulando exceções básicas c.2) Manipulando exceções mais mais especificas c.3) Manipulação de exceções aninhadas d) Levantando Exceções => Capítulo 9 do Livro TEXTO: Python para Leigos de John Paulo Mueller, 2016 LISTA DE EXERCÍCIO a) b) c) d) e) f) g) EXERCÍCIO 14 OU PROGRAMA 14 Especificação "Por sua conta!" Especificação das Saída e Entradas Elaborar o ALGORITMO C Programação em Python Rotina de teses Entrega, VIA SLACK. EDITOR DE PROGRAMAS - IDLE Passo 1: Abrir IDLE - Ambiente de Desenvolvimento integrado. Digite help >>>help() Passo 2: Digite o primeiro comando de P15 (14). Rode (run) P15 (14) Passo 3: Salve P15 (14). Veja onde o Computador vai salvar o arquivo ”BMN-EXERCÍCIO 15 (14).py" Passo 4: Digite P15 (14) inteiro, e salve P15. Depois rode o programa P15 (14) Passo 5: Sair do IDLE (exit ou .....) Fazer Mais Exercícios de Algoritmo e de Programação a) b) c) d) FARRER, H; et al. Algoritmos Estruturados. Rio de Janeiro: Guanabara Dois, 1985. GUIMARÃS/LAJE. Algoritmos e Estrutura de Dados. Rio de Janeiro: LTC, 1985. Paulo Barry & Davis Griffiths. Use a Cabeça! Programação. Rio de janeiro: Atlas Books, 2010. John Paul Mueller. Começando a Programar Python – para Leigos. Rio de Janeiro: ALTA BOOKS, 2016 LISTA DE EXERCÍCIOS EXERCÍCIO 9 ( Elaborar um Algoritmo) EXERCÍCIO 15 ("maior e menor número de uma série”) EXERCÍCIO 14 ("por sua conta") PARTE B PARTE B: AVALIANDO como você pode ter benefícios pessoais com PYTHON Criar amostras brutas de aplicação (Aprendizagem) Aplicações basedas em codificação para navegador (mobilidade) Projetor aplicações matemáticas, científicas e de engenharia Trabalhar com XML (Textos) Interagir com banco de dados (Big Date) Desenvolver interfaces para usuários (Realidade aumentada) PARTE B: AVALIANDO como você pode ter benefícios pessoais com PYTHON Executando Mineração de Dados (pag. 344) "Todo mundo está coletando dados sobre tudo e todos. Tentar peneirar através das montanhas de dados coletados é uma tarefa impossível sem muita automação customizada. A naturexa flexível do Python, combina com sua linguagem concisa e que faz alterações estremamente rápida, faz com que ele seja fqavorito entre pessoas que executam mineração de dados diaramente.” PARTE B: Como você pode elaborar um BOM ALGORITMO (D) E PROGRAMA (6) Dados tês valores X, Y e Z, verificar se eles podem ser os comprimentos dos lados de um triângulo e, se forem verificar se é um triângulo equilatátero, isosoceles oe escalena. Se eles não forem um triângulo, escrever uma mensage. Antes de começar a elaboração do Algoritimo, torna-se necessário a revisão de algumas propiedade e definições. Propriedade – o comprimento de cada lado de um triângulo é menor do que a soma dos comprimentos dos outros dois lados. Definição 1 – Chama-se triângulo equilátero ao triângulo que tem os comprimentos dos três lados iguais. Definição 2 - Chama-se triângulo isósceles ao triângulo que tem os comprimentos de dois lados iguais. Portanto, todo triângulo equilátero é também isosceles. Definição 3 – Chama-se triângulo escaleno ao triângulo que tem os comprimentos de seus lados diferentes. Decidindo como você pode elaborara um Algoritimo Algoritimo Defina os tipos das variáveis Leia os números se existe triângulo então verifique o tipo do triângulo senão escreva uma mensagem fim do se fim do algoritimo Decidindo como você pode elaborara um Algoritimo Ref. Leia os números leia X, Y, Z Fim ref. Ref. Se existe triângulo se X < Y + Z e Y < X + Z e Z < X + Y Fim ref. Decidindo como você pode elaborara um Algoritimo Ref. Verifique o tipo do triângulo se X = Y e X = Z então escreva “TRIÂNGULO EQUILÁTERO” senão verifique se ele é escaleno ou isóscels fim fim ref. Decidindo como você pode elaborara um Algoritimo Ref. Verifique se ele é escaleno ou isósceles se X = Y ou X = Z ou Y= Z então escreva “TRIÂNGULO ISÓSCELES” senão escreva “TRIÂNGULO ESCALENO" fim fim ref. Decidindo como você pode elaborara um Algoritimo Ref. Verifique se ele é escaleno ou isósceles se X = Y ou X = Z ou Y= Z então escreva “TRIÂNGULO ISÓSCELES” senão escreva “TRIÂNGULO ESCALENO fim fim ref. Decidindo como você pode elaborara um Algoritimo Ref. Verifique se ele é escaleno ou isósceles se X = Y ou X = Z ou Y= Z então escreva “TRIÂNGULO ISÓSCELES” senão escreva “TRIÂNGULO ESCALENO fim fim ref. Decidindo como você pode elaborara um Algoritimo Ref. escreva mensagem escreva “NÃO EXISTE TIRIÂNGULO” fim ref. Ref. Defina o tipo das variáveis declare X, Y, Z numérico fim ref. TAREFA. Montar o AGORITIMO e Implementar em Python (EXERCÍCIO 6) Decidindo como você pode elaborara um Algoritimo LISTA DE EXERCÍCIOS: Montar o AGORITIMO completo, a partir de suas partes, e Implementar o PROGRAMA 6, em Python (EXERCÍCIO 6) Como extrair um Algoritmo de UM PROGRAMA FONTE # PROGRAMA 1 - FAC/UnB - Programa Elaborado por BMN # DATA: 16/10/16 - Trabalhando com STRINGS print("Seja Benvindo ao Jogo da Adivinhações") print("Jogador A, sua vez") # Jogador A i = input("Entre com um Numero menor que 10 e maior do que 0: ") into = int(i) print(into) h = input("Que horas são agora: ") hora = int(h) Faça DownLoad do Fonte NA LOUSA DIGITAL! ROTINA DE TESTES PROGRAMA P1 Passo 1: Abri o Python (3.5. ou 2.7.) que você já instalou na TAREFA anterior Passo 2: Digite o primeiro comando, exatamente como foi escrito, veja o afastamento Passo 3: Veja o resultado, está correto? Passo 4: Digite o próximo comando. cada comando do P1, e ver cada resultado Passo 5: Saia do Python Como EXTRAIR um ALGORITMO Estruturado LISTA DE EXERCÍCIOS: Elaborar o ALGORITMO a partir do Programa Fonte 1, fazer modificações que você deseja, por exemplo, permitir 3 tentativa ao Jogador B. EXERCÍCIO 1: Voce deve elaborar o Algoritmo, implementar o novo PROGRAMA 1, testar e incluir para entregar na sua LISTA EXERCÍCIOS DO MÓDULO IV, COMPLETO. Veja o fonte do PROGRAMA na Lousa Digital. . EDITOR DE PROGRAMAS - IDLE Passo 1: Abrir IDLE - Ambiente de Desenvolvimento integrado. Digite help >>>help() Passo 2: Digite o primeiro comando de P1. Rode (run) P1 Passo 3: Salve P1. Veja onde o Computador vai salvar o arquivo "PrimeiroProg.py" Passo 4: Digite P1 inteiro, e salve P1. Depois rode o programa P1 Passo 5: Sair do IDLE (exit ou .....) Como MANTER um ALGORITMO Estruturado EXEMPLO: Desenvolvendo um Menu a partir de um programa exitente: Coffe Break = . > CAFÉ DA MANHÃ BRASILEIRO • PROGRAMA 3 da sua Lista • Seguir os Passos recomendável p/DESENVOLVIMENTO • Seguir os Passos recomendável para a p/IMPLEMETAÇÃO • Seguir os Passos recomendável p/Rotina dos TESTES e ACEITAÇÃO • ENTREGA formal/Autor/Data/Local (Slack) PROGRAMA 03: Você pode criar um Menu para o Café da Manhã (P3) Onde está o fonte ? Entre como o nome do livro: Começando a programar em Python para leigos www.altabooks.com.br (pg. 4) Tapioca Verduras Ovos Salsicha Parte do PROGRAMA 3 (fonte .py, pg. 131) order() print("1. Eggs") print("2. Pancakes") print("3. Waffles") print("4. Oatmeal") MainChoice = int(input("Choose a breakfast item: ")) if (MainChoice == 2): Meal = "Pancakes" elif (MainChoice == 3): Meal = "Waffles" if (MainChoice == 1): print("1. Wheat Toast") print("2. Sour Dough") print("3. Rye Toast") print("4. Pancakes") Bread = int(input("Choose a type of bread: ")) Como escrever um Algoritmo Estruturado LISTA DE EXERCÍCIOS: (i)Fazer o DownLoad do Programa Fonte do Livro ou da Lousa Digital (ii) Descrever o ALGORITMO 3, em uma linguagem de presentação (iii) Implementar o PROGRAMA 3 (iv) Elaborar e fazer a rotinaa de testes de verificação (v) Fazer a entrega do produto Distinguindo tipos de ERROS (p. 153) “Você pode distinguir erros por tipo, isto é, por como els são feitos. Conhecer os tipos de erro ajuda a entender onde procurar por problemasem potencial na aplicação. SINTÁTICO SEMÂNTICO LÓGICO LISTA DE EXERCÍCIOS EXERCÍCIO 6 (TRIÂNGULO/Especificação Em conjunto) EXERCÍCIO 1 (ADIVINHAR UM NÚMERO/Modificar o Fonte) EXERCÍCIO 3 (CAFÉ NA POUSADA/Coffe Break) LISTA DE PRESENÇA DO DIA 05/04/2017?Uma Pergunta para Marília? PARTE C Lógica da Programação e Algoritimos Organizando Informações para um Algoritmo ROTEIRO DE ESTUDO (Vide uma apresentação de um Tutorial na LOUSA Digital) ENTRANDO COM DADOS REPETITIVOS E EXECUTANDO TAREFAS REPETITIVAS => O que são listas? • Construindo, acessando e manipulando listas • EXEMPLO DE USO DE LISTA => Como e onde utilizá-las • Matrizes (MN) Strings (MN) e Listas Especiais (MN) OBJETIVO DA PARTE C Entender, Especificar, Elaborar o Algoritmo, Passar para Python, Testar o Programa e Entregar o Exercício: PROGRAMA 2 – VOCÊ QUER ESCOLHER DE UM ARTEFATO PARA O SEU GRUPO? PROGRAMA 12 – QUAL A SUA MENÇÃO NA DISCIPLINA? VIDE AS REGRAS NO PLANO DE ENSINO PROGRAMA 11 – QUAL O PERCENTUAL DE AUSÊNCIA NAS AULAS DA DISCIPLINA? VIDE AS REGRAS NO PLANO DE ENSINO Como escrever um Algoritmo Estruturado EXERCÍCIO 2 - VOCÊ QUER ESCOLHER DE UM ARTEFATO PARA O SEU GRUPO? Ver Programa Exemplo. As informações do estudante serão colocadas VIA no Teclado: O Programa deve usar um Loop para entrar com DADOS na Lista • Programa deve mostrar a Lista NO FINAL. LISTA DE EXERCÍCIOS EXERCÍCIO 2 – ESCOLHA DE UM ARTEFATO SUAS DÚVIDAS DA ESPECIFICAÇÃO: • SAÍDAS (Coletivo de Estudantes) • ENTRADAS (Coletivo de Estudantes) • ARTEFATOS JÁ DEFINIDOS • ARTEFATOS NÃO ESCOLHIDOS • ALGORITMO (Usar Laço, While or For, FARRER, pg. nn) LISTA DE EXERCÍCIOS EXERCÍCIO 2 – ESCOLHER O SEU ARTEFATO DADOS Algoritmo: VIDE O PROGRAMA EXEMPLO DE ESCOLHA DE CORES Como APRENDER A ESCREVER um Algoritmo Estruturado Como escrever um Algoritmo Estruturado EXERCÍCIO 12 (VAMOS CALCULAR A SUA MENÇÃO?) Ao final do semestre cada estudante da Disciplina terá: a) Entregue 7 Lista de Exercício b) Feito um proposta para o Artefato do Grupo (Vide peso P. Ensino) c) Defendido o seu Artefato (Vide peso P. Ensino) d) Entregue o descritivo ou documentação do Produto (Manual de Uso) ESPECIFICAÇÃO: As informações do estudante serão introduzidas via Teclado: nome; matrícula; quais listas foram entregues completas (1) e imcompletas (0.5); nota da Proposta; e nota do Artefato. O Programa deve mostrar a Mensão Final do Estudante. LISTA: EXERCÍCIOS 12 EXERCÍCIO 12 – MENÇÃO SUAS DÚVIDAS SOBRE A ESPECIFICAÇÃO: SAÍDAS (Coletivo de Estudantes. Plano de Ensino) ENTRADAS (Coletivo de Estudantes. Plano de Ensino) LISTA DE EXERCÍCIOS EXERCÍCIO 12 – MENÇÃO SUAS DÚVIDAS DA ESPECIFICAÇÃO DADOS ALGORITMO (FARRER, pg. nn) LISTA: EXERCÍCIO 12 EXERCÍCIO 12 – MENÇÃO (uso de listas para entrada de dados e laços para fazer os cálculos) Algoritmo: Entrar com os conceitos das 7 Listas de Exercício; # (Exercício 2) Entrar com a nota da proposta : Entrar com a nota do Artefato; Calcular a média final do Estudante (Fórmula); Encontrar a menção (Intervalos) fim do algoritmo. LISTA: EXERCÍCIO 11 PROGRAMA 11 – Elabora um Algoritmo e um Programa em Python que responda às seguintes perguntas Qual foi o percentual de ausência do Estudante às aulas da DISCIPLINA? Ele faltou no dia dd/mm/17? LISTA: EXERCÍCIO 11 EXERCÍCIO 11 – AUSÊNCIA SUAS DÚVIDAS SOBRE A ESPECIFICAÇÃO SAÍDAS (Percentagem de Ausência, aprovado ou não. Se o Estudante estava ausente no dd/mm/17, Plano de Ensino) ENTRADAS (Matrícula do Estudante: da/mm/17: ausente (0); Presente(1) ) Ver o Plano de Ensino. LISTA DE EXERCÍCIO – PROGRAMA 11 PROGRAMA 11 – AUSÊNCIA NAS AULAS DA DISCIPLINA ENTENDER A SOLICITAÇÃO Uso de LISTAS e Laços! Dados Algoritmo LISTA DE EXERCÍCIOS EXERCÍCIO 1 – AUSÊNCIA NAS AULAS DA DISCIPLINA MATRIZ (Portugol, pg. 84; 85; 86; 87) Algoritmo: Entrar com os dados do Estudante; Entrar com as ausências do Estudante; Calcular a percentagem de Ausência do Estudante; Encontrar apercentagem de Ausência (Reprovação se maior que 25% e Aprovação se menor que 25%); Entrar com o dia da aula em que o Estudante quer verificar; fim do algoritmo. LISTA DE EXERCÍCIOS – DA DISCIPLINA PROGRAMA 2 – QUER ESCOLHER UM ARTEFATO PARA O SEU GRUPO? (LISTA) PROGRAMA 12 – QUAL A SUA MENÇÃO FINAL NA DISCIPLINA? (LOOP, WHILE OR FOR) PROGRAMA 11 – QUAL O PERCENTUAL DE AUSÊNCIA NAS AULAS DA DISCIPLINA? ENTRANDO COM DADOS REPETITIVOS E EXECUTANDO TAREFAS REPETITIVAS (LISTA & LOOP) LISTA DE PRESENÇA DO DIA 12/04/2017- Uma Pergunta para Marília