Red de conocimiento informático - Conocimiento sistemático - Ejemplo de operación de división de código fuente

Ejemplo de operación de división de código fuente

# include ltdos.h gt/*Función de interfaz DOS*/

# include ltmath.h gt/*Definición de funciones matemáticas*/

# include ltconio.h gt/*Pantalla Función de operación*/

# incluye ltstdio.h gt/*función de E/S*/

# incluye ltstdlib.h gt/*función de biblioteca*/

># include ltstdarg.h gt/*Lista de parámetros de longitud variable*/

# include ltgraphics.h gt/*Función gráfica*/

# include ltstring.h gt/* Cadena function*/

# include ltctype.h gt/*Función de operación de caracteres*/

#define UP 0x48 /*Tecla de cursor hacia arriba*/

#define ABAJO 0x50 /*Tecla cursor abajo*/

#Definir izquierda 0x4b /*Tecla cursor izquierda*/

#Definir derecha 0x4d /*Tecla cursor derecha*/

#define ENTER 0x0d /* Enter */

void * rar/*Variable global, guardar imagen del cursor*/

estructura tipo paleta paleta;/*Usar información de muestra de llamada*/

int GraphDriver/*Controlador de dispositivo gráfico*/

int GraphMode/*Valor del modo de gráficos*/

int código de error;/ *Código de error*/

int MaxColors/*Número máximo de colores disponibles*/

int MaxX, MaxY/*Resolución más alta de la pantalla*/

Volteo a doble cara / *Relación de píxeles de la pantalla*/

void draw boder(void); /*Función de dibujo de borde*/

inicialización de vacío (void) /*Función de inicialización */

void computer (void); /*Función de cálculo de la calculadora*/

