• Viernes 3 de Mayo de 2024, 07:56

Mostrar Mensajes

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


Mensajes - _.B._

Páginas: 1 2 [3] 4
51
Dudas informáticas / Re: Imprimir Caracteres Especiales Desde Dos
« en: Sábado 7 de Febrero de 2004, 19:36 »
OCUH!!.
NADA!!.
Simplemente no imprime los caracteres especiales del "True Type" desde DOS...
AUXILIO!!.

52
Dudas informáticas / Imprimir Caracteres Especiales Desde Dos
« en: Viernes 6 de Febrero de 2004, 02:46 »
Saludos!.
Tengo una Epson Stylus C43SX, y cuando imprimo desde el Turbo Pascal, no imprime los caracteres especiales!!.
La que tenia antes, Stylus Color 400, si estaba configurada para eso.
¿¿Como puedo hacer que los imprima?? :)
Gracias de antemano.

Bernardo L. :comp:

53
Pascal / Re: Procedure #1. Beep.
« en: Jueves 5 de Febrero de 2004, 17:38 »
Saludos!.
Yo utilizo la siguiente tabla para las notas musicales (cada nota y su frecuencia para 5 octavas diferentes):

C (Do)
  131
  262
  523
  1046
  2096

C# / Db
  139
  277
  554
  1108
  2217

D (Re)
  147
  294
  587
  1175
  2349

D# / Eb
  156
  311
  622
  1244
  2489

E (Mi)
  165
  330
  659
  1318
  2637

F (Fa)
  175
  349
  698
  1397
  2794

F# / Gb
  185
  370
  740
  1480
  2960

G (Sol)
  196
  392
  784
  1568
  3136

G# / Ab
  208
  415
  831
  1664
  3322

A (La)
  220
  440
  880
  1760
  3520

A# / Bb
  233
  466
  932
  1866
  3729

B (Si)
  248
  494
  988
  1973
  3951

El La de 440 Hz es el La utilizado para afinar algunos instrumentos.

Bernardo L. :whistling:

54
Pascal / Re: Segundos (#3).
« en: Jueves 5 de Febrero de 2004, 17:27 »
Great! :bravo:
A programar!.

Bernardo L. :comp:

55
Pascal / Re: Letras En Espiral
« en: Miércoles 4 de Febrero de 2004, 20:33 »
Eugenio, 'tas seguro?. Yo lo corri con el codigo COPIADO y PEGADO que tu escribistes, y me corrio bien.

56
Pascal / Años Bisiestos (#4).
« en: Miércoles 4 de Febrero de 2004, 20:27 »
Algo necesitado con frecuencia, es saber si un año es o no bisiesto.
Para ello, diseñé éste sencillo código:

Código: Text
  1.     FUNCTION Bisiesto (Anio:INTEGER):BOOLEAN;
  2.       BEGIN
  3.         Bisiesto:=FALSE;
  4.         IF Anio MOD 400 = 0 THEN
  5.           Bisiesto:=TRUE
  6.         ELSE
  7.           IF Anio MOD 100 = 0 THEN
  8.             Bisiesto:=FALSE
  9.           ELSE
  10.             IF Anio MOD 4 = 0 THEN
  11.               Bisiesto:=TRUE
  12.       END;
  13.  
  14.  

Bueno, estos 4 por ahora.
Suerte, y espero les sirvan.
A programar!.

Bernardo L. :comp:

57
Pascal / Segundos (#3).
« en: Miércoles 4 de Febrero de 2004, 20:00 »
A veces queremos detener el programa, mostrando información, por una cantidad de segundos.
Como el Delay es relativo a cada computador, delay (1000) no garantiza que transcurra 1 segundo (la solución a esto, o por lo menos, lo mas cercano a solucionarlo, lo demostraré mas adelante).
Diseñé el siguiente Procedure:

Código: Text
  1.     PROCEDURE Segundos (Seg:BYTE);
  2.               { Funciona para detener un programa por 'Seg' segundos.
  3.                 Valores de 'Seg' mayores a 60 segundos pueden ocasionar
  4.                 calculos de tiempo erroneos.                            }
  5.       VAR H1,H2,M1,M2,S1,S2,Cent1,Cent2:WORD;
  6.           S0:0..60;
  7.           S90:0..1;
  8.           S0B,Cent90B:BOOLEAN;
  9.       BEGIN
  10.         S0:=0;
  11.         S90:=0;
  12.         S0B:=FALSE;
  13.         Cent90B:=FALSE;
  14.         GETTIME (H1,M1,S1,Cent1);
  15.         INC (M1);
  16.         INC (S1);
  17.         INC (Cent1);
  18.         IF Cent1 > 90 THEN
  19.           BEGIN
  20.             Cent90B:=TRUE;
  21.             Cent1:=Cent1-90;
  22.             S90:=1
  23.           END;
  24.         IF S1 = 1 THEN
  25.           S0B:=TRUE;
  26.         REPEAT
  27.           GETTIME (H2,M2,S2,Cent2);
  28.           INC (M2);
  29.           INC (S2);
  30.           INC (Cent2);
  31.           IF (Cent2 > 90) AND (M1 = M2) AND Cent90B THEN
  32.             Cent2:=Cent2-90;
  33.           IF (S2 = 1) AND NOT S0B THEN
  34.             S0:=60;
  35.           S2:=S2+S0;
  36.         UNTIL (S2-S1 >= Seg+S90) AND (Cent2 >= Cent1)
  37.       END;
  38.  

NOTA: el programa o unidad que contengan a este Procedure, debe tener utilizar DOS (USES Crt,Dos;).

Bernardo L. :comp:

58
Pascal / Centrar Texto (#2)
« en: Miércoles 4 de Febrero de 2004, 19:55 »
Este Procedure sirve para centrar un String, no importa si se encuentra dentro de un Window, o si la resolución es de 40 u 80 columnas.

Código: Text
  1.     PROCEDURE CentrarTxt (WriteTexto:STRING);
  2.       VAR X,Y,Z:BYTE;
  3.       BEGIN
  4.         X:=1;
  5.         Y:=WHEREY;
  6.         Z:=LO (WINDMAX) - LO (WINDMIN) + 1;
  7.         IF LENGTH (WriteTexto) < Z THEN
  8.           X:=((Z-LENGTH (WriteTexto)) DIV 2)+1;
  9.         GOTOXY (X,Y);
  10.         WRITE (WriteTexto)
  11.       END;
  12.  

59
Pascal / Procedure #1. Beep.
« en: Miércoles 4 de Febrero de 2004, 19:50 »
Saludos!.
Solo queria compartir algunos de mis codigos, que pienso pueden ser de utilidad para varios.

Beep.

Código: Text
  1.     PROCEDURE Beep (T,D:WORD);
  2.       BEGIN
  3.         SOUND (T);
  4.         DELAY (D);
  5.         NOSOUND
  6.       END;
  7.  

Este es un procedure muy simple, que pueden utilizar por programa, o sumarlo a alguna unidad creada por ustedes.
Simplemente utiliza el Tone y el Delay para emitir un sonido.
Creo que ahorra lineas de codigo.

60
Pascal / Re: Letras En Espiral
« en: Miércoles 4 de Febrero de 2004, 18:19 »
:good: Good!.
Ahora, se me ocurre, podrias meterle por ahi un TextColor random a ver que tal.
Suerte, y a programar!.

Bernardo L. :comp:

61
Pascal / Re: Mostrar la parte entera
« en: Viernes 30 de Enero de 2004, 16:23 »
Saludos!.
Veamos:
"trunc" es una función, y transforma un valor tipo "real" a otro tipo "longint". Este valor obtenido será la parte entera del valor inicial. Por ejemplo, trunc (-1.892) dará como resultado -1, trunc (200.5) dará 200, trunc (25.3) dará 25, y así.
"round" es una función, y también transforma un valor tipo "real" a otro tipo "longint". Este valor obtenido esta vez será la parte entera del valor inicial, pero "redondeada". Por ejemplo, round (-1.892) dará como resultado -2, ya que su parte decimal es superior a 0.5, round (200.5) dará 201, ya que su parte decimal es igual a 0.5, y round (25.3) dará 25, ya que su parte decimal es inferior a 0.5, y así.
Ahora tu decide cual te sirve.

Bernardo L. :comp:

62
Pascal / Re: Randomizar Letras ?
« en: Jueves 29 de Enero de 2004, 19:32 »
Saludos!.
Código: Text
  1. procedure RandomAZ;
  2.   var Resp:char;
  3.   begin
  4.     repeat
  5.       write (Chr (Random (26)+65))
  6.     until KeyPressed;
  7.     Resp:=ReadKey
  8.   end;
  9.  
Debe servir B)
Muestra random de la A a la Z.

Bernardo L. :comp:

63
Pascal / Re: No Encuentro El Error!!!!.
« en: Sábado 24 de Enero de 2004, 02:13 »
Ouch!!.
Se me salió lo novato!!.
GRACIAS!!. No tenia ni idea que usar el read en lugar del readln me pudiera traer problemas.
Citar
Cuando pides la fecha no estás validando el rango de los números ingresados
:hola: ya se, ya se... es que con la prisa  :rolleyes:
Bueno, como ya lo tengo que entregar el Lunes, me sale meterle mas :smartass:
Gracias!.

Bernardo L. :comp:

64
Pascal / Re: No Encuentro El Error!!!!.
« en: Jueves 22 de Enero de 2004, 22:48 »
Saludos!.
Cansancio, privación del sueño (o por lo menos de razonables horas del mismo), o simple ignorancia (no de forma excluyente) pueden ser la causa de que no encuentre el porqué éste segmento de un programa que estoy diseñando (mas de 1000 lineas, no vale la pena que lo pegue completo) entra en un ciclo cuando para el Código no introduzco datos.
El lenght va a ser 0, pero luego toma un valor nulo y entra con length = 0 y cae en el ciclo.
Código: Text
  1. PROGRAM Prac002;
  2. USES CRT;
  3. VAR Dd,Mm,Aa:WORD;
  4.     Codigo:STRING;
  5.     Resp:CHAR;
  6.  
  7.     PROCEDURE LeerTexto (WriteTexto:STRING; VAR OkeTexto:STRING;
  8.                          RespAttr:BYTE);
  9.       VAR Oke:BOOLEAN;
  10.           X,Y,X2,Y2,TAtt1:BYTE;
  11.       BEGIN
  12.         X:=WHEREX;
  13.         Y:=WHEREY;
  14.         REPEAT
  15.           Oke:=TRUE;
  16.           GOTOXY (X,Y);
  17.           CLREOL;
  18.           WRITE (WriteTexto,': ');
  19.           TAtt1:=TEXTATTR;
  20.           TEXTATTR:=RespAttr;
  21.           READ (OkeTexto);
  22.           TEXTATTR:=TAtt1;
  23. {}
  24.           IF LENGTH (OkeTexto) = 0 THEN
  25.             BEGIN
  26.               X2:=WHEREX;
  27.               Y2:=WHEREY;
  28.               TEXTCOLOR (14);
  29.               WRITE (#7);
  30.               WRITE ('  No ha escrito nada!.');
  31.               READKEY;
  32.               GOTOXY (X2,Y2);
  33.               TEXTCOLOR (4);
  34.               CLREOL;
  35.               Oke:=FALSE
  36.             END
  37. {}
  38.         UNTIL Oke;
  39.         WRITELN
  40.       END;
  41.  
  42.     PROCEDURE LeerFecha (WriteTexto:STRING; VAR Dd,Mm,Aa:WORD;
  43.                          RespAttr:BYTE);
  44.       VAR Oke:BOOLEAN;
  45.           X,Y,X2,Y2,TAtt1:BYTE;
  46.       BEGIN
  47.         X:=WHEREX;
  48.         Y:=WHEREY;
  49.         WRITELN (WriteTexto);
  50.         WRITE ('(DD, MM, AAAA, cada uno seguido de <ENTER>): ');
  51.         TAtt1:=TEXTATTR;
  52.         TEXTATTR:=RespAttr;
  53.         X2:=WHEREX;
  54.         Y2:=WHEREY;
  55.         CLREOL;
  56.         WRITE ('  /  /');
  57.         GOTOXY (X2,Y2);
  58.         READ (Dd);
  59.         GOTOXY (X2,Y2);
  60.         WRITE (Dd:2,'/');
  61.         READ (Mm);
  62.         GOTOXY (X2,Y2);
  63.         WRITE (Dd:2,'/',Mm:2,'/');
  64.         READ (Aa);
  65.         GOTOXY (X2,Y2);
  66.         WRITELN (Dd:2,'/',Mm:2,'/',Aa:4);
  67.         TEXTATTR:=TAtt1
  68.       END;
  69.  
  70. BEGIN
  71.   REPEAT
  72.     TEXTBACKGROUND (7);
  73.     CLRSCR;
  74.     TEXTCOLOR (0);
  75.     WRITELN (' Introduzca los datos de la Póliza a vender,');
  76.     WRITELN ('y los datos del Automóvil a asegurar:');
  77.     WRITELN;
  78.     WRITELN;
  79.     TEXTCOLOR (4);
  80.     LeerTexto ('Código de la Póliza (0 para salir)',Codigo,117);
  81.     WRITELN;
  82.     LeerFecha ('Fecha de Adquisición de la Póliza',Dd,Mm,Aa,117);
  83.     WRITELN;
  84.     WRITE (' ¿Desea procesar otra Póliza? (s/n) ');
  85.     Resp:=UPCASE (READKEY)
  86.   UNTIL Resp = 'N';
  87.   WRITELN;
  88.   WRITE ('            FIN.');
  89.   READKEY
  90. END.
  91.  
Publiqué el .PAS en:
http://mipagina.cantv.net/bernardolg/tp/FECHATXT.PAS
(click con el boton derecho del MOUSE, y "Guardar destino como...").
GRACIAS a quien intente ayudarme.

Atte.

Bernardo L. :comp:

65
JavaScript / Re: Javascript Que Cambia El Título.
« en: Jueves 22 de Enero de 2004, 18:02 »
Thanks!. :kicking:

Bernardo L. :comp:

66
Pascal / Re: problema con uses
« en: Domingo 18 de Enero de 2004, 05:35 »
Hehe, pense que la podias bajar de donde bajastes el PAS.
Ve aqui y trata:
http://www.geocities.com/ymarte/prgs/mystdlib.html
Copia todo, pegalo en un archivo NEW, y dale a F9 para compilarlo y convertirlo en TPU.
Suerte!.
Bernardo L. :comp:

67
Pascal / Re: problema con uses
« en: Domingo 18 de Enero de 2004, 05:07 »
A ver.
"uses Crt, Dos, WinCrt", y no recuerdo cuales otras, son Unidades del TP.
Las otras, como "MyStdLib" en tu caso, son Unidades (UNIT) creadas por usuarios.
Son los archivos con extensión TPU o TPW.
Estos archivos TPU deben estar en el directorio que tengas identificado en tu TP, en la parte de:
Options > Directories... > Unit directories
Si no los tienes en esa carpeta (o cualquiera de las que tengas identificadas), al tratar de compilar el programa te devolverá el error de que no encuentra la unidad.
Si borras a MyStdLib de la parte de "uses MyStdLib", el programa simplemente no podrá utilizar los "procedures", "functions", "types", y demas, que se encuentren en la unidad, y que de seguro son necesarios para correr el programa.
Suerte!.
Bernardo L. :comp:

68
Pascal / Re: Devolver el numero de dígitos
« en: Martes 13 de Enero de 2004, 18:22 »
Thanks!.
Bernardo L. :comp:

69
Pascal / Re: Devolver el numero de dígitos
« en: Lunes 12 de Enero de 2004, 01:12 »
Saludos!.
Que podría causar un error en ese procedimiento?.

Bernardo L. :comp:

70
JavaScript / Javascript Que Cambia El Título.
« en: Martes 6 de Enero de 2004, 03:12 »
Saludos!.
Hace un tiempo, cuando comence a estudiar JavaScript y HTML, diseñé un pequeño código que cambia el título de la Página Web.
Código: Text
  1. <!-- Start Cambia Título -->
  2. <!-- Start Change Title  -->
  3. <script language="JavaScript">
  4. <!--
  5. var arr_blg = new Array()
  6.   arr_blg[0] = "MENSAJE 1"
  7.   arr_blg[1] = "MENSAJE 2"
  8.   arr_blg[2] = "MENSAJE 3"
  9.   arr_blg[3] = "MENSAJE 4"
  10.   arr_blg[4] = "MENSAJE 5"
  11.  
  12. var time_b = 5000;
  13. var refresh = null;
  14. var i_blg = 0;
  15.  
  16. function wonka_title() {
  17.   if (i_blg > 4) {
  18.     i_blg = 0
  19.     }
  20.   blg = arr_blg[i_blg];
  21.   document.title = blg;
  22.   refresh = setTimeout("wonka_title()",time_b);
  23.   i_blg = i_blg+1
  24.   }
  25.  
  26. wonka_title();
  27. //-->
  28. </script>
  29. <!-- End Cambia Título -->
  30. <!-- Created by Bernardo E. López García. January 2003. -->
  31.  
  32.  
Como ven, pueden poner la cantidad de mensajes que quieran, y el valor de 5000 de tiempo de espera entre mensaje y mensaje de la variable time_b lo pueden cambiar tambien.
Una página que está utilizando el código es www.saracom.com
Bernardo L. :comp:

71
Pascal / Re: Buscaminas el Juego
« en: Martes 6 de Enero de 2004, 01:48 »
Saludos!.
Revisa en:
http://www.geocities.com/alvisonh/main.htm
No lo he probado.
Busca un rato entre:
http://www.google.com/search?num=50&hl=en&...l%22+buscaminas

Recuerda, a lo que consigas revisale bien el codigo, a ver que puedes aprender de el.
Suerte!.
Bernardo L. :comp:

72
Pascal / Re: Para Textattr
« en: Viernes 2 de Enero de 2004, 21:02 »
Epale BlackTigerX!.
Pana, thanks por la nota.
No habia visto el boton de CODE!!. Así sí se ve bien.
Cuando "Pegué" el código, se comió todos los tabuladores.
Código: Text
  1. A programar!.
  2.  
Bernardo L. :comp:

73
Pascal / Re: Textattr
« en: Jueves 1 de Enero de 2004, 05:49 »
Gracias por la info BlackTigerX!.
A programar!.
Bernardo L. :comp:

74
Pascal / Para Textattr
« en: Miércoles 31 de Diciembre de 2003, 18:01 »
Saludos!.
Creé este código en donde aparece el valor de TextAttr (que va de 0 a 255) para cada color de texto (TextColor, que va del 0 al 31, contando los que titilan - blink), con cada color de fondo (TextBackground, que va del 0 al 7, y que son iguales a los 8 primeros colores del TextColor).
>> Para cambiar de color de fondo, presiona cualquier tecla. Para salir del programa, presiona la tecla ESC en cualquier momento <<
Hay una copia de este archivo en http://mipagina.cantv.net/bernardolg/tp/files/BACKGRD1.PAS
Despues que veas la combinación de color de texto con color de fondo, simplemente haces TextAttr:=192 (letras negras que titilan sobre fondo rojo), o TextAttr:=15 (letras blancas en fondo negro), o el que mas te sirva,  en cualquier parte de tu programa.
Utiliza Normvideo para reestablecer el TextAttr original, o lee los mensaje de este foro para otros ejemplos del TextAttr.
A programar!.
Bernardo L. :comp:

{* * * *}
PROGRAM TextoFondo;
USES CRT;
VAR C1:BYTE;
    Chr1:CHAR;

PROCEDURE TEXTOO;
  VAR C1,C2:BYTE;
  BEGIN
    FOR C1:=0 TO 31 DO
      BEGIN
        TEXTCOLOR (C1);
        FOR C2:=1 TO 4 DO
          WRITE (TEXTATTR:5)
      END;
    END;

BEGIN
  CLRSCR;
  C1:=0;
  WHILE Chr1 <> #27 DO
    BEGIN
      IF C1 = 8 THEN
        C1:=0;
      TEXTBACKGROUND (C1);
      CLRSCR;
      TEXTOO;
      INC (C1);
      Chr1:=READKEY
    END;
  NORMVIDEO;
  CLRSCR
END.
{* * * *}

NOTA: correciones bien recibidas.

75
Pascal / Textattr
« en: Martes 30 de Diciembre de 2003, 16:20 »
Saludos!.
El TextAttr devuelve un valor numerico del color utilizado para el texto, y mas nada?.
Es la única información que da?.
Gracias!.
Bernardo :comp:

Páginas: 1 2 [3] 4