¿Olvidates tu contraseña?

Agenda Pascal

Inicio Foros Desarrollo Dudas Agenda Pascal

  • Imagen de perfil de danimartdanimart
    Participante
    #13018

    Hola, vengo a proponeros una cosa, para ser claros, tengo que hacer lo siguiente y no tengo ni idea de como hacerlo pues lo unico que se puede usar es lo dado hasta ahora en fundamentos de programacion en mi carrera a saber: expresiones, condicionales, bucles, subprogramacion y arrays y record. La practica final consiste en:

    Gestión de una agenda

    Como máximo 200 amigos.
    conceptos recogidos: Nombre (obligatorio), apellidos (el segundo es opcional= puede quedar en blanco), teléfono-movil. Cumpleaños (puede quedar sin cumplimentar)

    En la agenda el cliente podrá dar altas de nuevos amigos, dar bajas (no necesario implementar modificaciones) se podrá buscar por telefono-movil que, indicará el único amigo que tiene ese telf (no puede haber dos amigos con el mismo) y por nombre: mostrará todos los usuarios que tengan ese nombre. El cliente podrá sacar un listado ordenado por nombre y apellidos, indicando el teléfono y la fecha del cumpleaños.

    La aplicación se entregará el día del examen, en un soporte de almacenamiento externo acompañado de una pequeña memoria que incluye la documentación tecnica (ver trasparencias del tema 1 y documento de Adoración de Miguel describiendo este tipo de documentos) y un manual de usuario.

    Podeis realizar el trabajo en grupo de dos personas, pero AMBAS deben conocer y ser capaces de defender el ejercicio completo.

    El ejercicio valdrá 2,5 puntos sobre la nota final, de modo que el examen valdrá los otros 7,5 puntos. El dia de la revisón cada alumno defenderá su aplicación en EN UN ORDENADOR DEL LABORATORIO, presentandola primero al cliente, apoyandose en los casos de prueba preparados y despues al personal informático de la empresa compradora.

    Criterios de valoración:
    1) La aplicación tiene que ser ROBUSTA, es decir hacer SIEMPRE, TODO lo que tiene que hacer y NO PERMITIR hacer cosas que no tienen sentido en el mundo real (por ejemplo: ¿podría ser un apellido p6jk? tampoco hay dos espacios en blanco en tre las partes de un nombre compuesto
    una aplicación que aborte
    2) calidad de la documentación externa e
    3) calidad de la documentación interna del programa: LEGIBILIDAD
    4) estructuración modular que facilite la REUTILIZACION de partes del programa para un futuro.
    5) documentación de los casos de prueba propuestos
    6) calidad de la exposición oral (venta) de vuestra aplicación
    7) Una vez superadas estas pruebas, se solicitará a CADA ALUMNO, INDIVIDUALMENTE que realice una pequeña modificación sobre su propio programa. De no ser superada esta, la calificación será cero.

    SUGERENCIAS y RECORDATORIOS
    A efectos de las pruebas, sugiero que el maxino de amigos sea 4

    Podeis preguntar dudas a compañeros, e incluso aprovechar buenas ideas que estos os hayan facilitado. De hacerlo SIEMPRE habrá que reconocer la autoria al compañero en una sección de Agradecimientos.

    Debeis REUTILIZAR los subprogramas áplicables de los que hemos realizado en los laboratorios a lo largo del curso.

    Podeis usar algoritmos de los muchos disponibles en la web. Por ejemplo para la ordenación o para cualquiera otra de las subtareas necesarias. Documentais adecuadamente de donde lo habeis sacado y teneis que ser capaces de defender modificar, etc.

    La documentación de usuario no incluye palabras técnicas. En la documentación técnica justificais los criterios que os han guiado para hacer una elección. La doc técnica debe incluir el código en turbo pascal.

    Y esto es todo, la verdad estoy bastante perdido tengo algunas ideas pero claro si me ayudais pues mejor que mejor. Porque a mi profesora no se le ocurre otra cosa que mandar esto el domingo (hace 3 dias) cuando estas dos semanas las tenemos llenas de examenes finales y nos da hsata el jueves 28 de enero para hacerlo… Lo mejor esque es en Pascal lenguaje que odio del que como veis no hemos aprendido casi nada

    Un saludo y gracias de antebrazo [corazon]

    Imagen de perfil de Ñuño MartínezÑuño Martínez
    Participante
    #17832

    Lamento la tardanza, pero es que me paso por aquí de uvas a peras.

    Para empezar, no dices el compilador ni el entorno, porque si utilizaras Lazarus* el programa lo haces en dos patadas, y además les dejas a todos tal que asín: [alucino]

    Ahora bien, dices que no has aprendido nada. Jodío lo llevas, macho. Incluso con Lazarus. Pero no es difícil.

    Un TEntradaAgenda = RECORD para contener los campos. Un ARRAY[1..200] OF TEntradaAgenda para almacenar (Bueno, podrías tirar de TFPList si te dejan usar objetos y así te libras de implementar la ordenación [muahaha] ) y luego ir paso a paso. Si usas Lazarus tienes los menús y las pantallas hechas en un plis.

    Yo ando estos días conectado casi todo el rato al IRC-Hispano (irc.irc-hispano.org), en la sala #Delphi. No suele haber nadie más. XP

    De todas formas, muy mala leche la de tu profesora por eso de mandarte hacer el programa en estas fechas y en una semana.

    * De Delphi no pongo enlace porque Embarcadero ha retirado la versión Turbo. La de evaluación no vale un mojón.

    Imagen de perfil de danimartdanimart
    Participante
    #17833

    No seni que compilador uso [atontao]

    Yo abro el Turbopascal win y a programar xD

    He consegudio casi todo que funcione perfectmente despues de 500 lineas de codigo casi, solo me falta poder borrar contactos que nose como arrastrasr en un array desde el que borro para atras todos los contactos a una posicion anterior y validad el nombre y apellidos… Nose si me dara tiempo para el jeuves :()

    Imagen de perfil de Ñuño MartínezÑuño Martínez
    Participante
    #17834

    A ver si te doy una idea con lo del array:

    Tenemos un array, que vamos a representar como sigue (cada elemento entre corchetes):


    Agenda = { [aaa], [bbb], [ccc], [ddd], [eee], [fff] }

    Queremos borrar el [bbb]. No sé si estás reservando espacio para cada elemento, en cuyo caso primero hay que liberarlo, pero sea como fuere ahí hay un hueco. Pues fácil: si hemos borrado el elemento de la posición B, tenemos que mover el elemento que hay en B + 1 a la posición B, luego el B + 2 al B + 1… para que te quede lo siguiente:


    Agenda = { [aaa], [ccc], [ddd], [eee], [fff] }

    ¿Lo pillas?


    PROCEDURE BorraElemento (NdxElemento: INTEGER);
    VAR
    Ndx: INTEGER;
    BEGIN
    { Movemos los elementos tras el eliminado una posición hacia delante. }
    FOR Ndx := NdxElemento TO Length (ArrayAgenda) - 2 DO
    ArrayAgenda[Ndx] := ArrayAgenda[Ndx + 1];
    { Ahora quitamos el último espacio. }
    SetLength (ArrayAgenda, Length (ArrayAgenda) - 1);
    END;

    Posiblemente tengas que hacer algo más (por ejemplo, comprobar límites y quizá un procedimiento para hacer la asignación, ya que el “:=” tal vez dé algún que otro problema 😉 ) porque lo he hecho de memoria y suponiendo que usas un “ARRAY OF” sin más, pero eso es, más o menos.

    Imagen de perfil de danimartdanimart
    Participante
    #17835

    Uso un Array de registros lo que pasa que en vez de el lenght he creaod un contador con letra N:Byte que es el que va diciendole a todo el programa los contactos que tiene…

    Tu idea me gusta voy a ver si consigo algo por hay….

    Imagen de perfil de danimartdanimart
    Participante
    #17836
    PROGRAM agenda;

    {Como máximo 200 amigos.
    conceptos recogidos: Nombre (obligatorio), apellidos (el segundo es opcional= puede
    quedar en blanco), teléfono-movil. Cumpleaños (puede quedar sin cumplimentar)

    En la agenda el cliente podrá dar altas de nuevos amigos, dar bajas (no necesario
    implementar modificaciones) se podrá buscar por telefono-movil que, indicará el único
    amigo que tiene ese telf (no puede haber dos amigos con el mismo) y por nombre:
    mostrará todos los usuarios que tengan ese nombre. El cliente podrá sacar un listado
    ordenado por nombre y apellidos, indicando el teléfono y la fecha del cumpleaños.}

    USES WinCrt;

    CONST a=1;{constante por constante borrar luego}

    TYPE
    tContacto = RECORD
    Nombre, Apellidos : STRING[31];
    Cumple: STRING[11];
    Tlf: STRING[10];
    END;
    tLista=ARRAY [1..200] OF tContacto;

    VAR
    Contacto: tContacto;
    Lista:tLista;
    NLista:BYTE;
    OptMenu:CHAR;

    PROCEDURE Continuar; {PERFECTO}
    { Crea un texto para continuar y volver al programa/menu}
    BEGIN
    WRITE('Presione cualquier tecla para continuar: ');
    READLN;
    END;
    {
    }

    FUNCTION ValidaCumple (Cumple:STRING) :BOOLEAN; {PERFECTO}
    { Comprueba un cumpleaños (Fecha) valida.
    -Sea del tipo DD.MM.YY
    -Cada parte este correcta
    }
    VAR
    bisiesto:BOOLEAN;
    Dia,Mes,Year:INTEGER;
    BEGIN
    WRITELN(LENGTH(Cumple));
    IF LENGTH(Cumple)=10 THEN
    BEGIN
    IF CONCAT(Cumple[3],Cumple[6])=('..') THEN
    BEGIN
    VAL((CONCAT(Cumple[1],Cumple[2])),Dia,Dia);
    VAL((CONCAT(Cumple[4],Cumple[5])),Mes,Mes);
    VAL((CONCAT(Cumple[7],Cumple[8],Cumple[9],Cumple[10])),Year,Year);
    bisiesto:= (((Year MOD 4) = 0) AND ((Year MOD 100) 0)) OR ((Year MOD 400) = 0);
    ValidaCumple:=FALSE;
    CASE Mes OF
    1,3,5,7,8,10,12: Validacumple:=((Dia >= 1) AND (Dia <=31));
    4,6,9,11: ValidaCumple:=((Dia >= 1) AND (Dia <=30));
    2: BEGIN
    IF (bisiesto = TRUE) THEN
    ValidaCumple:=((Dia >= 1) AND (Dia <=29))
    ELSE
    ValidaCumple:=((Dia >= 1) AND (Dia <=28));
    END;
    END;
    END;
    END
    ELSE
    BEGIN
    ValidaCumple:=FALSE;
    ValidaCumple:=(LENGTH(Cumple)=0);
    END;
    END;
    {
    }

    FUNCTION ValidaTlf (Tlf:STRING) :BOOLEAN; {PERFECTO}
    { Comprueba que el número de tlf sea valido.
    -Tenga 9 Numeros por ser movil.
    }
    VAR
    N{Equivalente}: LONGINT;
    E{Error}: INTEGER;
    BEGIN
    IF LENGTH(Tlf)=9 THEN
    BEGIN
    VAL(Tlf,N,E);
    ValidaTlf:=(N>0);
    END
    ELSE ValidaTlf:=FALSE;
    END;
    {
    }

    FUNCTION TlfRepe (L:tLista; Tlf:STRING; N:BYTE) :BOOLEAN;
    { Comprueba que el numero dado no este repetido.
    }
    BEGIN
    END;
    {
    }

    FUNCTION ValidaNombre (Nombre:STRING) :BOOLEAN;
    { Valida un Nombre simple o compuesto.
    -Primera Letra Mayuscula.
    -Resto Minusculas.
    -Si es compuesto Tambien mayuscula despues de espacio.
    -No numeros.
    -NO es opcional.
    }
    VAR n:INTEGER;
    BEGIN
    IF (LENGTH(Nombre)>0) AND (LENGTH(Nombre)<=30) THEN BEGIN
    {ROLLO LETRAS Y COMPUESTO Y DEMAS}
    { REPEAT
    Nombre[n]:=Nombre[n+1]
    UNTIL (Nombre[n])=(LENGTH(nombre)); }
    {IF (Nombre[1] = ('A'..'Z')) THEN }
    IF POS(' ',Nombre) > 0 THEN
    WRITELN((POS(' ',Nombre)));
    END
    ELSE
    ValidaNombre:= FALSE;
    END;
    {
    }

    FUNCTION ValidaApellidos (Apellidos:STRING) :BOOLEAN;
    { Valida un Apellidos simple o compuesto.
    -Primera Letra Mayuscula.
    -Resto Minusculas.
    -Si es compuesto Tambien mayuscula despues de espacio.
    -No numeros.
    -Es opcional.
    }
    VAR n:INTEGER;
    BEGIN
    CASE LENGTH(Apellidos) OF
    0: ValidaApellidos:= TRUE;
    31: ValidaApellidos:= FALSE;
    1..30: BEGIN
    {ROLLO LETRAS Y COMPUESTO Y DEMAS}
    { REPEAT
    Nombre[n]:=Nombre[n+1]
    UNTIL (Nombre[n])=(LENGTH(nombre)); }
    {IF (Nombre[1] = ('A'..'Z')) THEN }
    IF POS(' ',Apellidos) > 0 THEN
    WRITELN((POS(' ',Apellidos)));
    END;
    END;
    END;
    {
    }

    PROCEDURE Add (VAR L:tLista; VAR N:BYTE);
    { Añade un nuevo contacto en posicion libre}
    BEGIN
    CLRSCR;
    IF N200 THEN
    BEGIN
    WRITELN('Agregar contacto nuevo: ');
    WITH L[N+1] DO
    BEGIN
    WRITE('Introduzca un Nombre: ');
    READLN(Nombre);
    IF ValidaNombre(Nombre)=FALSE THEN
    BEGIN
    REPEAT
    BEGIN
    READLN(Nombre);
    END;
    UNTIL ValidaNombre(Nombre);
    END;

    WRITE('Introduzca los Apellido/s: ');
    READLN(Apellidos);
    IF ValidaApellidos(Apellidos)=FALSE THEN
    BEGIN
    REPEAT
    BEGIN
    WRITE('Apellido/s no valido/s, intentelo de nuevo: ');
    READLN(Apellidos);
    END;
    UNTIL ValidaApellidos(Apellidos);
    END;

    WRITE('(Opcional) Introduzca la Fecha Cumpleaños del estilo DD.MM.YYYY: ');
    READLN(Cumple);
    IF ValidaCumple(Cumple)=FALSE THEN
    BEGIN
    REPEAT
    BEGIN
    WRITE('Cumpleaños no valido, intentelo de nuevo: ');
    READLN(Cumple);
    END;
    UNTIL ValidaCumple(Cumple);
    END;

    WRITE('Introduzca el telefono movil (9 Digitos): ');
    READLN(Tlf);
    IF ValidaTlf(Tlf)=FALSE THEN
    BEGIN
    REPEAT
    BEGIN
    WRITE('Telefono no válido, intentelo de nuevo: ');
    READLN(Tlf);
    END;
    UNTIL ValidaTlf(Tlf);
    END;

    END;
    WRITELN;
    WRITELN('Contacto añadido.');
    WRITELN;
    N:=N+1;
    END
    ELSE
    BEGIN
    WRITELN('Lo siento. Lista llena.');
    WRITELN('Borre algún contacto antesde añadir uno nuevo.');
    WRITELN;
    END;
    Continuar;
    END;
    {
    }

    PROCEDURE Borrar (VAR L:tLista; VAR N:BYTE);
    { Borra un contacto y arrastra el resto a una posicion anterior}
    VAR
    Y:BYTE; {Contador Aux}
    Tlf:STRING;
    B:CHAR;

    BEGIN
    IF N0 THEN
    BEGIN
    REPEAT
    BEGIN
    CLRSCR;
    WRITE('Introduce el teléfono del contacto a borrar: ');
    READLN(Tlf);
    ValidaTlf(Tlf);
    END;
    UNTIL ValidaTlf(Tlf);
    WHILE (L[Y].Tlf Tlf) AND (YN) DO Y:=Y+1;
    IF L[Y].Tlf Tlf THEN
    BEGIN
    CLRSCR;
    WRITELN('Lo siento. Ningún contacto encontrado.');
    WRITELN;
    END
    ELSE
    BEGIN
    REPEAT
    BEGIN
    CLRSCR;
    WRITELN('Contacto encontrado:');
    WRITELN;
    WRITELN(Y,'. ',Lista[Y].Apellidos,', ',Lista[Y].Nombre);
    WRITELN(' Cumpleaños: ',Lista[Y].Cumple);
    WRITELN(' Tlf Movil: ',Lista[Y].Tlf);
    WRITELN;
    WRITELN('¿Está seguro de que desea borrar este contacto? ');
    WRITELN;
    WRITELN('1. Sí.');
    WRITELN('2. No.');
    WRITELN;
    WRITE('Elija una opción por favor: ');
    READLN(B);
    WRITELN;
    END;
    UNTIL (B='1') OR (B='2');
    {IF B='1' THEN}
    END;
    END
    ELSE
    BEGIN
    WRITELN('Lo siento. Agenda Vacia.');
    WRITELN('Añada algún contacto para poder borrarlo.');
    WRITELN;
    END;
    Continuar;
    END;
    {
    }

    PROCEDURE BuscarNombre (VAR L:tLista; N:BYTE);
    { Busca en Lista si existeN algún contacto con ese nombre}
    VAR Y:BYTE; {Contador Aux}
    Nombre:STRING;

    BEGIN
    REPEAT
    BEGIN
    CLRSCR;
    WRITE('Introduce el nombre a buscar: ');
    READLN(Nombre);
    ValidaNombre(Nombre);
    END;
    UNTIL ValidaNombre(Nombre);
    WRITELN('Contacto/s encontrado/s:');
    WRITELN;
    FOR Y:=1 TO N DO
    BEGIN
    IF L[Y].Nombre = Nombre THEN
    BEGIN
    WRITELN(Y,'. ',Lista[Y].Apellidos,', ',Lista[Y].Nombre);
    WRITELN(' Cumpleaños: ',Lista[Y].Cumple);
    WRITELN(' Tlf Movil: ',Lista[Y].Tlf);
    WRITELN;
    END;
    END;
    IF L[Y].Nombre Nombre THEN
    BEGIN
    CLRSCR;
    WRITELN('Lo siento. Ningún contacto encontrado.');
    WRITELN;
    END;
    Continuar;
    END;
    {
    }

    PROCEDURE BuscarTlf (VAR L:tLista; N:BYTE); {PERFECTO}
    { Busca en Lista si existe algún contacto con ese número de TLF}
    VAR
    Y:BYTE; {Contador Aux}
    Tlf:STRING;

    BEGIN
    REPEAT
    BEGIN
    CLRSCR;
    WRITE('Introduce el teléfono a buscar: ');
    READLN(Tlf);
    ValidaTlf(Tlf);
    END;
    UNTIL ValidaTlf(Tlf);
    WHILE (L[Y].Tlf Tlf) AND (YN) DO Y:=Y+1;
    IF L[Y].Tlf Tlf THEN
    BEGIN
    CLRSCR;
    WRITELN('Lo siento. Ningún contacto encontrado.');
    WRITELN;
    END
    ELSE
    BEGIN
    WRITELN;
    WRITELN('Contacto encontrado:');
    WRITELN;
    WRITELN(Y,'. ',Lista[Y].Apellidos,', ',Lista[Y].Nombre);
    WRITELN(' Cumpleaños: ',Lista[Y].Cumple);
    WRITELN(' Tlf Movil: ',Lista[Y].Tlf);
    WRITELN;
    END;
    Continuar;
    END;
    {
    }

    PROCEDURE OrdenarL (VAR L:tLista; N:BYTE); {PERFECTO}
    {Ordena la lista de contactos por nombre y apellidos}
    VAR
    I,J: BYTE;
    Aux: tContacto;
    Ordenado: BOOLEAN;

    BEGIN
    I:= 1;
    REPEAT Ordenado:= TRUE;
    FOR J:= 1 TO N-1 DO
    IF L[J].Apellidos > L[J+1].Apellidos THEN
    BEGIN
    Aux:= Lista[J];
    Lista[J]:= Lista[J+1];
    Lista[J+1]:= Aux;
    Ordenado:= FALSE;
    END;
    I:= I + 1 ;
    UNTIL Ordenado OR (I>N-1);
    I:= 1;
    REPEAT Ordenado:= TRUE;
    FOR J:= 1 TO N-1 DO
    IF L[J].Apellidos = L[J+1].Apellidos THEN
    BEGIN
    IF L[J].Nombre > L[J+1].Nombre THEN
    BEGIN
    Aux:= Lista[J];
    Lista[J]:= Lista[J+1];
    Lista[J+1]:= Aux;
    Ordenado:= FALSE;
    END;
    END;
    I:= I + 1 ;
    UNTIL Ordenado OR (I>N-1);
    END;
    {
    }

    PROCEDURE Listar (VAR L:tLista; N:BYTE); {PERFECTO}
    { Muestra la lista ya ordenada por pantalla.}
    VAR X:BYTE;

    BEGIN
    CLRSCR;
    OrdenarL(L,N);
    IF N0 THEN
    BEGIN
    FOR X:=1 TO N DO
    BEGIN
    WRITELN(X,'. ',Lista[X].Apellidos,', ',Lista[X].Nombre);
    WRITELN(' Cumpleaños: ',Lista[X].Cumple);
    WRITELN(' Tlf Movil: ',Lista[X].Tlf);
    WRITELN;
    END;
    END
    ELSE
    BEGIN
    WRITELN('Agenda Vacia.');
    WRITELN;
    END;
    Continuar;
    END;
    {
    }

    PROCEDURE CrearMenu (VAR Lista:tLista; VAR NLista:BYTE; VAR OptMenu:CHAR); {PERFECTO}
    { Menu inicio del programa con diferentes opciones.}
    BEGIN
    REPEAT
    BEGIN
    CLRSCR;
    WRITELN('Bienvenido a su agenda personal.');
    WRITELN;
    WRITELN(' 1. Crear un nuevo contacto.');
    WRITELN(' 2. Borrar un contacto ya existente.');
    WRITELN(' 3. Buscar un contacto.');
    WRITELN(' 4. Mostrar un listado ordenado de contactos.');
    WRITELN(' 5. Salir');
    WRITELN;
    WRITE('Elija una opción por favor: ');
    READLN(OptMenu);
    END;
    UNTIL (OptMenu='1') OR (OptMenu='2') OR (OptMenu='3') OR (OptMenu='4') OR (OptMenu='5');

    CASE OptMenu OF
    '1': Add(Lista,NLista);
    '2': Borrar(Lista,NLista);
    '3': BEGIN
    REPEAT
    BEGIN
    CLRSCR;
    WRITELN('¿Criterios de busqueda?');
    WRITELN;
    WRITELN(' 1. Buscar por Nombre.');
    WRITELN(' 2. Buscar por Tlf.');
    WRITELN(' 0. Volver Atrás.');
    WRITELN;
    WRITE('Elija una opción por favor: ');
    READLN(OptMenu);
    END;
    UNTIL (OptMenu='1') OR (OptMenu='2') OR (OptMenu='0');

    CASE OptMenu OF
    '1': BuscarNombre(Lista,NLista);
    '2': BuscarTlf(Lista,NLista);
    END;
    END;
    '4': Listar(Lista,NLista);
    END;
    END;
    {
    }

    BEGIN
    Lista[1].Nombre:='Daniel';
    Lista[1].Apellidos:='Martin Gonzalez';
    Lista[1].Cumple:='11.11.1111';
    Lista[1].Tlf:='111111111';
    Lista[2].Nombre:='Carmen';
    Lista[2].Apellidos:='Gonzalez Sanvicente';
    Lista[2].Cumple:='22.22.2222';
    Lista[2].Tlf:='222222222';
    Lista[3].Nombre:='Alejandro';
    Lista[3].Apellidos:='Martin Laredo';
    Lista[3].Cumple:='33.33.3333';
    Lista[3].Tlf:='333333333';
    Lista[4].Nombre:='Alejandro';
    Lista[4].Apellidos:='Martin Gonzalez';
    Lista[4].Cumple:='44.44.4444';
    Lista[4].Tlf:='444444444';
    NLista:=4;
    REPEAT CrearMenu(Lista,NLista,OptMenu) UNTIL OptMenu='5';
    END.

    Por ahora llevo esto,los contactos del final son como no puedo poner ficheros tendre que sacar algunos de prueba xD

    Me queda
    -Valida alias (ya que voy a juntar nombre y apellidos que en el fondoe s lo mismo
    -La parte de borrar el contacto que voy a intentar ahcerla
    -Que cuando se añada un tlf no este repetido
    y el buscar el nombre que da fallos
    -Muchos retoques xD

    PD: como ahgo apra funcioanr con un programa de 16 o 32 bits en windows 7 64? en hl2spain me han dicho ocn el mode xp pero mi windows 7 no es tan poderoso y solo tengo el homre premium 🙁

    Imagen de perfil de TheckTheck
    Jefe de claves
    #17837

    ¿Si vas a propiedades el ejecutable no tienes un “modo de compatibilidad” o algo por el estilo?

    Imagen de perfil de danimartdanimart
    Participante
    #17838

    El royo esuqe ni puedo instalarlo por ser 16 bits todo desde la instalacion hasta erl programa, pero vamos entrenosotros he conseguido la version win xp portable asique cada vez que quiera usar este anticuado sistema metere el usb en el portatil y asunto arreglado, espero aprobar y empezar con java/c a partir de febrero 😛

    Imagen de perfil de TheckTheck
    Jefe de claves
    #17839

    Sinceramente, no se porque no has usado un entorno más moderno, que seguro que los hay a patadas. Imagino que el propio Lazarus permite hacer programas “no visuales”, sin ventanas.

    Imagen de perfil de danimartdanimart
    Participante
    #17840

    Resulta que mi “vieja” profesora vive todaiva en el paleolitico y quiere que usemos este programa no me preguntes porque porque el free pascal si que funciona perfectamnete pero tiene incompatibilidades con turbopascal buah es un royo… y menos mal que no la ha dado porque usemos fortran o alguna cosa de esas que es muy capaz.

    Ni consigiendo el winxp portable me funciona meta el que meta en el usb al reiniciar el pc con el usb puesto y arrancando desde el me dice “Quite el disco/medio”,”presione una tecla para continuar”. [ahorcao] estoy desesperado!

Viendo 10 publicaciones - del 1 al 10 (de un total de 24)

Debes estar registrado para responder a este debate.