56
4 a Aula - Fun¸ oes de Intervalo (II). Ciclo for. Leitura e Escrita em Ficheiros. Programa¸ ao Mestrado em Engenharia F´ ısica Tecnol´ ogica Samuel M. Eleut´ erio [email protected] Departamento de F´ ısica Instituto Superior T´ ecnico Universidade de Lisboa Mestrado em Engenharia F´ ısicaTecnol´ogica Programa¸c˜ ao - 4 a Aula (26.09.2018)

Programação Mestrado em Engenharia Física Tecnológica · 4a Aula - Fun˘c~oes de Intervalo (II). Ciclofor. Leitura e Escrita em Ficheiros. Programa˘c~ao Mestrado em Engenharia

Embed Size (px)

Citation preview

4a Aula - Funcoes de Intervalo (II).

Ciclo for. Leitura e Escrita em Ficheiros.

ProgramacaoMestrado em Engenharia Fısica Tecnologica

Samuel M. [email protected]

Departamento de FısicaInstituto Superior Tecnico

Universidade de Lisboa

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Dinamica de Populacoes - Funcao Logıstica

Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:

x ∈ [0, 1]

Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:

xn+1 = f(xn)

Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;

Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:

µ(x) = r (1− x) ⇒ xn+1 = r xn (1− xn)

a que se da o nome de funcao logıstica.

Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Dinamica de Populacoes - Funcao Logıstica

Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:

x ∈ [0, 1]

Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:

xn+1 = f(xn)

Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;

Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:

µ(x) = r (1− x) ⇒ xn+1 = r xn (1− xn)

a que se da o nome de funcao logıstica.

Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Dinamica de Populacoes - Funcao Logıstica

Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:

x ∈ [0, 1]

Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:

xn+1 = f(xn)

Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;

Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:

µ(x) = r (1− x) ⇒ xn+1 = r xn (1− xn)

a que se da o nome de funcao logıstica.

Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Dinamica de Populacoes - Funcao Logıstica

Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:

x ∈ [0, 1]

Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:

xn+1 = f(xn)

Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;

Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:

µ(x) = r (1− x) ⇒ xn+1 = r xn (1− xn)

a que se da o nome de funcao logıstica.

Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Dinamica de Populacoes - Funcao Logıstica

Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:

x ∈ [0, 1]

Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:

xn+1 = f(xn)

Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;

Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:

µ(x) = r (1− x) ⇒ xn+1 = r xn (1− xn)

a que se da o nome de funcao logıstica.

Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Dinamica de Populacoes - Funcao Logıstica

Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:

x ∈ [0, 1]

Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:

xn+1 = f(xn)

Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;

Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:

µ(x) = r (1− x)

⇒ xn+1 = r xn (1− xn)

a que se da o nome de funcao logıstica.

Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Dinamica de Populacoes - Funcao Logıstica

Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:

x ∈ [0, 1]

Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:

xn+1 = f(xn)

Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;

Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:

µ(x) = r (1− x) ⇒ xn+1 = r xn (1− xn)

a que se da o nome de funcao logıstica.

Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Dinamica de Populacoes - Funcao Logıstica

Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:

x ∈ [0, 1]

Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:

xn+1 = f(xn)

Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;

Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:

µ(x) = r (1− x) ⇒ xn+1 = r xn (1− xn)

a que se da o nome de funcao logıstica.

Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Dinamica de Populacoes - Funcao Logıstica

Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:

x ∈ [0, 1]

Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:

xn+1 = f(xn)

Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;

Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:

µ(x) = r (1− x) ⇒ xn+1 = r xn (1− xn)

a que se da o nome de funcao logıstica.

Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Funcao Logıstica (’Prog05 01.c’)Facamos entao um programa para calcular a funcao logıstica:

#include <stdio.h>int main (){

float x, r ;int i ;i = 0;r = .4 ;x = 0.75;while (i <= 20){

printf (”%d: x = %f\n”,i,x);x = r * x * (1 - x);++i;}

return 0;}

}

Programa e identico ao anteriorcom o ajuste da funcao;

Igualmente poderiamos integraro incremento da variavel i nocomando do printf;

Note-se os sinais ++ foramcolocados depois o i para que avariavel so seja incrementadadepois de ser passada para afuncao printf.

