PREGUNTAS CONTESTADAS - Pascal/Turbo Pascal

 Hay un total de 203 Preguntas.<<  >> 

    Pregunta:  13525 - TRADUCIR EL FREEPASCAL PROBLEMA CON TOKENS.PAS
Autor:  adrian15 adrian15
Estoy intentando traducir el free pascal (www.freepascal.org) y he encuentro los siguientes problemas una vez compilado el nuevo compilador:

Para el archivo prueba.pas:

programa hola;

inicio

escribe('hola');

fin.

Me da el siguiente error:

prueba.pas(1,1) Fatal: Syntax error, INICIO expected but identifier PROGRAMA found

Lo cual no es logico porque un programa siempre ha de empezar por program.

Concretamente lo que cambio es:
-----------Begin of partial tokens.pas file -----

const arraytokeninfo : ttokenarray =( (str:'' ;special:true ;keyword:m_none;op:NOTOKEN), { Operators which can be overloaded } (str:'+' ;special:true ;keyword:m_none;op:NOTOKEN), (str:'- ' ;special:true ;keyword:m_none;op:NOTOKEN), (str:'*' ;special:true ;keyword:m_none;op:NOTOKEN),

......Mas lejos en el archivo.....

{ Normal words } (str:'COMO' ;special:false;keyword:m_class;op:_OP_AS),(* AS --> COMO *) (str:'A' ;special:false;keyword:m_none;op:NOTOKEN), (* AT --> A *) (str:'HAZ' ;special:false;keyword:m_all;op:NOTOKEN), (* DO --> HAZ *) (str:'SI' ;special:false;keyword:m_all;op:NOTOKEN), (* IF --> SI (CONDICIONAL)*) (str:'IN' ;special:false;keyword:m_all;op:_OP_IN),(* IN --> EN *) (str:'ES' ;special:false;keyword:m_class;op:_OP_IS), (* IS --> ES *) (str:'DE' ;special:false;keyword:m_all;op:NOTOKEN), (* OF --> DE *) (str:'SOBRE' ;special:false;keyword:m_clas
  Respuesta:  tp_tc tp_tc
Bueno dejame decirte que no necesariamente un programa debe de iniciar con un program, por ejemplo en pascal es valido colocar lo siguiente:

uses crt;
begin
writeln('Hola');
end.

    Pregunta:  13837 - ROTACIóN DE 90 GRADOS DE UNA MATRIZ CUADRADA
Autor:  Alejandro
Hola, me gustaría saber si alguien puede decirme el algoritmo para rotar una matriz bidimensional cuadrada, ya sea a la izquierda o derecha (seguramente se necesitan dos rutinas diferentes)
p ej.
Si tengo que MAX=3
una matriz de [1..MAX,1..MAX] de enteros:
1 2 3
4 5 6
7 8 9

como hago para que quede:
3 6 9
2 5 8
1 4 7

Muchas gracias.
  Respuesta:  Ramiro Javier Perelmiter
{Hola contesto a tu progunta, te envio ya todo el programita hecho}

{El algoritmo codificado en Pascal que vos Pedis el Procedimiento RotarMatrizOriginal}

Descargar archivo.
  Respuesta:  Alejandro
Ya descubri la respuesta, se necesitan estas rutinas:

procedure PonerFilaComoColum (AR: arreglo; var MAT: matriz; POS: integer);
var I: integer;
begin
for I:=1 to MAX do
MAT [I,POS]:= AR [I];
end;

procedure RotarIzquierda (var MAT: matriz);
var F,C: byte;
MAT2: matriz;
AR: arreglo;
begin
MAT2:= MAT;
for F:=1 to MAX do
begin
for C:=1 to MAX do
AR [C]:= MAT2 [F,C];
InvertirArreglo (AR);
PonerFilaComoColum (AR, MAT, F);
end;
end;

procedure RotarDerecha (var MAT: matriz);
var F,C: byte;
MAT2: matriz;
AR: arreglo;
begin
MAT2:= MAT;
for F:=1 to MAX do
begin
for C:=1 to MAX do
AR [C]:= MAT2 [F,C];
PonerFilaComoColum (AR, MAT, MAX-F+1);
end;
end;

Gracias de todos modos y espero que le sea util a otro que lo busque.

    Pregunta:  14129 - HTML SCRIPTS EN PASCAL
Autor:  Guillermo Hinojosa
¿Es posible escribir scripts en Tpascal (para DOS) que puedan ser llamados desde una página web, que puedan intercambiar información entre el programa y la página web. Esto se hace con Java y entiendo que con C u C++. En pascal no lo he logrado.
  Respuesta:  Hugo González
Pues mira, eso de hacer scripts en pascal para ser llamadas por paginas web, se podría hacer de otra forma, y seguir usando Pascal, no niego que C pueda hacer mas cosas, pero a mi me gusta pascal, primero que nada, tienes que hacer un CGI en pascal para que lo puedas mandar llamar desde las paginas web, mejor dicho desde el navegador y te regrese los resultados de las operaciones.

salu2!
  Respuesta:  El chairas chairas
amigo guillermo:

como bien dices esto a lo que te refieres es posible en c c++ Vc y demas... esta es solo una de las muchas desventajas que nos ofrece Turbo Pascal....razon por la que muchos programadores prefieren y aplican c++ puesto que este lenguaje nos permite una mayor interaccion con el sistema

    Pregunta:  14438 - VISUALIZAR COLORES DE 24 BITS EN TURBO PASCAL
Autor:  Richard dominguez
como hago para visualizar una imagen con colores de 24 bits en turbo pascal pues los ejemplos de internet solo permiten dibujos de 256 colores y los que hablan en la seccion de preguntas contestadas de la web de el programador son para visualizar imagenes de colores de 256
  Respuesta:  Dabiz Spuch Calvar
Pues es igual que con 256, tienes que establecer el modo de video adecuado y luego mover a la memoria la imagen píxel a píxel. ¿Donde tienes el problema?

Saludo

    Pregunta:  14626 - ESTRUCTURAS DINáMICAS
Autor:  OSCAR JAVIER PEDROZA MOGOLLON
Buenos días, estoy realizando un programa que utiliza estructuras dinamicas(listas circulares doblemente encadenadas), y necesito manejar la información con archivos directos.

Para buscar cierto dato (nombre del libro), como hago para buscarlo en forma directa.Cada registro debe llevar alguna clave?????
No se como se hace, pues la forma que aparece en la mayoria de los libros de turbo pascal es en forma secuencial.
  Respuesta:  Kreuzigen 2
Si, debes crear ordenar los datos del archivo de alguna manera, en el caso de "nombre del libro", puedes hacerlo por orden alfabetico, el chiste es lo siguiente: debes almacenar en un archivo (puede ser el mismo) en que posicion del archivo de datos comienzan los libros con la letra A, en que posicion los de la letra B, etc. (por ejemplo),de esa manera puedes hacer un fseek y encontrar el primer libro con la letra A y a partir de ahi buscar secuencialmente el libro deseado, es la forma mas facil, existe la mas eficiente con Arboles B, pero ya es mas complicada de explicar, necesitarias un buen libro.

    Pregunta:  14853 - FORMULA MATEMáTICA
Autor:  Natalia Vargas Serrano
Gente necesito por favor ¡Urgente! alguien que me ayude con el siguiente problema que me dejo un profe.Necesito lo mas pronto posible el algoritmo o en Pascal.

Hallar la descomposición de un número entero positivo n cualquiera (que se debe leer igual que K ) en enteros cuyas sumas sea igual a K
Ej:
5= 1+1+1+1+1
2+1+1+1
3+1+1
4+1
2+3
2+2+1

Gracias
  Respuesta:  Dabiz Spuch Calvar
Hola Natalia, a primera vista parecía sencillo este algoritmo, me ha llevado un ratillo pero finalmente conseguí un algoritmo aceptable, te explico:

Me he valido de la recursividad (Pascal permite recursividad).

Se define la función descomposición de n de la siguiente forma:

des(1) = 1
des(2) = {des(1) + 1}
des(3) = {des(2) +1, des(1) + 2}
...
des(n) = {des(1) + (n-1) , des(2) + (n-2), ..., des(n-1) + 1}

Esta es la definición matemática. Es importante darse cuenta de que des(n) no es matemáticamente una función ya que devuelve un conjunto de resultados. Cuando lo implementes en Pascal tendrás que tener en cuenta esto para ir almacenando los resultados en un vector.

Ejemplo:

des(5) = {des(4) + 1, des(3) + 2, des(2) + 3, des(1) + 4}
des(4) = {des(3) + 1, des(2) + 2, des(1) + 3}
des(3) = {des(2) + 1, des(1) + 2}
des(2) = {des(1) + 1} = 1 + 1

des(3) = {(1+1)+1, (1) + 2}
des(4) = {((1+1) + 1) + 1, ((1) + 2) + 1, (1+1) + 2, 1 + 3}
des(5) = {(((1+1) + 1) + 1) + 1, (((1) + 2) + 1) + 1, ((1 + 1) + 2) + 1, (1 + 3) + 1, ((1+1)+1) + 2, ((1) + 2) + 2, (1+1) + 3, 1 + 4}

Fíjate que con este algoritmo se nos van a repetir resultados, para la descomposición de 5 obtenemos:

5 = 1+1+1+1+1
5 = 1+2+1+1
5 = 1+1+2+1
5 = 1+3+1
5 = 1+1+1+2
5 = 1+2+2
5 = 1+1+3
5 = 1+4

De todas es fácil evitar los resultados repetidos, tienes dos alternativas:
1) Cuando almacenas el resultado en el vector comparas primero si ya existe.
2) Basta con que almacenes los resultados que tienen sus factores ordenados, es decir, almacena 1+1+1+2 y no almacenes 1+2+1+1, 2+1+1+1 ni 1+1+2+1.

