Forum: Compiler & IDEs Programmieren in C


von Charly__ (Gast)


Lesenswert?

Hey Leute,
ich bin Studentin und muss dort in C programmieren. Ich bin eine 
absolute Niete in Informatik und muss es "einfach nur bestehen". Ich 
habe vier Aufgaben die ich brauche um überhaupt zu Prüfung zugelassen zu 
werden. Die erste Aufgabe habe ich schon soweit wie ihr hier seht.
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <math.h>
4
5
/*
6
 * 
7
 */
8
9
10
int main(int argc, char** argv) {
11
12
    printf("Hey, bitte Schrittlaenge angeben:\n");
13
    int xmin = scanf("xmin"); //parameter
14
    int xmax = scanf("xmax");
15
    int sl = scanf("x");
16
    int y1 = 0; //fix
17
    int x1 = -20;
18
    int y2 = 50;
19
    int x2 = 30;
20
    float vm = 1.5;
21
    float vl = 3.0;
22
23
    //plausibilität
24
    if (xmin < 0 || // Land hat negative y-Koordinaten, weil Grenze-Land/Wasser y=0 ist
25
            xmax < 0 || // Wasser hat positive y-Koordinaten
26
            sl < 0) // Es macht keinen Sinn, über das Ziel hinaus zu rennen)
27
    {
28
        return (EXIT_FAILURE);
29
    }
30
31
    int i;
32
    printf("%Schrittweite | %Weg A | %Zeit | %Weg B | %Zeit2 | %SummeWeg | %SummeZeit\n" );
33
    for (i = xmin; i < xmax; i = i + sl) {
34
35
        int x0 = i;
36
        // Berechnung der Längen mit Pythagoras
37
        double l1 = sqrt((x0 - x1)*(x0 - x1) + y1 * y1);
38
        double l2 = sqrt((x2 - x0)*(x2 - x0) + y2 * y2);
39
        // Berechnung der Zeiten
40
        double t1 = l1 / vm;
41
        double t2 = l2 / vl;
42
        double tg = t1 + t2;
43
        // Tabellenausgabe
44
45
        printf("%12i | %5i | %5i | %5i | %5i | %5i | %5i\n", i, l1, l2, t1, t2, l1 + l2, tg);
46
    }
47
    printf("Fertig");
48
    return (EXIT_SUCCESS);
49
}
Die Aufgabenstellung ist diese:

1 2. Praktikumsaufgabe:  „Prinzip von Fermat“
2 Einführung 1.1. Baywatch (oder das Prinzip von Fermat) Ein 
Rettungsschwimmer am Punkt A (0, -20 m) am Strand will eine ertrinkende 
Person am Punkt B (50 m, 30 m) im Wasser retten. Um jene Strecke zu 
ermitteln, über die ein Rettungsschwimmer in der kürzest möglichen Zeit 
von A nach B kommen kann, lässt man ein Programm die benötigte Zeit für 
verschiedene Strecken berechnen. Die Strecke ist durch die Koordinaten 
der Punkte A (x1, y1) , B (x2, y2) und den Punkt P (x0 , 0 ) gegeben. 
Die Punkte A und B sind fix, den Punkt x0 lässt man in einem Bereich 
xmin bis xmax mit einer Schrittweite von x wandern und berechnet jeweils 
die für diese Strecke benötigte Zeit. Die Lage der Punkte A und B ist 
durch (0, -20 m) und (50 m, 30 m) fix gegeben, xmin, xmax und x soll im 
Dialog gewählt werden können. Die Geschwindigkeiten betragen: Meer v = 
1,5 m/s, Sandstand v = 3,0 m/s
3 Programmieraufgaben
3.1 Entwickeln in Ansi-C Entwickeln Sie ein Programm in C, dass nach 
Eingabe eines Startpunktes, eines Endpunktes und einer Schrittweite eine 
Tabelle ausgibt und die minimale Zeit iterativ berechnet. 2.1.1 Die 
Eingaben sind generell auf Plausibilität zu prüfen. 2.1.2 Stellen Sie 
die Plausibilitätsüberlegungen für xmin, xmax und x selbstständig 
auf. 2.1.3 Geben Sie eine formatierte Tabelle an der Konsole aus.
Tabelle 1: Beispiel der Ausgabe mit einer Schrittweite von 3,4 m, einen 
X_min von 10 m und einem X_max von 57,60 m

Ich brauche ganz dringend eure Hilfe!
Wie erstelle ich eine Tabelle, damit die mir ausgegeben wird ?
Könnt ihr mir da Helfen?
Ich kann wirklich so gar nichts :x

Danke im Vorraus!!!
Ich bin euch für alles was mir Hilft dankbar

Chary

: Bearbeitet durch Moderator
von Jay (Gast)


Lesenswert?

Die Aufgabe ist von Karlheinz Zeiner, Programmieren mit C: Aufgaben und 
Lösungen kopiert. Die Lösung stehen seit ca. 15 Jahren im Internet.

Ich würde sagen, nichts anderes als getrolle.

von Oliver S. (oliverso)


Lesenswert?

Jay schrieb:
> Ich würde sagen, nichts anderes als getrolle.

Ich würde sagen, es reicht nicht mal zum googlen.

Das Studienfach würde mich aber schon interessieren...

Oliver
P.S. Die Lösung der ersten Aufgabe ist ja auch nicht selbstgemacht. Kann 
dir der unbekannte Helfer nicht auch den Rest machen?

von Karl H. (kbuchegg)


Lesenswert?

Oliver S. schrieb:

> P.S. Die Lösung der ersten Aufgabe ist ja auch nicht selbstgemacht. Kann
> dir der unbekannte Helfer nicht auch den Rest machen?

Was heisst den Rest?
Das Programm, wo auch immer sie es her hat, ist an und für sich 
vollständig, strotzt aber nur so von trivialen Fehlern. Diese Fehler 
sehen allerdings gewollt aus. Jemand mit auch nur rudimentären 
Kentnissen von C im Schwierigkeitsgrad der ersten 5 Vorlesungen sollte 
eigentlich keine Schwierigkeiten haben, die zu beheben.

Charly, es tut mir leid. Aber wenn du diese Fehler nicht beheben kannst, 
dann hat es auch keinen Sinn zur Prüfung zugelassen zu werden. Denn du 
wirst dort mit Pauken und Trompeten ganz einfach durchfallen. Wenn du 
mit dieser Vorlage kein compilier- und lauffähiges Programm hinkriegst, 
dann kannst du dir "einfach nur Bestehen" abschminken. Das wird nichts. 
Das ist wie jemand, der zu einer Englisch Klausur antreten will, aber 
die Formen für "to do" für die einzelnen Personen nicht hinkriegt (I am, 
You are, He/She/It is, We are, ...) Du hättest wenigstens am Anfang des 
Semesters deine Übungsaufgaben selbst machen sollen.

> Die erste Aufgabe habe ich schon soweit wie ihr hier seht.
Nein, hast du nicht. Du hast die irgendwo kopiert. Das ist eine ganz 
andere Geschichte und hat mit "ich habe sie gemacht" nicht das Geringste 
zu tun.

: Bearbeitet durch User
von Alex W. (a20q90)


Lesenswert?

Charly__ schrieb:
> 01.12.2015 14:25:
>     Bearbeitet durch Moderator

Was hat der Moderator denn am Text geändert?

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Charly__ schrieb:
> ich bin Studentin und muss dort in C programmieren. Ich bin eine
> absolute Niete in Informatik und muss es "einfach nur bestehen".

Wenn Du nicht in der Lage bist, diese Aufgaben selbst zu lösen, hast Du 
es auch nicht verdient, zur Prüfung zugelassen zu werden und sie ggf. 
sogar zu bestehen. Ein Studium ist keine Spaßveranstaltung, sondern soll 
unter anderem die Spreu vom Weizen trennen. Es ist ohnehin schon 
ziemlich schlimm, welche Leute heutzutage einen Hochschulabschluss 
erhalten haben, und es gibt keinen Grund, dies auch noch zu fördern.

