المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : مساعدة في البرمجة


Lily lovely
2018-08-25, 21:38
السلام عليكم
3andi mochkil fi tarjamat lkhawarizmiyat b dev c++ t3icho 3awnoni f tarjamat had programme
structure coord

entier crd1 ;

entier crd2 ;

fin structure ;

entier cote,i,j,ind ;

entier tab[9][9];



{fonctions et procédures utilisées}



{prédicat de test de parité d’un entier}



fonction booléen paire(entier n) ;

booléen result ;

si n modulo 2=0

alors result ¬ true ;

sinon result ¬ false;

fin si;

fin fonction paire ;



{procédure de changement de ligne avec traçage du tableau}



procédure N_L(entier cote) ;

entier x ;

nouvelle_ligne( );

pour x :1 à cote

écrire(²___²) ;

fin pour ;

nouvelle_ligne( ) ;

écrire(²|²) ;

fin procédure N_L ;



{fonction qui transforme les anciennes coordonnées d’un nombre du tableau en nouvelles}



fonction coord place(entier tab[9][9], coord a_coord) ;

coord n_coord ;

si a_coord.crd1 < cote

alors n_coord.crd1 ¬ a_coord.crd1 + 1 ;

sinon n_coord.crd1 ¬ 1 ;

fin si ;

si a_coord.crd2 < cote

alors n_coord.crd2 ¬ a_coord.crd2 + 1 ;

sinon n_coord.crd2 ¬ 1 ;

fin si ;



tant que tab[n_coord.crd1][n_coord.crd2] <> 0 faire

n_coord.crd1 ¬ a_coord.crd1 ;

n_coord.crd2 ¬ a_coord.crd2 + 2;

si n_coord.crd2 = cote +1

alors n_coord.crd.2 ¬ 1;

sinon si n_coord.crd2 = cote + 2

alors n_coord.crd2 ¬ 2

fin si ;

fin si ;



fin tant que ;

fin fonction place ;



{programme principal}



Début Programme principal



coord _coord ;

écrire(²Donner une valeur impaire du côté du carré magique (maximum 9) ²) ;

lire(²cote²) ;

si cote > 9 ou paire(cote) ou cote < 0

alors écrire(²Valeur incorrecte ²) ;

sinon

si cote = 1

alors écrire (²_²) ;

nouvelle_ligne( ) ;

écrire(²|1|²) ;

nouvelle_ligne( ) ;

écrire(²_²) ;

sinon



{traitement}

{initialisation du tableau}

pour j :1 à cote faire

pour i :1 à cote faire

tab[i][j] ¬0 ;

fin pour

fin pour

i ¬cote/2 + 1 ; {place le 1 au milieu horizontalement}

j ¬cote/2 + 2 ; {place le 1 sous le milieu verticalement}



{placement des termes suivants}

ind ¬ 1 ;

faire

tab[i][j] ¬ ind ;

_coord.crd1 ¬ i;

_coord.crd2 ¬ j;

i ¬ place(tab, _coord).crd1;

j ¬ place(tab, _coord).crd2;

ind ¬ ind + 1;

tant que ind <> cote * cote;



{affichage}

pour j :1 à cote faire

N_L(cote) ;

pour i :1 à cote faire

si tab[i][j]<9

alors écrire(² ²) ; {espace pour l’alignement du tableau}

fin si

écrire(tab[i][j]) ;

écrire(²|²) ;

fin pour

fin pour

fin si

fin si



Fin Programme principal