Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Fehler im Programm ??

Empfohlene Antworten

Veröffentlicht

Folgendes Programm wurde in C geschrieben. Es soll die PQ-Formel ausrechnen. Wenn p und q positiv sind gibt er als ersten Wert eine falsche Lösung aus.

/*PQ-Formel Rechner*/

#include <stdio.h>

main() {

       double z,p,q;

       printf("\n\tP Q - F O R M E L - R E C H N E R \n");

       for (; {printf("\nBitte p eingeben: ");

       scanf("%lf",&p);

       printf("\nBitte q eingeben: ");

       scanf ("%lf",&q);

       z=(p/2)*(p/2)-q;

       if (z<0){

                printf("\nEs gibt keine Loesung");

                }

       if (z==0){

                 printf("\nEinzige Loesung %.4lf",-(p/2));

                 }

       if (z>0) {

                printf("\n1.Wert : %.4lf",-(p/2)+sqrt (z));

                printf("\n2.Wert : %.4lf",-(p/2)-sqrt (z));

                printf("\n\n\n");

               }

               printf("\n\tP Q -F O R M E L - R E C H N E R\n\n");

               } 

               }[/code]

Villeicht könnt ihr mir helfen und mir sagen was an dem Programm falsch ist.

Danke.

Ich hab die Sprache erst vor 5 Tagen gelernt. Was bewirkt denn #include <math.h>??

Ich hab das jetzt ma mit #include <math.h> versucht. Wenn beide Werte nun positiv sind kommt das richte Ergebnis raus. Ist q allerdings negativ, ist der erste Wert falsch.

Allgemein bewirkt das Einbinden einer Headerdatei, dass dem Compiler die darin deklarierten Variablen und Funktionen bekanntgemacht werden.

Die Funktion sqrt, die du in deinem Programm benutzt, ist in math.h deklariert.

Das Programm lässt sich auch ohne diese Deklaration compilieren und ausführen, aber der Compiler geht in diesem Fall davon aus, dass sqrt keine Parameter hat und int zurückgibt. Tatsächlich gibt sqrt aber double zurück, und der ist bei dir wohl größer als int. Dadurch geht ein Teil des Rückgabewertes verloren, und es kommt zu falschen Werten.

Aber wie gesagt, der Compiler sollte dabei eigentlich eine Warnung ausspucken. Und du tust gut daran, Warnungen nicht zu ignorieren.

Wenn beide Werte nun positiv sind kommt das richte Ergebnis raus. Ist q allerdings negativ, ist der erste Wert falsch.
Nenn mal ein Beispiel.

in meinem Programm:

p = 5

q = -4

Wert1 = 0.7016

Wert2 = -5.7016

rauskommen sollte:

Wert 1 = 7.016

Wert 2 = -5.7016

genau das ist das Problemm ich weiß es net.

Aber das ergebniss muss auf jedenfall 7.016 sein

P.S. Sorry, dass ich mich so lange nicht gemeldet habe war im Urlaub.

vielleicht sollte ich dazu sagen, dass die PQ-Formel x1/2 = -(p/2) +- Wurtzel((P/2)-q) ist

Aber das ergebniss muss auf jedenfall 7.016 sein
Sagt wer? Das ist schlicht und einfach falsch. Setz doch für x mal 7.016 in die Gleichung ein. Da kommt irgendwas um die 80 heraus, aber sicher nicht Null.

vielleicht sollte ich dazu sagen, dass die PQ-Formel x1/2 = -(p/2) +- Wurtzel((P/2)-q) ist

Das ist auch falsch. Aber in deinem Programm ist die Formel richtig umgesetzt.

Siehe auch hier: Quadratische Gleichung − Wikipedia

villeicht hast du recht

ich habe vor einem jahr die selbe formel in basic geschrieben undd da kam dieses andere ergebnis raus

könnte ja sein, dass die basiv formel falsch ist.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.