Funções de intervalo. Primeiro contacto com o C e o C++
 Uma função de intervalo é uma aplicação f: [a,b]→ [a,b] definida de
forma recursiva xn+1=f(xn).
Exemplos: xn+1=μxn ; xn+1=μxn(1-xn)
μ é um parâmetro de controle.
 Na maior parte dos casos o conhecimento do comportamento da função
só pode ser obtido numericamente.
 Para isso temos de usar um programa numa linguagem de
programação. Vamos utilizar o C++.
 O C (e actualmente também o C++) é a linguagem que está na base do
sistema operativo Unix (e todos os seus clones). Foi inventada por Dennis
M. Ritchie em 1970 e foi estendida (com o nome C++) por Bjarne
Stroustrup entre 1983-1985. Quer uma, quer outra produzem código
muito eficiente e próximo da máquina.
1
Funções de intervalo. Primeiro contacto com o C e o C++
 Para bem perceber como funcionam o C e o C++ convém perceber
como funciona esquematicamente um PC:
Máquina de von Neumann
10010010110100
2
Funções de intervalo. Primeiro contacto com o C e o C++
 Uma operação pouco usual
x=a*x
3
Funções de intervalo. Primeiro contacto com o C e o C++
 Uma função de intervalo muito simples: Lei de Malthus
x=a*x
 O valor de x vai sendo actualizado sempre no mesmo lugar. Como
realizar o total das operações requeridas pela função de intervalo? Temos
de traduzir por exemplo o seguinte conjunto de operações:
Põe x0=.7 e a=.5; enquanto n < 10 calcula
xn+1=a*xn
4
Funções de intervalo. Primeiro contacto com o C e o C++
 Em C++ isto dá:
int n;
float a, x;
n=0;
x=.7;
a=.5;
while( n < 10 ){
x=a*x;
n=n+1;
}
 Inteiros (int) e reais (float) são codificados de forma diferente e por isso
têm de ser declarados de forma diferente
 O C++ distingue minúsculas de maiúsculas (case sensitive);
 As instruções terminam normalmente com ponto e vírgula;
 Chavetas ({ }) são usadas para agrupar instruções;
5
Funções de intervalo. Primeiro contacto com o C e o C++
 Finalização: incluir tudo numa função main e juntar bibliotecas para
poder usar outras funções (printf)
#include <stdio.h>
int main(){
int n;
float a, x;
n=0;
x=.7;
a=.5;
while( n < 10 ){
x=a*x;
n=n+1;
printf(“x(%d)=%f\n”,
n, x);
}
return 0;
}
6
Funções de intervalo. Primeiro contacto com o C e o C++
 Simplificar...
#include <stdio.h>
int main(){
int n=0;
float a=.7, x.5;
while( n < 10 )
printf(“x(%d)=%f\n”, ++n,
x*=a);
return 0;
}
7
Funções de intervalo. Primeiro contacto com o C e o C++
 Comentários
/*********************************************
*
Programa para estudar a Lei de Malthus
*
*
*
*
Copyright J. Seixas 2005, Versao 1.0
*
*********************************************/
#include <stdio.h>
/* aqui comeca a funcao main */
int main(){
int n=0; /* n e o contador de iteradas */
float a=.7, x=.5; /* a e o parametro de controle*/
while( n < 10 )
/* ciclo das iteradas */
printf(“x(%d)=%f\n”, ++n, x*=a);
return 0;
}
8
Download

Funções de intervalo. Primeiro contacto com o C e o C++