Você está na página 1de 12

Mtodos de Programao I

Ano Lectivo 2004/2005

APONTAMENTOS

Ana Maria de Almeida


DepartamentodeMatemticadaFCTUC UniversidadedeCoimbra

Programming is the most difficult part of applied mathematics. Edsger W. Dijkstra It has often been said that a person does not really understand something until he teachs it to someone else. Actuallty a person does not really understand something until he can teach it to a computer, i.e., express it as an algorithm. - Donald E.Knuth

CAP'TULO I CONTEDO

1.1 Pequena histria da evoluo do computador 1.2 A Informtica e suas prinicipais utilizaes 1.3 Descrio bsica de um Computador Digital 1.4 Hardware versus Software

Funes Bsicas de um Computador Modelo de Organizao de um Computador Digital - Modelo de Von Neumann Funes gerais de um sistema operativo Linguagens de Programao

1.5 Representao digital: noes bsicas

Captulo 1
1.1. Pequena Histria da Evoluo do Computador ... - Com a necessidade de efectuar contagens o homem primitivo, para alm da inveno de um sistema numrico (decimal baseado nos dez dedos de uma mo humana), sentiu a necessidade de guardar e alterar a informao numrica. assumido pelos historiadores que, mesmo antes do desenvolvimento da linguagem escrita, o homem j conhecia o conceito de inventariao de objectos ou animais que possua, gravando sulcos em varas de madeira ou nas paredes de cavernas. Para alm disso, com as trocas comerciais e o assumir da propriedade (como terras para cultivo ou pastorcia e bens acumulados), os paus, as pedras ou as conchas deixam de ser eficientes pois h cada vez mais informao a manipular. Surgem os primeiros dispositivos mecnicos de clculo: os bacos. Foi com o uso do baco que o clculo sofreu a sua primeira sistematizao, reflectindo o funcionamento de uma hierarquia de valores conforme a coluna onde se efectue os clculos (sistema decimal). Cada conta na parte inferior do baco representa uma unidade e cada conta da parte superior representa 5 unidades. 1623 - Baseado nos bastes de Napier (1614), documentados pelo inventor dos logaritmos, John Napier (matemtico e astrnomo), Wilhelm Schickard, em Tuebigen (Alemanha), cria o seu Relgio-Calculadora: uma mquina capaz de somar e subtrair nmeros com 6 dgitos, e que indica ultrapassagem de capacidade com o som de uma campainha. 1633 Ainda com base nos bastes de Napier, nasce a primeira verso de uma rgua de clculo, que permitia ainda multiplicaes e clculo de alguns logaritmos. Esta ltima foi, ao longo dos tempos, melhorada e aumentada e, era de tal modo completa, que foi muito popular at cerca da dcada de 70, onde foi, finalmente, substituda pelas calculadoras automticas. 1642 - Com a idade de dezanove anos, o matemtico francs Blaise Pascal projecta uma calculadora mecnica que permitiu demonstrar as vantagens prticas do clculo mecanizado. Para operar a Mquina de Pascal, fazia-se girar uma srie de rodas que tinham gravadas, ao longo da sua circunferncia, os dgitos de zero a nove. Assim que uma das rodas efectuasse uma volta completa em torno do seu eixo, um mecanismo de rodas dentadas fazia rodar o dgito da roda sua esquerda de uma unidade. Os resultados (quer finais quer intermdios) eram visualizados nas prprias rodas atravs do uso de indicadores. 1804 - Com o advento da revoluo industrial e a possibilidade de mecanizao do trabalho repetitivo, Joseph Marie Jackard desenvolve (fisicamente) uma ideia que se comeou a formar na primeira metade do sculo XVII: a automatizao de sequncias de instrues repetitivas, que so codificadas em cartes perfurados e permitem a construo de um objecto - Tear de Jackard. 1812 - Charles Babbage constri a sua primeira mquina diferencial, Mquina das diferenas, capaz de gerar tabelas logartmicas com uma preciso de seis casas decimais. Babbage pretendia mecanizar o clculo logartmico e as tabelas de astronomia. 1813 - Babbage projecta uma mquina que conseguiria realizar qualquer operao matemtica automaticamente. Movida a vapor e baptizada de Mquina Analtica, seria capaz de trabalhar baseada num conjunto de instrues de operao, armazenadas em cartes perfurados, tal como nos teares de Jackard.

