Você está na página 1de 28

Algoritmos INTRODUCAO Considere a seguinte formula matematica: 2 D = B - 4AC Nesta formula encontram-se: - constantes (2 e 4) - variaveis (A,B,C,D) - operacoes a serem

efetuadas sobre determinados operandos (multiplicacao,

subtracao, potenciacao). Assim sendo, uma formula matematica e uma descricao de um conjunto de acoes (determinadas pelas operacoes) que devem ser executadas sobre um conjunto de objetos (constantes ou variaveis). 1

Conceitos basicos Constante - objeto invariante em cada execucao de uma formula matematica Variavel - objeto que representa um valor que pode ser execucao da formula que a contem. Uma variavel pode ser vista como uma caixa identificada por um nome colocado na tampa e na qual pode ser armazenada uma constante. Enquanto o nome sempre permanece o mesmo, o conteudo da caixa, isto e, a constante nela armazenada pode ser alterada a cada vez que a formula na qual ela aparece e utilizada. A representacao de variaveis e geralmente feita atraves de letras. Cada vez que a formula for utilizada, ocorrera o seguinte: - as variaveis A, B, C deverao receber os valores antes da execucao dos calculos; - a variavel D recebera um valor apos a execucao dos calculos; - os valores das variaveis A, B, C serao utilizados no calculo do valor de D; - a cada nova utilizacao da formula, os valores de A, B, C poderao ser alterados, e consequentemente o valor de D tambem o sera. alterado a cada

Expressoes No sentido matematico, sao representacoes simbolicas de sequencias de operacoes a serem feitas sobre determinados operandos, visando a obtencao de um resultado. Uma expressao aritmetica e uma constante ou uma variavel ou uma combinacao de constantes e / ou variaveis por meio de operadores aritmeticos. 2

2 Exemplo: B - 4AC Atribuicao O ato de armazenar ou escrever um valor em uma variavel e chamada de atribuicao de valor, sendo representado atraves de simbolos, tais como: variavel <--- valor variavel := valor variavel = valor Observacoes 1. apos a atribuicao a variavel passa a representar um novo valor, sendo perdido o seu valor anterior; 2. a atribuicao nao e comutativa, isto e, A = B e diferente de B = A; 3. intercambio de valores de variaveis. Se tivermos A = 2 e B = 4 e quisermos intercambiar os valores das variaveis A e B teremos que usar uma variavel auxiliar C, para evitar a perda de um dos valores A ou B. Teriamos que fazer: C=A A=B B=C 4. sinal de igualdade como simbolo de atribuicao Considere a atribuicao: N=N+1

Se N tinha um valor igual a 5, apos a atribuicao N tera o valor 6, ou seja, sera feita a soma de uma unidade ao valor anterior de N, e o resultado sera armazenado em N. Exercicios 1. Quais as operacoes necessarias para intercambiar os valores de 3 variaveis A, B, C de modo que A fique com o valor de B, B fique com o valor de C e C fique com o valor de A. 2. Se X possui o valor 15 e forem executadas as seguintes instrucoes: X=X+3 X=X-6 X=X/2 X=3.X qual sera o valor armazenado em X? 3. Qual o efeito de atribuicao de valor a uma variavel?

ALGORITMOS Conceitos Procedimento - e uma receita ou roteiro para executar alguma tarefa. Constituise de etapas, passos, comandos ou instrucoes que sao executadas sequencialmente. Algoritmo - e um procedimento que e executado em um tempo finito. E um conjunto finito de regras, bem definidas, para a solucao de um problema em um tempo finito. Exemplo 1 Dados 3 valores nao nulos A, B, C, determinar a sua media aritmetica. 4

As tarefas a serem executadas para a solucao deste problema podem ser descritas da seguinte forma: 1. obter os valores de A, B, C 2. calcular a media aritmetica pela formula media =(A + B + C)/ 3 3. comunicar o resultado obtido 4. terminar Caracteristicas dos algoritmos - Execucao de algoritmos Cada passo a ser executado e identificado por um numero. Um algoritmo comeca a ser executado pelo passo de menor numero, e os passos seguintes sao executados em ordem numerica crescente, a nao ser que seja explicitamente indicado o contrario. A acao de passar de um passo a outro, em ordem crescente dos numeros que identificam os passos, e automatica.

