Autor Beitrag
Flepe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: So 20.12.09 23:41 
hi ich bins noch mal dies mal muss ich eine sanduhr aus sternen machen(jenachdem welche zahl man eintippt im beispiel ist es 5) diese sollte dann so aussehen
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
* * * * *
  * * *
    *
    *
  * * *
* * * * *

diese Sanduhr sollte dann nicht aus 4 dreiecken sondern nur aus zweien zusammengesetzt sein also au den beiden folgenden
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
* * * * *
  * * *
    *

UND AUS DEM
    *
  * * *
* * * * *

das ganze solte mit schleifen gelöst sein
wenn ihr hier dann einen code zur lösung postet bitte kommentiert es denn ich muss es schon verstehn weil sonst bringt es mir nichts.


Moderiert von user profile iconNarses: Topic aus VCL (Visual Component Library) verschoben am So 20.12.2009 um 23:34
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 20.12.09 23:57 
Was hast du dir denn schon für Gedanken dazu gemacht? Wo haperts denn? :nixweiss:
Flepe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Mo 21.12.09 00:16 
es habert daran das ich diese dreiecke nicht hinbekomme diese vier heir hab ich schon
ausblenden Quelltext
1:
2:
3:
4:
5:
* * * * * UND * * * * *UND *        UND         * 
* * * *         * * * *    * *                * *
* * *             * * *    * * *            * * *
* *                 * *    * * * *        * * * *
*                     *    * * * * *    * * * * *

die funktionieren so
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
for x := 1 to  Menge do begin
    for y:=1 to Menge do begin
       canvas.textout((groesse*2*count)+x*groesse,(groesse*2*count)+y*groesse,'*');
       canvas.Font.Color:=Farbe[random(fmax)];
    end;
    menge:=menge-1;
  end;

und
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
for x := Menge downto 1 do begin
    for y:=1 to Menge do begin
       canvas.textout(x*groesse,(groesse*2*count)+y*groesse,'*');
       canvas.Font.Color:=Farbe[random(fmax)];
    end;
    menge:=menge-1;
  end;

und
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
for  y:= Menge downto 1 do begin
       for  x:= 1 to Menge do begin

        canvas.textout((groesse*count*2)+x*groesse,y*groesse,'*');
        canvas.Font.Color:=Farbe[random(fmax)];
       end;
        menge:=menge-1
   end;

und
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
for y := 1 to menge do begin
      for x := count to menge do begin
        Canvas.TextOut(x*groesse,y*groesse,'*');
        canvas.Font.Color:=Farbe[random(fmax)];
      end;
      count := count -1;
   end;

mir fehlen halt jetzt noch die im ersten beitrag gezeichneten und aus diesen vier zusammensetzen dürfen wir nicht
Flepe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Mo 21.12.09 16:38 
weis das wirklich keiner ich müsste es bis morgen wissen
Jann1k
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 866
Erhaltene Danke: 43

Win 7
TurboDelphi, Visual Studio 2010
BeitragVerfasst: Mo 21.12.09 17:41 
Du hast doch den Quelltext zu den anderen Dreiecken, wenn du den verstehst solltest du die Sanduhr doch auch hinkriegen. Du musst doch für die erste Hälfte nur in jeder Zeile jeweils 2 Sterne weniger zeichnen als in der davor, bis du nur noch einen Stern zeichnest, dann immer 2 mehr bis du bei deiner Ausgangsgröße bist.
der organist
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 467
Erhaltene Danke: 17

WIN 7
NQC, Basic, Delphi 2010
BeitragVerfasst: Mo 21.12.09 19:35 
schreib dir doch mal nen Pseudocode, damit lässt sich einfacher überlegen....

_________________
»Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin
Flepe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Mo 21.12.09 22:13 
wenn ich ja wüsste wie es geht würd ich nicht fragen hab da nämlich schon bestimmt 3-4 tage dran rumüberlegt
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Mo 21.12.09 22:23 
hi :)

Vielleicht hilft dir der Gedanke, mal die verschiebenden Leerzeichen rauszulassen und nur die Anzahl der Sterne in jeder Zeile zu betrachten ;)

mfG,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
Flepe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Di 22.12.09 00:41 
ja schon klar das ich da nicht mit leerzeichen arbeite das ist da oben nur um zu zeigen wie das aussehen soll
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Di 22.12.09 01:09 
mach doch ne Kombi aus Dreieck 3 und 4 *scratch* etwas unsauber zwar, aber man kann ja erst das eine Dreick zeichnen und dann das andere daneben. Zum beispiel, wohlgemerkt.
Flepe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Di 22.12.09 01:59 
ja klar aber das dürfen wir nicht wie ich in meinem zweiten beitragbereids erwähnt hatte
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Di 22.12.09 03:52 
Hi :)

