Apostila 01 Comando de Decisao

Embed Size (px)

Citation preview

Introduo a Algoritmos em Portugol (Padro Visualg) Parte I

agosto 2010

ndice de ilustraesIlustrao 1: Algoritmo de uso do orelho...........................................................................................1 Ilustrao 2: Algoritmo para fritar ovo.................................................................................................1 Ilustrao 3: Algoritmo de fritar ovos completo...................................................................................1 Ilustrao 4: Tipos de dados.................................................................................................................4 Ilustrao 5: Atributos de uma varivel................................................................................................7 Ilustrao 6: Tringulo de base (B) e altura (H)...................................................................................9 Ilustrao 7: Exemplos de Expresses Comparativas........................................................................10 Ilustrao 8: Exemplo de Expresso Lgica.......................................................................................11 Ilustrao 9: Exemplo de atribuio...................................................................................................12 Ilustrao 10: Exemplo de comando de sada....................................................................................13 Ilustrao 11: Exemplo de comando de entrada.................................................................................13 Ilustrao 12: Exemplo com interao...............................................................................................14 Ilustrao 13: Resoluo do exemplo 1..............................................................................................15 Ilustrao 14: Resoluo do exemplo 2..............................................................................................15 Ilustrao 15: Resoluo do exemplo 2..............................................................................................16 Ilustrao 16: Trecho de um algoritmo seqencial.............................................................................27 Ilustrao 17: Exemplo de Estrutura sequencial ou bloco..................................................................27 Ilustrao 18: Fluxograma da estrutura condicional composta..........................................................28 Ilustrao 19: Cdigo em Portugol de um comando de deciso com execuo de bloco obrigatria. ............................................................................................................................................................28 Ilustrao 20: Fluxograma de uma estrutura condicional simples.....................................................29 Ilustrao 21: Comando de deciso simples, com execuo de bloco opcional.................................29 Ilustrao 22: Exemplo de fluxograma de uma estrutura condicional...............................................29 Ilustrao 23: Fluxograma de uma estrutura condicional escolha um valor de n...............................30 Ilustrao 24: Sintaxe do comando escolha. Na linha 5 temos a representao de vrias repeties do comando seno se..........................................................................................................................30 Ilustrao 25: Exemplo de fluxograma que utiliza Escolha um valor de n........................................31

i

ndice de tabelasTabela 1: Armazenamento da literal banana na memria de um computador..................................5 Tabela 2: Linearizao de expresses.................................................................................................10 Tabela 3: Operadores Aritmticos......................................................................................................10 Tabela 4: Operadores Relacionais......................................................................................................10 Tabela 5: Operadores lgicos.............................................................................................................10 Tabela 6: Operaes com operadores lgicos.....................................................................................11 Tabela 7: Operadores aritmticos e sua ordem de prioridade.............................................................11 Tabela 8: Exemplo de teste de mesa...................................................................................................37

ii

Sumrio1 Algoritmos........................................................................................................................................1 1.1 Algoritmos No Computacionais..............................................................................................1 1.2 Algoritmos Computacionais.....................................................................................................2 2 Tipos de Dados.................................................................................................................................3 2.1 Tipos Numricos.......................................................................................................................3 2.1.1 Tipo Inteiro........................................................................................................................3 2.1.2 Tipo Real...........................................................................................................................3 2.2 Tipo Literal...............................................................................................................................4 2.3 Tipo Lgico...............................................................................................................................4 3 Variveis...........................................................................................................................................5 3.1 Armazenamento de dados em memria....................................................................................5 3.1.1 Armazenamento de dado Literal.......................................................................................5 3.1.2 Armazenamento de Dados do Tipo Lgico.......................................................................6 3.1.3 Armazenamento de Dados do Tipo Inteiro.......................................................................6 3.1.4 Armazenamento de Dados do Tipo Real...........................................................................6 3.2 Conceito de Varivel do computador........................................................................................6 3.3 Quadro de palavras reservadas do Portugol (Visualg)..............................................................7 3.4 Declarao de Variveis em Algoritmos...................................................................................7 4 Expresses........................................................................................................................................9 4.1 Conceito....................................................................................................................................9 4.2 Operadores................................................................................................................................9 4.3 Linearizao de Expresses....................................................................................................10 5 Instrues Primitivas......................................................................................................................12 5.1 Instruo primitiva de atribuio............................................................................................12 5.2 Instruo primitiva de sada de dados.....................................................................................12 5.3 Instruo primitiva de entrada de dados.................................................................................13 5.4 Interao..................................................................................................................................13 5.5 Exemplos de algoritmos resolvidos........................................................................................14 6 Tabela de cdigos ASCII................................................................................................................17 6.1 Caracteres imprimveis...........................................................................................................17 6.2 Caracteres de controle.............................................................................................................17 6.3 Lista de caracteres extendida..................................................................................................18 7 Exerccios.......................................................................................................................................22 8 Controle de Fluxo...........................................................................................................................26 8.1 Bloco de Comandos................................................................................................................26 8.2 Controle de Fluxo...................................................................................................................26 8.3 Bloco de Comandos................................................................................................................26 8.4 Introduo ao Comando Condicional.....................................................................................27 8.5 Estrutura Seqencial...............................................................................................................27 8.6 Comando ou Estruturas de Deciso........................................................................................28 8.7 Conceituando o Comando de Deciso (Estrutura de Deciso)...............................................28 8.8 Estruturas de Deciso do Escolha um valor de n....................................................................30 8.8.1 Estruturas de Deciso do Escolha x valores de n............................................................32 8.8.2 Usando a estrutura Escolha ... Caso FimEscolha.......................................................32 8.8.3 Teste como valores literais..............................................................................................33 8.9 Exerccios Resolvidos.............................................................................................................34 8.10 Testando o algoritmo.............................................................................................................37 8.11 Exerccios propostos:............................................................................................................37 iii

ndice de ExemplosExemplo 8.1: ......................................................................................................................................27 Exemplo 8.2: ......................................................................................................................................27 Exemplo 8.3: ......................................................................................................................................27 Exemplo 8.4: ......................................................................................................................................27 Exemplo 8.5: ......................................................................................................................................28 Exemplo 8.6: ......................................................................................................................................28 Exemplo 8.7: ......................................................................................................................................29 Exemplo 8.8........................................................................................................................................29 Exemplo 8.9........................................................................................................................................30 Exemplo 8.10: ....................................................................................................................................31 Exemplo 8.11......................................................................................................................................32 Exemplo 8.12: Resoluo de 8.11 usando comando de seleo mtipla Escolha..............................32 Exemplo 8.13:Modelo geral do comando de seleo mltipla Escolha.............................................32 Exemplo 8.14: Implementao alternativa de 8.10 e 8.12..................................................................33 Exemplo 8.15: Resoluo do exerccio 01 em portugol.....................................................................34 Exemplo 8.16: Resoluo do exerccio 2...........................................................................................35 Exemplo 8.17: Resoluo do exerccio 3...........................................................................................36 Exemplo 8.18: Resoluo do exerccio 4...........................................................................................36

iv

1 Algoritmos1.1 Algoritmos No ComputacionaisUm algoritmo uma sequncia de instrues finita e ordenada de forma lgica para a resoluo de uma determinada tarefa ou problema. So exemplos de algoritmos instrues de montagem, receitas, manuais de uso, etc. Um algoritmo no a soluo do problema, pois, se assim fosse, cada problema teria um nico algoritmo; um algoritmo uma das solues de um problema. Em geral, existem muitas (seno infinitos) solues satisfatrias de um problema. Um algoritmo no computacional um algoritmo cuja sequncia de passos, a princpio, no pode ser executada por um computador. Abaixo, na Ilustrao 1, apresentado um algoritmo no computacional cujo objetivo usar um telefone pblico. Provavelmente voc executou o algoritmo deste exemplo diversas vezes. O termo algoritmo est muito ligado Cincia da Computao, mas, na realidade, ele pode ser aplicado a qualquer problema cuja soluo possa ser decomposta em um grupo de instrues.

Ilustrao 1: Algoritmo de uso do orelho

Um outro exemplo tpico de algoritmo uma receita culinria, como no exemplo, da Ilustrao 2.1. Colocar um ovo na frigideira 2. Esperar o ovo ficar frito 3. Remover o ovo da frigideiraIlustrao 2: Algoritmo para fritar ovo.

O algoritmo , da Ilustrao 3, no entanto, poderia ser mais detalhado e completo. Uma verso mais aceitvel seria:1. 2. 3. 4. 5. 6. 7. 8. 9. Retirar um ovo da geladeira Colocar a frigideira no fogo Colocar leo Esperar at o leo ficar quente Quebrar o ovo separando a casca Colocar o contedo do ovo na frigideira Esperar um minuto Retirar o ovo da frigideira Apagar o fogo

Ilustrao 3: Algoritmo de fritar ovos completo

1

Essa segunda verso mais completa e detalhada que a anterior. Nela, vrias aes que estavam subentendidas foram explicitadas. No entanto, para que o algoritmo possa ser til, necessrio ainda que quem faz uso dele conhea os termos utilizados nas instrues. O algoritmo do exemplo s ser til para algum que seja fluente na lngua portuguesa e conhea o significado dos verbos Retirar, Colocar, Esperar assim como dos substantivos utilizados no contexto de uma receita culinria. Em outras palavras, preciso que a linguagem utilizada no algoritmo seja conhecida tanto por quem o escreveu quanto por quem vai execut-lo. Para que o algoritmo possa ser executado por uma mquina importante que as instrues sejam corretas e sem ambiguidades. Portanto, a forma especial de linguagem que utilizaremos bem mais restrita que o Portugus e com significados bem definidos para todos os termos utilizados nas instrues. Essa linguagem conhecida como Portugus Estruturado (s vezes tambm chamada de Portugol). O portugus estruturado , na verdade, uma simplificao extrema do Portugus, limitada a umas poucas palavras e estruturas que tm um significado muito bem definido. Ao conjunto de palavras e regras que definem o formato das sentenas vlidas chamamos sintaxe da linguagem. Durante este texto, a sintaxe do Portugus Estruturado ser apresentada progressivamente e a utilizaremos em muitos exerccios de resoluo de problemas. Aprender as palavras e regras que fazem parte dessa sintaxe fundamental; no entanto, no o maior objetivo deste curso. O que realmente exigir um grande esforo por parte do estudante aprender a resolver problemas utilizando a linguagem. Para isso, h somente um caminho: resolver muitos problemas. O processo semelhante ao de tornar-se competente em um jogo qualquer: aprender as regras do jogo (a sintaxe) s o primeiro passo, tornar-se um bom jogador (programador) exige tempo, muito exerccio e dedicao. Embora o Portugus Estruturado seja uma linguagem bastante simplificada, ela possui todos os elementos bsicos e uma estrutura semelhante de uma linguagem tpica para programao de computadores. Alm disso, resolver problemas com portugus estruturado, pode ser uma tarefa to complexa quanto a de escrever um programa em uma linguagem de programao qualquer. Portanto, neste curso, estaremos na verdade procurando desenvolver as habilidades bsicas que sero necessrias para adquirir-se competncia na programao de computadores. Para praticar nossa sintaxe e testar nossos problemas, utilizaremos o software Visualg desenvolvida por Cludio Morgado de Souza. E-mail: [email protected].

1.2 Algoritmos ComputacionaisO computador, a princpio, no executa nada. Para que ele faa uma determinada tarefa -calcular uma folha de pagamento, por exemplo -, necessrio que ele execute um programa. Um programa um conjunto de milhares de instrues que indicam ao computador, passo a passo, o que ele tem que fazer. Logo, um programa nada mais do que um algoritmo computacional descrito em uma linguagem de programao. Uma linguagem de programao contm os comandos que fazem o computador escrever algo na tela, realizar clculos aritmticos, receber uma entrada de dados via teclado, e milhares de outras coisas, mas estes comandos precisam estar em uma ordem lgica. O termo processamento de dados muitas vezes utilizado em conjunto com computadores, pois, em geral, isto o que eles fazem: processar dados. Da podem extrair os dois componentes bsicos de um algoritmo computacional (de agora em diante, esta palavra sempre utilizada no contexto de algoritmos computacionais): dados e cdigo. Dados so os valores (nmeros, nomes, etc.) de que precisamos para resolver o problema, e cdigo so os comandos ou instrues que usaremos para manipular e "processar" os dados.

2