- Entradas Aos valores recebidos por um algoritmo da-se o nome de entradas. No exemplo 1, o passo 1 constitui uma entrada. - Saidas Todo algoritmo possui pelo menos um resultado. Os resultados fornecidos por um algoritmo recebem o nome de saidas. Passo 3 no exemplo 1. - Definicao dos passos E importante que num algoritmo cada passo esteja precisamente definido nao deixando nenhuma margem a ambiguidades. 5

- Efetividade Todas as operacoes especificadas no algoritmo devem ser suficientemente basicas para que possam ser, pelo menos em principio, executadas de maneira exata e num tempo finito. Exemplo 2 A lista de instrucoes abaixo imprime os numeros impares a partir de 1. 1. fazer N igual a 0 e I igual a 1 2. enquanto N for menor do que 5 fazer 2.1. escrever I 2.2. somar 2 ao I 3. terminar A lista de instrues acima possui um conjunto finito de passos (3), claramente definidos, mas sua execuo e de tempo infinito, pois o N e feito igual a 0 no passo 1 e seu valor no alterado por nenhuma instruo e, portanto, o passo 2 e executado indefinidamente por que N sempre ser menor do que 5. A lista de passos no exemplo 2 e um procedimento e no algoritmo, pois falta-lhe condio de efetividade. - Varios algoritmos para um mesmo problema Geralmente existe mais de uma sequencia de operacoes as quais executadas levam a execucao da mesma tarefa, isto e, existem varios algoritmos para um mesmo problema. Quando se tem varios algoritmos para solucionar o mesmo problema podemos escolher um levando em consideracao os criterios de tempo, adaptabilidade, elegancia, simplicidade, etc.. Resumo das caracteristicas dos algoritmos

1. numero finito de passos 2. cada passo precisamente definido 3. zero, uma ou mais entradas de dados 4. uma ou mais saidas de resultados 5.condicao de fim sempre atingida para qualquer dado e num Formas de representacao de algoritmos Os algoritmos podem ser escritos em linguagem comum, em linguagem grafica (fluxogramas ou diagramas de blocos) ou ainda em linguagem de programacao como BASIC, PASCAL, FORTRAN, COBOL, etc.. Formalizacao de uma linguagem algoritmica para fins de introducao ao estudo dos algoritmos. - operacao de entrada Ler <lista de variaveis> onde lista de variaveis e uma variavel ou varias variaveis separadas por virgulas. Ex.: ler A ler B,C,D - operacao de saida Escrever <lista de valores> onde lista de valores e uma constante ou uma variavel ou constantes e/ou variaveis ou expressoes aritmeticas separadas por virgulas. Ex.: escrever 5 escrever A escrever A + B, 2AB - operacao de calculo 7 tempo finito.

Variavel = expressao Ex.: A = 5 X=Y 2 D = B - 4AC - operacao de tarefa realizada (termino do algoritmo) Parar Ex.: A = 5 Escrever A Parar - operacao de selecao Se <condicao> entao <instrucao> ou Se <condicao> entao <instrucao 1> senao <instrucao 2> - operacao de desvio incondicional Ir para n onde n e algum passo do algoritmo. CLASSIFICACAO E APRESENTACAO DE ALGORITMOS NUMERICOS Os algoritmos podem ser classificados em: - nao numericos

- numericos Ou ainda podem ser classificados em: - puramente sequenciais - com selecao - com repeticao Algoritmos puramente sequenciais -------------------------------Todo o algoritmo puramente sequencial tem exatamente a seguinte estrutura: - Ler valores - Efetuar calculos - Escrever resultados - Parar A execucao de um algoritmo puramente sequencial e efetuada em ordem crescente dos numeros que identificam cada passo. Exemplos 1. Algoritmo para calculo da media aritmetica de 3 valores A, B, C. 1. ler A, B, C 2. MEDIA = (A + B + C )/ 3 3. escrever MEDIA 4. parar 2. Algoritmo que le 3 valores A, B, C e calcula: a) a area do triangulo que tem base A e altura B b) a area do circulo de raio C c) a area do quadrado de lado B 9

