Schrift
[thread]12961[/thread]

Problem bei Programmverständnis (Seite 2)



<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten
esskar
 2009-01-06 22:04
#117642 #117642
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
lichtkind+2009-01-06 19:45:39--
also:
...
schreibt man erstmal
...

W.A. Wulf
More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason - including blind stupidity.

http://www.clean-code-developer.de/wiki/CcdRoterGr...
esskar
 2009-01-06 22:26
#117644 #117644
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Gast+2009-01-06 18:09:06--
ok hat mir schon mal geholfen :).
aber noch eine frage: du schreibst bei Zeile 18 weitermachen. Des heißt, dass ich die if Bedingung abarbeite mir $i=0, $i=1 usw.. bis sie nicht mehr greift und dann erst wieder in die dor schleife spring um $i um 1 zu erhöhen oder?

nein.

while bezeichnet wie for einen schleifenkontrollstrucktur.
du kannst z.B. eine for-schleife ala
Code (perl): (dl )
1
2
3
for (my $i = 0; $i < $anzahl - 1; $i++){
   # ...
}

folgendermaßen mit einer while-schleife darstellen
Code (perl): (dl )
1
2
3
4
5
6
my $i = 0;
while($i < $anzahl)
{
   # ...
   $i++;
}

heißt also, die die anweisungen einer while-schleife werden solange wiederholt wie die bedingung (im obigen fall $i < $anzahl) einen wahren-wert liefert.

in deinem beispiel wird $aktion vor der while-schleife auf einen wahren-wert gesetzt, nämlich $aktion = 1 und dann direkt als erste anweisung innerhalb der while-schleife auf einen unwahren-wert (nämlich 0 (vgl. zeile 8)) gesetzt.
das bedeutet erstmal, dass die while-schleife eigentlich nicht nochmal durchlaufen wird.
gesetz den fall, $anzahl ist 0 oder es gibt kein $i für das gilt, dass $zeilen[$i] ge $zeilen[$i + 1], gibt es keine widerholung in while mehr, d.h. das programm beendet sich.
es heißt dann aber auch, wenn die if-bedienung in zeile 13 greift, $zeilen[$i] ge $zeilen[$i + 1] also einen wahren-wert liefert, dann wird $aktion = 1 gesetzt (zeile 19) und die while-schleife wird einen weiteren durchgang anstreben.

ist das soweit klar?
Gast Gast
 2009-01-07 15:15
#117654 #117654
das programm gibt mir die Tiere untereinander in Alphabetischer reihenfolge aus. falls ich nicht wieder nen fehler drin habe
Gast Gast
 2009-01-07 12:45
#117660 #117660
ja soweit is alles klar.
esskar
 2009-01-07 12:54
#117661 #117661
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Gast+2009-01-07 11:45:30--
ja soweit is alles klar.

gut. :-)

und was macht das programm nun? hast du es herausgefunden? (jetzt ohne es auszuführen.)
kristian
 2009-01-07 21:50
#117667 #117667
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo

Ich frage mich wer sich so ein Beispiel ausdenkt. Macht das zum Lernen Sinn, wenn
Code: (dl )
1
2
3
4
5
6
kristian@tux:~> perl -wle ' print join("\n",sort(qw(Zebra Affe Loewe Baer Pinguin))); '
Affe
Baer
Loewe
Pinguin
Zebra

das gleiche Ergebnis bringt und den grausigen Code aus dem Beispiel niemand schreiben würde?

Gruß
Kristian
pq
 2009-01-07 21:58
#117669 #117669
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
kristian+2009-01-07 20:50:12--
Ich frage mich wer sich so ein Beispiel ausdenkt.

vermutlich war es einfach die aufgabe, bubblesort auszuprogrammieren...
dann freuen wir uns auf mergesort demnächst =)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
kristian
 2009-01-07 22:51
#117681 #117681
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo
pq+2009-01-07 20:58:44--
dann freuen wir uns auf mergesort demnächst =)

Also jetzt machst du mir wirklich Angst.
Alleine beim Versuch mir das Codebeispiel vorzustellen bekomme ich dringend Lust auf ne große Packung Aspirin. ;-)

Gruß
Kristian
esskar
 2009-01-07 23:02
#117682 #117682
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
hmm; also ich seh das anders.
wie will man den sonst programmieren lernen?
klar, irgendwann nimmt man das, was einem die programmiersprache gibt und dann achtet man auch auf den syntaktischen zucker, aber um programmieren zu lernen muss man klein anfangen.
es gibt fälle, da programmiert man z.b. lieber nen sortieralgorithmus selbst anstatt, den vorgefertigten zu nutzen und manchmal hat man gar keine chance, weil z.b. die datenstructur kein array sondern eine linked list ist.
wenn man die basics dann nicht kennt, steht man dumm da.
GwenDragon
 2009-01-07 23:03
#117683 #117683
User since
2005-01-17
14836 Artikel
Admin1
[Homepage]
user image
pq ärgert wieder die armen Anfänger ;)

esskar hat Recht, lernen musst du schon den Umgang mit den Datenstrikturen. Auch da gibt es gute (Perl- und allgemeine) Bücher.
<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten



View all threads created 2009-01-06 17:08.