Note-se que a inicializacaoduma variavel pode sersimultanea a sua declaracao;

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Funcao Logıstica (’Prog05 01.c’)Facamos entao um programa para calcular a funcao logıstica:

#include <stdio.h>int main (){

float x, r ;int i ;i = 0;r = .4 ;x = 0.75;while (i <= 20){

printf (”%d: x = %f\n”,i,x);x = r * x * (1 - x);++i;}

return 0;}

}

Programa e identico ao anteriorcom o ajuste da funcao;

Igualmente poderiamos integraro incremento da variavel i nocomando do printf;

Note-se os sinais ++ foramcolocados depois o i para que avariavel so seja incrementadadepois de ser passada para afuncao printf.

Note-se que a inicializacaoduma variavel pode sersimultanea a sua declaracao;

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Funcao Logıstica (’Prog05 01.c’)Facamos entao um programa para calcular a funcao logıstica:

#include <stdio.h>int main (){

float x, r ;int i ;i = 0;r = .4 ;x = 0.75;while (i <= 20){

printf (”%d: x = %f\n”,i,x);x = r * x * (1 - x);++i;}

return 0;}

}

Programa e identico ao anteriorcom o ajuste da funcao;

Igualmente poderiamos integraro incremento da variavel i nocomando do printf;

Note-se os sinais ++ foramcolocados depois o i para que avariavel so seja incrementadadepois de ser passada para afuncao printf.

Note-se que a inicializacaoduma variavel pode sersimultanea a sua declaracao;

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Funcao Logıstica (’Prog05 01.c’)

Facamos entao um programa para calcular a funcao logıstica:

#include <stdio.h>int main (){

float x, r ;int i ;i = 0;r = .4 ;x = 0.75;while (i <= 20){

printf (”%d: x = %f\n”,i++,x);x = r * x * (1 - x);}

return 0;

}

}

Programa e identico ao anteriorcom o ajuste da funcao;

Igualmente poderiamos integraro incremento da variavel i nocomando do printf;

Note-se os sinais ++ foramcolocados depois o i para que avariavel so seja incrementadadepois de ser passada para afuncao printf.

Note-se que a inicializacaoduma variavel pode sersimultanea a sua declaracao;

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Funcao Logıstica (’Prog05 01.c’)

Facamos entao um programa para calcular a funcao logıstica:

#include <stdio.h>int main (){

float x, r ;int i ;i = 0;r = .4 ;x = 0.75;while (i <= 20){

printf (”%d: x = %f\n”,i++,x);x = r * x * (1 - x);}

return 0;

}

}

Programa e identico ao anteriorcom o ajuste da funcao;

Igualmente poderiamos integraro incremento da variavel i nocomando do printf;

Note-se os sinais ++ foramcolocados depois o i para que avariavel so seja incrementadadepois de ser passada para afuncao printf.

Note-se que a inicializacaoduma variavel pode sersimultanea a sua declaracao;

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Funcao Logıstica (’Prog05 01.c’)

Facamos entao um programa para calcular a funcao logıstica:

#include <stdio.h>int main (){

float x, r ;int i ;i = 0;r = .4 ;x = 0.75;while (i <= 20){

printf (”%d: x = %f\n”,i++,x);x = r * x * (1 - x);}

return 0;

}

}

Programa e identico ao anteriorcom o ajuste da funcao;

Igualmente poderiamos integraro incremento da variavel i nocomando do printf;

Note-se os sinais ++ foramcolocados depois o i para que avariavel so seja incrementadadepois de ser passada para afuncao printf.

Note-se que a inicializacaoduma variavel pode sersimultanea a sua declaracao;

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Funcao Logıstica (’Prog05 01.c’)

Facamos entao um programa para calcular a funcao logıstica:

#include <stdio.h>int main (){

float x, r ;int i = 0;r = .4 ;x = 0.75;while (i <= 20){

printf (”%d: x = %f\n”,i++,x);x = r * x * (1 - x);}

return 0;

}

}

Programa e identico ao anteriorcom o ajuste da funcao;

Igualmente poderiamos integraro incremento da variavel i nocomando do printf;

Note-se os sinais ++ foramcolocados depois o i para que avariavel so seja incrementadadepois de ser passada para afuncao printf.

Note-se que a inicializacaoduma variavel pode sersimultanea a sua declaracao;

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Leitura de Dados a Partir da Shell

Vamos alterar o nosso programa (Prog05 01.c) para permitirnovas leituras (ver Prog05 02a4.c). Para permitir a introducaodo valor do parametro µ, em tempo real, a partir do teclado.

Assim, a linha de inicializacao da variavel r:

r = 0.4;

podera ser substituıda por

printf(”Escreva, por favor, o valor do parametro ’r’: ”);scanf (”%f ”, &r);

A tıtulo de verificacao podemos acrescentar mais uma linhapara imprimir no ecran a leitura efectuada:

printf (”Leu o valor %f\n”, r);Podemos igualmente pedir a para ler a condicao inicial xo :

printf (”Escreva, por favor, a condicao inicial de ’x’: ”);scanf (”%f ”, &x);

Podemos igualmente juntar as duas leituras.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Leitura de Dados a Partir da Shell

Vamos alterar o nosso programa (Prog05 01.c) para permitirnovas leituras (ver Prog05 02a4.c). Para permitir a introducaodo valor do parametro µ, em tempo real, a partir do teclado.Assim, a linha de inicializacao da variavel r:

r = 0.4;

podera ser substituıda por

printf(”Escreva, por favor, o valor do parametro ’r’: ”);scanf (”%f ”, &r);

A tıtulo de verificacao podemos acrescentar mais uma linhapara imprimir no ecran a leitura efectuada:

printf (”Leu o valor %f\n”, r);Podemos igualmente pedir a para ler a condicao inicial xo :

printf (”Escreva, por favor, a condicao inicial de ’x’: ”);scanf (”%f ”, &x);

Podemos igualmente juntar as duas leituras.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Leitura de Dados a Partir da Shell

Vamos alterar o nosso programa (Prog05 01.c) para permitirnovas leituras (ver Prog05 02a4.c). Para permitir a introducaodo valor do parametro µ, em tempo real, a partir do teclado.Assim, a linha de inicializacao da variavel r:

r = 0.4;

podera ser substituıda por

printf(”Escreva, por favor, o valor do parametro ’r’: ”);scanf (”%f ”, &r);

A tıtulo de verificacao podemos acrescentar mais uma linhapara imprimir no ecran a leitura efectuada:

printf (”Leu o valor %f\n”, r);Podemos igualmente pedir a para ler a condicao inicial xo :

printf (”Escreva, por favor, a condicao inicial de ’x’: ”);scanf (”%f ”, &x);

Podemos igualmente juntar as duas leituras.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Leitura de Dados a Partir da Shell

Vamos alterar o nosso programa (Prog05 01.c) para permitirnovas leituras (ver Prog05 02a4.c). Para permitir a introducaodo valor do parametro µ, em tempo real, a partir do teclado.Assim, a linha de inicializacao da variavel r:

r = 0.4;

podera ser substituıda por

printf(”Escreva, por favor, o valor do parametro ’r’: ”);scanf (”%f ”, &r);

A tıtulo de verificacao podemos acrescentar mais uma linhapara imprimir no ecran a leitura efectuada:

printf (”Leu o valor %f\n”, r);

Podemos igualmente pedir a para ler a condicao inicial xo :

printf (”Escreva, por favor, a condicao inicial de ’x’: ”);scanf (”%f ”, &x);

Podemos igualmente juntar as duas leituras.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Leitura de Dados a Partir da Shell

Vamos alterar o nosso programa (Prog05 01.c) para permitirnovas leituras (ver Prog05 02a4.c). Para permitir a introducaodo valor do parametro µ, em tempo real, a partir do teclado.Assim, a linha de inicializacao da variavel r:

r = 0.4;

podera ser substituıda por

printf(”Escreva, por favor, o valor do parametro ’r’: ”);scanf (”%f ”, &r);

A tıtulo de verificacao podemos acrescentar mais uma linhapara imprimir no ecran a leitura efectuada:

