Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Problem mit simplem C-Quellcode (https://www.delphipraxis.net/40961-problem-mit-simplem-c-quellcode.html)

Binärbaum 23. Feb 2005 21:18

Re: Problem mit simplem C-Quellcode
 
Naja, wir sind hier aber auch in einem Forum, das sich auf Delphi spezialisiert hat, und da ist sowas ja in Ordnung. Allerdings gehört es nicht zur Lösung des Problems :warn:
@Robert Marquardt:
Nimms mir bitte nicht übel, ich würde es auch lieber in Delphi machen, aber scheinbar haben die in der Uni von Dust Signs kein Delphi.

MfG
Binärbaum

Dust Signs 23. Feb 2005 21:24

Re: Problem mit simplem C-Quellcode
 
Zitat:

Zitat von Binärbaum
@Robert Marquardt:
Nimms mir bitte nicht übel, ich würde es auch lieber in Delphi machen, aber scheinbar haben die in der Uni von Dust Signs kein Delphi

Delphi lernen wir an unserer FH nicht, nur C, C++, Java etc. Alles, nur kein Delphi :(. Da wir uns im ersten und zweiten Semester ausschließlich mit C befassen wird eine Delphilösung wohl kaum genügen ;) (wär mir persönlich auch lieber).

Habs jetzt anders lösen können:

Code:
#include <stdio.h>

int matrosen[30];

int zaehler = 0; //Wenn eine Runde fertig: bei welchem Wert wurde aufgehört zu zählen

int anzahl_matrosen_uebrig = 30;

int MatrosenFuellen() {

  int i; //Schleifendummy

  for (i = 0; i < anzahl_matrosen_uebrig; i++) {

    matrosen[i] = i + 1;

    }

  }

int JederSiebteRaus() {

  int i; //Schleifendummy

  printf("Neue Runde...\n");

  for (i = 0; i < 30; i++) {
 
    if (matrosen[i] != 0) { //Matrose noch da

      zaehler++;

      if (zaehler == 7) {

        zaehler = 0;

        printf("Matrose #%d fliegt...\n", matrosen[i]);

        matrosen[i] = 0; //Matrose "löschen"
      
      anzahl_matrosen_uebrig--; //Ein Matrose weniger

        }
      
   }

    }

  printf("Wir haben bei %d aufgehört zu zählen.\n", zaehler);

  }
 
int LetzterMatrose() {

  int i; //Schleifendummy
 
  for (i = 0; i < 30; i++) {
 
    if (matrosen[i] != 0) {
   
     return matrosen[i];
    
     }
 
    }

  }

int main() {

  MatrosenFuellen(); //Initialisieren

  printf("Lustiges Matrosenfliegen\n");
  printf("========================\n\n");

  while (anzahl_matrosen_uebrig > 1) {

    JederSiebteRaus();

    printf("Noch %d Matrosen übrig\n", anzahl_matrosen_uebrig);

  }

  printf("Übrig ist Matrose #%d\n", LetzterMatrose());

  return 0;

  }
Danke trotzdem für eure Hilfe :)
Dust Signs

Robert Marquardt 24. Feb 2005 05:58

Re: Problem mit simplem C-Quellcode
 
Das mit dem C hab ich irgendwie verpasst.
Da muss man aber nur ein Array statt der TStringList deklarieren und das Delete mit memmove implementieren.
Der Rest des Algorithmus bleibt bestehen.

Chewie 24. Feb 2005 13:26

Re: Problem mit simplem C-Quellcode
 
Inkrementier deinen Zähler doch einfach jedesmal und fürh eine Modulo-<Größe des Arrays>-Operation durch. Dann kriegst du automatisch dein Umklappen hin.
Ein Ringpuffer ist IMHO genauso leicht mit ARrays zu realisieren wie mit verk. Listen.

Luckie 24. Feb 2005 13:47

Re: Problem mit simplem C-Quellcode
 
Für den Algorithmus ist die Sprache doch vollkommen unerheblich. Und wenn man in einem Delphi-Forum fragt, dann sollte man auch damit rechnen, das ganze in Delphi präsentiert zu bekommen. ;)

Dust Signs 24. Feb 2005 13:48

Re: Problem mit simplem C-Quellcode
 
Zitat:

Zitat von Luckie
Für den Algorithmus ist die Sprache doch vollkommen unerheblich. Und wenn man in einem Delphi-Forum fragt, dann sollte man auch damit rechnen, das ganze in Delphi präsentiert zu bekommen. ;)

Was meinst du warum ich in dieser Sparte gepostet hab ;)

Dust Signs

Binärbaum 24. Feb 2005 15:20

Re: Problem mit simplem C-Quellcode
 
Zitat:

Zitat von Luckie
Für den Algorithmus ist die Sprache doch vollkommen unerheblich. Und wenn man in einem Delphi-Forum fragt, dann sollte man auch damit rechnen, das ganze in Delphi präsentiert zu bekommen. ;)

Das mag schon sein und ist ja auch nichts schlechtes. Allerdings gibt es in C keine Komponente TStringList mit den dazugehörigen Methoden/ Prozeduren wie in Delphi. Deshalb war der Code in dem Moment wenig hilfreich.

MfG
Binärbaum

Luckie 24. Feb 2005 15:27

Re: Problem mit simplem C-Quellcode
 
wie schon gesagt, für den reinen Algorithmus sind Sprache und verwendete Komponente vollkommen unerheblich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:41 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz