AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Schleifen-Problem

Ein Thema von coly546 · begonnen am 10. Mär 2008 · letzter Beitrag vom 10. Mär 2008
Antwort Antwort
Seite 1 von 2  1 2      
coly546

Registriert seit: 10. Mär 2008
35 Beiträge
 
RAD-Studio 2009 Arc
 
#1

Schleifen-Problem

  Alt 10. Mär 2008, 16:56
Guten Tag,
ich habe ein Problem mit folgender Aufgabe:

Zitat:
Schreiben Sie ein Programm, jenes das Gehäuse eines kegelförmigen Körpers berechnen kann.
Der User muss dazu nur die Höhe des kegelförmigen Körpers eingeben. Lassen Sie eine Liste
mit folgenden Bestandteilen ausgeben:
den Durchmesser von 300-500mm in 10er-Schritten
den dazu gehörigen Winkel des Mantels in Grad
Manteldurchmesser in mm

Tipp:

Durchmesser:=Durchmesser+10;
Radius:=Durchmesser/2;
Seite:=sqrt(Hoehe*Hoehe+Radius*Radius);
Alpha:=360*Radius/Seite;
Manteldurchmesser:=2*Seite;


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
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Schleifen-Problem

  Alt 10. Mär 2008, 17:00
[OT]Also zu deiner If- Schleife: www.if-schleife.de [OT]
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^^
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#3

Re: Schleifen-Problem

  Alt 10. Mär 2008, 17:04
[OT] Ich hab nix gesehen .[/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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

Re: Schleifen-Problem

  Alt 10. Mär 2008, 17:05
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
  Mit Zitat antworten Zitat
coly546

Registriert seit: 10. Mär 2008
35 Beiträge
 
RAD-Studio 2009 Arc
 
#5

Re: Schleifen-Problem

  Alt 10. Mär 2008, 17:09
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...
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#6

Re: Schleifen-Problem

  Alt 10. Mär 2008, 17:34
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.
  Mit Zitat antworten Zitat
coly546

Registriert seit: 10. Mär 2008
35 Beiträge
 
RAD-Studio 2009 Arc
 
#7

Re: Schleifen-Problem

  Alt 10. Mär 2008, 17:41
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
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#8

Re: Schleifen-Problem

  Alt 10. Mär 2008, 17:50
Zitat von coly546:
Ein bisschen peinlich ist es mir ja schon, aber wenn ich darauf nun mal leider nicht gekommen bin.
Hmm?
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#9

Re: Schleifen-Problem

  Alt 10. Mär 2008, 17:54
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:
  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
[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]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
coly546

Registriert seit: 10. Mär 2008
35 Beiträge
 
RAD-Studio 2009 Arc
 
#10

Re: Schleifen-Problem

  Alt 10. Mär 2008, 17:59
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!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz