PREGUNTAS CONTESTADAS - pascal/turbo pascal

 Hay un total de 203 Preguntas.<<  >> 

    Pregunta:  57149 - SE CONGELA LA PANTALLA DESPUES DEL USAR INITGRAPH
Autor:  Jorvid RR
Tengo un problema con un programa ya viejito realizado en turbopascal 7, puse puntos de prueba en el código, pero cuando empieza a leer la linea donde se encuentra el initgraph se congela la pantalla, y tengo otros programas que usan de igual manera el initgraph y no muestran este problema, estuve checando y no encuentro una razón por la cual no funcione :S, si alguien sabe de porque es que no funciona o que es lo que sucede le agredeceré mucho.

Saludos
  Respuesta:  Giovanny R.
Yo creo q tu programa tiene q estar instalado en la unidad C:. Por otro lado en initgraph(graphdriver,graphmode,''); en esas comillas simples debes poner la direccion C:Tpgi. Prueba este ejmplo en tu Pascal:
program linea;
uses Crt,Graph;

var
grDriver: Integer;
grMode: Integer;
ErrCode: Integer;
begin
grDriver := Detect;
InitGraph(grDriver, grMode,'c: pgi');
ErrCode := GraphResult;
if ErrCode = grOk then
begin { Do graphics }
Line(0, 0, GetMaxX, GetMaxY);
Readln;
CloseGraph;
end
else
Writeln('Graphics error:', GraphErrorMsg(ErrCode));
readkey;
end.
Si no funciona es por lo q te dije anteriormente, tienes q tener instalado tu Turbo Pascal en la unidad C:

    Pregunta:  59198 - COMO ACCEDER AL PUERTO SERIE CON PASCAL BAJO WINDOWS XP
Autor:  Juan Peña
Saludos
En mi clase el profesor nos mando a colocar valores numericos en el puerto com2, nos indico que la instruccion port realizaba esta accion, pero cuando ejecuto el programa que realice el windows emite una ventana de error que dice: el sistema no puede abrir el puerto com2, hace muchos años yo utilice esa misma instruccion pero bajo windows 95 y funcionaba sin ningun problema.

Si alguien me puede ayudar

Gracias de antemano
  Respuesta:  Rocio Solano
Tengo entendido que el win xp tiene el control de los puertos, por lo tanto necesitas correr antes de tu programa una aplicacioncilla llamada Useport la cual digamos habilita los puertos para que tu los puedas usar mediante el programa que estas haciendo.
Y de esta forma podras utilizar el puerto serie.

    Pregunta:  59677 - DUDA PROCEDIMIENTOS POR REFERENCIA
Autor:  Roberto Sánchez Romero
Buenos días:

Estoy haciendo un programa y me he queado bloqueado en una apartado. Se trata de un procedimiento:

Es algo como esto

PROGRAM PRUEBA;

PROCEDURE EJERCICIO (VAR numero:integer);

BEGIN {begin procedimiento}

numero:=5;

END; {End Procedimiento}

VAR
numero:integer; {declaracion variables en el programa principal}

BEGIN {PROGRAMA PRINCIPAL}

writeln(numero);

END. {PROGRAMA PRINCIPAL}

Lo que quiero que haga el programa es que imprima un 5 pero no se porque motivo imprime un 0. Hago un seguimiento de la variable y llega a valer 5 pero cuando vuelve al programa principal vale 0. ¿A.lguien tiene alguna explicación? Cualquier sugerencia sería de gran ayuda.
  Respuesta:  Alex F
El problema es que no "llamas" al procedimiento en tu programa principal.
...
...
BEGIN {PROGRAMA PRINCIPAL}
Ejercicio(numero); {--> Llamada a tu procedimiento}
Writeln(numero);

END. {PROGRAMA PRINCIPAL}

Un saludo

    Pregunta:  59723 - EVITAR QUE PASCAL ABORTE (ERROR 106: INVALID NUMERIC FORMAT)
Autor:  Alex Fernandez
Buenas
La duda es sencilla, dado este programa:

VAR num: REAL;
BEGIN
READLN(num);
END

Cuando lo ejecute si intriduzco una letra el programa abortara, y me llevara a la pantallita azul de la linea de codigo. Tengo que hacer un programa "serio" para una practica, y me gustaria saber si antes de que aborte puedo mostrar un mensaje tipo "Dato incorrecto vuelva a introducirlo" o lo que sea para evitar que pascal deje de ejecutar el codigo.

Gracias de antemano, y FELIZ NAVIDAD
  Respuesta:  ANGEL BLACK
seria con la funcio IOResult asi, no lo he probado es que no tengo el pascal ahora en mi compu, :

