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.
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...
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:
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.
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... :-(
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".
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 :-)
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.
1
// Schalter S1-4 einlesen
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:> 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.
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.
Keine Ahnung, ich habe einfach Atmel Studio 6 instaliert.
Wo kann ich nachschauen, ob ich dem Compiler einen zu alten Standart
aufgezwungen habe?
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?
>> 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.