Zahlenreihe

bitte sehr, die perl variante :

Code:
print 1..100;

edit: argh, war jemand scho schneller, egal :baby:
 
irgend wie ne sinnlose Aufgabe - aber dennoch eine Lösung in AHK: Ist gar nicht so simpel, da man keine loops nutzen darf, und rekursion im eigentlciehn sinn nicht unterstütz werden. - wenn schon gotos, nur ist dies ja ebenfalls nicht erlaubt. Daraus ergibt sich dann ein sehr merkwürdiger "Hack":

Code:
tmpfile = %a_scriptdir%\tmp.txt 

cmdparam = %1%

msgbox % cmdparam 

if (cmdparam = ""){
	cmdparam = 1
}else if (cmdparam = 101){
	;ausgeben
	fileread, sOut, %tmpfile%
	msgbox % sOut
	Exitapp
}


	fileappend, %cmdparam%, %tmpfile% 
	cmdparam += 1
	run, "%a_scriptdir%\%a_scriptname%" %cmdparam% 
ExitApp

Witz am ganzen ist, dass sich dieses Script immer wieder selber startet, mit einem jeweils um 1 erhöhten Parameter - diesen schreibt es in ein temporäres File, und wenn dort alle Zahlen drin stehen, liest es das File ein und gibt es als msgbox aus.

naja :D
 
Original von Lightmaster
das ist aber streng genommen auch nur eine rekursion...

selbst-aufruf...
Irgendwie muss man es ja machen... und hundert mal den (fast) gleichen code ausführen lassen, ist alles andere als Programmieren. Deswegen finde ich diese Aufgabe auch recht seltsam - und laut aufgabenstellung ist Rekursion ja nicht verboten.

Und wenn doch, ist diese Lösung immer noch am weitesten von einer Schleife entfernt...

Ich meine, ich könnte das ganze auch so lösen:

Von einer Website, die (per Zufall^^) alle Zahlen von 1- 100 auflistet den Page Source einlesen, und das dann ausgeben :P
 
Hier mal meine Java Lösung:
Code:
public class Zahlenreihe
{
	static String ausgabe="";	
	public static void main(String[] args)
	{
		System.out.println(num(1));		
	}
	
	public static String num(int n){	
		ausgabe=ausgabe+" "+n;
		if(n!=100)
			 return num(++n);
		else
			return ausgabe;
	}
}
 
in C:

Code:
#include <stdio.h>

int printNumbers(int i) {
    printf("%i\n", i);
    
    if(i < 100) {
        printNumbers(++i);
    }
}

int main(int argc, char* argv[]) {
    printNumbers(0);
    return 0;
}

meine erste rekursive Funktion :)
 
Original von Xalon
Es sind alle Zahlen von 1 bis 100 auf den Bildschirm zu "zaubern",
allerdings OHNE Schleifen und OHNE Gotos im Code zu benutzen.

... dazu zählen also auch Zählschleifen...

aber so als Inspiration, falls du noch ne zweite Batch-Variante posten willst:
hab lang kein Batch mehr gecodet... aber du konntest doch mit "set" Umgebungsvariablen setzen...
und wenn die Variable < 100 ist soll das Script die Variable eins hoch setzen, ausgeben und sich selbst aufrufen...
 
MatLab (oder OpenSource-Alternative: Octave)
Code:
[1:100]'

8 Zeichen.... wer bietet weniger...
btw: wenn man's als Zeilenvektor darstellen will, kann man das ' weglassen und hat nur noch ganze 7 Zeichen....
 
das ganze nochmal in Delphi: (mit Rekursion)
Code:
 procedure Nextnumber(var Number : Integer);
begin
Form2.Listbox1.Items.Add(IntToStr(Number+1)); +
Number := Number + 1;
if Number < 100 then
NextNumber(Number);
end;
 
um auch mal ne vernuenftige Sprache aufzufuehren :) :

ABAP (wer kennts auf Anhieb?):

Code:
REPORT  ZZAHLENREIHE.

DATA: null TYPE i VALUE 0.

START-OF-SELECTION.
PERFORM zahlen CHANGING null.

FORM zahlen CHANGING start type i.
  WRITE / start.
  ADD 1 TO start.
  IF start < 101.
    PERFORM zahlen USING start.
  ELSE.
    EXIT.
  ENDIF.
ENDFORM.
 
Zurück
Oben