Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Pseudocódigos Aula Anterior: ¾ Simbologia associada; Analogia com fluxogramas; ¾ Resolução de Exercícios; Já resolvidos na forma de fluxogramas; Símbolos básicos; Comando de atribuição; Comando de seleção; Trabalho de Programação 02; I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Estrutura de Controle de repetição; 9 9 9 9 9 Aula de Hoje: Estrutura de Controle de Repetição ¾ O propósito da Estrutura de Controle de Repetição (comandos de repetição) é controlar o número de vezes que um grupo de instruções será executada; Idéias Gerais Æ O que você deve saber : ¾ Cada execução de todas as instruções internas ao comando de repetição é referenciada por iteração. Assim, se o comando de repetição executar um grupo de instruções 10 vezes, houve exatamente 10 iterações; ¾ Para conseguirmos entender o princípio de funcionamento de um comando de repetição e o seu uso na resolução dos mais variados tipos de problemas, devemos ser capazes de descobrir o relacionamento entre as quantidades associadas as variáveis no interior do ciclo de repetição, entre duas iterações consecutivas quaisquer; Em outras palavras, como obter as quantidades associadas as variáveis que estão no interior do comando de repetição na iteração i, a partir da iteração (i-1) (i > 0). I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Estrutura de Controle de Repetição ¾ A Estrutura de Controle de Repetição dá origem a diferentes Comandos de Repetição. Vamos ver dois destes comandos agora e deixar o terceiro para quando aprendermos a linguagem C; Primeira Forma:Æ É usada quando você sabe “a priori”, a partir do enunciado do problema, o número exato de vezes que o comando de repetição será executado, ou seja, a quantidade de iterações a serem executadas. Exemplo 1: Determinar o número de divisores positivos de um número p (p > 0); Dado um problema é possível determinar a partir do enunciado qual forma utilizar (com um pouquinho de experiência, é claro!!!!). Exemplo 2: Somar os n (n > 0) primeiros números inteiros positivos; Exemplo 3: Obter o fatorial de n (n ≥ 0). Lembrando que: 1 0 ! ( 1)! 1 se n n n n se n =⎧= ⎨ − ≥⎩ I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Estrutura de Controle de Repetição Segunda Forma:Æ é usada quando você não sabe “a priori”, a partir do enunciado do problema, o número de vezes que o comando de repetição será executado. Esta forma dá origem a dois comandos de repetição. Vamos ver apenas um deles. Exemplo 1: Dado um valor real lim (lim ≥ 0), determine o número de termos necessários que você deve somar da Série Harmônica, para que esta soma seja superior a lim. Em outras palavras: 1 1 limH i S n ∞ = = >∑ 1 1 1 1 1 1 11 lim 2 3 4 5 6 7H S n = + + + + + + + + >" expandindo esta série, temos: Muito em breve estaremos implementando este código em C. Aguarde!!! I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Estrutura de Controle de Repetição Idéias Gerais Æ O que você deve saber : I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Você saberia dizer quantos termos teríamos que somar da SH para que a soma acumulada excedesse lim? 1 2 12.367 1.835.421 4.989.191 13.562.027 36.865.412 100.210.581 lim 0 -------------Æ 1 -------------Æ 10 -------------Æ 15 -------------Æ 16 -------------Æ 17 -------------Æ 18 -------------Æ 19 -------------Æ 1 1 1 11 lim 2 3 4H S n = + + + + + + >" " Estrutura de Controle de Repetição Idéias Gerais Æ O que você deve saber : Com a elaboração de diferentes pseudocódigos e um pouco mais de experiência, você verá que para a maioria dos problemas é absolutamente indiferente usar a 1ª ou a 2ª forma. I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Quando usar a 2ª forma (enquanto-faça), não se esqueça de determinar a condição de terminação. Tabela de Equivalência – Estrutura de Controle de Repetição Fluxograma Pseudocódigo V . . .(expressão boleana) para (exp1; exp2; exp3) inicio fim comandos; comandos proxima_instrucao; ... F 1ª Forma: sabemos exatamente quantas vezes o grupo de instruções (comandos) será executado. Neste caso, usamos uma variável de controle para contar o número de iterações. I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Estrutura de Controle de Repetição - 1ª Forma Forma Geral: Onde: exp2: é uma expressão boleana que define a condição de terminação do comando de repetição e é testada antes do início de cada iteração. Se exp2 for verdadeira, então o bloco de instruções associado ao comando para é executado, caso contrário, a proxima_instruçao será executada. exp1: é uma expressão que inicializa a variável de controle (variável que controla o número de vezes que o comando será executado). É executada uma única vez. exp3: é uma expressão que incrementa ou decrementa a variável de controle, após cada iteração. Faz o papel de um contador (incremental ou decremental). É sempre executada (automaticamente) após o último comando no interior do bloco de instruções. I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o para (exp1; exp2; exp3) inicio fim comandos; proxima_instrucao; ... Atenção. A maioria dos livros que você for ler adota uma forma sintática ligeiramente diferente do comando para, porém com o mesmo sentido. A forma adotada aqui vai facilitar nossa vida quando formos aprender a Linguagem C. Exemplo 1: ... para (i Å1; i ≤ n; i Å i+1) s Å s + i; proxima_instrucao; ... exp1: (i Å 1) - aqui a variável que controla o número de repetições é i. Onde: exp2: (i ≤ n) - condição de terminação (expressão boleana) que controla até quando a(s) instrução(ões) interna(s) será(ão) executada(s). exp3: (i Å i+1) - a variável de controle i está sendo incrementada em uma unidade. Observe que o comando de repetição acima possui uma única instrução interna. Nesse caso, não é necessário delimitar o bloco de comandos representado pelas palavras inicio e fim. I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Estrutura de Controle de Repetição - 1ª Forma exp1: i Å 1Onde: exp2: i ≤ n exp3: i Å i+1 Observe que em cada iteração desejamos executar mais de uma instrução no caso da expressão boleana (i ≤ n) ser verdadeira. Nesse caso, é necessário mostrar isso utilizando o bloco de instruções delimitado pelas palavras inicio e fim. I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Estrutura de Controle de Repetição - 1ª Forma Exemplo 2: .........exp1: expressão de inicialização; .........exp2: expressão boleana; .........exp2: expressão de incremento ou decremento; ... para (iÅ1; i ≤ n; i Å i+1) inicio num Å num*x; den Å den*i; s Å s + num/den; fim proxima_instrucao; ... Bloco de instruções Internas ao comando enquanto (expressão boleana) faça Tabela de Equivalência – Estrutura de Controle de Repetição Fluxograma Pseudocódigo inicio comandos; fim proxima_instrucao;V . . .(expressão boleana) comandos F 2ª Forma: não sabemos exatamente quantas vezes o grupo de instruções no interior do comando de repetição será executado. I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o 2ª Forma: Observem a condição de terminação (expressão boleana) no início do comando de repetição. Enquanto o valor da expressão bolena for verdadeira, todas as instruções no interior do bloco de instruções associado ao comando enquanto – faça, serão executadas. No início de cada iteração a expressão bolena é verificada. o número de iterações será determinado em tempo de execução e irá depender dos valores associados as variáveis envolvidas na expressão boleana. Estrutura de Controle de Repetição - 2ª Forma enquanto (exp. boleana) faça inicio comandos; fim proxima instrucao; I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Pelo menos uma das instruções no interior do comando de repetição deve alterar a condição de terminação. Os comandos no interior do comando de repetição enquanto-faça serão executados enquanto a expressão boleana (soma ≤ limite ) for verdadeira. Quando essa condição de terminação for falsa, então a proxima_instrucao será executada e o fluxo de execução segue normalmente. Lembrem-se que eu não posso violar o princípio da finitude de um algoritmo, logo não posso ter um loop infinito. Nesse caso as instruções estão bem definidas. Por quê? ... enquanto (soma ≤ limite ) faça inicio soma Å soma + 1/i; i Å i + 1; fim proxima_instrucao; ... I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Exemplo 1: Estrutura de Controle de Repetição - 2ª Forma ... i Å 1; enquanto (i ≤ n ) faça inicio s Å s + i; i Å i + 1; fim proxima_instrucao; ... I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Estrutura de Controle de Repetição - 2ª Forma Exemplo 2: Do ponto de vista lógico, ambos os trechos de código abaixo produzem o mesmo resultado. Observem as pequenas diferenças estruturais. ... para (i Å1; i ≤ n; i Å i+1 ) s Å s + i; proxima_instrucao; ... Æ Quase todos os exercícios a seguir já foram resolvidos por meio de fluxogramas; I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Observações Æ As discussões já realizadas sobre a análise de cada um dos problemas continuam valendo e não serão repetidas novamente; Æ Ao estudar, procure ter em mãos todas as aulas anteriores, principalmente aquelas que resolvem os mesmos problemas usando formas de representação de algoritmos diferentes. Assim, fica mais fácil verificar a correspondência entre os símbolos existentes, em ambas as formas. Problema: Somar os n primeiros números naturais. Quantidades a serem representadas: Valor de entrada (n) Representar a soma (soma) Controlar (contar) o número de iterações ( i ) Versão 1: inicio inteiro n, soma, i; impressao(“Introduza o valor de n: ”); leitura(n); // n≥0 soma Å 0 ; // inicializando a variável soma para (i Å 1; i ≤ n; i Å i+1) soma Å soma + i ; impressao(“Valor da Soma obtido”, soma); fimI C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Para a maioria dos exercícios a seguir, vamos admitir que os dados de entrada estejam corretos. Problema: Somar os n primeiros números naturais. Quantidades a serem representadas: Valor de entrada (n) Representar a soma (soma) Controlar (contar) o número de iterações ( i ) Versão 2: inicio inteiro n, soma, i; impressao(“Introduza o valor de n : ”); leitura(n); // n≥0 i Å 1; soma Å 0 ; enquanto (i ≤ n) faça inicio i Å i + 1 ; soma Å soma + i; fim impressao(“Valor da Soma obtido”, soma); fimI C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Problema: Imprimir os n primeiros números ímpares. inicio inteiro n, i, im; impressao(“Introduza um valor inteiro”); leitura(n); // n>0 Valor de entrada (n) para (i Å 1; i ≤ n; i Å i + 1) inicio fim im Å 2*i – 1; Número ímpar (im) Número de iterações (i) impressao(im); fim I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Quantidades a serem representadas: Problema: Encontrar o fatorial de um número inteiro positivo n. Número de entrada (n) Fatorial ( fat ) Conta o número de iterações ( i ) I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Quantidades a serem representadas:c 1 0 ! ( 1)! 1 se n n n n se n =⎧= ⎨ − ≥⎩ 1 ! .( 1).( 2).( 3) 3.2.1 n i n i n n n n = = = − − −∏ " intervalo de variável i fat ÅÅ fat **iExpressão que acumula o produto:Æ Lembrando que: Problema: Encontrar o fatorial de um número inteiro positivo n. inicio inteiro n, fat, i; impressao(“Introduza um inteiro positivo”); leitura(n); // n≥0 Número de entrada (n) fat Å 1 ; Fatorial ( fat ) Iteração ( i ) para (i Å 1; i ≤ n; i Å i + 1) fat Å fat * i ; impressao(“Valor do Fatorial=”, fat); fim I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Quantidades a serem representadas: se (n ≥ 0) // n≥0 inicioentão fim senão impressao(“Erro nos dados de Entrada”); Versão 1: Problema: Encontrar o fatorial de um número inteiro positivo n. Número de entrada (n) Fatorial ( fat ) Iteração ( i ) I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Quantidades a serem representadas: enquanto (i ≤ n) faça inicio i Å i + 1; fat Å fat * i; fim impressao(“Valor do Fatorial=”, fat); fim inicio inteiro n, fat, i; impressao(“Introduza um inteiro positivo”); leitura(n); // vamos admitir n≥0 fat Å 1; iÅ 1; Versão 2: Problema: Dado um p > 0 inteiro, encontre todos os divisores positivos de p e sua respectiva quantidade. Quantidade de divisores (q) Conta o número de iterações ( i ) número (p) I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Quantidades a serem representadas: \0 10 1 pp Todos os divisores positivos de p 1 ≤≤ variável i ≤≤ p Lembrando que: Problema: Dado um p > 0 inteiro, encontre todos os divisores positivos de p e sua respectiva quantidade. inicio inteiro p, i, q; impressao(“Introduza o valor de p”); leitura (p); // p>0 i Å 1 ; Quantidade de divisores (q) Conta o número de iterações ( i ) q Å 0 ; enquanto (i ≤ p) faça inicio i Å i + 1 ; q Å q + 1 ; fim impressao(“Número de divisores”, q); fim impressao(i); se ((p % i) = 0 ) entao inicio fim número (p) I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Quantidades a serem representadas: Número (p) Problema: Verificar se um número inteiro positivo p qualquer é um número perfeito. Soma dos divisores (soma) Contar o número de iterações ( i ) Quantidades a serem representadas: I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Um número p (p>0) é perfeito, se a soma de seus divisores (com exceção de p) é igual ao próprio número. Exemplo1: D(10) = {1,2,5,10} Soma(D(10)) = 8X 10 ≠ 8 Exemplo2: D(6) = {1,2,3,6} Soma(D(6)) = 6X 6 = 6 Exemplo3: D(28) = {1, 2, 4, 7, 14, 28} Soma(D(28)) = 28X 28 = 28 X 9 9 Lembrando que: Os primeiros 4 números perfeitos são: 6, 28, 496 e 8128. Número (p) Problema: Verificar se um número inteiro positivo p qualquer é um número perfeito. Soma dos divisores (soma) Contar o número de iterações ( i ) Quantidades a serem representadas: I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Lembrando que: \0 10 1 pp Todos os divisores positivos de p com exceção dele mesmo 1 ≤≤ variável i ≤≤ p-1 inicio inteiro p, i, soma; impressao(“Introduza o valor de p”); leitura(p); // supondo p>0 Número (p) i Å 1; soma Å 0; enquanto (i < p) faça inicio i Å i + 1; fim senao impressao(“O número não é perfeito”); fim se ((p % i) = 0 ) entao soma Å soma + i; Problema: Verificar se um número inteiro positivo p qualquer é um número perfeito. Soma dos divisores (soma) Contar o número de iterações ( i ) se (p = soma ) entao impressao(“O número é perfeito”); Quantidades a serem representadas: I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Base (a) Expoente (b) Problema: Calcular ab, dado a:real e b: inteiro positivo. Potência (pot) Contar o número de iterações ( i ) Quantidades a serem representadas: I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o . . . . . . .bpot a a a a a a a a a= = " b vezes Lembrando que: inicio inteiro b, i; impressao(“Introduza o valor da base”); leitura(a); Base (a) Expoente (b) i Å 1; pot Å 1; enquanto (i ≤ b) faça inicio i Å i + 1; fim fim Problema: Calcular ab, dado a:real e b: inteiro positivo. impressao(“Resultado: Pot(“,a,”,”,b,”) = ” , pot); real a, pot; impressao(“Introduza o valor do expoente”); leitura(b); // b≥0 pot Å pot*a; Potência (pot) Contar o número de iterações ( i ) Quantidades a serem representadas: I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o inicio inteiro a, b, soma, i; impressao(“Introduza dois numeros naturais: ”); leitura(a,b); // a, b ≥0 Valores de entrada (a e b) soma Å 0; para (i Å 1; i ≤ b; i Åi + 1) fim Problema: Fazer o produto de a por b (inteiros positivos), usando somente operações de soma. impressao(“Resultado:” , soma); soma Å soma + a; Acumular a soma (soma) Contar o número de iterações ( i ) Quantidades a serem representadas: I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o .a b a a a a a a a a= + + + + + + + +" b vezes Lembrando que: Valores de entrada (a,b) Quociente (parte inteira da divisão) (q) Problema: Fazer a divisão inteira de a por b, usando somente operações de subtração. I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Quantidades a serem representadas: 00 aa bb bb bb bb bb bb restoresto Quantidade de vezes que o b “cabe” dentro de a Lembrando que: inicio inteiro a, b, q, ca; impressao(“Introduza o valor de a: ”); leitura (a); Valores de entrada (a,b) Quociente (parte inteira da divisão) (q) Cópia de a (ca) q Å 0; ca Å a; enquanto (a ≥ b) faça inicio q Å q + 1; fim fim impressao(“Introduza o valor de b:”); leitura (b); // b>0 a Å a – b; Problema: Fazer a divisão inteira de a por b, usando somente operações de subtração. impressao(“Resto(“,ca,”,”,b,”)= “, a);I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o impressao(“Quociente(“,ca,”,”,b,”) = “, q); Quantidades a serem representadas: inicio inteiro n, alg, cn; impressao(“Introduza um valor inteiro”); leitura(n); // n≥ 0 se ( n < 10) entao alg Å1; Problema: Dado um n ∈Z*. Encontrar o número de Algarismos de n. inicio fim alg Å alg + 1; n Å QUOC(n,10); fim impressao(“Número de algarismo de ”, cn , “é igual a”, alg); alg Å 0 ; cn Å n; Valor de entrada (n) Cópia de n (cn) Número de algarismos de n (alg) I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Quantidades a serem representadas: senao enquanto (n ≠ 0) faça Problema: Dado um número p ∈ Z, p ≥ 2, verificar se ele é primo. (Versão Simples) I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o \0 1 20 1 2 pp Verificando se existe algum divisor neste intervalo 2 ≤≤ variável i ≤≤ p-1 Estratégia: Sabemos pela definição de números primos que não pode existir nenhum divisor de p, além dos divisores próprios. Logo, vou verificar se existe divisores de p no intervalo [2, p-1]. Se existir um único divisor o número não é primo. Uma outra estratégia bastante simples, seria contar o número de divisores de p no intervalo [1, p]. Se este número for diferente de dois, então, o número não é primo. Problema: Dado um número p ∈ Z, p ≥ 2, verificar se ele é primo. (Versão Simples) inicio inteiro p, aux, i; impressao(“Introduza um valor inteiro maior ou igual a 2”); leitura(p); // p ≥ 2 número (p) enquanto ((i < p) E (aux = 1)) faça inicio fim Variável auxiliar (aux) Controlando as iterações (i) então impressao (“O número “, p, “ é primo”); i Å i + 1; i Å 2; aux Å 1; se (p % i) = 0 ) entao aux Å 0; se (aux = 1 ) senao impressao (“O número “, p, “ não é primo”); se (p ≥ 2) entao inicio senao impressao(“Dados Incorretos”); fim fim I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Quantidades a serem representadas: Problema: Dado um número real positivo LIM, determinar o número de termos a serem somados da Série Harmônica, de modo que, essa soma exceda LIM. I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o 1 1 1 1 1 1 1 1 1 11 2 3 4 5 6 7 8 9 10 11H S = + + + + + + + + + + +" Análise básica do problema: 1 2 3 4 5 6 7 8 9 10 11 FATOS: ÆTemos que ser capazes de somar uma dada quantidade de termos da série e para que isso ocorra, devemos gerar em cada iteração o respectivo termo; Æ Enquanto a soma acumulada for menor ou igual ao valor LIM, eu continuo a somar; 1 ≤≤ variável i Problema: Dado um número real positivo LIM, determinar o número de termos a serem somados da Série Harmônica, de modo que, essa soma exceda LIM. I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Número (lim) Soma acumulada (soma) Auxiliar na Geração dos termos (i) Quantidades a serem representadas: inicio inteiro i; real soma, lim; impressao(“Introduza um valor real positivo :”); leitura (lim); // lim ≥ 0 enquanto (soma ≤ lim) faça inicio fim impressao(“Número de termos somados: “, i-1); i Å i + 1; i Å 1; soma Å 0; soma Å soma + 1.0/i; se (lim ≥ 0) entao inicio senao impressao(“Dados Incorretos”);fim fim I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Se app é uma boa aproximação para , então ( ) / 2x app app + é melhor ainda. x Você saberia dizer “a priori” o número de iterações necessárias para resolver o problema com uma boa aproximação? Problema: Dado um número real positivo x≥0, determinar usando a relação abaixo. x I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Problema: Dado um número real positivo x≥0, determinar usando a relação abaixo. x Se app é uma boa aproximação para , então ( ) / 2x app app + é melhor ainda. x \0 1 0 1 x app app app app app Análise básica do problema: I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o x app≅ 2| |x app eps− < 2 0x app− ≅ Vamos analisar a condição de terminação, ou seja, até quando eu devo continuar com minhas aproximações? Em outras palavras, quando eu devo parar. 2x app≅ 10 , 6 12.(suficientemente pequeno)neps n−= ≤ ≤ Análise básica do problema: I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Problema: Dado um número real positivo x≥0, determinar usando a relação abaixo. x Número (x) Valor aproximado (app) Número bem pequeno (eps) Quantidades a serem representadas: inicio real app, x, eps; impressao (“Introduza um valor real positivo :”); leitura (x); // x ≥ 0 enquanto ( |x – app*app| > eps) faça impressao (“Valor aproximado obtido: “, app); app Å 1.0; eps Å 0.000001; app Å ( x/app + app)/2.0; se (x ≥ 0) entao inicio senao impressao (“Dados Incorretos”);fim fim I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o Exercícios 01) Refaça todos os exercícios já resolvidos com o comando for, só que agora, usando o comando while. 02) Se app é uma boa aproximação para , então 2( 2 ) / 3 x app app + é melhor ainda. 3 x 03) Leia um número inteiro num e encontre o seu reverso. Por exemplo, se: num = 1234 Æ nr = 4321 num = 74291 Æ nr = 19247 04) Leia um número inteiro num e verifique se esse número possui dois dígitos adjacentes iguais. Por exemplo num = 1234 Æ não possui num = 727297 Æ não possui num = 2335 Æ possui 2º Trabalho Prático de Programação - Pseudocódigos I C C - P s e u d o c ó d i g o s / E s t r u t u r a d e C o n t r o l e d e R e p e t i ç ã o ¾ Prazo de Entrega: 23/04/2008; Observações:Æ ¾ Enviar o trabalho num único arquivo para o e.mail piteri@fct.unesp.br ; ¾ Os nomes dos participantes do grupo deverão estar no interior do arquivo e não no corpo do e.mail; Trabalho:Æ Elaborar pseudocódigos para resolver os seguintes problemas: Exercícios: 15, 22 e 34 da Lista 01. ¾ Se desejarem, vocês poderão fazer uma análise básica do problema; ¾ Procurem endentar os blocos de instruções e destacar os símbolos associados a cada um dos comandos utilizados. Observem as Notas de Aula;