![]() |
Schleifen-Problem
Guten Tag,
ich habe ein Problem mit folgender Aufgabe: Zitat:
Das habe ich bis jetzt programmiert und komme leider nicht weiter:
Delphi-Quellcode:
program Kegel;
{$APPTYPE CONSOLE} uses SysUtils; var Durchmesser, Radius, Seite, Alpha, Manteldurchmesser, Hoehe:real; begin writeln; writeln; writeln(' Programm zum Berechnen des Materialzuschnittes fuer Kegel-Koerper '); writeln(' ******************************************************************'); writeln; writeln; writeln(' Geben Sie die Hoehe des Kegels in mm ein: '); read(Hoehe); writeln;writeln;writeln;writeln;writeln;writeln;writeln;writeln; writeln;writeln;writeln;writeln;writeln;writeln;writeln;writeln; writeln(' Durchmesser Winkel des Mantels Manteldurchmesser'); writeln(' __________________________________________________________'); Durchmesser:=290; Radius:=0; Seite:=0; Alpha:=0; Manteldurchmesser:=0; repeat Durchmesser:=Durchmesser+10; Radius:=Durchmesser/2; Seite:=sqrt(Hoehe*Hoehe+Radius*Radius); Alpha:=360*Radius/Seite; Manteldurchmesser:=2*Seite; writeln(' ',Durchmesser:5:2,' mm ',Alpha:5:2,' grd ',Manteldurchmesser:5:2,' mm'); readln; //dieses 'readln' muss weg!!! until Durchmesser=500; readln; //dieses 'readln' hinzugefügt werden!!! readln; end. Für die Aufgabe dürfen wir allerdings nur Repeat-Until-Schleifen, case-of und if-then-else-Abfragen verwenden. Ach so, dabei handelt es sich um eine Konsolen-Anwendung. Es wäre toll, wenn ihr mir helfen könntet. mfG coly546 |
Re: Schleifen-Problem
[OT]Also zu deiner If- Schleife:
![]() Ich würde das ganz ganz ganz ganz schnell zu If Abfragen machen sonst bekommst du gleich 1000 Nachrichten von dominösen Leuten die Bier von dier haben wollen^^ |
Re: Schleifen-Problem
[OT] Ich hab nix gesehen :mrgreen: .[/OT]
Zu dem Problem: ich habe gerade Feierabend und schaue mir das nachher zu Hause mal genauer an, falls bis dahin niemand eine Lösung postet. |
Re: Schleifen-Problem
Nur mal so, rein auis Interesse - wo ist denn dein Problem/deine Frage?
Denn ein "Das habe ich bis jetzt programmiert und komme leider nicht weiter:" hilft leider nicht sehr bei der Eingrenzung des Problems ;) |
Re: Schleifen-Problem
Also das Problem liegt darin das er mir nur 2 von 20 Zeilen "ausspuckt" und ich nicht weiß wie ich das ändern kann.
Das Programm soll ja eine Liste von 300-500mm ausgeben, jenes tut das allerdings nur bis 320... |
Re: Schleifen-Problem
Hallo,
entferne mal das 'readln' innerhalb der Schleife, dann läuft es durch. Ansonsten bekommst Du die weiteren Wert durch drücken der [ENTER]-Taste. |
Re: Schleifen-Problem
Dankeschön!
Bei den Programm was wir heute schreiben mussten, hatten wir das 'readln' in der Schleife drin...so das ich annahm das jenes hier auch rein gehört. Jetzt muss es 2*mal nach der Schleife geschrieben werden... Ein bisschen peinlich ist es mir ja schon, aber wenn ich darauf nun mal leider nicht gekommen bin. :( Herzlichsten Dank an alle Helfer :bounce2: |
Re: Schleifen-Problem
Zitat:
Das muss Dir doch nicht peinlich sein :!: Ich kenne mich mit Konsolenanwendungen überhaupt nicht aus, und habe die 'Lösung' auch nur durch den Debugger herausgefunden. Ich glaube, dass das 'readln' am Ende nur deshalb steht, damit sich die Konsole nicht schliesst. |
Re: Schleifen-Problem
Eine kleine Anmerkung noch: wenn Du den Durchmesser initial auf 300 setzt, ist das Programm auch für Außenstehende leichter zu verstehen.
Delphi-Quellcode:
[edit] Noch eine Anmerkung: Die Zuweisungen vor der Schleife (bis auf Durchmesser) kannst Du Dir sparen, da diese ja in der Schleife bei jedem Durchlauf gesetzt werden. [/edit]
Durchmesser:=300;
{ unnötig Radius:=0; Seite:=0; Alpha:=0; Manteldurchmesser:=0;} repeat Radius:=Durchmesser/2; Seite:=sqrt(Hoehe*Hoehe+Radius*Radius); Alpha:=360*Radius/Seite; Manteldurchmesser:=2*Seite; writeln(' ',Durchmesser:5:2,' mm ',Alpha:5:2,' grd ',Manteldurchmesser:5:2,' mm'); Durchmesser:=Durchmesser+10; //erst jetzt erhöhen until Durchmesser > 500;//nun muss natürlich auf größer abgefragt werden |
Re: Schleifen-Problem
Tut mir leid, aber ich dacht es macht mehr Sinn wenn wenigstens die erste Zeile bei der Ausgabe, mit 300mm stimmt.
Trotzdem vielen dank für deine Tipps :) liebe Grüße //Edit: Danke für diesen zusätzlichen Tipp! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz