Komme nicht weiter. Was ist falsch?
-
Hallo zusammen,
irgendwie komme ich mit meiner Lösung nicht weiter.
Die Aufgabe lautete: Ein Karton mit einer best. Länge und Dicke(gibt man ein) wird auf einen Kern mit Durchmesser 250mm aufgerollt.
Das Programm soll jeweils bei 20% 40% 60% 80% und 100% der Länge den radialen Abstand vom Kernmittelpunkt angebenHier mein Weg:
#include <iostream>
#include <iomanip>using namespace std;
int main()
{float l = 0 ;
float pi = 3.141592654;
float laenge;
float r = 125 ;
float dicke;
float stueck;
int i = 1;cout << "Geben Sie einen Wert für die gewünschte Länge in Metern ein:" << endl;
cin >> laenge;
cout << "Geben Sie einen Wert für die gewünschte Dicke in Zehntelmillimetern ein:" << endl;
cin >> dicke;
cout << "" << endl;laenge = laenge * 1000;
for ( i = 1; i < 5; i++)
{
stueck = (laenge/5)*i;while ( l < stueck)
{r = r + dicke;
l = l + 2 * pi * r;cout << "Die " << i << ". Marke liegt bei "<< r << " mm" << endl;
}}
return 0;
}Der gibt mir auch nicht
Die 1. Marke ...
Die 2. Marke ...
usw aus.
Was passt nicht?Vielen Dank!
-
Hallo lucasi,
ich denke der Ansatz passt schon nicht. Mal angenommen, der Karton wird gleichmäßig aufgewickelt; d.h. der Radius R soll überall gleichmäßig zunehmen. r sei der Radius des Kerns, x die Länge des bereits aufgewickelten Kartons und d seine Dicke - also:
und R berechnet sich dann in Abhängigkeit zu x
bzw. als C++-Funktionconst double PI = std::acos( -1.0 ); double R = std::sqrt( x * d / PI + r * r );.. den Rest überlaß' ich Dir
Gruß
Werner