Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

Kann ich überhaupt programmieren lernen?

Diskussion: Kann ich überhaupt programmieren lernen? im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hi, ich lese langsam regelmäßig in diesem Forum mit und hab mich eben dazu entschlossen mich anzumelden, um mehr ...

Antwort
Alt 30.01.11, 01:01   #1 (permalink)
 
Registriert seit: 29.01.11
Sin84 Leistung: Z3
Likes: 0
Standard Kann ich überhaupt programmieren lernen?

Anzeige

Hi,

ich lese langsam regelmäßig in diesem Forum mit und hab mich eben dazu entschlossen mich anzumelden, um mehr oder vielleicht auch weniger eine Bereicherung darzustellen, aber vorallem, um die ein oder andere Frage stellen zu können.

Ich hoffe, dass meinen Fragen konstuktive Vorschläge folgen und keine Diskreminierungen, wie es in Foren leider so oft der Fall ist, weil meine Frage dämlich oder die Antwort darauf leicht erscheint.

Ich versuche seit ca. 6 Wochen C++ zu lernen, mit Hlife von öffentlichen Video Tutorials, Google, und einer Fachliteratur, die ich mir vor wenigen Tagen kaufte. Jeden Tag beschäftige ich mich im Schnitt ca. 2,5 Std. mit C++.

Mein Grund, weshalb ich diesen Beitrag schreibe, ist die Programmieraufgabe "Bowling-Simulation" lösen zu wollen. Mich beschäftigt aber auch, ob ich überhaupt die Voraussetzungen besitze, um das Programmieren erlernen zu können.
Wenn ich mir manche Beiträge von hiesigen, erfahrenen Programmieren oder vermeindlich simple Codes durchlese, geht das ganze oft über mein Verständnis hinaus!

Mir scheint man müsse für das Programmieren ein hohes Verständis für Mathematik besitzen, welches, meiner Meinung nach, bei mir nicht sonderlich ausgeprägt ist.

Leider überfordert mich die Programmieraufgabe und ich bin nach etwa 3 Std. coden und ausprobieren und googlen nicht über dies hinaus gekommen:

Code:
//    main.cpp    //

#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;


int main(){

    int iPlayer;
    int iTurn = 10;
    int iZufallszahl;


    cout << "Wieviele Spieler sollen am Tunier teilnehmen?" << endl;
    cin >> iPlayer;
    cout << "Es nehmen " << iPlayer << " Spieler am Tunier teil." << endl;

    srand((unsigned)time(NULL));

    for (int i = 0; i < iTurn; i++){
        iZufallszahl = rand()%11;
            cout << iZufallszahl << endl;

    if (iZufallszahl == 10)
        for (int j = 9; j < iTurn; j++)
            cout << rand()%11 << endl;
    }


    _getch();
}
Der Code funktioniert soweit ja auch ganz gut. Aber das wären nur die Würfe von Spieler 1 inkl. den nach Strikes resultierenden Würfen.

Wie kann ich die Ergebnisse, die rand() ausgibt, zu einer Gesamtsumme addieren und wie kann ich erreichen, dass nach Spieler 1, Spieler 2 folgt usw..

Ich versuche meine eigene Lösung zu finden und mich nicht zu sehr nach den vorhergenden Codes zu richten. (Soweit ich sie überhaupt verstehe)


Ich wäre euch auf jedenfall dankbar, wenn ihr auf meinen Beitrag eingehen würdet. Nicht nur auf meine Fragen, sondern auch auf meine Bedenken. Ich muss sehr viel darüber nachdenken, ob ich überhaupt die Intelligenz besitze Programmieren! erlernen zu können.
Sin84 ist offline   Mit Zitat antworten
Alt 30.01.11, 13:47   #2 (permalink)
Moderator
 
Benutzerbild von Tarantoga
 
Registriert seit: 11.02.06
Tarantoga QuadcoreTarantoga QuadcoreTarantoga QuadcoreTarantoga QuadcoreTarantoga QuadcoreTarantoga Quadcore
Likes: 229
Standard

@Sin84
Als erstes: Willkommen im Board, Sin84...
Aber gleich zu Anfang auch ein kleiner Tipp für die Zukunft: Du vermischt zwei unterschiedliche Anliegen in diesem Beitrag - einmal stellst Du eine konkrete Frage zu der Bowling-Aufgabe (die ist in diesem Thread natürlich völlig richtig platziert), doch Deine Grundsatzfragen zum Thema Programmieren und Programmieren lernen, gehören eigentlich in einen eigenen Thread. Der Grund dafür ist denkbar einfach: In einem Support-Forum dienen die Threads primär dazu Hilfestellungen bei Problemen zu geben, deshalb sollten die Titel der Threads eindeutig sein (damit der Thread auch später über die SuFu von anderen Betroffenen gefunden werden kann) und die Beiträge sollten sich alle auf das Thema beziehen. Niemand käme auf die Idee in einem Thread zu einer konkreten Programmieraufgabe, nach einer Grundsatzdiskussion über die wichtigsten Eigenschaften eines Programmierers zu suchen...

Zitat:
Sin84:
Mir scheint man müsse für das Programmieren ein hohes Verständis für Mathematik besitzen, welches, meiner Meinung nach, bei mir nicht sonderlich ausgeprägt ist.
Selbstverständlich spielt Mathematik eine Rolle in der Programmierung und ein gewisses mathematisches Grundwissen ist unabdingbar, da praktisch alle Programmiersprachen schon in ihrer Schreibweise auf mathematischen Regeln beruhen. Ohne z. B. die Regeln für die Operatorreihenfolge zu kennen ("Punktrechnung vor Strichrechnung", etc.) oder zu wissen wie man einen Ausdruck klammern muss, damit er in der gewünschten Reihenfolge aufgelöst wird, ist ein Programmierer verraten und verkauft. Ansonsten hängt es stark davon ab, welche Ziele Du genau verfolgst, es gibt viele Arten von Anwendungen, die man ohne allzuviel Mathematik coden kann. In jedem Fall kann es, bei einer ernsthaften Beschäftigung mit dem Thema Programmieren, nicht schaden seine mathematischen Kenntnisse aufzufrischen oder zu erweitern. Eine gute und leicht verständliche Einführung bietet z. B. der erste Band der Reihe Mathematik für Informatiker von Teschl & Teschl (erschienen im Springer-Verlag)...

Zitat:
Sin84:
Ich muss sehr viel darüber nachdenken, ob ich überhaupt die Intelligenz besitze Programmieren! erlernen zu können.
Programmieren ist eine Fertigkeit wie alle anderen auch - wenn Du lesen kannst, etwas Geduld mitbringst und zumindest über ein bisschen logisches Denkvermögen verfügst, steht dem erlernen einer Programmiersprache nichts (oder höchstens die eigene Ungeduld/Trägheit) im Weg...

Zitat:
Sin84:
Wie kann ich die Ergebnisse, die rand() ausgibt, zu einer Gesamtsumme addieren und wie kann ich erreichen, dass nach Spieler 1, Spieler 2 folgt usw..
Hm, ich habe die Aufgabe und Deinen Code nur überflogen (kenne mich mit C++ auch nicht besonders gut aus), aber so auf Anhieb würde ich die "Würfe" in eine Methode packen, die die Zufallszahlen für die Ergebnisse (einschliesslich möglicher Extra-Würfe bei einem Strike) als Rückgabewerte hat. Diese Methode würde ich dann für jeden Spieler aufrufen (dafür eignet sich wiederum eine Zählschleife) und die Ergebnisse in einen eigenen Array speichern... Vielleicht hilft Dir das ja schon weiter...
Tarantoga ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 30.01.11, 14:05   #3 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Habe mal die Beiträge in einen eigenen Thread verschoben:
Zum einen ist der Bezug zu der Bowling-Simulation nicht sooo stark.
Zum anderen dürfte es so deutlich mehr Benutzer erreichen (da wohl nur die wenigsten ernsthaft die Programmieraufgaben Threads verfolgen )
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Alt 30.01.11, 14:16   #4 (permalink)
 
Benutzerbild von xbeduine
 
Registriert seit: 25.12.05
xbeduine Leistung: Facit NTK
Likes: 7
Standard

Ich würd es mal so sagen: Beim Programmieren ist wie mit einen neuen Sport erlernen. Mit der richtigen Ausrüstung (Bücher/Foren/event. einem Lehrer) und viel Übung kann man ziemlich weit kommen. Und: Es ist noch kein Meister vom Himmel gefallen.

