Gast
#3360633
Hallo, wie kann ich das am besten in C schreiben?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
leider bekomme ich Error #29 "expected an expression"
|
Anzeige
|
auf Tabelle zugreifen
Gast
#3360633
Hallo, wie kann ich das am besten in C schreiben?
leider bekomme ich Error #29 "expected an expression"
Gast
#3360646
C-Buch nehmen und Abschnitt über Arrays lesen. ????? Was möchtest du machen??? so vielleicht?
float P;
unsigned char S1,S2,S3,S4;
// Schalter S1-4 einlesen
char[] prescaler = {0.01,0.1,1.0,10.0,100.0,1000.0,10000.0,-0.01,-0.1};
char[] num ={1.0,1.25,1.6,2.0,2.5,3.15,4,5,6.3,8};
P = num[s1]*prescaler[S2];
??? Ich verstehe leider immer noch nur Bahnhof.
Gast
#3360719
Daniel V. schrieb: > Ich verstehe leider immer noch nur Bahnhof. Er möchte auf ein Array zugreifen. Hat aber keine Ahnung von C und lässt daher das Forum die "Arbeit" machen, anstelle es selber lernen zu wollen. Dr. Sommer schrieb: > Daniel V. schrieb: >> Ich verstehe leider immer noch nur Bahnhof. > Er möchte auf ein Array zugreifen. Hat aber keine Ahnung von C und lässt > daher das Forum die "Arbeit" machen, anstelle es selber lernen zu > wollen. Nun ja. Aber die gebotenen Lösungsvorschläge verstehe ich leider auch nicht.
Gast
#3360759
Daniel V. schrieb: > Nun ja. Aber die gebotenen Lösungsvorschläge verstehe ich leider auch > nicht. Man legt ein Array an und greift mit den Indices S1/S2 drauf zu. Du bist auch ein Kandidat für ein C-Buch...
Gast
#3360765
Dr. Sommer schrieb: > Er möchte auf ein Array zugreifen. Stimmt! > Hat aber keine Ahnung von C und lässt > daher das Forum die "Arbeit" machen, anstelle es selber lernen zu > wollen. Stimmt nicht wirklich. Meine Lösung dazu:
Ich wollte lediglich wissen, ob noch eine andere Syntax möglich ist. Peter Zz schrieb: > Ich wollte lediglich wissen, ob noch eine andere Syntax möglich ist. Wozu?
Gast
#3360795
Peter Zz schrieb: > Ich wollte lediglich wissen, ob noch eine andere Syntax möglich ist. Wenn du deinen Ansatz gepostet hättest hätte man immerhin ersehen können was das überhaupt werden soll.
Gast
#3360798
Pointer und Arrays: http://et-tutorials.de/3441/pointer-und-arrays/ Dr. Sommer schrieb: > Daniel V. schrieb: >> Nun ja. Aber die gebotenen Lösungsvorschläge verstehe ich leider auch >> nicht. > Man legt ein Array an und greift mit den Indices S1/S2 drauf zu. Du bist > auch ein Kandidat für ein C-Buch... Hmm.. wie man auf ein Array zugreift weiss ich. Aber das hier... Peter Zz schrieb: > Hallo, > wie kann ich das am besten in C schreiben? float P; > unsigned char S1,S2,S3,S4; > // Schalter S1-4 einlesen > > P = [S1]{1.0,1.25,1.6,2.0,2.5,3.15,4,5,6.3,8}; > P *= [S2]{0.01,0.1,1.0,10.0,100.0,1000.0,10000.0,-0.01,-0.1}; > leider bekomme ich Error #29 "expected an expression" ... kann ich beim Besten Willen nicht verstehen. Ausserdem verwirrt der Kommentar "//Schalter S1-4 einlesen". Woher soll man da wissen, dass S1, S2, S3, S4 Zahlen beinhalten? Liefert ein Schalter zahlen? Und dann kommt auch noch eine Fehlermeldung. Und am Schluss kommt dieser Beitrag: Peter Zz schrieb: > Stimmt nicht wirklich. > Meine Lösung dazu: float P; > unsigned char S1,S2,S3,S4; > const float tab1[10] = {1.0,1.25,1.6,2.0,2.5,3.15,4,5,6.3,8}; > const float tab2[10] = > {0.01,0.1,1.0,10.0,100.0,1000.0,10000.0,-0.01,-0.1}; > > // Schalter S1-4 einlesen > > P = tab1[S1] * tab2[S2]; > Ich wollte lediglich wissen, ob noch eine andere Syntax möglich ist. Ich liebe es... :-(
Gast
#3361990
Daniel V. schrieb: > ... kann ich beim Besten Willen nicht verstehen. Da steht ja auch Unsinn, da gibts nix zu verstehen. > Ausserdem verwirrt der > Kommentar "//Schalter S1-4 einlesen". Bester Programmierstil. > Woher soll man da wissen, dass S1, S2, S3, S4 Zahlen beinhalten? Weil da "unsigned char" steht. Das ist ein Integer-Datentyp. > Liefert > ein Schalter zahlen? Und dann kommt auch noch eine Fehlermeldung. Keiner weiß es? Vielleicht sind das Bitmasken, d.h. ein Bit in der Zahl = ein Schalter. Daniel V. schrieb: > Ich liebe es... :-( Das ist doch wirklich ganz einfach. Man legt zwei Arrays tab1 und tab2 an und greift mit [] drauf zu. Dr. Sommer schrieb: > Daniel V. schrieb: >> ... kann ich beim Besten Willen nicht verstehen. > Da steht ja auch Unsinn, da gibts nix zu verstehen. Woher weisst du dann, was er will? Du hast geraten? Dr. Sommer schrieb: > Daniel V. schrieb: >> Ich liebe es... :-( > Das ist doch wirklich ganz einfach. Man legt zwei Arrays tab1 und tab2 > an und greift mit [] drauf zu. Naja, ich meinte "ich liebe es", wenn er dann am Ende vom Thread seine Lösung präsentiert, die er am Anfang hätte posten sollen mit der Frage: "Funktioniert das so".
Gast
#3362010
Daniel V. schrieb: > Woher weisst du dann, was er will? > Du hast geraten? jup. Daniel V. schrieb: > Naja, ich meinte "ich liebe es", wenn er dann am Ende vom Thread seine > Lösung präsentiert Tja, so ist das im Internet... Dr. Sommer schrieb: > Daniel V. schrieb: >> Woher weisst du dann, was er will? >> Du hast geraten? > jup. > Also hast du auch nicht gewusst, was er will :-)
Gast
#3362174
Daniel V. schrieb: > Also hast du auch nicht gewusst, was er will :-) Wieso wisst ihr nicht, was ich will? Ist eure Kristallkugel defekt? ;-) Was ich im Anfangspost gepostet habe, ist ein C ähnlicher Pseudocode. Ich frage dann, wie kann ich das in C programmieren. Ich kenne natürlich die Syntax für Arrays, was mich untrieb war jedoch der Wunsch das Array, da es nur ein einziges Mal gebraucht wird, in der selben Zeile zu haben. Soetwas geht, aber anscheinend nur bei char.
soll nur bedeuten: hier kommt der Code zum einlesen der Schalter S1-4 hin, ich will hier nicht mit für den Thread unwichtigen Einzelheiten ablenken. Peter Zz schrieb: > Soetwas geht, aber anscheinend nur bei char. Hä? Ich hab dir doch die Lösung gepostet. Peter Zz schrieb: > Ich kenne natürlich die Syntax für Arrays, was mich untrieb war jedoch > der Wunsch das Array, da es nur ein einziges Mal gebraucht wird, in der > selben Zeile zu haben. Soetwas geht, aber anscheinend nur bei char. Seit C99 gibt es dafür eine Syntax. Wurde von Stefan Ernst ja auch schon gepostet. Bei C-Versionen davor gab es da nichts. Und wenn ich hinzufügen darf: Das hat auch nicht wirklich wer großartig vermisst. Ja, String Literale waren immer schon ein wenig speziell.
Gast
#3362215
Stefan Ernst schrieb: > Hä? Ich hab dir doch die Lösung gepostet.
Ist eine sehr ungewöhnliche Syntax und gab bei mir nur Fehlermeldungen, da habe ich gedacht, du veräppelst mich... Peter Zz schrieb: > Ist eine sehr ungewöhnliche Syntax und gab bei mir nur Fehlermeldungen, Diese Syntax wird vom GCC aber schon seit vielen Jahren unterstützt. Entweder hast du eine uralte Compilerversion, oder der Rest von deinem Programm ist fehlerhaft. Yalu X. schrieb: > Entweder hast du eine uralte Compilerversion, oder der Rest von deinem > Programm ist fehlerhaft. Oder er hat seinem Compiler einen zu alten Standard aufgezwungen. Stefan Ernst schrieb: > Oder er hat seinem Compiler einen zu alten Standard aufgezwungen. Das ist dann aber schon mutwillig ,-)
Gast
#3363589
Stefan Ernst schrieb: > Oder er hat seinem Compiler einen zu alten Standard aufgezwungen. Keine Ahnung, ich habe einfach Atmel Studio 6 instaliert. Wo kann ich nachschauen, ob ich dem Compiler einen zu alten Standart aufgezwungen habe?
Gast
#3363734
Hurra, mit dem Atmel Studio 6 funktioniert das.
Bin schon ganz wuschig, habe verschiedene Projekte am laufen und hatte versehentlich den µVision3 / RealView ADuC7126 von Keil benutzt. Hier kann mir wohl niemand sagen, wie ich dem µVision beibringe diese Syntax zu akzeptieren? Peter Zz schrieb: > Hurra, mit dem Atmel Studio 6 funktioniert das. >
> > Bin schon ganz wuschig, > habe verschiedene Projekte am laufen und hatte versehentlich den > µVision3 / RealView ADuC7126 von Keil benutzt. > > Hier kann mir wohl niemand sagen, wie ich dem µVision beibringe diese > Syntax zu akzeptieren? Gar nicht. Entweder er kann C99 oder er kanns nicht. Peter Zz schrieb: > Hier kann mir wohl niemand sagen, wie ich dem µVision beibringe diese > Syntax zu akzeptieren? Mit --c99, falls es sich bei dem Compiler um den hier beschriebenen handelt: http://www.keil.com/support/man/docs/armccref/armccref_BCFJIIJJ.htm Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|