Buscar

Quadratura de Gauss comentada

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

/*Para que o programa seja compilado, nós temos que "incluir" as bibliotecas de onde o programa vai "aprender" os comandos
faremos isso usando o "#include <nomedabiblioteca.h>"*/
#include <stdio.h> //Essa linha é responsável por permitir que o nosso programa leia dados do teclado e exiba informações na na janela do programa
#include <stdlib.h> //Essa linha biblioteca inclui funções usuais (comandos padrões)
#include <math.h> //A biblioteca math.h contém funções específicas da matemática, como funções trigonométricas e etc.
/* Na linguagem C, as constantes a serem utilizadas devem ser definidas ainda no cabeçalho do código. Para isso usamos o comando "#define nomedaconstante valor"
Ex: se fôssemos utilizar a aceleração da gravidade no nosso código, poderíamos escrever "#define G 9.8" */
#define N 20
/*Abaixo temos a "função principal", que é de fato onde nós escreveremos nosso código, a linha "return 0;" indica que se nossa função for executada sem erros
o programa vai retornar o código 0, que é o padrão para a execução satisfatória.
*/
int main () {
 //o primeiro passo é declarar tadas as variáveis que serão utilizadas no código:
	double c[2]; //"double" é uma designação de "tipo primitivo", basicamente variáveis do tipo Double aceitam números com várias casa decimais ex: 1.0000000004
	double x[2]; //O ponto e vírgula (;) indica o final da linha, ele serve pra indicar pro compilador que ele já pode passar para a próxima linha
	double x1[2]; /*A notação "v[#]" indica que se trata de um *VETOR/Conjunto* que guarda # posições, onde 
	por ex: v[2] -> vetor "v" que possui 3 elementos (a posição 0 conta, isto é v = [#0, #1, #2]) */
	double integral, erro, deltaa; //também podemos declarar variáveis do mesmo tipo em uma mesma linha, separando por vírgula
	double a[N]; //aqui nesta linha, o vetor/conjunto possui o número de posições definida no cabeçalho do algorímo
	int i,n=2; //"int" é uma designação de "tipo primitivo", basicamente variáveis do tipo Int aceitam somente números INTEIROS
/* Para declarar o valor das variáveis, utilizasse o símbolo de igualdade (=) e pode ser declarado após a declaração das variáveis
, por exemplo: (x = 4;) significa que a variavel x guarda o valor 4 */
	x[0]=1/sqrt(3.0); //Essa linha indica que a "posição 0" do vetor/conjunto "x", guarda o valor "1/(raiz de 3)"
	x[1]=-x[0]; //Essa linha indica que a "posição 1" guarda o valor negativo correspondente ao guardado na "posição 0" do vetor "x"
	c[0]=1.0;
	c[1]=1.0;
	integral=0.0;
	a[0]=0.0;
	deltaa=0.1;
	
/* A função a seguir, indica um ciclo de repetição dentro do nosso código, é chamada de função "for", trata=se de um função com 3 argumentos
onde o argumento 1 declara algo, o argumento 2 é a condição de execução do laço de repetição e o argumento 3 indica o que ocorre ao final de cada ciclo
por exemplo:
for (i=0;i<=2,i++) // Ao entrar na função for, a variável "i" será configurada para guardar o valor 0 ; o loop vai repetir até que "i" seja menor ou igual a 2
// o "i++" significa que a final de cada ciclo de repetição a variável "i" vai ter seu valor acrescido de 1 unidade (vai subir 1 número) */
	for (i=1;i<=10;i++) {
			a[i]=a[0]+i*deltaa; /*a cada linha do ciclo de repetição, o programa vai guardar na "posição i" do "vetor a" o valor da "posição 0" 
								acrescido de i vezes o valor de "deltaa, por exemplo: para i=5 teremos que a[5] = 0 + 5*0.1 */
			
			/* A função "Printf" é reponsável por exibir/imprimir na tela, alguma informão, essa informão deve estar expressa entre aspas, seguindos pelas
			variáveis separadas por vírgulas, quando forem utilizadas no printf */
			printf("\n		a[%d]=%f",i,a[i]); //"\n" é um código de formatação de texto, ele equivale a "saltar parágrafo"
/* quando se deseja imprimir o valor guardado nas variávies, deve-se utilizar os formatadores indicados de acordo com o tipo de variável
			%d -> Referir variáveis do tipo INT (inteiros)
			%f -> Referir variáveis do tipo FLOAT ou DOUBLE (Números racionais)
			%e -> Referir variáveis do tipo FLOAT ou DOUBLE (Números racionais) em notação científica
			%c -> Referir variáveis do tipo CHAR (letras)
		é possível também limitar o número de casas decimais a serem exibidos ex: "%.4f", onde somente serão exibidos 4 casas de precisão */
						} //pelas condições do ciclo for, o ciclo é rompido quando i chega ao valor maior que 10 e o código segue para a próxima linha 
	for (i=0;i<=9;i++) {
			x1[0]=((a[i+1]-a[i])*x[0]+(a[i+1]+a[i]))/2.0;
			x1[1]=((a[i+1]-a[i])*x[1]+(a[i+1]+a[i]))/2.0;
			integral=integral+(c[0]*exp(-x1[0])+c[1]*exp(-x1[1]))*deltaa/2.0;
	}
	erro=fabs(integral-(1-exp(-1)));
	printf("\n		erro =%9.2e",erro);
return 0;
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando