Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - SirLanceCC

#11
Programación C/C++ / Re: Validacion de cadenas C++
7 Septiembre 2010, 03:31 AM
una opción medio fácil de realizar para convertir un autómata a programa es más o menos así en pseudoc:


i=0;
estado = 1;

while(cadena[i] != 0){
 if(estado == 1){
   if(cadena[i] == 'h') estado = 2;
   else if(cadena[i] == 'w') estado = 1;
   ...
   else ERROR();
 }
 if(estado == 2){
   ...
 }
 ...

 i++;
}


Después de ese ciclo solo haces un if para ver que el estado en que se terminó es un estado de aceptación. ERROR() puede ser un simple break.

Para simplificar las cosas puedes pasar todo a minúsculas primero y puedes quitar algunas cosas de tu analisis si lo deseas, por ejemplo el http:// lo puedes verificar con alguna función de string.h y empezar con i=7.

Edito:
Este código representaría un autómata donde q1 es el estado inicial. Desde el estado q1 si se lee una h se va al estado q2, y si se lee una w se queda en el estado q1...
#12
http://www.cplusplus.com/reference/clibrary/cstdio/scanf/

scanf() devuelve el número de variables leidas, o un número negativo si se alcanza el final del archivo.

quedaría así tu ciclo:

while(scanf("%s",frase) > 0)
   {
      printf("\n\t%s\n\t",frase);
   }


recuerda que while evalúa la condición primero y si resulta verdadera se realiza lo que está entre corchetes.
#13
Código (cpp) [Seleccionar]
cout << it->Nombre << endl;

Para fácil y rápido, creo que así debería funcionar.
#14
Paletas sólo las utilizas si entras en el modo de 8 bits por pixel. En los modos truecolor (16,24,32 bits por pixel) te olvidas de eso.

Las imágenes pcx son de los formatos que acepta allegro, al igual que bmp y tga (creo). Si quieres usar png o jpg, es con extensiones que vienen con el mismo paquete allegro. Si estás empezando no te recomiendo que uses las extensiones pues en mi experiencia personal son un poquito más dificiles de hacer que funcionen. Y además jpg no te lo recomiendo para juegos ya que tiene pérdida de calidad, para fotos enormes está perfecto, pero para imágenes de 32x32 es mejor que uses por ahora bmp.

Y para hacer que se mueva, puedes hacerlo a mano o usar las funciones que explica en el manual para cargar archivos Autodesk Animator FLI or FLC (aunque nunca las he usado).
#15
Estás definiendo dos veces main() y de hecho debes definirlo como int main() y poner el return.


int main ()
{
char nombre [20];
printf("BIENVENIDO\n");
printf("hola soy el programa de matematicas dime tu nombre\n");
scanf("%s",& nombre [0]);
printf ("ok % s ¿que quieres hacer?:\n", nombre);
scanf("%s",& nombre [0]);
//}    **ESTO NO VA**
//int main()
//{
  int opcion,n1,n2,n3;
  printf("\n CALCULADORA");

...

       default:
       break;
  }
  clrscr();
  return 0;
}
#16
BUeno, en un unsigned long long int (que es el tipo de entero mas grande que conozco en C) podrías almacenar el entero de un archivo de 8 bytes (64bits) lo cual realmente es nada.

Realmente no veo el sentido de todo esto, puesto que si un archivo es un número binario enorme, y lo cargas en memoria tienes el identificador *unico* de cada archivo, pero en sí es el mismo archivo, solo que en memoria. Es decir, igual podrías hacer un fread() o algo así, y habría archivos que no quepan en tu memoria.

De todos modos, lo que deberías hacer para manejar números muy grandes es ocupar una base numérica muy grande, como 264, e implementar los algoritmos de la primaria. Revisa la numeración Maya (era base 20) y te darás más o menos una idea de lo que te quiero decir.
#17
La forma de escribir puede influir en la idea que los otros usuarios nos formamos de tí.
#18
Primero que nada, quieo aclarar que no soy ningún experto en el tema pero he estado experimentando al imprimir mis fotos digitales para tenerlas en álbum. Espero que esto pueda ser de utilidad para aquellas personas que gustan de tener buenas fotografías en sus casas. Espero también que esta guía sea complementada por todo aquel que haya experimentado con la impresión de fotos, o que sepa de datos técnicos .

Lugares para imprimir
Al imprimir una fotografía digital no me refiero a hacerlo con nuestra impresora. Si bien hay impresoras con buena calidad, tintas y papeles especiales lo mejor es una foto de (casi) estudio.

México:
Están los "Contino" donde hacen foto revelado. Genaralmente tienen un kiosko Kodak para la impresión de fotos digitales. Es importante preguntar si imprimen las fotos digitales con el mismo aparato que las demás, pues ese gran aparato es el mero mero. Si no lo tienen nos sale caro y casi lo mismo que imprimirlas en casa. El precio ronda en los $2.00 por foto y puede bajar si imprimes más de 12.

El tamaño
Este apartado va muy ligado con la resolución. Generalmente en los centros de revelado imprimen a 300ppp, lo que significa que en cada pulgada hay 300 puntos de color. Con esa densidad de puntos la imagen es muy buena y nítida.

Desde dZoom nos dicen que...
CitarEn principio, los procesos de revelado actuales suelen conseguir un nivel máximo de resolución de 300 ppp, aunque a partir de 150 ppp los resultados pueden ser más que aceptables.

Y en Kodak
CitarUna resolución de 225 ppp es suficiente para imprimir una copia de alta calidad por inyección de tinta.

Asumiremos que lo mejor es que imprimamos fotos a 300ppp, por que, claro está, queremos que se vea bien.

Entonces el tamaño mínimo de la foto depende del tamaño en que las querramos imprimir. Para saber el tamaño que necesitas consulta esta tabla.
  cm  - pulg - MP
10x15 - 4x6  - 2.1 (tamaño álbum)
13x18 - 5x7  - 3.1
15x20 - 6x8  - 4.3
20x25 - 8x10 - 7.2
MP = MegaPixeles

Obviamente no todas las cámaras tienen un rango tan amplio de resoluciones así que si por ejemplo no cuentas con 4.3MP usa 5MP para no perder calidad.

Ajustar fotos pequeñas Comprobado!
A veces por diversas causas puede ser que tomemos una foto en una resolución más baja que la requerida para imprimirla (decentemente). Si la llevas al centro de impresión te la van a imprimir pero me ha tocado ver que el algoritmo que utilizan para redimensionarla es pésimo, por que lo que se ve horriblemente pixelado. Lo que se puede hacer es que, en casa, redimensiones la foto con algún buen programa y con la máxima calidad posible.

Por ejemplo veamos este detalle de una foto que va a ser redimensionada desde tamaño e-mail (640x480px) a 3.1MP (2048x1536px).


Puedes usar cualquier software pero asegurate de seleccionar el mejor algoritmo, que aunque sea el más lento, nos dará los mejores resultados. En la versión actual de gimp hay tres niveles de calidad. (Fíjense en el cable del iPod, que es donde mejor se nota el cambio de calidad)

Baja: Sin interpolación


Media: Interpolación lineal


Buena: Interpolación cúbica


La mejor: Interpolación Sinc (Lanczos3)

Obviamente nunca será como una foto tomada en la resolución correcta pero se imprimen más decentes que si las manda a imprimir tal cual.


Agregar ruido No Comprobado
Ya hemos visto que una foto tomada en un tamaño muy bajo pierde calidad. Comparemos este detalle de una foto de mi teléfono.


Esta sería la foto tomada en tamaño 640x480px pero redimensionada a 3MP


Esta sería la imagen de una foto tomada en 3MP


Vemos que hay una gran diferencia en cuanto a la calidad, pero además hay un pequeño detalle: el ruido. Si se fijan con antención verán la foto tiene ruido, sobre todo en las partes poco iluminadas de la foto. Podemos agregar ruido a nuestra imagen ampliada para simular el original y quiza obtener una mejor impresión o algo más "vivo", que obviamente nunca será tan buena.

Gimp: Duplicamos la capa. En la superior agregamos ruido rgb no independiente y correlativo y luego ruido rgb independiente y no correlativo (0.06 y 0.10 aprox y respectivamente). En esa capa superior creamos una máscara de capa en la cual copiamos la imagen original pero con los colores invertidos. De suerte que las partes oscuras de l aimagen quedarán más ruidosas. Algo así:


Obviamente no es lo mismo y por ejemplo en este caso los botones quedaron con ruido (por que son negros) a pesar de estar bien iluminados. Estos detalles se pueden manipular de manera manual.

(continuará...)
#19
Citarse desaniman a la hora de ver muxa parrafada que leer.

Asi es en el mundo de las computadoras... si quieres llegar a acer algo grandecillo debes leer mucho.
#20
recorre el array $_GET o $_POST con foreach.

Código (php) [Seleccionar]

//recorrer
foreach($_GET $nombre=>$valor){
  $$nombre = $valor; //Guardar $valor en una variable
  //Si $nombre vale hola se guardara en $hola
}


No estoy del todo seguro si así era pero la idea iba por ahi. Tambien creo esta la función set() para definir variables. De paso en ese ciclo puedes aprovechar a limpar variables y eso.

Espero te ayude.