Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » Dringend, schnelle Hilfe benötigt

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] [ 2 ] > 3 < [ 4 ]
020
16.11.2009, 01:06 Uhr
Bruder Leif
dances with systems
(Operator)



Zitat von Pamina:
versteh prinzipiell sowieso nicht warum ich denn kurs für biotechnologie machen muss...


Wundert mich auch, in der Bioinformatik wird eher auf Perl und Python gesetzt. Google mal nach "bioperl" und "biopython"... allerdings hat C++ schon von der rohen Geschwindigkeit her ordentliche Vorteile. Bei einem meiner letzten Arbeitgeber haben wir die Buerocomputer in einen kleinen Cluster verwandelt, bei dem ein Programm im Hintergrund DNA-Staenge sequenziert bzw. die Rohdaten der Sequenzierung ausgewertet hat. Und da waren wir schon froh, ein schnelles System zu haben


Zitat von Pamina:
wenn ich nach dem debuggen dein programm starte, dann kommt "geben sie eine zahl ein" die geb ich ein und dann beendet sich das programm ohne was weiteres auszugeben,
woran liegt das jetzt schon wieder?


Das liegt daran, dass zwar was ausgegeben wird, das Fenster danach aber sofort wieder geschlossen wird. Entweder Du startest das Programm von der Konsole aus (DOS-Box), oder Du fuegst noch ein getchar();getchar(); vor dem return 0; ein. Dann wartet das Programm auf ein letztes Enter, bevor es sich beendet.
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.

Dieser Post wurde am 16.11.2009 um 01:06 Uhr von Bruder Leif editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
021
16.11.2009, 01:15 Uhr
0xdeadbeef
Gott
(Operator)


In C++ hab ich das angefangen, weil der Anfangscode ebenfalls C++ war, und ich sah keine sinnvolle Möglichkeit, hier Templates zu benutzen. Einfach nur zum Spaß mach ich das nur, wenn ich gerade zum Spaß code.

Ob man Haskell (oder Perl!) nun für übersichtlicher als C++ hält, ist im Zweifel eine Frage der Gewohnheit. Und Regexes sind hier schon irgendwie geschummelt!

Was die scanf-Geschichte angeht - scanf zu benutzen, ist von sich aus kein Fehler, und die _s-Funktionen zu benutzen, solltest du dir tunlichst verkneifen; sie funktionieren nur im Microsoft-Compiler. Es wäre ein Heidengefummel, die wieder rauszurupfen, wenn dein Code mal auf ner anderen Plattform (oder auch nur mit nem anderen Compiler) laufen soll.

Neben scanf ist in Visual C++ ab 2005 die halbe C-Standardbibliothek als unsicher gekennzeichnet, weil sie seinerzeit auf Performance getrimmt wurde und häufig davon ausgeht, dass der Programmierer weiß, was er tut. strcpy erzeugt zum Beispiel die selbe Warnung, bezeichnenderweise mit einem Verweis auf die microsoft-spezifische strcpy_s-Funktion und nicht etwa die Standardfunktion strncpy, die das selbe macht. Wie dem auch sei, bei scanf war die Begründung, wenn ich das richtig im Kopf habe, dass die Funktion nicht typsicher ist - ob das, was im Format-String steht, mit den Paramtern übereinstimmt, ist nicht sicherzustellen.

Natürlich kann man auch C++ schreiben und std::cin benutzen, womit man sich das Wespennest erspart.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
022
16.11.2009, 01:30 Uhr
Pamina



ach herje ich fühl mich als ob ich chinesisch lerne....
wobei das wahrscheinlich einfacher gewesen wäre...


aber immerhin jetzt funktioniert das programm und ich habs sogar glaub ich verstanden

printf ist mein cout
und scanf mein cin

oh man naja immerhin, Ha vermasselt, aber was gelernt und das ist ja eigneltihc die hauptsache!

und hey bei biophyton ist immerhin ein bio enthalten, das hat mehr mit biotech zu tun *g*

tja und an dna stränge hab ich noch gar nicht gedacht...
na dann bin ich ja mal gespannt wieviel ich später programmieren muss...

ich danke euch ganz herzlich und warte gespannt auf die nächste HA , die ich wesentlich früher komplett bearbeite!


ich werd nu mal ins bettchen huschen morgen um 8 uni...
DANKE DANKE

lg pamina
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
023
16.11.2009, 01:42 Uhr
0xdeadbeef
Gott
(Operator)


Was Biologie und C++ angeht: www.seqan.de/
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 16.11.2009 um 01:44 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
024
16.11.2009, 01:43 Uhr
Bruder Leif
dances with systems
(Operator)



Zitat von 0xdeadbeef:
Einfach nur zum Spaß mach ich das nur, wenn ich gerade zum Spaß code.


Das kann ich genau so unterschreiben


Zitat von 0xdeadbeef:
Ob man Haskell (oder Perl!) nun für übersichtlicher als C++ hält, ist im Zweifel eine Frage der Gewohnheit. Und Regexes sind hier schon irgendwie geschummelt!


Gewohnheit ist genau das richtige Stichwort. Mir ging es konkret auch nur darum, mal zu zeigen, dass es halt auch andere Sprachen gibt. Fuer Einsteiger wuerde ich davon nur Tcl empfehlen, evtl. noch Python wegen der Lesbarkeit und der Verbreitung in der Biologie. Perl wird zwar auch viel eingesetzt, aber da ist Mandarin wirklich leichter zu lernen...


