Apostila Sobre Algoritmos Basicos PUC

Embed Size (px)

Citation preview

Departamento de Informtica Programao de Computadores

Construo de Algoritmos 4 edio julho de 98 Prof Jos Vanni Filho

PROGRAMAO DE COMPUTADORES

CONSTRUO DE ALGORITMOS4 edio Setembro de 95 Prof Jos Vanni Filho

COORDENAO CENTRAL DE EXTENSO

PONTIFCIA UNIVERSIDADE CATLICA COORDENAO CENTRAL DE EXTENSO CURSO DE PROGRAMAO DE COMPUTADORES APOSTILA DE CONSTRUO DE ALGORITMOS

Apostila sobre Algoritmos Bsicos

SOLUO DE PROBLEMAS: ALGORITMOSA arte de programas consiste na arte de organizar e dominar a complexidade Dijkstra

2.1 Problemas e solues Vejamos alguns exemplos de problemas ou tarefas que temos de realizar quotidianamente: Exemplo 1: Aps o banho, um homem deseja se vestir com camisa, cala, cueca, meia, sapato, gravata, cinto e palet. Para realizar esta tarefa teremos que vestir (ou calar) cada uma das peas em uma seqncia que pode variar, mas seguramente....: teremos que pr as meias antes de calar os sapatos; teremos que vestir a cueca antes da cala; teremos que colocar a gravata e o palet aps a camisa; teremos que pr o cinto aps a cala. Solues para esta tarefa poderiam ser: 1 vestir a cueca 2 pr as meias 3 vestir a camisa 4 vestir a cala 5 calar os sapatos 6 colocar o cinto 7 colocar a gravata 8 vestir o palet ou 1 vestir a camisa 2 colocar a gravata 3 vestir a cueca 4 vestir a cala 5 colocar o cinto 6 pr as meias 7 calar os sapatos 8 vestir o palet

Note que em ambas as solues acima aes seqenciais sero realizadas, em ordem diferentes, mas respeitando as condies impostas no pargrafo anterior. Pense voc em uma seqncia de aes para tomar um banho. Exemplo 2: Temos que pregar um prego em um pedao em um pedao de madeira. Para realizar esta tarefa teremos que segurar o prego sobre a madeira e bater com o martelo tantas vezes quantas forem necessrias at que o prego entre por inteiro. Uma soluo para este problema seria: 1 repetir a seguinte seqncia de aes: segurar o prego sobre a madeira com a mo esquerda; bater com o martelo no prego, com a mo direita; verificar se o prego j est todo dentro da madeira.

3

O qual pode se notar nesse exemplo que haver uma repetio de aes at que uma determinada condio esteja satisfeita (o prego esteja dentro da madeira). Pense voc em uma seqncia de aes para subir at um andar de um edifcio que fica dois acima do que voc est, pela escada. Exemplo 3: Em uma seleo de candidatos para um emprego h dois requisitos a serem preenchidos. Voc dever contratar os que preencherem os dois requisitos, anotar os dados de quem preencher apenas um dos requisitos e dispensar os que no preencherem nenhum dos dois requisitos. Poderamos escrever uma soluo para este problema da seguinte forma; 1 chamar o candidato; 2 se preencher os dois requisitos ento contratar; 3 caso contrrio, se preenche um ou outro requisito ento anotar seus dados; 4 seno dispens-lo. O que se pode observar nesta soluo que estamos fazendo uma seleo do candidato que satisfaz as duas condies (requisitos) para o emprego, e tambm uma Segunda seleo (possivelmente para uso futuro) dos candidatos que satisfazem apenas uma das condies. Estas seqncias de passos, que resolvem cada um dos exemplos propostos o que pode ser chamado de Algoritmo para soluo do problema. Elas esto exemplificar as trs formas bsicas de se definir uma soluo para qualquer problema: SEQUNCIA, REPETIO, SELEO Naturalmente que os algoritmos para problemas resolvidos com o auxlio de computadores no sero to simples e nem apresentados com os exemplos mostrados. Veremos isto nos captulos que se seguem, mas a figura abaixo d uma idia da utilidade dos Algoritmos: Fase de resoluo do problema Problema

Passo difcilPrograma

Algoritmo

Fase da implementao do programa

Figura 2.1 A soluo de problema com o uso do computador

