Bord matrice langage C
Résolu/Fermé
tatouvu
-
24 avril 2009 à 13:39
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 25 avril 2009 à 03:32
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 25 avril 2009 à 03:32
A voir également:
- Bord matrice langage C
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Vous ne pouvez pas modifier une partie de matrice - Forum Excel
4 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
24 avril 2009 à 14:06
24 avril 2009 à 14:06
Salut,
L'opérateur =< n'existe pas. Il s'agit de l'opérateur <=. (Attention au sens).
for (i=num_ligne-1 ; i=<num_ligne+1 ;i++){
Sinon effectivement ceci se fait simplement avec les modulos.
Par exemple, tu dois t'arranger pour trouver une fonction f(1)=2, f(2)=3, ...f(4)=0.
Si tu utilises l'incrémentation modulo 5, ceci donne le résultat escompté : (0+1)%5=1, (1+1)%5=2, ..., (4+1)%5=5%5=0.
Cdlt
L'opérateur =< n'existe pas. Il s'agit de l'opérateur <=. (Attention au sens).
for (i=num_ligne-1 ; i=<num_ligne+1 ;i++){
Sinon effectivement ceci se fait simplement avec les modulos.
Par exemple, tu dois t'arranger pour trouver une fonction f(1)=2, f(2)=3, ...f(4)=0.
Si tu utilises l'incrémentation modulo 5, ceci donne le résultat escompté : (0+1)%5=1, (1+1)%5=2, ..., (4+1)%5=5%5=0.
Cdlt
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
24 avril 2009 à 20:02
24 avril 2009 à 20:02
Comme le dit fiddy, au moment d'évaluer la case [i][j], tu évalues la case [i%5][j%5] et c'est fini. Attention toutefois à ce que i et j ne prennent pas des valeurs négatives car l'opérateur modulo retournera alors une valeur négative (et génèrera une erreur de segmentation).
Ca signifie que si tu es dans la ligne (colonne) 0 tu peux avoir un soucis.
Si tu es sûr que i et j ne seront jamais inférieur à -5 tu peux garantir que tout se passera bien en évaluant [(i+5)%5][(j%5)+5], comme le montre le code qui suit :
On a bien :
Bonne chance
Ca signifie que si tu es dans la ligne (colonne) 0 tu peux avoir un soucis.
Si tu es sûr que i et j ne seront jamais inférieur à -5 tu peux garantir que tout se passera bien en évaluant [(i+5)%5][(j%5)+5], comme le montre le code qui suit :
#include <stdio.h> #include <stdlib.h> int main(){ int i; for(i=-10;i<=10;++i) printf("( %3d + 5 ) %% 5 = %3d\n",i,(i+5) % 5); return 0; }
On a bien :
( -10 + 5 ) % 5 = 0 ( -9 + 5 ) % 5 = -4 ( -8 + 5 ) % 5 = -3 ( -7 + 5 ) % 5 = -2 ( -6 + 5 ) % 5 = -1 ( -5 + 5 ) % 5 = 0 ( -4 + 5 ) % 5 = 1 ( -3 + 5 ) % 5 = 2 ( -2 + 5 ) % 5 = 3 ( -1 + 5 ) % 5 = 4 ( 0 + 5 ) % 5 = 0 ( 1 + 5 ) % 5 = 1 ( 2 + 5 ) % 5 = 2 ( 3 + 5 ) % 5 = 3 ( 4 + 5 ) % 5 = 4 ( 5 + 5 ) % 5 = 0 ( 6 + 5 ) % 5 = 1 ( 7 + 5 ) % 5 = 2 ( 8 + 5 ) % 5 = 3 ( 9 + 5 ) % 5 = 4 ( 10 + 5 ) % 5 = 0
Bonne chance
On t'a déjà donné la solution ...
Les voisins de la case x (que ce soit la ligne ou la colonne, c'est pareil) sont:
(x+1)%5 et (x+4)%5 en balayant x de 0 à 4.
Les voisins de la case x (que ce soit la ligne ou la colonne, c'est pareil) sont:
(x+1)%5 et (x+4)%5 en balayant x de 0 à 4.
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
25 avril 2009 à 03:32
25 avril 2009 à 03:32
Y a de l'écho :-)