Hilfe 1*1 !

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

Dienstag 8. Februar 2011, 16:48

JavaScript bring irgendwie nicht viel neues in den Thread:

Code: Alles auswählen

var a, b;
for (a = 1; a <= 10; a++) {
  for (b = 1; b <= 10; b++) {
    console.log("" + b + " * " + a + " = " + (a * b));
  }
  console.log();
}
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Dienstag 8. Februar 2011, 17:42

Fortran sieht etwas anders aus:

Code: Alles auswählen

PROGRAM einmaleins

    DO i=1,10
        DO j=1,10
            WRITE(*,1001), i, j, i*j
        ENDDO
    ENDDO

    1001 FORMAT (I2, ' x ', I2, ' = ', I3)

END PROGRAM
Grüße
Gerrit
Benutzeravatar
snafu
User
Beiträge: 6045
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Dienstag 8. Februar 2011, 17:51

Ich kenne Fortran nicht wirklich und kann das Programm mangels Lochkarten leider nicht testen, aber müsste die untenstehende Formatierungszeile nicht mit einem I1 beginnen? Wäre für mich jetzt logischer, sofern sich das auf abgespeicherte Integer-Werte/-Register beziehen soll bzw halt für die mitgegebenen Argumente steht.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7477
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Dienstag 8. Februar 2011, 17:55

snafu hat geschrieben:Ich kenne Fortran nicht wirklich und kann das Programm mangels Lochkarten leider nicht testen, aber müsste die untenstehende Formatierungszeile nicht mit einem I1 beginnen? Wäre für mich jetzt logischer, sofern sich das auf abgespeicherte Integer-Werte/-Register beziehen soll bzw halt für die mitgegebenen Argumente steht.
Ich denke eher das steht für Integer und die Länge der Stellen ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
snafu
User
Beiträge: 6045
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Dienstag 8. Februar 2011, 17:58

Das wäre natürlich auch eine Erklärung und ist hinsichtlich dem, was man vom String-Formatting her kennt, auch recht naheliegend. So weit hatte ich in dem Moment nicht gedacht.
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Dienstag 8. Februar 2011, 18:05

Ja, "I3" steht für einen dreistelligen Integer. Das ganze läuft übrigens auch ohne Lochkarten. Sieht man unter anderen an NumPy, was ganze ohne Papier auskommt. ;) Eine etwas kompaktere Lösung ist mir gerade noch eingefallen:

Code: Alles auswählen

PROGRAM einmaleins

    DO i=1,10
        WRITE(*,1001) (i, j, i*j, j=1,10)
    ENDDO
    
    1001 FORMAT (10(I2, ' x ', I2, ' = ', I3, /))

END PROGRAM
Benutzeravatar
snafu
User
Beiträge: 6045
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Dienstag 8. Februar 2011, 18:15

War natürlich nicht ganz ernst gemeint. Von gfortran hab ich z.B. schon mal was gehört. Und gerade habe ich gesehen, dass man das Programm auch einfach durch den GCC jagen könnte.
lunar

Dienstag 8. Februar 2011, 18:17

@snafu: Wenn Du das Programm durch den gcc schickst, dann verwendest Du gfortran ;)
Benutzeravatar
snafu
User
Beiträge: 6045
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Dienstag 8. Februar 2011, 18:24

Ja, richtig. Auf diese Info bin ich ja gestoßen als ich einfach mal gfortran in die Adresszeile eingegeben (d.h. an die in Firefox eingebaute Google-Suche übergeben) habe.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 8. Februar 2011, 18:32

Mit etwas Glück bin ich diesmal schneller als Hyperion ;)

Code: Alles auswählen

(ns one-times-one
  (:use [clojure.contrib.combinatorics :only (cartesian-product)]))

(let [maximum 10
      numbers (range 1 (+ maximum 1))
      combinations (cartesian-product numbers numbers)]
  (doseq [[a b] combinations]
    (printf "%d * %d = %d\n" a b (+ a b))))
Ist quasi ne 1:1 (oder 1*1?) Übersetzung des entsprechenden Python-Codes. Oha, ein pythonisches Lisp :)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Hyperion
Moderator
Beiträge: 7477
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Dienstag 8. Februar 2011, 18:52

Leonidas hat geschrieben:Mit etwas Glück bin ich diesmal schneller als Hyperion ;)
Hey, ich hatte tatsächlich überlegt, aber musste dann leider mal los ;-) (Außerdem bin ich ja noch nicht fit in "thinking lisp" ;-) )

Dafür hier mal meine COMMODORE BASIC V2.0 Variante:

Code: Alles auswählen

10 FORA=1TO10:FORB=1TO10:PRINTB"X"A"="A*B:NEXTB:PRINT:NEXTA
Man kann da auch die Einrückungen schöner gestalten, aber da bin ich zu lange raus :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

Dienstag 8. Februar 2011, 19:12

Scheme (mit Bigloo zu übersetzen):

Code: Alles auswählen

(module test (main main))
(define
  (main argv)
  (let outer
       ((a 1))
       (if (<= a 10)
           (begin (let inner
                       ((b 1))
                       (if (<= b 10)
                           (begin (print b " * " a " = " (* a b))
                                  (inner (+ b 1)))))
                  (newline)
                  (outer (+ a 1))))))
@Hyperion: Bei den ``NEXT``\s könntest Du noch die Variablennamen weglassen. Du Speicherplatzverschwender. ;-)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7477
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Dienstag 8. Februar 2011, 19:39

BlackJack hat geschrieben:Scheme (mit Bigloo zu übersetzen):
@Hyperion: Bei den ``NEXT``\s könntest Du noch die Variablennamen weglassen. Du Speicherplatzverschwender. ;-)
Stimmt. Das ging ja auch ohne 8)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

Dienstag 8. Februar 2011, 19:59

Smalltalk:

Code: Alles auswählen

1 to: 10 do: [:a |
	1 to: 10 do: [:b |
		Transcript show: ('{2} x {1} = {3}' format: { a. b. a * b. }); cr. ].
	Transcript cr. ].
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Dienstag 8. Februar 2011, 20:29

Common Lisp:

Code: Alles auswählen

(defun cartesian-product (a b)
  (loop for i in a
     nconc (loop for j in b
              collect (list i j))))

(flet ((range (min max)
         (loop for i from min to max
            collect i)))
  (let ((numbers (range 1 10)))
    (loop for (i j) in (cartesian-product numbers numbers)
       do (format t "~d * ~d = ~d~%" i j (* i j)))))
Zuletzt geändert von cofi am Mittwoch 9. Februar 2011, 17:09, insgesamt 2-mal geändert.
Antworten