Exemplo de um jogo para Teoria de jogos. Não é exemplo de nenhum site ou livro, desenvolvido por mim.
http://www.4shared.com/document/JCCGnKa6/Trabalho_de_Teoria_Microeconmi.html
Matemática, Economia e Informática
segunda-feira, 6 de junho de 2011
Runge Kutta de 4ª ordem em C
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
//Definindo a equação
double f(double t, double y){
return(9.8 - 12.5 * 12.5 / 68 * y);//coloque a função do seu problema
} //Nesse caso: dy/dt=9.8-(12,5²/68)*y, mas vale pra qualquer função
int main(){
FILE*arq;
int N, //quantidade de partições do domínio da solução y(t)
i;
double //troque os valores para se adequar ao seu problema
a=0.0, b=8.0, //extremos do domínio da solução y(t)
alfa=0, //y(t_0)=y(a)=alfa
h=0.01, //tamanho do passo
w, //aproximações da solução y(t) garedas pelo método
t, //domínio da solução y(t)
K_1,K_2,K_3,K_4;
//passo 1
//Inicialização
t=a;
w=alfa;
N=int(b/h)+1;
arq=fopen("Runge_Kutta_4_Ordem.txt","w");
fprintf(arq,"\n Aproximacoes da solucao pelo método de Runge-Kutta de 4 Ordem:\n\n");
fprintf(arq,"\n **********************************");
fprintf(arq,"\n t R_K ordem 4");
fprintf(arq,"\n %lf %lf",t,w);
//passo 2
for(i=1;i<=N;i++){
//passo 3
K_1=h*f(t,w);
K_2=h*f(t+h/2.0,w+K_1/2.0);
K_3=h*f(t+h/2.0,w+K_2/2.0);
K_4=h*f(t+h,w+K_3);
//passo 4
w=w+(K_1+2*K_2+2*K_3+K_4)/6;
t=a+i*h;
if(t==2.4){
printf("\nSolucao para t=%lf: %lf",t,w);
}
if(t==6.0){
printf("\nSolucao para t=%lf: %lf",t,w);
}
if(t==8.0){
printf("\nSolucao para t=%lf: %lf\n\n",t,w);
}
//passo 5
fprintf(arq,"\n %lf %lf",t,w);
}
fprintf(arq,"\n *************************************");
fclose(arq);
printf("==> O restante das solucoes foram gravadas no arquivo Runge_Kutta_4_Ordem.txt.");
getchar();
getchar();
}
#include<math.h>
#include<stdlib.h>
//Definindo a equação
double f(double t, double y){
return(9.8 - 12.5 * 12.5 / 68 * y);//coloque a função do seu problema
} //Nesse caso: dy/dt=9.8-(12,5²/68)*y, mas vale pra qualquer função
int main(){
FILE*arq;
int N, //quantidade de partições do domínio da solução y(t)
i;
double //troque os valores para se adequar ao seu problema
a=0.0, b=8.0, //extremos do domínio da solução y(t)
alfa=0, //y(t_0)=y(a)=alfa
h=0.01, //tamanho do passo
w, //aproximações da solução y(t) garedas pelo método
t, //domínio da solução y(t)
K_1,K_2,K_3,K_4;
//passo 1
//Inicialização
t=a;
w=alfa;
N=int(b/h)+1;
arq=fopen("Runge_Kutta_4_Ordem.txt","w");
fprintf(arq,"\n Aproximacoes da solucao pelo método de Runge-Kutta de 4 Ordem:\n\n");
fprintf(arq,"\n **********************************");
fprintf(arq,"\n t R_K ordem 4");
fprintf(arq,"\n %lf %lf",t,w);
//passo 2
for(i=1;i<=N;i++){
//passo 3
K_1=h*f(t,w);
K_2=h*f(t+h/2.0,w+K_1/2.0);
K_3=h*f(t+h/2.0,w+K_2/2.0);
K_4=h*f(t+h,w+K_3);
//passo 4
w=w+(K_1+2*K_2+2*K_3+K_4)/6;
t=a+i*h;
if(t==2.4){
printf("\nSolucao para t=%lf: %lf",t,w);
}
if(t==6.0){
printf("\nSolucao para t=%lf: %lf",t,w);
}
if(t==8.0){
printf("\nSolucao para t=%lf: %lf\n\n",t,w);
}
//passo 5
fprintf(arq,"\n %lf %lf",t,w);
}
fprintf(arq,"\n *************************************");
fclose(arq);
printf("==> O restante das solucoes foram gravadas no arquivo Runge_Kutta_4_Ordem.txt.");
getchar();
getchar();
}
terça-feira, 10 de maio de 2011
Calcular orbitais de uma matriz em C
#include<stdio.h>
#include<stdlib.h>
int main(void){
int D[3][3], i, j, k, A[3][3], cont2, v[3], cont, B[3][3], d[3];
printf("Calcularemos as orbitas de um vetor, mas antes, entre com uma matriz A: \n\n");
for(i=0;i<3;i=i+1){//Entrada dos valores da Matriz
for(j=0;j<3;j=j+1){
printf("Digite o valor de A[%d][%d]: ", i , j);//Nao coloquei \n pq nao queria um espacamento muito grade, uma vez q eu digito e dou enter ele ja pula linha mesmo sem o \n
scanf("%d", &A[i][j]);
}
}
printf("\nAgora digite um vetor para calcularmos suas orbitas: \n\n");
for(j=0; j<3; j=j+1){
printf("Digite o valor de v[%d]: ", j);
scanf("%d", &v[j]);
}
for(i=0; i<3; i=i+1){
for(j=0;j<3;j=j+1){
D[i][j]=A[i][j];
B[i][j]=0;
}
}
for(cont=0;cont<50;cont++){
for(i=0; i<3; i=i+1){
d[i]=0;
}
for(i=0; i<3; i=i+1){
for(j=0;j<3;j=j+1){
for (k=0;k<3;k=k+1){
B[i][j] = B[i][j] + D[i][k] * A[k][j];
}
}
}
for(i=0; i<3; i=i+1){
for(j=0;j<3;j=j+1){
D[i][j]=B[i][j];
}
}
for(i=0; i<3; i=i+1){
for(j=0;j<3;j=j+1){
d[i] = d[i] + B[i][j] * v[j];
}
}
printf("A^%d * v = (%d,%d,%d) \n",cont, d[0],d[1],d[2]);
}
getchar();
getchar();
}
#include<stdlib.h>
int main(void){
int D[3][3], i, j, k, A[3][3], cont2, v[3], cont, B[3][3], d[3];
printf("Calcularemos as orbitas de um vetor, mas antes, entre com uma matriz A: \n\n");
for(i=0;i<3;i=i+1){//Entrada dos valores da Matriz
for(j=0;j<3;j=j+1){
printf("Digite o valor de A[%d][%d]: ", i , j);//Nao coloquei \n pq nao queria um espacamento muito grade, uma vez q eu digito e dou enter ele ja pula linha mesmo sem o \n
scanf("%d", &A[i][j]);
}
}
printf("\nAgora digite um vetor para calcularmos suas orbitas: \n\n");
for(j=0; j<3; j=j+1){
printf("Digite o valor de v[%d]: ", j);
scanf("%d", &v[j]);
}
for(i=0; i<3; i=i+1){
for(j=0;j<3;j=j+1){
D[i][j]=A[i][j];
B[i][j]=0;
}
}
for(cont=0;cont<50;cont++){
for(i=0; i<3; i=i+1){
d[i]=0;
}
for(i=0; i<3; i=i+1){
for(j=0;j<3;j=j+1){
for (k=0;k<3;k=k+1){
B[i][j] = B[i][j] + D[i][k] * A[k][j];
}
}
}
for(i=0; i<3; i=i+1){
for(j=0;j<3;j=j+1){
D[i][j]=B[i][j];
}
}
for(i=0; i<3; i=i+1){
for(j=0;j<3;j=j+1){
d[i] = d[i] + B[i][j] * v[j];
}
}
printf("A^%d * v = (%d,%d,%d) \n",cont, d[0],d[1],d[2]);
}
getchar();
getchar();
}
Calcular fatorial em C
Muito simples:
rintf("Digite o numero que deseja calcular o fatorial:\n");
scanf("%d",&q);
res = 1;
for(i=1;i<=q;i++){
res = res * i;
}
printf("Fatorial = %d\n\n\n", res);
rintf("Digite o numero que deseja calcular o fatorial:\n");
scanf("%d",&q);
res = 1;
for(i=1;i<=q;i++){
res = res * i;
}
printf("Fatorial = %d\n\n\n", res);
Programa com menu completo em C - Estacionamento
Eis ai um programa para controle de Estacionamento de Automóveis com as seguintes especificações
Controle de estacionamento
Máximo de 100 carros / Marca (15 caracteres) / Modelo (20 caracteres)
Ano (inteiro) / Cor (15 caracteres)
1- Incluir/Cadastrar.
2- Listar todos os cadastros.
3- Pesquisar por modelo.
4- Sair
5- Mostrar o carro mais velho e mais novo e seus respectivos anos
de fabricação.
6- Mostrar a soma dos anos de fabricação de todos os carros
7- Mostrar todos os carros com idade inferior a 10 anos.
8- Alterar os dados de um carro qualquer, fornecidos a marca e
o modelo do mesmo.
9- Mostrar a quantidade de carros cadastrados.
10- Mostrar a soma das idades de todos os carros
11- Mostrar todos os carros em ordem crescente de ano de fabricação
12- Mostrar os carros ordenados do mais novo para o mais velho.
13- Mostrar todos os carros ordenados em ordem alfabética por marca
14- Excluir um carro sendo fornecido seu modelo e marca sem
desordenar o banco de dados.
http://www.4shared.com/file/GBrfUv6s/Estacionamento_arquivo.html
Controle de estacionamento
Máximo de 100 carros / Marca (15 caracteres) / Modelo (20 caracteres)
Ano (inteiro) / Cor (15 caracteres)
1- Incluir/Cadastrar.
2- Listar todos os cadastros.
3- Pesquisar por modelo.
4- Sair
5- Mostrar o carro mais velho e mais novo e seus respectivos anos
de fabricação.
6- Mostrar a soma dos anos de fabricação de todos os carros
7- Mostrar todos os carros com idade inferior a 10 anos.
8- Alterar os dados de um carro qualquer, fornecidos a marca e
o modelo do mesmo.
9- Mostrar a quantidade de carros cadastrados.
10- Mostrar a soma das idades de todos os carros
11- Mostrar todos os carros em ordem crescente de ano de fabricação
12- Mostrar os carros ordenados do mais novo para o mais velho.
13- Mostrar todos os carros ordenados em ordem alfabética por marca
14- Excluir um carro sendo fornecido seu modelo e marca sem
desordenar o banco de dados.
http://www.4shared.com/file/GBrfUv6s/Estacionamento_arquivo.html
Ordenação em C - Método da Bolha
O famoso Bubble Sort
///////////////////////////////////////////////
///////////////////////////////////////////////
////////////ROTINA DE ORDENAÇÃO////////////////
///////////////////////////////////////////////
/////////////////////////////////////////////*/
#include<stdio.h>
int main (void)
{
int i,j, a[5], aux;
// lendo o vetor desordenado
for(j=0;j<5;j++)
{
printf("a[%d]: \n",j);
scanf("%d",&a[j]);
}
// rotina de ordenação - método da bolha
for(j=0;j<4;j++) // varredura até quantidade - 1
{ for(i=0;i<4;i++) // varredura até quantidade - 1
{ if(a[i]>a[i+1])
{ // trocas para ordenação
aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
}
}
}
for(j=0;j<5;j++) // mostrando o vetor ordenado
{
printf("\n a[%d]: %d",j,a[j]);
}
getchar();
getchar();
}
///////////////////////////////////////////////
///////////////////////////////////////////////
////////////ROTINA DE ORDENAÇÃO////////////////
///////////////////////////////////////////////
/////////////////////////////////////////////*/
#include<stdio.h>
int main (void)
{
int i,j, a[5], aux;
// lendo o vetor desordenado
for(j=0;j<5;j++)
{
printf("a[%d]: \n",j);
scanf("%d",&a[j]);
}
// rotina de ordenação - método da bolha
for(j=0;j<4;j++) // varredura até quantidade - 1
{ for(i=0;i<4;i++) // varredura até quantidade - 1
{ if(a[i]>a[i+1])
{ // trocas para ordenação
aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
}
}
}
for(j=0;j<5;j++) // mostrando o vetor ordenado
{
printf("\n a[%d]: %d",j,a[j]);
}
getchar();
getchar();
}
Algoritimo Estendido de Euclides em C
Algoritimo simples para o cálculo do algoritimo estendido de Euclides em C
#include<stdio.h>
int main(){
int a, b, q, r2b, r1b, r, op, x2b, x1b, x, y2b, y1b, y, mdcab, linhas;
for(;;){
printf("\n MENU\n\n");
printf("1 - Calcular MDC\n");
printf("2 - Sair\n \nOpcao:");
scanf("%d",&op);
if(op==1){
printf("\nEntre com dois numeros inteiros, primeiro o maior, depois o menor:\n");
scanf("%d",&a);
scanf("%d",&b);
r=1;
x2b=1;
y2b=0;
x1b=0;
y1b=1;
r2b=a;
r1b=b;
linhas=2;
while(r!=0){
q=r2b/r1b;
x=x2b-q*x1b;
y=y2b-q*y1b;
r=r2b-r1b*q;
linhas=linhas+1;
x2b=x1b;
x1b=x;
y2b=y1b;
y1b=y;
r2b=r1b;
r1b=r;
}
mdcab=a*x2b+b*y2b;
printf("\n MDC(%d,%d)=%d\n",a,b,mdcab);
printf("x=%d\n",x2b);
printf("y=%d\n",y2b);
printf("O Algoritmo Extendido de Euclides executou %d linhas",linhas);
}
else if(op==2){
break;
}
else{
printf("Opcao inexistente");
}
}
}
#include<stdio.h>
int main(){
int a, b, q, r2b, r1b, r, op, x2b, x1b, x, y2b, y1b, y, mdcab, linhas;
for(;;){
printf("\n MENU\n\n");
printf("1 - Calcular MDC\n");
printf("2 - Sair\n \nOpcao:");
scanf("%d",&op);
if(op==1){
printf("\nEntre com dois numeros inteiros, primeiro o maior, depois o menor:\n");
scanf("%d",&a);
scanf("%d",&b);
r=1;
x2b=1;
y2b=0;
x1b=0;
y1b=1;
r2b=a;
r1b=b;
linhas=2;
while(r!=0){
q=r2b/r1b;
x=x2b-q*x1b;
y=y2b-q*y1b;
r=r2b-r1b*q;
linhas=linhas+1;
x2b=x1b;
x1b=x;
y2b=y1b;
y1b=y;
r2b=r1b;
r1b=r;
}
mdcab=a*x2b+b*y2b;
printf("\n MDC(%d,%d)=%d\n",a,b,mdcab);
printf("x=%d\n",x2b);
printf("y=%d\n",y2b);
printf("O Algoritmo Extendido de Euclides executou %d linhas",linhas);
}
else if(op==2){
break;
}
else{
printf("Opcao inexistente");
}
}
}
Assinar:
Postagens (Atom)