Zitat von Pamina:
Ha vermasselt, aber was gelernt und das ist ja eigneltihc die hauptsache!


Das ist die richtige Einstellung! Und ins Bett kriech ich jetzt auch, um sieben will mein Grosser wieder in den Kindergarten...

A guads Naechdle allweil
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
025
16.11.2009, 01:49 Uhr
0xdeadbeef
Gott
(Operator)


Oh, Perl ist toll für kleine Scripte, die mit Text umgehen müssen, aber für große Projekte würde ich es nicht im (Alb-)Traum einsetzen. Python halte ich nach wie vor für eine der widerlichsten Sprachen, die je entworfen wurden, aber das habe ich ja schon an vielen Stellen ausführlich erläutert.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
026
16.11.2009, 01:58 Uhr
Pamina



*g*


das zum Thema schlafen....

jetzt hat mich das doch glatt gewurm, weil wir <stdio.h> noch nicht hatten, hab das ganze jetzt so umgeschrieben, das staune oh wunder nur wörter drin vorkommen, die ich kenn hat auch geklappt, sieht jetzt so aus :


C++:
/*


#include <iostream>
using namespace std;


int enthaeltSieben(int d)
{
    while (d != 0) {
        if (d % 10 == 7)   return 1; /* 7 gefunden! */

        d /= 10; /* Restliche Ziffern pruefen */
    }
    
    return 0;
}

int main()
{
    int d;

    cout <<"Bitte Zahl eingeben: " << endl;

    cin >> d;

    if (d % 7 == 0) {
        cout <<""<< d << " ist durch 7 teilbar und wird uebersprungen." << endl;

        getchar();getchar();
        return 0;
    }

    if (enthaeltSieben(d)) {
       cout <<" enthaelt die Ziffer 7 und wird uebersprungen."<< endl;

    getchar();getchar();
        return 0;
    }

    cout <<""<< d << " ist weder durch 7 teilbar noch enthaelt es eine 7." <<endl;
    getchar();getchar();
    return 0;
}





nur was ich nicht verstehe, wenn ich mehr als 10 ziffern eingebe, dann erkennt er das nicht
seid ihr noch da und wisst woran das liegt???

oder schon auf dem weg zum kindergarten *g*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
027
16.11.2009, 03:28 Uhr
0xdeadbeef
Gott
(Operator)


<stdio.h> ist ein alter C-Header; in C++ benutzt man eher die Funktionalität aus <iostream> oder, wenn man den alten C-Kram wirklich benutzen will, <cstdio>.

Was die 10 Ziffern angeht - auf einer 32bit-Maschine kann ein int üblicherweise Werte von -2³¹ bis 2³¹-1 annehmen. Das heißt, die höchste Zahl, die du so eingelesen kriegst, ist 2.147.483.647. Mit einem unsigned int geht es hoch bis 2³²-1, also 4.294.967.295. unsigned long long ist zwar strikt kein Teil des ISO-C++-Standards, aber alle mir bekannten Compiler unterstützen den Typ. Damit dürftest du im MSVC bis auf 2^64-1 kommen, also 18.446.744.073.709.551.615. Wenn das nicht reicht, wirst du eine spezielle Bibliothek bemühen müssen, beispielsweise GMP. Obwohl ich meine Zweifel habe, dass jemand ein Spiel "Böse Sieben" so lange durchhalten würde.

Dabei ist wichtig zu wissen, dass die Größen der Typen nicht in Stein gemeißelt sind; es ist lediglich gesichert, dass

sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)

genau so wie

sizeof(float) <= sizeof(double) <= sizeof(long double)

bei den Fließkommatypen. Heute ist sizeof(int) üblicherweise entweder 4 oder 8 (Byte, also 32 oder 64 bit respektive), kann auf embedded-Architekturen (mit denen du in Biologie wahrscheinlich eher selten etwas zu tun haben wirst) auch mal 2 oder 1 sein. Wenn du Typen fester Breite brauchst...naja, es gibt einen standardisierten Weg dafür (in TR1), der so aussieht:

C++:
#include <cstdint>

// ...

std::tr1::int32_t vier_byte_integer;


...allerdings kann der Microsoft-Compiler das noch nicht. Der hat dafür eigene Typen, also läuft das ganze auf ein etwas ekelhaftes Präprozessorfest hinaus.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 16.11.2009 um 03:37 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
028
16.11.2009, 10:52 Uhr
Pamina



ah ok danke!

ja solange hällt wohl keiner das spiel durch, aber es hieß dass die zahl halt beliebig lang sein soll, aber beliebig ist damit ja dann durch int begrenzt, von daher.

und nen fehlerabfang (bei der eingabe, z.b. buchstabe eingegeben oder so) sollen wir sowieso erst aber der zweiten ha machen.
von daher wäre das programm so wohl richtig gewesen.
bin ma gespannt auf die 2. ha.

naja wünsche nen schönen tag
lg pamina
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
029
16.11.2009, 11:44 Uhr
0xdeadbeef
Gott
(Operator)


Begrenzt ist es spätestens durch die Speichergröße der Maschine. Gut, das ist in der Regel weit jenseits der Kapazität eines ints, aber ich gehe stark davon aus, dass mit "beliebig lang" in diesem Fall "passt in einen int, ist sonst aber unbegrenzt" gemeint ist.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] > 3 < [ 4 ]     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: