Seite 5 von 7

Verfasst: Freitag 1. Mai 2009, 00:11
von Dill
informier dich mal wie ein pbm aufgebaut ist.
das ist jetzt aber auch erstmal nicht wichtig.

was macht die for-schleife?
jetzt sag nicht "zeile 1 ausgeben".
was passiert da genau?

Verfasst: Freitag 1. Mai 2009, 00:13
von dynasty-warriors
es wird die 1 20 mal geprintet!!

Verfasst: Freitag 1. Mai 2009, 00:14
von dynasty-warriors
hast du icq oder msn?? dann kann man sich besser unterhalten!

und p.s. vielen dank für deine geduld!

Verfasst: Freitag 1. Mai 2009, 00:32
von Dill
habe kein icq, wenn würde ich dir die nummer nicht geben, ich glaube das wäre unklug.

>es wird die 1 20 mal geprintet!!

das ist das ergebnis, aber du hast nicht verstanden was da passiert.

lies das und führe alle beispiele aus.
es geht erst weiter wenn du die beispiele der abschnitte "for" und "range" hier gepostet hast. (nicht aus dem tut kopieren, selber ausführen)

http://python.net/~gherman/publications ... 0000000000

Verfasst: Freitag 1. Mai 2009, 00:33
von dynasty-warriors
oh man ich gebe es wirklich auf, ihr wollt mich gar net helfen! dieses gefühl habe ich! egal!! ich gebe es auf! ihr wollt mich nur quälen!

Verfasst: Freitag 1. Mai 2009, 00:36
von dynasty-warriors
lieber kassiere ich eine 6 für nicht gemachte hausaufgaben, als mich hier verarschen zu lassen!

Verfasst: Freitag 1. Mai 2009, 00:39
von Dill
na gut, du hast recht. ich tipp dir schnell die lösungen. warte kurz.

Verfasst: Freitag 1. Mai 2009, 00:40
von dynasty-warriors
jaja du verarschst mich nur! und dann sagst du wie letztes mal irgendeiner im forum! hier sind meine bankdaten überweiße bitte diesen betrag an das konto und ich helfe dir weiter...

Verfasst: Freitag 1. Mai 2009, 01:06
von BlackJack
Eine Lösung in C:

Code: Alles auswählen

#include <stdio.h>

static const unsigned int WIDTH = 50;
static const unsigned int HEIGHT = 80;

int main(void)
{
    unsigned int i;
    
    printf("P1\n%d %d", WIDTH, HEIGHT);
    for (i = 0; i < WIDTH * HEIGHT; ++i) {
        if (!(i % WIDTH)) putchar('\n');
        putchar((i < WIDTH * HEIGHT / 2) | '0');
    }
    return 0;
}

Verfasst: Freitag 1. Mai 2009, 01:11
von dynasty-warriors
bei mir kommt syntex error bei deinem programm!

Verfasst: Freitag 1. Mai 2009, 01:31
von dynasty-warriors
vielen dank für die lösung, aber ich bin der meinung, ich kann diese lösung nicht abgebeb! da ich so was noch nicht gelernt habe, kannst du das bitte noch mal umschreiben, und nur while oder for schleifen benutzen?

Verfasst: Freitag 1. Mai 2009, 01:39
von Dill
das kannste ruhig so abgeben.
deine lehrerin freut sich doch wenn du dich so intensiv mit dem thema beschäftigst und eine lösung abgibst die sogar besser ist als das was sie fordert.

Verfasst: Freitag 1. Mai 2009, 01:52
von BlackJack
@dynasty-warriors: Mit welchem C-Compiler hast Du das denn übersetzt? Die Oder-Verknüpfung mit der '0' ist potentiell nicht portabel, aber Syntaxfehler sollten eigentlich nicht drin sein. :-)

Verfasst: Freitag 1. Mai 2009, 01:54
von Dill
BlackJack hat geschrieben:Mit welchem C-Compiler hast Du das denn übersetzt?
mein tipp: mit python.

Verfasst: Freitag 1. Mai 2009, 07:58
von numerix
Das MUSS die gleiche Schule sein wie die von applegreen ... :D

Und: Wie wenig muss man denn drauf haben für eine 2 in Informatik ??? :shock:

Verfasst: Freitag 1. Mai 2009, 09:46
von BlackJack
Eine Lösung in Factor:

Code: Alles auswählen

#! /usr/bin/env factor
USING: io kernel math math.parser sequences strings ;
IN: bw-flag

: dimensions ( -- w h )
    50 80 ;

: print-header ( w h -- )
    "P1" print
    swap number>string write  " " write  number>string print ;

: print-line ( c w -- )
    swap <string> print ;

: pixel-color ( y h -- c )
    2 / <  CHAR: 1 CHAR: 0 ? ;

: print-lines ( w h -- )
    dup [ over pixel-color
          pick print-line ] each
    2drop ;

: main ( -- )
    dimensions
    2dup print-header
    print-lines ;

main
Und Spass mit Iteratoren in Python:

Code: Alles auswählen

import sys
from functools import partial
from itertools import chain, repeat

def header(w, h):
    yield 'P1\n%d %d\n' % (w, h)

def block(w, h, c):
    return repeat(c * w + '\n', h)

def flag(w, h):
    return chain(*map(partial(block, w, h // 2), '10'))

def image(w, h):
    return chain(header(w, h), flag(w, h))

def main():
    sys.stdout.writelines(image(50, 80))

if __name__ == "__main__":
    main()

Verfasst: Freitag 1. Mai 2009, 10:41
von Leonidas
BlackJack hat geschrieben:Eine Lösung in Factor
Eine Lösung in Scheme.

(Allerdings habe ich mir nur den Output der Factor-Lösung angeschaut, nicht die Requirements)

Verfasst: Freitag 1. Mai 2009, 10:49
von gkuhl
@dynasty-warriors: Wieso benutzt du eigentlich nicht einfach das print-statement?

Code: Alles auswählen

print "0101010101010101010101010101\n",
print "1010101010101010101010101010\n",
print "0101010101010101010101010101\n",
print "1010101010101010101010101010\n",
print "0101010101010101010101010101\n",
print "1010101010101010101010101010\n",
usw.

Verfasst: Freitag 1. Mai 2009, 11:26
von dynasty-warriors
ja endlich! hier fängt erst nach 7 seiten wirklich mir zu helfen, das freut mich ^^

aber das von den mods geschriebene programm darf ich nicht abgeben!!

und printen darf ich es auch nicht, ich muss es mit einer for oder while schleife machen ^^

aber trotzdem danke!

Verfasst: Freitag 1. Mai 2009, 11:28
von numerix
dynasty-warriors hat geschrieben:ja endlich! hier fängt erst nach 7 seiten wirklich mir zu helfen, das freut mich ^^
Ich hoffe mal, dass du im Forum für den richtigen Gebrauch der deutschen Sprache auch angemeldet bist ...