Programación Códigos programas c en c++ Foxpro estadísticas ejemplos matemáticas probabilidades codigos ficheros Lotería electrónica cálculos abrir ficheros programas para archivos programación códigos libres gratis Php Java Ejercicios resueltos en C
sábado, 4 de mayo de 2013
Trabajar con numeros complejos programa en c gratis todocodigos
Numeros complejos programa en c para trabajar con numeros
#if !defined( __COMPLEJO_H )
#include "complejo.h"
#endif
#include <dos.h> //para MK_FP y pokeb
#include <mem.h> //para memset
#include <stdio.h>
#include <iostream>
#include <stdlib.h>//Libreria para usar la funcion al final del codigo system();
#include <fstream
#include conio.h
#include <fstream>
#include <windows.h>
#include <time.h>
#include <math.h>
class CFractal{
private:
unsigned char *Video;
public:
CFractal();
~CFractal(){ }
void InitMode13h();
void CloseMode13h();
void Cleardevice();
void PutPixel(int x,int y,unsigned char color);
void Mandelbrot();
};
CFractal::CFractal()
{
Video=(unsigned char*)MK_FP(0xA000,0x0000);
}
void CFractal::InitMode13h()
{
asm{
mov ah,0
mov al,0x13
int 0x10
}
}
void CFractal::CloseMode13h()
{
asm{
mov ah,0
mov al,0x03
int 0x10
}
}
void CFractal::PutPixel(int x,int y,unsigned char color)
{
pokeb(0xA000,y*320+x,color);
}
void CFractal::Cleardevice(void)
{
memset(Video,0,64000);
}
void CFractal::Mandelbrot(void)
{
//coordenadas del plando complejo
double REALMIN=-2,REALMAX=1,IMAGMIN=-1.2,IMAGMAX=1.2;
double DIVERGE=4; //valor de divergencia
const double MAX=256; //iteracion maxima
int Contador; //Col Ren
InitMode13h(); //iniciamos el modo grafico 13h (320*200) con 256 colores
Cleardevice(); //limpiamos la pantalla
//proceso que dibuja el fractal
for(int i=0;i<320;i++)
for(int j=0;j<200;j++){
//asignamos a C las coordenadas del plano complejo
Complejo C((REALMAX-REALMIN)/320*i+REALMIN,
IMAGMAX-(IMAGMAX-IMAGMIN)/200*j);
Contador=0; //inicializamos el contador
Complejo Z(0,0);//iniciamos Z=0+0i
do{
Z=Z*Z+C;//ecuacion Z=Zý+C
Contador++;//incrementamos el contador
if(Norm(Z)>DIVERGE)break;
}while(Contador<MAX);
if(Contador!=MAX)
PutPixel(i,j,Contador+40);
}
getch();
CloseMode13h();
gotoxy(31,8);
cout <<"<< Fin del demo >>";
gotoxy(26,10);
cout <<"<< Fractal de Mandelbrot >>";
getch();
}
int main(void)
{
Complejo s,r,m,d;
float a_im,a_re,b_im,b_re;
system("cls");
gotoxy(15,2);
cout<<" Programa de demostracion para la Clase Complejo.";
gotoxy(27,4);
cout<<" Operaciones Basicas.";
gotoxy(27,6);
cout<<" Suma. ";
gotoxy(27,7);
cout<<" Resta. ";
gotoxy(27,8);
cout<<" Multiplicacion. ";
gotoxy(27,9);
cout<<" Division. ";
cout<<endl;
cout<<"\nPrimer numero real: "; cin>>a_re;
cout<<"Primer numero imaginario: "; cin>>a_im;
Complejo a(a_re,a_im);
cout<<a;
cout<<"\n\nSegundo numero real: "; cin>>b_re;
cout<<"Segundo numero imaginario: "; cin>>b_im;
Complejo b(b_re,b_im);
cout<<b;
s=a+b;
cout<<"\n\nLa suma de estos dos numeros complejos es: ";
cout<<s;
r=a-b;
cout<<"\nLa resta de estos dos numero complejos es: ";
cout<<r;
m=MulComplejo(a,b);
cout<<"\nLa multiplicacion de estos dos numero complejos es: ";
cout<<m;
d=a/b;
cout<<"\nLa division de estos dos numero complejos es: ";
cout<<d;
getch();
system("cls");
Complejo raiz,conj,_abs,mod,rec,inv,NORM;
gotoxy(15,2);
cout<<" Programa de demostracion para la Clase Complejo.";
gotoxy(27,4);
cout<<" Operaciones Basicas.";
gotoxy(27,6);
cout<<" Raiz. ";
gotoxy(27,7);
cout<<" Conjugado. ";
gotoxy(27,8);
cout<<" Valor Absoluto. ";
gotoxy(27,9);
cout<<" Modulo. ";
gotoxy(27,10);
cout<<" Inverso. ";
cout<<endl;
cout<<"\nIntroduzca un numero real: "; cin>>a_re;
cout<<"Introduza un numero imaginario: "; cin>>a_im;
Complejo z(a_re,a_im);
cout<<z;
NORM=Norm(z);
cout<<endl;
cout<<"\nLa norma es: ";
cout<<NORM;
raiz=RaizComplejo(z);
cout<<"\nLa raiz es: ";
cout<<raiz;
conj=ConjugadoComplejo(z);
cout<<"\nSu conjugado es: ";
cout<<conj;
_abs=AbsComplejo(z);
cout<<"\nSu valor absoluto: ";
cout<<_abs;
mod=Modulo(z);
cout<<"\nSu Modulo es: ";
cout<<mod;
inv=InvComplejo(z);
cout<<"\nSu inverso es: ";
cout<<inv;
getch();
system("cls");
gotoxy(15,2);
cout<<" Programa de demostracion para la Clase Complejo.";
gotoxy(27,4);
cout<<" Operaciones Basicas.";
gotoxy(27,6);
cout<<" Forma Rectangular. ";
gotoxy(27,7);
cout<<" Forma Polar. ";
rec=Rectangular(2.0,20.0);
cout<<endl;
cout<<"\nEn su Forma Rectangular ";
cout<<"\nde r=2.0 y de ang=20.0 es: ";
cout<<rec;
Complejo pol;
Complejo Z(4,-5);
cout<<endl;
cout<<"\nEn su Forma Polar "
<<"de 4-5i es: ";
pol.Polar(Z);
const int NUMEL=5;
Complejo nums[NUMEL]={1,2,3,4,6};
Complejo norm;
norm=Norma(nums,5);
cout<<"La norma del vector 1,2,3,4,6 es: ";
cout<<norm;
getch();
CFractal Fract;
system("cls");
cout<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
cout<<"\n\n\n\nQue mejor que terminar este demo de los"
<<" numeros complejos con aplicacion de"
<<"\nestos mismos. Se trata de un fractal"
<<" denominado conjunto de mandelbrot que"
<<"\nutiliza la siguiente formula Z = Zý * C"
<<" donde Z y C son numeros complejos en"
<<"\nnuestro caso tenemos Z=Z+Zi y C = C+Ci"
<<" la condicion inicial es Z=0+0i y a C "
<<"\nse asignan todos los puntos del plano"
<<" complejo.";
getch();
Fract.Mandelbrot();
return 0;
}
Codigos
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario