Sunteți pe pagina 1din 16

CURSO DE INFORMTICA

Algoritmos
Ricardo Jos Cabea de Souza

Parte 1

Sumrio
Apresentao e-Tec Brasil Sumrio Palavra do professor-autor Apresentao da Disciplina UNIDADE I - ALGORITMOS 1.1 Objetivos de Aprendizagem 1.2 Introduo 1.3 Conceitos Bsicos 1.3.1 Lgica 1.3.2 Dado e Informao 1.3.3 Ao 1.3.4 Computador 1.3.5 Algoritmo 1.3.6 Sintaxe e Semntica 1.3.7 Linguagem de programao 1.3.8 Programao Estruturada REFERNCIAS BSICAS REFERNCIAS COMPLEMENTARES

UNIDADE I ALGORITMOS
1.1 Objetivos da aula
Apresentar os conceitos bsicos de algoritmos e sua importncia na elaborao de solues para resolver determinados problemas e definir uma pseudo-linguagem (pseudocdigo) que ser utilizada no desenvolvimento de algoritmos.

1.2 CONCEITOS BSICOS


1.2.1 Lgica
De acordo com Arajo (2005) a lgica a cincia das formas do pensamento, alm de estudar a correo do raciocnio, visto que ele a forma mais complexa do pensamento. Pode-se dizer ainda que a lgica visa a ordem da razo, que nossa razo pode funcionar desordenadamente e que ela estuda e ensina a colocar ordem no pensamento.[3] Arajo (2005) destaca ainda que Forbellone e Eberspacher (2000) afirmam tambm que o raciocnio algo abstrato, intangvel. Lembram que os seres humanos tm a capacidade de express-los atravs da palavra falada ou escrita que, por sua vez, se baseia em um determinado idioma que segue uma srie de padres (gramtica). Ressaltam que o mesmo raciocnio pode ser expresso em qualquer um dos inmeros idiomas existentes, mas continuar representado o mesmo raciocnio, usando apenas outra conveno. [3] (Glossrio) ABSTRATO - Que utiliza abstraes, que opera com qualidades e relaes, e no com a realidade sensvel. Aquilo que se considera existente s no domnio das idias e sem base material. (Glossrio) INTANGVEL - Em que no se pode tocar; impalpvel, inttil, intocvel. Os conceitos mostrados acima destacam a capacidade do ser humano em realizar uma das operaes mais complexas existentes no mundo atual: a lgica do pensamento. Muitas vezes fazemos a leitura de determinado texto e inicialmente apresentamos um entendimento. Se fizermos uma leitura mais detalhada, observando os pormenores das

palavras escritas, analisando cuidadosamente todos os itens, palavras, frases, pargrafos, possvel que tenhamos entendimento diferente do verificado inicialmente. Esse comportamento verificado em razo de vrios fatores, como por exemplo, a experincia do leitor sobre o assunto tratado, a quantidade de informao prvia adquirida sobre o tema, entre outros, mas com certeza iro influenciar a compreenso de determinado texto. Desde j se torna importante para voc que deseja se tornar um programador de computadores, ao se deparar com qualquer texto, seja de que assunto for, obtenha informaes adicionais para o correto entendimento do tema.

1.3.2 Dado e Informao


Arajo (2005) adverte que os conceitos de dado e informao, geralmente, so confundidos um com o outro. Antes de definir e explicitar a diferena entre eles, vale lembrar que estas palavras no so privadas e to pouco foram criadas para a rea de Informtica e Computao. Voc pode realizar pesquisa em dicionrios, livros e at mesmo na Internet para encontrar diversas interpretaes para o mesmo conceito. [3] (Glossrio) INTERNET - uma grande rede de computadores formada por redes menores gerando um conglomerado de redes em escala mundial de milhes de computadores interligados pelo protocolo de comunicao TCP/IP, permitindo o acesso a informaes e todo tipo de transferncia de dados. Os dados referem-se a um conjunto de coisas organizadas por certo critrio, normalmente o resultado da experincia ou observao de outras informaes de determinado sistema, utilizado para ser manipulado por um sistema computacional. Os dados podem consistir em nmeros, palavras ou imagens, objetos, pessoas, ou qualquer outro tipo de entidade apresentando certos atributos com possibilidade de ser manipulado ou observaes de um conjunto de variveis.[10] Os dados em bruto so um conjunto de nmeros, caracteres, imagens ou outros dispositivos de sadas para converter quantidades fsicas em smbolos, num sentido muito extenso. Normalmente se utiliza uma unidade de entrada para inserir os dados em um computador e esses

dados so armazenados em memrias do tipo permanente (por exemplo, discos rgidos) para posterior processamento. Aps o processamento, a manipulao dos dados se torna informao til ao usurio, apresentadas na unidade de sada do computador.[10] Informao o resultado do processamento, manipulao e organizao de dados de tal forma que represente uma modificao (quantitativa ou qualitativa) no conhecimento do sistema de acordo com a natureza do assunto tratado. [10] Informao enquanto conceito carrega uma diversidade de significados, do uso cotidiano ao tcnico, representando na cincia da computao uma coleo de fatos ou de outros dados fornecidos mquina, a fim de se objetivar um processamento. Genericamente, o conceito de informao est intimamente ligado s noes de restrio, comunicao, controle, dados, forma, instruo, conhecimento, significado, estmulo, padro, percepo e representao de conhecimento. Cada tipo de informao est associada a um determinado conjunto de dados, criados especificamente para se adequar aos processos de transmisso da informao.[10][3] A informao necessita, alm de um conjunto especfico de dados, de regras de formao para que possa ser expressa. Sem essas regras, a reunio de dados no carregaria nenhuma informao, sendo impossvel a obteno de contedos lgicos na mistura aleatria dos dados. Por isso, a quantidade de dados necessrios para que tenhamos um conjunto que satisfaa um universo de informaes, pode ser mnimo. [3] comum nos dias de hoje ouvir-se falar sobre a Era da Informao, o advento da "Era do Conhecimento" ou Sociedade do Conhecimento. Como a sociedade da informao, a tecnologia da informao, a cincia da informao e a cincia da computao em informtica so assuntos e cincias recorrentes na atualidade, a palavra "informao" freqentemente utilizada sem muita considerao pelos vrios significados que adquiriu ao longo do tempo. [10] (Glossrio) RECORRENTE - Diz-se de processo que pode ser indefinidamente continuado uma vez que seus efeitos parciais, sucessivamente, se transformam em causas de efeitos semelhantes.

O processamento de dados consiste em uma srie de atividades ordenadamente realizadas, com o objetivo de produzir um arranjo determinado de informaes a partir de dados obtidos inicialmente. Esse processo segue o esquema mostrado na figura 1.1.

1.3.3 Ao
Guimares e Lages (1985) conceituam ao como um evento que ocorre num perodo de tempo finito, estabelecendo um efeito bem definido. [4] Exemplificando temos: caminhar at uma determinada praa escrever uma carta descascar as batatas para o jantar Ao definirmos uma ao, estamos realmente interessados nos efeitos que ela ir produzir e no especificamente na ao. A inteno na execuo de uma ao estabelecer esse efeito, que ento naturalmente deve ser bem definido. Aes com efeito imprevisvel no nos interessa e prejudicial no desenvolvimento de algoritmos. Precisamos ter em mente que fundamental que a ao leve um perodo de tempo finito para ser executada, ou seja, a ao ser iniciada e terminada em algum momento.[4]

1.3.4 Computador
Um computador uma mquina composta por diversos elementos com a finalidade de manipular smbolos. Os smbolos so utilizados para tratar os dados e transform-lo em informao til ao usurio. Essa mquina capaz de receber, armazenar e enviar dados, e de efetuar, sobre estes, seqncias previamente programadas de operaes aritmticas (como clculos) e lgicas (como comparaes), com o objetivo de resolver problemas. Embora os computadores se

apresentem de vrias formas, tamanhos e tipos, todos apresentam alguns elementos considerados essenciais para execuo das operaes que so: unidade de entrada, unidade central de processamento, memria principal, memria secundria e unidade de sada, conforme mostrado na figura 1.2.[2][9]

A Unidade de Entrada utilizada para possibilitar a entrada de dados que sero manipulados no computador. A Unidade Central de Processamento o crebro do computador. Esta unidade responsvel por executar todas as tarefas submetidas as computador. dividida em duas partes: a Unidade de Controle (UC) e a Unidade de Aritmtica e Lgica (UAL). A Unidade de Controle utilizada para controlar todos os dispositivos disponveis no seu computador, como discos rgidos, teclado, monitor, etc. e a Unidade de Aritmtica e Lgica responsvel por executar as operaes aritmticas e lgicas do seu computador. A Memria Principal o espao de trabalho do computador. Fisicamente um conjunto de circuitos integrados, chamado de RAM (Random Access Memory). A memria principal um recurso muito importante, pois determina o tamanho e o nmero de programas que podem ser executados ao mesmo tempo, como tambm a quantidade de dados que podem ser processados no mesmo instante. A principal caracterstica da memria principal a volatilidade, representando neste caso especfico que o dado se mantm armazenado na memria enquanto houver corrente eltrica alimentando o computador.