1. ler A,B,C 2. AT = A . B / 2 3. AC = PI . C 2 4. AQ = B 5. escrever AT, AC, AQ 6. parar Exercicios Obs.: antes de fazer cada exercicio, crie variaveis para guardar os valores lidos e os valores calculados. 1. Escrever um algoritmo que le o numero de um funcionario, seu numero de horas trabalhadas, o valor que recebe por hora e calcular o salario deste funcionario. 2. Sabendo-se que a distancia percorrida por um aviao que voa a velocidade constante e em linha reta e dada pela formula D = V.T escrever um algoritmo que calcula a distancia percorrida pelo aviao apos um tempo t, a partir de um instante t0, sabendo-se que o aviao voa a uma velocidade v, constante. 3. Escrever um algoritmo para calcular a media aritmetica da pessoas, a partir da leitura destas idades. 4. Escrever um algoritmo que le os pesos de 5 pessoas e calcula o peso medio. 5. Escreva um algoritmo para calcular o perimetro de um retangulo de lados X, Y, que devem ser lidos. 6. O custo ao consumidor, de um carro novo, e a soma do custo de fabrica com a percentagem do distribuidor e dos impostos (aplicados ao custo de fabrica). Supondo que percentagem do distribuidor seja de 28 % e os impostos de 45 %, escrever um algoritmo para ler o custo de fabrica de um carro e escrever o custo ao consumidor. idade de 5

10

3.2 Algoritmos com selecao ------------------------Em inumeros problemas e exigida uma ou mais condicoes para que se chegue a solucao. Isto pode fazer com que se tenha uma ou mais altenativas de solucao para o problema, tambem. Assim, por exemplo: - dados 3 valores A, B, C que representam os coeficientes de uma equacao do segundo grau, calcular as raizes reais somente se o valor do discriminante nao for negativo; caso contrario, calcular as raizes complexas. O algoritmo para a solucao do problema acima devera conter uma operacao de selecao que permita que sejam calculadas as raizes reais (uma solucao) ou as raizes complexas (outra solucao). Um algoritmo em que se tem a execucao de determinados passos subordinada a uma condicao e denominado algoritmo com selecao. Uma operacao de selecao num algoritmo e representada, aqui, pelas instrucoes: Se <condicao> entao <instrucao> ou Se <condicao> entao <instrucao 1> senao <instrucao 2> onde - instrucao e uma instrucao apenas, ou uma sequencia de isntrucoes - condicao e uma proposicao Algebra de Boole A algebra de Boole e baseada em proposicoes. As proposicoes sao assertivas que podem estar corretas (verdadeiras) ou incorretas (falsas).

11

A algebra booleana e uma algebra de dois estados: nao existem outros estados possiveis alem do "verdadeiro" e do "falso". Exemplos de proposicoes: 1. A = B 2. B < C 2 3. A equacao AX + BX + C = 0 possui duas raizes reais Estas proposicoes podem ser verdadeiras ou falsas, dependendo dos valores de A, B, C. Uma proposicao pode ser formada pela relacao entre duas expressoes aritmeticas. As relacoes entre expressoes aritmeticas sao definidas atraves de operadores relacionais: Os operadores relacionais sao: > maior < menor <= menor ou igual >= maior ou igual = igual <> diferente As proposicoes, por sua vez, podem se relacionar umas com as outras atraves de operadores logicos. Um operador logico e um operador cujos operandos sao valores logicos e cujo resultado e um valor logico: verdadeiro ou falso. Expressoes logicas Sao expressoes cujos operandos tem valores logicos, cujos operadores sao operadores logicos e o resultado tem um valor verdadeiro ou falso.

12

