Something like this? Welcome to Yokohama!
Transcription
Something like this? Welcome to Yokohama!
Universidade Federal do Rio Grande do Norte Instituto Metrópole Digital Cursos Técnicos Introdução aos Algoritmos Aula 01 Heitor Florêncio, [email protected] Apresentação da Aula • Nesta aula você vai: – Conhecer mais sobre o “computador”. – Conhecer o significado de um algoritmo. – Conhecer as características e as formas de representação de algoritmos. – Conhecer o software “VisuAlg”. Introdução aos Algoritmos [Heitor Florêncio] 2 Conceitos Iniciais sobre Computadores • Informática: Tratamentamento automático e racional da informação. – Informação + Automática • Compreende a coleta, armazenamento e processamento da informação de forma automática, ou melhor, um processo sem a intervenção direta do homem. • Computação: Ação ou efeito de computar. Introdução aos Algoritmos [Heitor Florêncio] 3 Conceitos Iniciais sobre Computadores • O que é o computador? • O que o computador faz? • Como aquela máquina atende aos nossos mandamentos (abrir um navegador quando acionado o “mouse”, como ele entende que o botão da letra “A” é para escrever a letra “A” na tela, etc)? Introdução aos Algoritmos [Heitor Florêncio] 4 O que é um computador? • “É uma máquina de calcular que processa dados através de um conjunto de instruções e produz resultados, com o mínimo de intervenção humana.” Obs.: O primeiro instrumento conhecido para computar foi o Ábaco, por volta do ano 1000 a.c. Introdução aos Algoritmos [Heitor Florêncio] 5 O que é um computador? • ...máquina de calcular...: – Alguém ou alguma coisa que realize os cálculos. • ...processa dados...: – Alguém ou alguma coisa que informe os dados de entrada. • ...conjunto de instruções...: – Alguém ou alguma coisa que mostre o passo-a-passo. • ...resultados...: – Alguém ou alguma coisa que informa os dados de saída. Introdução aos Algoritmos [Heitor Florêncio] 6 O que é um computador? Unidade de Armazenamento Unidade de Processamento (Unidade de Controle, Unidade de Lógica e Aritmética, ...) Unidade de Entradas e Saídas Introdução aos Algoritmos [Heitor Florêncio] 7 Computadores • • • • Laptops; Celulares; Tablets; ... Entre outros... Introdução aos Algoritmos [Heitor Florêncio] 8 Processamento da Informação • Unidade de Processamento, que envolve as unidades abaixo: – Unidade de Controle – Unidade de Lógica e Aritmética • Existe um passo-a-passo ou receita de como essa unidade deve trabalhar... • Chamado de ALGORITMO!!! Introdução aos Algoritmos [Heitor Florêncio] 9 Hardware e Software Aplicativos (softwares de usuários) Sistema Operacional (software do sistema) Hardware Introdução aos Algoritmos [Heitor Florêncio] 10 Algoritmos • Voltando a definição de computador: – “É uma máquina de calcular que processa dados através de um conjunto de instruções e produz resultados, com o mínimo de intervenção humana.” • A partir de agora vamos entender o que é esse conjunto de instruções que realizar o processamento dos dados. Introdução aos Algoritmos [Heitor Florêncio] 11 Algoritmos • Definições: – “Um algoritmo é um processo sistemático para a resolução de um problema.” [Szwarcfiter, Jayme L. et. al., 1994] – “Um algoritmo computa uma saída, o resultado do problema, a partir de uma entrada, as informações inicialmente conhecidas e que permitem encontrar a solução do problema.” [Szwarcfiter, Jayme L. et. al., 1994] Introdução aos Algoritmos [Heitor Florêncio] 12 Algoritmos • Definições: – “1. Mat. Processo de cálculo ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, regras formais para obtenção do resultado ou da solução do problema. 2. Inform. Conjunto de regras e operações bem-definidas e ordenadas, destinadas à solução de um problema ou de uma classe de problemas, em um número finito de etapas.” [Souza, M. et. al., 2006] Introdução aos Algoritmos [Heitor Florêncio] 13 Algoritmos • Definições: – “Um algoritmo é um conjunto finito de regras que fornece uma sequência de operações para resolver um problema específico. É algo como uma receita, ou uma rotina.” [IMD, UFRN, 2014] Introdução aos Algoritmos [Heitor Florêncio] 14 Características dos Algortimos • Entradas: – Um algoritmo deve possuir zero ou mais entradas • Saídas: – Um algoritmo deve possuir zero ou mais saídas • Finitude: – Um algoritmo deve ter um final após número finito de passos • Efetividade: – Um algoritmo deve ser explicitado através de operações elementares ou básicas. • Correção: – Em um algoritmo as saídas devem ser coerentes com as entradas, sendo um algoritmo correto. Introdução aos Algoritmos [Heitor Florêncio] 15 Algoritmos x Programas • Não confunda algoritmos com programas de computadores. • O algoritmo é um conjunto de instruções para realizar uma tarefa. • Um algoritmo escrito em uma linguagem de programação e traduzido para linguagem de máquina é chamado de programa. Introdução aos Algoritmos [Heitor Florêncio] 16 Algoritmos x Programas • Chegando a uma solução algorítmica é possível traduzir para qualquer linguagem de programaçao. • A linguagem de programação é a ponte entre o computador e o humano. • Linguagens de programação: – Linguagens de alto nível (java, c++, python, html, php, ...): Necessário compilar para linguagem binária. – Linguagens de baixo nível (linguagem binária, assembly, ...): interpretadas diretamente pelo computador, que só entende zeros e uns. Introdução aos Algoritmos [Heitor Florêncio] 17 Representação de Algoritmos • Existem algumas formas de representar um algoritmo, sendo possível iniciar os estudos sobre algoritmos com qualquer forma. • Tipos de Representação: – Linguagem Natural – Fluxograma – Pseudo-linguagem Introdução aos Algoritmos [Heitor Florêncio] 18 Exemplo 01 • Problema: Em um determinado instituto de cursos técnicos semi-presenciais os estudantes recebem notas semanais de acordo com seus desempenhos nos encontros presenciais. Em uma determinada semana o tutor avaliou os alunos da seguinte maneira: – Se o aluno participou do encontro inteiro sua nota é a média entre a lista de “Matemática” e a lista de “Lógica”. – Se o aluno participou do encontro parcialmente a sua nota é 70% da média entre a lista de “Matemática” e a lista de “Lógica”. Introdução aos Algoritmos [Heitor Florêncio] 19 Exemplo 01 • Resolução: Analisando o problema inicialmente... • Nesse caso teremos 3 entradas de dados: – O aluno participou integral do encontro. – Nota da lista de Matemática – Nota da lista de Lógica • E temos como saída: – A nota do aluno na semana Introdução aos Algoritmos [Heitor Florêncio] 20 Exemplo 01 – Linguagem Natual • Resolução em Linguagem Natual: 1. Coletar as notas do aluno (NM: Nota matemática e NL: nota logica) e analisar participação dele em sala 2. Se o aluno participou do encontro integral então a nota semanal (NS) é NS = (NM+NL)/2; 3. Se o aluno participou do encontro particialmente então a nota semanal é NS = 0,7 *((NM+NL)/2) 4. Informar a nota semanal ao aluno Introdução aos Algoritmos [Heitor Florêncio] 21 Exemplo 01 – Fluxograma • Resolução em Fluxograma: Sim Início Participação integral (PI); NM; NL PI = Verdadeiro NS = (NM + NL)/2 Não NS = 0,7* ( (NM + NL)/2 ) NS Fim Introdução aos Algoritmos [Heitor Florêncio] 22 Exemplo 01 – Pseudolinguagem algoritmo "Exemplo01" // Função : Calculo da Nota Semanal // Autor : Heitor Florêncio var PART: logico //PART = participação integral; NM: real NL: real NS: real Introdução aos Algoritmos [Heitor Florêncio] inicio leia(PART) leia(NM) leia(NL) se (PART = verdadeiro) entao NS <- (NM + NL)/2 senao NS <- 0.9*((NM + NL)/2) fimse escreval(NS) fimalgoritmo 23 Sites Interessantes para Iniciantes • Existem alguns iniciativas de empresas na área de ensino de programação. – Code.org [acesso em 2013]: • É uma organização, sem fins lucrativos, criada para difundir o ensino de programação. – Anodocodigo.org.br [acesso em 2014]: • Definição da própria iniciativa: “Programar vai abrir seus horizontes. Criar apps para celular, desenvolver jogos, construir websites e movimentar robôs. Tudo isso envolve programação e criatividade. O Ano do Código é uma iniciativa para aproximar a programação aos interessados por tecnologia e que mostrará que você também pode programar. Apesar de ser um processo contínuo e de precisar praticar bastante, a primeira barreira do aprendizado será quebrada aqui, com o nosso conteúdo e com a ajuda de parceiros.” Introdução aos Algoritmos [Heitor Florêncio] 24 Temas de Tarefas • • • • • • Calcular a área de um triângulo Verificar se um número é primo Determinar o maior valor entre X números Determinar o menor valor entre X números Determinar a média entre X números Determinar a média ponderada de 3 notas P1, P2 e P3 com pesos 3, 4 e 5, respectivamente. • Determinar a soma dos dois maiores números dentre X números • Calcular o valor de x para uma função de segundo grau • Dada uma função de segundo grau informar se tem o ponto de máximo ou de mínimo e calcular esse ponto Introdução aos Algoritmos [Heitor Florêncio] 25 Algoritmos - Fluxograma Introdução aos Algoritmos [Heitor Florêncio] Fonte: Material Didático, IMD, UFRN, 2012. 26 Algoritmos – Pseudocódigos • A pseudo-linguagem é a forma de representação que tem mais semelhança com as linguagens de programação necessárias para construir programas. • Assim é melhor iniciarmos o estudo utilizando os pseudocodigos e depois entrar em linguagens de programação. Introdução aos Algoritmos [Heitor Florêncio] 27 Próxima Aula!!! • VisuAlg: Definição do software de acordo com a empresa Apoio Informática, criadora o software VisuAlg: “A linguagem que o VisuAlg interpreta é bem simples: é uma versão portuguesa dos pseudocódigos largamente utilizados nos livros de introdução à programação, conhecida como "Portugol"”. Introdução aos Algoritmos [Heitor Florêncio] 28 Referências • Souza, M. et al. Algoritmos e Lógica de Programação. Ed. Thomson, 2006. • Szwarcfiter, Jayme L. e Markenzon, L. Estruturas de Dados e seus Algoritmos. Ed. LTC, 1994. • Stallings, W. Arquitetura e Organização de Computadores. Ed. Pearson, 2009. • Material didático: Lógica de Programação. Institudo Metrópole Digital, UFRN, 2014. Introdução aos Algoritmos [Heitor Florêncio] 29 Referências • Ano do Código. Disponível em: http://www.anodocodigo.org.br/. Acessado em abril de 2014. • Code. Disponível em: http://code.org/. Acessado em abril de 2014. Introdução aos Algoritmos [Heitor Florêncio] 30 Dúvidas Introdução aos Algoritmos [Heitor Florêncio] 31