Also entweder erledigst Du Deine Aufgaben selbst oder solltest ganz 
ernsthaft in Dich gehen und überlegen, ob ein Studium das Richtige für 
Dich ist.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Alex W. schrieb:
> Was hat der Moderator denn am Text geändert?

Die Code-Tags nachgerüstet.  Warum interessiert dich das so brennend?

von Bitteschön (Gast)


Lesenswert?

1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <math.h>
4
5
int main(int argc, char** argv) {
6
7
    float schrittweite;
8
    printf("Hey, bitte Schrittweite angeben:\n");
9
    scanf("%f",&schrittweite);
10
11
    float xmin;
12
    printf("Hey, bitte xmin angeben:\n");
13
    scanf("%f", &xmin);
14
15
    float xmax;
16
    printf("Hey, bitte xmax angeben:\n");
17
    scanf("%f", &xmax);
18
19
    float x0;
20
    float x1 = 0;
21
    float y1 = -20;
22
    float x2 = 50;
23
    float y2 = 30;
24
    float vm = 1.5;
25
    float vl = 3.0;
26
27
    //plausibilität
28
    if (schrittweite <= 0 || xmin < 0 || xmax < 0 || xmin > xmax )
29
    {
30
        printf("Falsche Eingabe");
31
        return EXIT_FAILURE;
32
    }
33
    printf("Schritt | Weg A | Zeit A| Weg B | Zeit B| SummeWeg | SummeZeit\n");
34
    for (x0 = xmin; x0 <= xmax; x0 = x0 + schrittweite) {
35
36
        // Berechnung der Längen mit Pythagoras
37
        double tmin = 0;
38
        double l1 = sqrt((x0 - x1)*(x0 - x1) + y1 * y1);
39
        double l2 = sqrt((x2 - x0)*(x2 - x0) + y2 * y2);
40
        // Berechnung der Zeiten
41
        double t1 = l1 / vm;
42
        double t2 = l2 / vl;
43
        double tg = t1 + t2;
44
45
        printf("%7.2f | %.2f | %.2f | %.2f | %.2f | %8.2f | %.2f\n", x0, l1, t1, l2, t2, l1 + l2, tg);
46
    }
47
    printf("Fertig");
48
    return EXIT_SUCCESS;
49
}

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Oliver S. schrieb:
> Ich würde sagen, es reicht nicht mal zum googlen.
> Das Studienfach würde mich aber schon interessieren...

Klingt wie Wirtschaftsinformatik.

Also weder Ahnung von Wirtschaft/BWL noch von Informatik.

von Rolf M. (rmagnus)


Lesenswert?

Jörg W. schrieb:
> Alex W. schrieb:
>> Was hat der Moderator denn am Text geändert?
>
> Die Code-Tags nachgerüstet.  Warum interessiert dich das so brennend?

Naja, wenn ein Moderator an fremden Postings rumeditiert, fragt man sich 
schon, warum es verändert wurde und was die Änderung ist. Ein kurzer 
Hinweis würde nicht schaden.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rolf M. schrieb:
> warum es verändert wurde und was die Änderung ist

Dass wir nichts inhaltlich daran ändern, sollte klar sein.  Wenn ich
etwas dazu zu sagen habe, dann werde ich eine Antwort schreiben,
wenn der Beitrag gegen die Forenregeln verstößt, wird er gelöscht.
Die Änderungen, die wir (in der Regel ohne weitere Notiz, dass wir
was geändert haben, steht ja sowieso drunter) vornehmen, sind daher
editorieller Art, also Formatierung korrigieren, manchmal grob
entstellende Tippfehler beseitigen etc.

Ganz selten ändern wir auch mal mehr, dann lass' ich auch einen
Vermerk fallen, bspw. wenn jemand in einem fachlich ansonsten
wertvollen Posting zusätzlich noch auf einen Trollbeitrag eingeht,
der inzwischen aber gelöscht worden ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.