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