Tabela-verdade A tabela-verdade define os resultados das operacoes logicas de forma compacta. Tabelas-verdade do produto logico (operador logico "e") e da soma logica (operador logico "ou") P1 P2 V V V F F V F F P1 E P2 V F F F V V V F P1 OU P2

-------------------------------

Tabela-verdade da negacao P1 V F NP1 F V Os operadores logicos atuam sobre operandos logicos e os operadores relacionais atuam sobre valores nao logicos. Exemplo: Proposicao: X pertence ao intervalo [-1;1] Expressao logica correspondente: X >= -1 E X <= 1 Nos algoritmos as formulacoes de condicoes devem ser feitas atraves de expressoes logicas. Mais exemplos de proposicoes com as respectivas expressoes logicas: - A e menor do que 50 ou maior do que 60 A < 50 OU A > 60

----------

13

- X e igual a Y e X e igual a Z X=YEX=Z Funcionamento da instrucao de selecao 1) As instrucoes apos a palavra "entao" serao executadas somente se a condicao for verdadeira; 2) Se a condicao for falsa sera executada a instrucao da linha seguinte. Exemplo: Algoritmo para calculo das raizes reais de uma equacao do segundo grau. 1. ler A,B,C 2 2. D = B - 4AC 1/2 3. se D >= 0 entao R1 = -B+D 5. parar Selecao simples - decide entre a execucao ou nao de uma ou mais instrucoes Ex.: 1. ler codigo,a,b 2. se codigo = 1 entao X = A + B: Escrever codigo, X: Parar 3. X = A - B: Escrever codigo,X : Parar Selecao dupla - e feita uma escolha entre 2 conjuntos de operacoes, sendo executado apenas um dos conjuntos, e nunca os dois numa mesma execucao Ex.: 1. ler codigo,a,b 2. se codigo = 1 entao X = A + B senao X = A - B 14 1/2 /2A : R2 = -B-D /2A : escrever R1, R2 : Parar

4. escrever "equacao nao admite raizes reais"

4. escrever codigo,X 5. parar Instrucao de desvio incondicional (Ir para n) A instrucao de desvio incondicional determina uma alteracao na ordem de execucao das instrucoes sem selecao). que haja necessidade de que seja satisfeita qualquer condicao, como ocorre na instrucao de desvio condicional (operacao de

Estrutura de algoritmos Atraves de instrucoes de selecao podemos estruturar os algoritmos de forma concatenada ou aninhada. Na forma concatenada as instrucoes de selecao ficamuma em sequencia a outra. Na forma aninhada as instrucoes de selecao ficam uma dentro da outra. Exemplo: Dado um par de valores X e Y, que representam as coordenadas de um ponto no plano, determinar o quadrante ao qual pertence o ponto, ou se esta sobre um dos eixos cartesianos. Exemplo desenvolvido em estrutura concatenada 1. ler X, Y 2. se X = 0 e Y = 0 entao escrever "ponto na origem" 3. se X = 0 e Y <> 0 entao escrever "ponto sobre o eixo Y" 4. se X <> 0 e Y = 0 entao escrever "ponto sobre o eixo X" 5. se X > 0 e Y > 0 entao escrever "ponto no quadrante 1" 6. se X < 0 e Y > 0 entao escrever "ponto no quadrante 2" 7. se X < 0 e Y < 0 entao escrever "ponto no quadrante 3" 8. se X > 0 e Y < 0 entao escrever "ponto no quadrante 4" 9. parar Exemplo desenvolvido em estrutura aninhada 15

1. ler X,Y 2. se X <> 0 entao se Y = 0 entao escrever "ponto sobre o eixo X" senao se X > 0 entao se Y > 0 entao escrever "ponto no quadr. 1" senao escrever "ponto no quadr. 4" senao se Y > 0 entao escrever "ponto no quadr. 2" senao escrever "ponto no quadr. 3" senao se Y = 0 entao escrever "ponto na origem" senao escrever "ponto sobre o eixo Y" 3. parar Exercicios 1. Usando as instrucoes de desvio condicional e incondicional escreva algoritmos equivalentes as assertivas dadas: a) Se A for maior ou igual a B e B maior ou igual a C, desvie para a linha 10, caso contrario, parar. b) Se A for maior ou igual a B e B maior ou igual a C, desvie para a linha 10; se A for menor do que B e B menor do que C, desvie para a linha 20, caso contrario desvie para a linha 30. c) Se X esta entre 2 e 7, inclusives, va para a linha 50, caso contrario va para a linha 60. d) Se X pertence a (1,7;8,4) e Y pertence a [-3,9;5,4] va para a linha 20, caso contrario va para a linha 30. 2. Escrever um algoritmo que le o numero de um vendedor de uma empresa, seu salario fixo e o total de vendas por ele efetuadas. Cada vendedor recebe um salario fixo, mais uma comissao proporcional as vendas por ele efetuadas. A comissao e de 3% sobre o total de vendas ate 1.000 e 5% sobre o que ultrapassa este valor. Escrever o numero do vendedor, o total de suas vendas,seu salario fixo e seu salario total. 16