printf (”Leu o valor %f\n”, r);Podemos igualmente pedir a para ler a condicao inicial xo :

printf (”Escreva, por favor, a condicao inicial de ’x’: ”);scanf (”%f ”, &x);

Podemos igualmente juntar as duas leituras.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Leitura de Dados a Partir da Shell

Vamos alterar o nosso programa (Prog05 01.c) para permitirnovas leituras (ver Prog05 02a4.c). Para permitir a introducaodo valor do parametro µ, em tempo real, a partir do teclado.Assim, a linha de inicializacao da variavel r:

r = 0.4;

podera ser substituıda por

printf(”Escreva, por favor, o valor do parametro ’r’: ”);scanf (”%f ”, &r);

A tıtulo de verificacao podemos acrescentar mais uma linhapara imprimir no ecran a leitura efectuada:

printf (”Leu o valor %f\n”, r);Podemos igualmente pedir a para ler a condicao inicial xo :

printf (”Escreva, por favor, a condicao inicial de ’x’: ”);scanf (”%f ”, &x);

Podemos igualmente juntar as duas leituras.Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Funcao Logıstica - Graficos

Graficos da funcao logıstica para diferentes valores de µ com xo = 0.7

0

0.2

0.4

0.6

0.8

1

0 1 2 3 4 5 6 7 8 9

x

i

Fig.1 - µ = 0.4

0

0.2

0.4

0.6

0.8

1

0 10 20 30 40 50 60

x

i

Fig.3 - µ = 3.2

0

0.2

0.4

0.6

0.8

1

0 2 4 6 8 10 12 14 16 18 20

x

i

Fig.2 - µ = 2.5

0

0.2

0.4

0.6

0.8

1

0 10 20 30 40 50 60

x

i

Fig.4 - µ = 3.5

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Funcao Logıstica

0

0.2

0.4

0.6

0.8

1

0 0.5 1 1.5 2 2.5 3 3.5 4

x

rFig.5 - Orbitas periodicas no intervalo µ ∈ [0, 4]

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Funcao Logıstica

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

3.82 3.83 3.84 3.85 3.86 3.87

x

rFig.6 - Zona de estabilidade µ ∈ [3.82, 3.87]

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Funcao Logıstica – Maxima

A visualizacao dos graficos anteriores pode ser feita usando o sistemade computacao algebrica maxima (xmaxima). Podem usar-se asseguintes intrucoes:

> xmaxima

(%i1) load (”dynamics”);

(%i2) evolution (0.4*x*(1-x), 0.7, 200, [style, lines], [y, 0, 1]);

(%i3) evolution (1.0*x*(1-x), 0.7, 200, [style, lines], [y, 0, 1]);

(%i4) evolution (2.5*x*(1-x), 0.7, 200, [style, dots], [y, 0, 1]);

(%i5) evolution (3.2*x*(1-x), 0.7, 100, [style, dots]);

(%i6) evolution (3.2*x*(1-x), 0.7, 100, [style, lines], [y, 0, 1]);

(%i7) evolution (3.2*x*(1-x), 0.7, 200, [style, points], [y, 0, 1]);

(%i8) evolution (3.5*x*(1-x), 0.7, 2000, [style, dots]);

(%i9) orbits(x*r*(1-x), 0.7, 50, 200, [r, 0, 4], [style, dots]);

(%i10) orbits(x*r*(1-x), 0.7, 50, 200, [r, 3.82, 3.87], [style, dots]);

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (I)

Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.

Para poder decidir, e necessario usar uma instrucao condicional:

if (Condicao) { ... } else { ... }

Os operadores logicos, usados em C, sao os seguintes:

• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;

Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (I)

Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:

if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:

• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;

Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (I)

Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:

if (Condicao) { ... } else { ... }

Os operadores logicos, usados em C, sao os seguintes:

• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;

Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (I)

Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:

if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:

• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;

Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (I)

Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:

if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:• A igualdade faz-se com dois sinais de igual: ’==’;

• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;

Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (I)

Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:

if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;

• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;

Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (I)

Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:

if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;

• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;

Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (I)

Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:

