Você está na página 1de 27

Algoritmos

Autor: Milena Wohlmeister

Algoritmos
Milena Wohlmeister

Introduo
O uso de algoritmos quase to antigo quanto a matemtica. Com o passar do tempo, entretanto, ele foi bastante esquecido pela matemtica. Com o advento das mquinas de calcular e mais tarde os computadores, o uso de algoritmos ressurgiu com grande vigor, como uma forma de indicar o caminho para a soluo dos mais variados problemas. Algoritmo no a soluo do problema, pois, se assim fosse, cada problema teria um nico algoritmo. Algoritmo um caminho para a soluo de um problema, e em geral, os caminhos que levam a uma soluo so muitos. Ao longo dos anos surgiram muitas formas de representar os algoritmos, algumas utilizando linguagens semelhantes s linguagens de programao e outras utilizando formas grficas, como os fluxogramas. Dentre as formas de representao usadas, deu-se uma acentuada preferncia por formas estruturadas, cuja principal vantagem a de facilitar a legibilidade e compreenso dos algoritmos. O aprendizado de algoritmos no se consegue a no ser atravs de muitos exerccios. No se aprende algoritmos: Copiando algoritmos Estudando algoritmos

S se aprende algoritmos: Construindo algoritmos Testando algoritmos

Conceitos Bsicos
Essa seo visa conceituar constante, varivel, operao, expresso e atribuio. Considerese a frmula matemtica simples do clculo do volume de uma esfera: V = 4 R3 3

onde se encontram: 1- valores que podem ser classificados como: a) valores constantes, invariantes em todas as aplicaes da frmula, no caso, os valores 4, 3 e , aos quais denomina-se constantes. b) valores a serem substitudos na frmula, em cada aplicao. A representao destes valores, usualmente, feita atravs de letras que recebem o nome de variveis e tornam a frmula genrica, possvel de ser aplicada para resolver uma certa classe de problemas e no apenas um problema especfico. 2- Operaes a serem feitas sobre determinados operandos (valores), para a obteno da soluo do problema. Na frmula do volume da esfera, esto representadas as operaes de diviso, multiplicao e potenciao, feitas sobre os operandos, 4, 3, e R, numa seqncia pr-determinada, mas nem sempre rigorosa, devido s leis matemticas. Sob este aspecto, uma frmula matemtica simplesmente uma descrio de um conjunto de aes que devem ser executadas sobre um conjunto de objetos, sendo estes, constantes ou variveis. Existe uma outra relao importante entre objeto e operao, no sentido de que, certas operaes somente podem ser executadas sobre determinados objetos. Por exemplo: a raiz quadrada de um nmero qualquer somente pode ser feita se o nmero for real e positivo; o clculo do fatorial de um nmero somente pode ser feito se o nmero for inteiro e positivo; a determinao do arco seno trigonomtrico somente pode ser feita se o valor estiver no intervalo [ -1 , 1 ].

Nos exemplos apresentados, pode-se notar dois tipos de limitaes: 1- limitao de classe de valores: inteiros, reais, lgicos, literais; 2- limitaes de intervalo, pois algumas operaes no atuam sobre todo conjunto, mas somente sobre parte dele. Os tipos de dados (valores) existentes podem, ento, ser inteiros, reais, caracteres (ou literais) e lgicos (ou booleanos). Esses tipos bsicos so bem definidos e podem ser combinados de modo a formar tipos de dados estruturados, incluindo vetores, matrizes, registros e arquivos. Uma constante , ento, um objeto invariante em cada execuo de uma expresso, enquanto varivel um objeto que representa um valor que pode ser alterado a cada execuo da expresso em que estiver inserida.

As variveis podem ser visualizadas como receptculos de valores. Cada receptculo identificado atravs de um nome e somente pode receber valores de um determinado tipo. Pode-se comparar uma varivel tambm como sendo uma caixa identificada por um nome colocado na tampa e na qual pode ser armazenado um valor. Enquanto o nome sempre permanece o mesmo, o contedo da caixa pode ser substitudo. Assim, cada vez que a frmula do clculo do volume de uma esfera for utilizada, ocorrer o seguinte: a varivel R dever receber um valor antes da execuo dos clculos; a varivel V receber um valor aps a execuo dos clculos; o valor da varivel R ser utilizado no clculo do valor de V; a cada nova utilizao da frmula, o valor de R poder ser alterado e conseqentemente o valor de V tambm o ser.

Uma vez conceituados constante e varivel pode-se analisar as combinaes deles na construo de expresses. Expresses, no sentido matemtico, so representaes simblicas de seqncias de operaes a serem feitas sobre determinados operandos, visando a obteno de um resultado. As operaes representadas nas expresses devem ser vlidas para os operandos especificados para que seja possvel a obteno de um resultado. O conjunto de operandos e operaes que compem uma expresso determina o tipo da expresso e define o tipo de resultado a ser obtido. As expresses mais freqentemente usadas na soluo de problemas enquadram-se em uma das seguintes categorias: expresses aritmticas: produzem como resultado um nmero; expresses literais: produzem como resultado um texto; expresses lgicas: produzem como resultado um valor lgico.

Para cada uma das categorias acima, pode ser definido um conjunto de operaes possveis. Por exemplo, as expresses aritmticas podem utilizar as operaes de adio, subtrao, multiplicao, diviso, entre outras. As expresses literais podem utilizar a operao de concatenao, unindo dois conjuntos de caracteres. Nesse primeiro instante, iro ser estudadas as expresses aritmticas, compostas por: operandos: constantes e variveis; operadores: que indicam as operaes a serem feitas; ordem de avaliao: smbolos que indicam alteraes na ordem usual de avaliao. Por exemplo, o uso de parnteses.

Na resoluo de uma expresso aritmtica deve-se seguir uma ordem pr-definida dependente dos operadores que aparecem nesta expresso. A prioridade dos operadores bsicos a que segue: 4

12345-

potenciao, radiciao e operaes unrias multiplicao e diviso soma e subtrao parnteses podem alterar esta ordem segue-se da esquerda para a direita em caso de indeterminao (mais de uma operao com a mesma prioridade)

A ltima operao realizada em uma expresso se chama atribuio de valor, que o ato de armazenar ou escrever um valor em uma varivel. A atribuio compreende uma ao de substituio do contedo de uma varivel cujo efeito : aps a atribuio, a varivel passa a representar um novo valor, sendo perdido o seu valor anterior. Em algoritmos, existem vrias maneiras de representar uma atribuio de valor, como:
variavel = valor variavel := valor variavel <- valor