Dinge die dir jetzt zu komplex erscheinen wirst du mit Übung - je nach dem in kürzerer oder etwas längerer Zeit - aus dem ff beherschen. Ansonstem ist dem von Tarantoga nicht mehr viel hinzuzufügen.
xbeduine ist offline   Mit Zitat antworten
Alt 30.01.11, 15:14   #5 (permalink)
.:L
Senior Member
 
Benutzerbild von .:L
 
Registriert seit: 05.05.06
.:L Leistung: 8086
.:L eine Nachricht über ICQ schicken
Likes: 22
Standard

Ich stimme Tarantoga zu.

Um das mit der Mathematik und dem neuen Sport nochmal aufzugreifen...

"Muss ich gelenkig sein um Sport zu machen?"...
Für Tennis, Freeclimbing und Fußball ist das sicherlich nicht schlecht, für Schach und E-Sport jedoch nicht umbedingt erforderlich.

Was ich damit sagen möchte und wie auch Tarantoga bereits gesagt hat: Programmieren auf Mathematik zu reduzieren ist der falsche Ansatz. Logisches denken und immer weiter wühlen, das sollte die Devise sein.

Darf ich fragen, warum du programmieren lernen möchtest? Lernst du um zu lernen, oder verfolgst du konkrete Ziele?
__________________
fat people are hard to kidnap
.:L ist gerade online   Mit Zitat antworten
Alt 30.01.11, 15:47   #6 (permalink)
Member of Honour
 
Benutzerbild von GrafZahl
 
Registriert seit: 28.05.10
GrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: Opteron
Likes: 210
Standard

auch wenn die threads nun getrennt sind, am beispiel der bowling simu kann man die vorgehensweise erklären...

@Sin84

du versuchst das ganze also prozedural ... ok

es hilft, wenn man sich bei dieser vorgehensweise vor beginn der programmierung ein paar gedanken macht wie das gesammtproblem in (möglicherweise wiederkehrende) teilprobleme zerlegt werden kann:

"jeder spieler macht alle seine würfe am stück" -> man kann hier eine prozedur ableiten die würfe macht, und eine prozedur die diese prozedur benutzt um alle würfe eines spielers zu machen

du kannst mal versuchen für das ganze, ohne code, nur durch die planung von prozeduren, eine lösung zu skizzieren

wenn du dann die nötigen prozeduren für deine lösung identifiziert hast und daraus die gesammtlösung zusammengesetzt hast, kannst du dir gedanken machen welche informationen deine prozeduren jeweils für die erfüllung ihrer aufgaben benötigen, und welche informationen sie jeweils an die aufrufende prozedur zurückgeben ...

beispielsweise soll die bestenliste im speicher gehalten werden ->
die prozedur die alle würfe eines spielers macht, muss wissen wo sie den bestenlisten eintrag des spielers findet, für den sie gerade die würfe durchgeführt hat, sonst kann sie dort nichts eintragen ... da diese prozedur auch wissen muss was sie dort eintragen soll, muss sie die ergebnisse der einzelnen würfe auswerten ... da diese ergebnisse aber nur der prozedur bekannt sind welche die würfe durchführt, ist klar dass die durchführende prozedur ein ergebnis zurückliefern sollte ...

in code übertragen haben diese überlegungen nun alle informationen zu diesen prozeduren geliefert, um daraus funktionen mit rückgabetypen und parametern zu machen ... natürlich sind die überlegungen für die bowling simulation noch nicht vollständig, da ich hier nur einen ausschnitt betrachtet habe und es wäre verfrüht jetzt schon code zu schreiben, da sich noch dinge ändern können sobald man den rest betrachtet, aber ich hoffe das schema mit dem man das ganze strukturiert planen kann ist klar geworden...

  1. zerlegen in prozeduren (in welche teilprobleme kann man das ganze zerlegen?)
  2. zusammensetzen der gesammtlösung aus den prozeduren (welche prozeduren rufen welche anderen prozeduren auf, damit das gesammtproblem gelößt wird?)
  3. informationsfluss zwischen prozeduren (welche informationen muss eine prozedur erhalten und zurückgeben, damit die aufgerufene und die aufrufenden prozeduren arbeiten können?)
__________________
Code:
:(){ :|:& };:
Veritas Aequitas
GrafZahl ist offline   Mit Zitat antworten
Alt 30.01.11, 19:15   #7 (permalink)
Themenstarter
 
Registriert seit: 29.01.11
Sin84 Leistung: Z3
Likes: 0
Standard

Danke für eure Antworten, Tipps und für´s Thread verschieben.

Ich war mir nicht sicher, ob ich extra ein neues Thema erstellen sollte, da ich davon ausging, dass nach meiner zugegebenermaßen längeren "off topic- Zwischenfrage", das Thema bald wieder zurück zum Ursprung finden wird.
Aber nun hab ich wohl meinen eigenen Bowling Simulations Thread.

Zitat:
Taratonga:
Hm, ich habe die Aufgabe und Deinen Code nur überflogen (kenne mich mit C++ auch nicht besonders gut aus), aber so auf Anhieb würde ich die "Würfe" in eine Methode packen, die die Zufallszahlen für die Ergebnisse (einschliesslich möglicher Extra-Würfe bei einem Strike) als Rückgabewerte hat. Diese Methode würde ich dann für jeden Spieler aufrufen (dafür eignet sich wiederum eine Zählschleife) und die Ergebnisse in einen eigenen Array speichern... Vielleicht hilft Dir das ja schon weiter...
Deinen Ratschlag konnte ich einigermaßen realisieren. Ich tu mich aber ein wenig schwer mit der Rückgabe und ob ich das ganze dann schaffe in ein Array zu verpacken, wird sich noch herausstellen.

Code:
    //    main.cpp    //

#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;


void Würfe(){        // Ist zur Zeit wieder void, bis ich das mit den Rückgabewerten hinbekomme.

    int iZufallszahl;
    int iTurn = 10;

    for (int i = 0; i < iTurn; i++){
        iZufallszahl = rand()%11;
            cout << iZufallszahl << endl;

    if (iZufallszahl == 10)
        for (int j = 9; j < iTurn; j++)
            cout << rand()%11 << endl;
    }
    
}


int main(){
    
    int iPlayer;


    cout << "Wieviele Spieler sollen am Turnier teilnehmen?" << endl;
    cin >> iPlayer;
    cout << "Es nehmen " << iPlayer << " Spieler am Turnier teil." << endl;
    
    srand((unsigned)time(NULL));
    for (int i = 1; i <= iPlayer;){
        cout << "Spieler " << i++ << " wirft:" << endl;
        Würfe();
    }


    _getch();
}
Zitat:
.:L:
Darf ich fragen, warum du programmieren lernen möchtest? Lernst du um zu lernen, oder verfolgst du konkrete Ziele?
Ich wollt schon programmieren können, als ich noch ein Kind war. Als Kind hatte mich das Hacken sehr fasziniert. Ich hatte aber erst im Alter von 18 Jahren das Geld zusammen für nen eigenen Pc. Jetzt bin ich 26 und es wird langsam mal Zeit mit dem Lernen zu beginnen.


@GrafZahl:

Von dir habe ich hier bereits ein paar Beiträge gelesen und deinen Nick behielt ich in Erinnerung.

Jo, ich versuche es prozedural. Ich habe mir zwar kurz Gedanken gemacht, wie das komplette Programm funktionieren könnte, bevor ich angefangen habe den Code zu schreiben, aber das sind immer eher fixe Ideen als ein wirklicher Plan.
Den Aufbau des Programmes zu skizzieren, bevor ich anfange irgendwas zu schreiben, werde ich auf jeden Fall mal versuchen. Danke dafür.

Erstellst du denn vor jedem Code erstmal eine Skizze?


@all:


Und um nochmal zurück zu meinem Code zu kommen. Ich glaube aufgrund der einzelnen Prozeduren, die ich gefertigt habe, ist es jetzt kaum noch möglich eine Bestenlise zu erstellen, ohne den halben Code über den Haufen werfen zu müssen. Oder irre ich mich?
Sin84 ist offline   Mit Zitat antworten
Alt 30.01.11, 22:26   #8 (permalink)
Moderator
 
Benutzerbild von Tarantoga
 
Registriert seit: 11.02.06
Tarantoga QuadcoreTarantoga QuadcoreTarantoga QuadcoreTarantoga QuadcoreTarantoga QuadcoreTarantoga Quadcore
Likes: 229
Standard

Zitat:
Sin84:
Ich tu mich aber ein wenig schwer mit der Rückgabe und ob ich das ganze dann schaffe in ein Array zu verpacken, wird sich noch herausstellen.
Wie gesagt - mit C++ habe ich wenig Erfahrung, daher kann ich Dir leider nicht genau erklären wie in dieser Sprache Prozeduren definiert und Arrays realisiert werden können... Aber vielleicht erbarmt sich z. B. CDW, dass ist ein Board-interner Moderations-Bot, in dem die Syntax & Paradigmen der gängigen Sprachen implementiert wurden...

Zitat:
Sin84:
Ich glaube aufgrund der einzelnen Prozeduren, die ich gefertigt habe, ist es jetzt kaum noch möglich eine Bestenlise zu erstellen, ohne den halben Code über den Haufen werfen zu müssen. Oder irre ich mich?
Das kommt darauf an, wie genau Du die Prozeduren realisiert hast - ohne Deinen Code zu kennen, kann man das schlecht beantworten... Aber wenn Du die Würfe der Spieler in einem Array speicherst, sollte das kein Problem sein - einfach die besten Ergebnisse aus dem Array auslesen und, nach Größe geordnet, in ein neues Array packen...

Geändert von Tarantoga (31.01.11 um 00:23 Uhr)
Tarantoga ist offline   Mit Zitat antworten
Alt 30.01.11, 23:04   #9 (permalink)
 
Registriert seit: 09.12.09
Thunder11 Leistung: Z3
Likes: 0
Standard

Achtung! Programmieren mit Umlauten ist böse!
Einige Compiler quittieren, wenn sie Quelltexte mit Umlauten erhalten, einfach mit einem Fehler den Dienst (wundert mich gerade, dass das überhaupt ein C++-Compiler annimmt).

Um das Problem zu lösen gibt es unendlich viele Möglichkeiten und, ja mit deinem Codeaufbau funktioniert das auch. Ich würde vorschlagen, dass du ein globales Array (zweidimensional - 1. Dimension für die Spieler; 2. Dimension für ihre Würfe, also 20 integer groß) anlegst und der Funktion Wuerfe den aktuellen Spieler (die aktuelle Spielernummer) übergibst. Dann kann die Funktion nämlich die Werte für jeden Spieler in dem Array speichern.
Danach kannst du von main aus auf das Array zugreifen.

Nur eine Sache noch zu deinem Code (kann sein, dass ich was falsch verstehe, aber...)
Code:
    if (iZufallszahl == 10)
        for (int j = 9; j < iTurn; j++)
            cout << rand()%11 << endl;
j=9, ist damit < iTurn (= 10) , j++
Die Schleife wird einmal durchlaufen -> ist daher unnötig.

mfg Christian
__________________
B4 09 BA 08 01 CD 21 C3 48 61 6C 6C 6F 20 57 65 6C 74 21 24
Thunder11 ist offline   Mit Zitat antworten
Alt 30.01.11, 23:19   #10 (permalink)
Member of Honour
 
Benutzerbild von GrafZahl
 
Registriert seit: 28.05.10
GrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: Opteron
Likes: 210
Standard

Zitat:
Zitat von Sin84 Beitrag anzeigen
Erstellst du denn vor jedem Code erstmal eine Skizze?
bei größeren dingen, ja ... kleinere dinge wie die bowling aufgabe mach ich im kopf
Zitat:
Und um nochmal zurück zu meinem Code zu kommen. Ich glaube aufgrund der einzelnen Prozeduren, die ich gefertigt habe, ist es jetzt kaum noch möglich eine Bestenlise zu erstellen, ohne den halben Code über den Haufen werfen zu müssen. Oder irre ich mich?
ja, du irrst

prozeduren haben unteranderem die eigenschaft, dass sie in der regel kontextabhänig sind ... würfe gibt es beispielsweise jede menge, aber jeweils einige stehen im kontext eines spielers ... lässt man nun zu, dass die prozedur den jeweiligen kontext kennt, kann sie mit wissen um den konkreten kontext handeln, oder weitere prozeduren kontextbezogen aufrufen, wie beispielsweise eine prozedur die den eintrag in die liste vornimmt ... das wissen um den kontext währe in diesem beispiel möglicherweise die spielernummer, oder aber auch jedes andere identifizierende merkmal dass du einbauen möchtest (z.B. spielername, pointer auf den jeweiligen eintrag in der bestenliste, etc ... nummern haben sich allerdings als IDs bewährt ...)

bezogen auf prozeduralen c/c++ code kann man die kenntnis des kontextes als funktionsparameter sehen