Considerando que os dados armazenados na memria principal somente se mantm enquanto houver energia, existe a necessidade de se gravar os dados de forma permanente, onde as informaes se mantenham mesmo desligando o computador. Para esse fim utilizamos a Memria Secundria. O principal dispositivo utilizado como memria secundria o disco rgido (Hard Disk HD). (Glossrio) DISCO RGIDO - Principal meio de armazenamento do computador. Utilizado para guardar de forma permanente os dados gerados pelos programas do usurio. constitudo por lminas redondas revestidas de material ferromagntico. A Unidade de Sada utilizada para apresentar o resultado das operaes realizadas pelo computador. O principal componente utilizado como unidade de sada o monitor.[17] De acordo com Martins (1994), computadores so considerados mquinas automticas no sentido em que, uma vez alimentada com a informao necessria, trabalha por si s, sem a interveno humana. Isso no quer dizer que ele inicie o seu trabalho sozinho, com inteligncia prpria, apenas que uma vez iniciado seu trabalho, ele ser levado at o final sem interveno humana. Para isso, o computador utiliza um programa, um conjunto de instrues que definem o que ser executado, passo por passo. As instrues so escritas utilizando uma linguagem de programao e armazenadas no computador.[2] Ao conjunto de dispositivos (componente fsicos) que formam o computador, isto , a mquina propriamente dita denomina-se hardware e o nome dado aos programas de um computador, ou seja, o conjunto ordenado de instrues, expresso em linguagens especiais e compreensveis para a mquina, para que ela possa executar as operaes que desejamos chamamos de software. Martins (1994) ainda informa que computadores so mquinas digitais, pois para manipular os dados, efetua operaes sobre dados codificados utilizando representao binria, composto somente de dois nmeros: 0 e 1. O bit (BInary digiT em ingls) utilizado para representar os dados que sero inseridos, armazenados, manipulados ou transmitidos pelo computador. Contudo, um bit por si s, considerando seus dois valores possveis, 0 e 1, no capaz de

representar algum dado. Para permitir a representao dos dados, os bits so agrupados em um conjunto de 8 (oito) bits para formar uma seqncia com a possibilidade de representar um dado, chamado de byte. [2][13] O byte identifica um caractere. Podemos fazer uma correspondncia biunvoca entre cada nmero decimal (0 a 9), as letras maisculas e minsculas (A at Z), os smbolos matemticos, a pontuao, etc, com um respectivo byte. A figura 1.3 apresenta a tabela ACII (American Standard Code for Information Interchang), com a codificao dos caracteres utilizados pelo computador.

1.3.5 Algoritmo
Podemos encontrar na literatura atual, diversos conceitos de algoritmo. Segundo Farrer et. al. (1989), algoritmo a descrio de um conjunto de comandos que, obedecidos, resultam numa sucesso finita de aes.[1] De acordo com Martins, (1994), algoritmo no mais do que uma descrio da seqncia de passos a seguir para atingir determinado objetivo. No entanto, nem todas as seqncias de passos para atingir determinado objetivo podem ser consideradas um algoritmo, pois todo algoritmo deve possuir trs caractersticas: ser rigoroso, ser eficaz e ter a garantia de terminar, ou seja, a seqncia de passos precisa ser finita.[2]

