magisches Quadrat

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.
BlackJack

Beitragvon BlackJack » Sonntag 26. November 2006, 19:49

Na prima, dann hast Du jetzt eine Lösung. :-)
lilhill2002
User
Beiträge: 17
Registriert: Donnerstag 9. November 2006, 18:33
Kontaktdaten:

Beitragvon lilhill2002 » Sonntag 26. November 2006, 20:06

ja das habe ich geschaft die liste aus zu füllen ist ja nicht schwer :).. aber das programmieren zu können ist es schwer... also wie ist liste Aus fülle ist nicht schwer aber was wenn der benutzer mehr als drei felder eingebt Zb. 5... es muss doch eine Algorithmus geben wie man das an stellt. und das was ich da gemacht habe sind ja Fertige listen :) kann man ja noch einfacher Programmieren... sorry, wenn ich zu viel Frage, ich bin ja neueling von Python habe angefangen erst seit 3 monaten... :oops:
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 26. November 2006, 20:26

lilhill2002 hat geschrieben:es muss doch eine Algorithmus geben wie man das an stellt.

Stimmt, Wikipedia beschreibt einen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Beitragvon BlackJack » Sonntag 26. November 2006, 21:29

Nach dem Beispiel mit den ersten drei Zahlen das von *ihm* kam, dachte ich eigentlich den Algorithmus von Wikipedia kennt er schon. Das wäre sonst schon ein ziemlich grosser Zufall...
lilhill2002
User
Beiträge: 17
Registriert: Donnerstag 9. November 2006, 18:33
Kontaktdaten:

Beitragvon lilhill2002 » Sonntag 26. November 2006, 22:00

die die Algorithmus ist mir bekannt.. es war keine zufall... aber die berechnung kann ich nicht... oder das erzetzen nach einandere mit Whli oder for Schleife... :roll:
lilhill2002
User
Beiträge: 17
Registriert: Donnerstag 9. November 2006, 18:33
Kontaktdaten:

Beitragvon lilhill2002 » Montag 27. November 2006, 20:19

also habe meine es jetzt so weit bekommen habe den Consolen Skript noch eingefügt damit ich das später die Oberfläsche bearbeiten kann aber das brechen fellt mir echt schwer.. :cry:

Code: Alles auswählen

# -*- coding: utf-8 -*-
###############################################

import console

bilds = console.Console()
bilds.clrScr()
bilds.setTitle('.:::Magisches Quadrat:::.')
bilds.gotoXY(0,24)
bilds.cPuts('geben sie ein Ungerade Zahl ein ( 3,5,7,9,11): ')
eingabe = bilds.cGets(2)
dim = int(eingabe)

if dim in [3, 5, 7, 9, 11]:
# Eine Liste initialisieren:

#    bilds.clrScr()
    bilds.clrScr()
    eingabe =[]
    for i in range (dim):
        liste = ['_']*dim
        eingabe.append(liste)
    eingabe [0] [dim/2] = 1

    print eingabe

# Ein Quadrat erstellen:

else:
    # Bei falscher Eingabe Programm beenden:
    bilds.clrScr()
    bilds.cPuts('falsche Eingabe -> Programm wird beendet!')
BlackJack

Beitragvon BlackJack » Montag 27. November 2006, 22:22

Also nochmal: Beschreibe in Worten wie Du Schritt für Schritt vorgehst um die Zahlen einzutragen. Du musst Dir jeweils merken welches Feld als letztes ausgefüllt wurde -> Koordinaten. Und dann musst Du beschreiben wie Du diese Koordinaten veränderst um zum jeweils nächsten Feld zu kommen.
Lilmil
User
Beiträge: 5
Registriert: Mittwoch 29. November 2006, 15:05
Wohnort: Bremen
Kontaktdaten:

Help me pls

Beitragvon Lilmil » Mittwoch 29. November 2006, 16:26

Hi leute ich bin mit lilhil2002 in einer klasse das beudetet auf dem gleichen level und ich krieg es nicht gebacken die zahlen so zu positionieren das es waggerecht diagonal und senkrecht das gleich eergibt ich hab es nur bisher das die 1 immer inner mitte der ersten zeile ist.
so zum beispiel:

[0,0,1,0,0]
[0,0,1,0,0]
[0,0,1,0,0][/code]
Bin ein Anfänger in Sachen Programmieren und hab nochnie vorher C/C++ oder andere Programmiersprachen geschrieben.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Help me pls

Beitragvon Leonidas » Mittwoch 29. November 2006, 17:52

Hallo Lilmil, willkommen im Forum,

Lilmil hat geschrieben:ich krieg es nicht gebacken die zahlen so zu positionieren das es waggerecht diagonal und senkrecht das gleich eergibt ich hab es nur bisher das die 1 immer inner mitte der ersten zeile ist.

Tja, dann wirst du daran noch etwas arbeiten müssen. Aber es ist sicherlich zu schaffen, ich wünsche dir viel Glück.

Hast du auch eine Frage und magst du einfach nur deine Zwischenergebnisse dokumentieren?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Lilmil
User
Beiträge: 5
Registriert: Mittwoch 29. November 2006, 15:05
Wohnort: Bremen
Kontaktdaten:

Ich bin VErloren !!!;)

Beitragvon Lilmil » Donnerstag 30. November 2006, 08:19

Toll ichd achte hier bekommt man hilfe. mein lehrer meint ich brauch den modulo operator (%) aber kp wi eman den einsetzt.-
Bin ein Anfänger in Sachen Programmieren und hab nochnie vorher C/C++ oder andere Programmiersprachen geschrieben.
Benutzeravatar
Blattlaus
User
Beiträge: 55
Registriert: Donnerstag 24. August 2006, 08:55