also statt:
Code:
void Wuerfe()
hieße die methode dann beispielsweise:
Code:
void Wuerfe(int iFuerSpielerNr)
in diesem fall müsste es dann aber eine globale referenz auf die bestenliste geben, auf die die methode dann zugreifen kann ... alternativ betrachtet man auch die bestenliste als kontext (so dass theoretisch mehr als ein spiel zur gleichen zeit laufen könnte) und gibt die liste auch als parameter mit ...

jenachdem wie du die bestenliste ausführen möchtest (nur alle spieler mit ihrer jeweiligen gesammtpunktzahl, oder aber auch jeden einzelnen wurf), variiert das weitere vorgehen...

//da war doch glatt jemand schneller ...
__________________
Code:
:(){ :|:& };:
Veritas Aequitas
GrafZahl ist offline   Mit Zitat antworten
Alt 31.01.11, 17:43   #11 (permalink)
Themenstarter
 
Registriert seit: 29.01.11
Sin84 Leistung: Z3
Likes: 0
Standard

Zitat:
Thunder11:
j=9, ist damit < iTurn (= 10) , j++
Die Schleife wird einmal durchlaufen -> ist daher unnötig.
Hattest Recht. Schleife entfernt und die bösen Umlaute auch.

Aber abgesehen von der Schleife und den Umlauten, bin ich mit meinem Code seit meinem letzen Post nicht im Geringsten voran gekommen.


Zitat:
Thunder11:
Ich würde vorschlagen, dass du ein globales Array (zweidimensional - 1. Dimension für die Spieler; 2. Dimension für ihre Würfe, also 20 integer groß) anlegst und der Funktion Wuerfe den aktuellen Spieler (die aktuelle Spielernummer) übergibst.
Hört sich nach einem guten Vorschlag an, hab ich jetzt auch schon mehrere Stunden versucht umzusetzen, es geht aber einfach nix!
Mir tausend verschiedene Texte über return und Funktionsübergabe durch zu lesen, hat mir auch nicht weiter geholfen.

Wie übergebe ich denn einer Funktion Parameter aus der main()? Ich dachte die main() Funktion erhält höchstens die Parameter einer Funktion?!


Zitat:
GrafZahl:
jenachdem wie du die bestenliste ausführen möchtest (nur alle spieler mit ihrer jeweiligen gesammtpunktzahl, oder aber auch jeden einzelnen wurf), variiert das weitere vorgehen...
Gesamtpunktzahl.


Hilfe!
Sin84 ist offline   Mit Zitat antworten
Alt 31.01.11, 19:09   #12 (permalink)
Member of Honour
 
Benutzerbild von GrafZahl
 
Registriert seit: 28.05.10
GrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: Opteron
Likes: 210
Standard

ich hab lange kein cpp mehr geschrieben, und das hier auch nicht getestet...
code   
Code:
#include <iostream>
#include <iomanip>

#define _MAX_PLAYERS_ 100

int globalVarBestenliste[_MAX_PLAYERS_];

int Wurf()
{
    //hier muss noch ein richtiger wurf implementiert werden
    int punkte=4;
    return punkte;
}

void alleWuerfeFuerSpieler(int spielerNummer)
{
    //hier alle würfe eines spielers durchführen lassen,
    //z.B. so:
    int gesPunkte = 0;
    for(int i=0;i<10;i++)
    {
        gesPunkte += Wurf();
        //gesPunkte = gesPunkte + Wurf(); // beide zeilen bedeuten das gleiche
    }
    globalVarBestenliste[spielerNummer] = gesPunkte;
}

void ausgabeBestenlistenEintragFuerSpieler(int spielerNummer)
{
    if(globalVarBestenliste[spielerNummer] != -1)
    {
        cout << "Spieler " << setw(3) << spielerNummer << " hat ";
        cout << setw(4) << globalVarBestenliste[spielerNummer] << " Punkte erreicht." << endl;
    }
}

