Postpla.net: Community-Forum

Computer und Technik  ->  über Software & Bertriebssysteme

Insgesamt 31 Einträge mit 67726 Zugriffen seit 20.06.2005

Tutorial: Programmieren

Wie man die richtigen Vorbereitungen zum Programmieren trifft



Click for Big
Programmieren :)
Programmierlogik ist nicht vergleichbar mit Mathematischer Logik. Dies bereitet vielen, die mit dem Programmieren anfangen zuerst Probleme. Die Problematik zu erkennen und mit den richtigen Funktionen und Algorythmen zu lösen, ist anfangs recht schwer zu verstehen. Dieses Tutorial soll nur einige Hilfestellungen geben und ist nicht auf irgend eine Programmiersprache ausgelegt, sondern allgemein gehalten. Jedoch geht ein Programmiertutorial nicht ohne Code, deswegen werde ich mich bei den Codebeispielen an der Programmiersprache C bedienen. Anhand einer Beispielaufgabenstellung wird erklärt, wie man richtig beginnt und auch programmiert. Kenntnisse der Funktionen und deren Parameter,der Syntax sowie die Bedienung des Verwendeten Compilers sind Vorrausgesetzt.

Aufgabe:

Schreiben sie ein Programm das zwei ganze Zahlen größer als 0 einliest und diese vertauscht, ohne Hilfsvariablen. Bsp: Eingabe: Zahl 1: 3 und Zahl 2: 7, Ausgabe: Zahl 1: 7 und Zahl 2: 3.

Wie fange ich an?

Zuerst einmal sollte man überlegen was das Programm können soll. Unser Beispielprogramm hier muss 2 Zahlen vertauschen, ohne das eine Hilfsvariable benutzt wird. Eine Frage ist damit schonmal beantwortet, nämlich die wie viele Variablen man benötigt. In unserem Falle 2. Nun gibts aber noch eine Frage zu klären: Welchen Datentyp soll ich für diese Variablen benutzen? In der Aufgabenstellung ist die Rede davon das wir 2 ganze Zahlen vertauschen wollen. Also brauchen wir einen Ganzzahltyp wie Integer. Diesen nehmen wir auch sofort, den Integer reicht für dieses Programm vollkommen aus. Den Variablen geben wir sprechende Namen, denn bei komplexen Programmen geht der Überblick durch Variablennamen wie x, y, z sehr schnell verloren. Da wir hier nur 2 Zahlen haben, nennen wir diese variablen zahl 1 und zahl2.

Weitere Schritte

Nun stellt sich eine weitere wichtige Frage: Welche Funktionen benötige ich? In unserem Falle benötigen wir natürlich die Ausgabefunktion von C, printf(), da wir ja den Anwender auffordern wollen, eine Eingabe durchzuführen. Ferner brauchen wir die Einlesefunktion scanf(), da wir die Eingabe des Anwenders auch in die Variablen schreiben können. Damit der Benutzer das Resultat auch sehen kann benötigen wir die Funktion getch(). Getch steht für "Get Character", das heisst es wird auf einen Tastendruck gewartet, dies benötigen wir am Ende unseres Programms, quasi als "Bremse" damit der Anwender auch sehen kann wie die Zahlen vertauscht wurden.

Wie vertausche ich die Zahlen?

Nun zur eigentlichen Aufgabe des Programms. Unser Programm muss 2 Zahlen ohne Hilfsvariable vertauschen. Nun ist Mathematik gefragt. Wir können mit C alles, was ein Taschenrechner auch kann. Durch Addition und Subtraktion würden wir hier nicht weit kommen, denn es würde nichts bringen, wenn wir das Programm die beiden Zahlen addieren und Subtrahieren würden. Denn egal wie wir rechnen würden, es würde höchstens durch Zufall die richtigen Zahlen herauskommen. Also bleibt uns nur Multiplikation und Division.

Anders als in der Mathematik, ist beim Programmieren die Aussage x= x+y sehr wohl logisch, denn in einer Programmiersprache ist dies keine Aussage, sondern eine Rechenoperation. Es heisst in der Informatik nicht x ist gleich x plus y, sondern: Der Inhalt der Variable x plus den Inhalt der Variable y ist der neue Inhalt der Variable x. Auch kann ein und dieselbe Variable unbegrenzt oft in einem Programm geändert werden. x=1 muss keinesfalls ein konstanter Wert sein, sondern kann beliebig oft im Programm anders gesetzt werden, je nachdem wie wir ihn benötigen.

So, da uns jetzt nur noch 2 Rechenarten bleiben müssen wir wohl oder übel diese verwenden. Am besten denken wir uns ein paar Werte für die beiden Zahlen. Wir nehmen hier einfach mal für zahl1 den Wert 3 und für zahl2 den Wert 7, die Werte könnten auch andere sein, hier habe ich mir einfach diese ausgedacht. Wenn man Mathematisch denkt dann kommt man bei diesem Programm nicht weit, hier muss eine denkumstellung vom rechnen mit unbekannten, zum Rechnen mit Inhalten vollzogen werden. 3=3*7 wäre in der Mathematik falsch und ist auch hier nicht richtig, denn es ist nicht 3=3*7 sondern zahl1=3*7, die Rechenoperation beschreibt nicht die Variable, sondern schreibt einen Wert in eine Variable.

Da wir irgendwann dividieren müssen, benötigen wir einen großen wert zum dividieren, da wir nicht ein ergebnis null komma haben können, also rechnen wir zuerst einmal zahl1*zahl2 rechnen und diesen wert in zahl1 schreiben, damit er nach der Multiplikation, den benötigten großen Wert hat. Nun haben wir zahl1=21 und zahl2=7. Nun sollte auch zahl2 einen neuen Inhalt bekommen. Der Wert von zahl1 ist nun größer als der von zahl2 und niedriger auf keinen fall, da selbst 1 multipliziert mit einer anderen Zahl nicht kleiner als diese wäre.

Da zahl1 größer ist liegt eine Division nahe, denn eine nochmalige Multiplikation würde uns nur zu einer noch größeren zahl2 führen, und wir wollen ja eigentlich eine kleinere. Also Rechnen wir zahl2=zahl1/zahl2, nun steht bei zahl1=21 und zahl2=7 in der Variable zahl2 der wert 3. Sehr gut, nun haben wir schon einmal in der Variable zahl2 den Ursprungswert von zahl1 stehen. In zahl1 steht weiterhin der Wert 21. Den Wert 21 haben wir anfangs durch eine Multiplikation mit dem Ursprungswert von zahl2 erreicht.

Unsere Variablen sehen nun wie folgt aus: zahl1=21 und zahl2=3. zahl1 war bei unserer ersten Multiplikation ja 3 und zahl2 sieben. Wir haben einen faktor und das Ergebnis einer Multiplikation, mit diesen 2 gegebenen werten können wir durch eine Division des Ergebnisses mit einem der faktoren, den zweiten Faktor bestimmen. Deswegen sieht unser nächster schritt so aus: zahl1=zahl1/zahl2. Dadurch wird wieder einmal das Ergebnis der Division in die Variable zahl1 geschrieben, die nach der Operation den wert 7 enthält.

Nun sehen unsere Variablen so aus: zahl1=7 und zahl2=3. Genau das was wir wollten. Nun müssen wir nur noch unser ergebnis ausgeben.

Der Code des Beispielprogramms


#include <stdio.h>
#include <conio.h>

void main (void)
{
int zahl1, zahl2;
printf("Bitte geben sie den Wert fuer a ein:
" ;) ;
scanf("%i", &zahl1);
printf("Bitte geben sie den Wert fuer b ein:
" ;) ;
scanf("%i", &zahl2);
printf("Zahl 1=%i
", zahl1);
printf("Zahl 2=%i
", zahl2);
printf("Die Zahlen werden jetzt vertauscht!
" ;) ;
zahl1=zahl1*zahl2;
zahl2=zahl1/zahl2;
zahl1=zahl1/zahl2;
printf("Zahl 1=%i
", zahl1);
printf("Zahl 2=%i
", zahl2);
getch();
}


Als letzten Schritt sollten wir unser Programm kommentieren, damit wir bei nochmaligen ansehen des Codes immer wieder sehen können wie das Programm funktioniert.

Autor: OrionX Unterstützt durch: TheXiron


Dazu im Postpla.net :  Zu "Tutorial: Programmieren" auf Lupuz
Geschrieben von OrionX am 13.10.05 19:07 (seit dem 2814 mal gelesen)
69.1% /  Lupuz Rank 7  Mit insg. 11 Bewertungen erreichte dieser Artikel 69.1 Prozent.
Bewerte mit (nur für Benutzer) :

Ähnliche Artikel zu Tutorial: Programmieren

Aktuelle Kommentare zu Tutorial: Programmieren

Kommentar Von einem Gast (26.02.08 16:55):
hmm wir kommen durch Addition echt nicht weiter?!?
das seh ich anders
a=a+b (a+b)
b=a-b (a+b-b=a)
a=a-b (a+b-a=b)

damit haben wir das gewünschte erreicht!!
:D :) :o :p :( ;) [B] [I] [U] [D] [URL] [EMAIL] [-][+] Neuer Kommentar Kommentar abgeben :

Artikel Autor