2.2 Definies de Algoritmo Um Algoritmo a descrio de um padro de comportamento, expressado em termos de um repertrio bem definido e finito de aes primitivas, as quais damos por certo que podem ser executadas (Guimares e Lages [2]). Um Algoritmo pode ser definido tambm como uma seqncia ordenada, e sem ambigidade, de passos que levam soluo de um dado problema (Tremblay e Bunt [5]). Algoritmo uma seqncia que finita de aes que descrevem como um problema pode ser resolvido [8]. As trs definies acima mostram que um algoritmo, para ser assim definido, precisa: Ter incio e fim

4

Ser descrito em termos de aes no ambguas e bem definidas Que as aes sigam uma seqncia ordenada Exemplos de algoritmos (muitos podem ser retirados do nosso dia a dia): As instrues de operao de um equipamento; Uma receita de bolo ou de algum prato; Instrues de montagem; Partituras de msica; Programa de computador ( um algoritmo representado na linguagem da programao). 2.3 Tcnicas de Representao de Algoritmos Os algoritmos podem ser representados de diversas formas, a saber: Em uma lngua (portugus, ingls): utilizado nas receitas, instrues , etc. Para soluo de problemas em computao apresenta um inconveniente: a ambigidade de alguns termos. Uma linguagem de programao (Pascal, Cobol, C, etc.): utilizada por alguns programadores j experientes, porm apresenta alguns inconvenientes: utiliza apenas as instrues existentes na linguagem especfica e muito detalhada nas preocupaes com a sintaxe, desviando a ateno do programador da soluo do problema em si. Representaes grficas: so bastante recomendveis j que um desenho muitas substitui, com vantagem, mil palavras. Alguns exemplos (ver figura 2.2 abaixo): a) b) c) d) fluxograma (hoje em dia esto caindo em desuso) diagramas de Nassi-Scheniderman (utilizaremos no nosso curso) mtodo de Jackson diagramas de Warnier-Orb) Diagrama de Nassi-Schneiderman

a) Fluxograma

c) Mtodo de Jackson

d) Diagrama de Warnier-Or

5

*

0

0

uma pseudo-linguagem (ou pseudo-cdigo1): a pseudo-linguagem no tem os Figura 2.2 - Mtodos grficos para representao de algoritmos inconvenientes da ambigidade de uma lngua nem os rigores de uma linguagem de programao e, por isso, tambm bastante recomendada. A referncia [2] utiliza o Protugol. Ns definiremos os termos e as estruturas de controle de Nossa PseudoLinguagem, que ser utilizada no curso, tendo como base a linguagem Pascal, modificada e traduzida para o portugus. Podemos batiz-la de Nosso PseudoCdigo. 2.4 Algoritmos Estruturados Quando queremos resolver um problema utilizando um computador, a seqncia de passos que conduzem soluo detalhada at que se chegue a um conjunto de aes primitivas que chamamos de comandos ou instrues, e que podem ser entendidas e executadas pela mquina. Este algoritmo, no maior nvel de detalhamento possvel, quando traduzido para uma linguagem de programao, constituir um programa. Uma das vantagens de programas utilizando um algoritmo que a partir dele o programador pode implement-lo em qualquer linguagem de programao que conhea ou deseje. A programao estruturada ou o desenvolvimento, que simplificam bastante a soluo de problemas grandes e complexos, mas que podem tambm ser utilizadas para os algoritmos mais simples que abordaremos neste curso. Os objetivos dessas tcnicas [3] so: facilitar o desenvolvimento e representao de algoritmos; facilitar a leitura e entendimento dos algoritmos pelas pessoas; antecipar a comprovao de sua correo; facilitar a manuteno (correes e modificaes) dos programas e algoritmos; permitir que o desenvolvimento de algoritmos possa ser empreendido simultaneamente por uma equipe de pessoas. Para isso os algoritmos estruturados so desenvolvidos levando-se em conta trs premissas bsicas: 1) Desenvolver o algoritmo em diferentes fases de detalhamento crescente, do geral para o particular, **** refinamentos sucessivos (desenvolvimento top-down ou de cima para baixo). 2) Decompor o algoritmo em mdulos funcionais, organizados de preferncia em um sistema hierrquico. Esses mdulos trazem vantagens adicionais: para o desenvolvimento, pois cada mdulo poder ser desenvolvido por um programador/analista diferente; para teste, pois testa-se um mdulo (ou seja, uma parte do programa) de cada vez, independentemente; e para reutilizao de um mdulo em outros algoritmos e programas, no futuro. 3) Dentro de cada mdulo utilizar alguns poucos e bem definidos comandos e estruturas de controle. o que veremos a seguir. Um exemplo simples que ilustra os trs itens acima pode ser observado quando se escreve um cabealho de um trabalho ou publicao. Vejamos o cabealho abaixo impresso: CURSO: PROGRAMAO CADEIRA: CONSTRUO DE ALGORITMOS ASSUNTO: SOLUO DE PROBLEMAS: ALGORITMOS1