Ser utilizada a segunda forma para representar uma atribuio. Isso ser feito para diferenciar o operador de atribuio do operador de igualdade, muito utilizado em operaes lgicas. Por exemplo, se N = 5 fosse considerado uma atribuio, ento o valor 5 seria atribudo varivel N. Se N = 5 fosse considerada uma operao de igualdade, ento o resultado seria verdadeiro se N fosse igual a 5 e falso se N fosse diferente de 5. Considerando as atribuies:
A := B B := C

nesta ordem e supondo que A tenha valor 5, B tenha valor 2 e C tenha valor 10, tem-se como resultado final A com valor 2 e B com valor 10. Se for alterada apenas a ordem das duas atribuies para:
B := C A := B

tem-se como resultado final A com valor 10 e B com valor 10. Outro exemplo mostra que se o A tiver valor 2 e B valor 4 e se forem intercambiados os valores das variveis A e B no possvel escrever simplesmente:
A := B B := C

Cujo resultado seria A com valor 4 e B com valor 4 tambm. Nesse caso tem-se que utilizar uma varivel auxiliar, assim:
C := A

A := B B := C

Algoritmos Puramente Seqenciais


Essa seo visa conceituar algoritmo e caracterizar algoritmos puramente seqenciais, alm de apresentar a formalizao da linguagem algortmica. Em termos conceituais, algoritmo um conjunto finito de regras, bem definidas, para a soluo de um problema em um tempo finito. Considerando o seguinte problema: dados trs valores no nulos a, b, c, determinar a sua mdia aritmtica, harmnica e geomtrica. As tarefas a serem executadas para a soluo deste problema podem ser descritas assim: 1- obter os valores de a, b, c 2- calcular a mdia aritmtica pela frmula: mdia aritmtica = a + b + c 3 3- calcular a mdia harmnica pela frmula: mdia harmnica = 3 1+1+1 a b c

4- calcular a mdia geomtrica pela frmula: mdia geomtrica = 3 a x b x c 5- comunicar os resultados obtidos: mdia aritmtica, mdia harmnica e mdia geomtrica 6- terminar A seqncia de tarefas apresentada, especificada passo a passo, um algoritmo, pois um conjunto finito de regras que podem ser consideradas bem definidas e cuja execuo produz a soluo do problema proposto, aps um tempo finito. importante que, num algoritmo, cada passo esteja precisamente definido, no deixando nenhuma margem a ambigidades. A correo uma qualidade diferente das demais que podem ser consideradas em relao a um algoritmo. Enquanto as outras qualidades so relativas, isto , podem ser mais importantes em alguns algoritmos e menos em outros, a correo condio para que o algoritmo tenha sentido de existncia. As outras qualidades importantes em um algoritmo, alm da correo, so: efetividade: o algoritmo deve fazer aquilo a que se prope em tempo hbil; eficincia e clareza: o algoritmo deve fazer aquilo a que se prope da forma mais econmica possvel, tanto do ponto de vista da mquina, quanto do usurio; generalidade: se possvel, o algoritmo deve prever a necessidade de futuras adaptaes e estar preparado para aceit-las.

Na prtica, no importante se ter apenas um algoritmo, mas sim um bom algoritmo. Geralmente existe mais de uma seqncia de operaes que levam execuo da mesma tarefa, isto , existem vrios algoritmos para um mesmo problema. Aps encontrada uma 6

soluo, pode ser efetuado um refinamento no algoritmo, na tentativa de se alcanar as qualidades citadas anteriormente. No exemplo das mdias foi utilizada uma linguagem algortmica informal, onde no existem regras rgidas na construo do algoritmo. Para os algoritmos desenvolvidos a partir de agora, ser utilizada uma linguagem algortmica estruturada, baseada na linguagem Pascal. O algoritmo em si se constitui basicamente em: entrada de dados processamento sada de dados

Para a entrada de dados ser utilizada a instruo: ler(lista de variveis); Exemplo: ler(a,b,c); Para a sada de dados ser utilizada a instruo: mostre(lista de variveis/texto qualquer);
Exemplo: mostre(Alo mundo!); mostre(O resultado final , soma); mostre(A mdia de , a , , , b , e , c , , media);

O texto mostrado nos exemplos conhecido como string, e assim que ser chamado daqui pra diante. Um string, obrigatoriamente, deve estar dentro de apstrofes. Percebe-se que possvel intercalar strings com variveis na mostragem. Tanto a instruo ler quanto o mostre tem ao seu final um ponto-e-vrgula. Isso tambm obrigatrio em todo final de instruo. A utilizao de maisculas ou minsculas na construo do algoritmo fica por conta de quem vai constru-lo. Como j foi comentado, o operador das atribuies ser o :=, mas as expresses aritmticas tem que estar dispostas todas na mesma linha, usando os operadores comumente utilizados em computadores. No exemplo das mdias, as expresses ficariam assim: a+b+c 3 3 1+1+1 a b c
ma := (a + b + c ) / 3;

mh := 3 / (1/a + 1/b + 1/c );

axbxc

mg := (a * b * c) ^ (1 / 3);

Os operadores so (em ordem de prioridade) : 1. potenciao Ex.: 2^3 e radiciao Ex.: 12 ^(1/2) 2. multiplicao * e diviso / 3. adio + e subtrao Os tipos de dados utilizados em variveis so :
inteiro: variveis que real: variveis que
2

12

armazenam valores inteiros; armazenam valores reais; caracter: variveis que armazenam apenas uma letra, nmero ou smbolo; string: variveis que armazenam um conjunto de caracteres; lgico: variveis que armazenam verdadeiro ou falso.

Cada varivel vai ter um nome identificador que deve ser iniciado por letras ou o caracter underline ( _ ). O resto formado por letras, dgitos e caracter underline. No permitida a utilizao de espaos para a formao do identificador e nem acentuao. Exemplo de identificadores vlidos: valortotal, soma_item1. muito importante que se tenha cuidado com a sintaxe do algoritmo, ou seja, a grafia tem que estar rigorosamente dentro das especificaes. Em termos estruturais, o algoritmo possui quatro reas, na ordem: 1. 2. 3. 4. rea para identificao; rea para declaraes; rea para subalgoritmos; rea do algoritmo em si.