void changetextstyle(int font, int direction, int charsize/*Función de cambio de estilo de texto* /

void m window(char * header); /*Función de ventana*/

int tecla especial(void); /*Obtener función de tecla especial*/

int flecha(); /*Establecer función de cursor de flecha*/

/*Función principal*/

int main()

{

initialize() ;/*Configurar el sistema en modo de gráficos*/

Computadora();/*Ejecutar la calculadora*/

closegraph();/*Apagar el sistema en modo de gráficos y regresar al modo texto*/

return(0);/*Finalizar programa*/

}

/*Configurar el sistema para ingresar al modo gráfico* /

inicialización de vacío (void)

{

int xasp, yasp/*usado para leer la relación de aspecto en las direcciones X e Y*/

GraphDriver = DETECT/*Detección y visualización automáticas*/

init graph( amp; controlador de gráficos amp; Grap

hMode, "";

/*Inicializar el sistema de gráficos*/

código de error = resultado del gráfico();/*Leer el resultado de la inicialización*/

if (ErrorCode!= grOk) /*Si ocurre un error durante la inicialización*/

{

printf("Error del sistema de gráficos: s\n ",

grapherrormsg(código de error));/*Mostrar código de error*/

Salir(1);/*Salir*/

}

obtener paleta( amp; paleta); /*Leer información del panel*/

max colores = get maxcolor() 1 /*Leer el valor máximo de color*/

MaxX = get MaxX( );/*Leer el tamaño de la pantalla*/

MaxY = get MaxY();/*Leer el tamaño de la pantalla*/

getaspectratio( amp; xasp amp; yasp ); *Copiar la relación de aspecto en una variable*/

aspectation =(double)xasp/(double)yasp /*Calcular la relación de aspecto*/

}

<; p>/*Función de calculadora*/

Equipo no válido (no válido)

{

struct viewporttype vp/*Definir variable de tipo de ventana gráfica*/

int color, alto, ancho;

int x, y, x0, y0, I, j, v, m, n, act, bandera = 1; num1=0, num2=0, resultado; /*operandos y variables de resultados de cálculo*/

char cnum[5], str2[20]={""}, c, temp [20]= { " " };

Char·str1[]="1230.456 -789*/qc=^"; /*Define el símbolo de cadena que se mostrará en el gráfico del botón*/

mwindow("Calculadora"); /*Mostrar la ventana principal*/

Color = 7 /*Establecer el valor de gris*/

getview settings( amp ; VP); *Leer el tamaño de la ventana actual*/

Ancho = (VP . derecha 1)/10 /*Establecer ancho del botón*/

alto = (VP . abajo-10; )/10; /*Establecer la altura del botón*/

x = ancho/2 /*Establecer el valor de las coordenadas de x*/

y =Altura/2; Establezca el valor de las coordenadas de y*/

setfillstyle(SOLID_FILL, color 3);

bar(x width*2, y, x 7 *width, y height);

/*Dibuja una barra rectangular bidimensional para mostrar los operandos y los resultados*/

setcolor(color 3 /*Establece la línea del borde verde claro*/

<); p >Rectángulo (x ancho*2, y, x 7*ancho, y alto);

/*Dibujar una línea de borde rectangular*/

setcolor(rojo);/* Establezca el color Establezca en red*/

out textxy(x 3 *width, y height/2, " 0.

"); /*Cadena de salida "0"*/

x = 2 *Ancho-ancho/2; /*Establece el valor de las coordenadas de x*/

y = 2 * Height/2; /*Establecer el valor de las coordenadas de y*/

for(j = 0; j lt4; j) /*Dibujar un botón*/

{

for(I = 0; ilt5; i)

{

setfillstyle(SOLID_FILL, color);

setcolor(rojo);

bar(x, y, x ancho, y alto); /*Dibujar una barra rectangular*/

Rectángulo(x, y, x ancho, y alto);

sprintf(str2, "c", str 1[j * 5 I]);

/*Guardar los caracteres en str2*/

outtextxy( x (ancho / 2), y altura/2, str 2);

x = x ancho (ancho/2 /*Mover coordenadas de columna*/

}

< p); >y = (altura/2)* 3; /*Mover coordenadas de línea*/

x = 2 *Ancho-Ancho/2; /*Restablecer coordenadas de columna*/

}

x0 = 2 * ancho;

y0 = 3 * alto

x = x0

y = y0

gotoxy(x, y); /*Mover el cursor a la posición x, y*/

flecha() /*Mostrar el cursor*/

putimage( x, y, rar, XOR _ PUT);

m = 0;

n = 0; Establezca str2 en una cadena vacía*/

while((v=specialkey())!=45) /*Presione Alt x para finalizar el programa; de lo contrario, ejecute el siguiente bucle*/

{

while((v=specialkey())!=ENTER) /*No se ingresa cuando se presiona la tecla*/

{

putimage( x, y, rar, p>if (x gt; = x0 6 * ancho)

/*Si se mueve hacia la derecha y hasta el final, se mueve a la posición del carácter más a la izquierda*/

{

x = x0

m = 0;

}

Otros

{

x = x ancho/2;

m;

}/* De lo contrario, pasa a la siguiente posición del carácter a la derecha*/

If(v ==LEFT) /*Cálculo de nueva posición al mover la flecha hacia la izquierda*/

if(x lt; = x0)

{

x = x0 6 *Width;

m = 4;

}/*Si se mueve hacia la cabeza y luego hacia la izquierda, se mueve hacia la posición del carácter más a la derecha*/

Otro

{

x = x-ancho-ancho/2;

m-;

} /*En caso contrario, se mueve hacia la izquierda a la posición del carácter anterior*/

If(v==UP) /*Cálculo de la nueva posición al mover la flecha hacia arriba*/

if( y lt;= y0)

{

y = y0 4 *altura alto

Grado/2;

n = 3;

}/*Si se mueve hacia la cabeza y luego hacia arriba, se mueve a la posición inferior del personaje*/

Otros

{

y = y-height-height/2

n-

}/* En caso contrario, pase a a El bit alto del personaje*/

If(v==DOWN) /*Cálculo de la nueva posición al mover la flecha hacia abajo*/

If (y gt= 7 *alto)

{

y = y0

n = 0;

}/*Si te mueves hasta el final y luego bajar, subir a la posición superior del personaje*/

Otros

{

y = y height/2;

n;

}/*De lo contrario, pasa a la siguiente posición del carácter*/

putimage(x, y, rar, XOR _ PUT /*Muestra la flecha del cursor en la nueva posición); */

}

c = str 1[n * 5 m] /*Guardar los caracteres en la variable c*/

If (isdigit (c) ) || ​​c = ' . ' )/*Juzga si es un número o un punto decimal*/

{

If (flag = -1)/*If la bandera es -1, significa un número negativo*/

{

strcpy(str2, "-"); /*Concatenar los signos menos en una cadena*/

flag = 1;

}/ *Restaurar el valor de la bandera a 1*/

sprintf(temp, "c", c /*Guardar los caracteres); en la variable de cadena temp*/

strcat(str2, temp);/*Conecta la cadena en temp a str2 */

setfillstyle(SOLID_FILL, color 3);

Bar (2 * ancho/2, alto/ 2, 15 * ancho / 2, 3 * alto / 2

outtextxy (5 * ancho, alto, str /*); mostrar cadena */

}

if(c==' ')

{

num 1 = atof(str 2) ; /*Convierte el primer operando a un número de punto flotante */

strcpy(str2, " "); /* Vacío str2 */

act = 1; agregar valor de bandera */

setfillstyle(SOLID_FILL, color 3);

Bar(2*ancho/2, alto/2, 15*ancho/2, 3*alto/2 );

out textxy(5 *ancho, alto, "0.

");/*Mostrar cadena*/

}

if(c=='-')

{

Si ( strcmp(str2, " ")==0) /*Si str2 está vacío, significa un signo menos, no un signo negativo*/

flag =-1 /*Establece el indicador de número negativo* /

Otros

{

num 1 = atof(str 2); /*Convierte el segundo operando a un número de punto flotante*/

strcpy(str2, " "); /* Vaciar str2 */

act = 2; /* Calcular el valor del indicador de resta */

setfillstyle(SOLID_FILL, color 3

Bar(2*ancho/2, alto/2, 15*ancho/2, 3*alto/2 /*Dibujar un rectángulo*/

fuera textxy); (5 *Ancho, alto, "0."); /*Mostrar cadena*/

}

}

if(c=='* ' )

{

num 1 = atof(str 2); /*Convierte el segundo operando a un número de punto flotante*/

strcpy(str2 , " "); /* Vaciar str2 */

act = 3; /* Calcular el valor del indicador de multiplicación */

setfillstyle(SOLID_FILL, color 3); Bar ( 2*width/ 2, alto/2, 15*ancho/2, 3*alto/2);

out textxy(5*ancho, alto, "0.");/*Mostrar cadena de caracteres*/

}

if(c=='/')

{

num 1 = atof(str 2) ;/*Convertir el segundo operando a un número de punto flotante*/

strcpy(str2, " "); /*Empty str2 */

act = 4 /*Calcular el valor del indicador de división*; /

setfillstyle(SOLID_FILL, color 3);

Bar(2*ancho/2, alto/2, 15*ancho/2, 3* alto/2);

out textxy(5 *ancho, alto, "0."); /*display string*/

}

if (c=='^')

{

num 1 = atof(str 2); /*Convierte el segundo operando a un número de punto flotante*/

strcpy(str2, " " );/*Empty str2 */

act = 5;/*Calcular el valor del símbolo de poder*/

setfillstyle(SOLID_FILL, color 3) ;/*Establecer para rellenar con verde claro entidades*/

Bar (2 * ancho/2, alto/2, 15 * ancho/2, 3 * alto/2 /* dibuja un Rectángulo*/

fuera); textxy(5 *ancho, alto, "0.

");/*Mostrar cadena*/

}

if(c==' ')

{

num 1 = atof(str 2); /*Convierte el segundo operando a un número de coma flotante*/

strcpy(str2, " "); /*Calcular el valor del indicador de potencia modular*/

setfillstyle(SOLID_FILL, color 3); /*Establecer para rellenar con sólidos de color verde claro*/

Bar(2 * Ancho/ 2, alto/2, 15*ancho/2, 3*alto/2); /*Dibujar un rectángulo*/

out textxy(5*ancho, alto, "0.") ;/* Mostrar cadena*/

}

if(c=='= ')

{

num 2 = atof(str 2 );/*Convertir el segundo operando a un número de punto flotante*/

Cambiar (act) /*Calcular según el símbolo de operación*/

{

Caso 1: Resultado = num 1 num 2; /*Sumar*/

Caso 2: Resultado = num 1-num 2; /*Hacer resta*/

Caso 3: Resultado = num 1 * num 2; /*Hacer multiplicación*/

Caso 4: Resultado = num 1/num 2; /*Hacer división*/

Caso 5: Resultado = pow(num1, num 2); Break /*Hacer x la potencia de y*/

Caso 6: Resultado = fmod(num1, num 2) ;Break; /*Hacer operación modular*/

}

setfillstyle(SOLID_FILL, color 3); /*Establecer para rellenar con entidades de color verde claro*/

Bar( 2*ancho/2, alto/2, 15*ancho/2, 3*alto/2); /*cubrir el área de resultados*/

sprintf(temp, " f ", resultado); *Guardar el resultado en temp*/

outtextxy(5 *ancho, alto, temperatura /*Mostrar el resultado*/

}

if( c=='c ')

{

num 1 = 0 /*Restablece los dos operandos a 0, el signo es 1*/

número 2 = 0;

bandera = 1;

strcpy(str2, " "); /*empty str2 */

setfillstyle(SOLID_FILL, color 3 ); /*Establecer para rellenar con entidades de color verde claro*/

Bar (2*ancho/2, alto/2, 15*ancho/2, 3*alto/ 2);/*Cubrir el resultado area*/

out textxy(5 *ancho, alto, "0.

"); /*Mostrar cadena*/

}

if(c == ' Q ')exit(0); /*Si se selecciona Q Enter, finaliza el cálculo. Programa */

}

putimage(x, y, rar, XOR _ PUT); /*Eliminar la flecha del cursor antes de salir*/

Regresar; * Retorno */

}

/*Función de ventana*/

void mwindow( char *header)

{

int height;

clear device();/*Borrar la pantalla de gráficos*/

establecer color(max colours-1);/*Establecer el color actual en White*/

setviewport(20, 20, MaxX/2, MaxY/2, 1, /*Establece el tamaño de la ventana gráfica*/

height = altura del texto(" H "); ); /*Leer el tamaño del texto básico*/

settextstyle(DEFAULT_FONT, HORIZ_DIR, 1); /*Establecer estilo de texto*/

settextjustify(CENTER_TEXT, TOP_TEXT); Establecer la disposición de los caracteres*/

outtextxy(MaxX/4, 2, header /*Título de salida*/

setviewport(20, 20 height 4, MaxX/2 4); , MaxY/2 20, 1); /*Establecer el tamaño de la ventana gráfica*/

dibujar borde() /*Dibujar el borde*/

}

Void drawboder(void) /*Dibujar el borde*/

{

struct viewporttype vp/*Definir la variable de tipo de ventana gráfica*/

establecer color( max colours-1 /*Establece el color actual en blanco*/

setlinestyle(SOLID_LINE, 0, NORM _ WIDTH /*Establece el método de dibujo lineal*/

getview settings (amp;VP);/*Carga la información de la ventana gráfica actual en la estructura señalada por vp*/

Rectangle (0, 0, vp.right-vp.left, VP.bottom-VP .top );/*Dibujar un borde rectangular*/

}

/*Diseñar la función de gráficos del mouse*/

Flecha entera()

{

int tamaño;

int raw[]={4, 4, 4, 8, 6, 8, 14, 16, 16, 16, 8, 6 , 8, 4, 4, 4};/*Definir coordenadas de polígono*/

setfillstyle(SOLID_FILL, 2);/*Establecer modo de relleno*/

fillpoly(8, raw );/ *Dibujar flecha del cursor*/

size=imagesize(4, 4, 16, 16); /*Probar tamaño de imagen*/

rar=malloc(size); /*Asignación de área de memoria*/

getimage(4, 4, 16, 16, rar /*Imagen de flecha del cursor de almacenamiento*/

putimage(4, 4, rar, XOR _ PUT );/*Borrar imagen de flecha del cursor*/

Devolver 0;

}

/*Funciones clave*/

int tecla especial(

void)

{

tecla int;

while(tecla BIOS(1)= = 0); /*esperar la entrada del teclado*/

tecla = tecla BIOS(0); /*Entrada de teclado*/

Tecla = tecla amp0xff? Llaves y llaves. 0x ff: key gt; gt8; /*Solo toma el valor de escaneo de la clave especial, el resto es 0*/

Ingresar clave /*Devuelve el valor de la clave*/

}

上篇: Orden de trazos flotante 下篇: Registro de nombres de dominio en EdimburgoEl Reino Unido es una de las potencias económicas del mundo y su PIB en 2007 ocupó el quinto lugar en el mundo. La proporción de la industria manufacturera británica en la economía nacional ha disminuido; la proporción de la industria de servicios y la energía ha seguido aumentando, y el comercio, las finanzas y los seguros se han desarrollado rápidamente. El turismo es uno de los sectores económicos más importantes del Reino Unido. El valor de la producción anual es de más de 70 mil millones de libras y los ingresos por turismo representan aproximadamente el 5% de los ingresos por turismo mundial. A diferencia de los países que se centran en el turismo panorámico, la cultura real y la cultura de los museos de Gran Bretaña son las mayores atracciones de la industria del turismo. Las principales atracciones turísticas son Londres, Edimburgo, Cardiff, Brighton, Greenwich, Stratford, Oxford y Cambridge. El Reino Unido es la cuarta nación comercial más grande del mundo, representa más del 5% del comercio mundial total y las exportaciones de bienes y servicios representan aproximadamente el 25% del PIB. El Reino Unido exporta principalmente maquinaria, automóviles, equipos de aviación, productos eléctricos y electrónicos, productos químicos y petróleo, e importa principalmente materias primas y alimentos. El Reino Unido es también el sexto mayor inversor extranjero y el sexto mayor receptor de ayuda exterior del mundo. Londres es el centro financiero y comercial del mundo. El turismo es uno de los sectores económicos más importantes del Reino Unido. En 2001, el valor de la producción de la industria del turismo alcanzó los 72,8 mil millones de libras; en términos de ingresos por turismo, el Reino Unido fue el séptimo país turístico más grande del mundo en 2001, representando el 3,4% de los ingresos por turismo del mundo en marzo de 2002. Había 2.056 millones de empleados, incluidos los autónomos. Hay aproximadamente 1,48 millones de personas. En 2001, la producción turística interna del Reino Unido fue de aproximadamente 59,5 mil millones de libras esterlinas. En 2001, el número de turistas extranjeros que visitaron el Reino Unido alcanzó los 22,8 millones, 9 menos que en 2000. Entre ellos, los turistas de Europa Occidental disminuyeron en 8 a 654.3802,87 millones, los turistas de América del Norte disminuyeron en 654.3803 a 4,23 millones, los turistas de otras regiones disminuyeron en 9 a 3,75 millones y los ingresos totales por turismo extranjero fueron de 654.38065438.03 mil millones. Los ingresos por turismo de negocios ascienden a 3.400 millones de libras, lo que representa el 30% de los ingresos totales por turismo en el extranjero, y tiene una tendencia de desarrollo continuo. En 2001, los ingresos por turismo interno ascendieron a 59.500 millones de libras esterlinas. En 2000, la facturación total de los hoteles en el Reino Unido fue de 56.600 millones de libras, un aumento del 7,2% con respecto a 2000. En 2001, había más de 60.000 hoteles en el Reino Unido. Había 515.000 empresas de restauración registradas, con una facturación total de 654.3882 millones de libras, un aumento de 654.380,1 respecto al año 2000. Hay aproximadamente 49.500 pubs de todo tipo, ocho menos que en 1990. El brote de la enfermedad de las vacas locas en febrero de 2001 y el "incidente del 11 de septiembre" afectaron gravemente a la industria turística británica, provocando pérdidas de 1.500 millones de libras. La industria de servicios incluye seguros financieros, comercio minorista, turismo y servicios comerciales (prestación de servicios legales y de consultoría, etc.). ). Se ha desarrollado rápidamente en los últimos años. A finales de 2001, había 22,8 millones de empleados, lo que representaba el 77,5 por ciento de la población ocupada total. El valor de la producción total en 2001 aumentó en un 1 en comparación con 2000, y su valor añadido representó el 71,4 por ciento del valor añadido del PIB. . Londres es un centro financiero de fama mundial, que se dedica a préstamos bancarios transfronterizos, transacciones de divisas, emisión de bonos internacionales, inversión de fondos y otros negocios. También es el mercado de seguros más grande del mundo, el mercado al contado de oro y el mercado de préstamos para barcos más grandes del mundo, y un importante centro de comercio de metales no preciosos. La industria financiera es la fuerza principal de la balanza comercial del Reino Unido, representa más del 5% del PIB, emplea a más de 65,438 millones de personas y alcanza un récord de 654,3832 millones de libras. Después de que el gobierno laborista llegó al poder, llevó a cabo reformas regulatorias financieras por primera vez y estableció la Autoridad de Servicios Financieros en junio de 1998, reemplazando las funciones regulatorias originales del Banco de Inglaterra. El gobierno británico fomenta la inversión extranjera en el Reino Unido y la considera una forma eficaz de introducir nuevas tecnologías, nuevos productos, nuevos métodos de gestión, aumentar el empleo y las exportaciones. En los últimos años, el Reino Unido se ha convertido en la primera opción para que los inversores extranjeros inviertan en Europa. En 2001, el Reino Unido atrajo un total de 53.800 millones de dólares en inversión extranjera, ocupando el tercer lugar en el mundo. Estados Unidos es el mayor inversor en el Reino Unido, con un 48,4, seguido de Alemania, Canadá y Japón, con un 8,2, 6,4 y 5,9 respectivamente. Las áreas de inversión incluyen automóviles, comunicaciones, información, electrónica, equipos médicos, servicios financieros, alimentos y bebidas, etc. Las formas de inversión incluyen la adquisición y fusión de empresas existentes, la ampliación de plantas de producción existentes, el establecimiento de bases de investigación científica o sedes regionales de empresas multinacionales, etc.