Beitragvon Blattlaus » Donnerstag 30. November 2006, 09:37

Man bekommt Hilfe. Du willst allerdings keine hilfe, du willst, dass dir jemand das Endergebnis gibt.
Und wenn du nicht weißt, was Modulo ist, kannst du entweder deinen Lehrer fragen, oder irgendwo nachschauen. Beispielsweise hier: http://de.wikipedia.org/wiki/Modulo
BlackJack

Beitragvon BlackJack » Donnerstag 30. November 2006, 13:05

Nochmal eine Zusammenfassung "unserer" "Forderungen":

Der Algorithmus selbst steht bei Wikipeda.

Erster Schritt: Das ganze mit Papier und Bleistift nachvollziehen und dann in natürlicher Sprache möglichst genau, Schritt für Schritt formulieren was gemacht werden muss. Felder und "Bewegungen" von einem Feld zum nächsten dabei in Koordinaten ausdrücken. Überprüfen ob ein wirklich dämlicher Mensch damit was anfangen kann, weil ihr das später einem Rechner "erklären" müsst. Rechner können gut und schnell mit Zahlen, sind sonst aber dumm wie Brot.

Zweiter Schritt: Versuchen die Beschreibung wenn nötig noch etwas genauer zu formulieren und in Programmcode umzuwandeln.

Dritter Schritt: Beschreibung und Programmcode herzeigen und beschreiben wo genau das Problem liegt, oder wo das gezeigte Programm etwas anderes macht als ihr erwartet.

Wir helfen hier gerne bei konkreten Problemen. Was es im allgemeinen nicht gibt, sind Komplettlösungen zu Hausaufgaben oder wirklich ganz grundlegende Erklärungen, die man sich durch ein Anfängertutorial erarbeiten kann, bzw. die eigentlich im Unterricht erklärt werden müssten.

Modulo kann man übrigens benutzen, um den Quelltext etwas zu verkürzen, aber es geht auch ohne. Also nicht krampfhaft nach einer Lösung mit Modulo suchen, sondern lieber erstmal das Problem als ganzes Lösen. Optimieren kann man später immer noch.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Ich bin VErloren !!!;)

Beitragvon Leonidas » Donnerstag 30. November 2006, 14:05

Lilmil hat geschrieben:Toll ichd achte hier bekommt man hilfe. mein lehrer meint ich brauch den modulo operator (%) aber kp wi eman den einsetzt.-


Deine frage ist, wie man Modulo verwendet? Fein, das kann ich dir erklären, man nutzt es so:

Code: Alles auswählen

In [2]: 5 % 2
Out[2]: 1
In [3]: 5 % 5
Out[3]: 0
In [4]: 5 % 1
Out[4]: 0
In [5]: 5 % 3
Out[5]: 2
In [6]: 10 % 5
Out[6]: 0
In [7]: 10 % 3
Out[7]: 1
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Lilmil
User
Beiträge: 5
Registriert: Mittwoch 29. November 2006, 15:05
Wohnort: Bremen
Kontaktdaten:

Beitragvon Lilmil » Donnerstag 30. November 2006, 19:06

lol ich weiß das ich selber auf das ergebnis kommen muss und es auch unbedingt will hast falsch verstanden vllt. naja auf jeden fall kenn ich auch den modulo operator und seine aufgabe. naja hab das prog. jetzt fertig und mache noch ein paar erweiterungen.ciao :lol: thx für eure hilfe
Bin ein Anfänger in Sachen Programmieren und hab nochnie vorher C/C++ oder andere Programmiersprachen geschrieben.
lilhill2002
User
Beiträge: 17
Registriert: Donnerstag 9. November 2006, 18:33
Kontaktdaten:

verbesserung vorschlege

Beitragvon lilhill2002 » Montag 4. Dezember 2006, 10:29

Hallo habe mich mit ein Kopel zusammen gesetzt und haben das raus bekommen es funktioniert .. aber sieht noch nicht schick aus.. vielleicht irgend jemand paar vorschläge ....
Danke :D

Code: Alles auswählen

# -*- coding: utf-8 -*-



import console

bilds = console.Console()
bilds.clrScr()
bilds.setTitle('.:::Magisches Quadrat:::.')
bilds.gotoXY(0,24)

eingabe = input('Wie gross soll ihr magisches Quadrat werden? : ')
print 45*'='

magischequadrat = []
lieste = []
ersatz = 0
x = 0
y = 0

# Schreibe Nullen in das Magische Quadrat
for i in range (eingabe):
    lieste=[]
    for j in range (eingabe):
        lieste+=[0]
    magischequadrat+=[lieste]


if eingabe % 2 == 1:

    x = eingabe / 2

    magischequadrat[y][x] = 1

# berechnung des Magischen Quadrates
    for i in range (2, eingabe*eingabe+1):
        altexwert = x
        alteywert = y
# wagerechts verschiebung
        y -= 1
        if y < 0:
            y = eingabe - 1
# senkerecht verschiebung
        x += 1
        if x > eingabe - 1:
            x = 0
# wenn das Feld bestz ist dann ersetzte das alte mit den neuen
        if magischequadrat[y][x] > 0:
           x = altexwert
           y = alteywert + 1
           if y == eingabe:
                y = 0
        magischequadrat[y][x] = i

# ausgeben des Magesches Quadrat
    print ''
    for lieste in magischequadrat:
        print lieste

# Fehlermeldung bei gerader Zahl

else:
    # Bei falscher Eingabe Programm beenden:
    bilds.clrScr()
    bilds.cPuts('falsche Eingabe -> Programm wird beendet!')

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder