Mal wieder eine Aufgabe
-
Servus miteinander, da ihr mir letztes mal so toll geholfen habt, als ich eine Aufgabe nicht hinbekommen habe, dachte ich, ich frag euch nun auch wieder nach Hilfe.
Hab wieder neue Aufgaben, eine davon lautet:
"... "Habt ihr ein paar Denkanstöße?
mfG
-
Was genau kriegst du nicht hin?
-
Bubblesort
-
Schreibe mal die Funktionssignaturen fuer die einzelnen Schritte hin!
-
Ich häng momentan noch bei der ersten Funktion. "Die Größe des Arrays soll als Konstante definiert werden."
Weiß nicht genau wie das hinbekomme..
-
...
-
Hmm, erste Funktion:
"..das ein von Ihnen definiertes Array mit beliebigen ganzen
Zahlen füllt.."void arrayEinlesen(int array[10]) { array[10] = { {3,1,8,5,7,8,5,3,6,2} }; }
-
...
-
Sorry, so sollte es funktionieren:
int arrayEinlesen() { int array[10] = {3,1,8,5,7,8,5,3,6,2}; }
-
Müssen wir nicht. Denke, er sollte sich jemanden suchen, der ihm für jeweils 50€ immer die Aufgaben erledigt.
-
Lieber 1000€ pro Aufgabe.
Danke für die Hilfe Herr Moderator.
-
Benjoo #1 schrieb:
Sorry, so sollte es funktionieren:
int arrayEinlesen() { int array[10] = {3,1,8,5,7,8,5,3,6,2}; }
Klar funktioniert das. Aber nicht in deinem Sinn.
Denn die Werte bekommst du so nicht aus der Funktion heraus.Hier kannst für "beliebige ganze Zahlen" auch "zufällige ganze Zahlen" nehmen.
-
Benjoo #1 schrieb:
Lieber 1000€ pro Aufgabe.
Danke für die Hilfe Herr Moderator.So bitte hier nícht nicht fragen oder die angebotenen 1000€ für die Lösung
auch raustun!
-
Lassen wirs mit der Aufgabe, ich bekomme die nicht gebacken..
Danke an DirkB, für die Hilfe.
Hab ne andere Aufgabe, hab schon viel programmiert, nur mit der Übergabe der Funktionen komm ich einfach nicht zurecht..Aufgabe: Ich soll ein Programm schreiben, dass den Ersatzwiderstand ausrechnet. Die Formeln dafür sieht man in meinem Quellcode.
Die Werte der einzelnen Widerstände sollen in einem Array "widerstaende" gespeichert werden.
Ich soll 2 Funktionen schreiben.
Eine Funktion namens "einlesen" welcher ich das Array "widerstaende" übergebe. Dieses Array soll dann innerhalb der Funktion mit den float-Werten der Widerstände befüllt werden.
Der zweiten Funktion "berechnen" übergebe ich als Übergabeparameter einen char für den Aufbau der Schaltung (parallel- oder Reihenschaltung) und das Array "widerstaende" mit den eingelesenen Werten. In dieser Funktion soll ich dann die Berechnung durchführen und den Ersatzwiderstand als float zurück geben.Soweit zur Aufgabe.
Bis jetzt hab ich geschrieben:#include <stdio.h> #include <Windows.h> void einlesen() { float widerstaende[3]; printf("Bitte geben Sie fuer die Widerstaende positive Zahlen groesser als 0 ein.\n\n"); printf("Bitte geben Sie den ersten Widerstand in Ohm ein: "); fflush(stdin); scanf("%lf", &widerstaende[0]); printf("\nBitte geben Sie den ersten Widerstand in Ohm ein: "); fflush(stdin); scanf("%lf", &widerstaende[1]); printf("\nBitte geben Sie den ersten Widerstand in Ohm ein: "); fflush(stdin); scanf("%lf", &widerstaende[2]); } char berechnen(char circuit) { double equivRes = 0; circuit ='x'; equivRes = einlesen(widerstaende[3]); printf("\nBitte waehlen Sie 'p' fuer Parallelschaltung und 'r' fuer Reihenschaltung"); fflush(stdin); scanf("%c", &circuit); switch (circuit) { case 'p': case 'P': equivRes = 1/(1/widerstaende[0] + 1/widerstaende[1] + 1/widerstaende[2]); // Parallelschaltung break; case 'r': case 'R': equivRes = widerstaende[0] + widerstaende[1] + widerstaende[2]; // Reihenschaltung break; default: printf("\nKein Schaltungstyp gewaehlt."); equivRes = 0; } return equivRes; } void main() { float v; v = berechnen(); printf ("\n\nDer Ersatzwiderstand ist: %.2lf\n", v); system("PAUSE"); }
Ich weiß, dass noch viele Fehler auftauchen, aber die kommen alle nur daher, dass ich nicht richtig weiß, wie ich die Werte von der einen Funktion in die andere übergebe..
-
#include <stdio.h> void einlesen(float widerstaende[]) { printf("Bitte geben Sie fuer die Widerstaende positive Zahlen groesser als 0 ein.\n\n"); printf("Bitte geben Sie den ersten Widerstand in Ohm ein: "); scanf("%f", &widerstaende[0]); printf("\nBitte geben Sie den ersten Widerstand in Ohm ein: "); scanf("%f", &widerstaende[1]); printf("\nBitte geben Sie den ersten Widerstand in Ohm ein: "); scanf("%f", &widerstaende[2]); } double berechnen(char circuit) { float widerstaende[3]; double equivRes = 0; circuit ='x'; einlesen(widerstaende); printf("\nBitte waehlen Sie 'p' fuer Parallelschaltung und 'r' fuer Reihenschaltung"); scanf(" %c", &circuit); switch (circuit) { case 'p': case 'P': equivRes = 1/(1/widerstaende[0] + 1/widerstaende[1] + 1/widerstaende[2]); // Parallelschaltung break; case 'r': case 'R': equivRes = widerstaende[0] + widerstaende[1] + widerstaende[2]; // Reihenschaltung break; default: printf("\nKein Schaltungstyp gewaehlt."); equivRes = 0; } return equivRes; } int main() { float v = berechnen(); printf ("\n\nDer Ersatzwiderstand ist: %.2f\n", v); return 0; }
-
Benjoo #1 schrieb:
Eine Funktion namens "einlesen" welcher ich das Array "widerstaende" übergebe.
Das hast du ja schon nicht gemacht.
Benjoo #1 schrieb:
Der zweiten Funktion "berechnen" übergebe ich als Übergabeparameter einen char für den Aufbau der Schaltung (parallel- oder Reihenschaltung) und das Array "widerstaende" mit den eingelesenen Werten.
Deine Funktion erwartet einen Parameter, den du in der Funktion aber sofort wieder überschreibst.
In der Funktion soll gar keine Abfrage gemacht werden.In main übergibst du auch keinen Parameter an berechne.
Mal so nebenbei:
Die Angaben zwischen den Klammern bei scanf und printf sind auch Parameter.
Und da schaffst du das ja auch.
-
Vielen vielen Dank bis dahin.
Das einzige was noch nicht funktioniert ist die untere main-Funktion.
Da kommt, dass nicht genügend Argumente für Aufruf angegeben wurden..
-
Ich hätte die main-Funktion so geschrieben, funktioniert nur leider auch nicht..
int main() { double equivRes; berechnen(equivRes); printf ("\n\nDer Ersatzwiderstand ist: %.2f\n", equivRes); return 0; system("PAUSE"); }
-
Benjoo #1 schrieb:
Das einzige was noch nicht funktioniert ist die untere main-Funktion.
Da kommt, dass nicht genügend Argumente für Aufruf angegeben wurden..Was kann man da bloß machen?
Dann übergib einen Paramter. Einen der zur Definition der Datei passt.
-
Rumraten nützt da nichts.
Schau dir mal die Zeile 19 an.
Was steht ganz vorne in der Zeile?
Und was steht zwischen den Klammern?