2 Tipos de DadosTodo o trabalho realizado por um computador baseado na manipulao de valores contidos em sua memria. A grosso modo, estes valores podem ser classificadas em dois tipos: As instrues, que comandam o funcionamento da mquina e determinam a maneira como devem ser tratados os dados. As instrues so especficas para cada modelo de computador, pois so funes do tipo particular de processador utilizado em sua implementao. Os valores propriamente ditos, que correspondem poro de dados a serem processadas pelo computador. A maior parte das pessoas no ligadas rea de informtica ignora o potencial dos computadores e imagina que eles so capazes de tratar apenas com dados numricos. Na realidade, a capacidade dos mesmos se estende a outros tipos de dados. O objetivo deste captulo justamente o de classificar os valores de acordo com o tipo de dado contido neles. A classificao apresentada no se aplica a nenhuma linguagem de programao especfica; pelo contrrio, ela sintetiza os padres utilizados na maioria das linguagens. Este padro ser utilizado no Portugol adotado para este curso.

2.1 Tipos NumricosAntes de apresentar formalmente os tipos de dados numricos, conveniente recordar alguns conceitos bsicos relacionados teoria dos nmeros e conjuntos. O conjunto dos nmeros naturais representado por N e dado por: N = {1, 2, 3, 4, ...} Algumas correntes de matemticos tericos convencionam que o nmero 0 est contido neste conjunto; contudo, no convm perder tempo em tais discusses filosficas, uma vez que isto no influenciar de forma alguma este estudo. Na seqncia, encontramos o conjunto dos nmeros inteiros: Z = {..., -3, -2, -1, 0, 1, 2, 3, ...} O conjunto Z contm todos os elementos de N, bem como alguns nmeros que no pertencem a N (os nmeros negativos e o zero). Portanto, dizemos que N est contido em Z, ou ento, que Z contm N. Englobando o conjunto dos nmeros inteiros, existe o conjunto dos nmeros fracionrios (Q), dado pelo universo dos nmeros que podem ser expressos na forma de uma frao, isto , um quociente onde o numerador e o denominador so nmeros inteiros. Mais formalmente: Q = ( p/q | p, q pertencem a Z} Por ltimo, surge o conjunto dos nmeros reais (R), formado pela unio do conjunto dos nmeros fracionrios Q com o conjunto dos nmeros que no podem ser expressos na forma de uma frao (os nmeros irracionais). Ex.: 2 = 1.1412... , PI = 3.14159...

2.1.1

Tipo Inteiro

Os nmeros inteiros so aqueles que no possuem componentes decimais ou fracionrios, podendo ser positivos ou negativos. Os elementos pertencentes aos conjuntos N e Z, apesar de serem representveis na classe dos nmeros reais, so classificados como dados do tipo inteiro, por no possurem parte fracionria. Esta possibilidade interessante por permitir uma economia do espao de memria, como veremos adiante. Por sua vez, os elementos dos conjuntos Q e R, por possurem parte fracionria, no podem ser representados na classe inteira, pertencendo necessariamente aos tipos de dados ditos reais. Como exemplos de nmeros inteiros temos: 24 - nmero inteiro positivo 0 - nmero inteiro -12 - nmero inteiro negativo

2.1.2

Tipo Real

Os dados de tipo real so aqueles que podem possuir componentes decimais ou fracionrios, e podem tambm 3

ser positivos ou negativos. Como dito anteriormente, os elementos dos conjuntos de nmeros fracionrios e reais so necessariamente representados no computador por dados do tipo real. Exemplos de dados do tipo real: 24.01 - nmero real positivo com duas casas decimais 144. - nmero real positivo com zero casas decimais -13.3 - nmero real negativo com uma casa decimal 0.0 - nmero real com uma casa decimal 0. - nmero real com zero casas decimais 0,0 - no deve ser utilizada a virgula para representar um real Observe que h uma diferena entre 0, que um dado do tipo inteiro 0. (ou 0.0) que um dado do tipo real. Portanto, a simples existncia do ponto decimal serve para diferenciar um dado numrico do tipo inteiro de um do tipo real.

