Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Brauche Hilfe bei der Bool Funktion

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 ]
000
27.01.2019, 11:19 Uhr
fastlife



Hallo Leute,

Ich bin am verzweifeln, den ich bekomme immer eine Error, wenn ich meine Bool Funktion für diese Code erstelle. Deswegen frage ich euch, ob ihr mir dabei helfen könnt, eine passendes Bool Funktion für diesen Code zu erstellen. Ich bin absoluter Neuling in diesem Gebiet.

Meine code:


C++:
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

void gib_array_aus(int a[], int);

int main() {
const int ANZ_ElEM = 15;

srand(2);

int arr[ANZ_ElEM];
for (int i = 0; i < ANZ_ElEM; i++)
{
    arr[i] = rand() % (ANZ_ElEM + 1);
}
gib_array_aus(arr, ANZ_ElEM);

bool is =(arr, ANZ_ElEM);
if (is)
{
    cout << "Das Array ist aufsteigend sortiert." << endl;
}
else {
    cout << "Das Array ist nicht aufsteigend sortiert." << endl;
}

system("Pause");
return 0;
}
void gib_array_aus(int a[], int n)
{
cout << "{";
for (int i = 0; i < n; i++)
{
cout << a[i];
if (i < n - 1)
cout << ",";
}
cout << "}" << endl;
}
bool ist_array_aufsteigend_sortiert(int a[], int n)
{
for (int i = 1; i < n; i++)
{
if (a[i - 1] < a[i])
return false;
}
}



Ich würde mich auf eure Hilfe sehr freuen

P.S Mir ist bewusst das bei ,, bool is " der Funktionsname fehlt, aber wenn ich den Funktion Name eingebe kommt da auch immer ein error ... ."

Dieser Post wurde am 28.01.2019 um 11:10 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.01.2019, 12:52 Uhr
f.-th.




Zitat von fastlife:
Hallo Leute,

...


P.S Mir ist bewusst das bei ,, bool is " der Funktionsname fehlt, aber wenn ich den Funktion Name eingebe kommt da auch immer ein error ... ."


Wie lautet der Fehler? Hier bitte kompletten Text der ersten Fehlermeldung zeigen.

Dann den Quellcode hier formatiert zeigen - nutze die Forums-Tags links neben dem Editierfeld

Ein Leerzeile zwischen den Funktionen fördert die Übersicht.



Anleitung zum weiterschreiben deines Codes:
Wie viele Funktionen hat dein Code?
Werden die Funktionen in der richtigen Reihenfolge im Quelltext erwähnt? <== siehe auch die Fehlermeldung, wenn du den Funktionsnamen eingibst!

MfG
f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.01.2019, 14:54 Uhr
fastlife




C++:
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

void gib_array_aus(int a[], int);

int main() {
const int ANZ_ElEM = 15;

srand(2);

int arr[ANZ_ElEM];
for (int i = 0; i < ANZ_ElEM; i++)
{
arr[i] = rand() % (ANZ_ElEM + 1);
}
gib_array_aus(arr, ANZ_ElEM);

bool is =(arr, ANZ_ElEM);
if (is)
{
cout << "Das Array ist aufsteigend sortiert." << endl;
}
else {
cout << "Das Array ist nicht aufsteigend sortiert." << endl;
}

system("Pause");
return 0;
}
void gib_array_aus(int a[], int n)
{
cout << "{";
for (int i = 0; i < n; i++)
{
cout << a[i];
if (i < n - 1)
cout << ",";
}
cout << "}" << endl;
}
bool ist_array_aufsteigend_sortiert(int a[], int n)
{
for (int i = 1; i < n; i++)
{
if (a[i - 1] < a[i])
return false;
}
}




Diesen Fehlercode bekomme ich raus:

1>cusers\vivre\source\repos\project2\project2\quelle.cpp(51): warning C4715:

"ist_array_aufsteigend_sortiert": Nicht alle Codepfade geben einen Wert zurück.

1>Die Erstellung des Projekts "Project2.vcxproj" ist abgeschlossen -- FEHLER
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.01.2019, 18:54 Uhr
f.-th.



Ich hatte noch mehr empfohlen

Es gibt auch andere Varianten den Quellcode darzustellen. Mir ist diese relativ übersichtlich:


C++:
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

void gib_array_aus(int a[], int);

int main()
{
    const int ANZ_ElEM = 15;

    srand(2);   // funktioniert dies bei mehreren Versuchen?

    int arr[ANZ_ElEM];
    for (int i = 0; i < ANZ_ElEM; i++)
    {
        arr[i] = rand() % (ANZ_ElEM + 1);
    }
    gib_array_aus(arr, ANZ_ElEM);

    bool is =(arr, ANZ_ElEM);    // Hier hast du dich sauber ausgetrixt
    if (is)
    {
        cout << "Das Array ist aufsteigend sortiert." << endl;
    }
    else
    {
        cout << "Das Array ist nicht aufsteigend sortiert." << endl;
    }

    system("Pause");
    return 0;
}
    
void gib_array_aus(int a[], int n)
{
    cout << "{";
    for (int i = 0; i < n; i++)
    {
        cout << a[i];
        if (i < n - 1)
            cout << ",";
    }
    cout << "}" << endl;
}

bool ist_array_aufsteigend_sortiert(int a[], int n) // So wie du es geschrieben hast brauchst du folgende Zeilen nicht => siehe Warnung
{
    for (int i = 1; i < n; i++)
    {
        if (a[i - 1] < a[i])
            return false;
    }
}




Du willst aber eigentlich das der Code die letzten Zeilen auch durchläuft - also schreib deinen Code entsprechend. Die oben fehlende Zeile bekommst du nun wohl hin?

Ohne Vorschau - ich hoffe das passt so.

MfG
f.-th.

Dieser Post wurde am 27.01.2019 um 19:06 Uhr von f.-th. editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
27.01.2019, 19:56 Uhr
fastlife




Zitat:
Ich hatte noch mehr empfohlen


Tut mir leid. Ich bin noch ein bissen überfordert und bin auch erst seit einem Tag angemeldet.


Zitat:
Du willst aber eigentlich das der Code die letzten Zeilen auch durchläuft - also schreib deinen Code entsprechend


leichter gesagt als getan, denn ich habe erst paar Stunden Unterricht in C++ an der Uni gehabt und war ein bissen überfordert. Also im Endeffekt weis ich nicht, genau wie noch was machen soll .


Damit du versteht was ich genau mit Code machen möchte, habe ich jetzt einfach die Aufgabestellung von der Uni hier mal hingeschrieben. Vlt verschafft es dir bei meinen Code Gewirr einen besseren Überblick.

Aufgabe:

1. Erstellen einer vector <int> Liste bzw. eines standard int Arrays der Länge ANZ_ELEM
-> 1.3 von Zufallszahlen, jeweils aus dem Bereich [0 ... ANZ_ELEM]

2. Sortierung der Liste per gewähltem Sortierverfahren (in aufsteigender Ordnung)

3. Überprüfung der korrekten Sortier-Reihenfolge der vom Algorithmus ausgegebenen Liste

vielen dank noch mal

Dieser Post wurde am 27.01.2019 um 19:59 Uhr von fastlife editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
27.01.2019, 21:29 Uhr
f.-th.



Woher hast du deinen hier gezeigten Quelltext?
Wollte dich schon beim ersten Beitrag fragen, warum dieser C++ Stil?

Laut Aufgabe gehe ich davon aus das du eine modernere Variante des Quelltextes abliefern sollst?

Warst du in der Vorlesung? Hast du schon irgend etwas von Containern in C++ gehört?

MfG
f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
27.01.2019, 22:36 Uhr
fastlife




Zitat:
Woher hast du deinen hier gezeigten Quelltext?


Diesen Quelltext/Code habe ich aus der Vorlesung. Der Dozent hat uns vorgezeigt wie der Code am Ende aussehen soll und ich dummerchen 😅habe es geschaft beim Abschreiben dieses Codes Fehler zu machen... .


Zitat:
Wollte dich schon beim ersten Beitrag fragen, warum dieser C++ Stil?


Ich habe diesen C++ Stil von meinen Dozenten übernommen, aber er sagte es wäre ok, wenn der Still bei der Abgabe des Code auch anders aussieht.


Zitat:
Laut Aufgabe gehe ich davon aus das du eine modernere Variante des Quelltextes abliefern sollst?


Das kann ich dir leider nicht sagen, da ich ja noch ein Neuling in diesem Gebiet bin 😅


Zitat:
Warst du in der Vorlesung? Hast du schon irgend etwas von Containern in C++ gehört?


Ja war in der Vorlesung 😅 . Nein höre zum ersten mal von C++ Containern.

Mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
27.01.2019, 23:24 Uhr
f.-th.



Okay, dann tun wir mal so als ob du nur fehlerhaft abschreibst.

Du hast dann aber schon etwas von Funktionen gehört oder gelesen.
Schau in dem Kapitel noch mal nach wie ihr das da "getextet" habt.

Bei

C++:
  
gib_array_aus(int a[], int n)
{


sind die drei betreffenden Zeilen richtig.

und bei

C++:
is =(arr, ANZ_ElEM);  // hier fehlt was - dein Compiler will in den folgenden Zeilen wissen wie ihr sortiert habt?
if (is)
{


hast du weiter oben beim Abschreiben eine Zeile vergessen und hier die 2. Zeile nur teilweise.

Gib Gas, sonst ist der Zug beim Programmieren für dich abgefahren.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
28.01.2019, 08:49 Uhr
fastlife




C++:
gib_array_aus(int a[], int n)


Ich denke ja, aber wenn du schon fragst, dann muss es ja falsch sein .Ich habe aber keine Idee, wie man jetzt was ändern soll.


C++:
gib_array_aus(int a[], int n)


wenn ich es so lasse, dann funktioniert der Code ohne die Bool Funktion.


C++:
is ist_array_aufsteigend_sortiert =(arr, ANZ_ElEM);


Wenn ich den Compiler so definiere, bekomme ich auch ein Error raus genau so wie bei der Bool Funktion.


Zitat:
Gib Gas, sonst ist der Zug beim Programmieren für dich abgefahren.


Ich weiß, aber ich habe momentan so viel um die Ohren und mich gleichzeitig auch auf meine Uni Prüfungen vorbereiten :/ .
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
28.01.2019, 09:41 Uhr
ao

(Operator)



Zitat von fastlife:


C++:
is ist_array_aufsteigend_sortiert =(arr, ANZ_ElEM);


Wenn ich den Compiler so definiere, bekomme ich auch ein Error raus genau so wie bei der Bool Funktion.


Weil es in der falschen Reihenfolge steht, das ist durcheinander und syntaktischer Unsinn. Richtig ist es so:

C++:
bool is = ist_array_aufsteigend_sortiert (arr, ANZ_ElEM);


Das gibt dann immer noch einen Fehler, weil der Compiler an der Stelle nicht weiß, was "ist_array_aufsteigend_sortiert" sein soll - es wird erst weiter unten definiert. Du musst die Funktion vorher bekannt machen, so wie du es mit "gib_array_aus" gemacht hast.

Und als letztes solltest du dich noch um die Warnung "Nicht alle Codepfade geben einen Wert zurück" kümmern. Das ist zwar "nur" eine Warnung, aber eine, die dir Ärger macht, wenn du sie ignorierst.

Was den Code-Stil angeht: Der ist spätestens seit dem Standard C++11 (verabschiedet 2011, daher der Name) völlig veraltet, wird aber an Universitäten beharrlich weiter gelehrt. Vermutlich aus dem katholischsten aller Gründe: "das hamwer immer so gemacht".

Eigentlich ist das gar kein C++, sondern bestenfalls "C mit Klassen". Und es tut so langsam fast körperlich weh, mit anzusehen, wie sich Jahr für Jahr die Studenten mit denselben unnötigen Problemen herumschlagen müssen, obwohl die Lösungen dafür auf der Hand liegen - ihre Lehrer müssten sich nur mal ein paar Tage lang selber weiterbilden.

Aber damit würden sie ja zugeben, dass ihre Lehre bislang suboptimal war (gelinde gesagt), und vielleicht gibts ein Unfehlbarkeitsdogma ja nicht nur in der katholischen Kirche.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ C / C++ (ANSI-Standard) ]  


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: