Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
2/18/14 1 MCG114 – Programação de Computadores I Profa. Janaína Gomide & Prof. Danilo Freitas 1 Janaína Gomide & Danilo Freitas 16:53:52 Ementa Básica 1. Componentes básicos de um computador 2. Introdução à Lógica da Programação: – Linguagens de programação – Linguagem de máquina, montagem e alto nível – Compiladores, interpretadores e esquemas híbridos – Noção de dado como informação codificada: Bits e Bytes – Codificação de números (sistemas de numeração) – Cadeias de caracteres – Conceito de algoritmos, estruturas de dados e programas 2 Janaína Gomide & Danilo Freitas 16:53:53 Ementa Básica 3. Elementos de programação: – Tipos básicos e expressões numéricas – Noção de variável e comando de atribuição – Comandos de entrada e saida (input e print) – Condições: operadores relacionais, comando IF, ELSE, ELIF 4. Algoritmos e estruturas de dados sequenciais – Listas – Comando WHILE, FOR – Strings e tuplas, dicionários – Arquivos 3 Janaína Gomide & Danilo Freitas 16:53:53 Ementa Básica 5. Programação estruturada: – Funções – Recursão – Estrutura de dados abstratas – Módulos e bibliotecas 4 Janaína Gomide & Danilo Freitas 16:53:53 2/18/14 2 Objeevos • Desenvolver Algoritmos • Implementar Algoritmos em uma linguagem de programação (Python) • Executar programas • Avaliar seus Resultados 5 Janaína Gomide & Danilo Freitas 16:53:53 Avaliação • Prova 1 (P1) -‐ 10/04/2014 • Prova 2 (P2) -‐ 20/05/2014 • Prova de Reposição (PR) – 22/05/2014 • Prova Final – 29/05/2014 • Média = (P1 + P2)/2 -‐ PR subsetui uma das notas faltantes • Se Média >= 7 à Aprovado • Se Média < 7 à Prova Final • Se Prova Final >=5 à Aprovado • Se Prova Final < 5 à Reprovado 6 Janaína Gomide & Danilo Freitas 16:53:53 Bibliografia 7 Janaína Gomide & Danilo Freitas 16:53:53 Introdução à Programação com Python: algoritmos e lógica de programação para iniciantes Nilo Ney Couenho Menezes Algoritmos e Programação: Teoria e Práeca Marco Medina e Crisena Fereg Bibliografia 8 Janaína Gomide & Danilo Freitas 16:53:53 2/18/14 3 01 – Introdução 9 Janaína Gomide & Danilo Freitas 16:53:53 Algoritmo • Procedimento definido passo a passo para a solução de um problema • Uma sequência detalhada de ações a serem executadas para realizar uma tarefa. 10 Janaína Gomide & Danilo Freitas 16:53:53 Algoritmo (Trocar Lâmpada) v Passo 1: Pegar a lâmpada nova v Passo 2: Pegar a escada v Passo 3: Posicionar a escada embaixo da lâmpada queimada v Passo 4: Subir na escada coma lâmpada nova v Passo 5: Reerar a lâmpada queimada v Passo 6: Colocar a lâmpada nova v Passo 7: Descer da escada v Passo 8: Ligar o interruptor v Passo 9: Guardar a escada v Passo 10: Jogar a lâmpada velha no lixo 11 Janaína Gomide & Danilo Freitas 16:53:53 Algoritmo (Sacar dinheiro) v Passo 1: Ir até o caixa eletrônico v Passo 2: Colocar o cartão v Passo 3: Digitar a senha v Passo 4: Solicitar o saldo v Passo 5: Se o saldo for maior ou igual à quanea desejada, v sacar a quanea desejada; v caso contrário sacar o valor do saldo v Passo 6: Reerar dinheiro e cartão v Passo 7: Sair do caixa eletrônico 12 Janaína Gomide & Danilo Freitas 16:53:53 2/18/14 4 Algoritmo (Bolo de Chocolate) 13 Ingredientes • 4 xícaras (chá) de farinha de trigo. • 2 xícaras (chá) de açúcar cristal. • 2 xícaras (chá) de achocolatado. • 2 colheres (sopa) de fermento em pó. • 1 pitada de sal. • 3 ovos. • 2 xícaras (chá) de água morna. • 1 xícara (chá) de óleo. • Óleo para untar. • Farinha de trigo para polvilhar. Modo de preparo • Numa vasilha, misture 4 xícaras (chá) de farinha de trigo, 2 xícaras (chá) de açúcar cristal, 2 xícaras (chá) de achocolatado, 2 colheres (sopa) de fermento em pó e 1 pitada de sal • Junte 3 ovos, 2 xícaras (chá) de água morna e 1 xícara (chá) de óleo. • Misture bem. • Unte uma forma retangular de 25 cm x 37 cm com óleo • Polvilhe farinha de trigo sobre a forma untada • Despeje a massa na forma • Asse em temperatura média (de 170°C a 180°C) por 30 minutos. • Sirva o Bolo ao Professor na próxima aula. Janaína Gomide & Danilo Freitas 16:53:53 Programas de Computador 14 Janaína Gomide & Danilo Freitas 16:53:53 Programas de Computador • Programa de Computador = Conjunto de instruções que será executado pelo processador em uma determinada sequência. • Um programa é que um epo de algoritmo. • Suas operações são específicas para o computador e restritas ao conjunto de instruções que o processador pode executar. 15 Janaína Gomide & Danilo Freitas 16:53:53 Linguagens de Programação 16 Janaína Gomide & Danilo Freitas 16:53:53 2/18/14 5 Linguagens de Programação 17 Janaína Gomide & Danilo Freitas • L i n g u a g e n s d e programação de alto nível são mais próximas da linguagem natural • Ex: Java, C, Pascal, Python • Q u a n t o m a i o r a s e m e l h a n ç a c o m linguágem de máquina, mais baixo é o nível da linguagem 16:53:53 Linguagem de Montagem 18 Janaína Gomide & Danilo Freitas • A linguagem de montagem (ou assembly) tem uma instrução alfanumérica para cada instrução numérica na linguagem de máquina • Assembly também é uma linguagem de baixo nível • Para cada processador há uma linguagem de montagem 16:53:53 Linguagem de Alto nível 19 Janaína Gomide & Danilo Freitas • As linguagens de alto nível foram criadas para aumentar a produevidade do programador • São independentes do processador em que serão executados 16:53:53 Executando um programa 20 Janaína Gomide & Danilo Freitas Compilador • Gera um arquivo com o código em linguagem de máquina, conhecido como código-‐objeto • Esse código-‐objeto fica em disco e só é carregado na memória no momento da execução 16:53:53 2/18/14 6 Executando um programa 21 Janaína Gomide & Danilo Freitas Interpretador • Não gera o arquivo em código-‐objeto • As instruções são traduzidas em tempo de execução, instrução a instrução 16:53:53 Linguagens compiladas e interpretadas 22 Janaína Gomide & Danilo Freitas • Linguagens compiladas • Linguagens interpretadas 16:53:53 Sistemas Operacionais 23 • Os sistemas operacionais constroem uma camada entre hardware e soyware • O sistema operacional gerencia os recursos da máquina, evitando a má uelização e até mesmo a danificação de seus componentes por um programador • Fornecem uma interface para que outros programas possam uelizar suas roenas. • Essas interfaces são conhecidas como chamadas de sistema, ou system calls, e o conjunto de operações disponibilizadas são as bibliotecas do sistema operacional. Janaína Gomide & Danilo Freitas 16:53:53 Sistemas Operacionais 24 Janaína Gomide & Danilo Freitas 16:53:53 2/18/14 7 Linguagens de programação e Sistemas operacionais 25 Janaína Gomide & Danilo Freitas • Sistemas operacionais fornecem uma interface para que outros programas possam uelizá-‐las • Os compiladores uelizam essas interfaces em vez de implementar as operações complexas por si mesmos • Quando o compilador encontra chamadas ao SO no código-‐ fonte em linguagem de alto nível, transforma-‐as em referências “não resolvidas” • Para que possa ser executado é necessário ligar o código objeto ao SO • Esse processo é chamado de ligação do código ou linking. 16:53:53 Linguagens de programação e Sistemas operacionais 26 Janaína Gomide & Danilo Freitas 16:53:53 Java e Máquina Virtual (JVM) 27 Janaína Gomide & Danilo Freitas • A linguagem de programação Java tem uma arquitetura diferente, o que fornece a seus programas mais portabilidade • Não gera código executável em nenhum sistema operacional • Gera um código intermediário chamado bytecode que é executado na Máquina Virtual Java (JVM) • A JVM faz a tradução dos bytecodes para código executável no SO • Durante a execução essa tradução é feita em tempo real 16:53:53 Máquina Virtual (JVM) 28 Janaína Gomide & Danilo Freitas 16:53:53 2/18/14 8 Linguagens De Programação 29 • Diferentemente da linguagem natural, a linguagem de programação é dirigida a orientar uma máquina e não pessoas. • Máquinas – não podem tomar decisões com base em premissas. – não podem escolher alternaevas, mesmo que estas nos pareçam óbvias – não podem corrigir comandos mal redigidos – não podem descobrir a intenção do programador, mesmo que ela seja (ou pelo menos pareça) clara no contexto • Pessoas fazem tudo isso (pelo menos na maior parte das vezes) sem sequer notar. Janaína Gomide & Danilo Freitas 16:53:53 Linguagens De Programação 30 • A linguagem de programação precisa ter algumas caracterísecas que a linguagem natural não tem. – Rigidez sintá2ca – Rigidez semân2ca: Ø Sem ambiguidades. • A linguagem natural apresenta ambiguidades. Exemplo: “A velhinha ouviu o barulho da janela”. 1. A velhinha ouviu o barulho produzido pela janela. 2. A velhinha estava junto à janela e ouviu o barulho. 3. A velhinha ouviu o barulho que veio através da janela. Janaína Gomide & Danilo Freitas 16:53:53 Algoritmos 31 • Alternaevas para expressar algoritmos para computador: – Fluxograma – Pseudocódigo Janaína Gomide & Danilo Freitas 16:53:53 Fluxograma 32 Janaína Gomide & Danilo Freitas 16:53:53 2/18/14 9 Pseudocódigo 33 Janaína Gomide & Danilo Freitas 16:53:53 Exercícios 34 1. Defina o que é um algoritmo. 2. Diferencie um algoritmo de um programa. 3. Explique como um programa é executado em um computador. 4. Defina o que é uma linguagem de programação de alto nível e uma linguagem de programação de baixo nível. 5. Explique por que um código Java é portável em vários sistemas operacionais. 6. Por que a linguagem natural não é adequada para a construção de algoritmos para computador? 7. Quais as vantagens e desvantagens da uelização de fluxograma e de pseudocódigo na construção de algoritmos? Janaína Gomide & Danilo Freitas 16:53:53