• Sábado 14 de Diciembre de 2024, 22:41

Autor Tema:  Re: Curiosidad Con Turbo C++  (Leído 1275 veces)

ifmaster

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Curiosidad Con Turbo C++
« en: Sábado 5 de Junio de 2004, 22:22 »
0
Pues haciendo un ejercicio e probado una cosa y mira me a salido esta curiosidad, nu se no creo k sea nada del otro mundo pero me a echo gracia y lo pongo como curiosidad :P:
el programa:
#include <stdio.h>
#include <conio.h> //weno esto no hace falta :P

int main()
{
   clrscr(); // lo mismo k kon conio.h :P

   long int counter = 1;

   while (counter <= 3000000)
      {
      printf("%ld ", counter);

      counter++;
      }

   return 0;
}
Pues el ordenador empieza a piñon a sakar numeros xDD (logico :P) no se si con esto le estoy creando un bucle infinito al pc, xk kon el mio se a estao unos 5 minutos y ahun no havia terminao :P (y es un P3 450 :P asi k nu se k no es un 486 :P:P:P)
La curiosidad esta cuando cambias a Windows (yo lo e echo con Windows XP) y le das a opciones de simbolo del sistema y le pones que enmes de pantalla completa te lo muestre en forma de ventana, entonces seleccionas simbolo del sistema y ves como los numeros avanzan de una forma muchoooooooooo mas lenta, entonces mi conclusion es que Windows es muuuuuucho mas lento que ms-dos, ahunque no se, es simplemente lo k creo despues de haver echo esto :P

La cosa me a salido xk estaba haciendo un ejercicio k iziera un bucle que contara del 1 al 3,000,000 y k solo mostrara por pantalla cada vez k llegaba a 1,000,000, 2,000,000 o 3,000,000 y claro en el libro ponia que asi se calculaba la velocidad del ordenador (calculo cutrillo jeje) y lo e echo y en menos de dos segundos ya tenia el aviso de k havia llegao a 3,000,000 y claro e dicho... coño k rapido no creo k vaya tan rapido y e probao eso xDD weno si alguien quiere comentar algo al respecto o aclararme mas o menos k es lo k a pasado pues x mi parte se lo agradeceria (le daria un beso y to... pero mejor no xDDD);

ifmaster

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Curiosidad Con Turbo C++
« Respuesta #1 en: Sábado 5 de Junio de 2004, 22:33 »
0
Otra cosa rara :P alguien sabe xk esto no funciona:
#include <stdio.h>
#include <conio.h>

int main()
{
clrscr();

unsigned long int counter = 1;

while (counter <= 3000000)
{
printf("%lu\n", counter);

counter++;
}

return 0;
}
En teoria tendria que imprimir del 1 al 3,000,000 cambiando de linia cada vez k a escrito un numero :P pues en mi pc no se ve nada, la pantalla en blanco :P:P:P

Zholo

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Curiosidad Con Turbo C++
« Respuesta #2 en: Miércoles 9 de Junio de 2004, 19:31 »
0
Hola

Sucede que tu declaras la variable como
Código: Text
  1. unsigned long int
  2.  
y tan solo necesitas declararla
Código: Text
  1. unsigned long
  2.  
eso era todo.

 :kicking:

Ruben3d

  • Miembro HIPER activo
  • ****
  • Mensajes: 710
  • Nacionalidad: es
    • Ver Perfil
    • Web personal
Re: Curiosidad Con Turbo C++
« Respuesta #3 en: Miércoles 9 de Junio de 2004, 21:04 »
0
Citar
entonces mi conclusion es que Windows es muuuuuucho mas lento que ms-dos,

Piensa que esté en ventana o en pantalla completa lo sigues ejecutando en Windows. El que tarde más en ventana es debido a que estás en modo gráfico y se ha de mantener todo el resto del escritorio, además de simular el comportamiento de la consola en su ventana (que lo normal es que se ejecute en modo texto).

Citar
no se si con esto le estoy creando un bucle infinito al pc, xk kon el mio se a estao unos 5 minutos y ahun no havia terminao

Si no imprimieras por pantalla sería sólo un instante. Para imprimir por pantalla cada carácter el programa realiza una interrupción software (trap) para pedir al sistema operativo que le pinte un carácter. Esto conlleva saltar a modo protegido, guardar en la pila el contador de programa, los registros y la palabra de estado, ejecutar la rutina de atención de la interrupción y, si estás en Windows (o cualquier otro SO multitarea), ejecutar el planificador (scheduler) para ver si encima te quita el procesador para darselo a otro proceso con más prioridad, y esperar de nuevo a que te toque, con los cambios de contexto que todo esto ha implicado. Como ves, suceden muchas cosas cada vez que imprimes un carácter.

Un saludo.

Ruben3d