2.2 Tipo LiteralO tipo de dados Literal constitudo por uma seqncia de caracteres contendo letras, dgitos e/ou smbolos especiais. Este tipo de dados tambm muitas vezes chamado de alfanumrico, cadeia (ou cordo) de caracteres, ainda, do ingls, string. Usualmente, os dados literais so representados nos algoritmos pela coleo de caracteres, delimitada em seu incio e trmino com o caractere aspas ("). Diz-se que o dado do tipo literal possui um comprimento dado pelo nmero de caracteres nele contido. Exemplos de dados do tipo literal: "QUAL ?" - literal de comprimento 6 " " - literal de comprimento 1 "qUaL ?!$" - literal de comprimento 8 " AbCdefGHi" - literal de comprimento 9 "1-2+3=" - literal de comprimento 6 0 - literal de comprimento 1 Note que, por exemplo, "1.2" representa um dado do tipo Literal de comprimento 3, constitudo pelos caracteres "1", "." e "2", diferindo de 1.2 que um dado do tipo Real.

2.3 Tipo LgicoA existncia deste tipo de dado , de certo modo, um reflexo da maneira como os computadores funcionam. Muitas vezes, estes tipos de dados so chamados de booleanos, devido significativa contribuio de BOOLE rea da lgica matemtica. O tipo de dados lgico usado para representar dois nicos valores lgicos possveis: verdadeiro e falso. comum encontrar-se em outras referncias outros tipos de pares de valores lgicos como sim/no, 1/0, true/false. Nos algoritmos apresentados nesta apostila os valores lgicos sero definidos como: .V. ou verdadeiro (Visualg) - valor lgico verdadeiro .F. ou falso (Visualg) - valor lgico falso A Ilustrao 4 mostra os tipos bsicos de uma linguagem de programao.

Ilustrao 4: Tipos de dados

4

3 VariveisA todo momento durante a execuo de qualquer tipo de programa os computadores esto manipulando dados representadas pelos diferentes tipos descritos no captulo anterior. Para que no se "esquea" das informaes, o computador precisa guard-las em sua memria. Este captulo destinado ao estudo da forma como os computadores armazenam e acessam dados contidos em sua memria.

3.1 Armazenamento de dados em memriaCada um dos diversos tipos de dados apresentados no captulo anterior necessita de uma certa quantidade de memria para armazenar a informao representada por eles. Esta quantidade funo do tipo de dado considerado, do tipo da mquina (computador) e do tipo de linguagem de programao. Por isso, o que ser exposto nos subitens seguintes no deve ser tomado como padro, apenas como uma das forma de representar os dados.

3.1.1

Armazenamento de dado Literal

Devemos sempre ter em mente que um byte consegue representar 256 (2 8) possibilidades diferentes. Uma informao do tipo literal nada mais do que um conjunto de caracteres que podem ser letras, dgitos ou smbolos especiais. A unio de todos os caracteres existentes nos computadores resulta num conjunto com um nmero de elementos menor que 256. Deste resultado surgiu a idia de associar a cada caractere um nmero (cdigo) variando de 0 a 255 (256 possibilidades). No princpio, cada fabricante de computador adotava uma conveno diferente para este cdigo. Mais foi padronizada a fim de facilitar a portabilidade (migrao) de programas entre mquinas diferentes. Esta conveno representada na forma de uma tabela de mapeamento de caracteres em nmeros. O padro mais universalmente aceito o ASCII, cuja tabela mostrada no captulo 6 . Assim, cada clula de memria (byte) pode conter um caractere, representado pelo seu cdigo ASCII. Retornando questo do armazenamento de dados do tipo Literal na memria, deve-se lembrar que um dado deste tipo possui um certo comprimento dado pelo nmero de caracteres nele contido. Portanto, para guardar um dado do tipo literal devemos alocar (reservar) um espao contguo de memria igual ao comprimento do mesmo, destinando um byte para cada caractere da informao. Exemplificando, a informao do tipo literal "banana" possui seis caracteres e, portanto, seis bytes so necessrios para reter a referida informao na memria. A princpio, estes bytes podem estar em qualquer lugar da memria, mas conveniente que estejam juntos (posies contguas). A primeira posio deste conjunto de bytes absolutamente arbitrria e sua escolha geralmente feita automaticamente pelo compilador (isto , pelo programa que traduz um outro escrito em alguma linguagem de programao para outra geral, a linguagem de mquina do computador com que se trabalha). Endereo 0 1 2 3 4 5Tabela 1: Armazenamento da literal banana na memria de um computador.

Dado b(98) a(97) n(110) a(97) n(110) a(97)

A Tabela 1 mostra o caso em que se armazena a literal "banana" no conjunto de seis bytes contguos de memria iniciando pela posio de memria 0. Na verdade, ao invs dos caracteres da Literal, os cdigos correspondentes aos mesmos que so guardados na memria.

5

3.1.2

Armazenamento de Dados do Tipo Lgico

Uma informao do tipo lgico s possui dois valores possveis: .V. ou .F.. Assim, a princpio, um nico bit seria suficiente para armazenar uma informao deste tipo. Contudo, deve-se lembrar que a menor poro de memria que se pode acessar o byte. Portanto, uma dado do tipo lgico armazenado em um byte de memria. De certa forma, se por um lado isto pode ser como um "desperdcio" de memria, por outro simplifica bastante a arquitetura de memria dos computadores (por motivos que fogem ao contexto desta apostila). Alm do mais, isto no to relevante, uma vez que na prtica o nmero de ocorrncias de dados do tipo lgico bastante inferior ao de ocorrncias de dados do tipo literal ou numrico.

3.1.3

Armazenamento de Dados do Tipo Inteiro

O conjunto dos nmeros inteiros (Z) contm um nmero infinito de elementos: Z = { -, ..., -3, -2, -1, 0, 1, 2, 3, ..., +} Obviamente invivel o armazenamento de todos os nmeros deste conjunto num computador. Faz-se necessrio realizar um estudo para que se limite o nmero de elementos representveis deste conjunto. Se apenas um byte fosse utilizado para armazenar os dados do tipo inteiro, existiriam apenas 256 nmeros diferentes neste conjunto: {-127, -126, ..., -2, -1, 0, 1, 2, ..., 127, 128) Esta restrio bastante forte, uma vez que boa parte das aplicaes prticas necessitam de nmeros inteiros maiores que estes. Se forem utilizados dois bytes para armazenar um nmero inteiro, o universo de nmeros representveis cresce para 28 x 28 = 216 = 65.536 possibilidades: {-32767, -32766, ..., -2, -1, 0, 1, 2, ..., 32767, 32768} Este conjunto satisfaz grande maioria das necessidades prticas. Hoje, em geral utilizam-se quatro bytes para representar os nmeros inteiros em computadores. Contudo, restam algumas aplicaes muito especficas em que se precisa de um conjunto ainda maior. Para estes casos, algumas linguagens de programao fornecem mecanismos para trabalhar nmeros inteiros com dezesseis bytes. Nestes casos os dados so ditos inteiros longos ou estendidos.

3.1.4

Armazenamento de Dados do Tipo Real

O conjunto dos nmeros reais (R) contm um nmero infinito de elementos e, pelas mesmas razes que o conjunto dos nmeros inteiros, precisa ser limitado. Para dados deste tipo julgou-se apropriado adotar quatro bytes para sua representao interna nos computadores. So muito comuns situaes como as aplicaes cientficas em que necessria uma maior preciso de clculo, intimamente ligada ao nmero de casas decimais dos dados. Para este caso, em analogia com o que acontece com os dados do tipo inteiro, algumas linguagens de programao decidiram criar dados do tipo real estendido (com dezesseis bytes).

3.2 Conceito de Varivel do computadorComo visto anteriormente, valores correspondentes a diversos tipos de dados so armazenadas na memria dos computadores. Para acessar individualmente cada um destes valores, a princpio, seria necessrio saber o tipo de dado destes (ou seja, o nmero de bytes de memria ocupados) e a posio inicial deste conjunto de bytes na memria. Percebe-se que esta sistemtica de acesso a informaes na memria bastante ilegvel e difcil de se trabalhar. Para contornar esta situao criou-se o conceito de varivel, que uma entidade destinada a guardar uma informao. Basicamente, uma varivel possui trs atributos: um nome, um tipo de dado e um valor armazenado.

6

Nome

Tipo

Valor

VarivelIlustrao 5: Atributos de uma varivel

Toda varivel possui um nome que tem a funo de diferenci-la das demais. Cada linguagem de programao estabelece suas prprias regras de formao de nomes de variveis. Adotaremos nesta apostila as seguintes regras: um nome de varivel deve necessariamente comear com uma letra; um nome de varivel no deve conter nenhum smbolo especial exceto a sublinha nenhuma palavra reservada1 pode ser utilizada como nome de varivel Em um programa no pode declarar duas variveis com o mesmo nome Exemplos: salario 1ano ano1 a casa sal/hora sal_hora _desconto = = = = = = = correto errado(comeou com nmero) correto errado(contm espao em branco) errado(contm o caractere /) correto errado(contm o caractere _)

3.3 Quadro de palavras reservadas do Portugol (Visualg)A seguir temos alguns exemplos de palavras reservadas, estes nome no podem ser utilizados como nomes de variveis em Portugol: aleatorio algoritmo arquivoate caractere caso cronometro debuge ecoenquanto entao escolha escreva escreval faca falso fimalgoritmo fimenquanto fimescolha fimfuncao fimpara fimprocedimento fimrepita fimse funcao inicio int inteiro interrompa leia limpatela logico mod nao ou outrocaso para passo pausa real procedimento repita retorne se senao timervar vetorverdadeiro xou

3.4 Declarao de Variveis em AlgoritmosTodas as variveis utilizadas em algoritmos devem ser definidas antes de serem utilizadas. Isto se faz necessrio para permitir que o compilador reserve um espao na memria para as mesmas. Nos algoritmos apresentados nesta apostila ser adotada a seguinte conveno: todas as variveis utilizadas em algoritmos sero definidas no incio do mesmo, por meio de um comando de uma das formas seguintes: VAR : 1 Conjunto de nomes utilizados pelo projetista da linguagem na gramtica da mesma. Exemplo: algoritmo, inicio, var, etc.

7

VAR : a palavra-chave VAR dever estar presente sempre e ser utilizada uma nica vez na definio de um conjunto de uma ou mais variveis; numa mesma linha podero ser definidas uma ou mais variveis do mesmo tipo. Para tal, deve-se separar os nomes das mesmas por vrgulas; variveis de tipos diferentes devem ser declaradas em linhas diferentes. A forma de utilizao deste comando ficar mais clara quando da utilizao da representao de algoritmos em linguagem estruturada (Portugol). Esta conveno vlida para a representao de algoritmos na forma de Portugol. Em termos de fluxograma, no usual adotar-se qualquer forma de definio de variveis. Exemplo de definio de variveis:VAR

nome : Literal idade : Inteiro salario : Realtem_filhos : Logico

No exemplo acima foram declaradas quatro variveis: a varivel nome, capaz de armazenar dados literais de comprimento indeterminado; a varivel idade, capaz de armazenar um nmero inteiro; a varivel salario, capaz de armazenar um nmero real; a varivel tem_filhos capaz de armazenar uma informao lgica.

8

4 ExpressesNeste captulo veremos conceito e uso de expresses.

4.1 ConceitoO conceito de expresso em termos computacionais est intimamente ligado ao conceito de expresso (ou frmula) matemtica, onde um conjunto de variveis e constantes numricas relacionam-se por meio de operadores aritmticos compondo uma frmula que, uma vez avaliada, resulta num valor. Uma expresso um valor. O valor 5 pode ser obtido avaliando (resolvendo) a expresso +5 ou 2+3.

Ilustrao 6: Tringulo de base (B) e altura (H).

Por exemplo, a frmula de clculo da rea do tringulo da Ilustrao 6 dada por: AREA = 0.5 x B x H Esta frmula utiliza trs variveis: B e H, que contm as dimenses do tringulo, e AREA, onde guardado o valor calculado (resultado da avaliao da expresso). H, tambm, uma constante (0.5) e o operador de multiplicao (x), que aparece duas vezes na expresso. O conceito de expresso aplicado computao assume uma conotao mais ampla: uma expresso uma combinao de variveis, constantes e operadores, e que, uma vez avaliada, resulta num valor. 4.2 Operadores Operadores so elementos funcionais que atuam sobre operandos e produzem um determinado resultado. Por exemplo, a expresso 3 + 2 relaciona dois operandos (os nmeros 3 e 2) por meio do operador (+) que representa a operao de adio. De acordo com o nmero de operandos sobre os quais os operadores atuam, os ltimos podem ser classificados em: binrios, quando atuam sobre dois operandos. Ex.: os operadores das operaes aritmticas bsicas (soma, subtrao, multiplicao e diviso); unrios, quando atuam sobre um nico operando. Ex.: o sinal de (-) na frente de um nmero, cuja funo inverter seu sinal. Outra classificao dos operadores feita considerando-se o tipo de dado de seus operandos e do valor resultante de sua avaliao. Segundo esta classificao, os operadores dividem-se em aritmticos, lgicos e literais. Esta diviso est diretamente relacionada com o tipo de expresso onde aparecem os operadores. Um caso especial o dos operadores relacionais, que permitem comparar pares de operandos de tipos de dados iguais, resultando sempre num valor lgico. Mais adiante sero apresentados os operadores dos diversos tipos acima relacionados. 9

4.3 Linearizao de ExpressesPara a construo de algoritmos que realizam clculo matemticos, todas as expresses aritmticas devem ser linearizadas, ou seja, colocadas em linhas, devendo tambm ser feito o mapeamento dos operadores da aritmtica tradicional para os do Portugus Estruturado. 2/35315 2 [ 53]1 . 5 3

{

}

TradicionalTabela 2: Linearizao de expresses

Computacional

As tabelas seguintes mostram os operadores aritmticos disponveis no Portugus Estruturado. Operadores Aritmticos Portugus Estruturado Adio Subtrao Multiplicao Diviso Diviso Inteira Exponenciao Mdulo (resto da diviso)Tabela 3: Operadores Aritmticos

+ * / \ ^ ou Exp(, ) %

Os operadores relacionais realizam a comparao entre dois operandos ou duas expresses e resultam em valores lgicos (VERDADEIRO ou FALSO). Operadores Relacionais Portugus Estruturado Maior Menor Maior oi igual Menor ou igual Igual DiferenteTabela 4: Operadores Relacionais

> < >= 4 resulta VERDADEIRO 33 resulta FALSOIlustrao 7: Exemplos de Expresses Comparativas

FALSO. Operadores Lgicos Portugus Estruturado Significado Multiplicao Lgica Adio Lgica Negao E OU NAO Resulta VERDADEIRO verdadeiras. se ambas as partes forem

Resulta VERDADEIRO se uma das partes verdadeira. Nega uma afirmao, invertendo o seu valor lgico: se for VERDADEIRO torna-se FALSO, se for FALSO torna-se VERDADEIRO.

Tabela 5: Operadores lgicos

10

A tabela abaixo chamada tabela-verdade mostra os resultados das aplicaes dos operadores lgicos conforme os valores dos operadores envolvidos. A VERDADEIRO FALSO FALSO FALSO FALSO B AEB FALSO FALSO A OU B NAO A NAO B FALSO VERDADEIRO VERDADEIRO VERDADEIRO VERDADEIRO VERDADEIRO FALSO VERDADEIRO FALSO FALSO VERDADEIRO FALSO

VERDADEIRO VERDADEIRO FALSO VERDADEIRO VERDADEIRO

Tabela 6: Operaes com operadores lgicos

De acordo com a necessidade, as expresses podem ser unidas pelos operadores lgicos. (2+5>4) e (33) resulta FALSO, pois VERDADEIRO e FALSO resulta FALSO.Ilustrao 8: Exemplo de Expresso Lgica.

A modularizao a diviso de uma expresso em partes, proporcionando maior compreenso e definindo prioridades para a resoluo da mesma. Como pde ser observado no exemplo anterior, em expresses computacionais utilizamos somente parnteses "()" para modularizao. Na sintaxe do Portugus Estruturado podemos ter parnteses dentro de parnteses, como seriam os colchetes e as chaves na matemtica. Os parnteses indicam quais sub-expresses, dentro de uma expresso, sero executados primeiro. A princpio, a execuo da esquerda para direita, mas alm dos parnteses, existem prioridades entre os operadores envolvidos na expresso. Tais prioridades so mostradas nas tabelas seguintes. Operador + * / ^ + Binrio Binrio Binrio Binrio Binrio Unrio Unrio Tipo Adio Subtrao Multiplicao Diviso Exponenciao Manuteno do sinal Inverso do sinal Operao Prioridade 4 4 3 3 2 1 1

Tabela 7: Operadores aritmticos e sua ordem de prioridade.

Lembrete: O Portugol no possui relacionamento de categorias logo: 2*5>3 ou 5+1 , preco_total) FimAlgoritmoIlustrao 12: Exemplo com interao.

