Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 31
  1. #1
    aka. Kyros Avatar von Dr. XMas
    Registriert seit
    02.08.2008
    Beiträge
    469

    Frage Brauche hilfe bei der Umsetzung von meinem "Übungsprogramm"

    Hey liebe Com ,
    ich habe vor kurzem mit C++ angefanegn und hab mir auch das Galileo Computig - Einstieg in C++ bestellt(ist leider noch nicht angekommen ).
    Ich wollte als Übung ein kleines Programm schreiben(Konsolenanwendung), dass wenn man eine Stadt aus der Auswahlliste als Anfangspunkt und eine andere Stadt als Endpunkt ausgewählt hat, ddas das Programm dir die Entfernung gibt (vom Anfangspunkt bis zum Endpunkt halt).
    Den Code den ich bis jetzt habe :
    Code:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int anfangspunkt, endpunkt;
    
        cout<<"Bitte waehlen Sie eine dieser Staedte als Anfangspunkt aus"<< endl;
        cout<<"1.Berlin"<< endl;
        cout<<"2.Hamburg"<< endl;
        cout<<"3.Stuttgart"<< endl;
        cout<<"4.Muenchen"<< endl;
        cout<<"5.Koeln"<< endl;
        cout<<"6.Mainz"<< endl;
        cout<<"7.Kiel"<< endl;
        cout<<"8.Bonn"<< endl;
        cout<<"9.Essen"<< endl;
        cout<<"10.Frankfurt"<< endl;
        cout<<"11.Dortmund"<< endl;
        cout<<"12.Dresden"<< endl;
        cin>> anfangspunkt;
        
        cout<<"Bitte waehlen Sie eine dieser Staedte als Endpunkt aus"<< endl;
        cout<<"1.Berlin"<< endl;
        cout<<"2.Hamburg"<< endl;
        cout<<"3.Stuttgart"<< endl;
        cout<<"4.Muenchen"<< endl;
        cout<<"5.Koeln"<< endl;
        cout<<"6.Mainz"<< endl;
        cout<<"7.Kiel"<< endl;
        cout<<"8.Bonn"<< endl;
        cout<<"9.Essen"<< endl;
        cout<<"10.Frankfurt"<< endl;
        cout<<"11.Dortmund"<< endl;
        cout<<"12.Dresden"<< endl;
        cin>> endpunkt;
    In dem Code kann man halt auswählen welche Stadt man als Anfangs und welche Stadt man als Endpunkt haben will.
    Als ich dann aber mit der if funktion anfangen wollte ist mir aufgefallen das es sehr lange dauern würde für jede Entfernung eine If funktion zu schreiben.
    Meine if funktion (unvollständig):
    Code:
    if(anfangspunkt == 1 && endpunkt == 1)
        {
             cout<<"Die Entfernung zwischen Berlin und Berlin betraegt 0 km"<< endl;           
                        }
                        if (anfangspunkt == 1 && endpunkt == 2)
                        {
                                         cout<<"Die Entfernung zwischen Berlin und Hamburg betraegt 288 km"<< endl;
                                         }
                                         if(anfangspunkt == 1 && endpunkt == 3)
                                         {
                                                         cout<<"Die Entfernung zwischen Berlin und Stuttgart betraegt 633 km"<< endl;
                                                         }
                                                         if(anfangspunkt == 1 && endpunkt == 4)
                                                         {
    Meine Frage ist jetzt: Kann man die if funktion nicht verkürzen ?


    BM-> 1:3:0


  2. #2
    \x7f Avatar von Salimox
    Registriert seit
    03.03.2008
    Beiträge
    107

    Standard

    Im Grunde wüsste ich nicht wie du das großartig verkürzen kannst, da das programm die entfernung zwischen den städten ja sonst nicht wissen kann nach deinem quellcode?

  3. #3
    aka. Kyros Avatar von Dr. XMas
    Registriert seit
    02.08.2008
    Beiträge
    469

    Standard

    Wenn ich die Entfernungen reintuen würde könnte man das dann irgendwie verkürzen ?


    BM-> 1:3:0


  4. #4
    \x7f Avatar von Salimox
    Registriert seit
    03.03.2008
    Beiträge
    107

    Standard

    Ich würde mich maßlos überschätzen wenn ich jetzt meinen würde ich hab ne optimalere lösung..

    Ich hätte es genauso wie du gemacht. Warten wir mal ab ob opCodez oder blackberry ihren Senf dazu geben :-P

  5. #5
    aka. Kyros Avatar von Dr. XMas
    Registriert seit
    02.08.2008
    Beiträge
    469

    Standard

    Trotzdem Danke
    Dann warte ich mal auf OpCodez und BlackBerry


    BM-> 1:3:0


  6. #6

    Registriert seit
    17.06.2009
    Beiträge
    559

    Standard

    Das was du da vor hast läuft auf Codeverdopplung hinaus und das sollte einem immer zu denken geben.
    Du könntest dir z.B. ein array von structs anlegen mit Start, Ende und Entfernung oder ein Multidimensionales array benutzen, dann besteht die Ausgabe nur noch aus einem indizierten Zugriff.

  7. #7
    aka. Kyros Avatar von Dr. XMas
    Registriert seit
    02.08.2008
    Beiträge
    469

    Standard

    Könntest du mir bischen erläutern was die Funktion von array ist ?


    BM-> 1:3:0


  8. #8
    Stanley Jobson Avatar von Bonkers
    Registriert seit
    01.02.2010
    Beiträge
    735

    Standard

    Mach doch einfach ein großes (Mehrdimensionales) Array mit allen Entfernungen?

    Code:
    #include <stdio.h>
    
    int main()
    {
    	int a[5][5] =   {
    			 {1,2,3,4,5},
    			 {1,2,3,4,5},
    			 {1,2,3,4,5},
    			 {1,2,3,4,5},
    			 {1,2,3,4,5},
    			};
    
    int start;
    int ziel;
    
    printf("Bitte geben Sie den Start ein!\n");
    scanf("%i", &start);
    printf("Bitte geben Sie das Ziel ein!\n");
    scanf("%i", &ziel);
    
    
    
    printf("%i km!", a[start][ziel]);
    }
    Ausgabe:

    [user:~]> ./dist
    Bitte geben Sie den Start ein!
    2
    Bitte geben Sie das Ziel ein!
    4
    5 km!
    Edit:

    Kurze Erklärung wie das Array funktioniert:

    Das Array ist eine Liste, in deinem Fall eine Mehrdimensionale. Das heisst einfach: Stell dir einen Tisch mit 5 Schubladen vor. Du kannst in jede Schublade Zahlen eingeben, und ausgeben lassen. In deinem Fall ist jetzt in jeder Schublade wieder ein solcher Tisch. (Etwas blöd vorzustellen, aber sollte gehen).
    Das erste

    {1,2,3,4,5}
    Ist deine erste Schublade in dem Tisch, der in Schublade 1 des ersten Tisches ist. (Also Stadt 1). Jetzt musst du dort nur die Entfernungen zu jeder Stadt hineinschreiben.
    Beispiel:

    {Hier kommt die Entfernung zur ersten Stadt rein, also 0, da du von Stadt 1 zu Stadt 1 fahren würdest. , Hier die Entfernung von Stadt 1 zu 2. ,usw.,4,5}
    Geändert von Bonkers (11.10.2010 um 12:13 Uhr)

    Blackberry: der eine typ ist danach gestorben
    Bonkers: Echt?
    Blackberry: jep

  9. #9
    Stanley Jobson Avatar von Bonkers
    Registriert seit
    01.02.2010
    Beiträge
    735

    Standard

    Könntest du mir bischen erläutern was die Funktion von array ist ?
    entf[(start > ende) ? start : ende][(start > ende) ? ende: start]
    Das passt nicht ganz zusammen. Er ist Anfänger, du solltest deinen Code auch rudimentär erklären Meiner ist nicht ganz so schön, aber hoffentlich verständlicher...

    Gayfags
    Warst du zu viel auf 4chan oder was

    Blackberry: der eine typ ist danach gestorben
    Bonkers: Echt?
    Blackberry: jep

  10. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    blackberry (11.10.2010)

  11. #10
    aka. Kyros Avatar von Dr. XMas
    Registriert seit
    02.08.2008
    Beiträge
    469

    Standard

    Danke für die Super Lösund OpCodez
    Hab da noch ne Frage hier zu :
    int max = sizeof(staedte) / sizeof(std::string);
    Was macht das "/" ?
    Also was hat das Zeichen für ne Funktion?


    BM-> 1:3:0


Seite 1 von 4 123 ... LetzteLetzte

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 15.06.2009, 14:40
  2. Brauche hilfe bei FoxyProxy -.-"
    Von nOyzZ im Forum Anwendungssoftware
    Antworten: 2
    Letzter Beitrag: 25.07.2008, 11:42
  3. WAS HALTET IHR VON MEINEM "NEUEN" PC?
    Von 0XYGeN im Forum Hardware
    Antworten: 37
    Letzter Beitrag: 27.01.2008, 03:29

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •