Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduo Programao
OBJETIVOS DO CAPTULO Ao final deste captulo voc ser capaz de: Entender o processo de traduo de programas escritos em linguagem de alto nvel para cdigo de mquina. Compreender o conceito de varivel e sua relao com a memria do computador. Criar instrues que envolvam operaes aritmticas. Utilizar instrues de entrada e sada da linguagem C. Escrever um programa simples em C. Agora que voc j conhece as caractersticas de um algoritmo computacional e capaz de criar algoritmos utilizando suas diferentes formas de representao, est na hora de voc escrever seu primeiro programa. Porm, antes que isso ocorra, voc deve aprender alguns conceitos bsicos como o conceito de varivel e conhecer o processo de traduo de um programa escrito em linguagem de alto nvel (a linguagem C, por exemplo) para cdigo de mquina, ou seja, para a linguagem que o computador trabalha. Alm desses conceitos, este captulo tambm aborda a elaboraes de expresses aritmticas em C, bem como alguns de seus comandos bsicos.
2.1. Introduo
Voc viu no captulo anterior que existe uma linguagem que os computadores so capazes de compreender e que utilizada na elaborao de algoritmos para instru-los a executarem as mais diversas tarefas. Essa linguagem chamada de linguagem de programao e consiste no principal assunto deste captulo.
Assim como as linguagens naturais (portugus, ingls, espanhol, etc), as linguagens de programao tm o objetivo de prover um meio eficaz de comunicao. Elas so constitudas de um conjunto de palavras especiais (vocabulrio), que associadas a um conjunto de regras de utilizao, determinam como os algoritmos devem ser especificados para que possam ser corretamente decodificados pelo computador. As linguagens de programao diferem das naturais de vrias formas. Primeiramente, apesar de ser possvel de serem utilizadas como meio de comunicao entre pessoas, seu principal propsito possibilitar a comunicao entre uma pessoa e um computador. Alm disso, as linguagens naturais so mais tolerantes a erros. Um erro gramatical, por exemplo, no impossibilita uma conversa entre duas pessoas. J no caso das linguagens de programao, a simples omisso de um ponto e vrgula capaz at de impedir que a comunicao seja iniciada. O contedo da comunicao por meio de uma linguagem de programao tem um significado especial para a cincia da computao. Enquanto que nos expressamos nas linguagens naturais atravs de textos e da emisso de sons, nas linguagens de programao nos expressamos atravs de programas, que nada mais so do que algoritmos escritos em uma linguagem de programao. O estudo das tcnicas para elaborao de programas consiste em um dos pilares da cincia da computao, conferindo uma importncia particular disciplina de Introduo Programao. Antes que voc conhea as peculiaridades de uma linguagem de programao estruturada, como suas principais instrues e regras para a construo de um programa, estudaremos os paradigmas de programao existentes e o processo de traduo de um programa escrito em linguagem de alto nvel para um programa em cdigo de mquina.
computador. Para representar o bit zero, por exemplo, normalmente utiliza-se um valor prximo a zero volts. Para o bit um, utiliza-se um valor um pouco maior, da ordem de poucos volts. Repare que trabalhar com uma combinao de zeros e uns no uma tarefa fcil para um ser humano. Para que voc perceba a dificuldade, imagine como seria escrever um pseudocdigo substituindo comandos como LEIA, ESCREVA e expresses aritmticas por uma combinao de zeros e uns. A Figura 2.1 ilustra tal situao, apresentando um algoritmo em pseudocdigo que calcula a mdia de duas notas lidas da entrada padro e sua verso hipottica em cdigo binrio.
O cdigo binrio apresentado na Figura 2.1 tem fins meramente didticos, no sendo elaborado com base em nenhuma mquina real.
Algoritmo em pseudocdigo
1. 2. 3. 4. 5. 6. 7. ALGORITMO DECLARE nota1, nota2, M : NUMRICO LEIA nota1 LEIA nota2 M (nota1 + nota2) / 2 FIM_ALGORITMO.
8.
Com o intuito de tornar menos complicada, mais eficiente e menos sujeita a erros a tarefa de programar computadores, foram criadas linguagens de programao mais prximas s linguagens naturais. Elas so compostas de um conjunto de palavras-chave, normalmente em ingls, e smbolos que estabelecem os comandos e instrues que podem ser utilizados pelo programador na construo de seus programas. As linguagens com essa caracterstica so chamadas de linguagens de alto nvel, ao passo que as mais prximas da linguagem de mquina (representao binria), so denominadas de linguagens de baixo nvel. So exemplos de linguagens de alto nvel: Pascal, C
(linguagem abordada neste livro), Java, C++ e Python. Como exemplo de linguagem de baixo nvel, temos a linguagem Assembly.
No processo de compilao, cada parte de um programa (mdulo) escrito em linguagem de alto nvel traduzido para um mdulo objeto diferente, que consiste em sua representao em linguagem de montagem. Esse passo no processo de compilao corresponde ao passo 1 da Figura 2.2. Antes de serem traduzidos para linguagem de mquina pelo montador, necessrio que os vrios mdulos objetos sejam integrados de modo a formarem um nico cdigo. Essa tarefa realizado no passo 2. O passo 3 o responsvel por carregar o programa na memria, a fim de tornar suas instrues prontas para serem executadas pelo processador.
TRADUTOR
LIGADOR
Memria Principal
CARREGADOR
Os interpretadores, alm de realizar a traduo de um programa para a linguagem de mquina, ainda executam suas instrues. Assim que traduz uma instruo, ela imediatamente executada, gerando assim um ciclo de traduo e execuo que prossegue de instruo a instruo at o fim do programa (Figura 2.3).
Por no traduzir um programa escrito em linguagem de alto nvel diretamente para linguagem de mquina, o processo de compilao tende a ser mais rpido que o processo de interpretao. Alm disso, uma vez compilado, um programa pode ser executado vrias vezes sem a necessidade de haver uma recompilao. J na interpretao, cada vez que um programa tiver que ser reexecutado, todo o processo de interpretao dever ser refeito, independente de ter ocorrido modificaes no cdigo fonte do programa desde sua ltima execuo. A vantagem da interpretao fica por conta da possibilidade de testar os programas ao mesmo tempo em que so desenvolvidos.
A linguagem utilizada neste livro (linguagem C) como ferramenta para inici-lo na programao de computadores uma linguagem compilada, portanto, os programas que voc ir desenvolver passaro pelos passos explanados anteriormente.
Para saber mais sobre o processo de montagem e compilao, leia a Seo 3 do Captulo 5 do Livro de Introduo ao Computador.
Paradigma imperativo: Representa a computao como aes, enunciados ou comandos que alteram o estado (variveis) de um programa. Consiste na elaborao de programa a partir de comandos que dizem o computador deve fazer a cada momento.
Paradigma estruturado: Soluciona problemas a partir de sua quebra em problemas menores, de mais fcil soluo, denominados de sub-rotinas ou subprogramas. Normalmente o trabalho de cada sub-rotina consiste em receber dados como entrada, processar esses dados e retornar o resultado do processamento para o mdulo de software que o executou. Este paradigma ainda defende que todo processamento pode ser realizado pelo uso de trs tipos de estruturas: sequencial, condicional e de repetio. o paradigma adotado neste livro.
Paradigma declarativo: Descreve as caractersticas da soluo desejada sem especificar como o algoritmo em si deve agir. Em contraste com o paradigma imperativo, que informa ao computador como as instrues devem ser executadas, o paradigma declarativo preocupa-se apenas em definir o que deve ser feito, deixando a cargo de outros softwares decidirem como alcanar a soluo descrita. bastante utilizado no desenvolvimento das pginas web (linguagem html) e na descrio de documentos multimdia atravs da linguagem Nested Context Language NCL, adotada pelo padro brasileiro de TV Digital.
Paradigma orientado a objetos: Enxerga o problema como uma coleo de objetos que se comunicam por meio da troca de mensagens. Os objetos so estruturas de dados que possuem estado (variveis) e comportamento (lgica).