C Wie löse ich diese Aufgabe ?

DieAnfängerin

Cadet 1st Year
Registriert
Okt. 2015
Beiträge
9
Hallo,

ich bin neu hier und eine richtige Anfängerin.
Im Studium programmieren wir in C und ich muss Vorbereitungsaufgaben abgeben.
Leider tue ich mir wirklich schwer damit.
Allein das erstellen der Paps und der Pseudocode, bringen mich an die zum verzweifeln.
Ich weiß man lernt nichts, wenn man die Lösung gereicht bekommt aber ich lerne auch nichts wenn ich keine Tipps oder Beispiele bekomme. Die eigentliche Aufgabe ist das Programmieren dieser Aufgaben in C aber ....

Ich bitte euch gibt mir Hilfestellung, ich möchte so gern diese Aufgaben hin bekommen.
Ich habe die Bausteine aber ich weiß nicht genau welche ich brauche und wie ich sie letzendlich anwende.


Entwerfen Sie den Programmablaufplan für einen Algorithmus, welcher zunächst die vier
Koordinaten zweier Punkte (x1, y1) und (x2, y2) von der Tastatur einliest und dann die
Entfernung zwischen diesen beiden Punkten in der Euklidischen Ebene ausrechnet und
ausgibt.


Schreiben Sie eine C-Funktion, die als Parameter die vier Koordinaten zweier Punkte (x1,
y1) und (x2, y2) bekommt und die dann die Entfernung zwischen diesen beiden Punkten in
der Euklidischen Ebene ausrechnet und zurückgibt.
 
Jeder Anfang ist schwer, aber anfangen muss man trotzdem.

Was hast du denn bis jetzt geschafft? Verstehst du die Aufgabe? Kannst du sie in der Theorie lösen? Kannst du einen Programmablaufplan entwerfen?

Gruß
BlackMark
 
DieAnfängerin schrieb:
Ich weiß man lernt nichts, wenn man die Lösung gereicht bekommt aber ich lerne auch nichts wenn ich keine Tipps oder Beispiele bekomme. Die eigentliche Aufgabe ist das Programmieren dieser Aufgaben in C aber ....

Man lernt, in dem man zunächst das übernimmt, was die Meister verkünden ...

Ich bitte euch gibt mir Hilfestellung, ich möchte so gern diese Aufgaben hin bekommen.
Ich habe die Bausteine aber ich weiß nicht genau welche ich brauche und wie ich sie letzendlich anwende.

  1. Welche Compiler/Sprachumgebung, welches Betriebssystem nimmst Du?
  2. Kannst Du einen Quelltext an den Compiler "übergeben"?
  3. Kannst Du eine "ausführbare Datei" erzeugen?
  4. Kannst Du einen vollständigen Programmquelltext ohne Warnungen und Fehler schreiben, welcher übersetzt als exe den Text "Hallo Welt" ausgibt und sich dann beendet?
 
@stefanle: Super, und wo war jetzt der Lerneffekt? Die Eigeninitiative?
DieAnfängerin schrieb:
Ich weiß man lernt nichts, wenn man die Lösung gereicht bekommt
So sieht es aus und du hast gerade genau das gemacht, was am wenigsten bringt, einfach die Lösung geben. *Kopfschüttel*

Gruß
BlackMark
 
@Blöderidiot
-Ich benutze MVS2013
-Ja das kann
-Ja kann ich auch
-Und ja das kann ich auch

Ich habe gestern vieles nachgeholt (Da ich Krank war und viele Vorlesungen verpasst habe).
Nur kann ich was ich bis jetzt gelernt habe..nicht selbstständig anwenden....

@BlackMark

Bis jetzt könnte ich die Eingabefunktion schreiben.... wie aber der quellcode zu rechung aussieht oder gar das Pap oder auch der Pseudocode...tue ich mir sehr schwer....

Das sind alles Vorbereitungs Aufgaben, die ich morgen in abgewandelter Form an der HS selbst programmieren soll.
Nur kann ich das leider nicht aus dem nichts....für mich ist das aus dem nichts, wenn ich so einen Code noh nicht gesehen habe, der das bezweckt...

@stefanle DANKE...oh das ist ja total einfach o____o
 
Zuletzt bearbeitet:
@TE:

Solltest du den Code nicht gelesen haben oder (was man vermutet) bald wieder auf ein solches Problem triffst gehe folgendermaßen vor:
  1. Analysiere die Aufgabenstellung und extrahiere für dich verständlich das Problem
  2. Überlege dir welche (hier) Mathematik dahinter nötig ist um das Problem zu lösen
  3. Setze diesen Algorithmus als Pseudocode (hat nichts mit programmieren zu tun) um und baue grundlegend dein Programm daran auf
  4. Programmiere den Code aus und teste
