UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ I A NTRODUÇÃO A LGORITMOS E P ROGRAMAÇÃO FABRICIO FERRARI [email protected] CRISTIAN CECHINEL [email protected] BAGÉ, NOVEMBRO DE 2008, VERSÃO 2.2 Sumário I Conceitos Preliminares 10 1 OComputador 11 1.1 HistóricodosComputadores . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2 ArquiteturaBásica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.2.1 UnidadeCentraldeProcessamento(UCP). . . . . . . . . . . . . . 13 1.2.2 Memória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.2.3 DispositivosdeEntradaedeSaída . . . . . . . . . . . . . . . . . . 14 2 Algoritmos 15 2.1 ConceitodeAlgortimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2 PartesdeUmAlgoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3 RepresentaçõesdeumAlgoritmo . . . . . . . . . . . . . . . . . . . . . . . 18 2.3.1 Fluxograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.4 ProgramasdeComputador . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.5 Linguagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.5.1 LinguagemNatural . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.5.2 LinguagemdeMáquinaeAssembler . . . . . . . . . . . . . . . . 20 2.5.3 LinguagensdeProgramação . . . . . . . . . . . . . . . . . . . . . 21 2.5.4 Pseudocódigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 II Dados 25 3 RepresentaçãodeDados 26 3.1 RepresentaçãoInterna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.2 TiposPrimitivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.3 ConstanteseVariáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.4 ManipulaçãodeDados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2 SUMÁRIO 3 3.4.1 Identificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.4.2 Definição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.4.3 Atribuição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4 Expressões 34 4.1 ExpressõesAritméticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.1 PrecedênciaGeraldosOperadoresAritméticos . . . . . . . . . . . 34 4.1.2 EscritadeOperaçõesAritméticas . . . . . . . . . . . . . . . . . . . 36 4.1.3 ExceçõesemExpressõesAritméticas . . . . . . . . . . . . . . . . . 36 4.1.4 SimplificaçãodeExpressõesAritméticas . . . . . . . . . . . . . . 37 4.2 ExpressõesLógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.2.1 OperadoresRelacionais . . . . . . . . . . . . . . . . . . . . . . . . 37 4.2.2 OperadoresLógicos . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5 ComandosdeEntradaeSaída 41 5.1 Saída . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.2 Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 III Estruturas de Controle 44 6 EstruturasdeCondição 45 6.1 EstruturadeCondiçãoSimples: se-entªo. . . . . . . . . . . . . . . . . . . 46 6.2 EstruturadeCondiçãoComposta: se-entªo-senªo . . . . . . . . . . . . . . 47 6.3 EstruturasdeCondiçãoEncadeadas . . . . . . . . . . . . . . . . . . . . . 49 6.4 EstruturadeCondiçãocasoseja . . . . . . . . . . . . . . . . . . . . . . . 50 7 EstruturasdeRepetição 53 7.1 TestenoInício: enquanto-fa(cid:231)a. . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.2 TestenoFim: fa(cid:231)a-enquanto . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.3 RepetiçãocomControle: fa(cid:231)a-para . . . . . . . . . . . . . . . . . . . . . . 55 7.4 ContadoreseAcumuladores . . . . . . . . . . . . . . . . . . . . . . . . . . 55 7.4.1 Contadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 7.4.2 Acumuladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 SUMÁRIO 4 IV Estrutura de Dados e Modularização 59 8 VariáveisCompostasHomogêneas 60 8.1 VetoresUnidimensionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 8.2 VetoresBidimensionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 8.3 VetoresMultidimensionais . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 9 Módulos 63 9.1 Modularização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 9.2 RetornodeValores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 9.3 EscopodeVariáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 9.4 PassagemdeParâmetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 9.4.1 PorValor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 9.4.2 PorReferência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 V Apêndice 65 A Exercícios 66 A.1 Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 A.1.1 Paraosproblemasaseguir,defina: . . . . . . . . . . . . . . . . . . 66 A.2 RepresentaçãodeDados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 A.3 Expressões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 A.4 EntradaeSaída . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 A.5 EstruturasdeCondição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 A.5.1 Estruturase-entªo-senªo . . . . . . . . . . . . . . . . . . . . . . . . 72 A.5.2 Estruturase-entªo-senªoaninhada . . . . . . . . . . . . . . . . . . 74 A.5.3 Estruturacasoseja . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 A.6 EstruturasdeRepetição . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 A.6.1 Utilizandosomenteaestruturaderepetiçãopara-fa(cid:231)a . . . . . . . 78 A.6.2 Utilizando a estrutura de condição se-entªo-senªo dentro da es- truturaderepetiçãopara-fa(cid:231)a . . . . . . . . . . . . . . . . . . . . . 78 A.6.3 Calculando quantidades de ocorrências, somatórios e produtos comaestruturapara-fa(cid:231)a . . . . . . . . . . . . . . . . . . . . . . . . 78 A.6.4 Localizandovaloresdentrodeumconjuntocomaestruturapara- fa(cid:231)a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 A.6.5 Usandoestruturaderepetiçãopara-fa(cid:231)aaninhada . . . . . . . . . 80 SUMÁRIO 5 A.6.6 Estruturasderepetição(enquanto-fa(cid:231)aefa(cid:231)a-enquanto) . . . . . . . 80 A.6.7 Séries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 A.7 Vetores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 A.8 Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 A.9 Modularização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Lista de Figuras 1.1 Arquiteturabásica(VonNeumann) . . . . . . . . . . . . . . . . . . . . . . 12 2.1 Partesbásicasdeumalgoritmo. . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2 Algoritmorepresentadoemformadeumfluxograma. . . . . . . . . . . . 19 2.3 Compilação: o programa em linguagem de programação é transfor- madoeminstruçõesemlinguagemdemáquina(queoprocessadorpode executar). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.1 Estuturadeumcomandose-entªo. . . . . . . . . . . . . . . . . . . . . . . 47 8.1 Vetoridade[8]comseusvaloreseíndices. . . . . . . . . . . . . . . . . . . 61 6 Lista de Tabelas 3.1 Equivalência entre sistemas numéricos de representação. O subscrito identificaemquebaseonúmeroestáescrito . . . . . . . . . . . . . . . . 27 4.1 Operadoresaritméticosbásicos. . . . . . . . . . . . . . . . . . . . . . . . . 34 4.2 PrecedênciaGeraldeOperadoresAritméticos . . . . . . . . . . . . . . . . 35 4.3 OperadoresRelacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.4 Tabela verdade dos operadores lógicos. P e Q são sentenças lógicas quaisquer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 6.1 Tabela de decisão para a estrutura de condição composta mostrada no algoritmo11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 7 Lista de Algoritmos 1 Trocadepneudocarro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2 Pegarumonibus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3 CalculaÁreadeumaCircunferência. . . . . . . . . . . . . . . . . . . . . . 18 4 ExemplodePseudocódigo. . . . . . . . . . . . . . . . . . . . . . . . . . . 22 5 Atribuiçõesdevaloresaumavariável. . . . . . . . . . . . . . . . . . . . . 32 6 Locadora: exemplodeentradadedados. . . . . . . . . . . . . . . . . . . 43 7 Locadora2: exemplodeavisoparaentradadedados. . . . . . . . . . . . 43 8 Condição: maioroumenordeidade. . . . . . . . . . . . . . . . . . . . . . 47 9 Condição: maioroumenordeidadecomse-entªo-senªo. . . . . . . . . . . 48 10 Expressãológicacomposta. . . . . . . . . . . . . . . . . . . . . . . . . . . 49 11 Estruturadecondiçãocomposta. . . . . . . . . . . . . . . . . . . . . . . . 49 12 Verificaaprovaçãodealunos. . . . . . . . . . . . . . . . . . . . . . . . . . 51 13 Estruturacaso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 14 Exemplodecaso: mostraonumero. . . . . . . . . . . . . . . . . . . . . . . 52 15 Estruturaderepetiçãoenquanto-fa(cid:231)a. . . . . . . . . . . . . . . . . . . . . . 54 16 Estruturaderepetiçãofa(cid:231)a-enquanto. . . . . . . . . . . . . . . . . . . . . . 55 17 Estruturaderepetiçãopara-fa(cid:231)a. . . . . . . . . . . . . . . . . . . . . . . . . 55 18 Exemplodeestruturaderepetição. . . . . . . . . . . . . . . . . . . . . . . 55 19 Contadores1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 20 Contadores2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 21 Acumuladores1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 22 Acumuladores2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 23 Acumuladores3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 24 Acumuladores4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 25 Definindoosvaloresdavariávelidade. . . . . . . . . . . . . . . . . . 61 26 Imprimindotodososvaloresdavariávelidade[]. . . . . . . . . . . . 62 27 Antecessor-sucessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 8 LISTADEALGORITMOS 9 28 Conversor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 29 Numero-de-salarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 30 Novo-peso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 31 Problema20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 32 Adivinhacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 33 Calculodopi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Parte I Conceitos Preliminares 10
Description: