Hilfe in Python! komme nicht mehr weiter...
-
- 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!
Ich darf keine Bilder in der Signatur haben!
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.
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
@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.
Das MUSS die gleiche Schule sein wie die von applegreen ...
Und: Wie wenig muss man denn drauf haben für eine 2 in Informatik ???
Und: Wie wenig muss man denn drauf haben für eine 2 in Informatik ???
Eine Lösung in Factor:
Und Spass mit Iteratoren in Python:
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
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()
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Eine Lösung in Scheme.BlackJack hat geschrieben:Eine Lösung in Factor
(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
@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.
-
- 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!
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!
Ich darf keine Bilder in der Signatur haben!
Ich hoffe mal, dass du im Forum für den richtigen Gebrauch der deutschen Sprache auch angemeldet bist ...dynasty-warriors hat geschrieben:ja endlich! hier fängt erst nach 7 seiten wirklich mir zu helfen, das freut mich ^^
-
- 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!
Ich darf keine Bilder in der Signatur haben!
(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:
so - ich wünsche allen noch viel Spaß hier - ich verabschiede mich mal und gehe in die Sonne
@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",
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.
Edit: Wie von Lonestar schon einmal angedeutet.
-
- 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!
Ich darf keine Bilder in der Signatur haben!
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.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.
http://www.kinderpornos.info
-
- User
- Beiträge: 62
- Registriert: Sonntag 4. Januar 2009, 23:33
- Wohnort: Berlin
@ dill !
wolltest du nicht eine lösung posten??
wolltest du nicht eine lösung posten??
Ich brauche Hilfe!
Ich darf keine Bilder in der Signatur haben!
Ich darf keine Bilder in der Signatur haben!
@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#.
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#.
-
- 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:
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]
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.
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!
Ich darf keine Bilder in der Signatur haben!