Home
apostila_portugol
Contents
1. Exemplos de testes utilizando operadores l gicos Express o Quando eu n o saio Somente quando chover e relampejar ao mesmo tempo apenas 1 possibilidade Somente quando chover somente quandorelampejar ou quando chover e relampejar aomesmo tempo 3 possibilidades Somente quando chover ou somente quandorelampejar 2 possibilidades Se chover e relampejar eu n o saio Se chover ourelampejar eu n o saio Se chover xourelampejar eu n o saio 1 Se salario gt 180 e sal rio lt 800 Ent o Escrever Sal rio v lido para financiamento Sen o Escrever Sal rio fora da faixa permitida para financiamento FimSe 2 Se idade lt 18 ou idade gt 95 Ent o Escrever Voc n o pode fazer carteira de motorista Sen o Escrever Voc pode possuir carteira de motorista FimSe 3 Se idade gt 18 e idade lt 95 e aprovado exame sim Ent o Escrever Sua carteira de motorista estar pronta em uma semana Sen o Escrever Voc n o possui idade permitida ou n o passou nos testes FimSe 14 3 5 PRIORIDADE DE OPERADORES Durante a execu o de uma express o que envolve v rios operadores necess rio a exist ncia de prioridades caso contr rio poderemos obter valores que n o representam o resultado esperado A maioria das linguagens de programa o utiliza as seguintes prioridades de operadores 1 Efetuar opera es embutidas em par
2. e PORTUGOL repita c1 c2 cn enquanto lt condi o gt do c1 C2 cn while condi o Os comandos cf c2 cn s o executados pelo menos uma vez Quando a condi o encontrada ela testada se for falsa o comando seguinte ser executado se for verdadeira os comandos c1 c2 cn s o reexecutados enquanto a condi o for verdadeira O comando repita enquanto equivalente ao comando enquanto conforme ser mostrado no exemplo abaixo Repita enquanto do while In cio Inteiro x x 2 Repita Imprima x Xx x 1 Enquanto x lt 10 Imprima x Fim Enquanto while In cio Inteiro x x 2 Enquanto x lt 10 faca Imprima x x x 1 Fim Enquanto Imprima x Fim 20 Numa estrutura Enquanto os comandos s o executados O ou mais vezes Numa estruturRepita os comandos s o executados pelo menos uma vez 3 8 ESCAPE DO LA O Abandone break Comando Abandone For a uma sa da de um la o de repeti o e PORTUGOL abandone o break Exemplo Enquanto a gt b fa a Leia a b Imprima a b Se b 0 Ent o abandone Sen o a a b Fim Enquanto O comando abandone s tem sentido dentro de um comando de repeti o enquanto repita para Al m disso estar sempre associado ao teste de uma condi o com comando se Significado do comando abandone quando o abandone encontrado o pr ximo comando a ser executado o primeiro
3. AUX VETI J VET J VET J 1 VET J 1 AUX BOLHA y fim se fim para LSUP BOLHA aponta para ltima posi o trocada fim enquanto imprima VET fim
4. Fim Enquanto I 1 1 Fim Enquanto Imprima C C Fim 3 Escreva um algoritmo para um programa que leia uma matriz quadrada 20 x 20 de elementosreais divida cada elemento de uma linha da matriz pelo elemento da diagonal principal desta linhae imprima a matriz assim modificada Obs In cio real M 1 20 1 20 Inteiro l J Real DIAGONAL Leia M Para de 1 at 20 Fa a DIAGONAL M I I Para J de 1 at 20 Fa a M I J M I J DIAGONAL Fim Para Fim Para Imprima M M Fim 4 elementos da diagonal principal M 1 1 M 2 2 M 3 3 M 4 4 34 MODULARIZA O DE ALGORITMOS 1 INTRODU O Vimos que os algoritmos estruturados s o desenvolvidos levando se em conta algumaspremissas b sicas 1 Desenvolver o algoritmo em diferentes fases de detalhamento crescente do geral ao particular por refinamentos sucessivos desenvolvimento top down ou de cima para baixo 2 Decompor o algoritmo em m dulos funcionais organizados de prefer ncia em um sistemahier rquico Esses m dulos trazem vantagens adicionais para testes pois test se um m dulo ouseja uma parte do programa de cada vez independentemente e para reutiliza o de um m duloem outros algoritmos e programas no futuro Passaremos agora a formalizar a utiliza o de m dulos nos nossos algoritmos e verificar asvantagensque os mesmos trazem para entendimento constru o codifica o teste e reutilizac od
5. que passamos para a fun o Swap oendere o das vari veis num1 e num2 Estes endere os s o copiados nos ponteiros a e b Atrav sdo operador estamos acessando o conte do apontado pelos ponteiros e modificando o Mas quem este conte do Nada mais que os valores armazenados em num1 e num2 que portanto est o sendo modificados 7 FUN ES RECURSIVAS Existem casos em que um procedimento ou fun o chama a si pr prio Dizse ent o que oprocedimento ou fun o recursivo Por exemplo o fatorial de um n mero n pode ser definidorecursivamente ou seja n RS Asen 0 inteiro fat inteiro n In cio Se n 0 Ent o fat 1 Sen o fat n fat n 1 Fim Se Fim Por exemplo o fatorial de 3 ser calculado a partir da chamada func o pelo comando x fat 3 que retornar em fat o valor 6 8 ESTRUTURA O DOS M DULOS DE UM ALGORITMO Um procedimento nada mais que um algoritmo hierarquicamente subordinado a um outroalgoritmo comumente chamado de M dulo principal ou programa principal ou ainda algoritmoprincipal Da mesma forma um procedimento poder conter outros procedimentos e tamb m fun es aninhados Assim ao definirmos as fases do nosso algoritmo no processo de refinamentossucessivos se transformarmos as mesmas em procedimentos e os refinamentos decada procedimentoem outros procedimentos obteremos ao fim do processo de cria o umalgoritmo estruturado com m dulos hierarquicamente subordinados
6. uma boa t cnica ao se construir um procedimento n o fazer uso no mesmo de vari veis globais e referenciar e utilizar apenas as vari veis locais e os par metros doprocedimento Isso far com que cada procedimento ao ser modificado n o afete outras partesdo Algoritmo e da mesma forma as vari veis globais poder o ser modificadas sem que hajaefeitos colaterais nos procedimentos Sintaxe de declara o Procedimento lt nome do Procedimento gt In cio lt declara es gt C1 C2 Cn Fim nome do procedimento Exemplo O que ser impresso no algoritmo abaixo In cio Inteiro XY A B C D Procedimento troca In cio Inteiro AUX X AUX X X Y Y AUX Fim troca As B 3 35 Imprima A B XA YB Troca AX BY Imprima A B C lt 4 D lt 9 Imprima C D X C YD Troca CX DY Imprima C D Fim Os m dulos que estivemos utilizando na apostila nos cap tulos anteriores s o procedimentossem par metros ou seja que fazem uso de vari veis globais e sua nica importante vantagem facilitar o entendimento e a solu o do algoritmo Utilizando par metros e n o vari veis globais dentro do procedimento podemos por assimdizer isol lo do meio exterior e obter vantagens adicionais na codificac o pois uma vez queforam bem definidos os par metros um programador poder desenvolver seu procedimento semse preocupar com o algoritmo que o vai chamar Poderemos tamb m t
7. o os par metros formais dafun o copiam os valores dos par metros que s o passados para a fun o Isto quer dizer quen o s o alterados os valores que os par metros t m fora da fun o Este tipo de chamada defun o denaminado chamada por valor Isto ocorre porque s o passados para a fun o apenasos valores dos par metros e n o os pr prios par metros Veja o exemplo abaixo Exemplo e PORTUGOL real sgr real num int main real num sq imprima Entre com um numero leia num sq sqr num imprima O numero original e num imprima O seu quadrado vale sq real sqr real num num num num retorna num EmC include lt stdio h gt float sqr float num void main float num sq printf Entre com um numero scanf f amp num sq sqr num printf ininO numero original e fn num printf O seu quadrado vale fn sq float sqr float num num num num return num No exemplo acima o par metro formal num da fun o sqr sofre altera es dentro dafun o mas a vari vel num da fun o principal main permanece inalterada uma chamada porvalor Outro tipo de passagem de par metros para uma fun o ocorre quando altera es nospar metros formais dentro da fun o alteram os valores dos par metros que foram passadospara a fun o Este tipo de chamada de fun o tem o nome de chamada por refer ncia Estenome vem do fato de que nest
8. o para as mais variadas estruturas de dados Nanossa disciplina entretanto trataremos apenas os algoritmos de pesquisa e ordena o emvetores que tamb m podem ser utilizados em matrizes desde que sofram pequenos ajustes 2 ALGORITMOS DE PESQUISA Para fazermos qualquer pesquisa em vetor ou matriz precisamos de quatro par metros a O vetor no qual realizaremos a pesquisa b O n mero de elementos desse vetor que devem ser pesquisados Lembrese que muitasvezes um vetor de 1000 elementos s tem 700 carregados e podemos evitar tratamento de 300elementos com lixo c O elemento procurado d Um ndice que vai ser preenchido com a posi o onde o elemento foi encontrado ou retornar com O zero caso o elemento n o exista Como os algoritmos de pesquisa poder o ser utilizados muitas vezes na solu o de diferentesproblemas vamos defini los como Procedimentos de um Algoritmo Principal hipot tico com osseguintes argumentos Declara es Const MAXELEM 10000 N mero m ximo de elementos do vetor apenas para limitar o tamanho dovetor lt Tipo b sico gt Nome do vetor 1 MAXELEM inteiro TOTELEM Corresponde ao par metro b Total de elementos a ser pesquisado lt Tipo b sico gt ELEMPROC Corresponde ao Par metro c Elemento procurado Inteiro POS Corresponde ao Par metro d Posi o em VET onde ELEMPROC foi encontrado ou0 se n o o foi 2 1 PESQUISA SEQUENCIAL SIMPLES Na pesquisa sequencial simples c
9. v dado por um dispositivo de entrada teclado 3 6 Comando de Sa da de Dados Comando Imprima printf no c Imprime na tela ou na impressora o conte do da s vari vel eis especificada s ap s o comando entre par nteses N o ser preocupa o nossa a formata o de relat rios mas o comando permite a impress o de texto entre se for necess ria para dareza ou especifica o do que est sendo impresso Imprima o valor de x x identificador Ex imprima x O valor atual da vari vel x informado para um dispositivo de sa da monitor 7 ESTRUTURA DE UM ALGORITMO EM PSEUDO C DIGO E C As estruturas de controle introduzidas nesta unidade facilitar o a express o de algoritmos e permitir o que exemplos mais significativos sejam apresentados e propostos visando o aperfei oamentodo desenvolvimento do processo de aprendizado da constru o de algoritmos Descreveremos a seguir os comandos b sicos de controle do PORTUGOL Ser o introduzidos paralelamente o programa equivalente em linguagem C para uma melhor compreens o PORTUGOL Algoritmo In cio lt declara es de vari veis gt 16 lt comandos gt Fim Hinclude lt stdio h gt main Um Primeiro Programa printf Meu primeiro programain Coment rio de c digos Quando fazemos um programa uma boa ideia usar coment riosque ajudem a elucidar o funcionamento do mesmo Os coment rios devem v
10. 10 Passo 1 Fa a Imprima X Fim Para Imprima X ser o impressos dentro do comando para 1 2 3 4 5 6 7 8 9 10 e fora do comando para ser impresso o valor 11 Quando o passo p for igual a 1 n o ser necess rio escrever estaespecifica o no comando No exemplo acima ter amos Para X de 1 at 10 Fa a Imprima X Fim Para 3 SELE O DENTRE AS M LTIPLAS ALTERNATIVAS CASO CASE Em nossos algoritmos quando uma vari vel ou express o aritm tica puder assumir v riosvalores diferents e a execu o do programa for diferente dependendo do valor obtido ouassumido por esta vari vel ou express o poderemos utilizar a estrutura que se segue ao inv sde v rios Se aninhados PORTUGOL In cio Conforme Caso IDENTIFICADOR Valor 1 comando Caso IDENTIFICADOR valor 2 comando2 Caso IDENTIFICADOR valor_3 comando3 Sen o comandoN Fim Conforme Fim Hinclude lt stdio h gt main char Ch do printf mnEscolha umi n n An Nova linha printf W 1 Mamaoln M Tabula o horizontal tab printf Mt 2 Abacaxiln printf Mt 3 Laranjalnin fflush NULL scanf c amp Ch while Ch 15 8 8 Ch 258 8 Ch 3 switch Ch Conforme case 1 Caso 26 printf MMtVoce escolheu Mamao An break case 2 printf t tVoce escolheu Abacaxiin break case 3 printf titVoce escolheu Laranja An break 1 Ap s obter se um valor verdad
11. b sicos e uma estrutura semelhante de uma linguagem de pograma o de computadores Portanto resolver problemas com portugu s estruturado pode ser uma tarefa t o complexa quanto a de escrever um programa em uma linguagem de programa o qualquer s n o t o r gida quanto a sua sintaxe ou seja o algoritmo n o eixa de funcionar porque esquecemos de colocar um ponto ev rgula por exemplo j um programa n o funcionaria A Figura a seguir apresenta um exemplo de algoritmona forma de representa o de portugu s estruturado in cio lt instru es gt se lt teste gt ent o lt instru es gt sen o lt instru es gt fim se fim Figura 2 1 Exemplo de Portugu s Estruturado 3 LINGUAGEM DE PROGRAMA O Uma linguagem de programa o uma nota o formal para descri o de algoritmos que ser o executados por um computador Como todas as nota es formais uma linguagem de programa o tem dois componentes Sintaxe e Sem ntica A sintaxe consiste em um conjunto de regras formais que especificam a composi o de programas a partir de letras d gitos e outros s mbolos Por exemplo regras de sintaxe podem especificar que cada par nteses aberto em uma express o aritm tica deve corresponder a um par nteses fechado e que dois comandos quaisquer devem ser separados por um ponto e v rgula As regras de sem ntica especificam o significado de qualquer programa sintaticamente v lido escrito na
12. cadeia de caracteres de qualquer tamanho Caso seja imprescind vel para o entendimentopodese acrescentar entre par nteses a quantidade m xima de caracteres Exemplo texto 10 Obs Os textos dever o ser representados sempre entre ap strofes para que n o se confundamcom os valores num ricos Veja que o inteiro 5 diferente do texto 5 11 L GICO boolean tipo especial de vari vel que armazena apenas os valores V e F onde Vrepresenta VERDADEIRO e F FALSO Ex e ou n o Opera es Verdadeiro ou Falso 2 DECLARA O DE VARI VEIS Consiste na defini o dos nomes e valores das constantes e dos nomes e tipos dasvari veis que ser o utilizadas pelos algoritmos previamente sua utiliza o incluindocoment rio quando se fizerem necess rios Na maioria das linguagens de programa o quando o computador est executando umprograma e encontra uma refer ncia a uma vari vel ou a uma constante qualquer se esta n otiver sido previamente definida ele n o saber o que fazer com ela Da mesma forma umprogramador que estiver implementando um aboritmo em alguma linguagem de programac o ter o seu trabalho simplificado se todas as constantes e vari veis referenciadas no algoritmotiverem sido previamente declaradas As constantes s o declaradas antes das vari veis Vejamosos formatos da declara o e alguns exemplos O significado da declara o de vari veis corresponde cria o de locais na mem
13. em C Por isso os algoritmos s o independentes das linguagens de programa o Ao contr rio de uma linguagem de programa o n o existe um formalismo r gido de como deve ser escrito o algoritmo O algoritmo deve ser f cil de interpretar e f cil de codificar Ou seja ele deve ser o intermedi rio entre a linguagem falada e a linguagem de programa o Utilizaremos em nosso curso o PORTUGOL para o estudo dos algoritmos e a Linguagem de Programa o C para a cria o dos programas 2 Portugu s Estruturado O Portugu s Estruturado uma forma especial de linguagem bem mais restrita que a L ngua Portuguesa e com significados bem definidos para todos os termos utilizados nas instru es comandos Essa linguagem tamb m conhecida como Portugol jun o de Portugu s com Algol Pseudoc digo ou Pseudolinguagem O Portugu s Estruturado na verdade uma simplifica o extrema da l ngua portuguesa limitada a pouqu ssimas palavras e estruturas que t m significado pr definido pois deve se seguir um padr o Emprega uma linguagem intermedi ria entre a linguagem natural e uma linguagem de programa o para descrever os algoritmos A sintaxe do Portugu s Estruturado n o precisa ser seguida t o rigorosamente quanto a siftaxe de uma linguagem de programa o j que o algoritmo n o ser executado como um programa Embora o Portugu s Estruturado seja uma linguagem bastante simplificada ela possui todos os elementos
14. fun o gt lt declara o dos par metros gt In cio Corpo da Fun o Fim Onde A lista de par metros semelhante dos procedimentos Antes do nome da fun o d o tipo do valor que a fun o retorna ao algoritmo ouprocedimento chamador O tipo de retorno o tipo de vari vel que a fun o vai retornar O default o tipo inteiro int ou seja uma fun o para qual n o declaramos o tipo de retorno considerada comoretornando um inteiro A declara o de par metros uma lista com a seguinte forma geral tipo nome tipo nome tipo nomeN Repare que o tipo deve ser especificado para cada uma das N vari veis de entrada nadeclara o de par metros que informamos ao compilador quais ser o as entradas da fun o assim como informamos a sa da no tipo de retorno O corpo da fun o a sua alma nele que as entradas s o processads sa das s ogeradas ou outras coisas s o feitas O Comando retorna return O comando return tem a seguinte forma geral retorna valor de retorno ou retorna Digamos que uma fun o est sendo executada Quando se chega a uma declara getorna return a fun o encerrada imediatamente e se o valor de retorno informado afun o retorna este valor E importante lembrar que o valor de retorno fornecido tem que sercompat vel com o tipo de retorno declarado para a fun o Uma fun o pode ter mais de uma declara o retorna return Isto se torn
15. limites especificados nadeclara o de tipo Exemplo1 0 que ser impresso no algoritmo abaixo In cio inteiro M1 1 3 1 2 inteiro J M1 1 1 1 M1 1 2 2 M1 2 1 3 M1 2 2 4 M1 3 1 5 M1 3 2 6 Imprima M1 31 Para de 1 at 2 Fa a Para J de 1 at 3 Fa a Imprima M1 J 1 Fim Para Fim Para Fim Exemplo 2 Dada a matriz MAT abaixo 1 2 3 4 1 O Q 2 E A E S 3 A i s S Qual ser a configura o de MAT depois de executado o algoritmo In cio Inteiro J Caracter AUX Caracter M1 1 4 1 4 Leia MAT Para de 1 at 4 Passo 1 Fa a Para J de 1 at 4 Passo 1 Fa a AUX MAT I J MAT I J MATIJ 1 MATT J AUX Fim Para Fim Para AUX MAT 1 1 MAT 1 1 MATI 4 4 MAT 4 4 AUX AUX MATT 2 2 MAT 2 2 MATT 3 3 MAT 3 3 AUX Fim Notas 1 Para percorrer a matriz linha por linha Fixar a linha Variar a coluna Inteiro exemplo 1 3 0 4 1 Enquanto I lt 3 Fa a J 0 Enquanto J lt 4 Faca exemplol l J I J J J 1 Fim Enquanto I 1 1 Fim Enquanto 2 Para percorrer a matriz coluna por coluna Fixar a coluna Variar a linha Inteiro exemplo 1 3 0 4 J 0 Enquanto J lt 4 Fa a l 1 32 impress o escrevendo MAT 0 5 1 Exerc cios Resolvidos Enquanto I lt 3 Fa a exemplofl J I J I 1 1 Fim Enquanto J J 1 Fim Enquanto ou ent o Para j de O at
16. m aparelhos mais complexos como celulares c meras digitais aparelhos de som geladeiras entre outros que possuem um firmware para a execu o de suas tarefas O Sistema Operacional com seus diversos programas a primeira camada de software donosso computador E muito complexo desenvolver se um sistema operacional como DOS UNIX LINUX WINDOWS MAC OS ANDROID e outros que voc j deve ter ouvido falar Externamente ao sistema operacional vamos encontrar os compiladores e interpretadores das linguagens de programa o que de certa forma traduzem os programas aplicativos para a linguagem de m quina que o computador entende Nesta segunda camada encontramos tamb m os processadores ou editores de texto os gerenciadores de bancos de dados MySQL Firebird PostgreSQL Oracle MS Access etc as planilhase muitos outros programas utilit rios Antiv rus Navegadores WEB Reprodutores de udio e v deo editores de imagens et Na camada mais externa encontramos os programas aplicativos que podem serdesenvolvidos utilizandese os recursos da camada anterior e nas linguagens de programa o utilizando as IDEs os interpretadores ou os compiladores para poderem ser desenvolvidos executados Para o desenvolvimento destes programas que se faz uso das t cnicas de constru o de algoritmos de forma a se garantir que os programas ser o gerados com um m nimo de ero e poder o ser mantidos sem dificuldade por um programador que n o
17. o algoritmo de media de idade para ler tamb m os nomes e ao final mostrar a mensagen com os tr s nomes mais a m dia de suas idades 3 Fa a um algoritmo que fa a a soma dos n meros inteiros de 1 a 18 4 Fa a um programa que leia 4 n meros inteiros e apresente M dia dos mpares Maior n mero par Diferen a do maior menos o menor n mero 5 Fa a um programa que leia o nome e a idade de 3 pessoas e apresente Maior idade Nome da pessoa mais nova M dia das idades 7 Fa a um programa que leia a medida do lado de um quadrado e calcule e apresente a rea e o per metro desta figura Obs Per metro a soma de todos os lados de uma figura geom trica 8 Fa a um programa que leia o raio de uma circunfer ncia e calcule e apresente sua a rea e per metro 23 9 Fa a um programa que leia o valor dos lados de um tri ngulo ret ngulo e calcule eapresente a sua rea rea base altura 2 24 ALGOR TMOS BASEADOS EM ESTRUTURAS DE DADOS HOMOG NEAS 1 VETORES E MATRIZES Antes de tratarmos das estruturas de dados homog neas vejamos algumas novas estruturas de controle que faremos uso quando trabalharmos com vetores e matrizes 2 REPETI O COM VARI VEL DE CONTROLE PARA for Repete uma instru o um pr determinado n mero de vezes para v de i at fpasso p fa a onde v vari vel de controle i valor inicial de v f valor final de v p valor do incremento de v Sintaxe do coman
18. o de qualquer problema as etapas de SEQU NCIA SELE O REPETI O Claro que para criar um algoritmo computacional n o ser t o simples como esse apresentado Na inform tica o algoritmo o projeto do programa ou seja antes de se fazer um programa software na Linguagem de Programa o desejada Pascal C Delphi Java PHP etc deve se fazer o algoritmo do programa J um programa um algoritmo escrito numa forma compreens vel pelo computador atrav s de uma Linguagem de Programa o onde todas as a es a serem executadas devem ser especificadas nos m nimos detalhes e de acordo com as regras de sintaxe 1 da linguagem escolhida Um algoritmo n o a solu o de um problema pois se assim fosse cada problema teria um nico algoritmo Um algoritmo um caminho para a solu o de um problema e em geral existem muitos caminhos que levam a uma solu o satisfat ria ou seja para resolver o mesmo problema pode se obter v rios algoritmos diferentes Assim podemos definir que um algoritmo precisa 1 Terin cio e fim 2 Ser descrito em termos de a es n o amb guas e bem definidas 3 Que as a es sigam uma sequ ncia ordenada 1 PSEUDO C DIGO Os algoritmos s o descritos em uma linguagem chamada pseudo c digo Este nome uma alus o posterior implementa o em uma linguagem de programa o ou seja quando formos programar em uma linguagem por exemplo C estaremos gerando c digo
19. o inteira Se VET MED ELEMPROC Ent o POS MED Sen o Se VET MED gt ELEMPROC Ent o O ELEMPROC est na primeira metade ULT MED 1 Sen o O ELEMPROC est na Segunda metade PRI MED 1 Fim Se Fim Se Fim Enquanto Fim 46 Exerc cio 1 do item 7 2 2 utilizando se pesquisa bin ria in cio pesquisa bin ria inteiro COME O indicador do primeiro elemento da parte do vetor aconsiderar FIM indicador do ltimo elemento da parte do vetor aconsiderar MEIO indicador do elemento do meio da parte do vetorConsiderada K elemento procurado Inteiro A 1 128 leia A K COME O 1 FIM 128 repita MEIO COME O FIM 2 se K lt A MEIO ent o FIM MEIO 1 sen o COME O MEIO 1 fim se at A MEIO K ou COME O gt FIM se A MEIO K ent o imprima N o existe o elemento sen o imprima Est na posi o MEIO fim se fim 3 ALGORITMOS DE ORDENA O Como j foi dito o prop sito dos algoritmos de ordena o o de facilitar e acelerar abusca posterior de um elemento no vetor Os algoritmos de ordena o s o utilizadosnormalmente uma vez em cada execu o do programa ou poucas vezes se comparadoscom os de Pesquisa por isso o uso de m todos elementares e demorados n o t oproblem tico como nas pesquisas Na nossa disciplina veremos tr s algoritmos paraclassificac o interna de vetores que t m tempo de execu o proporcional ao quadrado don mero de
20. ria rotuladacom o nome da vari vel identificador e marcada com o tipo de valores que ela pode conter Paraque os programas manipulem valores estes devem ser armazenados em vari veis e para isso devemos declar las de acordo com a sintaxe inteiro real gt identificador caracter l gico Ex Inteiro X1 obs X1 o nome de um local de mem ria que s pode conter valores do tipo inteiro real SOMA M DIA caractere frase nome inteiro X1 real A B l gico TEM 3 PALAVRAS RESERVADAS S o palavras que ter o uso espec fico no nosso pseudo c digo e que n o dever o serusadas como identificadores para n o causar confus o na interpreta o Exemplo Algoritmo Programa Bloco Procedimento Inteiro Real Texto Const Var Tipo In cio Imprima Se Ent o Sen o Enquanto Repita Variando Fa a Caso At Vetor Matriz Registro Fim Execute Procedimento Fun o etc O significado de cada um desses temos ser visto e entendido nos itens e cap tulos que seseguem COMANDO SIMPLES E uma instru o simples leia x COMANDO COMPOSTO Um grupo de comandos simples que executam alguma tarefa In cio leia x y 2x fim 12 4 OPERADORES Na solu o da grande maioria dos problemas necess rio que as vari veis tenham seus valores consultados ou alterados para isto devemos definir um conjunto de OPERADORES sendo eles 3 1 OPERADOR DE ATRIBUI O gt Identificador C eman
21. seja t o gen rico quanto poss vel de forma apermitir a reutiliza o de seus componentes em outros projetos METODOLOGIA DE SOLU O Entender o problema Formular um esbo o da solu o Fazer uma primeira aproxima o das vari veis necess rias Rever os passos originais detalhando Se o algoritmo estiver suficientemente detalhado testar com um conjunto de dados significativos Implementar numa linguagem de programa o O Oda o no 10 COMANDOS B SICOS 1 IDENTIFICADORES CONSTANTES VARI VEIS E TIPOS BASICOS Identificadores Representam os nomes escolhidos para rotular as vari veis procedimentos e fun es normalmente obedecem as seguintes regras Letra D gito O primeiro caractere deve ser uma letra 2 Os nomes devem ser formados por caracteres pertencentes ao seguinte conjunto a b c ZA B C Z2 0 1 2 9 3 Os nomes escolhidos devem explicitar seu conte do EX A B1 BC3D SOMA CONTADOR Obs Um exemplo de identificador inv lido seria 2AB ou qualquer outro iniciado por um d gito Constante constant Uma constante Const como sugere o nome umidentificador que armazena um valor fixo e imut vel durante a execu o de um algoritmoou programa Podemos associ lo a uma posi o de mem ria endere o que tem umconte do fixo Este conte do poder ser um n mero real ou inteiro uma cadeia decaracteres texto ou um valor l
22. 4 Passo 1 Fa a Para de 1 at 3 Passo 1 Fa a exemplo l JJ l J Fim Para Fim Para Como no caso de vetores tamb m para matrizes podemos ter comandos concisosparainicializa o leitura e Por exemplo seja MAT definida por Inteiro MAT 1 10 1 8 O comando Leia MAT equivalente ao seguinte trecho Para i de 1 at 10 Passo 1 Fa a Para j de 1 at 8 Passo 1 Fa a leia MAT I J Fim Para Fim Para Do mesmo modo pode se inicializar uma matriz com todos os seus elementos iguais a umdeterminado valor 1 Dada uma matriz MAT de 4 x 5 elementos fa a um algoritmo para somar os elementos de cadalinha gerando o vetor SOMALINHA Em seguida somar os elementos do vetor SOMALINHA navari vel TOTAL que deve ser impressa no final ma Oo Ma ma Exemplo 2 1 2 3 7 3 4 2 0 10 SO elfo E ATO 2 3 4 5 11 TOTAL 47 Solu o In cio Real MAT 1 4 1 5 Real SOMALINHA 1 4 Real TOTAL Inteiro J SOMALINHA 0 TOTAL 0 33 2 Escreva um algoritmo que leia duas matrizes reais de dimens o 3 x 5 calcule e imprima asoma das matrizes Leia MAT Para de 1 at 4 Fa a Para J de 1 at 5 Fa a SOMALINHA I SOMALINHA MATILJ Fim Para TOTAL TOTAL SOMALINHA Fim Para Imprima TOTAL TOTAL Fim In cio Real A 1 3 1 5 B 1 3 1 5 C 1 3 1 5 Inteiro J Leia A B 1 Enquanto lt 3 fa a J 1 Enquanto J lt 5 fa a C J A L J BII J J J 1
23. Curso t cnico em Inform tica P Soeducar PEP Programa de Educa o Profissional Mm SOEDUCAR Algoritmo e Programac o Alterada por Daniel Pereira Ribeiro Introdu o s s meto A o a aC al de ETR 4 1 Alguns Conceitos B SiCOS iii A dae dias 4 O OR 5 3 O DESENVOLVIMENTO DE SISTEMAS DE INFORMA O E O PROGRAMADOR coccocccoconcnconcnnininconinon 20000 6 A GORM O e econ cacas a din e ado o nro del o o da a e een elas la oe 7 do PSEUDO CODIGO es ll dd e td te eterna 7 2 Portugues EStUtUAadO ds cio 8 3 LINGUAGEM DE PROGRAMA O oococococcoconcnnoncncnnnnnnnno cnmnnenennenennnnonnnnenennnnnno enmnnennnnnnennnnennnnanennnninn anenmaninnanina 8 4 TIPOS DE LINGUAGENS DE PROGRAMA O o ononmnnennnnanennnnennnnennnnino enrnrnnenennnnennnrannnnonos 8 5 PROCESSO DE CRIA O E EXECU O uses iioii mincnn cnt dad es 8 6 ERROS NUM PROGRAMA n ii ceetenantanas cenanareanaenaaaeaaanananaaaano anenaaaenananaananaananaaa 10 T CRIT RIOS DE QUALIDADE rre uo dd a e ke a es OA od TATO o eco aba A TO 10 COMANDOS BASICOS a e o e ea dm fa 11 IDENTIFICADORES CONSTANTES VARI VEIS E TIPOS B SICOS cette 11 2 DECLARA O DE VARI VEIS sm sa a a n CEA a 12 3 PALAVRAS RESERVADAS unirte DEAR RA 12 4 OPERADORES vu te aus eta te e at e ee e dd od a de eia ed dao aa 13 3 11 OPERADOR DE ATRIBUI O comisaria da a a Toe aa at tea 13 32 OPERADORES ARITMETICOS
24. I Fim Para Para de O at 19 Passo 1 Fa a X 1 10 SII Fim Para Imprima X Fim a Gere o vetor Y com os elementos comuns de Re S In cio inteiro R 0 9 Y 0 9 S 0 19 J K leia R S Y 0 para de 0 at 9 fa a K 1 para J de O at 19 fa a se R I S J ent o enquanto K lt fa a se Y K R I ent o se Y K 0 ent o YIK R I fim se sen o abandone fim se K K 1 fim enquanto fim se se Y K R I ent o abandone fim se fim para fim para imprima Y Fim 29 3 Um armaz m trabalha com 100 mercadorias diferentes identificadas pelos n meros inteiros de 1 a 100 O dono do armaz m anota a quantidade de cada mercadoria vendida durante o m s Ele tem uma tabela que indica para cada mercadoria o pre o de venda Escreva o algoritmo para calcular o faturamento mensal de armaz m isto FATURAMENTO 04 QUANTIDADE PREGO 1 A tabela de pre o e quantidade s o fornecidas em dois conjuntos sendo que um conjunto cont m a quantidade vendida e o outro o pre o de cada mercadoria Solu o In cio calcula o faturamento real QUANTIDADE 0 99 PRE O 0 99 Tabela de Qtdes vendidas e Pre o real FATURAMENTO inteiro indexador FATURAMENTO 0 leia QUANTIDADE PRE O para de O at 99 fa a FATURAMENTO FATURAMENTO QUANTIDADE IJ PRE OT I fim para imprima FATURAMENTO Fim 3 10 EXERC CIOS SOBRE VETORES 1 Fa a um algoritmo qu
25. Mas n oprecisaremos us la pois as vari veis declaradas dentro de um bloco j s o consideradas locais Abaixo vemos um exemplo de vari veis locais PORTUGOL funcao In cio inteiro abc x Fim funcag In cio inteiro abc Fim inteiro principal In cio inteiro a x y para real a b c Fim func1 int abc x func int abc 40 int main inta x y for float a b c No programa acima temos tr s fun es As vari veis locais de cada uma delas n o ir ointerferir com as vari veis locais de outras fun es Assim a vari vel abc de func1 n o temnada a ver e pode ser tratada independentemente com a vari vel abc de func2 A vari vel x defunc1 tamb m completamente independente da vari vel x da fun o principal main Asvari veis a b e c s o locais ao bloco para for Isto quer dizer que s s o conhecidas dentrodeste bloco e s o desconhecidas no resto da fun o Principa main Quando usarmos avari vel a dentro do bloco para for estaremos usando a vari vel a local ao para for e n o avari vel a da fun o main 3 11 Par metros formais O segundo tipo de vari vel que veremos s o os par metros formais Estes s o declaradoscomo sendo as entradas de uma fun o N o h motivo para se preocupar com o escopo deles f cil o par metro formal uma vari vel local da fun o Voc pode tamb m alterar o valor d
26. a Express o aritm tica Express o l gica Express o literal Ex O valor da express o atribu do ao identificador vari vel X 2 y 5 x Este comando permite que se forne a ou altere o valor de uma determinada vari vel onde o tipo desse valor seja compat vel ao tipo de vari vel na qual est sendo armazenado de acordo com o especificado na declara o NUM 8 A vari vel NUM recebe o valor 8 NOME Guilherme A vari vel NOME recebe o valor Guilherme CONT 0 AUXNOME NOME A vari vel AUXNOME recebe o conte do da vari vel NOME ACHOU falso A vari vel ACHOU recebe o valor falso 3 2 OPERADORES ARITM TICOS Adi o Y Resto da divis o de inteiros 5 2 1 Multiplica o a b Exponencia o a Subtra o ou inverso do sinal SINAL A Fornece o valor 1 1 ou zero conforme o valor de A seja negativo positivo ou igual a zero TRUNCA A A parte inteira de um n mero Fracion rio Quociente da divis o de inteiros ARREDONDA A Transforma por arredondamento 5 2 2 um n mero fracion rio em inteiro Obs FUN ES PRIMITIVAS As fun es mais comuns de matem tica s o tamb m definidas e v lidas no PORTUGOL Exemplos LOG X d o logaritmo na base 10 de X SEN X d o seno de X ABS X d o valor absoluto de X INT X d a parte inteira de um real X ARREDONDA x farredonda um real para inteir
27. a Pesquisa Sequencial Ordenada o vetor de busca tem de estar ordenadopelo campo chave da pesquisa Com isso ao se encontrar no vetor um elemento maior do que oelemento procurado poderemos abandonar a busca pois com certeza n o mais oencontraremos Devido a isso o n mero de testes para elementos existentes ou inexistentes ser na m dia de TOTELEM 2 e por isso melhor que o anterior para o caso de elemento inexistente Procedimento PESQORD lt tipo b sico gt VET Inteiro TOTELEM inteiro POS lt Tipo b sico gt ELEMPROC In cio Inteiro J Executa a Pesquisa da primeira ocorr ncia de ELEMPROC em VET eretorna em POS o ndice onde foi encontrada ou O se n o existe VETtem de estar ordenado pelo campo chave POS 0 J 1 Enquanto J lt TOTELEM e POS 0 Faca Se VET J gt ELEMPROC Ent o Se VET J ELEMPROC Ent o POS J Sen o Imprima O elemento n o est na lista Abandone Fim Se Sen o J J 1 Fim Se Fim Enquanto Fim 45 Exerc cio resolvido Dado um vetor A de 128 elementos verificar se existe um elemento igual a K chave no vetor Se existir imprimir a posi o onde foi encontrada a chave se n o imprimir chave K n o encontrada O vetor A e chave K s o lidos de cart es in cio inteiro A 1 128 inteiro inteiro K l gico ACHOU leia K leia A ACHOU falso para de 1 at 128 passo 1 fa a se A I K ent o imprima K Est na posi o ACHOU verdadeiro
28. a a dd 13 3 3 OPERADORES RELACIONAIS csr iei i E areia a ePi ia 13 34 OPERADORES OO e A le ds de R 14 3 5 PRIORIDADE DE OPERADORES ita naaneeo cunnaanenaaaaaenaaanaaaaananao amm 15 5 EXERCICIOS INTRODUTORIOS Mi OD e eE aa NE 15 6 COMANDOS DE ENTRADA E SA DA nn cormomonencnonnncnnnnnnnnnnnnn craeecaseramaneraneenartnentnas arentnena 16 6 1 Comando de Entrada de Dados oonnnnnnnnnnnnnnnnnnnnnnnnnnnnn errrnnnnnnnrnnrnnnnnnnnnnnnnnnnn ennerrnnnnns 16 3 6 Comando de Sa da de DadoS orseson A O E 16 7 ESTRUTURA DE UM ALGORITMO EM PSEUDO C DIGO EC o nmnrnrnrenennnnnrarinoninnnnnos 16 ESTRUTURAS B SICAS DE CONTROLE q gere sra a als ll a a 17 f A A A IS O a A A 17 25 SELE O td dd leal de ll a DE dl a dl 17 21 SELE O SIMPLES ci aU Dia SE a do nad 18 2 2 SELE O COMPOSTA iani a a UES A A Ad 18 2 3 ANINHAMENTO DE SELE ES o coennenennnnennnnonennnnennnnino ceererennteneneneenentenanaano ararte ena 18 3 ESTRUTURAS DE REPETI O LA OS LOOPS o cononnennnnenennnnennanennnnanos eonennenennanininnaso 19 3 1 LAC OJENQUANTO WKILES das assi cassa io RonSans ia NES Da Er ASas raisisd 19 3 2 CONTROLADOS POR CONTADOR tie aaaio corra naaaenananaenaaanaaaanaao acens 19 3 7 REPETI O COM TESTE NO FINAL ooncennnnennnnononnonennnninnnno ernnennnnnnnnna nena nennnneninnn una 20 3 8 ESCAPE DO LA O Abandone br
29. a claro quandopensamos que a fun o terminada quando o programa chega primeira declara o retornafeturn Abaixo est o dois exemplos de uso do retorna return Exemplo de fun o Inteiro VALORABSOLUTO inteiro X In cio Se X gt 0 Ent o VALORABSOLUTO X Sen o VALORABSOLUTO X Fim Se Fim Exerc cio para casa Escrever e executar em C o programinha acima Algoritmo para calcular o quadrado de um n mero e PORTUGOL Inteiro Square inteiro a In cio retorna a a Fim Algoritmo Principal In cio inteiro num imprima Entre com um numero 37 leia num num Square num imprima O seu quadrado vale num Fim EmC include lt stdio h gt int Square int a return a a int main Of int num printf Entre com um numero scanf d amp num num Square num printf ninO seu quadrado vale dn num return O Algoritmo para verificar se um n mero a divis vel por 2 e PORTUGOL inteiro EPar inteiro a in cio se a 2 ent o Verifica se a e divisivel por dois return 0 Retorna O se nao for divis vel a 1 1 sen o return 1 Retorna 1 se for divisivel a 0 0 fim se fim Algoritmo Principal In cio inteiro num imprima Entre com numero leia num se EPar num ent o imprima O numero e par sen o imprima O numero e impar fim se Fim EmC Hinclude lt stdio h gt int EPar int aX
30. a for escrito com clareza dever ser poss vel a outro programador seguir a l gica do programa sem muito esfor o assim como o pr prio ator do programa entend lo ap s ter estado um longo per odo afastado dele Coment rios no c digo Simplicidade A clareza e precis o de um programa s o normalmente melhoradas tornando as coisas o mais simples poss vel consistentes com os objetivos do programa Muitas vezes torna se necess rio sacrificar alguma efici ncia de processamento de forma a manter a estrutura do programa mais simples Efici ncia Refere se velocidade de processamento e a correta utiliza o da mem ria Um programa deve ter desempenho SUFICIENTE para atender as necessidades do problema e do usu rio bem como deve utilizar os recursos de mem ria de forma moderada dentro das limita es do problema Modulariza o Durante a fase de projeto a solu o do problema total vai sendo fatorada emsolu es de subproblemas o que permite geralmente dividir o problema de forma natural em m dulos com subfun es claramente delimitadas que podem ser implementados separadamentepor diversos programadores de uma equipe ou seja a modulariza o consiste noparticionamento do programa em m dulos menores bem identific veis e com fun es espec ficas de forma que o conjunto desses m dulos e a intera o entre eles permite a resolu o doproblema de forma mais simples e clara Generalidade interessante que um programa
31. aaa GEAR nada lida aces o aea Eine ae na uvas Era dada aa una poses 41 3 12 E EV E 41 6 Passagem de par metros por valor e passagem por refer ncia o eononnnnnonononnnnnnnnnnnnnnnnnn eno 42 7 FUN ES RECURSIVAS nn coronenennenennnnennnnennnnnnnno Arata AACA Sa Anaad A nanana ana enennnnennnnennnnenennnnnnns 43 8 ESTRUTURA O DOS M DULOS DE UM ALGORITMO o conenoncnrnnocnnnnnnnncnnonenino ornrncnnna 43 ALGORITMOS DE PESQUISA E ORDENA O o conennenennnnennnnonennanennnnen eenenmnnennnnanennnnennnnennnnns aerea 44 12 INTRODU O eis seus ml oe o e a e sata e lo a us ll a nl 44 2 ALGORITMOS DE PESQUISA tie a a a aaa a aa 44 2 1 PESQUISA SEQUENCIAL SIMPLES ocococcococcncononcononconinonn eonenencnnennnonenconennnninnn encenrnnnnnnnnnenennnnennnnennnn eno 44 3 13 PESQUISA SEQUENCIAL ORDENADA cocooccoconcononcnnncnnonnnon conenennenennnnennnninnnnanennns Dnnennnnnnennnnennnnanenananos 45 Sede PESQUISA BINARIA cda a e oil a nm o 46 3 ALGORITMOS DE ORDENA O idi a iea aiaa ei 47 3 1 M TODO DE SELE O DIRETA 00 na eo pod do 47 3 2 METODO DE INSER O DIRETA mc de ie la do 48 3 3 METODO DA BOLHA ao a e Di 48 Introdu o Nesta apostila estudaremos L gica de Programa o e para isso importante ter uma vis o geral do processo de desenvolvimento de programas software visto que o objetivo final ter um bom embasament
32. abandone fim se fim para se n o ACHOU ent o imprima A CHAVE K N O EST NO VETOR fim se fim Neste exemplo a pesquisa a um elemento ficar mais eficiente se utilizarmos a pesquisa bin ria desde que o vetor j esteja ordenado Nesta pesquisa procuramos o elemento K dividindo o vetorem duas partes e testando em qual das duas ele deveria estar Procedendo da mesma forma paraa parte prov vel e assim sucessivamente K K 3 14 PESQUISA BIN RIA A pesquisa bin ria um m todo que tamb m s se aplica a vetores previamente ordenados A sua grande vantagem a rapidez e por isso ela muito recomendada para vetores grandes Neste m todo a primeira compara o feita com o elemento do meio do vetor eliminando seassim metade do mesmo para a busca Seguem se compara es sucessivas ao elemento domeio do segmento onde pode estar o elemento procuado Assim a cada compara o feita metade do vetor eliminada Procedimento PESQBIN V VET Inteiro TOTELEM POS lt Tipo b sico gt ELEMPROC In cio Executa a Pesquisa bin ria da primeira ocorr ncia da ELEMPROC em VETe retorna em POS se o ndice foi encontrado ou O se n o existe VETtem de estar ordenado pelo campo chave Inteiro PRI ULT MED primeiro ltimo e elemento do meio POS 0 PRI 1 ULT TOTELEM Enquanto PRI lt ULT e POS 0 Faca MED PRI ULT 2 quociente da divis
33. ador do software ou outra foma de distribui o seja discos ou via internet e Testes Automatizados automated tests realiza testes no software de forma automatizada com base em scripts ou programas de testes previamente especificados gerando um relat rio assim auxiliando na an lise do impacto das altera es no c digo fonte Ferramentas deste tipo mais comuns no mercado s o chamadas rob s de testes e Refatorac o refactoring consiste na melhoria constante do c digo fonte do software seja na constru o de c digo mais otimizado mais limpo e ou com melhor entendimento pelos envolvidos no desenvolvimento do software A refatora o em conjunto com os testes automatizados uma poderosa ferramenta no processo de erradica o de bugs tendo em vista que os testes garantem o mesno comportamento externo do software ou da caracter stica sendo reconstru da 6 ERROS NUM PROGRAMA Erros de Compila o Erros de digita o e de uso da sintaxe da linguagem Erros de Link Edi o Erro no uso de bibliotecas de subprogramas necess rias ao programa principal Erros de Execu o Erro na l gica do programa algoritmo 7 CRIT RIOS DE QUALIDADE Refere se precis o das informa es manipuladas pelo programa ou seja os resultados gerados pelo processamento do programa devem estar corretos casocontr rio o programa simplesmente n o tem sentido Clareza Refere se facilidade de leitura do programa Se um program
34. comando logo ap s o fim do comando de repeti o mais interno onde aparece o abandone 3 9 Sinalizador Flags O sinalizador ou flag um valor que quando lido sinaliza a sa da de um laco o fim de um programa o fim de uma lista de dados ou o fim de um arquivo Para identific lo iremos defini lo como uma constante nos nossos algoritmos Exemplo fa a um trecho de algoritmo utilizando o PORTUGOL que leia e imprima uma lista de n meros inteiros terminada pelo n mero 999 In cio Constante FLAG 999 Inteiro NUM Leia NUM Enquanto NUM lt gt FLAG fa a Imprima NUM Leia NUM Fim Enquanto Fim 4 EXERC CIOS INTRODUT RIOS II 1 Quais valores ser o impressos ap s a execu o do seguinte trecho de algoritmo I 0 Enquanto lt 20 Fa a Imprima 1 2 I 1 1 Fim Enquanto Imprima 1 Imprima UFA CHEGUEI AQUI CUIDADO 2 Dado o algoritmo abaixo que calcula o volume de uma esfera de raio R In cio Real VOLUME PI R 21 Constante PI 3 1416 R 0 Enquanto R lt 6 Fa a VOLUME 4 3 PI R 3 Imprima R VOLUME R R 2 Fim Enquanto Fim Completar os demais valores que ser o impressos R VOLUME DA ESFERA 10 Identifique o tipo de cada uma das constantes abaixo a 21 b BOLA c VERDADEIRO d 0 21 10 e falso 5 REGRAS PR TICAS PARA A CONSTRU O DE ALGORITMOS LEGIVEIS 1 Procure incorporar coment rios no algoritmo pelo menos pa
35. do e PORTUGOL Para v de i at f passo p Fa a C1 C2 Cn Fim Para eC for v 0 v lt 100 v v 0 enquanto v for menor que 100 fa a v incremento 1 printf d amp v Significado do comando v i f p s o vari veis quaisquer e que de acordo com as regras da programa o estruturada n o devem ser modificadas nos comandos C1 C2 Cn O comando para na verdade o comando enquanto utilizando se uma vari vel de controle escrito numa nota o compactada Neste caso existir sempre uma inicializa o da vari vel de controle um teste para verificar se a vari vel atingiu o limite e um acr scimo na vari vel Exemplo para compara o entre Enquanto e Para In cio Inteiro X X 1 inicializa o Enquanto X lt 10 Fa a teste Leia v X X X 1 acr scimo Fim Enquanto Fim Equivale a In cio Inteiro X Para X de 1 at 10 Passo 1 Fa a Leia v X Fim Para Fim 25 Nota 1 Assim como no comando enquanto se o valor inicial i j for superior ao limite f os comandos C1 C2 Cn n o ser o executados 2 Toda vez que o fim para encontrado a vari vel de controle i incrementada pelo passo p e o teste v lt 1 feito 3 O valor da vari vel de controle torna se indefinido assim que executado o comando para Neste aspecto o comando para diferente do comando enquanto Por exemplo com o trecho de algoritmo seguinte Para X de 1 at
36. e para linguagem de m quina programa execut vel paraque possa ser executado pelo computador Interpretador um programa que traduz os programas escritos pelo programador para linguagem de m quina no momento da execu o n o existindo assim o programa execut vel IDE Ambiente de Desenvolvimento Integrado um programa que reuni algumas ferramentas para o desenvolvimento e software como editor de texto compilador depurador entre outro facilitando o trabalho do programador 2 Software O software de um computador o que determina o seu uso e os resultados que ser o produzidos e apresentados Em um computador digital existem diversos tipos diferentes de software com finalidades e complexidades diferentes Normalmente quanto mais relacionado e pr ximo ao hardware o software mais dif cil e complexo de ser desenvolvido e mantido pelo programador A Figura abaixo procura ilustrarem camadas o que foi dito Partindo se do hardware que est nocentro e normalmente cont m um conjunto de instru es operacionais programado diretamente nele FIRMWARE O firmware armazenado permanentemente num circuito integrado chip de mem ria do hardware como uma ROM PROM EPROM ou ainda EEPROM e mem ria flash no momento da fabrica o do componente Muitos aparelhos simples possuem firmware entre eles podemos citar controle remoto calculadora de m o alguns perif ricos do computador como disco r gido teclado modem e tamb
37. e leia 18 n meros inteiros e calcule e imprima a soma dos mesmos 2 Fa a um algoritmo que leia 18 n meros inteiros e calcule e imprima a m dia dos mesmos 3 Fa a um programa que leia 4 n meros inteiros e apresente M dia dos mpares Maior n mero par Diferen a do maior menos o menor n mero 4 Faca um programa que leia um conte do com 100 n meros inteiros e apresente a media dosn meros 5 Faca um programa que leia 2 conjuntos com 50 n meros inteiros e gere um terceiro conjuntocom a media dos elementos de A e B Apresente o C 6 Faca um programa que leia um conjunto A com 30 n meros inteiros e que armazene em umconjunto B do mesmo tipo os elementos de A multiplicados por 3 apresente o conjunto B 7 Fa a um programa que leia um conjunto A com 100 n meros inteiros e que gere um conjunto Bcom os elemento de A de acordo com a seguinte regra Se o elemento de A for par armazene emB multiplicando por 5 Se o elemento de A for impar armazene em B somando 5 8 Fa a um programa que leia dois conjuntos A e B com 20 inteiros e troque os valores de A comB 9 Fa a um programa que leia dois conjuntos A e B com 15 n meros inteiros e gere um conjuntode 30 elementos onde os 15 primeiros elementos s o de A e o resto de B Apresente oconjunto C 30 5 MATRIZES Defini o Conjunto de dados referenciados por um mesmo nome e que necessita de mais deum ndice para ter seus elementos individualizados Quando temos ma
38. e muito menos suscet vel aerros de l gica na fase de codifica o do programa 43 ALGORITMOS DE PESQUISA E ORDENA O 1 INTRODU O Quando temos um Vetor ou Matriz com muitos elementos e precisamos descobrir se umdeterminado elemento que procuramos se encontra no vetor uma solu o que certamente nosvem mente comparar o elemento que procuramos com cada elemento do vetor at queencontremos ou at que concluamos que o elemento procurado n o est no vetor Esta a base do racioc nio dos algoritmos de pesquisa ou busca Search que comosugere o nome Pesquisam em um vetor a exist ncia ou n o exist ncia de um elementoprocurado A diferen a entre um e outro algoritmo de busca fica por conta da rapidez com que varremos o vetor para encontrar o elemento ou para concluirmos que ele n o existe Um fator que influencia em muito nessa rapidez a disposi o dos elementos no veta Seest o desordenados seguramente teremos que verificar do primeiro ao ltimo elemento paraconcluir com certeza que o elemento n o existe J se est o ordenados ao encontrarmos umelemento maior ou menor que o elemento procurado poderemos concluir pela sua n oexist ncia Os algoritmos de ordena o ou classifica o Sort por sua vez s o utilizados paraordenar os elementos de um vetor de forma a facilitar a pesquisa posterior de um elemento noconjunto de elementos existentes Existem algoritmos para pesquisa e ordena
39. e tipo de chamada n o se passa para a fun o os valores dasvari veis mas sim suas refer ncias a fun o usa as refer ncias para alterar os valores dasvari veis fora da fun o O C s faz chamadas por valor Isto bom quando queremos usar os par metros formais vontade dentro da fun o sem termos que nos preocupar em estar alterando os valores dospar metros que foram passados para a fun o Mas isto tamb m pode ser ruim s vezes porquepodemos querer mudar os valores dos par metros fora da fun o tamb m O C tem um recursoque permite ao programador fazer chamadas por refer ncia H entretanto no C um recurso deprograma o que podemos usar para simular uma chamada por refer ncia Quando queremosalterar as vari veis que s o passadas para uma fun o n s podemos declarar seus par metrosformais como sendo ponteiros Os ponteiros s o a refer ncia que precisamos para poder alterara vari vel fora da fun o O 42 nico inconveniente que quando usarmos a fun o teremos delembrar de colocar um amp na frente das vari veis que estivermos passando para a fun o Veja umexemplo Hinclude lt stdio h gt void Swap int a int b void main void int num1 num2 num1 100 num2 200 Swap amp num1 amp num2 printf ninEles agora valem d din num1 num2 void Swap int a int b int temp temp a a b b temp N o muito dif cil O que est acontecendo
40. e umpar metro formal pois esta altera o n o ter efeito na vari vel que foi passada fun o Istotem sentido pois quando o C passa par metros para uma fun o s o passadas apenas c piasdas vari veis Isto os par metros formais existem independentemente das vari veis que forampassadas para a fun o Eles tomam apenas uma c pia dos valores passados para a fun o 3 12 Vari veis globais Vari veis globais s o declaradas como j sabemos fora de todas as fun es do programa Elas s o conhecidas e podem ser alteradas por todas as fun es do programa Quando umafun o tem uma vari vel local com o mesmo nome de uma vari vel global a fun o dar prefer ncia vari vel local Vamos ver um exemplo no nosso pseudo C digo inteiro z k func1 inteiro x y func2 inteiro x y Z z 10 principal inteiro count No exemplo acima as vari veis z e k s o globais Veja que func2 tem uma vari vel localchamada z Quando temos ent o em func2 o comando z 10 quem recebe o valor de 10 avari vel local n o afetando o valor da vari vel global z Evite ao m ximo o uso de vari veis globais Elas ocupam mem ria o tempo todo as locaiss ocupam mem ria enquanto est o sendo usadas e tornam o programa mais dif cil de serentendido e menos geral 41 6 Passagem de par metros por valor e passagem por refer ncia J vimos que na linguagem C quando chamamos uma fun
41. eak conconnnncncnnnnnonnnnnnnnnnnnnn canareanaaaanenaaaaaaeaaananas 21 3 9 sinalizador Eladio 21 4 gt EXERCICIOS INTRODUT RIOS IE aguia e a CUTE la ed eg 21 5 REGRAS PR TICAS PARA A CONSTRU O DE ALGORITMOS LEG VEIS o ces 22 6 UMA REFLEX O ANTES DE RESOLVER OS PROBLEMAS o conorenencnnennnnencnneneninnnno cnnnnos 23 7 EXERC CIOS COMPLEMENTARES 5 li sagas des its ii da 23 ALGOR TMOS BASEADOS EM ESTRUTURAS DE DADOS HOMOG NEAS cococccccoccncncococoncncnnonnno eee 25 di VETORES E MATRIZES prer Tren seed A Ig TEL DOS LS OE Se A E E 25 2 REPETI O COM VARI VEL DE CONTROLE PARA fol ooooooncocococoncncncncncnno cereeeeesesesesesesesererereeto sarten 25 3 SELE O DENTRE AS M LTIPLAS ALTERNATIVAS CASO CASE erre 26 fo VETORES Es Ora A O a a TA E dt 27 47 DECLARA O DE VMETORES us 2 et a a BOAS SUNT ADO Mista a Au ST a e e deis 28 3 10 EXERC CIOS SOBRE VETORES o ni conto cnn cnn nnennn anne 30 5 MATRIZES coi A A a dE 31 5 1 Exerc cios Resolvidos iii ass 33 MODULARIZA O DE ALGORITMOS coccocccncononcononincncnnonon conmenennnnonennanennninnnnannn Denmnnennnnnennnnennnnenennnnns eenrnnanennnninnnns 35 1 INTRODU O a a aaa 35 2 PROCEDIMENTOS otto tad 35 3 EUNODES E ai ta A ARA AGO AA AS 36 4 Prot tipos de FUN ES ici E 39 Ds ESCOPO de VarlaveIS cit DAA da 40 5 1 Va VOI O EEEE anta 40 9 11 A A iaae aea a Penas ALE e e
42. eiro para um dos casos cessam os testes dos casos e o pr ximo comando a ser executado o que vem a seguir do Fim Conforme Esta estrutura tamb m pode ser utilizada testando se as condi es ao inv s de valores paradeterminar qual o comando a ser executado ap s o teste de cada condi o Ver exemplo b Emprograma o uma aplica o sempre interessante desta estrutura no tratamento de Menus deOp es quando para cada sele o feita pelo usu rio do programa haver uma sequ ncia dea es diferentes a ser executada Outra aplica o na impress o de diferentes mensagens deerro Exemplos a In cio trecho de algoritmo para tratamento de tr s poss veis erros conhecidos na execu o deum programa Conforme Caso ERRO 1 Imprima MSG1 Caso ERRO 2 Imprima MSG2 Caso ERRO 3 Imprima MSG3 Sen o Imprima ERRO N O CONHECIDO Fim Conforme Fim b In cio trecho de algoritmo para impress o da situa o de um aluno a partir da M DIA obtida ao fim do curso Conforme Caso M DIA gt 7 0 Imprima APROVADO COM DIPLOMA Caso M DIA gt 5 0 Imprima APROVADO COM CERTIFICADO Sen o Imprima REPROVADO Fim Conforme Fim 4 VETORES Um vetor ou agregado homog neo ou ainda vari vel composta homog nea uma estrutura de dados que cont m elementos de mesmo tipo que podem ser referenciados como um todo Ao declararmos um vetor estamos reservando na mem ria
43. elementos a serem ordenados e Ordena o por sele o m todo sele o direta e Ordena o por inser o m todo inser o direta e Ordena o por troca m todo da bolha Para fazermos qualquer ordena o em vetor ou matriz precisaremos de dois par metros a O vetor que ser ordenado b O n mero de elementos desse vetor que devem ser ordenados Novamente para evitartratamento de lixo Da mesma forma que os algoritmos de pesquisa os algoritmos de ordena o poder o serutilizados muitas vezes na solu o de diferentes problemas e tamb m vamos definHos comoum Procedimento do mesmo Algoritmo Principal hipot tico com os seguintes argumentos Declara es Constante MAXELEM 1000 N mero m ximo de elementos do vetor apenas limitaro tamanho do vetor lt tipo b sico gt VET 1 MAXELEM Corresponde ao Par metro a o vetor a serordenado Inteiro TOTLEM Corresponde ao Par metro b 3 1 M TODO DE SELE O DIRETA Este um dos mais simples m todos existentes Primeiro descobre se o menorelemento do vetor e troca se com o primeiro elemento A partir da com os elementosremanescentes repete se o processo at que todo o vetor esteja ordenado Um exemplobastante elucidativo o de algumas cartas de baralho na mesa viradas para cima vista Seleciona se a menor ou maior para coloc la na primeira posi o Depois seleciona se sucessivamente a menor carta dentre as remanescentes e se a coloca s
44. est lo individualmente eisoladamente para verificar sua correc o Isto ser comprovado na disciplina LP A isto sedenomina Encapsulamento Uma lista de par metros consiste em uma lista de vari veis e seusrespectivos tipos Procedimento lt nome do Procedimento gt lt lista de par metros gt lt especificac o de par metros gt In cio lt declarac o de vari veis locais gt C1 C2 Cn Fim nome do procedimento Exemplo de Procedimento Procedimento TROCAINTEIROS Inteiro NUM1 inteiro NUM2 In cio Inteiro AUXNUM AUXNUM NUM NUM1 NUM2 NUM2 AUXNUM Fim 3 FUN ES Fun es s o as estruturas que permitem ao usu rio separar seus programas em blocos Sen o as tiv ssemos os programas teriam que ser curtos e de pequena complexidade Parafazermos programas grandes e complexos temos de constru los bloco a bloco Uma fun o um m dulo que tem por objetivo calcular e retornar ao algoritmo procedimento ou fun o chamador um valor A chamada de uma fun o para execu o feitaapenas citando se o seu identificador no meio de uma express o Vide as fun es previamenteexistentes no nosso pseudoc digo Uma fun o dita recursiva quando chama a ela pr pria Uma fun o no C tem a seguinte forma geral tipo de retorno nome da fun o declara o de par metros In cio 36 corpo da fun o Fim Em PORTUGOL utilizaremos a seguinte forma e PORTUGOL Tipo de retorno lt nome da
45. gico ser definido abaixo Vari vel variable Uma vari vel Var um identificador que como sugere onome possui o conte do vari vel durante a execu o de um algoritmo ou programa Podemos associar uma vari vel a uma posi o da mem ria endere o e poderemosarmazenar guardar neste endere o qualquer valor do conjunto de valores de um tipob sico associado a ela Uma vari vel pode assumir v rios valores diferentes ao longo daexecu o do programa mas em um determinado momento possui apenas um valor Unidades b sicas de armazenamento das informa es a n vel de linguagens deprograma o Os tipos de dados e vari veis utilizados dependem da findidade dosalgoritmos mas podemos definir alguns pelo fato de serem largamente utilizados eimplementados na maioria das linguagens Esse tipo b sico poder ser INTEIRO int short int ou long int qualquer n mero inteiro negativo nulo ou positivo Ex 2 1 0 Opera es soma subtra o multiplica o divis o inteira resto e compara es REAL float ou double qualquer n mero real negativo nulo ou positivo Ex 2 5 3 1 Opera es soma subtrac o multiplica o divis o exata e compara es CARACTER char qualquer conjunto de caracteres alfanum ricos Ex A B ABACATE Opera es compara es TEXTO OU CADEIA DE CARACTERES string uma vari vel deste tipo poder armazenaruma
46. guagem bastante diferente e de n vel mais baixo SOLU O Atrav s da tradu o de programas escritos em linguagens de alto n vel para alinguagem de baixo n vel do computador Para isso existem tr s tipos de programas tradutores Montadores Interpretadores e Compiladores ou simplesmente uma IDE MONTADOR Efetua a tradu o de linguagem de montagem Assembly para a linguagem dem quina Obt m pr xima instru o do Assembly Traduz para as instru es correspondentes em linguagem de m quina Executa as instru es em linguagem de m quina Repete o passo 1 at o fim do programa 20 it INTERPRETADOR Efetua a tradu o de uma linguagem de alto n vel para linguagem dem quina da seguinte forma Obt m pr xima instru o do c digo fonte em linguagem de alto n vel Traduz para as instru es correspondentes em linguagem de m quina Executa as instru es em linguagem de m quina Repete o passo 1 at o fim do programa ROD gt COMPILADOR Efetua a tradu o de todo o c digo fonte em linguagem de alto n vel para as instru es correspondentes em linguagem de m quina gerando o c digo objeto do programa Em seguida necess rio o uso de outro programa Link Editor que respons vel pela jun o de diversos c digosobjeto em um nico programa execut vel IDEs Facilitam a t cnica de RAD de Rapid Application Development ou Desenvolvimento R pido de Aplicativos que visa a maior produtividade dos dese
47. if a 2 Verifica se a e divisivel por dois return 0 Retorna O se nao for divisivel else return 1 Retorna 1 se for divisivel int main Of int num printf Entre com numero scanf d amp num if EPar num printf ininO numero e parin else printf ininO numero e imparAn return 0 importante notar que como as fun es retornam valores podemos aproveit los parafazer atribui es ou mesmo para que estes valores participem de express es Masn o podemosfazer 38 func a b x Errado 4 Prot tipos de Fun es At agora nos exemplos apresentados escrevemos asfun es antes de escrevermos afun o principal main Isto as fun es est o fisicamente antes da fun o principal main Isto foi feito por uma raz o Imagine se na pele do compilador Se voc fosse compilar a fun omain onde s o chamadas as fun es voc teria que saber com anteced ncia quais s o ostipos de retorno e quais s o os par metros das fun es para que voc pudesse gerar o c digocorretamente Foi por isto que as fun es foram colocadas antes da fun o main quando ocompilador chegasse fun o main ele j teria compilado as fun es e j saberia seusformatos Mas muitas vezes n o poderemos nos dar ao luxo de escrever nesta ordem Muitasvezes teremos o nosso programa espalhado por v rios arquivos Ou seja estaremos chamandofun e em um arquivo que ser o com
48. ir entre Ex Um Primeiro Programa O compilador C desconsidera qualquer coisa que esteja come ando com e terminando DOCUMENTA O Alguns princ pios b sicosdever o ser usados desde a cria o do primeiro algoritmo e Ao criar as constantes e vari veis utilizar nomes significativos e comentar se necess rio for e Utilizar identa o tr s espa os como sugest o para mostrar a estrutura l gica e sequ ncia de comandos quando usando o PORTUGOL e C e Utilizar par nteses para evitar ambiguidade nas express es ESTRUTURAS B SICAS DE CONTROLE No cap tulo anterior foram apresentados exemplos das tr s estruturas necess rias para representa o da solu o de qualquer algoritmo a sequ ncia a sele o e a repeti o Em se tratando de algoritmo para computadores as tr s tamb m formam a base das estruturas de controle de execu o Vejamos como formalizaremos a representa o e o uso dessas estruturas no PORTUGOL e na Linguagem C 1 SEQU NCIA Grupo de comandos que s o executados um ap s o outro e PORTUGOL In cio comando 1 comando 2 comando n Fim Hinclude lt stdio h gt main Um Primeiro Programa printf Meu primeiro programain 2 SELE O Tamb m chamada de estrutura de decis o ou de processamento condicional a estrutura de sele o utilizada quando a execu o de um comando ou uma sequ ncia de comandos depende de um teste anterior uma o
49. is de uma dimens o ent o utilizamos as matrizes que de diferente nouso e na declara o s tem estas dimens es a mais expl citas A sintaxe a seguinte lt Tipo b sico gt identificador Pi1 Pf1 Pi2 Ps2 Pin Pfn Esta especifica o corresponde apenas cria o do modelo e para efetivar a estrutura dedados dentro do algoritmo necess ria uma declara o dando um nome vari vel que segue omodelo Ex Real MAT 1 3 1 4 ou seja MAT 1 2 3 4 1 2 3 O n mero de dimens es da matriz ser igual ao n mero de v rgulas da declarac omais 1 O n mero de elementos igual ao produto do n mero de elementos de cadadimens o Pf1 Pi1 1 PF2 Pi2 1 Pfn Pin 1 Exerc cios 1 Qual o n mero de elementos e dimens es das matrizes especificadas abaixo a real MAT1 0 2 1 5 b Caracter MAT2 1 3 2 4 3 4 Para referenciar um elemento da matriz s o necess rios tantos ndices quantas s o as dimens esda matriz Numa matriz bidimensional duas dimens es o primeiro ndice indica a linha e osegundo a coluna No exemplo anterior MAT1 1 3 se refere ao elemento da linha n mero 1 segunda linha no caso e coluna n mero 3 terceira coluna MAT1 1 2 3 4 5 0 E 2 Para matrizes com tr s dimens es repete se a estrutura bidimensional tantas vezes quantos s oos elementos da terceira dimens o numerando as de acordo com os
50. ito e de l o nosso programa n o sair PORTUGOL In cio Inteiro x x 2 Enquanto x lt 10 Faca Imprima x x x 1 Fim Enquanto Imprima x Fim Hinclude lt stdio h gt main int X X 2 while X lt 10 printf Y d 8X X X 1 printf d 8X Exerc cio fa a um trecho de algoritmo para ler e imprimir o nome e a idade de v rias pessoas at encontrar algu m com 65 anos quando dever ser impresso al m do nome uma mensagem informando o fato 3 2 CONTROLADOS POR CONTADOR Uma vari vel fornecida com o n de vezes que ser repetido o la o Algoritmo Abono por Contador In cio Leia Numero de Funcion rios Contador 0 19 Enquanto Contador lt N mero de Funcion rios Fa a Leia Nome Contador Contador 1 Fim Enquanto Fim 3 7 REPETI O COM TESTE NO FINAL Quando se deseja executar a s rie de comandos uma vez pelo menos pode se fazer o teste no final Essa varia o tem um uso bastante efetivo na valida o de dados de entrala pelo teclado mas pode ser sempre substitu da por um enquanto Uma vantagem do repita que n o preciso inicializar a s vari vel eis de controle do la o antes de entrar no mesmo Deve se contudo ter o cuidado de modific la s dentro do la o para que n o caiamos em um la o infinito Executa uma instru o e faz um teste l gico Dependendo da resposta fica repetindo o processoenquanto o teste l gico for Verdadeiro
51. linguagem 4 TIPOS DE LINGUAGENS DE PROGRAMA O Existem diversas linguagens de programa o cada uma com suas caracter sticas espec ficas e com n veis de complexidade e objetivos diferentes como j vimos anteriormente e Linguagem de M quina nica compreendida pelo computador Espec fica para cada tipo de computador processador e Linguagens de Baixo N vel Ex Assembly e Linguagens de Alto N vel Utiliza instru es pr ximas da linguagem humana de forma a facilitar o racioc nio Ex Uso Cient fico Fortran Prop sito Geral Pascal C Basic Delphi Java Uso Comercial Cobol Clipper 5 PROCESSO DE CRIA O E EXECU O Embora seja teoricamente poss vel a constru o de computadores especiais capazes de executar programas escritos em uma linguagem de programa o qualquer os computadores existentes hoje em dia s o capazes de executar somente programas em linguagem de baixo n vel a Linguagem deM quina 8 As Linguagens de M quina s o projetadas levando se em conta os seguintes aspectos Rapidez de execu o de programas Custo de sua implementa o Flexibilidade com que permite a constru o de programas de n vel mais alto Por outro lado lin guagens de programa o de alto n vel s o projetadas em fun o de Facilidade de constru o de programas Confiabilidade dos programas O PROBLEMA Como a linguagem de n vel mais alto pode ser implementada em um computador cuja lin
52. lizando pseudo c digo e PORTUGOL In cio Se CONDI O A Ent o V comando1 Sen o F Se CONDI O B Ent o comando2 Sen o comando3 Fim Se Fim se Fim 18 if num lt 10 if num 10 printf O numero e igual a 10 else printf O numero e menor que 10 else if num lt 20 printf O numero e maior que 10 e menor que 20 3 ESTRUTURAS DE REPETI O LACOS LOOPS 3 1 LA O ENQUANTO WHILE A estrutura de repeti o enquanto utilizada quando um conjunto de comandos deve ser executado repetidamente enquanto uma determinada condi o express o l gica permanecer verdadeira Dependendo do resultado do teste da condi o o corjunto de comandos poder n o ser executado nem uma vez se for falsa no primeiro teste ou ser executado v rias vezes enquanto for verdadeira Chama se a isso um la o loop Da mesma forma que a estrutura de sele o ela permite o aninhamento de repeti es ou seja a exist ncia de uma estrutura de repeti o dentro de outra Poder o haver tamb m aninhamentos de sele es dentro de estruturas repetitivas e vice versa Dois cuidados ao criar estruturas de repeti o enquanto 1 Inicializar a s vari vel eis que controla m o la o antes do in cio do la o 2 Inicializar a s vari vel eis que controla m o la o dentro do la o seja por leitura ou por atribui o pois se isto n o for feito cairemos no que chamamos um la o infin
53. nteses mais internos 2 Efetuar Fun es 3 Efetuar multiplica o e ou divis o 4 Efetuar adi o e ou subtra o 5 Operadores Relacionais 6 Operadores L gicos Ou seja Primeiro Par nteses e Fun es Segundo Express es Aritm ticas 1 Unit rios 2 kk 3 4 bin rio Terceiro Compara es Quarto N o Quinto e Sexto ou OBS O programador tem plena liberdade para incluir novas vari veis operadores ou fun es para adaptar o algoritmo as suas necessidades lembrando sempre de que estes devem ser compat veis com a linguagem de programa o a ser utilizada 5 EXERC CIOS INTRODUT RIOS 1 1 O resultado da express o 3 6 13 X 2 Sendo A B C e D vari veis do tipo inteiro cujos conte dos s o A 3 B 4 C 13 e D 4 Quais os valores fornecidos por cada uma das express es aritm ticas abaixo a 100 B A C d C D C 2 b A 5 D 2 e B A 1 c trunca 0 3 5 2 f sinal D C 3 Qual a primeira opera o executada em cada um dos comandos abaixo a X Y Z b A B C 2 c JO O JOS JOEL d X Y B 2 R 3 A Avalie a seguinte express o aritm tica 6 4 2 3 O resultado desta express o 15 12 24 5 Qualo resultado das seguintes express es a 1 7 2 2 1 X b 3 1 2 4 2 X 6 Avalie as express es abaixo sabendo que X 2e Y 3 a 3 y x 2 7 y 2 b 2 x 3 y x 2 y 7 Identifique as entradas e sa das das express es abaixo Escrevaas em fo
54. nvolvedores As caracter sticas e ferramentas mais comuns encontradas nos IDEs s o e Editor edita o c digo fonte do programa escrito na s linguagem ns suportada s pela IDE e Compilador compiler compila o c digo fonte do programa editado em uma linguagem espec fica e a transforma em linguagem de m quina e Linker liga linka os v rios peda os de c digo fonte compilados em linguagem de m quina em um programa execut vel que pode ser executado em um computador ou outro dispositivo computacional e Depurador debugger auxilia no processo de encontrar e corrigir defeitos no c digo fonte do programa na tentativa de aprimorar a qualidade de software e Modelagem modelling cria o do modelo de classes objetos interfaces associa es e intera es dos artefatos envolvidos no software com o objetivo de solucionar as necessidadesalvo do software final e Gera o de c digo caracter stica mais explorada em Ferramentas CASE a gera o de c digo tamb m encontrada em IDEs contudo com um escopo mais direcionado a templates de c digo comumente 9 utilizados para solucionar problemas rotineiros Todavia em conjunto com ferramentas de modelagem a gera o pode gerar todo ou praticamente todo o c digo fonte do programa com base no modelo proposto tornando muito mais r pido o processo de desenvolvimento e distribui o do software e Distribui o deploy auxilia no processo de cria o do instal
55. o RAIZ X d a raiz quadrada de X etc 3 3 OPERADORES RELACIONAIS S o utilizados para relacionar vari veis ou express es resultando num valor l gico Verdadeiro ou Falso sendo eles igual diferente de lt menor gt maior lt menor ou igual gt maior ou igual Exemplo NOME DENISE NUM gt 5 falso 0 3 n o maior que 5 NOME lt DENIZ verdadeiro 1 DENISE vem antes de DENIZ 13 5 3 gt 7 verdadeiro NUM 4 1 falso lembre se que NUM recebeu 3 3 4 OPERADORES L GICOS Os operadores l gicos permitem que mais de uma condi o seja testada em uma nica express o ouseja pode se fazer mais de uma compara o teste ao mesmo tempo Opera o Operador Nega o n o Conjun o e Disjun o n o exclusiva ou Disjun o exclusiva xou l se ou exclusivo Note que a tabela acima apresenta os operadores l gicos j ordenados de acordo com suagrioridades ou seja se na mesma express o tivermos o operadorou e o operador n o por exemplo primeiro devemos executar o n o e depois o ou De uma forma geral os resultados poss veis para os operadores l gicos podem ser vistos natabela abaixo conhecida como Tabela Verdade AeB Aou B n o A AxouB lt lt in n gt lt m lt nm 0 lt nn njo lt lt lt n m jn lt lt lo m lt lt m
56. o te rico para a pr tica da programa o de computadores 1 Alguns Conceitos B sicos Dados S o elementos brutos que podem ser processados por um computador para se obter alguma conclus o ou resultado ou seja uma informa o Computador M quina Hardware muito r pida que pode processar dados realizando c lculos e opera es repetitivas se dotados de programa o adequada software ou firmware e que fornece resultados corretos e precisos Informa o o resultado do processamento dos dados pelo computador Uma informa o pode ser considerada como um dado para outro processamento e por isso muitas vezes referenciada como dado de sa da Hardware um termo de origem americana que engloba todo o equipamento principal e perif rico de um computador O termo utilizado tamb m para equipamentos sem software O hardware normalmente fixo e dif cil de ser modificado Software outro termo de origem americana que engloba programas documenta o processamento de dados utilizados em um computador para resolu o de determinado problema O software ao contr rio do hardware male vel e por isso mais facilmente modific vel pelo programador para adapta o a novos dados novos requisitos do problema a ser resolvido ou novo hardware onde vai funcionar ser executado Programa de computador Sequ ncia de instru es n o amb gua e finita em uma linguagem de programa o especifica que quando exec
57. o tenha desenvolvido Ao contr rio do que muitos pensam um computador n o faz nada sozinho Ele uma m quina r pida que resolve problemas bem definidos e repetitivos mesmo complexos mas somente se for bem programado Ou seja se temos LIXO na entrada quer na forma de maus programas ou dados ruins teremos LIXO na sa da nossos resultados Programas aplicativos Compilacores e interpretadcres Sistema operacioral o Utlit rios Hardware Proc texto banco de cados planilhas Algoritmos Figura 1 1 As Camadas de software em um computador 3 O DESENVOLVIMENTO DE SISTEMAS DE INFORMA O E O PROGRAMADOR Um sistema de informa o pode ser definido como um sistema baseado em computador que auxilia automatiza e aperfei oa o funcionamento de qualquer atividade atrav s da o e Redu o da participa o do homem em atividades rotineiras e repetitivas Aumento da facilidade na coleta e armazenamento de dados e na rapidez de recupera o e manuseio e Redu o do n mero de erros produzidos em opera es de coleta arquivamento e recupera o de dados e de informa es e Aumento de facilidade e flexibilidade na gera o de relat rios entre outros Qual o papel do programador e do analista de sistemas no desenvolvimento de sistemas de informa o Vejamos o Ciclo de Vida de um sistema Para desenvolvimento de qualquer sistema informatizado de boa qualidade h que se passar pelas seguintes fases 1 Fa
58. obre a primeira Procedimento SELE O DIRETA V VET Inteiro TOTELEM In cio Faz a ordena o crescente de TOTELEM elementos de um vetor VET 47 Inteiro MIN J ndices lt Tipo B sico gt AUX Para K de 1 at TOTELEM 1 Fa a MIN K Para J de K 1 at TOTELEM Fa a Se VET J lt VET MIN Ent o MIN J Fim Se Fim Para AUX VET MIN VET MIN VETIK VETIK AUX Fim Para Fim 3 2 M TODO DE INSER O DIRETA Nesse m todo considera se que um elemento do vetor o primeiro est ordenado E insere se os demais considerando os anteriores j ordenados Voltando se ao exemplo dobaralho como se agora as cartas sobre a mesa est o com a face para baixo e cada carta arrumada ordenadamente na m o em rela o as que j est o na m o Este m todo pode ser utilizado com vantagem quando se est lendo elementos deum arquivo para serem posteriormente ordenados Bastam leves modifica es no algoritmo que leremos o arquivo e j o armazenaremos na mem ria ordenadamente Procedimento INSER O DIRETA V VET Inteiro TOTELEM In cio Faz a ordena o de TOTELEM elementos de um vetor VET lt Tipo b sico gt AUX Inteiro K J ndice Para K de 2 at TOTELEM Fa a AUX VETIK J K 1 Enquanto J gt 0 Faca Se AUX lt VETIJ Ent o VET J 1 VET J J J 1 Sen o Abandone Fim Se Fim Enquanto VET J 1 AUX Fim Para Fim 3 3 M TODO DA BOLHA E
59. omo o vetor a ser pesquisado n o est ordenado peloelemento procurado teremos de comparar um a um o ELEMPROC com cada elemento de VET Portanto para um elemento inexistente teremos de fazer TOTELEM testes e para um elementoexistente faremos na m dia TOTELEM 2 testes Procedimento PESQSEQ lt tipo b sico gt VET In cio Inteiro TOTELEM POS J lt Tipo b sico gt ELEMPROC 44 Leia ELEMPROC Executa a Pesquisa da primeira ocorr ncia de ELEMPROC em VET eretorna em POS o ndice onde foi encontrada ou O se n o existe Enquanto Pos 0 e J lt TOTELEM Fa a Se VET J ELEMPROC Ent o POS y Sen o J J 1 Fim Se Fim Enquanto Fim Se precisamos determinar todas as ocorr ncias de um elemento em um vetor o problema sesimplifica pois teremos que obrigatoriamente varrer o vetor at o fim Elimina se do la o o testePOS 0 mas teremos de guardar em um vetor todas as posi es onde o elemento foiencontrado ou o que mais usual processaremos a ocorr ncia dentro do procedimento ap sPOS J O trecho de procedimento abaixo exemplifica Pesquisa Sequencial com Repeti o Trata todas as ocorr ncias de um elemento procurado no vetor In cio POS 0 Indicar ao algoritmo chamador a n o ocorr ncia J 1 Enquanto J lt TOTELEM Faca Se VET J ELEMPROC Ent o POS y Imprime Acumula etc Fim Se J J 1 Fim Enquanto Fim 3 13 PESQUISA SEQUENCIAL ORDENADA Para se utilizar
60. onaria corretamente Usando prot tipos voc pode construir fun es que retornam quaisquer tipos de vari veis bom ressaltar que fun es podem tamb m retornar ponteiros sem qualquer problema Osprot tipos n o s ajudam o compilador Eles ajudam a voc tamb m usando prot tipos ocompilador evita erros n o deixando que o programador use fun es com os par metros erradose com o tipo de retorno errado o que uma grande ajuda 5 Escopo de Vari veis O escopo o conjunto de regras que determinam o uso e a validade de vari veis nasdiversas partes do programa 5 1 Vari veis locais O primeiro tipo de vari veis que veremos s o as vari veis locais Estas s o aquelas que s t m validade dentro do bloco no qual s o declaradas Podemos declarar vari veis dentro dequalquer bloco S para lembrar um bloco come a quando abrimos uma chave e termina quandofechamos a chave At agoras tinhamos visto vari veis locais para fun es completas Mas umcomando para for pode ter vari veis locais e que n o ser o conhecidas fora dali A declara ode vari veis locais a primeira coisa que devemos colocar num bloco A caracter stica que tornaas vari veis locais t o importantes justamente a de serem exclusivas do bloco Podemos terquantos blocos quisermos com uma vari vel local chamada x por exemplo e elas n oapresentar o conflito entre elas A palavra reservada do C auto serve para dizer que uma vari vel local
61. os mesmos A grande maioria das linguagens de programa o que s o utilizadas tem estafacilidade seja com o nome de Subrotinas Subprogramas Procedimentos Fun es M dulos Blocos etc sempre poss vel subdividirse um programa de modo a facilitar o entendimento permitir a reutiliza o evitando se a repeti o de blocos dos programas No nosso pseudo c digodefiniremos dois tipos de m dulos Os procedimentos procedures e as fun es functions Os procedimentos e fun es s o normalmente definidos antes de seremutilizados chamados pelo programa principal Em se tratando de algoritmos entretanto poderemos definir nossos procedimentos e fun es em qualquer parte do algoritmo principal oudepois dele adotando os formatos que se seguem e as normas de documenta o 2 PROCEDIMENTOS Um procedimento uma sequ ncia de comandos precedida por uma sequ ncia dedeclara es que possui um identificador nome do procedimento uma lista de par metrosopcional e pode realizar qualquer tipo de processamento que o programador ou analista deseje As vari veis os tipos e as constantes declaradas dentro de um procedimento s s o acess veisdentro dos comandos do procedimento S o chamadasvari veis locais Em um Algoritmo asvari veis tipos e constantes declaradas logo ap s o identificador do algoritmo s o acess veis evis veis dentro de qualquer procedimento que esteja sendo usado pelo algoritmo S o chamadasvari veis Globais
62. piladas em outro arquivo Como manter a coer ncia Asolu o s o os prot tipos de fun es Prot tipos s o nada mais nada menos que declara es defun es Isto voc declara uma fun o que ir usar O compilador toma ent o conhecimento doformato daquela fun o antes de compil la O c digo correto ser ent o gerado Um prot tipotem o seguinte formato tipo de retorno nome da fun o declara o de par metros onde o tipo de retorno o nome da fun o e a declara o de par metros s o os mesmosque voc pretende usar quando realmente escrever a fun o Repare que os prot tipos t m uman tida semelhan a com as declara es de vari veis Vamos implementar agora um dos exemplosda se o anterior com algumas altera es e com prot tipos e PORTUGOL inteiro Square inteiro a Algoritmo Principal in cio inteiro num imprima Entre com um numero leia num num Square num imprima O seu quadrado vale num retorna 0 fim inteiro Square inteiro a in cio retorna a a fim Hinclude lt stdio h gt int Square int a int main Of int num printf Entre com um numero scanf f amp num num Square num printf ininO seu quadrado vale fn num return 0 int Square int a return a a 39 Observe que a fun o Square est colocada depois do algoritmo principal mas o seuprot tipo est antes Sem isto este programa n o funci
63. principal do computador uma s rie de c lulas para uso da vari vel daquele tipo O nome do vetor aponta para a base das c lulas e o seu in cio d a posi o relativa do elemento referenciado ao primeiro base Nem sempre os tipos b sicos inteiro real caractere e l gico s o suficientes para exprimir estruturas de dados em algoritmos Por exemplo consideremos um problema em que umprofessor com 5 alunos deseja imprimir a nota e a m dia de seus alunos Nesse caso serianecess rio se considerar cinco vari veis reais para contar as notas dos cinco alunos Imagine queo n mero de alunos da turma seja 80 S a declara o destas vari veistornaria impratic vel areda o do algoritmo Da a necessidade de novos tipos serem criados Um destes tipos o vetor ser estudado 27 Os vetores podem ser unidimensionais ou multidimensionais matrizes Um vetorunidimensional como uma lista de notas dos 50 alunos de uma turma tem apenas um ndice Seexistirem por m v rias turmas poderemos utilizar um vetor com dois ndices o n mero da turma eo n mero do aluno da turma Abordaremos este assunto ainda neste cap tulo 4 1 DECLARA O DE VETORES tipo da vari vel nome da vari vel Pi Pf Pi Posi o Inicial do Vetor Pf Posi o Final do Vetor Quando o C v uma declara o como esta ele reserva um espa o na mem riasuficientemente grande para armazenar o n mero de c lulas especificadas em tamanho Porexemplo se declararmo
64. ra descrever o significado das vari veis utilizadas Exemplo C lculo da m dia 2 Escolha nomes de vari veis que sejam significativos isto que traduzam o tipo de informa o a ser armazenada na vari vel Exemplo NOTA MATR CULA 3 Procure alinhar os comandos de acordo com o n vel a que perten am isto destaque a estrutura na qual est o contidos Exemplo B A C Enquanto P 1 Faca P P 1 F X NOTA 2 Fim Enquanto Imprima F NOTA 4 Tenha em mente que seus algoritmos dever o ser lidos e entendidos por outras pessoas e por voc mesmo de tal forma que possam ser corrigidos receber manutenc o e serem modificados 5 Escreva coment rios no momento em que estiver escrevendo o algoritmo Um algoritmo n o documentado um dos piores erros que um programador pode cometer 6 Use coment rios no in cio para explicar o que o algoritmo faz Alguns coment rios seriam Uma descric o do que faz o algoritmo Como utiliz lo Explicac o do significado das vari veis mais importantes Estrutura de dados utilizada Os nomes de quaisquer m todos especiais utilizados Autor Data da escrita 7 Utilize espa os em branco para melhorar a legibilidade Espa os em branco inclusive linhas em branco s o valios ssimos para melhorar a apar ncia de um algoritmo 8 Escolha nomes representativos para suas vari veis 9 Um comando por linha suficiente O algoritmo fica mais leg vel O algo
65. ritmo fica mais f cil de ser depurado 22 Exemplo A 14 2 l 1 enquanto lt 10 fa a X X 1 K K l I 1 fim enquanto O mesmo exemplo com cada comando em uma linha A 14 2 l 1 Enquanto lt 10 Fa a X X 1 K I K l 1 1 Fim Enquanto 10 Utilize par nteses para aumentar a legibilidade e prevenir se contra erros Com poucos par nteses Com par nteses extras A B C C D E A B C C D E A B C A B lt C 11 Toda vez que uma modifica o for feita no algoritmo os coment rios devem ser alterados 6 UMA REFLEX O ANTES DE RESOLVER OS PROBLEMAS Passo1 Leia cuidadosamente a especificac o do problema at o final Passo 2 Caso n o tenha entendido o problema pergunte Passo 3 Levantar e analisar todas as sa das exigidas na especifica o do problema impress es Passo 4 Levantar e analisar todas as entradas citadas na especifica o do problema leituras Passo 5 Verificar se necess rio gerar valores internamente ao algoritmo e levantar as vari veis necess rias e os valores iniciais de cada uma Passo 6 Levantar e analisar todas as transforma es necess rias dadas as entradas e valores gerados internamente para produzir as sa das especificadas Passo 7 Testar cada passo do algoritmo Passo 8 Avalia o geral elaborando o algoritmo e revendo coment rios 7 EXERC CIOS COMPLEMENTARES 1 Fa a um algoritmo que leia quatro idades e calcule a m dia das mesmas 2 Altere
66. rma computacional b b 4ac 2a a r 2y2 3zb x 15 6 COMANDOS DE ENTRADA E SA DA No algoritmo preciso representar a troca de informa es que ocorrer entre o mundo da m quina e o nosso mundo para isso devemos utilizar comandos de entrada e sa da sendo que no n vel de algoritmo esses comandos representam apenas a entrada e a sa da da informa o independe do dispositivo utilizado teclado discos impressora monitor mas sabemos que nas linguagens de programa o essa independ ncia n o existe ou seja nas linguagens de programa o temoscomandos espec ficos para cada tipo de unidade de Entrada Sa da 6 1 Comando de Entrada de Dados Para que possamos obter dados do meio exterior para uso do computador mem ria principal estes t m de vir atrav s dos dispositivos de entrada Da mesma forma asinforma es que s o produzidas t m de ser levadasao meio externo um arquivo uma impressora uma tela etc atrav s de um dispositivo de sa da Para isso utilizamos dois comandos assim definidos Comando Leia scanf no c l do meio externo a pr xima informa o dispon vel para leitura e armazena na s vari vel eis discriminada s ap s o comando entre par nteses Mais tarde aprenderemos como especificar a leitura de um dado que est armazenado em um arquivo e de que arquivo est sendo lido o do Leia vari vel 1 vari vel 2 identificador Ex leia v O valor da vari vel
67. s float exemplo 20 o C ir reservar 4x20 80 bytes Estes bytes s o reservados de maneira cont gua Nalinguagem C a numera o come a sempre em zero Isto significa que no exemplo acima osdados ser o indexados de 0 a 19 Para acess los vamos escrever exemplo 0 exemplo 1 exemplo 19 Mas ningu m o impede de escrever exemplo 30 exemplo 103 Por qu Porque o C n o verifica se o ndice que voc usou est dentro dos limites v lidos Este um cuidado que voc deve tomar Se o programador n o tiver aten o com os limites devalidade para os ndices ele corre o risco de ter vari veis sobrescritas ou de ver o computadortravar Bugs terr veis podem surgir Vamos ver agora um exemplo de utiliza o de vetores Exemplo Real Notas 1 80 O n mero de elementos de um vetor dado por Pf Pi 1 Isto significa que as posi es do vetor s o identificadas a partir de Pi com incrementos unit rios at Pf Pi Pii PR Pf Cada elemento de um vetor tratado como se fosse uma vari vel simples Para refer ncia a umelemento do vetor utiliza se o nome do vetor e a identificac o do elemento ndice entrecolchetes Por exemplo se desejarmos atribuir o valor FMI ao elemento identificado pelo ndice6 do vetor anterior teremos NOME 4 FMI que produzir FMI 1 2 3 4 5 Ex Algoritmo para ler as notas de 3 alunos e imprimir os nomes daqueles cujas no
68. se Estudo de Viabilidade Estudos Iniciais das necessidades de um sistema 2 Fase An lise detalhada do sistema Planejamento com o cliente 3 Fase Projeto preliminar do sistema Planejamento com os analistas de sistemas 4 Fase Projeto detalhado do sistema Algoritmos 5 Fase Codifica o ou implementa o na linguagem escolhida 6 Fase Testes 7 Fase Implementa o opera o e manuten o As tr s primeiras fases normalmente s o de responsabilidade dos Analistas de Sistemas Nas outras podem trabalhar indistintamente dependendo da complexidade e da situa o programadores analistas ou programadores e analistas A constru o dos algoritmos aparece ent o na fase do projeto detalhado do sistema Ap s definidos e criados todos os algoritmos temos de codific los na linguagem escolhida Para essa tarefa o programador dever conhecer a m quina e o compilador a serem utilizados e esse assunto ser coberto nos pr ximos m dulos No desenvolvimento de um sistema quanto mais tarde um erro detectado mais dinheiro etempo se gasta para repar lo Assim a responsabilidade do programador maior na cria o dosalgoritmos do que na sua implementa o pois quando bem projetados n o se perde muito tempo tendo que refaze los reimplant los e retest los assegurando assim um final feliz e no prazo previstopara o projeto Entretanto num projeto o trabalho de desenvolvimento de algoritmos e programaspoder ter de
69. ser todo refeito se houver problemas nas tr sprimeiras fases mostrando assim aimport ncia do trabalho do Analista de Sistemas Pode se encontrar na literatura em inform tica v rias formas de representa o das etapas que comp em o ciclo de vida de um sistema Essas formas de representa o podem variar tanto na quantidade de etapas quanto nas atividades a serem realizadas em cada fase Como pode se observar nesse exemplo de ciclo de vida de um sistema com sete fases apresentado acima os algoritmos fazem parte da quarta etapa do desenvolvimento de um programa Na verdade os algoritmos est o presentes no nosso dia a dia sem que saibamos pois uma receita culin ria as instru es de uso de um equipamento ou as indica es de um instrutor sobre como estacionar um carro por exemplo nada mais s o do que algoritmos ALGORITMO Um Algoritmo uma sequ ncia de instru es ordenadas de forma l gica para a resolu o de uma determinada tarefa ou problema Algoritmo n o computacional cujo objetivo a utiliza o de um telefone p blico In cio 1 Tirar o fone do gancho 2 Ouvir o sinal de linha 3 Introduzir o cart o REPETI O 4 Teclar o n mero desejado 5 Se der o sinal de chamar 5 1 Conversar SELE O gt OZMcomo 5 2 Desligar 5 3 Retirar o cart o 6 Sen o 6 1 Repetir Fim Podemos definir como formas b sicas para definir uma solu
70. ste m todo caracteriza se por efetuar a compara o sucessiva de paressubsequentes de elementos trocando os de posi o se estiverem fora de ordem Dos tr seste o menos eficiente j que cada troca de elementos exige tr s comandos e o n mero detrocas TOTELEM 1 vezes maior que no m todo de sele o direta por exemplo Al mdisso o m todo mais complicado de entender que o de sele o direta Seguese exemplode uma implementa o de algoritmo de pesquisa utilizando se esse m todo Procedimento BOLHACRESCENTE V VET Inteiro TOTELEM In cio Faz o ordenamento de TOTELEM elementos de um valor VET Inteiro P J contador de passadas e ndice lt Tipo b sico gt AUX Para P de 1 at TOTELEM 1 Fa a Para J de 1 at TOTELEM P Fa a Se VET J 1 lt VET J Ent o AUX VET J Troca dos elementos VET J VET J 1 VETIJ 1 AUX Fim Se 48 Fim Para Fim Para Fim Exerc cio Resolvido 1 Classificar um vetor num rico VET de 6 elementos em ordem crescente in cio m todo da bolha inteiro VET 1 6 inteiro AUX auxiliar para troca de elementos BOLHA indicador de mais alto elemento fora de ordem LSUP indicador do tamanho do vetor a ser pesquisado sendo o valor inicial igual a 6 J indicador do elemento do vetor leia VET LSUP 6 enquanto LSUP gt 1 fa a BOLHA 0 para J de 1 at LSUP 1 fa a se VET J gt VET J 1 ent o troca elemento j com j 1
71. tas foremmaior que a m dia Algoritmo Notas Sem Vetor Algoritmo Notas Com Vetor In cio In cio Caracter Nome1 Nome2 Nome3 Caracter Nome 0 2 Real Nota1 Nota2 Nota3 Real Nota 0 2 Leia Nome1 Nota1 Real Soma Leia Nome2 Nota2 Para de O at 2 Fa a Leia Nomes Nota3 Leia NomelI Notall M dia Notal Nota2 Nota3 3 0 Fim Para Se Nota1 gt M dia Ent o C lculo da M dia Imprima Nome1 Soma 0 0 Fim Se Para de O at 2 Fa a Se Nota2 gt M dia Ent o Soma Soma Nota I Imprima Nome2 Fim Para Fim Se M dia Soma 3 0 Se Nota3 gt M dia Ent o Para de O at 2 Fa a Imprima Nome3 Se Nota I gt M dia Ent o 28 Fim Se Imprima NomelI Fim Fim Se Fim Para Fim 1 Para inicializar um vetor com valores diferentes utilizamos um comando construtor NOTA 5 7 9 5 10 0 7 5 que equivale a NOTA 0 5 7 NOTA 2 10 0 etc 1 Dado o vetor CRR de caracteres abaixo CRR U O T R E C A 1 2 3 4 5 6 7 Qual ser a sua configura o depois de executados os comandos Para de O at 3 passo 1 Fa a AUX CRRII CRR I CRR 6 1 1 CRR 6 1 1 AUX Fim Para 2 Dados dois vetores R 9 e S 19 escreva um algoritmo que Leia os vetores R e S eGere ovetor X correspondente uni o dos vetores R e S In cio Inteiro R 0 9 S 0 19 X 0 29 Inteiro Leia R S Para de O at 9 Passo 1 Fa a XI R
72. u mais compara es A sele o pode ser simples ou composta 17 2 1 SELE O SIMPLES Quando a execu o de um comando ou de uma sequ ncia de comandos depender de uma condi o verdadeira e n o h comandos a executar se a condi o for falsa e PORTUGOL Se lt condi o gt Ent o comandos Fim Se ec if num 10 Condi o printf O numero e igual a 10 Comando Onde a CONDI O poder ser tamb m uma express o l gica Exemplo1 leia um n mero inteiro e o imprima se ele for diferente de O ZERO Exemplo2 Se a lt 5 Ent o Imprima o valor de a a Fim Se 2 2 SELE O COMPOSTA Quando se executa um comando ou sequ ncia de comandos se uma condi o verdadeira e se executa um outro comando ou sequ ncia de comandos se a condi o falsa e PORTUGOL Se lt condi o gt Ent o comandos Sen o comandos Fim Se if num 10 Condi o printf O numero e igual a 10 Comando else printf O numero e diferente de 10 Comando 2 3 ANINHAMENTO DE SELE ES A estrutura de Sele o permite o aninhamento ou seja o comando a serexecutado dentro de uma sele o por exemplo no Sen o pode ser outra sele o Outro aninhamento poder ocorrer tamb m com esta ltima sele o e assim por diante Nos casos de v rios aninhamentos subsequentes uma boa identa o ser fundamental para o entendimento do algoritmo quando uti
73. utada resolve um problema determinado Linguagem de m quina a linguagem bin ria composta de zeros e uns utilizada pelos computadores para representar dados programas e informa es E tediosa dif cil de compreender e f cil de gerar erros na programa o Linguagens baixo n vel Linguagem de programa o que compreende as caracter sticas da arquitetura do computador Assim utiliza somente instru es do processador para isso necess rio conhecer os registradores da m quina Nesse sentido as linguagens de baixo n vel est o diretamente relacionadas com a arquitetura do computador Um exemplo a linguagem Assembly que trabalha diretamente com os registradores do processador manipulando dados Linguagens alto n vel Englobam todas as linguagens de programa o que utilizam compiladores ou interpretadores Possuem instru es mais poderosas que as linguagens de baixo n vel facilitando ainda mais o trabalho do programador Ex Pascal Delphi C CA Java PHP etc Linguagens n o procedurais de alto n vel S o linguagens utilizadas para sistemas de gerenciamento de banco de dados planilhas e outros aplicativos que utilizam comandos ainda mais poderosos que as linguagens de alto n vel e por isso s o ainda mais f ceis de programar Ex SQL DBASE Oracle PL SQL XML etc Compilador um programa utilizado para traduzir os programas escritos pelo programador nas linguagens de alto n vel programa font
Download Pdf Manuals
Related Search
Related Contents
技術基準適合表示における要望 Parements en fibro-ciment ` Fー・F2R i 量 セット一 旦 RubiCrawler for Jeep TJ with Stock Transfer Case 取扱説明書 ウォ-タ-ポスト325シリーズ Androstenedione ELISA - DRG Diagnostics GmbH Philips Screen protector DLN1756 Eglo ALEANDRO EVGA 012-P3-2066-KR NVIDIA GeForce GTX 560 Ti 1.25GB graphics card Copyright © All rights reserved.
Failed to retrieve file