Exercice VB: Carré Magique
Rédigé par GC Team, Publié le 02 Janvier 2012, Mise à jour le Vendredi, 16 Décembre 2022 21:27Participez au vote ☆☆☆☆☆★★★★★
Objectif :
Travailler avec les Tableaux à deux dimensions.
Travail à Faire :
1. Ecrire le programme qui détermine le plus grand élément et le petit élément ainsi, la position de plus grand élément et le petit élément d'une matrice.
2. Un carré magique d'ordre n est une matrice carrée n x n telle que la somme des entiers de chaque ligne, chaque colonne et des deux diagonales sont identiques.
Exemple de carré magique d'ordre 3 :
2 |
9 |
4 |
7 |
5 |
3 |
6 |
1 |
8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
1. Module Module1 Dim i, j, n, m, Max, Min, Pmax_x, Pmax_y, Pmin_x, Pmin_y As Integer Sub Main() Console.Write("Entrez le nombre de lignes : ") n = Console.ReadLine Console.Write("Entrez le nombre de colonnes : ") m = Console.ReadLine Dim T(n, m) As Integer For i = 0 To n - 1 For j = 0 To m - 1 Console.Write("t(" & i + 1 & " , " & j + 1 & ") = ") T(i, j) = Console.ReadLine Next Next Max = T(0, 0) Min = T(0, 0) Pmax_x = 1 Pmax_y = 1 Pmin_x = 1 Pmin_y = 1 For i = 0 To n - 1 For j = 0 To m - 1 If T(i, j) > Max Then Max = T(i, j) Pmax_x = i + 1 Pmax_y = j + 1 End If If T(i, j) < Min Then Min = T(i, j) Pmin_x = i + 1 Pmin_y = j + 1 End If Next Next Console.WriteLine("Le plus grand élément est : " & Max) Console.WriteLine("Sa postion est : " & "T(" & Pmax_x & ";" & Pmax_y & ")") Console.WriteLine("Le petit élément est : " & Min) Console.WriteLine("Sa postion est : " & "T(" & Pmin_x & ";" & Pmin_y & ")") Console.ReadLine() End Sub End Module 2. Module Module1 Dim n, i, j, s, c, c1, s1, Cmpt As Integer Sub Main() Cmpt = 0 Console.Write("Entrez le nombre de lignes : ") n = Console.ReadLine Dim T(n, n) As Integer For i = 0 To n - 1 For j = 0 To n - 1 Console.Write("T(" & i + 1 & " , " & j + 1 & ") = ") T(i, j) = Console.ReadLine Next Next c1 = 0 s1 = 0 For j = 0 To n - 1 s1 = s1 + T(j, j) c1 = c1 + T(j, n - 1 - j) Next If s1 = c1 Then Cmpt = Cmpt + 2 End If For i = 0 To n - 1 c = 0 s = 0 For j = 0 To n - 1 s = s + T(i, j) c = c + T(j, i) Next If (s = c) And (s = s1) Then Cmpt = Cmpt + 2 End If Next If Cmpt = (2 * n) + 2 Then Console.WriteLine("carré magique") Else Console.WriteLine("carré pas magique") End If Console.ReadLine() End Sub End Module |