Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: Moduli Pascal

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    72

    Moduli Pascal

    Ciao a tutti. Avrei un problemino con un programma in Pascal.Io uso win xp e i compilatori del pascal sotto dos non funzionano perchè ogni volta che provo a compilare un programma.pas sotto dos mi dà un errore di run time, precisamente il 200 (division by zero).Mica mi sapreste dire se esiste un modo per far funzionare i compilatori anche sotto dos (versione 5.0 credo) con os xp???Inoltre ho un altro problema: devo riprodurre dei suoni per simulare l'alfabeto morse. Questi suoni devono essere prodotti dallo speaker della mother board che in pascal può essere comandato con l'utilizzo del modulo CRT dichiarandolo nella sezione uses...Purtroppo però per il problema che ho già evidenziato precedentemente non mi è possibile dichiarare il modulo CRT che è usato in dos ma sono costretto a dichiarare il modulo WINCRRT utilizzato in windows.Il problema però è che questo modulo a differenza del precedente non implementa ne il controllo dello speaker ne quello della grafica...Posso dichiarare il modulo CRT in pascal utilizzando una determinata procedura o un modulo che abbia le stesse funzioni???Oppure come posso fare per sfruttare i suoni e la grafica sotto window???
    Vi ringrazio in anticipo per la vostra consuetà disponibilità e per il vostro tempo che mettete a servizio di tutti

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    L'error 200 è famoso per essere un baco della libreria CRT. Questo baco è dovuto alla maggiore velocità dei moderni PC: se non erro, al di sopra dei 200MHz di processore compare questo errore.

    Esistono dei siti che ti permettono di scaricare il FIX.

    Hai 2 possibilità:

    1) continuare a compilare tranquillamente (è l'esecuzione che causa l'errore, non la compilazione) e usare il TPPatch per patchare gli eseguibili (scomodo)

    2) Utilizzare il TP7Fix che aggiusta la libreria CRT in modo da poter compilare direttamente con la nuova libreria.

    Trovi tutto qui: http://www.brain.uni-freiburg.de/~kl...cal/runerr200/


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    72
    Chiudo scusa per la cavolata che ho detto è l'esecuzione la fase in cui ho l'errore e non la compilazione...In pratica mi suggerisci di applicare un patch??

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non te lo sto suggerendo, quelli sono gli unici 2 modi di procedere: o patchi ciascun eseguibile oppure patchi una volta per tutte la libreria CRT. Io ho provato entrambe le soluzioni e, ovviamente, la seconda è la più agevole.
    Purtroppo il Turbo Pascal è stato realizzato in tempi "antichi" quando ancora, processori con frequenze superiori ai 200 MHz non esistevano. Essa utilizzava uno strano algoritmo per la sua inizializzazione che, probabilmente, si basava sul numero di cicli di clock in un determinato intervallo di tempo che, con il crescere della tecnologia e della velocità dei processori, è ovviamente aumentato... questo provoca una divisione per 0 in una formula di inizializzazione della CRT che viene portato nei compilati.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    72
    Grazie per avermi risposto...
    Senti potresti anche dirmi quale hai scricato tu(non perchè non ho voglia di perdere tempo ma perchè non mastico molto bene l'inglese)???saresti gentilissimo

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Questo è il link diretto al file da scaricare per aggiornare la libreria CRT: http://www.brain.uni-freiburg.de/~kl...0/t7tplfix.zip


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    72
    Troppo buono

  8. #8
    Utente di HTML.it L'avatar di cso
    Registrato dal
    Aug 2004
    Messaggi
    2,050
    se vuoi ho il programma morse con lo speaker e tutto il resto!!!
    te lo posto??? VVoVe:

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    72
    Magari.cmq non lo copierò perchè adoro programmare ma mi sarà di grande aiuto lo stesso perchè le procedure sound e delay ancora le devo studiare bene

  10. #10
    Utente di HTML.it L'avatar di cso
    Registrato dal
    Aug 2004
    Messaggi
    2,050
    ci sono pure i menù e la grafichetta
    appena lo fai partire non sentirai lo speaker perchè la variabile n vale 0 e la devi aggiustare
    codice:
    program codice_morse;
    uses crt;
    var i,j,n:integer;
        scelta:char;
        parola:string[30];
        stringa,conv,uscita:string;
    procedure linea;
    begin
    for j:=1 to 11 do
                   begin
                   sound(800);
                   delay(n+n);
                   end;
    nosound;
    delay(n);
    end;
    procedure punto;
    begin
    for j:=1 to 5 do
                  begin
                  sound(800);
                  delay(n+n);
                  end;
    nosound;
    delay(n);
    end;     {ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»}
    begin    {º IMPOSTA IL VALORE DELLA VARIABILE 'N' A PIACIMENTO IN RELAZIONE º}
    n:=0;    {º ALLA VELOCITA' DI SCORRIMENTO DELLE SCRITTE NEI MENU' GRAFICI   º}
    repeat   {º E DELLE PAUSE PRESENTI TRA I SUONI NELLA CONVERSIONE IN MORSE.  º}
    clrscr;  {ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ}
    textcolor(15);
    for i:=1 to 30 do write(chr(32));
    write(chr(201));
    for i:=1 to 17 do write(chr(205));
    write(chr(187));
    for i:=1 to 31 do write(chr(32));
    write(chr(201));
    for i:=1 to 29 do write(chr(205));
    write(chr(185));
    for i:=1 to 17 do write(chr(32));
    write(chr(204));
    for i:=1 to 30 do write(chr(205));
    write(chr(187));
    write(chr(186));
    for i:=1 to 29 do write(chr(32));
    write(chr(200));
    for i:=1 to 17 do write(chr(205));
    write(chr(188));
    for i:=1 to 30 do write(chr(32));
    for i:=1 to 2 do write(chr(186));
    for i:=1 to 78 do write(chr(32));
    for i:=1 to 2 do write(chr(186));
    textcolor(2);
    write('  1- ');
    textcolor(9);
    write('VISUALIZZA IL CODICE MORSE');
    textcolor(15);
    for i:=1 to 47 do write(chr(32));
    for i:=1 to 2 do write(chr(186));
    for i:=1 to 78 do write(chr(32));
    for i:=1 to 2 do write(chr(186));

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.