3. Escrever um algoritmo que le 3 comprimentos de lados a, b, c, sendo que a tem sempre o maior dos 3 valores lidos. Determine, a seguir, o tipo de triangulo que estes 3 lados formam, com base nos seguintes casos escrevendo sempre os valores lidos e uma mensagem adequada: Se a>b+c nao formam triangulo algum. 2 2 2 Se a =b +c 2 2 2 Se a >b +c 2 2 2 Se a <b +c formam um triangulo acutangulo. formam um triangulo obtusangulo. formam um triangulo retangulo.

Se forem todos iguais formam um triangulo equilatero. Se a=b ou b=c ou a = c entao formam um triangulo isosceles. 4. O departamento que controla o indice de poluicao do meio ambiente mantem 3 grupos de industrias que sao altamente poluentes do meio ambiente. O indice de poluicao aceitavel varia de 0.05 ate 0.25. Se o indice sobe para 0.3 as industrias do primeiro grupo sao intimadas a suspenderem suas atividades, se o indice cresce para 0.4 as do primeiro e segundo grupos sao intimadas a suspenderem suas atividades e se o indice atingir 0.5 todos os 3 grupos devem ser notificados a paralisarem suas atividades. Escrever um algoritmo que le o indice de poluicao medido e emite a notificacao adequada aos diferentes grupos de empresas. 5. Escrever um algoritmo que le o numero de identificacao e as 3 notas obtidas por um aluno nas 3 verificacoes e a media dos exercicios que fazem parte da avaliacao. Para cada aluno, calcular a media de aproveitamento, usando a formula: N1 + N2 . 2 + N3 . 3 + ME MA=-------------------------------7 A atribuicao de conceitos obedece a tabela abaixo: Media de aproveitamento Conceito 17

------------------------------------------------------>=9.0............................................A >=7,5 e <9.0.....................................B >=6.0 e <7.5.....................................C >=4.0 e <6.0.....................................D <4.0.............................................E O algoritmo deve escrever o numero do aluno, suas notas, a media dos exercicios, a media 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. 6. A empresa XYZ decidiu conceder um aumento de salarios a seus funcionarios de acordo com a tabela abaixo: Salario atual Indice de aumento

------------------------------------------------------00.000 - 10.000...........................15% 10.001 - 17.000...........................12% 17.001 - 25.000...........................10% 25.001 - 50.000...........................05% acima de 50.000...........................00% Escrever um algoritmo que le, para cada funcionario, o seu numero e o seu salario atual e escreve o numero do funcionario, seu salario atual, o percentual do seu aumento e o valor do salario corrigido. 7. Escrever um algoritmo que le um codigo I e 3 valores A, B, C. Tanto o codigo I quanto os valores A, B, C lidos sao inteiros, positivos e A<B. Se codigo = 1 entao calcular a area do trapezio de bases A e B e altura C e escreve-la juntamente com os valores. Se codigo = 2 entao se A, B, C formam equacao do segundo grau e esta tiver raizes reais calcular e escrever as raizes desta equacao. Se codigo = 3 entao calcular a media aritmetica e escreve-la juntamente com os valores lidos.