if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;

• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;

Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (I)

Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:

if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;

• A negacao e feita por um ponto de exclamacao ’!’;

Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (I)

Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:

if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;

Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (I)

Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:

if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;

Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.

O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (I)

Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:

if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;

Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (II) (Prog05 05.c)

Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.

Seja entao o ciclo:x1 = x;while (i <= 20){

printf (”%d: %f\n”,i,x);x = r * x * (1. - x);if (x1 == x)

x1 = x;++i;}

Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x

e,a cada iteracao, facamos a suaactualizacao;

Depois de actualizar a variavel x

,podemos introduzir a expressaocondicional que testa a igualdade;

Se a igualdade for satisfeita,queremos parar o loop.

Tal podeser feito usando a instrucao break.

O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.

1Note-se que isto so e valido quando os valores sao todos iguais.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (II) (Prog05 05.c)

Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.Seja entao o ciclo:

x1 = x;

while (i <= 20){

printf (”%d: %f\n”,i,x);x = r * x * (1. - x);

if (x1 == x)

x1 = x;

++i;}

Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x

e,a cada iteracao, facamos a suaactualizacao;

Depois de actualizar a variavel x

,podemos introduzir a expressaocondicional que testa a igualdade;

Se a igualdade for satisfeita,queremos parar o loop.

Tal podeser feito usando a instrucao break.

O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.

1Note-se que isto so e valido quando os valores sao todos iguais.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (II) (Prog05 05.c)

Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.Seja entao o ciclo:

x1 = x;while (i <= 20){

printf (”%d: %f\n”,i,x);x = r * x * (1. - x);

if (x1 == x)

x1 = x;

++i;}

Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x

e,a cada iteracao, facamos a suaactualizacao;

Depois de actualizar a variavel x

,podemos introduzir a expressaocondicional que testa a igualdade;

Se a igualdade for satisfeita,queremos parar o loop.

Tal podeser feito usando a instrucao break.

O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.

1Note-se que isto so e valido quando os valores sao todos iguais.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (II) (Prog05 05.c)

Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.Seja entao o ciclo:

x1 = x;while (i <= 20){

printf (”%d: %f\n”,i,x);x = r * x * (1. - x);

if (x1 == x)

x1 = x;++i;}

Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x e,a cada iteracao, facamos a suaactualizacao;

Depois de actualizar a variavel x

,podemos introduzir a expressaocondicional que testa a igualdade;

Se a igualdade for satisfeita,queremos parar o loop.

Tal podeser feito usando a instrucao break.

O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.

1Note-se que isto so e valido quando os valores sao todos iguais.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (II) (Prog05 05.c)

Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.Seja entao o ciclo:

x1 = x;while (i <= 20){

printf (”%d: %f\n”,i,x);x = r * x * (1. - x);

if (x1 == x)

x1 = x;++i;}

Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x e,a cada iteracao, facamos a suaactualizacao;

Depois de actualizar a variavel x

,podemos introduzir a expressaocondicional que testa a igualdade;

Se a igualdade for satisfeita,queremos parar o loop.

Tal podeser feito usando a instrucao break.

O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.

1Note-se que isto so e valido quando os valores sao todos iguais.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (II) (Prog05 05.c)

Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.Seja entao o ciclo:

x1 = x;while (i <= 20){

printf (”%d: %f\n”,i,x);x = r * x * (1. - x);if (x1 == x){ ... }

x1 = x;++i;}

Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x e,a cada iteracao, facamos a suaactualizacao;

Depois de actualizar a variavel x,podemos introduzir a expressaocondicional que testa a igualdade;

Se a igualdade for satisfeita,queremos parar o loop.

Tal podeser feito usando a instrucao break.

O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.

1Note-se que isto so e valido quando os valores sao todos iguais.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (II) (Prog05 05.c)

Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.Seja entao o ciclo:

x1 = x;while (i <= 20){

printf (”%d: %f\n”,i,x);x = r * x * (1. - x);if (x1 == x){ ... }

x1 = x;++i;}

Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x e,a cada iteracao, facamos a suaactualizacao;

Depois de actualizar a variavel x,podemos introduzir a expressaocondicional que testa a igualdade;

