programmieren: Problemlösungen.


Hallo,

Ich möchte sehr gerne programmieren lernen. Schwerpunkt Mathe-Probleme. Ich versuche es schon seit lange, so allein für mich hin, komme aber kaum weiter. Man könnte evtl. über E-Mail kommunizieren. Ob jemand da ist, mit Geduld und Ausdauer?!
Gruß, brummer


sehr wenig Informationen die du zu deinem Programmierproblem abgibst...hier fehlen die Programmiersprachen die du nutzen willst und welche Probleme du damit lösen willst...zu jedem Programm was du erstellen willst gehört die Planung im Vorfeld...


Wenn du ein Office Paket hast und nichts ausgeben willst kannst du dir mal VBA (Visual Basic for Applications) anschauen.

http://www.kulpa-online.com/tutorial-vba-1.html


Jo, wirklich sehr wenige Informationen.
Vielleicht wäre Java ja nicht schlecht - finde z.B C/C++ etwas schwieriger. Und auf www.javabuch.de kann man sich ein Gratis-Handbuch runterladen.
Vielleicht hilft es ja...


Also...
Zur Zeit habe ich folgendes Problem: Gesucht ist eine dreistellige Zahl, die zum Quadrat eine sechsstellige Zahl ergibt. Die ersten 3 Ziffern werden zu den letzten 3 addiert. Diese Summe soll die gesuchte Zahl ergeben.
Die Überlegung vor dem Programmieren: Die Zahl ist von 317 bis 999 zu finden.
Das Programm nimmt die erwähnten Zahlen der Reihe nach. Teilt die Ziffern, je 3, addiert sie und vergleicht mit der betreffenden Zahl.
Beispiel:
324^2=104976 104+976=1080 => ist also ungleich mit 324. Die Schleife läuft weiter.
Oder: 513^2=263169 263+169=432 ungleich mit 513.
Ich glaube Java Script, da Plattformunabhängig(?) könnte geeignet sein. Da gibt es ein Modul, Math, welches das Programm unterstützt. Compilen entfällt, man kann das Programm direkt laufen lassen. Um auf mein Problem zurückzukommen: Man könnte starten mit der Eingabe der kleinsten Zahl. So, das wär etwas mehr Info!
Gruß, brummer


Ich glaube dein Hauptproblem sind elementare Kenntnisse der Mathematik Zahlensysteme allgemein insb. Modulo-Rechnung - wenn du die hast ist die Umsetzung von so einem Mathe"problem" eine Sache von 2 Minuten (btw: Informatik kommt von Information und Mathematik) ;)

Aber zum Einstieg ins programmieren würde ich niemals eine Interpreter-Sprache empfehlen, die Fehlersuche ist schwer und mangels typ-System hat man es später dann tendenziell schwerer. Java (nicht Javascript) ist eine gute Einsteiger Sprache - sicherlich schwerer als Javascript, PHP oder VisualBasic am Anfang, aber es gibt gute Bücher/Hilfen dazu und wenn man es dann kann und das Prinzip dahinter verstanden hat, kann man eigentlich alle anderen prozeduralen Programmiersprachen sich in ein paar Tagen aneignen.

Beispiel (seit 4 Jahren kein Javascript geschrieben gehabt, mit 2 Min googlen die vergessenen unbekannten Funktionen und Operatoren ergooglet):

CODE

var zaehler = 100;
while(zaehler<=999)
{
 var ergebnis = zaehler*zaehler;
 if(ergebnis >= 100000 && ergebnis <= 999999)
 {
  if(Math.floor(ergebnis/1000) + (ergebnis%1000) == zaehler)
  {
   document.writeln(zaehler +  " = " + Math.floor(ergebnis/1000) + " + " +(ergebnis % 1000) + "  (" + zaehler + "² = " + (zaehler*zaehler) + ")<br>");
  }
 }
 
 zaehler = zaehler + 1;
}


In Java sähe das Ganze so ähnlich aus, nur Math.floor, document.writeln gibt es dort nicht, sowie Variablendeklarationen sind explizit mit Typ.

Bearbeitet von boredxyz am 23.02.2008 12:55:03

Ich kenne den Trick mit dem Modulo;) Die Pr.spr. LISP verwandelt eine Zahl in String und nimmt die dann nach Belieben auseinander. Davon war ich in meinen Überlegungen ausgegangen. Ich sehe, du hast die quadrierte Zahl mit 1000 dividiert, die ganze Zahl mit dem Rest der Teilung verglichen. So geht es natürlich auch. Du kannst daraus erkennen, dass nicht Mathe, sondern das PROGRAMMIEREN für mich das Hauptproblem darstellt. Dass ich nicht vergesse: Vielen herzlichen Dank für deine Teilnahme an meinem Problemchen. Die Fragen aller Fragen: Wie wende ich das Programm jetzt an??? Da in Java Skript, müsste es direkt funktionieren, tut es aber nicht.
herzlichst, brummer


Schau mal da für Javascript:
http://www.rzuser.uni-heidelberg.de/~x02/html/tda.htm

für Java solltest du mit http://www.galileocomputing.de/openbook/javainsel7/ anfangen.


p.s. Das mit dem Zahl als String sollte auch in Javascript gehen, nur hatte ich keine Lust die Funktionen nachzugucken.

Bearbeitet von boredxyz am 23.02.2008 20:21:52


Guten Morgen,
Ein richtiges Problem für Informatiker: Kann man das programmieren?
1^a+2^b+3^c+4^d+5^e+6^f+7^g+8^h+9^i+10^k

die Zahlen 1,2,3,4,5,6,7,8,9,10 so für die Buchstaben (jede Zahl genau einmal)einsetzen, dass die größtmögliche Summe herauskommt, die eine Million nicht übersteigt.

Also zum Beispiel:
1^1+2^10+3^8+4^9+5^7+6^2+7^3+8^4+9^6+10^5 = 983771. Das ist natürlich noch weit vom Optimum weg.
Programmiersprache Java Skript. Die gesuchte Zahl ist also höchstens 999999. Soll so nahe wie möglich daran herankommen. Ob das nicht doch etwas zuviel verlangt ist??!
Gruß, brummer


Zitat (brummer @ 24.02.2008 06:45:33)
Guten Morgen,
Ein richtiges Problem für Informatiker: Kann man das programmieren?
1^a+2^b+3^c+4^d+5^e+6^f+7^g+8^h+9^i+10^k

die Zahlen 1,2,3,4,5,6,7,8,9,10 so für die Buchstaben (jede Zahl genau einmal)einsetzen, dass die größtmögliche Summe herauskommt, die eine Million nicht übersteigt.

Also zum Beispiel:
1^1+2^10+3^8+4^9+5^7+6^2+7^3+8^4+9^6+10^5 = 983771. Das ist natürlich noch weit vom Optimum weg.
Programmiersprache Java Skript. Die gesuchte Zahl ist also höchstens 999999. Soll so nahe wie möglich daran herankommen. Ob das nicht doch etwas zuviel verlangt ist??!
Gruß, brummer

Wenn du es ohne Listen machen willst, würde ich den einfachsten Weg gehen:

10 geschachtelte for-Schleifen (a bis k), von 1 bis 10, testen, ob alle Parameter von einander verschieden sind, und dann alle Ergebnisse inkl Parameterbelegung ausgeben, die zwischen einer Million und einer Millionen-100 oder so liegen.

Dann hast du zumindest alle Belegungen ausprobiert.

Bearbeitet von lisp am 24.02.2008 12:21:03


Kostenloser Newsletter