Programação Básica de Computadores 1 Ana Christina Bringuente (Material gentilmente cedido por Rodrigo Calhau) Objetivos da Disciplina • Motivar a resolução de problemas diversos utilizando a computação; • Apresentar conceitos básico de programação de computadores; • Introduzir lógica de programação e elaboração de algoritmos; • Elaboração de programas de computadores, usando a linguagem Fortran; Introdução à Computação • O que é computação? o Busca de solução de um problema através de: Entradas; Algoritmo (conjunto de passos); • Não necessariamente utiliza máquinas o pode ser feito até mentalmente; • Ex: o Resolver f(x) = x2 - 4; Introdução à Computação • O que é computador? o o Máquina que faz computação!!!! Permite processamento automático de dados Processar dados: Introdução à Computação • Exemplos de computadores: o De uso geral: Computador pessoal Notebook o De uso específico: Máquina de calcular Celular Video game Ábaco • No curso, computador será usado para designar computador de uso geral Introdução à computação • Ex: Abrir um navegador Introdução à Computação • Estrutura básica de um computador: o Dispositivos de saída Monitor, impressora, caixa de som... o Dispositivos de entrada Teclado, mouse, cd... o o Processador Memória Principal e secundária Introdução à Computação Por que utilizar um computador? o o o Rápidos Baratos Eficientes Introdução à Computação • Quando usar um computador para resolver um problema? o Problemas de alta complexidade: Ex: robô que joga xadrez, identificação de iris, etc. o Problemas com grande quantidade de dados: Podem até serem fáceis, mas são trabalhos Ex: 1000000000 pessoas doaram uma quantia para uma instituição. Qual o total recebido? Introdução à Computação • Problema 1: o o Tirar espinhas de uma foto 3x4 Programa: Photo shop Introdução à Computação • Problema 2: o o Compactar arquivo Programa: compactador qualquer Arquivo Descomp actado Arquivo Compact ado Introdução à Computação • Problema 3: Calcular coeficiente de simpatia de uma pessoa (usando uma fórmula de 30 páginas criada em um projeto de pesquisa na UFES) o Programa: Não Existe!!!! E agora?? o ??????? ??????? Introdução a Programação de Computadores Problemas específicos: o o o Último exemplo; Ou resolve na mão Ou cria um programa É necessário determinar o processamento (como os dados de entrada serão transformados nos dados de saída) Introdução a Programação de Computadores • Criação de programas: o 1º - Entendimento do problema: Estabelecer “o quê” o 2º - Solução do problema Estabelecer “como” o 3º - “Ensinar” o computador a resolver o problema = programar Usando uma linguagem de programação; • Problema de 2º grau • Fórmula de Bhaskara • Programar em Fortran Introdução a Programação de Computadores • Algoritmos: o Ex: Receita de bolo Manual de instruções Coreografia Instrução de como chegar a algum lugar Introdução a Programação de Computadores • Algoritmos: o Propriedades: Número de instruções é finito; Ações possuem uma ordem; Cada ação é simples e bem definida (não ambigua); Introdução a Programação de Computadores X2 -4 = 0 a= 1 b=0 c=-4 Aplicação da fórmula de Bhaskara Introdução a Programação de Computadores • Exercício: Considere o seguinte problema: Temos três hastes. Uma das hastes serve de suporte para três discos de tamanhos diferentes. Os discos menores são sempre colocados sobre os discos maiores. A figura abaixo mostra uma possível situação inicial das hastes e discos. o Desejamos mover todos discos para outra haste, porém só podemos movimentar um disco de cada vez e um disco maior nunca pode ser colocado sobre um disco de menor tamanho. o Introdução a Programação de Computadores Algoritmo 1: (Notação Gráfica) Introdução a Programação de Computadores • Algoritmo 2: (Português) o o o o o o o 1. move o disco p para a haste 3. 2. move o disco m para a haste 2. 3. move o disco p para a haste 2. 4. move o disco g para a haste 3. 5. move o disco p para a haste 1. 6. move o disco m para a haste 3. 7. move o disco p para a haste 3. Introdução a Programação de Computadores • Algoritmo 3: (Notação criada) o o o o o o o 1. p -> h3. 2. m -> h2. 3. p -> h2. 4. g -> h3. 5. p -> h1. 6. m -> h3. 7. p -> h3.