



Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Resumo das atividades propostas
Tipologia: Notas de aula
1 / 6
Esta página não é visível na pré-visualização
Não perca as partes importantes!




A programação de computadores é uma atividade que leva à representação dos passos necessários à resolução de um problema em linguagem de programação. Para dar início ao aprendizado dessa atividade, é importante compreender seu contexto, seu propósito, os conceitos básicos subjacentes, bem como tomar contato com o ferramental necessário a sua realização.
3.1 O que é um computador? Para que serve? (de sofisticada máquina de calcular à mídia) ◊ “Um computador é uma coleção de componentes que realizam operações lógicas e aritméticas sobre um grande volume de dados.” (Miyazawa, 2001) ◊ Computador é ferramenta de trabalho (ex. editores de textos, planilhas, sistemas de informação, etc). ◊ Computador é mídia: serve como canal na comunicação humana (ex. FAX,^ Web , ICQ, apresentação multimídia, etc). 3.2 Como funciona um computador? (organização de um computador) Figura 1: Organização Básica de um Computador Seqüencial (Miyazawa, 2001:1) Unidade de Controle Memória RAM Memória ROM Memória Cache Unidade Lógica e Aritmética Registradores Unidades de Saída Unidades de Entrada Memórias Secundárias
3.3 O que é algoritmo? Qual sua relação com programação de computadores? (definição geral de algoritmo, sua origem, exemplos) ◊ “Um procedimento para resolver um problema matemático (ex. achar o máximo divisor comum) em um número finito de passos que freqüentemente envolve a repetição de uma operação; ou de forma mais abrangente: um procedimento passo-a-passo para resolver um problema ou realizar algum objetivo.” (Manber, 1989:1) Origem: matemático persa Mohammed al-Khowârzimî (em Latim: Algorismus ) Algoritmo mais antigo (400 a 300 AC): Algoritmo de Euclides, que calcula o máximo divisor comum (MDC) de dois números inteiros positivos. mdc (x, y) = mdc (y, x mod y); mdc (x, 0) = x. Entrada: 2 valores inteiros positivos m e n (m > n) Saída: máximo divisor comum de m e n. Figura 2: Algoritmo de Euclides (Miyazawa, 2001:3) ◊ O enfoque deste curso é em algoritmos computacionais, ou seja, algoritmos que “descrevem uma seqüência de ações que podem ser traduzidos para alguma linguagem de programação” (Miyazawa, 2001:2). ◊ Algoritmo correto: sempre termina e para qualquer instância de entrada produz uma saída correta. ◊ Programar consiste em representar/descrever um algoritmo em alguma linguagem de programação. 3.4 Quais são os ferramentais (básicos) necessários à programação de computadores? (fluxograma, pseudo-linguagem, linguagem de programação, ambiente de programação) Fluxograma: auxilia a explicar a seqüência de instruções em algoritmos e programas. Na Figura 2, a seguir, um retângulo representa um passo ou módulo do algoritmo, uma seta indica o próximo comando a ser executado, um losango indica uma condição que interfere no fluxo do algoritmo ou programa. Passo 1: Adote x = m e y = n; Passo 2: Adote r = (resto de x dividido por y); Passo 3: Adote novos valores x = y e y = r; Passo 4: Se r é diferente de 0, volte ao passo 2; senão pare com a resposta x.
programas pela CPU, gerenciamento da memória principal e da memória secundária para uso dos programas em execução, etc. Ex.: Linux, Unix, Windows XP, OS2, MS-DOS. Linguagem de Máquina: conjunto de instruções que podem ser interpretados e executados diretamente pela CPU de um dado computador. É específica para cada computador. Linguagem Assembler (Linguagem de Baixo Nível): Representação da linguagem de máquina através de códigos mnemônicos. Também é específica de cada máquina. Linguagem de alto nível: linguagem que independe do conjunto de instruções da linguagem de máquina do computador. Cada instrução de alto nível eqüivale a várias instruções da linguagem de máquina, sendo assim mais produtiva. Ex.: Pascal, C, Algol, BASIC, Lisp, Prolog, etc. Compilador: tradutor de programas escritos em uma linguagem de programação para programas em linguagem de máquina (ex. GCC). Uma vez que o programa foi convertido para código de máquina, este pode ser executado independente do compilador e do programa original. Figura 4: Etapas para execução de um programa compilado (Miyazawa, 2001:3) Interpretador: é um programa que executa outros programas escritos em alguma linguagem de programação. A execução de um programa interpretado é em geral mais lenta que o programa compilado. Por outro lado, o uso de programas interpretados permite que trechos de código possam ser trocados por novos facilmente, fazendo com que o programa fonte possa mudar durante sua execução. Este é um dos grandes motivos de se usar programas interpretados em sistemas especialistas. Duas linguagens para as quais podemos encontrar interpretadores são Lisp e Prolog. Programa Fonte Compilador^ Programa Executável Sistema Operacional (^) CPU GERAÇÃO DO PROGRAMA EXECUTÁVEL Programa Executável Sistema Operacional (^) CPU EXECUÇÃO DO PROGRAMA
Figura 5: Execução de um programa interpretado (Miyazawa, 2001:3)