5.5 Exemplos de algoritmos resolvidosExemplo 1 Escreva um algoritmo em portugol para calcular a mdia entre dois nmeros quaisquer. Soluo: A idia principal do algoritmo est centrada na expresso matemtica utilizada no clculo da mdia (M) entre dois nmeros, n1 e n2, dada por: m = (n1 + n2) / 2 Para que o valor de m possa ser calculado pelo algoritmo, necessrio que os valores de n1 e n2 tenham sido fornecidos ao mesmo com antecedncia. Portanto, a primeira etapa do algoritmo consiste da obteno (leitura) dos valores de n1 e n2 e armazenamento dos mesmos em posies distintas de memria (variveis). Na seqncia, o valor da mdia deve ser calculado por meio de uma expresso apropriada e atribudo a uma terceira varivel (m). Por fim, deve-se relatar ao usurio o valor calculado por meio de uma instruo primitiva de sada de dados. Como o algoritmo opera apenas com dados numricos, certamente as variveis utilizadas sero do tipo inteiro ou real. Como se deseja calcular a mdia entre dois nmeros quaisquer, ento as variveis n1 e n2 devem ser capazes de armazenar nmeros com ou sem parte fracionria e, portanto, necessrio que estas sejam do tipo real. Como o valor mdio entre dois nmeros reais um nmero que pode ou no ter parte fracionria, ento a varivel m tambm deve ser do tipo real.

