PREGUNTAS CONTESTADAS - Pascal/Turbo Pascal

 Hay un total de 203 Preguntas.<<  >> 

    Pregunta:  3022 - DIFRENCIA ENTRE BORLAND PASCAL Y PASCAL
Autor:  javier perez
Señores el motivo de escribirles es para que me informen de la diferencia entre BORLAND PASCAL y PASCAL. Desearia saber la diferencia entre estos dos paquetes. de antemano muy agradecido por su respuesta.
  Respuesta:  Juan Mamani
Borland pascal es el nombre del compilador del lenguaje pascal, de la afamada empresa Borland Inprise. Este compilador es muy potente y ha mantenido las normas del lenguaje pascal, pero lo ha potenciado agregándole nuevas características propias de la Borland para el mundo de los PC.

Pascal simplemente es el nombre del lenguaje de programación. Ahora bien, han habido empresas de software que han producido compiladores para este lenguaje y le han agregado sus exquisiteces en cuanto a los nombres de sus productos.

Pero pascal sigue siendo un lenguaje de programación. Y eso que también existe el Pascal que soporta programación orientada a objetos, como object pascal. Y así seguiriamos todo un día, bla bla....

    Pregunta:  3147 - COMO ACTIVAR EL SONIDO INTERNO DE MI PC
Autor:  Kristian Yamil Canales leija
Tengo una COMPAQ Presario 5303, con el Windows 98. La bocina interna de mi PC no se escucha, este sonido es el generado en Pascal 7.0 de la siguiente manera:

Sound(1024);

o tambien:

Tone(1325);

El problema no es en el codigo, ni el compilador si no mi PC, ¿Conocen alguna forma de activar esta bocina interna de mi PC?
  Respuesta:  guillermo medina medina
puede ser que tu libreria de pascal no te este mandando la orden al lugar de la memoria en el que se encuentra tu bocina, esta activando otros registros de memoria, lo que podrias hacer es entrar al set up y ver si puedes de alguna manera configurar la direccion de tu bocina a otra nueva, o puedes desconectar tu bocina, e iniciar tu maquina. depues la apagas y le vuelves a conectar la bocina, de esta forma el BIOS la debe de detectar y le puede asignar un numero nuevo de memoria, con suerte esto te puede servir.
  Respuesta:  Dabiz Spuch Calvar
