Bonjour,
Tu étais "un peu" fatigué en écrivant (vu l'heure du post) ? Rien qu'en lisant les déclarations de t & k on note un gros problème de la gestion de la touche Shift, gauche ou droite. Bref, le compilateur doit te recracher le code dès ces lignes, je pense.
Ensuite, un conseil : déclare les dimensions maximales en constantes (p.ex. m_max et n_max), et déclare t et k à partir de ces constantes. Ce sera toujours ça de gagné si tu dois adapter/réutiliser ce code plus tard.
Quand tu veux lire m et n : écris un message (write) avant de lire la donnée, ça permet de savoir où on en est. Ensuite, il est préférable de contrôler l'entrée avant de passer à la suite avec soit un if un peu brutal, soit avec une boucle si c'est passé dans ton cours (mais déjà, fais en sorte que ça fonctionne avant de faire ces contrôles si tu ne te sens pas encore à l'aise).
Lecture de t : ok pour la double boucle. Mais idem, affiche quelques mots pour savoir où l'on en est. Comme :
1 2
| write ('valeur de t[', i, ',', j, '] : ');
readln (t[i,j]); |
Passer de t à k : la double boucle suffit, puisque tu parcours t. Et ta variable l a une valeur qui dépend directement d'une combinaison de i et j : boucle while inutile. Si on y regarde de plus près, on peut même directement affecter :
k[la_bonne_formule] = t[i,j]
Ton dernier readln ne sert à rien tant que le programme se termine juste après.
Regardes cela à tête reposée, tu y es presque !
Partager