Introdução à Programação de Computadores Parte II Prof. Dr. Edson Pimentel Centro de Matemática, Computação e Cognição
Objetivos Aprender a redigir rotinas comuns do dia-a-dia forma de algoritmos Conhecer uma técnica para a construção de algoritmos computacionais
Relembrando... O funcionamento de qualquer computador está baseado nessa arquitetura básica:
APRENDENDO A PROGRAMAR COMPUTADORES: POR ONDE COMEÇAR?
Aprendendo a Programar Computadores O principal componente de um programa de computador é a sua lógica, ou seja, o que o computador deve fazer para resolver um problema. Devemos então DESCREVER essa lógica numa linguagem que o computador entenda É mais fácil começar a programar (organizar a lógica) em uma linguagem de alto nível. Qual é a linguagem de mais alto nível para um ser humano que fala naturalmente o português?
Aprendendo a Programar Computadores Vamos dar os primeiros passos na arte de programar computadores, em uma linguagem mais próxima da linguagem natural. O caminho mais tranquilo é por meio de ALGORITMOS Escrever ALGORITMOS é mais simples porque focam na solução do problemas e não consideram detalhes de linguagem, etc.
ALGORITMOS
Definição de ALGORITMO É uma sequência finita de instruções, ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Um algoritmo fixa um padrão de comportamento a ser seguido, uma norma de execução, com o objetivo de resolver um determinado problema.
O que é LÓGICA? No dia-a-dia dizemos que é algo que é coerente, óbvio, correto. Lógica Logos + Ica É o oposto de Isso não tem Lógica Razão Ciência Estuda o raciocínio/pensamento humano. Estudo de argumentos Argumento é uma sequência de enunciados, na qual um dos enunciados é a conclusão, derivado a partir dos outros enunciados (premissas).
Silogismo - Aristóteles Um silogismo representa um argumento composto de duas premissas e uma conclusão. E estabelece uma conclusão, que pode ser válida ou não. Todos os peixes vivem na água. (premissa1) Golfinhos são peixes. (premissa 2).. Golfinhos vivem na água. (conclusão) Tanto a forma de argumento quando a conclusão são verdadeiras, apesar de esta última ter sido deduzida a partir de uma premissa falsa (golfinhos são peixes).
LÓGICA DE PROGRAMAÇÃO
Lógica de Programação Como pensar como um programador? Falar em lógica de programação significa contextualizar a lógica na construção de programas. Lógica de programação está relacionada ao raciocínio que precisamos desenvolver para resolver um problema cuja solução deverá ser implementada em um computador. Encadear pensamentos para atingir determinado objetivo.
Solução de Problemas A habilidade mais importante para um cientista da computação é a solução de problemas; A solução de problemas é a habilidade de formular questões, pensar criativamente sobre soluções possíveis e expressar uma solução de forma clara e precisa; E aprender a programar é uma excelente oportunidade de praticar as habilidades da solução de problemas.
Exemplo de Problemas Diagnosticar a doença de um paciente a partir da descrição dos sintomas, e medicá-lo. Criar um sistema de informação que permita gerir as entradas/saídas (cargas/descargas) de navios em um porto marítimo. Desenvolver um programa para controle da movimentação de um robô.
Algoritmo Um algoritmo é uma forma de representar a solução de um problema por meio de uma sequência de passos. São exemplos de algoritmos: Receitas de bolos Manuais técnicos Guias de montagem Programas de computadores
EXEMPLO DE CONSTRUÇÃO DE ALGORITMO
Problema Fazer um bolo de chocolate.
Saída Qual o resultado esperado?
Saída
Passos O que é preciso para se obter o resultado desejado?
Passos O que é preciso para se obter o resultado desejado? Ingredientes
Dados de Entrada Ingredientes: 5 ovos. 250 gramas de margarina cremosa. 2 xícaras (chá) de açúcar. 1 xícara (chá) de farinha de trigo. 1 xícara (chá) de chocolate. 200 gramas de côco ralado. 1 copo de leite. 1 colher (sopa) de fermento.
Passos Qual a sequência necessária (de uso dos ingredientes) para se obter o resultado desejado?
Processamento Modo de Preparo Bata a margarina, as gemas e o açúcar até ficar cremoso. Junte o leite, o côco 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.
OUTRO EXEMPLO DE ALGORITMO
Algoritmo Quais os passos para realizar a troca de uma lâmpada?????????????????????? Para quem troca lâmpadas com frequência (ou já viu trocar) os passos podem ser feitos automaticamente Mas e se essa mesma pessoa tiver que deixar uma RECEITA para uma pessoa que nunca trocou uma lâmpada efetuar essa tarefa?
Algoritmo Quais os passos para realizar a troca de uma lâmpada? Pegar uma escada. Posicionar a escada embaixo da lâmpada. Buscar uma lâmpada nova. Subir na escada. Retirar a lâmpada velha. Colocar a lâmpada nova.
Algoritmo E se a lâmpada não estiver queimada? 1.??? 2.??? 3.???
Algoritmo E se a lâmpada não estiver queimada? 1. Acionar o interruptor. 2. Se a lâmpada não acender, então: Pegar uma escada. Posicionar a escada embaixo da lâmpada. Buscar uma lâmpada nova. Subir na escada. Retirar a lâmpada queimada. Colocar a lâmpada nova.
Diversas soluções para um problema Pode haver vários algoritmos para resolver um mesmo problema. Afinal, cada pessoa pensa e age de forma diferente. O desenvolvimento de algoritmos é um exercício de Criatividade Experiência
Diversas soluções para um problema Diferentes algoritmos podem estar corretos, se levarem ao alcance do objetivo final. Entretanto, deve-se procurar desenvolver algoritmos que resolvam o problema com menos esforço e maior objetividade.
ESCREVENDO ALGORITMOS
ALGORITMO: instruções ou comandos Para escrever ALGORITMOS (programas) é necessário o uso de INSTRUÇÕES / COMANDOS. Instrução/Comando: São frases que indicam as ações a serem executadas. São compostas de um verbo no imperativo, ou no infinitivo, mais um complemento. Exemplo: Bata (Bater) duas claras em neve. Ligue (Ligar) os faróis. Some (Somar) dois números. Imprima (Imprimir) resultado da soma.
Pseudolinguagem Formalizar a escrita de algoritmos. Escrita na forma de pseudocódigo. Problema Pseudo linguagem Linguagem de programação Linguagem de máquina se... então... senão... Java, C, Pascal, etc Zeros e uns...
Pseudolinguagem Uma linguagem (ou pseudolinguagem) possui duas características: Sintaxe - como escrever os comandos e seus componentes; Semântica - o significado de cada comando e conceito. A sintaxe e a semântica de uma linguagem de programação englobam várias ações, como, por exemplo: Declarações de Variáveis; Operadores; Comandos de entrada e de saída; Comandos de seleção, repetição etc.
Bloco de Execução Bloco de execução é um conjunto de ações que possui uma função bem definida. O início de um bloco é marcado pela palavra início. O fim de um bloco é marcado pela palavra fim. início <declaração de variáveis> <comandos> fim
Bloco de Execução O próprio algoritmo é um bloco de execução. A sintaxe da definição do bloco de um algoritmo é: Algoritmo <NomeDoAlgoritmo> início <declaração de variáveis> <comandos> fimalgoritmo.
TÉCNICA PARA A CONSTRUÇÃO DE ALGORITMOS
ALGORITMO Sequência do Programa O que preciso? (Entrada) Como chegar ao que quero? (Processamento) O que quero? (Saída)
ALGORITMO Passos para construção O que quero? (Saída) O que preciso? (Entrada) Como chegar ao que quero? (Processamento) Na construção do algoritmos devemos identificar primeiro a SAÍDA de dados, para então pensar nos passos necessários para chegar nessa saída
ALGORITMO Passos para a construção Identificar o problema (objetivo) mediante leitura atenta de seu enunciado (entendimento). Identificar os resultados que devem ser gerados na solução (saída de dados). Identificar no enunciado os dados a serem fornecidos para o algoritmo (entrada de dados). Determinar o que deve ser feito para transformar as entradas nas saídas desejadas (processamento).
ALGORITMO EXEMPLO Escreva um algoritmo para somar dois números quaisquer.
ALGORITMO EXEMPLO Escreva um algoritmo para somar dois números quaisquer. Identificar os resultados que devem ser gerados na solução (saída de dados)
ALGORITMO EXEMPLO Escreva um algoritmo para somar dois números quaisquer Identificar os resultados que devem ser gerados na solução (saída de dados) O resultado da soma
ALGORITMO EXEMPLO Escreva um algoritmo para somar dois números quaisquer Identificar no enunciado os dados a serem fornecidos para o algoritmo (entrada de dados)
ALGORITMO EXEMPLO Escreva um algoritmo para somar dois números quaisquer. Identificar no enunciado os dados a serem fornecidos para o algoritmo (entrada de dados). Os dois números.
ALGORITMO EXEMPLO Escreva um algoritmo para somar dois números quaisquer. Determinar o que deve ser feito para transformar as entradas nas saídas desejadas (processamento). Somar os dois números.
ALGORITMO EXEMPLO Escreva um algoritmo para somar dois números quaisquer. Organizando o ALGORITMO numa ordem coerente.
ALGORITMO EXEMPLO Escreva um algoritmo para somar dois números quaisquer. 1. Leia o número X 2. Leia o número Y 3. Some X e Y 4. Mostre o resultado da soma Entrada Processamento Saída Número X Número Y Somar X e Y Resultado da soma
Leituras Sugeridas FORBELLONE, A. L. V.; EBERSPACHER, H. F., Lógica de Programação A Construção de Algoritmos e Estruturas de Dados, Prentice Hall, 2005 CAPÍTULO 1 Introdução a Lógica de Programação
RESUMINDO...
Coisas para não esquecer: As rotinas do dia-a-dia podem ser descritas na forma de Algoritmos Escrever algorimos é mais ou menos como escrever um MANUAL para que algúem execute uma tarefa Um algoritmo computacional (para ser executado por um computador) precisa seguir alguns padrões de linguagem A construção de algoritmos a partir de um enunciado de um problema requer técnicas de compreensão e refinamento da solução Qual a SAÍDA de dados requerida? Qual a ENTRADA de dados necessária? Qual o PROCESSAMENTO necessário para transformar ENTRADA em SAÍDA?
EXERCÍCIOS DE LÓGICA
Exercício 1 Um lobo, uma cabra e uma couve têm de atravessar um rio em um barco que transporta um de cada vez, incluindo o barqueiro. Como o barqueiro os levará para o outro lado de forma que a cabra não coma a couve e o lobo não coma a cabra?
Exercício 2 Dois homens seguiam por um caminho. Um levava 8 litros de vinho em um garrafão e o outro levava 8 litros de vinho em dois garrafões, um com cinco litros e um com três. Eles beberam o vinho do garrafão maior, de 8 litros, e agora querem dividir os 8 litros de vinho restante igualmente, para nenhum dos dois carregar mais peso que o outro. Entretanto, eles só podem usar como medida, os próprios garrafões: um de 8 litros, um de 5 e um de 3. Como fazer?
EXERCÍCIOS DE ALGORITMOS
Exercício 1 Descreva a sequência de passos necessária para: Colocar um carro em movimento.
Exercício 2 Descreva a sequência de passos necessária para: Jogar o jogo da velha.