Conforme descrito por Arajo (2005), as etapas para resoluo de um processo, podemos chamar de especificao de seqncia ordenada de passos. E a esta especificao, damos o nome de algoritmo.[3] Para Guimares e Lages (1985), algoritmo a descrio de um padro de comportamento, expressado em termos de um repertrio bem definido e finito de aes primitivas, das quais damos por certo que elas podem ser executadas. Um algoritmo , em outras palavras, uma norma executvel para estabelecer certo efeito desejado, que na prtica ser geralmente a obteno de uma soluo a certo tipo de problema.[4] (Glossrio) REPERTRIO. Coleo, compilao, conjunto. Em todos os conceitos mostrados acima, verificamos que existe o entendimento, direto ou indiretamente, de algo que realizado seguindo uma determinada seqncia, e acredito que essa seqncia seja lgica, ou seja, segue um raciocnio lgico, ordenadamente pensado, visando executar a tarefa realizando a menor quantidade de passos possveis. Outro item que posso destacar a necessidade de que a execuo dos passos precisa terminar em algum momento, no se justificando sua execuo indefinidamente. Observa-se tambm a necessidade de no haver duplo sentido no problema apresentado, o texto da situao proposta precisa ser claro e objetivo, sem dupla interpretao, eliminando por completo ambigidades porventura identificadas. Se observarmos com cuidado, executamos algoritmos todos os dias sem a percepo de estar realizando algo provido de seqncia lgica. muito comum, ao levantarmos pela manh, executarmos os mesmos procedimentos antes de sair de casa para o trabalho ou escola, por exemplo. Em geral aps levantarmos, nos dirigimos para o asseio pessoal, ou ainda para o caf da manh. Em seguida, nos arrumamos com a roupa desejada e em seguida samos de casa. Verifique a existncia de certa repetio, ao todo ou em parte, nos procedimentos executados todos os dias. Essa seqncia de passos executados com o objetivo de realizar determinada tarefa com tempo determinado (finito) podemos chamar tambm de algoritmo.

Em outras tarefas rotineiras do dia-a-dia tambm se observa a presena de algoritmo, como por exemplo, a elaborao de uma refeio ou sobremesa, seguindo determinada receita. A receita apresentada, alm dos ingredientes necessrios para preparao do prato, apresenta uma seqncia de aes que precisam ser seguidas para realizao da tarefa de forma satisfatria. Guimares e Lages (1985) informam que a grande dificuldade na concepo do algoritmo o problema do relacionamento de dois aspectos fundamentais: um aspecto esttico e outro dinmico. O aspecto esttico est relacionado formulao do texto onde voc estabelece comandos (instrues) que devem ser executados numa ordem prescrita. Esse texto uma representao concreta do algoritmo e tem um carter evidentemente esttico, atemporal, expandido somente no espao (a folha de papel).[4] (Glossrio) ATEMPORAL - Que independe do tempo. Por outro lado, este texto no nos interessa em si, mas sim o resultado que ser apresentado no final. Interessa ento, os efeitos que pode evocar sua execuo no tempo, dado um conjunto de valores iniciais. Cada execuo de um algoritmo desta forma, um evento com caractersticas dinmicas, evoluindo com o passar do tempo. Constatamos dessa forma uma grande dificuldade de entender (visualizar) as estruturas dinmicas das possveis execues do algoritmo a partir da estrutura esttica do texto do algoritmo.[4]

1.3.6 Sintaxe e Semntica


Para Martins (1994), toda linguagem apresenta dois aspectos distintos: a forma da linguagem e o significado e o significado associado forma. Esses aspectos so denominados, respectivamente, a sintaxe e a semntica da linguagem. A sintaxe de uma linguagem o conjunto de regras que definem as relaes vlidas entre os componentes da linguagem, tais como as palavras e as frases. A sintaxe nada diz em relao ao significado da linguagem. Na linguagem utilizada por ns, a sintaxe conhecida como gramtica e de forma anloga, em se tratando de linguagem de programao de computadores, a sintaxe definida atravs da gramtica.

A semntica de uma linguagem define qual o significado de cada frase da linguagem. A semntica nada diz quanto ao processo de gerao das frases na linguagem. A descrio da semntica de uma linguagem de programao muito mais difcil do que a descrio da sua sintaxe.[2] Para PEREZ(2009) a semntica trata da anlise do significado das expresses, das instrues e das unidades de programa. A semntica importante para que os programadores saibam precisamente o que as instrues de uma linguagem fazem. A semntica pode ser operacional, axiomtica e denotacional. Na semntica operacional, segundo PEREZ (2009) descrito o significado de um programa ao executar suas instrues em uma mquina, real ou simulada. As alteraes que ocorrem no estado de uma mquina, quando determinada instruo executada, define o significado desta. O estado de um computador definido pelos valores de todos os seus registradores e de suas localizaes de memria. Para avaliar a semntica operacional de um programa necessrio o uso de um simulador (computador hipottico) e ento traduzir a linguagem de alto nvel, descrita pela linguagem de programao, em linguagem de mais alto nvel, que ser interpretada pelo simulador. (Glossrio) REGISTRADORES - um tipo de memria de pequena capacidade, porm muito rpida, contida na CPU, utilizada no armazenamento temporrio durante o processamento. A semntica axiomtica, PEREZ (2009) define como o mtodo para provar a exatido dos programas e mostra a computao descrita por sua especificao. Cada instruo de um programa tanto precedida como seguida de uma expresso lgica que especifica restries a variveis. As expresses lgicas so usadas para especificar o significado das instrues. As restries so descritas pela notao do clculo de predicados. (Glossrio) NOTAO - Conjunto de sinais com que se faz essa representao ou designao. Baseado na teoria da funo recursiva, PEREZ (2009) explica que na semntica denotacional, para cada entidade da linguagem deve ser

definido tanto um objeto matemtico como uma funo que relacione instncias daquela entidade com as deste. Os objetos representam o significado exato de suas entidades correspondentes. A dificuldade no uso deste mtodo est em criar os objetos e as funes de correspondncias. Os objetos matemticos denotam o significado de suas entidades sintticas correspondentes. (Glossrio) RECURSIVO - Que apresenta recursividade; iterativo. Propriedade do que pode ser repetido. Martins (1994) define que o processo de deteco e correo, tanto de erros sintticos como dos erros semnticos, d-se o nome de depurao (do verbo depurar, tornar puro, limpar).Em ingls, esse processo denominado debugging e aos erros que existem num programa, tanto erros sintticos como semnticos, chama-se bugs (do ingls, inseto).[2]

1.3.7 Linguagem de Programao


Guimares e Lages definem linguagem de programao como uma tcnica de notao para programar, com a inteno de servir de veculo para: a) expresso de um raciocnio algoritmo; b) execuo automtica de um algoritmo no computador. Quando se pensa em programao de computadores, a primeira coisa que vem logo em mente a de um usurio, sentado em frente ao seu computador, utilizando determinado programa e criando seus cdigos, baseado em conhecimento prvio absorvido ao longo de sua vida. Programao de computadores exige muito mais do que um computador potente, considerado como ltimo da linha. Para ser bom programador necessrio raciocnio lgico apurado e disposio em realizar diversas tarefas sem a utilizao do computador.[4]

1.3.8 Programao Estruturada


Basicamente, para Guimares e Lages a programao estruturada consiste em uma metodologia de projeto de programas visando facilitar:

- a escrita dos programas; - a leitura (o entendimento) dos programas; - a manuteno e modificao dos programas; - e permitir a verificao a priori dos programas. A reduo da complexidade acontece em trs nveis: a) desenvolvimento de programas em diferentes fases por refinamento sucessivo (desenvolvimento top-down); b) decomposio do programa total em mdulos funcionais, organizados de preferncia em um mesmo sistema hierrquico;