Pela primeira vez, aparecem princpios e conceitos que s no sculo XX sero, efectivamente, implementados: a mquina analtica deveria ser constituda por uma unidade aritmtica, uma unidade para entrada de dados e instrues, uma unidade para imprimir resultados e seria capaz de realizar operaes lgicas (que, como veremos seguidamente, so os constituintes principais de um computador). As ideias de Babbage foram documentadas e ampliadas por Augusta Ada Byron, condessa de Lovelace (filha do conhecido poeta ingls Lord Byron), actualmente reconhecida como a primeira programadora da histria. Dotada de uma mente extremamente arguta para a resoluo de problemas matemticos, deixou-nos uma herana que, talvez somente nos nossos dias, se esteja a apreciar devidamente. 1890 - Herman Hollerith, do servio de censos dos Estados Unidos, foi a primeira pessoa a usar equipamento de clculo elctrico para anlise estatstica de informao, engendrando um processo de codificar o nome, sexo, endereo e outros dados estatsticos em cartes perfurados. Este cdigo era posteriormente contado electricamente quando o carto passava numa unidade de leitura. este processo que permite ao governo dos EUA, em 1890, realizar todas as contagens em menos de metade do tempo que tinha demorado a realizar o censo anterior (1880) ainda que, relativamente a este ltimo, a populao tenha sofrido um aumento de 25%. 1896 - Hollerith funda a Tabulating Machine Company que, mais tarde, se passa a chamar International Business Machines Corporation - IBM. Mquinas construdas com base na mquina de Hollerith so melhoradas e tornam-se mais rpidas permitindo o processamento de vencimentos, facturao, anlise de vendas, clculo cientfico, etc. 1937 a 1944 - Principalmente com o eclodir da segunda guerra mundial e os problemas associados inveno e melhoramento do armamento e da bomba atmica, h uma acelerao no desenvolvimento de sistemas informticos, nascendo a primeira gerao de calculadores digitais automticos de grande escala - MARK I (sucessivamente MARK II,III e IV). Desenvolvido(s) pela IBM para a Universidade de Harvard, segundo um projecto de um elemento desta universidade, Howard H. Aiken, o MARK I pesava 5 toneladas e era constitudo por 78 dispositivos interligados por cerca de 800Km de cabos. Trabalhou durante 15 anos e foi retirado de funcionamento em 1959. Realizava operaes com nmeros com 23 dgitos (subtraces e adies em 3 dcimos de segundo e multiplicaes em 6 segundos). Era programvel com fita perfurada e capaz de controlar automaticamente mquinas de escrever elctricas. Uma vez comeado um programa tinha que ser levado at ao fim sem hiptese de (inter)aces humanas ou alteraes de qualquer ordem. A histria do software como pea fundamental no funcionamento de um computador comea, portanto, na dcada de 40 e, particularmente, com a contratao, por parte da marinha dos EUA, duma jovem matemtica, Grace M. Hopper, que tem como misso trabalhar com Howard Aiken em Harvard. 1945 - Seria contudo necessrio um outro avano particular para atingirmos o conceito actual de computador: o conceito de armazenamento de informao. O armazenar das instrues e dados num dispositivo fsico que funcionaria como uma memria e que pudesse ser alterado pelo prprio computador nasceu com Von Neumann e foi rapidamente aproveitado para a construo de novas mquinas, como: 1946 o ENIAC (Electronic Numerical Integrator And Calculator), que constitui o primeiro computador electrnico digital. Nasceu na Universidade da Pensilvnia, atravs dos esforos de J. Presper Eckert e John W. Mauchly, e foi desenvolvido para o exrcito dos EUA, usando j vlvulas (ao invs de rels elctricos e dispositivos mecnicos) e flip-flops para a memria; 1949 o EDSAC (Electronic Delay Storage Automatic Computer ), britnico, construdo no Laboratrio Matemtico da Universidade de Cambridge por Maurice Wilkes, constitu-se como o

