Vous connaissez tous le fameux jeu où il faut trouver des erreurs incrustés dans une image ^^
Sur ce principe je lance ce nouveau jeu ( humour mais je galère VRAIMENT VRAIMENT )
Voici mon programme:
Code:
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109 /***************************************************************** File: lecture.c Author: Johann Brief: Source du bloc lecture des champs *******************************************************************/ #include <stdio.h> #include <stdlib.h> /* #include "lecture.h" /*! -------------------------------------------------------------- */ typedef struct valeur { float ACR; float DCR; float ACIR; float DCIR; }VALEUR; VALEUR lecture (VALEUR nonFiltre){ int reception[21]; char usb; int i,illicite,compt; int ACR_i,ACIR_i,DCR_i,DCIR_i; FILE * entree; nonFiltre.ACR = 0; nonFiltre.ACIR = 0; nonFiltre.DCR = 0; nonFiltre.DCIR = 0; ACR_i=0; ACIR_i=0; DCR_i=0; DCIR_i=0; illicite=0; compt=0; printf("entree\n"); entree = fopen("record1.dat", "r"); // on dit au pointeur de lire dans le fichier record1.dat printf("%d\n",entree); int transf; printf("zero\n"); do { fscanf(entree, "%c", &usb); // on prend l'octet transf = (int)usb-48; // char=>int printf("un\n"); if (transf != -35 && compt!=20){ // si on a pas BS reception[i] = transf; // on place le chiffre, numéro correspond à un caractère dans le tableau compt++; // on incrémente pour ne pas réécrire dans la même case i++; printf("deux\n"); } else if (compt <=19) { // le cas où un BS s'introduit avant son heure et donc qu'un problème s'est produit for(i=0; i<= 20; i++){ // réinitialisation du tableau reception[i]=0; compt=20; // le programme réenvoi les anciennes valeurs qui ne devraient pas être très éloigné de la réalité printf("trois\n"); } } else{ for(i=0; i<=20; i++){ printf("%d\n",reception[i]); if(((reception[i]<= -1) && (reception[i]>=10)) || (reception[i]!=-35) || (reception[i]!=-4) || (reception[i]!=-38)) { //vérification d'un caractère illicite illicite=1;} printf("quatre\n"); } if (illicite ==1) { printf("cinq\n"); for(i=0; i<= 20; i++){ // réinitialisation du tableau reception[i]=0;} } else { // si tous les chiffres ont été validé, on extrait les valeurs printf("six\n"); ACR_i= 1000*reception[0]+100*reception[1]+10*reception[2]+reception[3]; DCR_i= 1000*reception[5]+100*reception[6]+10*reception[7]+reception[8]; ACIR_i= 1000*reception[10]+100*reception[11]+10*reception[12]+reception[13]; DCIR_i= 1000*reception[15]+100*reception[16]+10*reception[17]+reception[18]; } compt++; // on sort de la boucle } // on sort des if }while(compt<=20); nonFiltre.ACR = (float)ACR_i; // conversion en float nonFiltre.ACIR = (float)ACIR_i; nonFiltre.DCR = (float)DCR_i; nonFiltre.DCIR = (float)DCIR_i; return nonFiltre; } int main() { VALEUR nonFiltre; nonFiltre = lecture (nonFiltre); printf ("%f %f %f %f", nonFiltre.ACR, nonFiltre.DCR, nonFiltre.ACIR, nonFiltre.DCIR); return 0; }
Citation:
le fichier où prendre les valeurs
2241,2030,2219,2030
2185,2029,2183,2029
2335,2029,2208,2029
2320,2028,2325,2028
2297,2028,2195,2028
2282,2028,2165,2028
2342,2027,2282,2027
2220,2027,2366,2027
2065,2026,2233,2026
2268,2026,2353,2026
2562,2026,2231,2026
2346,2025,2326,2025
2488,2025,2432,2025
2450,2024,2566,2024
2624,2024,2702,2024
2630,2024,2719,2024
2602,2023,2490,2023
2537,2023,2375,2023
2468,2023,2695,2023
2323,2022,2614,2022
2648,2022,2489,2022
2488,2021,2674,2021
2550,2021,2507,2021
2558,2021,2716,2021
2679,2020,2497,2020
2460,2020,2774,2020
2877,2019,2950,2019
2638,2019,2688,2019
2832,2019,2937,2019
2826,2018,3032,2018
2753,2018,2777,2018
2813,2018,2686,2018
2652,2017,2635,2017