- Pseudo Cdigo pode ser definido como uma seqncia e/ou um alinhamento de estruturas de controle que definem a lgica de execuo de um mdulo de programa [12]. 6

TPICOS: ALGORITMOS ESTRUTURADOS E vamos assumir que o nosso computador possui um comando primitivo chamado imprima, que s imprime um caracter por vez (ou seja, imprima (a) -> faz com que se imprima a letra a no papel): O algoritmo para escrever este cabealho poderia ser definido, num primeiro nvel de complexidade, como: Algoritmo CABEALHO {imprime a primeira linha} Incio Execute IMPRESSO CADEIRA {imprime a segunda linha} Execute IMPRESSO ASSUNTO {imprime a terceira linha} Execute IMPRESSO TPICO {imprime a quarta linha} Fim CABEALHO Cada um dos quatro comandos Execute do algoritmo CABEALHO d origem a quatro mdulos, em segundo nvel de complexidade:

Mdulo IMPRESSO CURSO Incio Execute ESCREVA PROGRAMAO Fim IMPRESSO CURSO

Mdulo IMPRESSO CADEIRA Incio Execute ESCREVA CADEIRA Imprima (:) Execute ESCREVA CONSTRUO Execute ESCREVA DE Execute ESCREVA ALGORITMOS Fim IMPRESSO CADEIRA

Mdulo IMPRESSO ASSUNTO Incio Execute ESCREVA ASSUNTO Imprima (:) Execute ESCREVA SOLUO Execute ESCREVA DE Execute ESCREVA PROBLEMAS Imprima (:) Execute ESCREVA ALGORITMOS Fim IMPRESSO ASSUNTO

Mdulo IMPRESSO TPICO Incio Execute ESCREVA TPICO Imprima (:) Execute ESCREVA ALGORITMOS Execute ESCREVA ESTRUTURADOS Fim IMPRESSO TPICO

7

Cada um dos comandos Execute, d origem a novos mdulos (poderamos dizer sub-mdulos), em um terceiro nvel de complexidade, que utilizam apenas o comando imprima. Vejamos alguns exemplos:

Mdulo ESCREVA DE Incio Imprima (D) Imprima (E) Fim ECREVA DE

Mdulo ESCREVA CURSO Incio Imprima (C) Imprima (U) Imprima (R) Imprima (S) Imprima (O) Fim ECREVA CURSO Mdulo PROGRAMAO ESCREVA

Mdulo ESCREVA ALGORITMOS Incio Imprima (A) Imprima (L) Imprima (G) Imprima (O) Imprima (R) Imprima (I) Imprima (T) Imprima (M) Imprima (O) Imprima (S) Fim ECREVA ALGORITMOS

Incio Imprima (P) Imprima (R) Imprima (O) Imprima (G) Imprima (R) Imprima (A) Imprima (M) Imprima (A) Imprima () Imprima () Imprima (O) Fim ECREVA PROGRAMAO

Note que com este ltimos mdulos poderemos fazer o mdulo IMPRESSO CURSO. Note tambm que os mdulos ESCREVA ALGORITMOS e ESCREVA DE precisam ser definidos apenas uma vez e podem ser usados mltiplas vezes. Tente voc criar os mdulos bsicos que faltam. Passemos agora a ver os elementos e comandos bsicos que utilizaremos na construo dos nossos algoritmos. 2.5 Nosso Pseudo-Cdigo (NPC): Elementos e Comandos Bsicos Os elementos e estruturas bsicos sero utilizados no nosso Pseudo-Cdigo tm origem e so traduo de termos utilizados em algumas linguagens de programao e seguem o Padro de Notao do Curso de Anlise de Sistemas e Programao de Computador [7]. Para que se facilite ao iniciante um paralelo entre estes e a linguagem Pascal, que ser vista na disciplina LP, ser acrescentado aps a definio do termo no Nosso Pseudo-Cdigo, entre parnteses, o termo equivalente em Pascal, quando existir. 2.5.1 Identificadores, Constantes, Variveis e Tipos Bsicos IDENTIFICADORES conjunto de caracteres (letras, nmeros ou smbolos), normalmente iniciados por uma letra, que identificam ou nomeiam inequivocamente uma constante, varivel, tipo, arquivo, mdulo, algoritmo, etc. Em algumas linguagens de programao existem regras rgidas para a criao de identificadores. Tal no acontece nos algoritmos. Poderemos Ter identificadores de qualquer tamanho, com