Se a igualdade for satisfeita,queremos parar o loop.

Tal podeser feito usando a instrucao break.

O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.

1Note-se que isto so e valido quando os valores sao todos iguais.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (II) (Prog05 05.c)

Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.Seja entao o ciclo:

x1 = x;while (i <= 20){

printf (”%d: %f\n”,i,x);x = r * x * (1. - x);if (x1 == x)

break;x1 = x;++i;}

Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x e,a cada iteracao, facamos a suaactualizacao;

Depois de actualizar a variavel x,podemos introduzir a expressaocondicional que testa a igualdade;

Se a igualdade for satisfeita,queremos parar o loop. Tal podeser feito usando a instrucao break.

O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.

1Note-se que isto so e valido quando os valores sao todos iguais.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (II) (Prog05 05.c)

Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.Seja entao o ciclo:

x1 = x;while (i <= 20){

printf (”%d: %f\n”,i,x);x = r * x * (1. - x);if (x1 == x)

break;x1 = x;++i;}

Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x e,a cada iteracao, facamos a suaactualizacao;

Depois de actualizar a variavel x,podemos introduzir a expressaocondicional que testa a igualdade;

Se a igualdade for satisfeita,queremos parar o loop. Tal podeser feito usando a instrucao break.

O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.

1Note-se que isto so e valido quando os valores sao todos iguais.

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (III) (Prog05 06.c)

A condicao de igualdade, vista no exemplo anterior, so muitolentamente e obtida, pois, a tendencia assimptotica podedemorar ate atingir a igualdade.

Por isso, e conveniente fazer uma ligeira alteracao a condicaode igualdade e transforma-la numa relacao de proximidade;

Podemos exigir, por exemplo, que a distancia entre dois valoresseja inferior a 10−6:

−10−6 < (xn+1 − xn) < 10−6

Podemos entao substituir a condicao (x1 == x) por:(((x1 – x) > –1.e–6) && ((x1 – x) < 1.e–6))

Mas isto e uma condicao sobre modulo da diferenca:

(fabs (x1 – x) < 1.e–6)A funcao de C, modulo de um real, e fabs e encontra-se definidaem math.h, assim devemos fazer o include:

#include <math.h>

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (III) (Prog05 06.c)

A condicao de igualdade, vista no exemplo anterior, so muitolentamente e obtida, pois, a tendencia assimptotica podedemorar ate atingir a igualdade.

Por isso, e conveniente fazer uma ligeira alteracao a condicaode igualdade e transforma-la numa relacao de proximidade;

Podemos exigir, por exemplo, que a distancia entre dois valoresseja inferior a 10−6:

−10−6 < (xn+1 − xn) < 10−6

Podemos entao substituir a condicao (x1 == x) por:(((x1 – x) > –1.e–6) && ((x1 – x) < 1.e–6))

Mas isto e uma condicao sobre modulo da diferenca:

(fabs (x1 – x) < 1.e–6)A funcao de C, modulo de um real, e fabs e encontra-se definidaem math.h, assim devemos fazer o include:

#include <math.h>

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (III) (Prog05 06.c)

A condicao de igualdade, vista no exemplo anterior, so muitolentamente e obtida, pois, a tendencia assimptotica podedemorar ate atingir a igualdade.

Por isso, e conveniente fazer uma ligeira alteracao a condicaode igualdade e transforma-la numa relacao de proximidade;

Podemos exigir, por exemplo, que a distancia entre dois valoresseja inferior a 10−6:

−10−6 < (xn+1 − xn) < 10−6

Podemos entao substituir a condicao (x1 == x) por:(((x1 – x) > –1.e–6) && ((x1 – x) < 1.e–6))

Mas isto e uma condicao sobre modulo da diferenca:

(fabs (x1 – x) < 1.e–6)A funcao de C, modulo de um real, e fabs e encontra-se definidaem math.h, assim devemos fazer o include:

#include <math.h>

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (III) (Prog05 06.c)

A condicao de igualdade, vista no exemplo anterior, so muitolentamente e obtida, pois, a tendencia assimptotica podedemorar ate atingir a igualdade.