A terceira rea somente ser utilizada mais adiante. A rea para identificao formada pela palavra-chave programa, um espao em branco, um identificador, que segue as mesmas regras das variveis, mas pode ter no mximo dez caracteres, e um ponto-e-vrgula. Exemplo:
programa medias;

A rea para declaraes o espao destinado para declarar as variveis que sero utilizadas no algoritmo. Todas as variveis devem ser declaradas, obrigatoriamente. Sempre comea pela palavra-chave var. Exemplo:
var a,b,c: inteiro; soma: real;

letra: caracter; nome1, nome2: string; x: lgico;

A rea do algoritmo comea com a palavra-chave incio e termina com a palavra-chave fim com um ponto final. Dentro dessa rea vo estar as entradas, o processamento e as sadas do algoritmo, ou seja, o algoritmo em si. Exemplo:
incio <entradas> <processamento> <sadas> fim.

Percebe-se, nos exemplos, um pequeno avano para a direita em alguns momentos. Isso se chama endentao do algoritmo e, apesar de no influenciar na sua execuo, muito utilizada para sua organizao e entendimento. Mais adiante, quando os algoritmos tomarem dimenses maiores e for necessrio mais do que um nvel de endentao, se notar mais claramente a sua importncia. Com o que foi visto at aqui, possvel construir algoritmos puramente seqenciais, onde a execuo se d em ordem ascendente s instrues, de cima para baixo. Como exemplo, o algoritmo abaixo mostra a resoluo do problema das mdias apresentada anteriormente.
programa medias; var a,b,c,ma,mh,mg: real; inicio ler(a,b,c); ma := (a + b + c ) / 3; mh := 3 / (1/a + 1/b + 1/c ); mg := (a * b * c) ^ (1 / 3); mostre(Media Aritmetica: , ma); mostre(Media Harmonica: , mh); mostre(Media Geometrica: , mg); fim.

Percebe-se a existncia das trs reas bem definidas, com a identificao do algoritmo, a declarao das variveis utilizadas e do algoritmo em si, que executado seqencialmente.

Exerccios
1. Escrever um algoritmo que l o nmero de um funcionrio, seu nmero de horas trabalhadas, o valor que recebe por hora, e o nmero de filhos com idade menor do que 14 anos. Calcular e mostrar o salrio deste funcionrio. 2. Escrever um algoritmo que calcula e mostra o fatorial de 5. Um fatorial caracterizado pela frmula n! => n x (n-1) x (n-2) x ... x 1. 3. Escrever um algoritmo que l 3 valores a, b, c e calcula e mostra: 9

a) A rea do tringulo que tem a por base e b por altura. Frmula: (b x h)


2

b) A rea do crculo de raio c. Frmula: R2 c) A rea do trapzio que tem a e b por bases e c por altura. Frmula: (B + b).h
2

d) A rea do quadrado de lado b. Frmula: lado2 e) A rea do retngulo de lados a e b. Frmula: lado1 x lado2 f) A rea da superfcie de um cubo que tem c por aresta. Frmula: 6a2 4. Escrever um algoritmo que l p, u e r respectivamente o 1o termo de uma progresso aritmtica, o ltimo termo da progresso e a razo desta progresso. Determinar a soma dos termos desta progresso aritmtica e mostrar.
n = an a1 + r r Sn = (a1 + an) . n 2

5. Escrever um algoritmo que l o cdigo da pea 1, o nmero de peas 1, o valor unitrio da pea 1, o cdigo da pea2, o nmero de peas 2, o valor unitrio da pea 2 e a percentagem do IPI a ser acrescentado e calcula e mostra o valor total a ser pago. 6. Um avio em linha reta, a uma altitude a passa sobre um ponto p num instante t = 0. Se a velocidade v, calcular a distncia d do avio ao ponto p no tempo t = 30. Escrever um algoritmo que l v e a e calcula e mostra a distncia ao ponto p aps 30 segundos. 0 vt 30 2 2
d = a + vt

a p

7. Escrever um algoritmo para calcular e mostrar os sucessivos valores de E usando a srie abaixo e considerando primeiro 3 termos, depois 4 termos e finalmente 5 termos.
E = 1 + 1 + 1 + 1 + 1 1! 2! 3! 4!

10

8. Escrever um algoritmo que l o valor de um emprstimo e calcule e mostre o valor de cada amortizao, considerando 24 amortizaes a uma taxa de 48%.
valor da amortizao = valor do emprestimo x taxa no de amortizaes

9. Escrever um algoritmo que l um valor monetrio e calcula qual o menor nmero possvel de notas de 5000, 1000, 500, 200, 100, 50, 10, 5 e 1 em que o valor lido pode ser decomposto. Mostrar o valor lido e a relao de notas necessrias. Dica: Utilizar a instruo truncar, que serve para pegar apenas a parte inteira de uma diviso. Ex.: truncar(8 / 3) produz o resultado 2 . 10. Escrever um algoritmo que l o nmero de um vendedor, o seu salrio-fixo, o total de vendas por ele efetuadas e o percentual que ganha sobre o total de vendas. Calcular o salrio total do vendedor. Mostrar o nmero do vendedor e o salrio total. 11. Escrever um algoritmo que l 3 valores a, b, c que so lados de um tringulo e calcule e mostre a rea deste tringulo.
Area = s(s a)(s b)(s c) 2

onde s o semi-permetro s = a + b + c 12. Um sistema de equaes lineares do tipo:


ax + by = c dx + ey = f

pode ser resolvido segundo mostrado abaixo:


x = ce bf ae bd

y = af cd ae bd

Escrever um algoritmo que l os coeficientes a, b, c, d, e, f e calcula e mostra os valores de x e y. 13. O custo ao consumidor, de um carro novo, a soma do custo de fbrica com a percentagem do distribuidor e dos impostos (aplicados ao custo de fbrica). Supondo que a percentagem do distribuidor seja de 28% e os impostos de 45%, escrever um algoritmo para ler o custo de fbrica de um carro e mostrar o custo ao consumidor. 14. Uma revendedora de carros usados paga a seus funcionrios vendedores, um salrio fixo por ms, mais uma comisso tambm fixa para cada carro vendido e mais 5% do valor das vendas por ele efetuadas. Escrever um algoritmo que l o nmero do vendedor, o nmero de carros por ele vendidos, o valor total de suas vendas, o salrio fixo e o valor que recebe por carro vendido e calcula e o salrio mensal do vendedor, mostrando-o juntamente o seu nmero de identificao. 15. Considerando que o aumento dos funcionrios de 80% do INPC e mais um percentual de produtividade discutido com a empresa, escrever um algoritmo que l 11

