von
Steffen (Gast)
20.12.2017 01:03
Abend
Ich steh grad auf m Schlauch.
Habe einen Teil Code, den ich in einer Funktion auslagern will.
1 for ( int i = 0 ; i < 5 ; i ++ )
2 {
3 for ( int ii = 0 ; ii < 7 ; ii ++ )
4 {
5 if ( nr3 [ ii ][ i ] == 1 )
6 pixels . setPixelColor ( i * 12 + ( 7 - ii ), pixels . Color ( 1 , 1 , 1 ));
7 else
8 pixels . setPixelColor ( i * 12 + ( 7 - ii ), pixels . Color ( 0 , 0 , 0 ));
9 }
10 }
11 pixels . show ();
nr3 ist ein Mehrdimensionales Array. Und genau das macht mir Ärger.
1 int nr3 [ 7 ][ 5 ] = {{ 0 , 1 , 1 , 1 , 0 },
2 { 1 , 0 , 0 , 0 , 1 },
3 { 0 , 0 , 0 , 0 , 1 },
4 { 0 , 0 , 0 , 1 , 0 },
5 { 0 , 0 , 0 , 0 , 1 },
6 { 1 , 0 , 0 , 0 , 1 },
7 { 0 , 1 , 1 , 1 , 0 }};
Wie muss ich das in eine Funktion packen und wie rufe ich es nachher im
main-loop auf?
von
Steffen (Gast)
20.12.2017 09:46
Vielen Dank!
Hatte ich sogar schonmal so, aber muss wohl noch n Schreibfehler drin
gewesen sein.
Hier die Lösung für andere, die das selbe Problem haben:
Definition des mehrdimensionalen Arrays: 1 int nr4 [ 7 ][ 5 ] = {{ 1 , 0 , 0 , 0 , 1 },
2 { 1 , 0 , 0 , 0 , 1 },
3 { 1 , 0 , 0 , 0 , 1 },
4 { 1 , 1 , 1 , 1 , 1 },
5 { 0 , 0 , 0 , 0 , 1 },
6 { 0 , 0 , 0 , 0 , 1 },
7 { 0 , 0 , 0 , 0 , 1 }};
Aufruf im Main-Loop:
Funktion: 1 void print_ ( int val [ 7 ][ 5 ], int offset )
2 {
3
4 for ( int i = 0 ; i < 5 ; i ++ )
5 {
6 for ( int ii = 0 ; ii < 7 ; ii ++ )
7 {
8 if ( val [ ii ][ i ] == 1 )
9 pixels . setPixelColor ( offset + i * 12 + ( 6 - ii ), pixels . Color ( 1 , 1 , 1 ));
10 else
11 pixels . setPixelColor ( offset + i * 12 + ( 6 - ii ), pixels . Color ( 0 , 0 , 0 ));
12 }
13 }
14 pixels . show ();
15 }
von
Einer K. (Gast)
20.12.2017 09:49
Georg M. schrieb:
> Beitrag "2 Dimensionales Array an Funktion übergeben in c"
1 using DatenFeld = bool [ 7 ][ 5 ];
2
3
4 DatenFeld nr3 = {{ 0 , 1 , 1 , 1 , 0 },
5 { 1 , 0 , 0 , 0 , 1 },
6 { 0 , 0 , 0 , 0 , 1 },
7 { 0 , 0 , 0 , 1 , 0 },
8 { 0 , 0 , 0 , 0 , 1 },
9 { 1 , 0 , 0 , 0 , 1 },
10 { 0 , 1 , 1 , 1 , 0 }};
11
12 void tuWasMitFeld ( const DatenFeld & feld )
13 {
14 const size_t dim1count = sizeof ( feld ) / sizeof ( feld [ 0 ]);
15 const size_t dim2count = sizeof ( feld [ 0 ]) / sizeof ( feld [ 0 ][ 0 ]);
16
17 for ( int i = 0 ; i < dim2count ; i ++ )
18 {
19 for ( int ii = 0 ; ii < dim1count ; ii ++ )
20 {
21 if ( feld [ ii ][ i ])
22 {
23 pixels . setPixelColor ( i * 12 + ( 7 - ii ), pixels . Color ( 1 , 1 , 1 ));
24 }
25 else
26 {
27 pixels . setPixelColor ( i * 12 + ( 7 - ii ), pixels . Color ( 0 , 0 , 0 ));
28 }
29 }
30 }
31 pixels . show ();
32 }
33
34 void setup ()
35 {
36 Serial . begin ( 9600 );
37 tuWasMitFeld ( nr3 );
38 }
39
40 void loop ()
41 {
42
43 }
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.