Por isso, e conveniente fazer uma ligeira alteracao a condicaode igualdade e transforma-la numa relacao de proximidade;

Podemos exigir, por exemplo, que a distancia entre dois valoresseja inferior a 10−6:

−10−6 < (xn+1 − xn) < 10−6

Podemos entao substituir a condicao (x1 == x) por:(((x1 – x) > –1.e–6) && ((x1 – x) < 1.e–6))

Mas isto e uma condicao sobre modulo da diferenca:

(fabs (x1 – x) < 1.e–6)A funcao de C, modulo de um real, e fabs e encontra-se definidaem math.h, assim devemos fazer o include:

#include <math.h>

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (III) (Prog05 06.c)

A condicao de igualdade, vista no exemplo anterior, so muitolentamente e obtida, pois, a tendencia assimptotica podedemorar ate atingir a igualdade.

Por isso, e conveniente fazer uma ligeira alteracao a condicaode igualdade e transforma-la numa relacao de proximidade;

Podemos exigir, por exemplo, que a distancia entre dois valoresseja inferior a 10−6:

−10−6 < (xn+1 − xn) < 10−6

Podemos entao substituir a condicao (x1 == x) por:(((x1 – x) > –1.e–6) && ((x1 – x) < 1.e–6))

Mas isto e uma condicao sobre modulo da diferenca:

(fabs (x1 – x) < 1.e–6)A funcao de C, modulo de um real, e fabs e encontra-se definidaem math.h, assim devemos fazer o include:

#include <math.h>

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (III) (Prog05 06.c)

A condicao de igualdade, vista no exemplo anterior, so muitolentamente e obtida, pois, a tendencia assimptotica podedemorar ate atingir a igualdade.

Por isso, e conveniente fazer uma ligeira alteracao a condicaode igualdade e transforma-la numa relacao de proximidade;

Podemos exigir, por exemplo, que a distancia entre dois valoresseja inferior a 10−6:

−10−6 < (xn+1 − xn) < 10−6

Podemos entao substituir a condicao (x1 == x) por:(((x1 – x) > –1.e–6) && ((x1 – x) < 1.e–6))

Mas isto e uma condicao sobre modulo da diferenca:(fabs (x1 – x) < 1.e–6)

A funcao de C, modulo de um real, e fabs e encontra-se definidaem math.h, assim devemos fazer o include:

#include <math.h>

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (III) (Prog05 06.c)

A condicao de igualdade, vista no exemplo anterior, so muitolentamente e obtida, pois, a tendencia assimptotica podedemorar ate atingir a igualdade.

Por isso, e conveniente fazer uma ligeira alteracao a condicaode igualdade e transforma-la numa relacao de proximidade;

Podemos exigir, por exemplo, que a distancia entre dois valoresseja inferior a 10−6:

−10−6 < (xn+1 − xn) < 10−6

Podemos entao substituir a condicao (x1 == x) por:(((x1 – x) > –1.e–6) && ((x1 – x) < 1.e–6))

Mas isto e uma condicao sobre modulo da diferenca:(fabs (x1 – x) < 1.e–6)

A funcao de C, modulo de um real, e fabs e encontra-se definidaem math.h, assim devemos fazer o include:

#include <math.h>

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)

Condicoes (III) (Prog05 06.c)

A condicao de igualdade, vista no exemplo anterior, so muitolentamente e obtida, pois, a tendencia assimptotica podedemorar ate atingir a igualdade.

Por isso, e conveniente fazer uma ligeira alteracao a condicaode igualdade e transforma-la numa relacao de proximidade;

Podemos exigir, por exemplo, que a distancia entre dois valoresseja inferior a 10−6:

−10−6 < (xn+1 − xn) < 10−6

Podemos entao substituir a condicao (x1 == x) por:(((x1 – x) > –1.e–6) && ((x1 – x) < 1.e–6))

Mas isto e uma condicao sobre modulo da diferenca:(fabs (x1 – x) < 1.e–6)

A funcao de C, modulo de um real, e fabs e encontra-se definidaem math.h, assim devemos fazer o include:

#include <math.h>

Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)