C++ Aufgabe programmieren
-
Leute ich habe eine aufgabe und weiß nicht wie ich des programmieren soll, könnt ihr mir da weiterhelfen?
Schreiben Sie Programm mit einer Funktion pruefen(x, y, n), die den Wert 1 zurückgibt, wenn
beide Zahlen x und y zwischen 0 und n - 1 liegen (inklusive n - 1). Ansonsten soll der Wert 0 zurückgegeben werden. Alle Zahlen sollen vom Typ int sein. Rufen Sie Ihre Funktion im Hauptprogramm
einmal auf.
-
@badboy sagte in C++ Aufgabe programmieren:
Leute ich habe eine aufgabe und weiß nicht wie ich des programmieren soll, könnt ihr mir da weiterhelfen?
Schreiben Sie Programm mit einer Funktion pruefen(x, y, n), die den Wert 1 zurückgibt, wenn
beide Zahlen x und y zwischen 0 und n - 1 liegen (inklusive n - 1). Ansonsten soll der Wert 0 zurückgegeben werden. Alle Zahlen sollen vom Typ int sein. Rufen Sie Ihre Funktion im Hauptprogramm
einmal auf.Woran hapert es denn?
- an der Funktion
- an dem Vergleich
- was ist ein Hauptprogramm
- an Allem
-
Schau Dir zuerst den Befehlssatz von C++ an.
Dann schreib doch erst mal in Pseudocode z.B.:
Wenn x und y kleiner 0, verlasse Funktion mit Wert 0.
Wenn x kleiner/gleich n-1 und y kleiner/gleich n-1, verlasse Funktion mit Wert 1
ansonsten verlasse Funktion mit Wert 0.Na ja, mal so auf die schnelle...
-
eher an allem wie kann ich sowas programmieren? ich hab des mal versucht aber bin mir nicht sicher ob des funktioniert bzw des geht nicht
#include <iostream>
int pruefen(int x, int y, int n, int a[]){
if (x>0 && y > 0 && x< a[n-1] && y< a[n-1]){ return 1; } else return 0;
}
int main()
{
int a[] = { 1, 2, 3, 4, 5};
int n= 5,j,i;
std::cin >> i;
std::cin >> j;
std::cout <<pruefen( i,j,n,a);
}
-
@Helmut-Jakoby was kann ich da verändern damit es funtioniert?
#include <iostream>
int pruefen(int x, int y, int n, int a[]){
if (x>0 && y > 0 && x< a[n-1] && y< a[n-1]){ return 1; } else return 0;
}
int main()
{
int a[] = { 1, 2, 3, 4, 5};
int n= 5,j,i;
std::cin >> i;
std::cin >> j;
std::cout <<pruefen( i,j,n,a);
}
-
@badboy sagte in C++ Aufgabe programmieren:
Schreiben Sie Programm mit einer Funktion pruefen(x, y, n)
@badboy sagte in C++ Aufgabe programmieren:
int pruefen(int x, int y, int n, int a[])
Da passt doch schon die erste Zeile nicht. Was soll
a
sein? Das kann doch niemals von dir so programmiert worden sein, wieso solltest du anhand der Aufgabenstellung dasa
erfunden haben? Irgendwo (aus der Musterlösung der Folgeaufgabe?) Code abzuschreiben funktioniert halt nicht. Besonders wenn man nicht versteht, was man tut.
-
@SeppJ ich dachte ich bezeichne [n-1] als a , ist des falsch wenn ja wie soll ich des machen ?
-
@badboy sagte in C++ Aufgabe programmieren:
@SeppJ ich dachte ich bezeichne [n-1] als a , ist des falsch wenn ja wie soll ich des machen ?
Wo ist denn davon die Rede, dass n ein Array sei? Das ist einfach eine weitere Zahl. Das steht so auch in der Aufgabe: „Alle Zahlen sollen vom Typ
int
sein.“
-
@badboy sagte in C++ Aufgabe programmieren:
ist des falsch
Ja
wenn ja wie soll ich des machen ?
So wie in der Aufgabe gestellt.
Du hast nur die drei Werte von x, y und n sowie die 0.
-
@DirkB ok und wie kann ich es jetzt machen also wie würdest du den code ändern so das es funktioniert ?
-
@badboy sagte in C++ Aufgabe programmieren:
@DirkB ok und wie kann ich es jetzt machen also wie würdest du den code ändern so das es funktioniert ?
Du musst das a weg lassen
In der Funktion und beim Aufruf.Und dir nochmal überlegen, was "zwischen 0 und n - 1 liegen (inklusive n - 1)." bedeutet.
Bei welcher Zahl ist bei n=5 noch die Bedingung erfüllt (3, 4, 5)?
-
Ah, da hat also jemand C++ in der Uni
Schau dir mal diesen Link an
https://www.cplusplus.com/doc/tutorial/functions/C++ is bei mir schon ein paar Tage her, allerdings würde ich wie @Helmut-Jakoby vorgehen.
Guck dir an was die Aufgabe sagt, dann schreibst du dir auf einen Zettel was du für "Teilaufgaben hast" um die Gesamtaufgabe zu lösen.
Du musst wissen wie du eine Funktion schreiben kannst(siehe Link oben), dann musst du dir die Logik überlegen wie die Funktion arbeitet.
Bist du dir sicher das du 3 Zahlen eingeben sollst? Also x,y und n sind alle gewünscht in der Funktion?
Hätte jetzt geschätzt, dass x und y zwei Zahlen sind die du mit in die Funktion einkippst, n ist eine Zahl die -1 der größeren der beiden Zahlen ist.
Wenn x und y zwischen 0 und n -1 liegen, wird 1 zurück gegeben (return), sonst 0 (auch als Wert und nicht als NULL).
-
Wäre n einfach die größere der beiden Zahlen - 1, dann wäre die Bedingung immer erfüllt, solange x und y nicht negativ sind.
-
Ist zumindest schon mal ein besserer Algorithmus
-
@Ashtari sagte in C++ Aufgabe programmieren:
Ah, da hat also jemand C++ in der Uni
Ich hoffe nicht. Wie kommst du zu der Annahme?
-
@Jockelx sagte in C++ Aufgabe programmieren:
@Ashtari sagte in C++ Aufgabe programmieren:
Ah, da hat also jemand C++ in der Uni
Ich hoffe nicht. Wie kommst du zu der Annahme?
Klingt für mich nach einer Aufgabe aus meiner Uni.
Und mein C++ Kurs an der Uni ist erst 3 Jahre her, daher realistisch das es noch Universitäten gibt wo das eine mögliche Aufgabe wäre.
-
@Ashtari ja ist von der Uni
-
Ok, in der Aufgabenstellung ist bereits die Signatur der Funktion vorgegeben
pruefen (x, y, n)
, dazu sollen alle Zahlen vom Typint
sein.D.h.
int pruefen(int x, int y, int n);
ergibt sich damit schon von selbst. Da man sinnvoller Weise die Zahlen x, y, n auch noch innerhalb der Funktion konstant haben sollte, ist die folgende Variante besser.
int pruefen(const int x, const int y, const int n);
Dein Aufgabe ist es nun, den Code der Funktion zu schreiben, so dass 1 zurückgegeben wird, wenn beide Zahlen x und y zwischen 0 und n - 1 liegen (inklusive n - 1) und sonst immer 0.
Dann sollst Du noch eine
main
Funktion schreiben, die mindestens einmalpruefen
aufruft.Wo bitte ist Dein Verständnisproblem?
-
@john-0 ich komm irgendwie nicht drauf wie man das macht könntest du mir zeigen wie du das programmieren würdest also die aufgabe und vllt noch erklären was du gemacht hast. danke
-
@badboy sagte in C++ Aufgabe programmieren:
if (x>0 && y > 0 && x< a[n-1] && y< a[n-1]){
wenn du da das a (und die eckigen Klammern) entfernst, hast du es doch schon fast.