Fragen zur Programmierung
Schönen Abend euch allen,
hab angefangen in C zu programmieren.
Will was ganz Simples realisieren um denn Einstieg zu finden. Es geht darum eine Zahl zwischen 0-10 einzugeben und der RP6 soll im Terminal dann Ausgeben ob diese zahl größer oder kleiner als 5 ist. Hier der Code
************************************************** ***********
#include "RP6RobotBaseLib.h"
int main(void)
{
initRobotBase();
writeString("Geben Sie einen Wert von 0-10 ein\n");
uint16_t x;
if(x<5)
{
writeString("Die eingegebene Zahl ist kleiner als 5");
}
else if(x>5)
{
writeString("Die eingegebene zahl ist groesser als 5\n");
}
else
{
writeString("Die Zahl liegt außerhalb des bereichs\n");
}
return 0;
}
************************************************** *********
Wenn der Roboter gestartet wird erscheint auch schon die Frage im terminal Program nur egal was eingegeben wird, kommt keine Antwort!!!
Frage: Wei soll ich mein Programm verändern??[/b]
Re: Fragen zur Programmierung
Zitat:
Zitat von polskapawel
Frage: Wei soll ich mein Programm verändern??[/b]
Hi Polskapawel,
möchtest Du mittels if-Anweisung einen klar definierten Bereich abstecken, solltest Du dir vorher genau überlegen, wie die Grenzen für diesen zulässigen Bereich aussehen.
In der aktuellen Version deiner if-Anweisung werden keine unteren und oberen Grenzwerte festgelegt. Die Folge ist, dass nicht nur ein Bereich "abgesteckt" wird, sondern gleich zwei von einander getrennte Bereiche und zwar von [0..4] durch "if(x<5)" und von [6..65535] durch "else if(x>5)"! Also quasi alles, was der Datentyp uint_16 hergibt, mit Ausnahme der Zahl 5.
Besser wäre es, wenn Du die Grenzen wirklich strikt festlegst.
In etwa so:
//wenn x größergleich 0 UND x kleinergleich 4 (statt x<=4 auch möglich: x<5)
if(x>=0 && x<=4)
{
Anweisungen;
}
//wenn x größergleich 5 UND x kleinergleich 10
else if(x>=5 && x<=10)
{
Anweisungen;
}
//alles was nicht zwischen 0 und 10 (einschließlich Grenzen) liegt
else
{
writeString_P("Die Zahl liegt außerhalb des gueltigen Bereichs!\n");
}
Was das Einlesen eines Zeichens betrifft schließe ich mich RP6conrad an. Mit readchar() dürfte es klappen :)
Hoffe ich konnte Dir etwas helfen.
Have fun.