Aiuto per PASCAL.... PLEASE

Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Predefinito

    mi dite dove stra cavolo sta l'errore in questo codice???????????

    non riesco a trovarlo e devo assolutamente consegnare l'esercizio !!!!!!


    program matrici;

    const c=3;
    r=2;

    type matr= array [1..r,1..c] of integer;

    var i,j:integer;
    m:matr;


    function prodotto(m:matr):boolean;

    var i,j,prod:integer;
    ris:boolean;

    begin
    i:=1;
    j:=2;

    prod:=1;

    ris:=false;

    while (i<=r) and not ris do

    begin

    ris:=true;

    while(j<=c) and not ris do

    begin

    prod:=prod*m[i,j-1];

    if m[i,j]<>prod then ris:=false;

    j:=j+1;

    end;

    i:=i+1;

    end;

    prodotto:=ris;

    if prodotto(m) then writeln('si')
    else writeln('no');

    end;

    (*main*)

    begin
    for i:= 1 to r do
    for j:= 1 to c do begin
    writeln('inserisci il num di posto ' ,i,',' , j);
    readln(m[i,j]);
    end;

    for i:= 1 to r do
    for j:= 1 to c do
    writeln (m[i,j]);
    readln;

    prodotto(m); readln;
    end.






  2. #2

    Predefinito

    Prova a passare la matrice per parametro Function ....(Var m:matr) ecc.

  3. #3
    tebibyte L'avatar di Gig
    Registrato
    Jan 2001
    Località
    Firenze
    Età
    43
    Messaggi
    2,336

    Predefinito

    Magari potevi metterci dei commenti, non ho ben capito cosa dovrebbe fare il programma...
    Comunque, per migliorare la visualizzazione della matrice (in colonna non rende molto l'idea) dovrebbe bastare una cosa tipo questa:

    writeln;
    for i:= 1 to r do
    begin
    for j:= 1 to c do
    begin
    write (m[i,j]);
    write (' ');
    end;
    writeln;
    end;
    readln;


    VISTO CHE SU QUESTO FORUM NON FA VEDERE GLI SPAZI RIPETUTI, magari poiché sia un po' più chiaro ti ci metto dei ... al posto degli spazi, ok? Ecco il solito frammento di codice, solo che dovrebbe essere allineato un po' meglio:

    writeln;
    for i:= 1 to r do
    begin
    .....for j:= 1 to c do
    .....begin
    .......write (m[i,j]);
    .......write ('.....');
    .....end;
    .....writeln;
    end;
    readln;

    Si capisce meglio? ED ORA, pensiamo al resto del progr...

    Scusa, ma nel tuo progetto quante volte dovrebbe scrivere "Si" o "No"?
    Credo che probabilmente dovrebbe svolgere una volta le istruzioni della funzione e poi scrivere Si o No, e basta... giusto?
    Però, visto che tu hai messo IF PRODOTTO(M) THEN.... all'interno della stessa funzione prodotto, la funzione viene eseguita in modo ricorsivo (cioè richiama sé stessa) all'infinito!
    Non essendoci mai una condizione di uscita, copia tutti i parametri nello stack della memoria fin quando non esaurisce la memoria ed allora dà errore! Credo che la situazione sia questa!
    Quindi, io ti consiglierei di mettere direttamente l'IF PRODOTTO(M) THEN.. ELSE.. nella procedura principale, al posto del richiamo Prodotto(m) che hai adesso!
    Ciao e facci sapere se funziona come serviva a te!!




    [Modificato da Gig il 18-06-2001 alle 11:17]

  4. #4
    mebibyte L'avatar di The_qwer
    Registrato
    Sep 2000
    Località
    Varese
    Età
    23
    Messaggi
    796

    Predefinito

    E bravo il nostro Gig...

  5. #5
    tebibyte L'avatar di Gig
    Registrato
    Jan 2001
    Località
    Firenze
    Età
    43
    Messaggi
    2,336

    Predefinito

    Grazie, Qwer... :p
    Ho avuto un buon maestro...
    E poi ho comprato il libro di Pascal giusto ... quando ero nei casini (ti ricordi quanto ti ho rotto, Qwer?) avevo soltanto un libro che poi ho scoperto essere l'eserciziario...

    Comunque, gradieri un riscontro da parte di Iceman! Ce l'hai fatta a consegnare in tempo?

  6. #6
    mebibyte L'avatar di The_qwer
    Registrato
    Sep 2000
    Località
    Varese
    Età
    23
    Messaggi
    796

    Predefinito

    HeHeHe... Non esagerare, mica mi hai rotto...
    Figuriamoci

    Bye!

Informazioni Thread

Users Browsing this Thread

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Discussioni simili

  1. Aiuto aiuto aiuto!!Asrock dual 775 880 pro
    By mipc in forum -= MotherBoards =-
    Risposte: 32
    Ultimo messaggio: 01-06-2006, 01:03
  2. Aiuto, aiuto, aiuto: Goku dove sei finitoooo????
    By jena.fuck in forum -= Sistemi Operativi Windows e software generale =-
    Risposte: 14
    Ultimo messaggio: 11-06-2001, 22:48
  3. Pascal e file
    By Gig in forum -= Webdesign, Computer grafica, Video editing e Automation/Management =-
    Risposte: 0
    Ultimo messaggio: 10-04-2001, 12:11
  4. TURBO PASCAL&GUIDE...
    By imported_MadMax in forum -= Webdesign, Computer grafica, Video editing e Automation/Management =-
    Risposte: 5
    Ultimo messaggio: 20-03-2001, 00:30
  5. Turbo Pascal con 128 mb di ram
    By in forum -= Webdesign, Computer grafica, Video editing e Automation/Management =-
    Risposte: 1
    Ultimo messaggio: 15-09-2000, 16:38

Tags

Regole d'invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
nexthardware.com - © 2002-2022