18

Se codigo = 4 entao se A, B, C formam triangulo, calcular e escrever a area deste triangulo. Se codigo > 4 entao parar. 3.3 Algoritmos com repeticao --------------------------Na pratica e em geral, um algoritmo nao e executado para um unico conjunto de valores de entrada como os vistos ate agora. Considere-se o algoritmo para calculo da media aritmetica. Supondo que se queira calcular a media de 3 notas A, B, C, de cada aluno, de uma turma de 30 alunos. Neste caso aparece a necessidade de uma contagem do numero de vezes que o algoritmo deve ser executado, para que se tenha a media de cada um dos 30 alunos. Variavel Contador Uma contagem em um algoritmo e feita por uma variavel chamada Contador. Uma variavel contador e uma variavel que recebe um valor inicial (geralmente zero) e e incrementada em algum outro passo do algoritmo, de um valor constante. Exemplo: 1. CONT = 0 2. -------3. -------4. CONT = CONT + 1 No passo 1 inicializou-se a variavel CONT. No passo 4, a variavel CONT recebeu um incremento (1, no caso) de forma que ela passa a armazenar a soma do valor anterior (0) com o incremento (1). Assim, toda a vez que este passo (4) for executado, a variavel CONT armazenara um valor igual a soma do valor anterior com o incremento.

19

Utilizando a variavel contador o algoritmo para calcular a media de cada um dos 30 alunos toma a seguinte forma: 1. CONT = 0 2. ler A,B,C 3. CONT = CONT + 1 4. MA =(A + B + C)/ 3 5. escrever NUM,A,B,C,MA 6. se CONT < 30 entao ir para 2 7. parar Este e um exemplo de algoritmo com repeticao porque tem alguns de seus passos com execucao repetida (passos 2 ate 6). Variavel Acumulador Suponha-se o seguinte problema: Calcular a media geral de uma prova de vestibular a qual compareceram 2640 alunos. Neste caso aparece a necessidade de se acumular (somar) as notas dos 2640 alunos, para depois dividir esta soma pelo numero de alunos que compareceram a prova. Uma variavel acumulador e uma variavel que recebe um valor inicial (geralmente 0) e e incrementada em algum outro passo do algoritmo, de um valor variavel. Exemplo: 1. ACUM = 0 2. -------3. -------4. ACUM = ACUM + VAR No passo 1 inicializou-se a variavel ACUM.

20

No passo 4, somou-se ao valor que estava na variavel ACUM o valor que estava na variavel VAR, e o resultado guardou-se (arnazenou-se) na variavel ACUM, que assim passa a ter um novo valor. Utilizando-se a variavel acumulador, o algoritmo para calculo da media da prova de vestibular toma a seguinte forma: 1. CONT = 0 2. ACUM = 0 3. ler NOTA 4. CONT = CONT + 1 5. ACUM = ACUM + NOTA 6. se CONT < 2640 entao ir para 3 7. MEDIA = ACUM / CONT 8. escrever MEDIA 9. parar Teste de finalizacao da repeticao para leitura de dados Na pratica interessam-nos solucoes gerais e nao especificas como no exemplo visto (2640 alunos). Suponha-se o mesmo problema da media geral para cada uma das provas de um ou de varios vestibulares, onde o numero de alunos de cada prova nao e o mesmo. Neste caso utiliza-se a tecnica do teste de finalizacao que podem assumir duas formas basicas: 1) Numero de conjunto de dados variavel e conhecido Neste caso compara-se o contador de conjunto de dados com o numero de conjunto de dados a serem lidos, e que deve ser fornecido no inicio do algoritmo atraves de uma leitura. Exemplo: Leitura de um numero determinado de dados

21

1. ler ND 2. CONT = 0 3. ler DADO 4. CONT = CONT + 1 5. se CONT < ND entao ir para 3 6. -------------7. -------------2) Numero de conjunto de dados desconhecido Neste caso compara-se o valor lido (dado) com um valor absurdo (FLAG) colocado propositalmente na ultima posicao do conjunto de dados a serem lidos. Exemplo: Leitura de um numero desconhecido de dados, que representam pesos de pessoas, e que tem como ultimo dado o valor 500 (FLAG).