o nmero do funcionrio, seu salrio atual, o ndice INPC e o ndice de produtividade conquistado e mostra o nmero do funcionrio, seu aumento e o valor de seu novo salrio. 16. Escrever um algoritmo que l 3 valores a, b, c. Encontre o maior dos 3 valores e o mostre com a mensagem: o maior
Maior entre a e b = a + b + |a b| 2 Dica: utilize a instruo absoluto para descobrir Ex.: absoluto(a b)

o valor absoluto.

Algoritmos com Seleo


Essa seo visa conceituar algoritmos com seleo e expresses lgicas, bem como explicitar as instrues existentes na linguagem algortmica. Existem algoritmos com situaes resolvidas atravs de passos cuja execuo subordinada a uma condio. Tais algoritmos so denominados algoritmos com seleo. A condio aqui referenciada denominada expresso lgica ou expresso booleana. A lgebra booleana a que regulamenta as expresses lgicas, onde no existem outros estados possveis alm do verdadeiro e falso. As expresses lgicas so construdas baseadas em dois tipos de operadores, os operadores relacionais, responsveis pelas proposies realizadas; e os operadores lgicos, responsveis pela ligao de duas ou mais proposies. Operadores Relacionais Operador Operao = Igual <> Diferente < Menor > Maior <= Menor ou igual >= Maior ou igual Operadores Lgicos Operador Operao no no booleano e e booleano ou ou booleano Duas so as instrues que podem ser utilizadas. A primeira delas:

12

se <expresso lgica> ento <instruo>; Exemplo:


se (a > 2) ento mostre(O valor maior que 2);

A instruo do ento pode estar na linha seguinte, endentada. Exemplo:


se (a > 0) e (a < 2) ento mostre(O valor maior que 0 e menor que 2);

Nos exemplos, o string apenas ser mostrado se a expresso for verdadeira. Quando existe mais do que uma instruo a ser executada, necessrio inserir as instrues no que se chama bloco de instrues. Um bloco de instrues sempre possui um incio e um fim; Por exemplo:
se (a > 2) ento incio mostre(O valor maior que 2. O novo valor 4); a := 4; fim;

Quando existem instrues a serem executadas quando a expresso for falsa, deve-se utilizar o seno, assim:
se (a > 2) ento mostre(O valor maior que 2) seno mostre(O valor menor ou igual a 2);

Na linguagem algortmica que est sendo utilizada, a instruo anterior ao seno no pode ter ponto-e-vrgula. No caso de se usar um bloco de instrues, o fim fica sem ponto-evrgula, assim:
se (a > 2) ento incio mostre(O valor maior que 2. O novo valor 4); a := 4; fim seno inicio mostre(O valor menor ou igual a 2. O novo valor 5); a := 5; fim;

No exemplo abaixo, os resultados possveis so:


se (a > 0) e (b < 0) ento ... V V V V F F F F V

13

Se for mudado o operador lgico:


se (a > 0) ou (b < 0) ento ... V V V V V F F V V F F F

Pode-se ter expresses muito maiores, cujo resultado final vai ser verdadeiro ou falso, dependendo dos valores existentes nas variveis envolvidas na expresso inteira, como:
se no(((a > b) e (b > c)) ou ((c > d) e (d > f))) ento ...

Em algumas situaes, pode-se utilizar a instruo caso no lugar do se. caso <varivel> faa <valor1 : instruo1>; <valor2 : instruo2>; <valorn : instruon>; seno <instruo>; fimcaso; Assim, as instrues abaixo:
se (a = 1) ento mostre(um); se (a = 2) ento mostre(dois); se (a = 3) ento mostre(trs); se (a = 4) ento mostre(quatro); se (a < 1) ou (a > 4) ento mostre(nenhum);

Podem ser substitudas por:


caso a faa 1: mostre(um); 2: mostre(dois); 3: mostre(trs); 4: mostre(quatro); seno mostre(nenhum); fimcaso;

Exerccios
1. Escrever um algoritmo que l 3 valores a, b, c e calcula e mostra a mdia ponderada com peso 5 para o maior dos trs valores e 2.5 para os outros 2. 2. Escrever um algoritmo que l 3 valores a, b, c e verifica se eles formam ou no um tringulo. Supor que os valores lidos so inteiros e positivos. Caso os valores

14

formarem um tringulo, calcular e mostrar a rea deste tringulo. Se no formarem, mostrar os valores lidos e a mensagem no formam tringulo. 3. Escrever um algoritmo que l 2 valores a, b e os mostra com a mensagem so mltiplos ou no so mltiplos, conforme o caso. 4. Escrever um algoritmo que l o nmero de um vendedor de uma empresa, seu salrio fixo e o total de vendas por ele efetuadas. Cada vendedor recebe um salrio fixo, mais uma comisso proporcional s vendas por ele efetuadas.A comisso de 3% sobre o total de vendas at 1000 reais e 5% sobre o que ultrapassar esse valor. Mostrar o nmero do vendedor, o total de suas vendas, seu salrio fixo e seu salrio total. 5. Escrever um algoritmo que l um conjunto de 4 valores i, a, b, c, onde i um valor inteiro e a, b, c so quaisquer valores reais. A seguir: Se i = 1 mostrar os 3 valores a, b, c em ordem crescente. Se i = 2 mostrar os 3 valores a, b, c em ordem decrescente. Se i = 3 mostrar os 3 valores de forma que o maior valor fique entre os outros dois.

Subalgoritmos e Recursividade
Muitos problemas de soluo mais ou menos complexa podem ser divididos, sucessivamente, em problemas menores e de lgica mais fcil. Em vez de se escrever um algoritmo grande, se escreve vrios algoritmos menores, os quais, conjuntamente, resolvem o problema proposto. Os trechos de algoritmo que efetuam um ou mais clculos determinados denominam-se subalgoritmos. Em um algoritmo, eles ficam situados na rea dos subalgoritmos e so formados pela palavra-chave procedimento ou proced, acompanhados por um identificador nico que segue as mesmas regras do nome do programa, e um ponto-evrgula. O subalgoritmo em si fica em um bloco de instrues. Como exemplo, mostrado a seguir o algoritmo de clculo das mdias com a utilizao de subalgoritmos.
programa medias; var a,b,c,ma,mh,mg: real; proced leitura; incio mostre(Digite 3 valores: ); ler(a,b,c); fim; proced calculo; incio ma := (a + b + c ) / 3;