14

Algoritmo Media Var n1, n2, media: real Incio escreva(Informe um valor -> ) leia(n1) escreva(Informe outro valor -> ) leia(n2) media (n1 + n2) / 2 escreva( A media dos valores informados -> , media) FimAlgoritmoIlustrao 13: Resoluo do exemplo 1.

Exemplo 2 Escreva um algoritmo para calcular o valor de y como funo de x, segundo a funo y(x) = 3x + 2, num domnio real. Soluo: Essencialmente o algoritmo usado na soluo deste problema consiste na obteno do valor de x para o qual se deseja calcular a funo, o clculo desta propriamente dito e a mostra do resultado obtido ao usurio: Para que se possa escrever o algoritmo deve-se decidir qual ser o tipo das variveis x e y. Como especificado no enunciado do problema, o algoritmo deve operar num domnio real e, portanto, as variveis x e y devem ser do tipo real.Algoritmo funcao_y Var x,y: real Incio escreva(Algoritmo para calcular y = 3 * x + 2.) escreva(Informe o valor de x -> ) leia(x) y (3 * x + 2) escreva( Para o valor de x informado y vale -> , y, .) FimAlgoritmoIlustrao 14: Resoluo do exemplo 2.

Exemplo 3 Escreva um algoritmo para calcular o consumo mdio de um automvel (medido em Km/l), dado que so conhecidos a distncia total percorrida e o volume de combustvel consumido para percorr-la (medido em litros). Soluo: A principal questo a ser levantada na obteno do algoritmo pedido consiste na formulao da expresso usada para calcular o consumo mdio (cm) a partir da distncia total percorrida (dist) e do volume de combustvel consumido (vol), que dada por: cm=dist/vol Uma vez obtida esta expresso, a formulao do algoritmo desejado consiste em uma simples repetio daqueles apresentados nas questes anteriores: deve-se obter o valor das variveis dist e vol, calcular o consumo pela expresso acima e, finalmente, mostrar ao usurio o valor calculado. Assumindo que as variveis cm, dist e vol so reais podemos escrever o algoritmo.

15

Algoritmo ComsumoMedio Var cm, dist, vol: real Incio escreva(Algoritmo para calcular o consumo mdio!!) escreva(Informe a distancia total percorrida -> ) leia(dist) escreva(Informe o volume de combustvel gasto -> ) leia(vol) cm dist/vol escreva( O consumo mdio com os valores informados _> , y, .) FimAlgoritmoIlustrao 15: Resoluo do exemplo 2.

16

6 Tabela de cdigos ASCIIAmerican Standard Code for Information Interchange (ASCII), que em portugus significa "Cdigo Padro Americano para Intercmbio de Informao") uma codificao de caracteres de sete bits baseada no alfabeto ingls. Os cdigos ASCII representam texto em computadores, equipamento de comunicaes, entre outros dispositivos que trabalham com texto. Estes dispositivos s percebem nmeros, sendo assim um cdigo ASCII uma representao numrica de um carcter, tal como um 'a' ou um 't'. A maioria dos actuais esquemas de codificao modernos, com suporte para muitos caracteres, tiveram origem no cdigo ASCII. ASCII inclu definies para 128 caracteres: 33 caracteres de controlo no imprimveis (a maioria obsoletos) que afectam a forma como o texto processado; 94 so caracteres imprimveis, e o espao considerado invisvel. Actualmente o mtodo de codificao mais comum o UTF-8.