8

quaisquer caracteres. A qualidade dos nossos algoritmos ser diretamente proporcional significao dos identificadores, ou seja, pelo nome podemos imaginar o contedo ou para que serve i elemento que tem aquele nome. Exemplos: NUM, NOME, ALUNO, NOTA1, CONTADOR, MIN, MAXNUM, TOTALUNOS, QUANTALUNOS, AUX, MELHORALUNO, PI, DIA_DO_MS, MEDIAL, CABAALHO, PREO, IMPRESSO, CURSO, ULTIMONOME, ANOBISSEXTO, ACHOU. CONSTANTE (constant) Uma constante (Const), como sugere o nome, um identificador que armazena um valor fixo e imutvel, durante a execuo de um algoritmo ou programa. Podemos associ-lo a uma posio de memria (endereo) que tem um contedo fixo. Este contedo poder ser um nmero (real ou inteiro), uma cadeia de caracteres (texto) ou um valor lgico (ser definido abaixo). VARIVEL (variable) Uma varivel (Var) um identificador que, como sugere o nome, possui o contedo varivel durante a execuo de um algoritmo ou programa. Podemos associar uma varivel a uma posio da memria (endereo) e poderemos armazenar (guardar) neste endereo qualquer valor do conjunto de valores de um tipo bsico associado a ela. Uma varivel pode assumir vrios valores diferentes ao longo da execuo do programa, mas, em um determinado momento, possui apenas um valor. Esse tipo bsico poder ser: Inteiro (integer): uma varivel deste tipo poder armazenar qualquer nmero fracionrio (inteiro) positivo ou negativo. Real (real): uma varivel deste tipo poder armazenar um nmero fracionrio ou no fracionrio (real) qualquer. Caracter (char): uma varivel deste tipo poder armazenar um caracter qualquer. Texto ou Cadeia de Caracteres (string): uma varivel deste tipo poder armazenar uma cadeia de caracteres de qualquer tamanho. Caso seja imprescindvel para o entendimento pode-se acrescentar, entre parnteses, a quantidade mxima de caracteres. (Exemplo: texto (10)). Obs.: Os textos devero ser representados sempre entre apstrofes para que no se confundam com os valores numricos. Veja que o inteiro 5, diferente do texto 5. Lgico (boolean): uma varivel deste tipo poder armazenar um valor lgico verdadeiro (1) ou falso (0). DECLARAO DE VARIVEIS E CONSTANTES: consiste na definio dos nomes e valores das constantes e dos nomes e tipos das variveis que sero utilizadas pelos algoritmos, previamente sua utilizao, incluindo comentrio, quando se fizerem necessrios. Na maioria das linguagens de programao, quando o computador est executando um programa e encontra uma referncia a uma varivel ou a uma constante qualquer, se esta no tiver sido previamente definida, ele no saber o que fazer com ela. Da mesma forma, um programador que estiver implementando um algoritmo, em alguma linguagem de programao, ter o seu trabalho simplificado se todas as constantes e variveis referenciadas no algoritmo tiverem sido previamente declaradas. As constantes so declaradas antes das variveis. Vejamos os formatos da declarao e alguns exemplos. Formato de declarao de constantes

IDENTIFICADOR da constante = valor da constanteExemplo de declarao de constantes: MAXNUM = 100 {sugere um nmero mximo} TOTALUNOS = 65 {sugere um total de alunos} ANOBISSEXTO = 3669

ULTIMONOME = ZZZZZ {sugere um sinalizador de ltimo nome} PI = 3,1416 Formato de declarao de variveis: Tipo de varivel: IDENTIFICADOR(ES) da(s) varivel(eis) deste tipo bsico Exemplo de declarao de variveis: Inteiro: NUM, QUANTALUNO {Pode armazenar: -3, 200, 32546} Real: MEDIA, PREO {Pode armazenar: -2, 5, 546, 78, 9, 8} Texto: Nome, NOMEALUNO {Pode armazenar: Maria, PUC} Lgico: ACHOU {Pode armazenar; verdadeiro ou falso} Caracter: TIPOCONSULTA {Pode armazenar: c, t, p} Podemos associar os identificadores a posies de memria do nosso computador, o que feito atravs de uma TABELA DE SMBOLOS, como apresentado abaixo: Podemos associar os identificadores a posies de memria do nosso computador, o que feito atravs de uma tabela de Smbolos, como representado abaixo Tabela de smbolos Identificador Endereo M. P. NUM 000 QUANTALUNO 001 MDIA 010 PREO 011 NOME 100 Representao da M. P. Endereo Contedo 000 -3 001 200 010 9,8 011 546,7 100 MARIA

2.5.2Palavras Reservadas So palavras que tero uso especfico no nosso pseudo-cdigo e que no devero ser usadas como identificadores, para no causar confuso na interpretao. Adicionalmente adotaremos na apostila, seguindo o padro de Notao (7), sublinhar todas as palavras reservadas e usar letras maisculas para os identificadores. Outras convenes para diferenci-los so usadas por alguns autores e podero ser encontradas na literatura especializada. Exemplo: Algoritmo, Programa, Bloco, Procedimento, Inteiro, Real, Texto, Const, Var, Tipo, Incio, Iaia, Imprimas, Grave, Se, Ento, Seno, Enquanto, Repita, Variando, Faa, Caso, At, Vetor, Matriz, Registro, Fim, Execute, Procedimento, Funo, etc.... O significado de cada um desses termos ser visto e entendido nos itens e captulos que se seguem. 2.5.3 Comando de Atribuio

10

Este primeiro comando permite que se fornea ou altere o valor de uma determinada varivel, onde o tipo desse valor seja compatvel ao tipo de varivel na qual est sendo armazenado, de acordo com o especificado na declarao. Formato: IDENTIFICADOR da varivel < -- valor ou expresso ou outra varivel Exemplos: NUM 8 {A varivel NUM recebe o valor 8} NOME Guilherme {A varivel NOME recebe o valor Guilherme} CONT 0 AUXNOME NOME {A varivel AUXNOME recebe o contedo da varivel NOME, ou seja, o valor de Guilherme} ACHOU falso {A varivel ACHOU recebe o valor falso} 2.5.4 Operadores Podem ser Aritmticos, Relacionais e Lgicos. a) Operadores Aritmticos e funes Os operadores Aritmticos so os comumente utilizados em expresses aritmticas. Permitem que se faa operaes com variveis, constantes e valores inteiros ou reais. So eles: + : soma -: subtrao ou menos unitrio *: multiplicao / : diviso ** : potenciao tambm usaremos os operadores: m mod. i (ou resto ): que d o resto da diviso inteira de m por i: e m div. n (ou quociente que d o quociente inteiro da diviso de m por n. Exemplos: 10 mod 4 = 2 20 div 6 = 3 6 mod 2 = 0 As funes mais comuns de matemtica so tambm definidas e vlidas no nosso Pseudo Cdigo. 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), {arredonda um real para inteiro} RAIZ (X), {d a raiz quadrada de X} etc. ... b) operadores relacionais

11

So operadores utilizados com dois operadores que podem ser expressos em valores, constantes ou variveis do tipo inteiro, real ou texto. Do como resultado um valor lgico (verdadeiro ou falso). So eles: = : igual : diferente >: maior < : menor = : maior ou igual Exemplos: NUM 40 verdadeiro (5 + 3) > = 7 verdadeiro NUM (4 1) falso {lembre-se que NUM recebeu 3} NUM = 4 falso c) operadores lgicos So operadores utilizados como operandos tipo lgico (podem ser expresses relacionais ou variveis lgicas) e do resultados de tipo lgico. So eles:

e ("and") ou ("or")

: conjuno :disjuno

no ("not")

: negao

Tabelas Verdades: verdadeiro = V(1), falso = (0)

oper1 F F V V

oper2 F V F V

e Resultado F F F V

ou Resultado F V V V

Exemplos: ACHOU 3) no ACHOU (4> =5) ou (5> =3) (NUM = 4) ou (NUM = 6)

=>falso e verd. (1) = falso (0) =>verdadeiro =>verdadeiro =>falso

12

d) Prioridade entre os Operadores Caso no existam parnteses, dever ser observada a seguinte: Prioridade 0 1 2 3 4 5 6 7 8 Operadores Parnteses e Funes + e - unitrios .. potenciao * e / + e - relacionais no e ou

2.5.5 Entrada e Sada de Dados Para que possamos obter dados do meio exterior para uso do computador (memria principal), estes tm de vir atravs dos dispositivos de entrada (ver item 1.2.1). Da mesma forma, as informaes que so produzidas, tem de ser levadas ao meio externo (um arquivo, um a impressora, uma tela etc.) atravs de um dispositivo de sada. Para isso, utilizamos dois comandos assim definidos: Comando Leia: l, do meio externo, a prxima informao disponvel para leitura e armazena na(s) varivel(eis) discriminada(s) aps o comando, entre parnteses. Mais tarde aprenderemos como especificar a leitura de um dado que est armazenado em um arquivo e de que arquivo est sendo lido o dado. Formato:Leia (IDENTIFICADOR da varivel,...) {Podem ser lidas vrias variveis em um nico comando}

Comando Imprima ou Escreva): Imprime (na tela ou na impressora) o contedo da(s) varivel(eis) especificada(s) aps o comando, entre parnteses. No ser preocupao nossa a formatao de relatrios, mas o comando permite a impresso de texto (entre ), se for necessria para clareza ou especificao do que est sendo impresso. Formatos:Imprima (IDENTIFICADOR da varivel, ...) Imprima ('texto explicativo", IDENTIFICADOR,...)

Exemplos: Leia (NOME) Imprima (NOME) Leia (NOTA1, NOTA2, NOTA3) Imprima (NUM1, NUM2, NUM3) Imprima (Total de alunos , TOT)

13

2.5.6 Estrutura de um Algoritmo em Pseudo-Cdigo e DNS Algoritmo IDENTIFICADOR {do algoritmo} {comentrio descrevendo o que faz o algoritmo} {Declaraes} Const {declarao das constantes e seus valores} IDENTC1 = valor 1 {podero haver comentrios, descrevendo as constantes} IDENTC2 = valor2 ... Var {declarao das variveis e seus tipos) Inteiro: IDENTV1, ... Real : IDENTV2, ... {podero haver comentrios descrevendo as variveis) Lgico : IDENTV3, ... Texto : IDENTV4, ... caracter : IDENTV5, ... ... : ... {veremos outros tipos mais tarde} Pseudo-Cdigo (NPC) Incio: Comando 1; Comando 2; ... comando n; fim IDENTIFICADOR {do algoritmo}

DNS Comando 1 Comando 2 Comando n

Observaes: 1 - As declaraes tm o mesmo formato tanto para o NPC quanto para o DNS, e por isso no foram repetidas acima. 2 - Os comentrios devem estar entre { } (chaves). 2.6 Documentao A documentao dos algoritmos, a nvel profissional, tratada formalmente no apndice. A desta apostila. Entretanto alguns princpios bsicos abaixo mencionados, devero ser usados desde a criao do primeiro algoritmo: ao criar as constantes e variveis, utilizar nomes significativos e comentar, se necessrio for; utilizar endentao (trs espaos como sugesto), para mostrar a estrutura lgica e seqncia de comandos, quando usando o nosso pseudo-cdigo. Com o DNS no preciso; utilizar, opcionalmente, um dicionrio de dados que especifique formalmente o contedo de cada constante e varivel de todo algoritmo ou programa; utilizar parnteses para evitar ambigidade nas expresses;

14

2.7 Exerccios Propostos 1- Indique os valores assumidos por cada uma das variveis dos programas abaixo e indique os valores impressos. Considere que os seguintes valores esto no dispositivo de entrada aguardando leitura: 7, 6, 8. a) Algoritmo SEMSENTIDO1 b) Algoritmo SEMSENTIDO2 {Declaraes:} Const A=3 Var Inteiro: B,C,D Lgico: ACHOU, TEM, COMPROU Inteiro: RESTO, QUOCIENTE Real: MDIA, SOMA Incio B