c) usando dentro de cada mdulo s um nmero muito limitado de estruturas bsicas de fluxo de controle.[4] (Saiba mais)O uso do termo bug ("inseto, em ingls) para descrever defeitos inexplicveis foi parte do jargo da engenharia por vrias dcadas; pode originalmente ter sido usado na engenharia mecnica para descrever maus funcionamentos mecnicos. Diz-se que o termo foi criado por Thomas Edison quando um inseto causou problemas de leitura em seu fongrafo em 1878, mas pode ser que o termo seja mais antigo. A inveno do termo freqentemente atribuda erroneamente a Grace Hopper, ao publicar em 1945 que a causa do mau funcionamento no computador Mark II, da Universidade de Harvard, seria um inseto preso nos contatos de um rel. O ENIAC (Electronic Numerical Integrator and Computer), primeiro computador digital completamente eletrnico, tambm contribuiu ao uso da palavra. Ele era movido a vlvulas e, assim, atraa milhares de insetos. Como dezenas a centenas de vlvulas queimavam a cada hora o computador, que ocupava o espao de uma sala, era aberto frequentemente e montes de insetos mortos eram varridos para fora. Diz-se que esses insetos provocavam Curto Circuitos nas placas do ENIAC levando a falhas nos programas.[16]

REFERNCIAS BSICAS
[1] FARRER, Harry. et. al. Programao estruturada de Computadores. Algoritmos estruturados. 2 Ed. Rio de Janeiro: LTC Livros Tcnicos e Cientficos Editora Ltda, 1989. [2] MARTINS, J. Pavo. Introduo programao usando Pascal. Lisboa: Editora McGraw-Hill de Portugal Lda, 1994. [3] ARAJO, Everton Coimbra de. Algoritmos: Fundamentos e Prtica. 2 Ed. ampl. e atual. Florianpolis: VisualBooks Editora, 2005. [4] GUIMARES, ngelo de Moura. LAGES, Newton Alberto de Castilho. Algoritmos e estruturas de dados. Rio de Janeiro: Campus, 1985. [5] SCHILDT, Herbert. C Completo e total. So Paulo: MAKRON BOOKS, 1997. [6] LOUDON, Kyle. Dominando algoritmos com C. So Paulo: CIENCIA MODERNA COMPUTAO, 2000. [7] LAUREANO, Marcos. Programando em C para Linux, Unix e Windows. Rio de Janeiro: Brasport Livros, 2005. [8] MEDINA, Marco. FERTIG, Cristina. Algoritmos e programao: teoria e prtica. So Paulo: NOVATEC INFORMATICA, 2005. [9] FERREIRA, Aurlio Buarque de Holanda. Novo Dicionrio Aurlio Sculo XXI. Rio de Janeiro: Nova Fronteira, 1999. [10] INFORMAO. In: Wikipdia: a enciclopdia livre. Disponvel em: <http://pt.wikipedia.org/wiki/Informa%C3%A7%C3%A3o>. Acesso em: 15/07/2009. [11] PEREZ, Anderson Luiz Fernandes. Linguagens de programao: sintaxe e semntica de linguagens de programao e conceitos de Disponvel em linguagens compiladas e interpretadas. <http://www.univasf.edu.br/~anderson.perez/ensino/intprog/> acesso em 16/07/2009. [12] BARBOSA, Lisbete Madsen. Ensino de algoritmos em cursos de computao. So Paulo: EDUC, 2001. [13] BIT. In: Wikipdia: a enciclopdia livre. Disponvel <http://pt.wikipedia.org/wiki/Bit>. Acesso em: 15/07/2009. em:

[14] CDIGO-FONTE. In: Wikipdia: a enciclopdia livre. Disponvel em: <http://pt.wikipedia.org/wiki/C%C3%B3digo-fonte>. Acesso em: 15/07/2009. [15] PI (). In: Wikipdia: a enciclopdia livre. Disponvel em: <http://pt.wikipedia.org/wiki/Pi>. Acesso em: 17/07/2009. [16] BUGS. In: Wikipdia: a enciclopdia livre. Disponvel em: <http://pt.wikipedia.org/wiki/Bug> . Acesso em: 15/08/2009.

[17] FREEDMAN, Alan. Dicionrio de Informtica. So Paulo: Makron Books, 1995. [18] RAIZ QUADRADA. Wikipdia a Enciclopdia Livre. Disponvel em <http://pt.wikipedia.org/wiki/Raiz_quadrada> acesso em 30/07/2009.

REFERNCIAS COMPLEMENTARES
SCHILDT, Herbert. C Completo e total. So Paulo: MAKRON BOOKS, 1997. DAMAS, Lus. Linguagem C. 10. ed. Rio de Janeiro: LTC, 2007. LOUDON, Kyle. Dominando algoritmos com C. So Paulo: CIENCIA MODERNA COMPUTAO, 2000. JAMSA, Kris. Programando em C/C++: a bblia. So Paulo: Makron Books, 2000. LOPES, Anita. Introduo a programao: resolvidos. Rio de Janeiro: Campus, 2002. 500 algoritmos

LAUREANO, Marcos. Programando em C para Linux, Unix e Windows. Rio de Janeiro: BRASPORT LIVROS, 2005. DEITEL, Paul J.; DEITEL, Harvey M. C++ como programar. Porto Alegre: Bookman, 2001. PINTO, Wilson Silva. Introduo ao desenvolvimento de algoritmos e estrutura de dados. So Paulo: rica, 1990. KERNIGHAN, Brian W.; RITCHIE, Dennis M. C: a linguagem de programao. Rio de Janeiro: Campus, 2000. (005.133 K39c). MANZANO, Jos Augusto N. G.; OLIVEIRA, Jayr Figueiredo. Estudo dirigido de algoritmos. So Paulo: rica, 1997. SALVETTI, Dirceu Douglas; BARBOSA, Lisbete Madsen. Algoritmos. So Paulo: Makron Books, 1998. (005.1. S183A). MIZRAHI, Victorine Viviane. Treinamento em linguagem C: curso completo. Mdulo I. So Paulo: McGraw-Hill, 1990.

S-ar putea să vă placă și