Wie wäre es denn, mit beträgen zu arbeiten? Dann ginge die Schleife von -5 bis 5 in Zweierschritten und es sind jeweils Abs(i) Sterne in jeder Reihe. Für Zweierschritte brauchst du entweder eine While-Scheife, oder du nimmst for und schreibst überall wo du i hast stattdessen Abs(2*i)

mfG,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
Flepe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Di 22.12.09 13:49 
hi hidden kannst du mir das mal als kommentierten code geben verstehe noch nicht wie du das meinst
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Di 22.12.09 18:32 
Hi ;)

Wo ich deinen Quelltext sehe: Du veränderst ja die Zielschranke der for-Schleife, so etwas versuche ich immer tunlichst zu vermeiden.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
for x := 1 to  Menge do begin
    for y:=1 to Menge do begin
       canvas.textout((groesse*2*count)+x*groesse,(groesse*2*count)+y*groesse,'*');
       canvas.Font.Color:=Farbe[random(fmax)];
    end;
    menge:=menge-1;
  end;


In Pseudocode sähe mein Ansatz so aus(das hättest du sicher auch gekonnt :roll:)
  • Für i von minus fünf bis fünf tue:
  • Mache Abs(i) Sterne in die Zeile(aufs mittige Einrücken achten).
  • Nächste Zeile.

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
Flepe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Di 22.12.09 19:16 
sorry aber das ist halt so unere aufgabe auf die art die formen zu zeichnen deshalb hab ich ja nach deinem code gefragt weil ich nicht genau verstehe was du mit i meinst von eingabe-2*eingabe to eingabe (-5 to 5) habe ich verstanden). und es muss in der aufgabe auch keine for schleife sein es kann auch jede andere der 3 schleifen sein
Flepe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Mi 23.12.09 22:39 
keiner ne idee ich muss das heute bis 23:59 abgeschickt haben
Sylvus
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 195



BeitragVerfasst: Mi 23.12.09 23:33 
die idee steht da :)
Du musst sie nur umsetzten:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
...

for I:=0-max to max do
   zeichneBaelle(abs(I));
...

procedure zeichneBaelle(anz:integer);
begin

//suche dir fak1 und fak2 so aus, dass es schön aussieht
position:=(max DIV anz)*fak1;

  for I:=1 to anz do begin
    Canvas.textout(position,'*');
    Inc(position,fak2);

end;


Wenn du es hiermit nicht schaffst, solltest du dir mal die Grundlagen anschauen, gibt viele Tutorials :)
Flepe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Do 24.12.09 00:42 
Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

prinzipiele(oder wie man das schreibt) verstehe ich es nur was sin die variablen max, zeichneBealle(absI) und was ist fak1 und fak2
und in welcher prozedur steht die erste for schleife?

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

ist zwar net gelöst aber meine zeit ist abgelaufen trotzdem danke für die lösungsvorschläge.
Sylvus
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 195



BeitragVerfasst: Do 24.12.09 02:44 
naja max ist deine reihe, also z.B. 5 - dachte das wäre klar
zeichneBealle ist keine Variable, sondern eine Prozedur
absI - da steht abs(I) - das ist der absolut Betrag von I, also wenn I=-3 dann ist abs(I)=3
fak1 und fak2 sind einfach zwei Faktoren, die du dir so aussuchen solltest, dass es schön aussieht, hab ich aber auch hingeschrieben. Werte wären zum Beispiel: fak1=2 und fak2=1.5
Die Prozedur kannst du dir selbst ausdenken, mache einen Button, oder im OnCreate Ereignis der Form.

Das ganze war ein PseudoCode, da du dich leider noch nicht so auskennst, dass du das alles nachvollzeihen kannst (nicht böse gemeint, jeder fängt man an) empfehle ich dir, wie auch schon vorhin, ein Tutorial zu Delphi!

Damit kommst du viel weiter, dann schaffst du das nächste Mal die Aufgaben auch selbst!


Viele Grüße
Sylvus
Flepe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Do 24.12.09 03:00 
wir haben das als aufgabe für die schule gemacht und haben halt erst dieses schuljahr angefangen . ist ja egal jezt ist zu spät aber dadurch verschlechtert sich meine note nicht . trotzdem verstehe ich nicht wie der absolute betrag zustande kommt und wie ich fak1 und fak2 beide frei bestimmen kann