Si el PC te saluda cuando arranca (hace beep) entonces el beeper está activado, deberías poder escuchar el pitido cada vez que haces la llamada correspondiente. Si no pita cuando arranca mira si tienes el beeper conectado a la placa (el beeper es muy fácil de reconocer y suele estar debajo de los discos cerca de la parte frontal de la torre. El beeper debería estar conectado con dos cables a un jumper de la placa.

Un saludo.
  Respuesta:  Jesús Antón Martín
No prometo nada, pero podrías encontrar algo en la BIOS de tu PC. En cualquier caso, puedes encontrar en La Red librerías excelentes para SoundBlaster y otras tarjetas de sonido.

    Pregunta:  3723 - OUT OF RANGE
Autor:  Mikel Torres Beti
Actualmente estoy haciendo un programa en la que empleo gráficos y comandos para trabajar con MS-DOS.
Para trabajar con el comando "Exec" debo añadir una línea al pricipio del programa lo siguiente:
{$M 16384,0,24000} que hace referncia a {Stack size,low heap limit,higt heap limit}.
El problema me viene que si amplio la <<hight heap limit >> el comando exec ignora su contenido y no procesa lo que se le indica , como por ejemplo copiar dos ficheros a un directorio.
La solución pensaba que estaba en bajar la cantidad de << hight heap limit >> pero me he encontrado de que al emplear el comando Getmem me da el siguiente error: " Heap overflow error"
  Respuesta:  rafa garza
hola que tal, desafortunadamente pascal es demasiado ordenado para manejar la memoria y tienes que seguir ese status, lo unico que te puedo recomendar que todas las rutinas que necesites acerca de las funciones de DOS, las hagas tu, y de esa manera aparte de que ocupas menos memoria, podras manipular las acciones que se esten desarrollando, si tienes alguna duda acerca de lo que te escribo con toda confianza puedes escribirme

ok
  Respuesta:  Juan Fazzini
Antes de realizar nada, hace un trace del programa (F7) y verificá cuando ejecute la línea del exec (en el caso que "ignora su contenido") el valor de "doserror" (variable del sistema que te indica por qué no ejecutó el comando exec, te indica con un 2 si no encuentra el archivo ejecutable, 8 si no tiene memoria suficiente, etc; la tabla esta en el help).

Si es porque no encuentra el archivo ejecutable, puede ocurrir porque podes intentar utilizar un commando del sistema (como copy por ej) el cual no es un archivo ejecutable, en ese caso tenes que cargar el intérprete de comandos (command.com) para poder ejecutar la rutina.
Un ejemplo de un exec ejecutando la rutina copy:
exec(´command.com´,´/c copy file1.aaa file2.ccc´);

Si por otro lado indica que no hay memoria suficiente intenta cambiar los datos de $M (normalmente stack esta en 14000, heapmin 0 y heapmax 24000)
Para que puedas entender como funciona esto tenes que ver que tu programa esta utilizando la memoria convencional (64K como maximo) si elevamos mucho el heapmax no podras ejecutar otro programa, si lo bajas mucho no podras cargar todas las variables del tuyo (caso que te ocurre un heap overflow (o desbordamiento de memoria)).
Te recomiendo que intenetes programar los diferenes comandos directamente vos y no utilices programas externos.
Cualquier consulta enviame un mail.
Suerte!

    Pregunta:  3939 - COMO INSTALAR CORRECTAMENTE TURBO PASCAL 7.0.
Autor:  Bernardo Rivero Bascope
Soy principiante en el mundo de la programacion. Acabo de bajar Turbo Pascal 7.0.
del Internet en un archivo zip. Al descomprimirlo todos los archivos se ubican en mi directorio principal del programa --> C:\TP. En la ayuda indica la forma de crear directorios para ubicar los diferentes tipos de archivos. Sin embargo no puedo hacer que el programa funcione correctamente. Mi pregunta es la siguiente: Como puedo saber que archivos (con que extensiones) deben agruparse en que directorios?.
Cuantos directorios debo abrir?. Como se maneja la opcion OPTIONS - DIRECTORIES?.

Muchas gracias por la valiosa informacion.
  Respuesta:  Ginger8
Hola, mira, como decirte ke directorios son y los archivos ke van ahi (cosa ke ya deberia venir hecha) te mando el pascal 7 mio ya con los directorios y todo eso y si quieres te lo descomprimes (esta comprimido en winzip 8, si no lo descomprime el ke tengas te bajas el 8 de cualquier sitio) en la parte del option--> directories veras ke hay una ruta pues la cambias y pones la ruta completa del directorio UNITS en los dos apartados ke estan rellenos.
los demas son para objetos y otras cosas pero van por el mismo estilo. como veo ke eres principiante (yo mas o menos tambien) no hace falta ke tokes lo de los objetos ni nada solo los apartados ke estan rellenos. bueno espero ke te sirva para algo ¿okis?. un saludo.

PD: para iniciarte en la programacion esta bien pero deberias tocar un programa visual si es ke piensas dedicarte a la programacion de gestion y otras cosas por el estilo (la gente te pide un programa y te dice: hazme un programa pero con botones y eso..., no saben ke el DOS es mejor y que el windows no vale un duro, pero bueno, la peña manda). el Visual Basic, p.e., es muy sencillo (dentro de lo que cabe) y es muy parecido al pascal y ademas es mas chulo, con sus ventanitas, botones y todo eso.jeje. bueno, hasta otra muchacho/a.

Aqui esta el programa Pascal70.zip

    Pregunta:  4148 - FUNCIONES COMO PARÁMETROS
Autor:  Laura Castro
Me gustaría saber cómo se pueden usar las funciones como parámetros en Turbo Pascal 7. Muchas gracias. Espero que me puedan ayudar.
  Respuesta:  Rafael Garza
con la directiva de compilacion F+ forzaras al compilador a que no te marque error y despues defines el parametro solo lo defines como procedure o function ok
espero que no te marque error tu compilador

    Pregunta:  4210 - TRABAJANDO CON VECTORES EN PASCAL (BORLAND)
Autor:  Armando Gatica Henríquez
Estoy aprendindo pascal y me dieron unos ejercicios con Vectores. por ejemplo como llenar un vector o como ordenar los componentes y no entiendo lo de vector por que recien lo estamos viendo en Lineal. En resumen no entiendo como se declara en vecto si alguien puede ayudarme se lo agradeceré.
  Respuesta:  Alejandro La Rota
UNA VARIABLE "TIPO" ENTERA SE DECLARA:

var x:integer;

Por ejemplo un vector de 10 variables enteras se puede declarar:

TYPE mivector=ARRAY [1..10] OF INTEGER:

donde "mivector" pasa a ser un nuevo "TIPO" de dato, por lo que a continuación puedes definir variables :

var vec1,vec2:mivector;

... y utilizar esas variables así;

llenar los vectores:

vec1[1]:=1;
vec2[1]:=2;
vec1[2]:='el valor que quieras'

imprimir los vectores;

for x:=1 to 10 do
begin
gotoxy(10,x);
write(vec1[x]);
end;

Tambien puedes crear vectores de CHAR, de STRING, de BOOLEAN, etc...

A jugar con los vectores !
  Respuesta:  Jenny
Si bien ahora lo que te mando, no es casi nada, voy a ver si te puedo conseguir un apunte que habla de arreglos unidimencionales. resp4210.zip
Escribime contandome donde estudias.
  Respuesta:  Rafael Monterroza
Un vector es una colección de datos del mismo tipo almacenados en la memoria de una computadora los cuales están representados todos bajo un mismo nombre y se accede a los elementos individuales mediante un índice: Ej:

_____________
V = |4|2|6|3|1|5|
-------------
donde V[1] = 4
V[2] = 2
V[3] = 6
V[4] = 3
V[5] = 1
V[6] = 5

En Pascal un tipo vector se declara de la siguiente manera:

type
TVector = array[<lim_inf>..<lim_sup>] of <tipo_dato>;

var
V : TVector;

donde:
<lim_inf> = el límite inferior del índice (Ej: 1)
<lim_sup> = el límite superior del índice (Ej: 10)
<tipo_dato> = el tipo de datos que se va a almacenar dentro del vector.

Ejemplos:

type
TVectorInt = array[1..10] of integer;
TVectorChar = array[´a´..´z´] of integer;

var
V1 : TVectorInt;
V2 : TVectorChar;

En V1 estamos declarando un vector que contiene enteros y cuyo índice son enteros entre 1 y 10, es decir tiene 10 elementos

En V2 estamos declarando un vector que contiene enteros y cuyo índice son caracteres de la ´a´ a la ´z´, es decir, tiene 26 elementos.
  Respuesta:  Felipe
Hola, para llenar un vector solo tienes que hacer un ciclo con For para llenarlo, aqui te mando un Programita para llenar un vector:

program vector1;
uses crt;
var vector : array [1..5] of integer;
i:integer;
begin
clrscr;
for i:=1 to 5 do
begin
writeln(´Dame el dato: ´);
readln (vector[i]);
end;
writeln (´el vector es: ´);
for i = 1 to 5 do
writeln (v1[i])
end.

    Pregunta:  4225 - COMO PUEDO GRABAR EL CONTENIDO DE UNA VENTANA
Autor:  Irancho Mendez Perez
Como puedo poner una ventana y despues quitarla reponiendo lo que estaba atras de esa ventana, no de toda la pantalla, sino solo de una ventana
  Respuesta:  edwin payan
uses crt , go32;
type
save_screen = array [0..25*80*2-1] of byte;

procedure GetScreen (var Getpantalla:save_screen);
Begin
dosmemget($B800, 0,Getpantalla,25*80*2);
End;

procedure PutScreen (var Putpantalla:save_screen);
Begin
dosmemput($B800, 0, Putpantalla,25*80*2);
End;

var
pantalla1:savescreen;
begin
textatt:=15+0*16;
clrscr;
{ejemplo}
getscreen(Pantalla1)
texatt;=15+1*16;
write(´hola´);
readln;
putscreen(Pantalla1)
{termina el ejemplo}:

readln;
end;
{ojo, compilado en freepascal}
  Respuesta:  carlos iturralde
a la pregunta le hace falta especificar si el modo de video es grafico o texto, supondre, para la respuesta, que es modo texto:
1._ debes definir un puntero
2._ creas memoria suficiente (con el comando new) para almacenar la ventana, el tamaño estara dado por: (x2-x1)*(y2-y1)*2
3._ grabas el contenido de la region con la funcion gettext(x1,y1,x2,y2,puntero), si no es la funcion sera una muy parecida con los mismos parametros
4._ ahora puedes "ensuciar" la parte de la pantalla copiada
para reponerla:
1._ puttext(x1,x2,puntero)
2._ una vez terminado el trabajo "liberas" la memoria con dispose(puntero) y bingo...
buenas compilaciones ...
  Respuesta:  raul roldan
en pascal muy facil utiliza imagesize para guardar las dimenciones rectangulares(solo rectangulares)del area dende vas a poner tu ventana, la guardas con getimage,para esto debes consultar algo en un liobro o en la misma biblioteca de temas que hay aqi,ya echo esto abres tu ventana y as lo que vas a hacer y despues abres la ventana maxima permitida por la resolucion actual(comunmente 640*400 si es uqe utilizas initgraph sin algun controlador de mas)y por ultimo utilizas la funcion getimage(posicion inicial horizontal, " vertical,variable de tipo bitmap(osea pointer)porque tu sabras que en la memoria la utiliza linealmente y con numeros hexa,y mode de bit a ponerCopyput
XorPut
OrPut
AndPut
NotPut);
porfavor escribeme....

    Pregunta:  4513 - CENTRO DE PROCESO DE DATOS
Autor:  Jaime Quezada Daza
Que son los sistemas de seguridad fisicos y logicos del CPD (centro de proceso de datos)?
  Respuesta:  daniel e. aguil mallea
hola, aqui te escribo una direccion que te servira para que te saques la duda:

http://www.geocities.com/WallStreet/Exchange/4171/seguridad.html

    Pregunta:  4662 - BASE DE DATOS DISTRIBUIDOS EN CORBA
Autor:  Fabiola Miranda Campos
¿Que es una base de datos distribuidos en corba?
  Respuesta:  Alfredo Vallejos de la Sancha
Es la forma en que tu ligas dentro del compilador de turbo pascal a una base de datos previamente elaborada con la finalidad e de tener una mayor distribucion de los datos y a su vez tener la oportunidad de guardarlos de una forma ordenada en una sola base de dados sin tener que guardar tus datos como files como es de costumbre en el entorno de turbo.

    Pregunta:  4799 - COMO USAR UNA LIBRERIA EN OTRA
Autor:  Kaiser
Queria saber la forma de usar procedures y/o funciones de un modulo(libreria) en procedures y/o funciones de otro modulo..es posible esto en pascal...?
  Respuesta:  Mario Campos
Si estas creando una librería y querés utilizar funciones y/o procedimientos de otras librerías, tenés que incluir la sentencia USES debajo de la sentencia INTERFACE en la cabecera de tu librería. Ejemplo

UNIT {nombre de la librería, debe coincidir con el nombre del archivo, tenés que omitir el .pas}

INTERFACE

USES
{nombre de las librerías}

{declaración de las funciones y tipos}

IMPLEMENTATION

{desarrollo de las funciones}

END. {final de la librería}

|<  <<  1 2 3 4 5 6 7 8 9 10 11  >>  >|