15

mh := 3 / (1/a + 1/b + 1/c ); mg := (a * b * c) ^ (1 / 3); fim; proced mostragem incio mostre(Media Aritmetica: , ma); mostre(Media Harmonica: , mh); mostre(Media Geometrica: , mg); fim; inicio leitura; calculo; mostragem; fim.

O algoritmo em si sempre fica aps os subalgoritmos. No exemplo, os procedimentos so chamados dentro da rea do algoritmo, mas isso no uma regra. possvel chamar um procedimento dentro de outro procedimento, alm de ser possvel cham-lo quantas vezes forem necessrias. Esse um dos objetivos dos subalgoritmos: a reutilizao de blocos de instrues que se repetiriam em um algoritmo seqencial. Alm disso, muitas vezes, necessrio repetir o mesmo procedimento de dentro dele mesmo. Isso se chama recursividade, e muito til, por exemplo, para validar a entrada de dados. O subalgoritmo
proced leitura; incio mostre(Digite valor positivo: ); ler(a); se (a < 0) ento incio mostre(Valor invlido); leitura; fim; fim;

garante que o valor digitado para a varivel a obrigatoriamente ser um valor positivo.

Exerccios
1. Refazer o algoritmo 5 da lista anterior, utilizando subalgoritmos e considerando que o valor para i deve ser inteiro no intervalo de 1 a 3. 2. Escrever um algoritmo que l um conjunto de 6 valores x1, x2, y1, y2, z1, z2 em um intervalo de 10 a 10, que representam as coordenadas cartesianas de 3 pontos P1(x1, x2), P2(y1, y2) e P3(z1, z2). Calcule as distncias entre P1 e P2, P1 e P3, P2 e P3.
distancia = (y1 x1)2 + (y2 x2)2

para P1 e P2.

16

Se os segmentos de retas calculados formarem um tringulo, calcular e mostrar a rea deste tringulo. Caso contrrio, mostrar as distncias calculadas. 3. Escrever um algoritmo que l 4 comprimentos de lados a, b, c, d, em um intervalo de 10 a 50, e os ordena em ordem decrescente, mostrando-os. 4. Escrever um algoritmo que l 3 comprimentos de lados a, b, c, em um intervalo de 5 a 10, e os ordena em ordem decrescente, de modo que o a represente o maior dos 3 lados lidos. Determine, a seguir, o tipo de tringulo que estes 3 lados formam, com base nos seguintes casos, mostrando sempre a mensagem adequada: Se a > b + c no formam tringulo algum; Se a2 = b2 + c2 formam um tringulo retngulo. Se a2 > b2 + c2 formam um tringulo obtusngulo. Se a2 < b2 + c2 formam um tringulo acutngulo. Se forem todos iguais formam um tringulo eqiltero. Se a = b ou b = c ou a = c ento formam um tringulo issceles.

5. O departamento que controla o ndice de poluio do meio ambiente mantm 3 grupos de indstrias que so altamente poluentes do meio ambiente. O ndice de poluio aceitvel varia de 0.05 at 0.25. Se o ndice subir de 0.25 at 0.3, as indstrias do 1o grupo so intimadas a suspenderem suas atividades. Se subir at 0.4, as indstrias do 1o e 2o grupo so intimadas a suspenderem suas atividades. Se o ndice for maior que 0.4, todos os 3 grupos devem ser notificados a paralisarem suas atividades. Escrever um algoritmo que l o ndice de poluio medido (acima de 0.05) e emite a notificao adequada aos diferentes grupos de empresas. 6. Escrever um algoritmo que l a hora de incio de um jogo e a hora do final do jogo (considerando apenas horas inteiras) e calcula e mostra a durao do jogo em horas, sabendo-se que o tempo mximo de durao do jogo de 24 horas e que o jogo pode iniciar em um dia e terminar no dia seguinte. 7. O cardpio de uma casa de lanches dado pela tabela a seguir: Cdigo 100 101 102 103 104 105 106 Especificao Cachorro-quente Bauru simples Bauru com ovo Hamburger Cheese burger Refrigerante Cerveja Preo Unitrio 3.50 4.00 4.50 5.50 6.00 1.50 2.50

Escrever um algoritmo que l o cdigo dos itens, o nmero de itens de cada tipo adquiridos por um consumidor. A cada item fazer a pergunta: Deseja mais algum item?. Se a resposta for negativa calcular e mostrar o valor da conta a pagar. A

17

seguir, perguntar: Deseja calcular a conta de mais algum consumidor?. Encerrar o algoritmo apenas se a resposta for negativa. 8. Escrever um algoritmo que l o nmero de um funcionrio, inteiro e positivo, o nmero de horas por ele trabalhadas, o valor que recebe por hora, o nmero de filhos com idade inferior a 14 anos, a idade, o tempo de servio do funcionrio e o valor do salrio famlia por filho. Calcular o salrio bruto, o desconto do INSS (8,5% do salrio bruto) e o salrio famlia. Calcular o IR como segue: Se salrio bruto for maior ou igual a 1500 ento IR = 15% do salrio bruto. Se salrio bruto for maior ou igual a 500 e menor que 1500 ento IR = 7% do salrio bruto. Se salrio bruto for menor que 500 ento IR = 0. Calcular o adicional conforme especificado: Se idade for superior a 40 anos, adicional = 2% do salrio bruto. Se tempo de servio for superior a 15 anos, adicional = 3.5% do salrio bruto. Se tempo de servio for menor que 15 anos, mas superior a 5 anos e idade maior do que 30 anos, adicional = 1,5% do salrio bruto. Calcular o salrio lquido, mostrando-o juntamente com o nmero do funcionrio, seu salrio bruto, o total de descontos e o adicional. 9. Escrever um algoritmo que l o nmero de identificao e as 3 notas obtidas por um aluno nas 3 verificaes e a mdia dos exerccios que fazem parte da avaliao. Para cada aluno, calcular a mdia de aproveitamento, usando a frmula:
MA = N1 + N2 x 3 + N3 x 3 + ME 2

A atribuio de conceitos obedece tabela abaixo: Mdia de Aproveitamento


>= 9.0 >= 7.5 e < 9.0 >= 6.0 e < 7.5 >= 4.0 e < 6.0 < 4.0

Conceito
A B C D E