{----------------------------}
VAR num: REAL;
begin
repeat {para repetir hasta que se introduzca bien el numero}
{$I-} {Desactivamos el control de error}
READLN(num);
{$I+} {Activamos el control de error, en esto no estoy seguro, sino te funciona quita esta linea y la colocas al final}
{IOResult =0 el valor esta introducido correctamente}
if IOResult <> 0 then
WriteLn(´Valor Inválido´)
readkey;
else
WriteLn(´Valor permitido´);
readkey;
UNTIL (R=0);
end.
{----------------------------}
  Respuesta:  ANGEL BLACK
seria con la funcio IOResult asi, no lo he probado es que no tengo el pascal ahora en mi compu, :

{----------inicio------------------}
VAR num: REAL;
begin
repeat {para repetir hasta que se introduzca bien el numero}
{$I-} {Desactivamos el control de error}
READLN(num);
{$I+} {Activamos el control de error, en esto no estoy seguro, sino te funciona quita esta linea y la colocas al final}
{IOResult =0 el valor esta introducido correctamente}
if IOResult <> 0 then
WriteLn(´Valor Inválido´)
r=1;
readkey;
else
WriteLn(´Valor permitido´);
r=0;
readkey;
UNTIL (R=0);
{sigues trabajando con tu variable ya sea en suma resta multi, etc, etc......}
end.
{-----------fin-----------------}

    Pregunta:  59883 - PROBLEMA CON LOS TIPOS DE DATO
Autor:  abe
Hola!
Quisiera saber cómo puedo leer un archivo tipo texto y la información convertirla a tipo integer..es decir

creo un archivo tipo texto, y cuando lo leo desde pascal, comienzo a leer cada caracter del archivo, pero resulta que ese caracter es un número, pero pascal me lo está leyendo como un string,

const
ruta='e:informacion.txt'

var
archivo:text;
numero1,numero2: string;

begin
assign(archivo,ruta);
reset(archivo);
while not eoln(archivo) do
begin
read(archivo,numero1,numero2);
suma:=numero1+numero2;
write(suma);
end;
readln(archivo);
writeln;
close(archivo);

He intentado declarar a numero1 y numero2 como integer, pero me sale el error de que lo que pascal leyó del archivo fue un caracter no un número.
  Respuesta:  J.Ant. Bernal
Prueba con la función StrToInt(): (de la ayuda de Virtual Pascal 2.1 para OS/2, creo recordar que en Turbo-Borland Pascal también está,)

function StrToInt(const S: string): Integer;

StrToInt converts the given string to an integer value. If the string doesn't contain a valid value, an EConvertError exception is raised.

See also StrToIntDef, Val.

Examples:
StrToInt( ' 100' ) = 100
StrToInt( ' 100' ) = 100
StrToInt( '100 ' ) -> Exception is raised
StrToInt( '-10' ) = -10

    Pregunta:  61004 - VACIAR BUFFER EN PASCAL
Autor:  JoniJnm
Hola,

Qué función vacía el buffer en Pascal? Lo que es fflush(stdin) en c

Saludos!
  Respuesta:  ANGEL BLACK
MIRA ESTE EJEMPLO:

Var F : Text;

begin
{ ASIGNA F PARA LA SALIDA ESTANDAR }
Assign (F,'' );
Rewrite (F);
Writeln (F,'Esta línea está escrita en primer lugar, pero parece más tarde !');
{En este punto, el texto está en el buffer interno pascal, y todavía no se escribe en la salida estándar }
Writeln ('Esta línea aparece en primer lugar, está escrito, pero más tarde!');
{ un Writeln a 'output' siempre provoca un flush - por lo que este texto es
escrito a la pantalla }
Flush (f);
{ En este punto, el texto escrito a F se escribe en pantalla.}
Write (F,'Finishing ');
Close (f); { El cierre de un archivo produce un vaciado primero }
Writeln ('off.');
end.

esta en http://docs.mis-algoritmos.com/pascal.funcion.Flush.html
simplemente vacias la variable F con flush, espero que te sirva.

    Pregunta:  61689 - RANDOM DE TURBO PASCAL
Autor:  Vanesa Walker
Buenos dias.
Necesito generar un número aleatorio entre 0 y 0.14 y no se como lo tengo que escribir.
Es posible hacer esto???
De lo contrario necesitaria que me sugieran algo para terminar el programa.
desde ya muchas gracias.
saluda atte Vanesa
  Respuesta:  Danilo Llerena
Acabo de ver tu pregunta y tengo un codigo que calcula un numero aleatorio entre 0 y 0.14, espero te sea util

Program Alatorio;
Uses Crt;
Var
V : Array[1..99] Of Real;
I, N : Integer;
Begin
Randomize;
For I := 1 To 14 Do
V[I] := I / 100;
N := Random(99);
Writeln ('Numero aleatorio : ',V[N]:2:2);
Readln;
End.

    Pregunta:  62292 - TAMAÑO DE LA VENTANA
Autor:  Jose Gamez
Cuando utilizo Pascal 7.0 en mi Laptop, voy al editor o en tiempo de ejecucion, todo se ejecuta en una ventana que es menos que la mitad de mi pantalla, como puedo resolverlo ?
  Respuesta:  Adolfo González
Debes usar Alt+Enter, para regresarla a tamaño pequeño nuevamente usar Alt+Enter.
  Respuesta:  edwin payan
hola que tal

a la ventana donde esta el icono en la parte superior derecha hay un icono negro , haz click derecho propiedades, en la lengueta opciones, selecicona opciones de la pantalla, pantalla completa , aceptar.
si aun sigues viendo la mitad de la pantalla en letras chiquiras.
repite la operacion solo que ahora ve a la lengueta diseño. en ancho =80
en alto 25, igual en el tamañon de la ventana.

    Pregunta:  62309 - MOSTRAR Y CARGAR MATRIZ CARGANDO SUS DATOS POR UN TXT
Autor:  Cygnus X
Hola miren tengo que hacer un TP para la facultad; el mismo me dice que en base a un archivo de X nombre .txt (X.txt) que contiene los datos de 6 filas y 6 columnas de una matriz de 6 x 6, tengo que hacer que a traves de Pascal, me lea los datos del .txt y me los cargue dentro de una matriz de 6 x 6 y que a estos 36 números los valla ubicando en filas de 6; una bajo la otra xD formando la matriz, los datos segun me piden dice que dentro de la matriz tienen que ser almacenados por filas; a que me refiero con esto:

Dentro del txt ahí 36 números dispuestos en 1 sola columna; ubicados uno bajo el otro. Ejemplo:
5
6
7
8
9
3
2
4
.
.
así hasta llegar a los 36 números; es decir que dentro del txt estan ubicados en 1 columna y dentro del programa tienen que ser ubicados en en filas de 6; recorriendo la web vi como se hace para que Pascal te cargue los datos de un txt y te los muestre por pantalla pero no tengo ni idea como hacer para que me cargue los datos del txt y me los ubique dentro de la matriz de 6 x 6 y me los muestre por pantalla.

Ojala puedan ayudarme ya que necesito esto para la escuela y estoy re perdido; desde ya muchas gracias. Espero su respuesta
  Respuesta:  Miguel Roman
{ Turbo Matriz 6x6}

{ Copyright (c) Miguel A Roman. }

program Matriz6x6;
{$R-,S-,I-}
uses Crt;

var

Num: array[1..6, 1..6] of integer;
x,y: integer;
w: text;

begin

assign(w, 'numeros.txt');
reset(w);

for x:=1 to 6 do
for y:=1 to 6 do
begin
readln(w, Num[x ,y]);
writeln('x=', x:1, ' y=', y:1, ' numero=', Num[x ,y]:2);
end;
close(w);

end.

    Pregunta:  63178 - GRAFICO FUNCION SENO
Autor:  agustin bravo
hola muchachos como andan, les comento mi problema. Tengo que desarrollar un programa en pascal free 1.0.12, el cual me permita graficar la funcion seno en toda la pantalla, el codigo que yo ingreso es el que anotare a continuacion:

program funcion_seno;
Uses crt;
var f,x,valor: integer;

begin

for f:=1 to 80 do
begin gotoxy(f,12); write('-');end;
fpr f:=1 to 24 do
begin gotoxy(1,f); write('|');end;
x:=1;
for f:=0 to 360 do
begin valor:= ((-12)*sin(f*pi/180))+12;
gotoxy(x,valor); write('*');
x:=x+1; end;
end.

el error que me sale al compilar es el siguiente:

seno.pas(15,36) Error: Incompatible types: got "Extended expected "Smallint"
seno.pas(18) Fatal: there were 1 error compiling module, stopping.
seno.pas(0) Fatal: compiling aborted

yo creo que se trata de algun problema al momento de calcular el seno o capaaz deberia emplear otro tipo de variables, si pudieran darme una mano les agradeceria mucho, un abrazo para todos
  Respuesta:  juan quintana
la funcion sin te devuelve un valor real y hay conflicto con la variable valor que definiste como entera; puedes usar la la funcion trunc para convertir a entero

|<  <<  11 12 13 14 15 16 17 18 19 20 21  >>  >|