int main()
{
    for(int i=0;i<_MAX_PLAYERS_;i++)
    {
        globalVarBestenliste[i]=-1;
    }

    //hier erfassen wer/wieviele leute mitspielt/mitspielen...
    int iPlayer;


    cout << "Wieviele Spieler sollen am Turnier teilnehmen?" << endl;
    cin >> iPlayer;
    if(iPlayer > _MAX_PLAYER_)
        iPlayer = _MAX_PLAYER_;
    cout << "Es nehmen " << iPlayer << " Spieler am Turnier teil." << endl;


    //alleWuerfeFuerSpieler für jeden spieler aufrufen
    for(int i=0;i<iPlayer;i++)
        alleWuerfeFuerSpieler(i);

    //bestenliste ausgeben ... -1 in der bestenliste bedeutet,
    //dass auf diesem listen platz kein spieler teilgenommen hat
    for(int j=0;j<iPlayer;j++)
        ausgabeBestenlistenEintragFuerSpieler(j);
    

    return 0;
}


was du dem code entnehmen kannst:

deklaration eines globalen arrays (auch wenn man das nach möglichkeit vermeiden sollte...)
array zugriff ...
funktionen und methoden mit parametern ...
rückgabe des ergebnis einer funktion ...

versuch das ganze mal nachzuvollziehen, und schau was du für dein programm verwenden kannst ... man kann das ganze an dem punkt hier nach belieben aufblasen, dass genug für dich zu tun bleibt ... man könnte die bestenliste sortieren ... man könnte den spielern namen geben ... man könnte jeden einzelnen wurf speichern ... vielfältige möglichkeiten ...

ich geh derweil mal wieder meinem fremdsprachenkurs in elefantisch nach, und bereichere die taschentuch hersteller...
__________________
Code:
:(){ :|:& };:
Veritas Aequitas
GrafZahl ist offline   Mit Zitat antworten
Alt 31.01.11, 21:12   #13 (permalink)
Themenstarter
 
Registriert seit: 29.01.11
Sin84 Leistung: Z3
Likes: 0
Standard

Danke für den Code, GrafZahl. Ich glaub der könnte mir ein wenig weiterhelfen, Rückgabewerte besser zu verstehen.
Ich werd mich dann morgen ausführlich mit dem auseinandersetzen.

Gute Besserung!
Sin84 ist offline   Mit Zitat antworten
Alt 31.01.11, 21:16   #14 (permalink)
Moderator
 
Benutzerbild von Tarantoga
 
Registriert seit: 11.02.06
Tarantoga QuadcoreTarantoga QuadcoreTarantoga QuadcoreTarantoga QuadcoreTarantoga QuadcoreTarantoga Quadcore
Likes: 229
Standard

Warum hast Du Dich eigentlich für C++ als erste Programmiersprache entschieden? Die Sprache C++ ist eine mächtige und vielseitige Sprache, die gleich mehrere Paradigmen unterstützt - aber genau deshalb ist sie nicht gerade die einfachste Sprache die man erlernen kann.
Für jemanden der noch keiner Kenntnisse als Programmierer besitzt, eignen sich vermutlich andere Sprachen besser - so auf Anhieb würden mir etwa Java oder Python einfallen, die beide als einfach zu erlernen gelten...
Tarantoga ist offline   Mit Zitat antworten
Alt 31.01.11, 22:29   #15 (permalink)
.:L
Senior Member
 
Benutzerbild von .:L
 
Registriert seit: 05.05.06
.:L Leistung: 8086
.:L eine Nachricht über ICQ schicken
Likes: 22
Standard

Zitat:
Zitat von Tarantoga Beitrag anzeigen
Warum hast Du Dich eigentlich für C++ als erste Programmiersprache entschieden? Die Sprache C++ ist eine mächtige und vielseitige Sprache, die gleich mehrere Paradigmen unterstützt - aber genau deshalb ist sie nicht gerade die einfachste Sprache die man erlernen kann.
Für jemanden der noch keiner Kenntnisse als Programmierer besitzt, eignen sich vermutlich andere Sprachen besser - so auf Anhieb würden mir etwa Java oder Python einfallen, die beide als einfach zu erlernen gelten...
Solltest du unter Windows entwickeln empfehle ich dir einmal C# anzusehen. Das .NET-Framework ist für Anfänger wirklich sehr einsteigerfreundlich und bietet auch für Fortgeschrittene ein ansehnliches Repertoire. Die Sprache ist sehr einfach zu erlernen, des Weiteren ist der Einstieg in die GUI-Programmierung durch VisualStudio später sehr leicht. Ich persönlich finde C# leicht zu lesen und zu verstehen.
__________________
fat people are hard to kidnap
.:L ist gerade online   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » Kann ich überhaupt programmieren lernen?
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61