Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    52

    Soluzione esercizio in Pascal

    Salve a tutti!!Vorrei sapere se qualcuno è in grado di dirmi perchè il programma seguente:

    program VerificaMatrice(input,output);
    label 99;
    const n=10;
    type tipoar=array[1..n,1..n]of integer;
    var a : tipoar;
    k : integer;
    finito : boolean;

    procedure LeggieScriviMat(var mat : tipoar);
    var rig,col : integer;
    begin
    writeln('fornire gli elementi della matrice, ciascuno seguito da un <INVIO>:');
    writeln;
    for rig:=1 to k
    do for col:=1 to k
    do readln(mat[rig,col]);
    writeln;
    for rig:=1 to k
    do begin
    for col:=1 to k
    do write(' ',mat[rig,col],' ':3);
    writeln;
    end;
    end;(* fine procedura LeggieScriviMat *)
    procedure MatSimmetrica(var mat : tipoar);
    var rig,col : integer;
    begin
    for rig:=1 to k
    do begin
    col:=1;
    finito:=true;
    while(col>=1)and(col<=k)and(finito)
    do begin
    if(rig<>col)and(mat[rig,col]<>mat[col,rig])
    then finito:=false;
    col:=col+1;
    end;
    end;
    end;(* fine procedura MatSimmetrica *)
    procedure MatriangSup(var mat : tipoar);
    var rig,col : integer;
    begin
    for col:=1 to k
    do begin
    rig:=col+1;
    finito:=true;
    while(rig>col)and(rig<=k-1)and(finito)
    do begin
    if mat[rig,col]<>0
    then finito:=false;
    rig:=rig+1;
    end;
    end;
    end;(* fine procedura MatriangSup *)
    procedure MatriangInf(var mat : tipoar);
    var rig,col : integer;
    begin
    for rig:=1 to k
    do begin
    col:=rig+1;
    finito:=true;
    while(col>rig)and(col<=k-1)and(finito)
    do begin
    if mat[rig,col]<>0
    then finito:=false;
    col:=col+1;
    end;
    end;
    end;(* fine procedura MatriangInf *)
    procedure MatDiagonale(var mat : tipoar);
    var rig,col : integer;
    begin
    for rig:=1 to k
    do begin
    col:=1;
    finito:=true;
    while(col>=1)and(col<=k)and(finito)
    do begin if(rig<>col)and(mat[rig,col]<>0)
    then finito:=false;
    col:=col+1;
    end;
    end;
    end;(* fine procedura MatDiagonale *)

    begin

    write('fornire la dimensione della matrice: ');
    readln(k);
    writeln;
    if k>n then begin
    writeln('dimensione troppo grande della matrice! - STOP -');
    goto 99;
    end
    else begin
    LeggieScriviMat(a);
    writeln;
    MatSimmetrica(a);
    if not(finito)
    then writeln('la matrice non e'' simmetrica')
    else writeln('la matrice e'' simmetrica');
    MatriangSup(a);
    if not(finito)
    then writeln('la matrice non e'' triangolare inferiore')
    else writeln('la matrice e'' triangolare inferiore');
    MatriangInf(a);
    if not(finito)
    then writeln('la matrice non e'' triangolare superiore')
    else writeln('la matrice e'' triangolare superiore');
    MatDiagonale(a);
    if not(finito)
    then writeln('la matrice non e'' diagonale')
    else writeln('la matrice e'' diagonale');
    end;
    99 :
    readln;

    end.

    che ha lo scopo di verificare se una matrice quadrata letta da ingresso è simmetrica, triangolare superiore o inferiore ed infine se è diagonale, non funziona correttamente.
    Grazie in anticipo per l'aiuto che vorrete offrirmi.

    Serfabio

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Leggi il Regolamento di quest'area del forum per prendere nota delle norme da seguire nell'apertura delle discussioni.

    In particolare, il titolo deve dare un'indicazione significativa del problema; inoltre, il codice deve essere formattato usando l'apposito tag [CODE]; infine, è tuo compito riportare gli errori o i problemi riscontrati, specificando cosa accade e cosa invece vorresti, oppure la descrizione dell'errore ottenuto dal compilatore o a runtime del programma.

    Apri una nuova discussione seguendo le indicazioni fornite.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.