1. ler DADO 2. se DADO = 500 entao parar 3. ir para 1 Exemplo: Algoritmo para calculo da media aritmetica, de 3 notas A,B,C de cada aluno de I. P. D.. a) Solucao para numero conhecido de alunos 1. ler NA 2. CONT = 0 3. ler A,B,C 4. MA = A + B + C / 3 5. escrever MA 6. CONT = CONT + 1 7. se CONT = NA entao parar 8. ir para 3 b) Solucao para numero desconhecido de alunos

22

1. ler A,B,C 2. se A = 11 entao parar 3. MA = A + B + C / 3 4. escrever MA 5. ir para 1 Exemplo: Algoritmo para calcular e mostrar os valores de 3 y = (4 - x) . x / 16, para x variando de 0 ate 2, com incremento de 0.01. 1. X = 0 3

2. Y = (4 - X) . X / 16 3. escrever X,Y 4. se X = 2 entao parar 5. X = X + 0.01 6. ir para 2 Instrucao de repeticao ---------------------------Embora nao haja necessidade de uma instrucao propria para se controlar uma repeticao dentro de um algoritmo, as linguagens de computadores normalmente prevem uma instrucao para esta finalidade. A instrucao de repeticao tem a seguinte forma: para VARIAVEL = E1 ate E3 [passo E3] --------------------------------proximo VARIAVEL onde - VARIAVEL e qualquer variavel denominada de variavel de controle da repeticao; - E1, E2, E3 sao expressoes aritmeticas;

23

- E1 representa o valor inicial da variavel de controle - E2 representa o valor final da variavel de controle - E3representa o incremento da variavel de controle (se for opcional) Numa instrucao deste tipo estao implicitas 3 operacoes: 1. uma inicializacao da variavel de controle com o valor E1 2. um teste que verifica se o valor da variavel de controle ja nao ultrapassou o seu valor final E2 3. a cada nova repeticao, ha um incremento da variavel de controle igual a E3. Quando a variavel de controle atinge um valor superior a E2 a repeticao e encerrada e a execucao e desviada para a primeira instrucao apos a instrucao de "proximo variavel". Exemplos a) 1. para I = 1 ate 5 2. ---------------3. ---------------4. proximo I b) 1. para X = A ate B passo 2 2. ---------3. ---------4. proximo X c) Algoritmo para calculo da media aritmetica, de 3 notas A,B,C de cada aluno de I. P. D., para numero conhecido de alunos. 1. ler NA 2. para I = 1 ate NA 3. ler A,B,C 4. MA =(A + B + C) / 3 24 igual a 1 e

5. escrever MA 6. proximo I 7. parar Exercicios 1. Escrever um algoritmo que le 5 valores para A, um de cada vez, e conta quantos destes valores sao negativos, escrevendo esta informacao. 2. Escrever um algoritmo que gera e escreve os numeros impares entre 100 e 200. 3. Escrever um algoritmo que le 10 valores, um de cada vez, e conta quantos deles estao no intervalo [10,20] e quantos deles estao fora deste intervalo, escrevendo estas informacoes. 4. Escrever um algoritmo que le um numero nao conhecido de valores, um de cada vez, e conta quantos deles estao em cada um dos intervalos [0,25], (25,50], (50,75], (75,100]. 5. Escrever um algoritmo semelhante ao anterior que calcula as medias aritmeticas de cada intervalo e as escreve, juntamente com o numero de valores de cada intervalo. 6. A serie de Fibonacci tem como dados os 2 primeiros termos da serie que sao respectivamente 0 e 1. A partir deles, os demais termos sao construidos pela seguinte regra: t = t +t n n-1 n-2

Escrever um algoritmo que gera os 10 primeiros termos da serie de Fibonacci e calcula e escreve a soma destes termos. 7. Escrever um algoritmo que gera os 10 primeiros termos da Serie de Fibonacci e os escreve, juntamente com o seu numero de ordem. 8. Escrever um algoritmo que le um conjunto nao determinado de valores, um de cada vez, e escreve uma tabela com cabecalho, que deve ser repetido a cada 20

