Introdução à Programação e Algoritmos Aécio Costa Introdução à Programação e Algoritmos “Programação é a arte de fazer com que o computador faça exatamente o que desejamos que ele faça”. Introdução à Programação e Algoritmos O que é um Programa? Uma seqüência de instruções de computador, para a realização de uma determinada tarefa. Introdução à Programação e Algoritmos ... E o que é uma Instrução? É um comando referente a uma operação elementar que o computador seja capaz de executar. Introdução à Programação e Algoritmos Exemplos de instruções: Colocar Negrito em um texto; Deletar um arquivo; Criar uma pasta; Copiar um conjunto de Arquivos; Enviar uma mensagem; Clicar em botão. Introdução à Programação e Algoritmos Algoritmos “Um conjunto finito de regras que provê uma sequencia de operações para resolver um tipo de problema específico, em um tempo determinado” (Knuth, 1997). “Sequência ordenada, e não ambígua, de passos que levam à solução de um dado problema” (TREMBLAY) IMPORTANTE ENTENDER A SEQUÊNCIA LÓGICA Introdução à Programação e Algoritmos Algoritmos Seqüência de instruções, cuja execução resulta na realização de uma determinada tarefa. Exemplos: Receita de bolo Partitura de uma música Assistir um Filme Procedimentos para cálculo com operações fundamentais da aritmética Instruções para matrícula na faculdade Fazer um sanduíche. Introdução à Programação e Algoritmos Algoritmos – Fazer um Sanduíche Instruções: 1. Pegar um pão 2. Cortar o pão ao meio 3. Pegar a maionese 4. Passar maionese nas fatias de pão 5. Pegar alface e tomate 6. Cortar alface e tomate 7. Colocar alface e tomate no pão 8. Pegar um hambúrguer 9. Fritar o hambúrguer 10. Colocar o hambúrguer no pão 11. Juntar as fatias do pão cortado Introdução à Programação e Algoritmos Algoritmos Exemplo: Assistir um Filme Instruções: 1. 2. 3. 4. Insira a fita no video cassete; Acionar a tecla rr para Rebobinar a fita; Acionar a tecla Play; O Filme irá começar... Introdução à Programação e Algoritmos Algoritmos Exemplo: Assistir um Filme E se a fita estiver rebobinada? Gera um Problema! Instruções: 1. 2. 3. 4. Insira a fita no video cassete; Acionar a tecla rr para Rebobinar a fita; Acionar a tecla Play; O Filme irá começar... Introdução à Programação e Algoritmos Algoritmos Geralmente, um problema possui algumas alternativas de soluções que chegam ao resultado correto, podendo existir vários algoritmos que solucionem um determinado problema. Introdução à Programação e Algoritmos Algoritmos Fases básicas da construção de algoritmos Introdução à Programação e Algoritmos Fases básicas - ENTRADA O que você identificou que vai precisar que o usuário ou alguém lhe informe? (via teclado, leitor de código de barras ou mouse). Ou seja, os valores de trabalho do algoritmo, o que precisa ser perguntado ao usuário. “Escreva um programa que recebe 2 notas de aluno e calcula a média aritmética delas.” “Escreva um algoritmo para ler o preço e a quantidade de um produto e calcula o preço a pagar pelo mesmo.” “Escreva um algoritmo para calcular o salário líquido de um funcionário, a partir do número de horas trabalhadas e da quantidade de dependentes. Sabe-se que o valor da hora é de 12 reais, que se recebe 40 reais por cada dependente e que é descontado um total de imposto de 12% do valor do salário bruto (salário sem descontos)”. Introdução à Programação e Algoritmos Fases básicas - PROCESSAMENTO Que tipo de cálculos serão necessários para resolver o problema? Há alguma checagem a ser feita com os dados? Existe alguma decisão a ser tomada dentro do algoritmo? Existem operações de processamento que precisarão ser realizadas mais de uma vez? Ou seja, o que é preciso fazer para que o algoritmo gere as saídas esperadas? Introdução à Programação e Algoritmos Fases básicas - SAÍDA Quais os resultados que necessitarão ser apresentados aos usuários? O que deve ser impresso pelo algoritmo na tela/monitor do computador? Geralmente, essa parte vem expressa no enunciado do problema, é o que o problema pede. Introdução à Programação e Algoritmos Componentes Unidade de Entrada Conjunto de componentes que podem ser conectados ao computador para permitir a comunicação com o mundo real para coleta de dados relevantes aos problemas que o mesmo possa estar inserido; Teclado, Mouse, Leitor de Código de Barras, etc... Introdução à Programação e Algoritmos Componentes Unidade de Saída Componentes eletrônicos que podem ser conectados ao computador para permitir a comunicação dele com o mundo real. Impressora, Monitor, etc... Introdução à Programação e Algoritmos Processamento Procedimentos utilizados para chegar ao resultado final. Componente eletrônico que executa a instrução corrente e determina qual a próxima instrução a ser executada, sendo também chamado de CPU (Central Processing Unit) ou UCP (Unidade Central de Processamento); Introdução à Programação e Algoritmos Elementos Memória Principal Ram, usadas em processamento. Dispositivo que consisti em uma seqüência finita de unidades de armazenamento identificadas por um endereço único, descrito por um número inteiro não negativo e responsável pelo armazenamento de programas e dados que serão manipulados pelo computador; Memória Secundária HD Introdução à Programação e Algoritmos Representação de Algoritmos • Descrição Narrativa • Fluxograma • Linguagem Algorítmica ou Pseudocódigo Introdução à Programação e Algoritmos Descrição Narrativa Tomar Banho: 1. 2. 3. 4. 5. 6. 7. 8. Entrar no banheiro e tirar a roupa; Abrir a torneira do chuveiro; Entrar na água; Ensaboar-se; Sair da água; Fechar a torneira; Enxugar-se; Vestir-se. Introdução à Programação e Algoritmos Descrição Narrativa Calcular a média de um aluno 1. Obter as suas 2 notas de provas do aluno; 2. Calcular a média aritimética das notas; 3. Se a média for maior que 6, mostrar na tela uma mensagem dizendo que o aluno foi aprovado, senão mostrar uma mensagem que foi reprovado. Introdução à Programação e Algoritmos Representação Fluxograma Introdução à Programação e Algoritmos Representação de Algoritmos – Pseudocódigo Introdução à Programação e Algoritmos Lógica É a ciência que estuda as leis do raciocínio; é a correção/validação do pensamento; é o encadeamento, ordenação de idéias; é a arte de pensar. Introdução à Programação e Algoritmos Lógica de Programação Encadeamento lógico desenvolvimento de programas. de instruções para o Introdução à Programação e Algoritmos Linguagem de Programação “conjunto de ferramentas, regras de sintaxe e símbolos ou códigos que nos permitem escrever programas de computador.” Introdução à Programação e Algoritmos Linguagens de Programação Introdução à Programação e Algoritmos Linguagens de Programação - TIOBE Introdução à Programação e Algoritmos Linguagens de Programação - TIOBE Introdução à Programação e Algoritmos Exemplo de Instruções em diversas Linguagens Pascal writeln(‘Oi’); Pyton Print “Oi” Java System.out.println(“Oi”); PHP echo “Oi”; Lua print(‘Oi’); Introdução à Programação e Algoritmos Linguagem de Máquina Linguagem na qual o computador entende as instruções. (Números Binários 0 e 1). Introdução à Programação e Algoritmos Linguagem de Montagem Assembly Language Números substitídos por símbolos ou palavras (Tabela ASCII) 0100001 = A Introdução à Programação e Algoritmos Linguagem de Alto Nível Algo mais próximo do entendimento do ser humano. Exemplo: Pascal, Delphi, PHP, Java, Pyton... Introdução à Programação e Algoritmos Lógica de Programação Objetivo: Resolução de Problemas A média de três notas de um Aluno: Nota 1 = 7 Nota 2 = 5,5 Nota 3 = 8 Média = ? Introdução à Programação e Algoritmos Lógica de Programação Instruções: 1. Determine a quantidade de números; 2. Some os números dados; 3. Divida esta soma pela quantidade de números. Introdução à Programação e Algoritmos Lógica de Programação Resultado em um Algoritmo: 1. N = 3; 2. Soma = Nota1 + Nota2 + Nota3; 3. Resultado = Soma ÷ N Introdução à Programação e Algoritmos Lógica de Programação Objetivo: Resolução de Problemas Quem tem a maior média: Pedro: Nota 1 = 7, Nota 2 = 5,5 Nota 3 = 8 Maria: Nota 1 = 3, Nota 2 = 10, Nota 3 = 7,5 Quem tem melhor Média = ? Introdução à Programação e Algoritmos Lógica de Programação Instruções: 1. 2. 3. 4. Determine a quantidade de notas; Somar as notas de cada estudante; Dividir esta soma pela quantidade de notas; Comparar qual deles tem a maior média. Introdução à Programação e Algoritmos Lógica de Programação Resultado em um Algoritmo: 1. 2. 3. 4. 5. 6. N = 3; SomaMaria = Nota1 + Nota2 + Nota3; SomaPedro = Nota1 + Nota2 + Nota3; ResultadoPedro = SomaPedro ÷ N; ResultadoMaria= SomaMaria ÷ N; Se ResultadoPedro > ResultadoMaria Entao “Pedro tem melhor média” se não “Maria tem melhor média”; Introdução à Programação e Algoritmos Lógica de Programação – Algoritmo Resolver expressões aritméticas que envolvam operações de multiplicação, divisão, soma e subtração; Realizar comparação entre valores; Repetir a execução de um conjunto de instruções até uma quantidade fixada de vezes ou condição atingida; Atribuir valor a uma variável; Substituir o valor de uma variável por outro valor; Fornecer o valor de uma variável ou emitir uma mensagem. Introdução à Programação e Algoritmos Resolver o Problema Introdução à Programação e Algoritmos Regras O camponês deseja atravessar o rio, mas ele tem que ser cuidadoso para que o lobo não coma a ovelha e para que a ovelha não coma o couve. (Só pode um de cada vez). Introdução à Programação e Algoritmos Resolver o Problema Introdução à Programação e Algoritmos Regras 1 - Somente o pai, a mãe e o policial sabem pilotar o barco 2 - A mãe não pode ficar sozinha com os filhos 3 - O pai não pode ficar sozinho com as filhas 4 - O prisioneiro não pode ficar sozinho com nenhum integrante da família 5 - O barco só pode transportar 2 pessoas por vez 6 - Você pode ir e vir com as pessoas quantas vezes precisar