PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Modulo Zahlen


Gast braucht Hilfe
2009-01-06, 03:04:02
Schreiben Sie ein Programm, das einen ganzahligen Wert einliest und alle geraden Elemente von Null bis zu dem eingelesenen Wert rechtsbündig und alle ungeraden Elemente linksbündig mit der Feldweite 20 ausgibt.
Ermitteln Sie außerdem die Zahl der geraden und ungeraden Elemente.
---------------------------------------------------------------------

Hab mit dieser Aufgabe so meine Schwierigkeiten.
Was verstehen die unter Feldweite?

Meine bisherigen Überlegungen:

If-else-Kontrollstruktur mit 2 integrierten for-Schleifen.
Hab allerdings nicht so recht die Ahnung, wie die Abbruchbedingung aussehen könnte.

Über etwas Hilfe wär ich euch dankbar! :)

Gast
2009-01-06, 03:33:02
Achja, es geht um C! :D

robobimbo
2009-01-06, 09:35:31
Feldweite: In dem Fall die Breite der Ausgabe, oder nenne es auch Spalte - 20 Zeichen breit. Die einen Zahlen beginnen linksbündig, die anderen rechtsbündig.

Warum brauchst Du zwei FOR Schleifen? Eine tut es doch genauso.
Das IF/ELSE statement ist schon korrekt, die Bedingung ist die Modulo Operation mit 2 (also Rest 0 oder 1).

Die Anzahl der geraden und ungeraden Elemente kannst Du entweder in zwei Variablen mitzählen lassen (im IF und im ELSE Zweig) oder Du rechnest es einfach aus.

Gast
2009-01-07, 19:20:08
Feldweite: In dem Fall die Breite der Ausgabe, oder nenne es auch Spalte - 20 Zeichen breit. Die einen Zahlen beginnen linksbündig, die anderen rechtsbündig.

Warum brauchst Du zwei FOR Schleifen? Eine tut es doch genauso.
Das IF/ELSE statement ist schon korrekt, die Bedingung ist die Modulo Operation mit 2 (also Rest 0 oder 1).

Die Anzahl der geraden und ungeraden Elemente kannst Du entweder in zwei Variablen mitzählen lassen (im IF und im ELSE Zweig) oder Du rechnest es einfach aus.

OK Danke :)

Noch eine Frage: Wie berechne ich einen Betrag in C? (|a|)

redfalcon
2009-01-07, 19:27:18
Noch eine Frage: Wie berechne ich einen Betrag in C? (|a|)

Mit abs() für Integer und fabs() für Float/Double Zahlen. Also


#include <math.h>

[...]
intBetrag=abs(intVar);
doubleBetrag=fabs(doubleVar);
[...]

Gast
2009-01-07, 22:35:30
Mit abs() für Integer und fabs() für Float/Double Zahlen. Also


#include <math.h>

[...]
intBetrag=abs(intVar);
doubleBetrag=fabs(doubleVar);
[...]



Danke :)

Ich liebe dieses Gefühl wenn man nach Stunden der Tüftelei endlich etwas Geiles zu Stande gebracht hat :)

Gast
2009-01-08, 00:58:21
Nullstellenberechnung:

[/quote]
#include<stdio.h>
#include<math.h>

double nullstelle(double x)

{
double rueckkehrwert;
rueckkehrwert = (2* (pow(x,2))*(pow(x,2))) + (3*(pow(x,2))* x) - (12* (pow(x,2))) - (7*x) + 6;
return(rueckkehrwert);
}


int main()

{
double x,k,Laeufer;

printf("\n");


for(x=-1.5; x<=1.5; x= x + 0.001)
{




if(fabs(Laeufer=nullstelle(x)) <= 0.5)
{
printf("\n\n Nullstelle= %.3lf", x);

}


printf("\n");

}


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

}
[/quote]

Folgendes Problem:
Die Ergebnisse werden zwar ausgegeben, aber aufgrund der geringen Schrittweite nicht mehr in der Konsole angezeigt.
Da gibt's doch sicherlich eine Möglichkeit?

Gast
2009-01-08, 02:46:20
OK, habs ausgetüfelt und es funktioniert sogar :D


#include<stdio.h>
#include<math.h>

double nullstelle(double x)

{
double rueckkehrwert;
rueckkehrwert = (2* (pow(x,2))*(pow(x,2))) + (3*(pow(x,2))* x) - (12* (pow(x,2))) - (7*x) + 6;
return(rueckkehrwert);
}


int main()

{
double x,k,Laeufer;

printf("\n");


for(x=-3.5; x<=3.5; x= x + 0.001)
{




if(fabs(Laeufer=nullstelle(x)) <= 0.01)
{
printf("\n\n Nullstelle= %.3lf", x);
break;

}

for(x+0.01; x<=3.5; x= x + 0.001)
{
if(fabs(Laeufer=nullstelle(x)) <= 0.01)
{
printf("\n\n Nullstelle= %.3lf", x);
break;
}
}

printf("\n");

}



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

}

pest
2009-01-08, 09:44:11
Nullstellenberechnung geht aber weitaus effizienter, oder ist die Aufgabe so simpel gestellt?

Gast
2009-01-08, 10:48:57
Nullstellenberechnung geht aber weitaus effizienter, oder ist die Aufgabe so simpel gestellt?

Mehr ist nicht verlangt.
Aber prinzipiell hast du Recht.
Per PQ-Formel und Fallunterscheidung wäre das sicherlich effizienter.