Hilfe in Python! komme nicht mehr weiter...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
dynasty-warriors
User
Beiträge: 62
Registriert: Sonntag 4. Januar 2009, 23:33
Wohnort: Berlin

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?
Ich brauche Hilfe!

Ich darf keine Bilder in der Signatur haben!
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

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.
http://www.kinderpornos.info
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. :-)
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

BlackJack hat geschrieben:Mit welchem C-Compiler hast Du das denn übersetzt?
mein tipp: mit python.
http://www.kinderpornos.info
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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:
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()
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

@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.
dynasty-warriors
User
Beiträge: 62
Registriert: Sonntag 4. Januar 2009, 23:33
Wohnort: Berlin

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!
Ich brauche Hilfe!

Ich darf keine Bilder in der Signatur haben!
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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 ...
dynasty-warriors
User
Beiträge: 62
Registriert: Sonntag 4. Januar 2009, 23:33
Wohnort: Berlin

ok! und?? hilfe?
Ich brauche Hilfe!

Ich darf keine Bilder in der Signatur haben!
Lonestar
User
Beiträge: 147
Registriert: Samstag 9. August 2008, 08:31

(kurz bevor es zur 1. Mai-Tour losgeht ist das hier genau der richtige Thread gewesen um in Stimmung zu kommen... herrlich)

@dynasty-warriors - vielleicht solltest du mal bevor du Hilfe bekommst genau sagen wo du Hilfe gebrauchst. Momentan verstehe ich das so das du unbedingt nen Freiwilligen suchst der dir deine Hausaufgabe löst.
Ich vermute mal du hast schon gemerkt das das nicht funktioniert, oder?

Wenns aber unbedingt mit einer Schleife funktionieren soll is mir auch gerade noch was lustiges eingefallen:

Code: Alles auswählen

for elem in xrange(2):
    print "0101010101010101010101010101\n",
    print "1010101010101010101010101010\n",
    print "0101010101010101010101010101\n",
    print "1010101010101010101010101010\n",
    print "0101010101010101010101010101\n",
    print "1010101010101010101010101010\n",
so - ich wünsche allen noch viel Spaß hier - ich verabschiede mich mal und gehe in die Sonne
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Ich würde mal vorschlagen, die beginnst erstmal mit dem print-Statements! Auch wenn es eine ziemliche Tipperei ist!!! Beim Abtippen wirst du dann feststellen, dass sich einige der Zeilen ständig wiederholen. Hier empfiehlt sich dann der Einsatz von Schleifen.

Edit: Wie von Lonestar schon einmal angedeutet.
dynasty-warriors
User
Beiträge: 62
Registriert: Sonntag 4. Januar 2009, 23:33
Wohnort: Berlin

ja aber welche schleifen und wie? for oder while?? und wie
Ich brauche Hilfe!

Ich darf keine Bilder in der Signatur haben!
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

gkuhl hat geschrieben:Ich würde mal vorschlagen, die beginnst erstmal mit dem print-Statements! Auch wenn es eine ziemliche Tipperei ist!!! Beim Abtippen wirst du dann feststellen, dass sich einige der Zeilen ständig wiederholen. Hier empfiehlt sich dann der Einsatz von Schleifen.
vergiss es, das habe ich mal einen ganzen tag lang vesucht ihn dazu zu bringen (seite 3 oder so). es ist einfach nur zeitverschwendung zu versuchen ihn zum denken anzuregen. das einzige was das bringt sind beschimpfungen... drollig.
http://www.kinderpornos.info
dynasty-warriors
User
Beiträge: 62
Registriert: Sonntag 4. Januar 2009, 23:33
Wohnort: Berlin

@ dill !

wolltest du nicht eine lösung posten??
Ich brauche Hilfe!

Ich darf keine Bilder in der Signatur haben!
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

@Dill: So sieht das aus.
@dynasty-warriors: Wie du Schleifen benutzt, hast du sicherlich in der Schule gerlernt. Ansonsten kann man das auch HIER nachlesen.
BlackJack

@dynasty-warriors: Vorab mal was zur Aufgabenstellung: Wie die Flaggen aussehen sollen, kann man nur raten, weil das Bild am Anfang nicht angezeigt wird. Dazu muss man auf der Moodle-Site angemeldet sein, von der Das Bild kommen sollte. Du bist von den Mitlesenden hier wahrscheinlich der Einzige, der weiss wie's aussieht.

Was sind denn die Unterschiede zwischen ``for`` und ``while`` und wann setzt man welchen Schleifentyp ein? Das solltest Du mittlerweile im Unterricht gelernt haben, oder Du kannst es durch eine Recherche im Netz herausfinden. Eine entsprechende Frage auf Deutsch formuliert und bei Google eingegeben erbrachte unter den ersten Fünf Treffern eine sehr gute Beschreibung in einem Buch über C#.
dynasty-warriors
User
Beiträge: 62
Registriert: Sonntag 4. Januar 2009, 23:33
Wohnort: Berlin

also die zielflagge ist zu schwer, dann mach ich das einfache! nämlich das:

schwarz weiß!

1= schwarz
0=weiß


111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000

so sollte es ungefähr aussehen!

die pixel= 50x80

also so was habe ich gemacht:

Code: Alles auswählen

print "P1" # P1 schreiben für Schwarzweißgrafik
anzahl_x = 20 # setze Anzahl der Spalten
anzahl_y = 10 # setze Anzahl der Zeilen
print anzahl_x,  
print anzahl_y  # Gib Zeilen und Spalten aus, wie in PBM-Dateien gefordert
lauf_x = 0 # Definiere Zaehlvariablen für Spalten 
lauf_y = 0 # ... und Zeilen
while lauf_y < anzahl_y:  # Schleife zum Schreiben der Zeilen
    lauf_x = 0 # nach dem Schreiben einer Zeile lauf_x wieder auf 0 setzen
    while lauf_x < anzahl_x: # Schleife zum Spalten schreiben
        print "0", # 0 ohne Zeilenumbruch schreiben
        lauf_x = lauf_x + 1 # Zaehler um 1 erhoehen
    print  # Zeilenumbruch schreiben, da nach einer schwarzen noch eine weiße Zeile kommen soll
    lauf_x = 0 # Zaehlvariable wieder auf 0 setzen
    while lauf_x < anzahl_x: # noch eine Zeile schreiben, diesmal mit schwarzen Pixeln
        print "1", # 1 ohne Zeilenumbruch schreiben
        lauf_x = lauf_x + 1 # Zaehler für Spalten um 1 erhöhen
    print # Zeilenumbruch ausgeben
    lauf_y = lauf_y + 2 # Da nun zwei Zeilen geschrieben wurden (eine weiße, eine schwarze)
                        # muss die Zaehlvariable fuer die Zeilen um ZWEI erhoeht werden.
das ergebnis ist

P1
20 10
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
>>>


aber das will ich nicht, sondern das obere![/quote]
Ich brauche Hilfe!

Ich darf keine Bilder in der Signatur haben!
lunar

Ich bewundere aufrichtig eure Geduld.
Antworten