O algoritmo deve mostrar o nmero do aluno, suas notas, a mdia dos exerccios, a mdia de aproveitamento, o conceito correspondente e a mensagem: Aprovado se o conceito for A, B ou C e Reprovado se o conceito for D ou E. Para cada aluno, perguntar: Deseja calcular a mdia de aproveitamento de mais algum aluno?. 10. A empresa XYZ decidiu conceder um aumento de salrios a seus funcionrios de acordo com a tabela abaixo: Salrio Atual ndice de aumento

18

0 a 400.00 400.01 a 700.00 700.01 a 1000.00 1000.01 a 1800.00 1800.01 a 2500.00 Acima de 2500.00

15% 12% 10% 7% 4% Sem aumento

Escrever um algoritmo que l, para cada funcionrio, o seu nmero e o seu salrio atual e mostra o nmero do funcionrio, seu salrio atual, o percentual de seu aumento e o valor do salrio corrigido. Perguntar ao final: Deseja calcular a correo do salrio de mais algum funcionrio?. 11. Escrever um algoritmo que l a hora de incio de um jogo e a hora de trmino do jogo, ambas subdivididas em 2 valores distintos, a saber: horas e minutos. Calcular e mostrar a durao do jogo, tambm em horas e minutos, considerando que o tempo mximo de durao de um jogo pode iniciar em um dia e terminar no dia seguinte. 12. Escrever um algoritmo que l um cdigo i, em um intervalo de 1 a 5, e 3 valores a, b, c inteiros e positivos, com a < b. Se cdigo i = 1 ento calcular a rea do trapzio de base a e b e altura c e mostrar juntamente com os valores lidos. Se cdigo i = 2 ento se a, b, c formarem equao do 2o grau e esta tiver razes reais, calcular e mostrar as razes desta equao.
Formula = -b b2 4ac 2a

Se cdigo i = 3 ento calcular a mdia geomtrica e mostrar juntamente com os valores lidos. Se cdigo i = 4 ento se a, b, c formarem tringulo, calcular e mostrar a rea deste tringulo. Se cdigo i = 5 ento calcular e mostrar a soma dos inteiros de a inclusive at b com uma variao igual a c (se a = 5, b = 19 e c = 3, ento soma = 5+8+11+14+17 = 55)

Algoritmos com Repetio e Vetores/Matrizes


Essa seo visa conceituar algoritmos com repetio, apresentar as instrues para manipulao desse tipo de algoritmo, variveis do tipo contador e do tipo acumulador, alm de apresentar conceitos e utilizao de vetores e matrizes. Todo algoritmo que possui um ou mais de seus passos repetidos um determinado nmero de vezes denomina-se algoritmo com repetio. So basicamente trs as instrues existentes:

19

A primeira instruo, mostrada a seguir, faz com que uma varivel inteira inicie com um valor e repita o bloco de instrues tantas vezes quantas forem necessrias para se atingir o valor final, sempre adicionando (a) ou subtraindo (menosat) um nmero. para <varivel inteira> := <valor inicial> a/menosat <valor final> faa <bloco de instrues> Exemplo:
a:= 0; para i:= 1 a 5 faa incio a:= a + i; mostre(a); fim;

A varivel inteira utilizada pode ser utilizada em expresses, como o a:= a + i; , mas no pode ter um valor atribudo a ela, como por exemplo i:= i + 1;. O incremento/decremento da varivel inteira feito automaticamente. A segunda instruo repete o bloco de instrues enquanto a expresso lgica for verdadeira. enquanto <expresso lgica> faa <bloco de instrues>; Exemplo:
a:= 0; enquanto (a < 5) faa incio a:= a + 1; mostre(a); fim;

A terceira instruo parecida com a segunda, mas se caracteriza por ter a expresso lgica no final do bloco de instrues, garantindo a execuo do bloco uma vez, pelo menos, alm de repeti-lo at que a expresso for verdadeira. O bloco de instrues no tem incio-fim. O que garante o trmino o prprio at. repita <bloco de instrues> at <expresso lgica>; Exemplo:
a:= 0; repita a:= a + 1; mostre(a); at (a = 5);

20

Em muitos casos, h a necessidade da utilizao de variveis contadoras dentro de um bloco de repetio. As variveis contadoras recebem um valor inicial (geralmente 0) fora do bloco e incrementada dentro do bloco (geralmente em 1). Em outros casos, h a necessidade de utilizar variveis acumuladoras, onde o valor inicial geralmente zero e incrementado de um valor varivel, e no de uma constante. As instrues de repetio so muito teis em algoritmos que utilizam vetores e matrizes. Um vetor um tipo de dado estruturado, sendo muito til quando se deseja armazenar um conjunto de valores. Um conceito simples para vetor seria: uma varivel com um nome nico, de um tipo de dado nico, que pode armazenar vrios valores desse tipo, cada um com seu ndice prprio. A diferena entre vetor e matriz que a matriz permite a indexao por linha e coluna, enquanto o vetor possui apenas uma linha. Exemplos de declarao de vetores e matrizes:
var vet: arranjo [1..10] de inteiros; vet2: arranjo [1..20] de reais; vet3: arranjo [1..10] de caracteres; mat: arranjo [1..5, 1..10] de inteiros; mat1: arranjo [1..5, 1..10] de reais;

A indexao de um vetor se d da seguinte forma:


vet[1]:= 4; vet1[1]:= 3.4; vet2[1]:= a;

Para as matrizes, importante observar a indexao na forma [linha, coluna]:


mat[1,1]:= 5; mat1[1,1]:= 2.4;

Exerccios com Instrues de Repetio e Vetores


1. Escrever um algoritmo que l 5 valores quaisquer para um vetor a. Contar, aps, quantos destes valores so negativos, mostrando esta informao. 2. Escrever um algoritmo que gera e mostra os nmeros mpares entre 100 e 200 3. Escrever um algoritmo que l 10 valores quaisquer, armazenando em um vetor. Contar quantos deles esto no intervalo [10, 20] e quantos deles esto fora deste intervalo, mostrando estas informaes. 4. Escrever um algoritmo que l 30 valores inteiros em um intervalo de 0 a 100, armazenando em um vetor. Contar quantos deles esto em cada um dos intervalos [0, 25], (25, 50], (50, 75], (75, 100].

21

5. Escrever um algoritmo semelhante ao anterior que calcula as mdias aritmticas de cada intervalo e as mostra, juntamente com o nmero de valores encontrados em cada intervalo. 6. A srie de Fibonacci tem como dados os 2 primeiros termos da srie, que so respectivamente 0 e 1. A partir deles, os demais termos so construdos pela regra:
tn = tn-1 + tn-2

Escrever um algoritmo que gera os 10 primeiros termos da srie de Fibonacci e armazena em um vetor. Aps, calcular a soma destes termos e mostrar juntamente com o vetor. 7. Escrever um algoritmo que gera os 30 primeiros termos da srie de Fibonacci e armazena em um vetor. Aps, mostrar os termos gerados com a mensagem primo ou No primo, conforme o caso. 8. Escrever um algoritmo que l 100 nmeros positivos e armazena em um vetor. Aps, mostrar uma tabela com cabealho, que deve ser repetido a cada 20 linhas escritas. A tabela conter o valor lido, seu quadrado, seu cubo e sua raiz quadrada. 9. Escrever um algoritmo que l 100 valores para o vetor v, todos inteiros e positivos. Aps, percorrer o vetor e, se o valor for par, verificar quantos divisores possui e mostrar esta informao. Se o valor for mpar e menor que 12 calcular e mostrar o fatorial do valor. Se o valor for mpar e maior ou igual a 12 calcular e mostrar a soma dos inteiros de 1 at o valor. 10. Escrever um algoritmo que l 10 valores para o vetor a, todos inteiros e positivos. Calcular e mostrar, a seguir, a mdia aritmtica dos valores do vetor, a quantidade de valores pares, a quantidade de valores mpares, a percentagem de valores pares e a percentagem de valores mpares. 11. Escrever um algoritmo que mostra os nmeros primos entre 100 e 200, bem como a soma destes nmeros. 12. Escrever um algoritmo que l 500 valores inteiros e positivos. Mostrar estes 500 valores ordenados em ordem crescente. 13. Escrever um algoritmo que l 10 valores para o vetor n, todos inteiros e positivos. Aps, para cada valor lido, mostrar a tabuada de 1 at n de n.
1 2 . . . n x x . . . x n n . . . n = = . . . = n 2n . . . n2

14. Escrever um algoritmo que l um par de valores a, b, inteiros e positivos, com a < b e mostra os inteiros pares de a at b, incluindo o a e b se forem pares. 15. Escrever um algoritmo que l um par de valores m, n, inteiros e positivos, e calcula e mostra a soma dos n inteiros consecutivos partir de m, inclusive.

22

16. Escrever um algoritmo que l um conjunto de 15 valores, um de cada vez, acompanhados de um cdigo 1 ou 2. O valor representa o nmero de cobaias utilizadas em cada uma das 15 experincias feitas e os cdigos 1 e 2 representam, respectivamente, coelhos e ratos. Armazenar esses valores em dois vetores numcob e tipo. Quer-se saber o total de cobaias utilizadas, o total de coelhos, o total de ratos, a percentagem de coelhos e a percentagem de ratos. Mostrar esses valores. 17. Escrever um algoritmo que l um nmero n (nmero de termos de uma progresso aritmtica), a1 (primeiro termo desta progresso) e r (razo da progresso), e mostra os n termos desta progresso, bem como, a sua soma. Utilizar as instrues de repetio, e no as frmulas matemticas. 18. Escrever um algoritmo que l 2 vetores de 10 valores, o primeiro contendo o nmero de identificao de dez alunos, e o segundo contendo a altura em centmetros de cada um. Aps, encontrar o aluno mais alto e o mais baixo e mostrar seus nmeros, suas alturas e uma mensagem dizendo se o mais alto ou o mais baixo. 19. Um avio, voando em linha reta, a uma altitude a passa sobre um ponto p num instante t = 0. Se a velocidade v e a altura a so lidos, calcular a distncia d do avio ao ponto p aps 1, 2, 3, ..., 60 segundos. Mostrar, para cada t, o tempo e a distncia. 20. Escrever um algoritmo que l um valor n que indica quantos valores devem ser lidos para m, todos inteiros e positivos, com leitura de um valor de cada vez. Mostre uma tabela contendo o valor m lido, o somatrio dos inteiros de 1 at m e o fatorial de m. 21. Escrever um algoritmo que gera e mostra os 5 primeiros nmeros perfeitos. Um nmero perfeito aquele que igual a soma dos seus divisores, menos ele mesmo. (Ex.: 6=1+2+3; 28=1+2+4+7+14). 22. Escrever um algoritmo que l um vetor g com 5 valores do tipo caracter, que constituem o gabarito de uma prova de 5 questes. Leia, a seguir, um nmero no determinado de 5 respostas de alunos em um vetor do tipo caracter r. Para cada aluno, contar o nmero de acertos e multiplicar por 2, mostrando a nota adquirida. Aps, perguntar: Deseja conferir as respostas de mais algum aluno?. 23. Escrever um algoritmo que mostra os nmeros entre 1000 e 1999, inclusive, que divididos por 11 do um resto igual a 5. 24. Sabe-se, pela Lei de Newton, que a fora de interao entre 2 corpos diretamente proporcional ao produto de suas massas e inversamente proporcional ao quadrado de suas distncias.
F = G m1 m2 d2

Escrever um algoritmo que l um nmero no determinado de conjuntos de 4 valores m1 (massa do 1o corpo), m2 (massa do 2o corpo), G (constante de gravitao universal) e d (distncia entre os corpos) e calcula e mostra, para cada conjunto lido, a fora de atrao. A cada conjunto, perguntar se deseja continuar ou no.

23

25. Sabe-se, da matemtica financeira, que a aplicao de um capital C, a uma taxa mensal de juros i, capitalizados mensalmente, recuperado atravs de n prestaes mensais de valor R.
R = C i(1 + i)n (1 + i)n-1

Escrever um algoritmo que l um nmero no determinado de conjuntos de valores formados pelo capital, a taxa de juros e o nmero de prestaes e calcula e mostra, para cada conjunto lido, o valor de cada prestao. A cada conjunto, perguntar se deseja continuar ou no. 26. Escrever um algoritmo que l um valor x e calcula e mostra os 20 primeiros termos da srie:
1 + 1 + 1 + 1 + ... x2 x3 x4

27. Escrever um algoritmo que calcula e mostra a mdia aritmtica dos nmeros pares compreendidos entre 13 e 73. 28. Escrever um algoritmo que calcula e mostra o produto dos nmeros primos entre 92 e 1478. 29. Escrever um algoritmo que l n, inteiro e positivo, e calcula e mostra o termo de ordem n da sucesso abaixo:
ordem: 1 sucesso: -1 2 0 3 5 4 6 5 11 6 12 7 17 8 18 ... ...

30. Supondo que a populao de um pas A seja da ordem de 90000 habitantes, com uma taxa anual de crescimento de 3,1% e que a populao de um pas B seja de 200000 habitantes, com uma taxa anual de crescimento de 1,5%, escrever um algoritmo que calcula e mostra quantos anos sero necessrios para que a populao do pas A ultrapasse a do pas B, mantidas as taxas atuais de crescimento.

Exerccios com Vetores e Matrizes


1. Escrever um algoritmo que leia 10 nmeros inteiros e positivos e armazene em um vetor. Aps, mostrar o maior dos 10 nmeros lidos e sua ordem de entrada. 2. Escrever um algoritmo que l 100 valores quaisquer para um vetor x. Substitua, a seguir, todos os valores nulos de x por 1 e mostre o vetor modificado. 3. Escrever um algoritmo que l 20 valores quaisquer para um vetor n. Troque, a seguir, o 1o elemento com o ltimo, o 2o com o penltimo, assim por diante, at o 10o com o 11o e mostre o vetor modificado. 4. Escrever um algoritmo que l 20 valores quaisquer para um vetor k. Troque, a seguir, os elementos de ordem mpar com os de ordem par imediatamente seguintes e mostre o vetor modificado.

24

5. Escrever um algoritmo que l 20 valores quaisquer para um vetor m. Troque, a seguir, o 1o elemento com o 11o, o 2o com o 12o, assim por diante, at o 10o com o 20o e mostre o vetor modificado. 6. Escrever um algoritmo que l um vetor de 20 posies sem elementos repetidos e um valor qualquer a. Multiplicar cada posio do vetor por a e mostrar o vetor modificado. 7. Escrever um algoritmo que l dois vetores com 10 valores inteiros x e y. Crie, a seguir, um vetor z que seja a unio de x com y, mostrando-o ao final. 8. Escrever um algoritmo que l dois vetores com 10 valores inteiros a e b. Crie, a seguir, um vetor c que seja a interseco de a com b, mostrando-o ao final. 9. Escrever um algoritmo que l 20 valores quaisquer para um vetor v. Compacte, a seguir, o vetor V, retirando dele todos os valores nulos ou negativos e mostre o vetor compactado. 10. Escrever um algoritmo que l 30 valores inteiros e positivos para um vetor k. Crie, a seguir, um vetor n que contm todos os valores primos de k e mostre-o. 11. Escrever um algoritmo que l 20 valores quaisquer para um vetor v. Retire, a seguir, os elementos em duplicata, compactando o vetor v e mostrando-o ao final. 12. Escrever um algoritmo que l um conjunto de 30 valores inteiros e os coloca em 2 vetores, conforme forem pares ou mpares. O tamanho dos vetores de 5 posies. Se algum vetor estiver cheio, mostrar e voltar a preencher a partir da primeira posio. Terminada a leitura, mostrar o contedo que sobrou dos dois vetores. 13. Escrever um algoritmo que l 2 vetores de 10 valores inteiros v e x. Crie, a seguir, um vetor y com os elementos de v e x em ordem crescente. 14. Escrever um algoritmo que l 20 valores inteiros para um vetor v de 30 posies que ocuparo as 20 primeiras posies. Ordene, a seguir, os 20 elementos em ordem crescente. Aps, leia 10 valores inteiros, um por vez, e insira-os nas posies adequadas do vetor v, de forma que o mesmo continue ordenado em ordem crescente, mostrando-o ao final. 15. Escrever um algoritmo que l 20 valores inteiros para um vetor x. Mostre, a seguir, cada um dos valores distintos que aparecem em x e quantas vezes ele apareceu. 16. Escrever um algoritmo que preencha uma matriz 10 por 50 com a soma da sua linha e coluna respectiva. Passar, aps, os valores da matriz para um vetor. Mostrar a matriz e o vetor preenchidos. 17. Escrever um algoritmo que l uma matriz m(5,5) com valores inteiros e positivos. Calcule e mostre, aps, as somas: a) b) c) d) e) da linha 4 de m. da coluna 2 de m. da diagonal principal. da diagonal secundria. de todos os elementos da matriz.

25

18. Escrever um algoritmo que l uma matriz m(6,6) e calcula as somas das partes hachuriadas, mostrando-as.

19. Escrever um algoritmo que l uma matriz m(10,10) com valores quaisquer. Troque, a seguir, a linha 2 com a linha 8, a coluna 4 com a coluna 10, a diagonal principal com a secundria e a linha 5 com a coluna 10. Mostre a matriz modificada. 20. Escrever um algoritmo que l uma matriz m(6,6) e um valor a e multiplica a matriz m pelo valor a e coloca os valores da matriz multiplicados por a em um vetor v, mostrando-o ao final. 21. Escrever um algoritmo que l uma matriz m(5,5) com valores inteiros e cria 2 vetores sl(5) e sc(5) que contenham as somas das linhas e das colunas de m, mostrando-os. 22. Escrever um algoritmo que l uma matriz m(50,19) contendo, nas posies assinaladas de cada linha o que segue: 1 no do aluno 2, 3, 4 notas da disciplina 1 5, 6, 7 notas da disciplina 2 8, 9, 10 notas da disciplina 3 11, 12, 13 notas da disciplina 4 14, 15, 16 notas da disciplina 5 17, 18, 19 notas da disciplina 6 Calcular, para cada aluno, as mdias de cada disciplina e a mdia geral, armazenando num vetor o nmero do aluno, as mdias por disciplina e a mdia geral. Mostrar o vetor antes de passar ao aluno seguinte. 23. Escrever um algoritmo que l uma matriz a(12,13) e divida todos os 13 elementos de cada uma das 12 linhas de a pelo valor do maior elemento em mdulo daquela linha. Mostrar a matriz a modificada. 24. Na teoria de sistemas, define-se como elemento mnimax de uma matriz, o menor elemento da linha em que se encontra o maior elemento da matriz. Escrever um algoritmo que l uma matriz a(10,10) com valores inteiros e determina o elemento mnimax dessa matriz, mostrando-o juntamente com a sua posio na matriz.

Bibliografia
Os conceitos e exerccios dessa apostila foram baseados na referncia (que no est mais sendo editada):

26

ORTH, A.I. Algoritmos. Porto Alegre, RS: Cincia dos Computadores, 1985. Tais conceitos, exerccios e principalmente a definio da linguagem algortmica sofreram vrias adaptaes.

27