Das wars dann auch schon. Für solch simple Probleme ist das für dich denke ich die beste Methode, später kann man sich den ein oder anderen Schritt sparen und im Kopf machen. Und wenn man bestimmte Syntax nicht kennt dann muss man halt recherchieren, aber das kann man auch nicht ändern ;)
 
Also verstehst du auch das Mathematische-Prinzip dahinter und könntest das theoretisch mit Taschenrechner und Papier lösen aber nicht als C-Programm?
 
Ich hätte sicher nicht gefragt, wenn ich nicht so Planlos wäre :(
Deswegen bin ich eigentlich ganz froh über den Code, ich habe sowieso noch 4 weiter Aufgaben, andere Rechnungen aber das hat mir jetzt sehr geholfen. Ich werde morgen auf Verständniss zu diesen Aufgaben geprüft und bekomme noch 5 neue Aufgaben die mit <math.h> zu tun haben.

Ich setze mich nun nochmal hin und erstelle jetzt den Pap und den Pseudocode.

Jetzt bin ich froh ein so aktives Forum gefunden zu haben....
das motiviert mich jetzt doch sehr zum selbst ausprobieren... :)

VIELEN DANK
 
Da gibts auch nix zu lernen, das entnimmt man einer Formelsammlung.
Der Lerneffekt besteht darin dass man weiß wo man die Lösung findet.
Der perma Lerneffekt ensteht wenn man es tatsächlich ständig benutzen muss (on the job).

Darum sind Schulen auch völlig ineffizient, statt sich die Pointer ins Hirn zu hämmern, hämmert man sich die Daten rein und vergisst 80-90% davon, eine Woche nach Klausur :D

Darum reißt ein Studium alles mögliche an, geht aber niemals in die Tiefe.
 
Zuletzt bearbeitet von einem Moderator:
Oh man, ich hoffe ich behalte das in der Birne ^^

Ich habe jetzt den Code:

Code:
#include <stdio.h>
#include <math.h>


double calculate_distance(double x1, double y1, double x2, double y2)

{

	double distance;

	double distance_x = x1 - x2;

	double distance_y = y1 - y2;

	distance = sqrt((distance_x * distance_x) + (distance_y * distance_y));

	return distance;

}

int main()
{
	double x1;

	double x2;

	double y1;

	double y2;


	printf("Berechne die die Entfernung zwischen (x1, y1) and(x2, y2).");

	printf("\n\nEnter koordinate for x1:");
	scanf("%lf", &x1);

	printf("\nEnter koordinate for y1:");
	scanf("%lf", &y1);


	printf("\nEnter koordinate for x2:");
	scanf("%lf", &x2);


	printf("\nEnter coordinate for y2:");
	scanf("%lf", &y2);


	printf("Die Entfernung (%lf,%lf) und (%lf,%lf) ist %.2lf\n\n", x1, y1, x2, y2, calculate_distance(x1, y1, x2, y2));


	return 0;

}
aber irgendwie bekomme ich den Pap dazu nicht hin oder stimmt es, wenn ich sage:


Start ->Gebe x1,y1,x2,y2 ein -> Berrechne Distanz=Wurzel sqrt((distanzx*distanzx)-(distanzy*distanzy))->gebe Distanz aus.->Ende.
 
Um den Ablauf eines Programmes besser nachvollziehen zu können, kann man mit einem Debugger Zeile für Zeile durch den Code gehen.
Da du Visual Studio 2013 verwendest, hast du in deiner IDE eh schon einen Debugger integriert.
Damit du debuggen kannst, musst du einen Breakpoint setzen, also die Zeile definieren, bis zu der das Programm ausgeführt werden soll und dann darauf wartet, bis du sagst es soll die nächste Zeile ausführen.
Einen Breakpoint setzt man indem man ganz links am Anfang der entsprechenden Zeile mit der Maus hinklickt, dann wird ein roter Punkt dort angezeigt, der den Breakpoint darstellt.
Dann muss man nur noch das Programm starten und kann dann mit F10 (Step Over) durch jede Zeile gehen und sieht auch welchen Wert die entsprechenden Variablen zu jeder Zeit haben, indem man mit der Maus darüber fährt.
Mit F11 (Step Into) kann man in eine Funktion gehen.
Hier nochmal etwas ausführlicher zum nachlesen: Getting Started with the Debugger

Wenn du das mal mit deinem Code gemacht hast, sollte dir klar sein wie der Ablauf aussieht und ein PAP sollte kein Problem sein.

Gruß
BlackMark
 
Zurück
Oben