6.1 Caracteres imprimveisBinrio 0010 0000 0010 0001 0010 0010 0010 0011 0010 0100 0010 0101 0010 0110 0010 0111 0010 1000 0010 1001 0010 1010 0010 1011 0010 1100 0010 1101 0010 1110 0010 1111 0011 0000 0011 0001 0011 0010 0011 0011 0011 0100 0011 0101 0011 0110 0011 0111 0011 1000 0011 1001 0011 1010 0011 1011 0011 1100 0011 1101 0011 1110 0011 1111 Decim Hexa al 32 20 33 21 34 22 35 23 36 24 37 25 38 26 39 27 40 28 41 29 42 2A 43 2B 44 2C 45 2D 46 2E 47 2F 48 30 49 31 50 32 51 33 52 34 53 35 54 36 55 37 56 38 57 39 58 3A 59 3B 60 3C 61 3D 62 3E 63 3F Glifo ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? Binrio Decimal Hexa 0100 0000 64 0100 0001 65 0100 0010 66 0100 0011 67 0100 0100 68 0100 0101 69 0100 0110 70 0100 0111 71 0100 1000 72 0100 1001 73 0100 1010 74 0100 1011 75 0100 1100 76 0100 1101 77 0100 1110 78 0100 1111 79 0101 0000 80 0101 0001 81 0101 0010 82 0101 0011 83 0101 0100 84 0101 0101 85 0101 0110 86 0101 0111 87 0101 1000 88 0101 1001 89 0101 1010 90 0101 1011 91 0101 1100 92 0101 1101 93 0101 1110 94 0101 1111 95 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F Glifo @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ Binrio Decimal Hexa 0110 0000 96 0110 0001 97 0110 0010 98 0110 0011 99 0110 0100 100 0110 0101 101 0110 0110 102 0110 0111 103 0110 1000 104 0110 1001 105 0110 1010 106 0110 1011 107 0110 1100 108 0110 1101 109 0110 1110 110 0110 1111 111 0111 0000 112 0111 0001 113 0111 0010 114 0111 0011 115 0111 0100 116 0111 0101 117 0111 0110 118 0111 0111 119 0111 1000 120 0111 1001 121 0111 1010 122 0111 1011 123 0111 1100 124 0111 1101 125 0111 1110 126 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E Glifo ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~

6.2 Caracteres de controleBinrio Decimal Hexa Abreviatura Descrio 0000 0000 00 00 NUL 0000 0001 01 01 SOH 0000 0010 02 02 STX 0000 0011 03 03 ETX Null - Nulo Start of Header - Incio do cabealho Start of Text - Incio do texto End of Text - Fim do texto 17

0000 0100 0000 0101 0000 0110 0000 0111 0000 1000 0000 1001 0000 1010 0000 1011 0000 1100 0000 1101 0000 1110 0000 1111 0001 0000 0001 0001 0001 0010 0001 0011 0001 0100 0001 0101 0001 0110 0001 0111 0001 1000 0001 1001 0001 1010 0001 1011 0001 1100 0001 1101 0001 1110 0001 1111 0111 1111

04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127

04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 7F

EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US DEL

End of Tape - Fim de fita Enquire - Interroga identidade do terminal Acknowledge - Reconhecimento Bell - Campainha Back-space - Espao atrs Horizontal Tabulation - Tabulao horizontal Line-Feed - Alimenta linha Vertical Tabulation - Tabulao vertical Form-Feed - Alimenta formulrio Carriage-Return - (enter) Shift-Out - Sada do shift (passa a usar caracteres de baixo da tecla - minsculas, etc.) Shift-In - Entrada no shift (passa a usar caracteres de cima da tecla: maisculas, caracteres especiais, etc.) Data-Link Escape Device-Control 1 Device-Control 2 Device-Control 3 Device-Control 4 Neg-Acknowledge - No-reconhecimento Synchronous Idle End-of-Transmission Block Cancel End-Of-Medium Substitute Escape File Separator Group Separator Record Separator Unit Separator Delete

6.3 Lista de caracteres extendidaBinrio Decimal Hexa Glifo Nmero HTML Nome HTML 1000 0000 128 80 1000 0001 129 81 1000 0010 130 82 1000 0011 131 83 1000 0100 132 84 1000 0101 133 85 1000 0110 134 86 1000 0111 135 87 1000 1000 136 88 1000 1001 137 89 1000 1010 138 8A 1000 1011 139 8B 1000 1100 140 8C 1000 1101 141 8D 1000 1110 142 8E 1000 1111 143 8F 18

1001 0000 1001 0001 1001 0010 1001 0011 1001 0100 1001 0101 1001 0110 1001 0111 1001 1000 1001 1001 1001 1010 1001 1011 1001 1100 1001 1101 1001 1110 1001 1111 1010 0000 1010 0001 1010 0010 1010 0011 1010 0100 1010 0101 1010 0110 1010 0111 1010 1000 1010 1001 1010 1010 1010 1011 1010 1100 1010 1101 1010 1110 1010 1111 1011 0000 1011 0001 1011 0010 1011 0011 1011 0100 1011 0101 1011 0110 1011 0111 1011 1000 1011 1001 1011 1010 1011 1011 1011 1100 1011 1101 1011 1110 1011 1111 1100 0000 1100 0001

144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193

90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1

19

1100 0010 1100 0011 1100 0100 1100 0101 1100 0110 1100 0111 1100 1000 1100 1001 1100 1010 1100 1011 1100 1100 1100 1101 1100 1110 1100 1111 1101 0000 1101 0001 1101 0010 1101 0011 1101 0100 1101 0101 1101 0110 1101 0111 1101 1000 1101 1001 1101 1010 1101 1011 1101 1100 1101 1101 1101 1110 1101 1111 1110 0000 1110 0001 1110 0010 1110 0011 1110 0100 1110 0101 1110 0110 1110 0111 1110 1000 1110 1001 1110 1010 1110 1011 1110 1100 1110 1101 1110 1110 1110 1111 1111 0000 1111 0001 1111 0010 1111 0011

194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243

C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3

20

1111 0100 1111 0101 1111 0110 1111 0111 1111 1000 1111 1001 1111 1010 1111 1011 1111 1100 1111 1101 1111 1110 1111 1111

244 245 246 247 248 249 250 251 252 253 254 255

F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF

21

7 Exerccios1) Escreva as expresses abaixo na forma na sintaxe do Portugus Estruturado. A.

a

b c

B.

2x 23x x1 x1 2 x

C.

2h

22h 45 4h 3h1 3x

D.

6h2y39

2) Escreva as Expresses da forma convencional. A. a + b + ((34+e*9)/u-89 ^ (1/2)) = B. 12+1/((4*a)/45) ^ (1/2) = C. ((a+x) ^ (2+w)-3*a)/2 = D. (12*x)/(36-9 ^ y) = 3) Resolva as expresses lgicas, determinando se a expresso verdadeira ou falsa: A. 2>3= B. (67)= C. no (2=6 ou 69 e 5+u = 34) ou (5=15/3 e 8>12) = ((u = 29) e 8>12) {onde u = 29} 4) Classifique os contedo das variveis abaixo de acordo com seu tipo, assinalando com N os dados numricos, com L os lgicos, com C os literais. ()0 ( ) FALSO ( ) "VERDADEIRO" ( ) "abc" ( ) -49 ( ) 0.00001 ( ) "Joo" ( ) +342 ( ) VERDADEIRO ( ) 5.7 ( ) 569 ( ) -545 ( ) 1012 ( ) "Lucas" ( ) " 444 " 5) Classifique os dados especificados abaixo de acordo com seu tipo, assinalando com I os dados do tipo inteiro, com R os reais, com L os literais, com B os lgicos (booleanos), e com N aqueles para os quais no possvel definir a priori um tipo de dado. ( ) 0.21 ( ) -0.001 ( ) 3 ( ) 1 ( ) .T. ( ) .V. ( ) V ( ) +3257 ( ) .V ( ) 0. ( ) a ( ) abc ( ) 1% ( ) +3257 ( ) F ( ) Jos ( ) +3257. ( ) C ( ) 0,35 ( ) -0.0 ( ) Maria ( ) .F. ( ) .F. ( ) +36 6) Assinale com um X os nomes de variveis vlidos. ( ( ( ( ( ( ) ) ) ) ) ) abc 3abc a 123a a acd1 ( ( ( ( ( ( ) ) ) ) ) ) -_ad A&a guarda-chuva A123 Aa guarda_chuva ( ( ( ( ( ( ) ) ) ) ) ) ABC DE etc. b316 leia enquanto escreva

7) Assinale com C os identificadores corretos e com I os incorretos. Explique o que est errado nos identificadores incorretos. ( ) valor ( ) Maria ( ) nota ( ) _b248 ( ) km/h ( ) ah! ( ) nota*do*aluno ( ) xyz ( ) a1b2c3 ( ) nome empresa ( ) 3 x 4 ( ) sala_215

22

8) Supondo que as variveis NB, NA, NMAT e SX sejam utilizadas para armazenar a nota do aluno, o nome do aluno, o nmero da matrcula e o sexo, declare-as corretamente, associando o tipo adequado ao dado que ser armazenado.

9.1)Dada a declarao de variveis: VAR A, B, C : inteiro X, Y, Z : real NOME, RUA : literal[20] L1, L2 : lgico Classifique as expresses seguintes de acordo com o tipo de dado do resultado de sua avaliao, em I (inteiro), R (real), L (literal), B (lgico) ou N (quando no for possvel defini-lo): ( ( ( ( ( ( ( ) ) ) ) ) ) ) A + B + C A + B + Z NOME + RUA A B A Y NOME RUA L1 .OU. L2 ( ( ( ( ( ( ( ) ) ) ) ) ) ) RUA NOME A + B / C A + X / Z A + Z / A A B = L1 (A = B) X + Y / Z ( ( ( ( ) ) ) ) X = Z / A L1 ** L2 A + B / L2 X < L1 / RUA

9.2)Para as mesmas variveis declaradas no exerccio 9.1, s quais so dados os valores seguintes: A B C X = = = = 1 2 3 2.0 Y = 10.0 Z = -1.0 L1 = .V. NOME = PEDRO RUA = PEDRINHO L2 = .F.

Determine o resultado da avaliao das expresses abaixo: A + C / B _____________________________________________________________________________ A + B + C _____________________________________________________________________________ C / B / A _____________________________________________________________________________ -X ^ B ________________________________________________________________________________ - (X ^ B) _____________________________________________________________________________ (-X) ^ B ______________________________________________________________________________ NOME + RUA ____________________________________________________________________________ NOME = RUA ____________________________________________________________________________ L1 .OU. L2 ____________________________________________________________________________ (L1 .E.(.NO. L2)) ____________________________________________________________________ (L2 .E. (.NO. L1)) ___________________________________________________________________ (L1 .E. (.NO. L2)) .OU. (L2 .E. (.NO. L1)) __________________________________________ _________________________________________________________________________________________ X Y .E. C = B _________________________________________________________________________ _________________________________________________________________________________________ (C - 3 * A) (X + 2 * Z) _______________________________________________________________ _________________________________________________________________________________________

23

10) Assinalar os comandos de atribuio considerados invlidos: var NOME, COR, TESTE, DIA: caracter SOMA, NUM: inteiro Salario: real X: lgico a. b. c. d. e. ( ( ( ( ( ) ) ) ) ) NOME ") Leia(prof) Escreva("Informe seu salrio -> ") Leia(salario) se(prof="Tcnico") entao sal_reaj < lista-de-comandos-1 > caso < exp 1 > , < exp 2 >, ... , < exp n > < lista-de-comandos-2 > outrocaso < lista-de-comandos-3 > fimescolhaExemplo 8.13:Modelo geral do comando de seleo mltipla Escolha.

sal_reaj -> '); '); '); ');

media = 6) entao Escreva Aprovado senao Escreva Reprovado fimse Fim. %Fim.Exemplo 8.15: Resoluo do exerccio 01 em portugol.

if (media >= 6) disp( ' Aprovado !!!'); else disp( ' Reprovado !!!'); end

34

2. Uma empresa decide dar um aumento de 30% aos funcionrios cujo salrio inferior a 500 reais. Escreva um algoritmo que receba (leia) o salrio de um funcionrio e imprima o valor do salrio reajustado ou uma mensagem caso o funcionrio no tenha direito ao aumento.

PortugolAlgoritmo CalcSal2 Var Real: salario, salreaj Incio Escreva Entre com o salario funcionrio -> Leia salario se salario < 500 salreaj '); Leia (raio) area = pi*(raio*raio); se(raio > 0)entao if(raio>0) area