primeiro computador electrnico digital com memria para programas completamente operacional. (Pelo que discute com o ENIAC o ttulo de verdadeiro primeiro computador!) A partir deste ponto, o desenvolvimento, quer fsico quer lgico, dos computadores disparou at aos nossos dias. O primeiro computador disponvel comercialmente foi o UNIVAC, em 1950, ainda bastante oneroso, logo, s usado por empresas com algum porte, e aparecem tambm os primeiros dispositivos perifricos. Em 1951, Grace Hopper regista um problema com o UNIVAC I, devido a uma borboleta (traa - bug) que se introduziu no equipamento produzindo resultados errados. Desde a, BUG continua a ser usado para significar erro ou defeito de um programa, e testar um programa para verificar se no existem erros de execuo diz-se : fazer o debug ou debuging do programa (isto , retirar os bugs). Na dcada de cinquenta aparecem os primeiros compiladores e desenvolvem-se as primeiras linguagens. No incio da dcada de 60, surge a 2 gerao de computadores com a introduo dos transstores em substituio das vlvulas electrnicas. Em 1967, com a introduo generalizada de circuitos integrados em vez de transstores, inicia-se a 3 gerao de computadores. Surgem novas linguagens de programao e os sistemas operativos tornam-se independentes da arquitectura dos computadores. Em 1968, Edgar W. Dijkstra, com um artigo na revista ACM (Association for Computer Machinery) observa que a qualidade da programao funo inversamente proporcional ao uso de instrues go to. Despoleta assim um movimento que culminar com o aparecimento e definio da Programao Estruturada. Durante a dcada de 70 h um aumento progressivo da capacidade de memria, velocidade de operao e diminuio do tamanho dos computadores. Fala-se pela primeira vez na possibilidade de ligar mais do que um computador em rede de comunicao. Na dcada de oitenta, com o aparecimento dos circuitos de integrao em larga escala (VLSI - Very Large Scale Integration) surgem os primeiros computadores pessoais e a ideia de uma rede de computadores interligados toma forma: d-se nascimento do correio electrnico (e outro tipo de comunicaes entre computadores) que culmina, j na dcada de noventa pela ligao geral de computadores de qualquer tipo atravs do uso de linhas telefnicas: Multimdia/Internet - acesso a computadores remotos, comunicao inter-computador, transmisso directa de som/imagem/texto (WWW, World Wide Web).

1.2. A Informtica e suas Principais utilizaes A informtica a cincia do tratamento automtico da informao e o computador um sistema electrnico que permite armazenar grandes quantidades de informao e, sobre ela, realizar, a velocidades muito elevadas, manipulaes e operaes aritmticas e lgicas elementares. Comecemos por ver quais so os principais campos de aplicao da informtica e do uso de computadores. Os computadores podem ser primariamente divididos em duas grandes reas, consoante o tipo de aplicao pretendido: Aplicao Especfica Destinados a realizar um tipo pr-determinado e limitado de tarefas Aplicao Geral (ou generalistas) Programveis consoante a necessidade do momento

Aparecem tambm campos de aplicao principais, agrupados do modo seguinte:

REA COMERCIAL - GESTO - CONTROLO DE PROCESSO

A aplicao mais comum dos computadores e uma das grandes responsveis pelo desenvolvimento da informtica, tem a ver com o processamento de informao atravs do uso de bases de dados - agrupamento de informao inter-relacionada em entidades independentes, de modo a poder ser obtida de um modo eficiente, uma consulta pertinente para servir determinado objectivo. Usualmente, o volume de dados grande e o clculo diminuto, sendo a rapidez do computador aproveitada para manusear rapidamente um volume muito grande de informao. Desde a administrao s linhas de montagem, h um lugar francamente rentvel e positivo para os computadores em todas as empresas, de qualquer dimenso. Apenas alguns exemplos: Facturao Contabilidade Controlo de Produo Anlise Financeira Gesto de Recursos ...

REA CIENTFICA

A principal caracterstica nesta rea o grande volume de clculo a executar em qualquer altura, muitas vezes acompanhado de um volume enorme de dados. Milhares de aplicaes cientficas so executadas diariamente em computadores em todas as reas cientficas. Exemplos: Meteorologia Engenharia Civil Engenharia Qumica Arquitectura ...

SERVIOS PBLICOS E SADE

So inmeras as aplicaes dos computadores na rea pblica. Sobretudo na projeco e planificao de cenrios possveis para problemas to diversos como o da poluio, um processo de gesto pblica ou o recenseamento, seria extremamente difcil e moroso realizar estudos correctos e profundos sem o auxlio de um computador. Avaliar sistemas de transportes e propor alteraes, estudar estatisticamente o funcionamento dos sinais luminosos de trfego, realizar estudos sobre o sistema e percurso de recolha do lixo, enfim, um sem nmero de actividades possveis. Por outro lado, a manuteno de ficheiros completos e actualizados sobre pacientes, programas de diagnstico, bases de dados sobre produtos farmacuticos permanentemente actualizadas, podem significar uma diferena notvel na qualidade do servio e, consequentemente, no conforto e, at mesmo, na vida dos pacientes. Actualmente, a ligao via Internet permite a realizao de vrios actos mdicos, desde (tele)consultas a intervenes cirrgicas (orientadas) distncia.

EDUCAO - HUMANSTICAS

Uma das vantagens fundamentais trazidas pelos computadores actuais a da disponibilidade de informao 24 horas por dia. Para alm disso, podem ser uma ajuda notvel ao processo de raciocnio lgico, atravs da formulao de processos de soluo

de problemas (algoritmos). Existem mesmo disciplinas onde apenas a simulao usando um computador pode aproximar o estudante da vida real e da implementao prtica dos processos tericos, como , por exemplo, o caso das cincias polticas. Para alm das vantagens de aprendizagem bvias, todos ns temos necessidade de produzir texto, sendo o computador um auxiliar nico no gnero. As possibilidades oferecidas por um bom processador de texto, no s atravs da possibilidade de correco de erros, mas tambm atravs das bases de dados e outras combinaes possveis, tornam o ofcio (jornalistas), a arte (escritores) ou a necessidade de escrever (todos ns) em algo bem mais criativo. Como nota final, merecem destaque certas aplicaes especiais ou especializadas de processadores/programas especializados como sejam, por exemplo, o ensino por computador (CAI - Computer Assisted Instruction), o desenho de computadores assistido por computador (CACD Computer Aided Computer Design), o controlo de rotas e, principalmente, a aterragem de avies.

1.3. Descrio bsica de um Computador Digital Num sistema informtico, dados so o material bsico da informao e s podem ser considerados (eles mesmos) como informao num sentido limitado do termo. Dados so smbolos que, agrupados e manipulados convenientemente, podem construir informao. Apesar de usarmos ambos os termos de um modo bastante livre ao falar, s considerado informao um conjunto de smbolos dispostos segundo determinada ordem e forma, til ao fim a que se destina. O processamento a manipulao dos smbolos (ou dados) de modo a criar, modificar ou consultar informao. O processamento de informao consiste, ento, nas seguintes funes elementares: introduo dos dados necessrios manipulao e transformao (classificao, clculo, ordenamento, resumo) comunicao de resultados (armazenamento, recuperao, reproduo Assim, podemos descrever a actividade de um computador atravs da descrio das suas funes mais gerais: Funes Bsicas de um Computador Entrada de informao - Dados Processamento Controlo de funes Armazenamento de informao - Memria Sada de Resultados Estas funes bsicas so agrupadas num modelo, dito Modelo de Von Neumann, que, apesar de ter sido concebido em 1945, ainda hoje representa a organizao interna de qualquer computador digital no paralelo:
Modelo de Organizao de um Computador Digital - Modelo de Von Neumann

Neste modelo esquemtico de organizao de um computador digital tradicional encontramos 3 unidades bsicas principais:

Unidade Central de Processamento (CPU, Central Processing Unit) onde, no s se executam as operaes aritmticas e lgicas elementares estipuladas pelo programa, como tambm efectuado todo o controlo do sistema informtico. Assim, esta unidade central aparece dividida em 2 seces principais: a unidade de controlo e a unidade aritmtica e lgica. Unidades de Entrada e Sada (Input/Output): so estas unidades que permitem a comunicao com o exterior. Memria Central: onde so armazenados os programas, dados e resultados necessrios prossecuo e finalizao da tarefa em curso.
Unidade Processadora Central

Unidade de Controlo

C I
Unidade Aritmtica e Lgica

C - controlo D - dados R - resultados I - instrues

R D
Unidades de Entrada/Sada

R D D R
Figura 1: Modelo de Von Neumann
Memria Central

A unidade de controlo a mais importante de todas as unidades. ela que controla todo o funcionamento do sistema: retira, uma a uma, as intrues de execuo da memria, analisa-as e transforma-as em sinais de comando a serem obedecidas pelas diversas partes fsicas do computador. Comanda a entrada de dados e sada de resultados entre todas as restantes unidades e sincroniza todas as operaes a serem efectuadas, a velocidades muito elevadas. Esta sincronizao feita usando um relgio interno que emite milhes de impulsos por segundo - MegaHertz (MHz)e cada instruo toma uns tantos impulsos desses milhes para se poder realizar. A unidade aritmtica e lgica apenas executa as operaes elementares de clculo ou transformao que lhe so indicadas pela unidade de controlo, na ordem por esta ltima sinalizada e sobre os dados por ela indicados. A memria central serve, obviamente, para armazenar dados, resultados e programas, tendo, basicamente, 4 funes diferentes durante o processamento e que, portanto, podemos descrever como estando dividida em quatro reas diferentes de armazenamento: rea de armazenamento de dados de entrada (que conter os dados exteriores que o programa necessita para a sua execuo) rea funcional (serve para anotar resultados intermdios do processamento) rea de armazenamento de programas (guarda as instrues de processamento do programa a correr no momento) rea de armazenamento de sada (guarda resultados finais do processamento at que possam sair da memria central)

Esta separao apenas funcional, isto , no fsica nem permanente, variando de programa para programa. Existem tambm diferentes tipos de memria para alm da central. Esta ltima tem que ser afecta ao computador para que este possa trabalhar mas podemos estender a capacidade de memria de um computador usando as chamadas memrias auxiliares. Estas unidades no so essenciais ao funcionamento do computador por si s e, por isso, quando existem, so identificadas como unidades perifricas. Dentro dos diferentes tipos de memria, podemos agrup-los em dois grupos principais: Memrias de acesso sequencial (para recolher uma informao qualquer, temos de passar toda a informao que seja anterior a esta) - fita magntica (cartuchos, bobinas, cassetes ); Memrias de acesso directo (podemos recolher informao directamente atravs do uso de endereos para localizao) - discos magnticos (disco duro, disquetes, ), discos pticos (CD/DVD). Claramente, estas diferenas aparecem devido a custos de construo das diferentes memrias e, mesmo dentro da memria central, teremos memrias mais rpidas e mais lentas para o trabalho do computador. De facto, no s a velocidade de processamento importante num computador mas, tambm, a velocidade de acesso informao extremamente importante. Que interesse tem um processador muito rpido se tivermos que estar espera enquanto ele recolhe informao em memria? Os diferentes tipos de memrias que existem so fabricados em materiais diferentes que tm, obviamente, capacidades diferentes (de armazenamento, de propagao de sinais elctricos, etc) e so uns mais caros que outros. Podemos, portanto, falar de uma hierarquia de memria, em termos dos diferentes tipos de memria e em funo da sua capacidade, tempo de acesso e custo, que se encontra esquematizada na figura seguinte:

capacidade/tempo de acesso memrias centrais

custo

memrias auxiliares directas memrias auxiliares sequenciais

+
Figura 2: Hierarquia de memria

As unidades de entrada e sada, que servem para efectuar a comunicao com o exterior, so constitudas por todos os perifricos de comunicao com o exterior como, por exemplo: monitor teclado rato impressoras unidades de leitura ptica ou magntica (leitores de CD/DVD, disquetes, ) modems (unidades de comunicao digital entre computadores) scanners (unidades de leitura digitalizadoras) cmaras de video microfones joystick

1.4. HARDWARE

VERSUS

SOFTWARE

Vimos j quais as componentes fsicas bsicas de um computador digital. O conjunto destes dispositivos toma a designao geral de hardware (equipamento fsico: dispositivos mecnicos, magnticos, elctricos e electrnicos). A parte lgica, com a qual podemos tirar partido e fazer funcionar o hardware, designa-se por software (aspecto lgico, domnio da programao: conjunto de programas, mtodos, regras e documentao necessrias ao perfeito funcionamento do sistema informtico). Tal como no possvel conceber a existncia de um computador sem a sua parte fsica, tambm o seu funcionamento inconcebvel sem o software, por muito poderoso e sofisticado que seja o sistema. Um programa , basicamente, um conjunto de instrues, escritas numa linguagem especfica, destinadas a orientar o sistema informtico na execuo de vrios passos elementares que, no seu conjunto conduzem a um determinado objectivo. Assim, e consoante as caractersticas desse objectivo, podemos dividir o software em 3 categorias principais: Software do Sistema (Sistema Operativo) - fornecido com cada computador, permite a gesto do funcionamento integrado de todas as componentes Software de Suporte - fornecido pelos fabricantes, permite a gravao, aperfeioamento e utilizao dos programas de aplicao (tradutores, compiladores, editores, programas de clculo matemtico, ) Software de Aplicao - programas escritos pelos utilizadores e programas que usam subrotinas das duas classes anteriores (programas de clculo estatstico, traadores de grficos, processadores de texto, ) Antes de qualquer outro, o software mais importante e que o primeiro a ser introduzido num computador o sistema operativo. com este conjunto de rotinas que a parte fsica pode funcionar e graas a ele que podemos comunicar com o computador. Assim, um sistema operativo (SO) um conjunto integrado de rotinas especializadas para controlar todo o sistema bsico. Fica residente em memria central e parte dos comandos de um sistema operativo ficam armazenados numa zona especial de memria (dita, rea apenas para leitura - ROM, Read Only Memory), no precisando de ser activamente invocados para funcionar, basta, para tal, ligar o computador. De facto, so estes comandos que tornam possvel a primeira ligao com o utilizador, testando a operacionalidade de todos os componentes e permitindo ao utilizador comandar o sistema. Podemos visualizar as categorias de software como encapsulando todo o sistema computacional de acordo com o esquema seguinte:

Utilizador Aplicaes Sistema Operativo Hardware

Figura 3: Hardware/Software/Utilizador
Funes gerais de um sistema operativo

controlar operaes de entrada e sada controlar o fluxo de dados entre memrias centrais e auxiliares

fornecer as instrues necessrias para que as diferentes partes do sistema cooperem entre si fazer a distribuio do tempo por diferentes tarefas ou utilizadores chamar outros programas sempre que necessrio , portanto, o sistema operativo que controla a CPU e permite a ligao com o utilizador. Como exemplos de sistemas operativos mais vulgares temos: UNIX / LINUX - inicialmente destinado a grandes computadores, vulgarizou-se para todos os tipos de computadores, sendo j utilizado em computadores pessoais (LINUX). Serviu de exemplo para a maior parte dos outros SO. DOS - nos primeiros computadores pessoais, o SO comeou por ser armazenado num disco flexvel, da o seu nome, que deriva do ingls, Disk Operating System.

Linguagens de Programao

O computador, ou a sua CPU, s entende uma linguagem especial, dita linguagem mquina, constituda apenas por zeros (0) e uns (1). Mais ainda, qualquer comando directo, tem que ser o mais simples possvel, porque a CPU s trabalha com ordens e operaes muito elementares. tambm necessrio conhecer muito bem os componentes fsicos e o modo como so interligados (a arquitectura do sistema), o que pode variar muito de mquina para mquina. Da ser extremamente difcil e moroso programar neste cdigo. Uma vez que se pretende, com o computador, tornar o trabalho mais eficiente, mais rpido e mais rentvel, foram criadas linguagens mais prximas do entendimento humano e das linguagens naturais. Vejamos uma tabela com alguns exemplos de linguagens de programao: Linguagens de baixo nvel: mais prximas da parte fsica e do funcionamento prprio do computador, logo, produzindo programas longos e de muito difcil leitura/correco para um utilizador humano Linguagem mquina - Reflecte a estrutura interna de cada computador; Constituda por combinaes numricas de zeros e uns (00110101 00100011 00001111) dito cdigo binrio; Assembler - Substitui pequenos arranjos de combinaes numricas em cdigo binrio por instrues bsicas descritas por mnemnicas (SUM A1, A2); Dependente do computador; Linguagens de alto nvel: mais prximas dos conceitos humanos e pouco ou nada dependentes da mquina em questo. Cada instruo corresponde a muitas instrues de cdigo mquina, o que torna os programas mais curtos, legveis e mais facilmente alterveis por utilizadores humanos.
LINGUAGEM TIPO INICIADA EM

FORTRAN LISP PASCAL C ADA

clculo intensivo simblica e lgica genrica genrica defesa e espionagem

1955 1955 1969 1971 1980

Tabela 1: Alguns (poucos) exemplos de linguagens de programao de alto nvel

Você também pode gostar