Si tienes problemas para implementarlo en Pascal no dudes en preguntarme.

Un saludo.

    Pregunta:  14938 - PONER CLAVE A PROGRAMA PASCAL
Autor:  felipe reyes
hola:
me gustaria aprovechar para felicitarlos porque este foro es muy bueno
ahora mi pregunta es:¿como lo hago para que al ejecutar un programa en pascal me pida una clave y esta al ser tipeada en pantalla aprezca con los clasicos ***** asteriscos y asi nadie pueda ver lo que yo estoy ecribiendo?.

ojala me puedan ayuudar con mi gran incognita. :)
  Respuesta:  LUIS MATA
Este que te escribo lo hice como procedimiento espero te sea util.. lo unico malo es que para cambiar la clave lo tienes que hacer por el codigo fuente a menos que crees otro preceso para cambiarlo.

PROCEDURE clave;

VAR clave:longint;
BEGIN
clrscr;
cuadro;
textcolor(WHITE);
gotoxy(26,11);write('INTRODUZCA CODIGO DE ACCESO:');
gotoxy (26,12); write ('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(26,13);write('º º');
gotoxy (26,14); write ('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
Textbackground(red);
textcolor(red);
gotoxy(28,13);readln(clave);
gotoxy(28,13);write('**************');
textbackground(0);
IF clave=110707 THEN
Begin
principal(Arch);
End
else
Begin
clrscr;
textbackground(0);
cuadro;
textcolor(red);
gotoxy (26,12); write ('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(26,13);write('º º');
gotoxy (26,14); write ('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
Textcolor(17);
gotoxy(28,13);write('A C C E S O D E N E G A D O');
SOUND(1280);
DELAY(800);
SOUND(3020);
DELAY(300);
SOUND(25000);
DELAY(800);
SOUND(100);
Textcolor(0);
READKEY;
NOSOUND;
end;
  Respuesta:  Dabiz Spuch Calvar
En Pascal no es tan sencillo como en VB pero se pude hacer, lo que tienes que hacer es lo siguiente:

Cuando tu aplicación pida la clave tienes que capturar las pulsaciones de teclado con un bucle y las instrucciones Keypressed y ReadKey, por cada pulsación que haga el usuario muestras un asterisco en pantalla. Esta sería un forma de hacerlo:

uses Crt;

procedure Inicio;
var Clave, Caracter : String;
begin
Clave := '';
Caracter := '';
ClrScr; { Limpia la pantalla }
Write ('Introduzca la clave: ');
While KeyPressed do ReadKey; { Limpia el buffer de teclado }
While (Caracter <> #13) do { Termina el bucle con retorno }
begin
if KeyPressed then begin
Write ('*');
Caracter := ReadKey;
Clave := Concat (Clave,Caracter);
end;
end;
Writeln;
Write ('La clave introducida es: ', Clave);
end;

begin Inicio end.

Espero que te sirva de algo, un saludo.

    Pregunta:  15332 - COMO ESCRIBIR VARIABLES EN MODO GRáFICO(TURBO PASCAL 7 )
Autor:  Erick gordón
deseo saber como puedo escribir variables enteras, reales en modo gráfico en turbo pascal 7.0 de borland.
que función debo usar, pues cuando trabajo en ms-dos yo escribo las variables con write( variable) pero en modo gráfico no puedo utilizar
write cual es la funcion que debo usar.
  Respuesta:  Dabiz Spuch Calvar
La instrucción write envía datos a un fichero, si no indicas ninguno toma por defecto la consola de salida. Para dibujar texto en modo gráfico debes usar la instrucción OutTextXY (CoordenadaX, Coordenada Y, Texto). Para escribir números debes transformarlos a string antes de usar OutTextXY.

El siguiente procedimiento dibuja texto centrado en las coordenadas XY en una fuente y tamaño seleccionados:

procedure TextoCentroXY (Texto:String; x, y:word);
begin
SetTextStyle (8, HorizDir, 0);
SetUserCharSize (1,3,1,2);
SetTextJustify (CenterText, CenterText);
SetColor (Color);
OutTextXY (x,y,Texto);
end;

Un saludo.

    Pregunta:  15568 - EXPRESIóN LOGARITMICA DE FUNCIóN RAIZ CUADRADA.
Autor:  Emilio Romero Yañez
Estoy confeccionando una calculadora cientifica en programa Pascal/Turbo, y deseo agregar función / operación de Raiz cuadrada, para lo cual deseo saber la expresión algoritmica de dicha operación, por favor responder a mi correo si es posible tal operación.
  Respuesta:  Dabiz Spuch Calvar
En pascal, la función para calcular la raíz cuadrada es Sqrt(X:Real):Real, supongo que es esto lo que preguntabas.

    Pregunta:  15622 - FONDO EN MODO GRáFICO
Autor:  Erick gordon
Me gustaria colocar un fondo en modo gráfico atractivo,ya he utilizado el setbkcolor pero esta función solo me permite fondos de un solo color prefiero colocar un fondo diferente, como puedo hacerlo.
  Respuesta:  Diego Romero
Te refieres a que quieres poner un fondo al estilo de windows?, es decir un .BMP?, pues entonces debes hacer un algoritmo que sea capaz de interpretar un archivo en formato .BMP y dibujarlo en la pantalla.
Una descripción del formato .BMP puedes encontrarla en:
http://www.dcs.ed.ac.uk/home/mxr/gfx/2d/BMP.txt
(en ingles).

|<  <<  4 5 6 7 8 9 10 11 12 13 14  >>  >|