25

linhas escritas. A tabela contera o valor lido, seu quadrado, seu cubo e sua raiz quadrada. 9. Escrever um algoritmo que le um numero nao determinado de valores A, todos inteiros e positivos, um de cada vez, e calcula e escreve a media aritmetica dos valores lidos, a quantidade de valores pares, a quantidade de valores impares, a percentagem de valores pares e a percentagem de valores impares. 10. Escrever um algoritmo que le um numero nao determinado de pares de valores M, N, todos inteiros e positivos, um par de cada vez, e calcula e escreve a soma dos N inteiros consecutivos a partir de M inclusive. 11. Escrever um algoritmo que le um numero nao determinado de conjuntos de valores, cada um formado pelo numero de um aluno e suas 3 notas. Calcular, para cada aluno, a media ponderada com pesos de 4 para a maior nota e 3 para as outras duas. Escrever o numero do aluno, suas 3 notas, a media calculada e uma mensagem "APROVADO" se media >= 5 ou "REPROVADO" para media < 5. 12. Escrever um algoritmo que le um conjunto de 15 valores, um de cada vez, acompanhado de um codigo 1 ou 2. O valor representa o numero de cobaias utilizadas em cada uma das 15 experiencias feitas e os codigos 1 e 2 representam respectivamente coelhos e ratos. Quer-se saber o total de cobaias utilizadas, o total de coelhos, o total de ratos, a percentagem de coelhos e percentagem de ratos. Escrever estes valores. 13. Escrever um algoritmo que le 50 valores, um de cada vez, e encontra e escreve o maior deles. 14. Escrever um algoritmo que le A, B, C, D, E que constituem o gabarito de uma prova de 5 questoes. Leia, a seguir, numero nao determinado de conjuntos de 6 valores NUM, A1, B1, C1, D1, E1 onde NUM e o numero do aluno e os demais valores sao as respostas do aluno as 5 questoes. Conte o numero de acertos e multiplique por 2. Escrever, para cada aluno, o seu numero e a sua nota. 15. Escrever um algoritmo que le um valor X e calcula e escreve os 20 primeiros termos da serie: 2 3 4 26

1 + 1/X + 1/X + 1/X + .... 16. Supondo que a populacao de um pais A seja da ordem de 90.000.000 de

habitantes com uma taxa anual de crescimento de 3,1% e que a populacao de um pais B seja de 200.000.000 de habitantes com uma taxa anual de crescimento de 1,5%, escrever um algoritmo que calcula quantos anos serao necessarios para que a populacao do pais A ultrapasse a do pais B, mantidas as taxas atuais de crescimento. ALGORITMOS ESPECIAIS Algoritmo para encontrar e mostrar o maior numero de uma lista de N valores lidos, um por vez. 1. ler N 2. ler V 3. M = V 4. C = 1 5. ler V 6. C = C + 1 7. se M < V entao M = V 8. se C < N entao ir para 5 9. escrever M 10. parar Algoritmo para ordenar 3 elementos quaisquer A, B, C de tal forma que se tenha ao fim do algoritmo A<B<C. 1. ler A,B,C 2. K = 0 3. se A > B entao AUX = A: A = B: B = AUX: K = 1 4. se B > C entao AUX = B: B = C: C = AUX: K = 1 5. se K <> 0 entao ir para 2 6. escrever A,B,C 7. parar Algoritmo para encontrar numeros pares entre numeros inteiros

27

1. ler N 2. C = 0 3. ler INT 4. C = C + 1 5. X = INT/2 6. Y = X . 2 7. se INT = Y entao escrever INT 8. se C < N entao ir para 3 9. parar Algoritmo de calculo do fatorial de um valor X qualquer. 1. N = int(X) 2. FAT = 1 3. para I = 1 ate N 4. FAT = FAT . I 5. proximo I 6. escrever FAT,X

28