Computer können alles...

Sport für die Gehirnzellen im Denksport Forum.
Von einfachen Rätsel bis hin zu anspruchsvollen Logikaufgaben. Knobelspaß inklusive der Logik Rätsel Lösungen.


Benutzeravatar
Dhe
Verschwörungsfreak
Verschwörungsfreak
Beiträge: 1437
Registriert: 16.11.2005 - 17:57

Computer können alles...

19.08.2009 - 15:28

Folgendes Stück Programmcode (in Java):

Code: Alles auswählen

    int sum()
    {
        int x = 2147483647;
        
        int foo = x+1;
        
        return foo;
    }

Zur Erklärung:

int sum() ist eine Funktion (Methode) die eine einfache Addition durchführt. In ihr wird eine Variable x mit 2147483647 definiert, die dann um eins erhöht ( int foo = x+1; ) werden soll. Anschließend soll das Ergebnis ausgegeben werden (return foo;).

Jetzt die Frage: Wie lautet das Ergebnis und warum?

Ich weiß, daß das für einige lächerlich ist und für andere (scheinbar) unlösbar.

Erstere dürfen nicht mitspielen und Letzteren sei versichert, daß man das innerhalb von fünf Minuten recherchieren kann. Das Schlüsselwort bei so einer Recherche wäre in dem Fall "int".
Zuletzt geändert von Dhe am 19.08.2009 - 15:48, insgesamt 1-mal geändert.

Benutzeravatar
Moredread
Verschwörungsfreak
Verschwörungsfreak
Beiträge: 1176
Registriert: 19.12.2006 - 13:04
Kontaktdaten:

19.08.2009 - 15:37

Ich darf nicht mitspielen *rumheul*

Ist aber wirklich recht einfach. Wer mal ein paar Stunden geproggt hat, sollte auch schon mal vor dem Problem gestanden haben ^_^
In Religionskriegen geht es darum, wer den cooleren imaginären Freund hat.

Benutzeravatar
Dhe
Verschwörungsfreak
Verschwörungsfreak
Beiträge: 1437
Registriert: 16.11.2005 - 17:57

19.08.2009 - 15:47

Ach Problem ist so ein schlimmes Wort....ich würde es eher Quelle unendlicher Freude nennen...

Wobei man hinzufügen muß, daß das aber nicht für alle Sprachen gilt. Typierung (übrigens auch ein Stichwort, das man googeln könnte) wird nicht einheitlich von allen Sprachen gleich gehandhabt.

In dynamisch typiserten Sprachen (z.B. Ruby oder Python) stellt sich das Problem (zumindest in oben dargestellter Form) nicht, was seine Vor- und Nachteile hat.

Aber weil ich so ein netter Mensch bin, habe ich für dich ein Sonderrätsel.

Was macht folgendes Stück Code in Perl:

Code: Alles auswählen

@P=split//,".URRUU\c8R";@d=split//,"\nrekcah xinU / lreP rehtona tsuJ";sub p{
@p{"r$p","u$p"}=(P,P);pipe"r$p","u$p";++$p;($q*=2)+=$f=!fork;map{$P=$P[$f^ord
($p{$_})&6];$p{$_}=/ ^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}=~/^[P.]/&&
close$_&#125;%p;wait until$?;map&#123;/^r/&&<$_>&#125;%p;$_=$d&#91;$q&#93;;sleep rand&#40;2&#41;if/\S/;print
Ich vermute aber mal fast, das du den bereits kennst.

Benutzeravatar
Araex
Rat der 33
Rat der 33
Beiträge: 687
Registriert: 14.06.2006 - 16:37

19.08.2009 - 15:57

Ich hab zwar programmiertechnisch nicht wirklich viel Ahnung. Bis auf ein klein wenig C während dem Studium hab ich nie was programmiert - daher dürfte das Problem hier wohl das einzige sein, welches ich immer noch kenne, weil es einfach tierisch nervig war....

Generell hät ich aber getippt, dass Java einfach gar nichts macht. Soweit ich gehört hab, ist die Sprache etwas eigenwillig.

Benutzeravatar
Moredread
Verschwörungsfreak
Verschwörungsfreak
Beiträge: 1176
Registriert: 19.12.2006 - 13:04
Kontaktdaten:

19.08.2009 - 16:14

Dhe hat geschrieben:Was macht folgendes Stück Code in Perl:

[...]

Ich vermute aber mal fast, das du den bereits kennst.
Nö, kenne ich nicht, und Perl kann ich nicht. Java auch nicht, aber der Code war ja einfach. Wenn ich raten müsste, würde ich sagen, der Text "Just another Unix hacker" erscheint am Bildschirm ^^ aber ich weiß es nicht wirklich.
In Religionskriegen geht es darum, wer den cooleren imaginären Freund hat.

qucuipcu
Area 51 Kloputzer
Area 51 Kloputzer
Beiträge: 8
Registriert: 08.07.2009 - 02:01

20.08.2009 - 14:16

Es kommt "Just another Perl / Unix hacker" heraus.

Bei welcher Eingabe beendet das Programm erfolgreich? :D

Code: Alles auswählen

int main&#40;&#41;
&#123;
	short i;
	std&#58;&#58;cin >> i;
	if&#40;&#40;&#40;i>>8&#41;&0xff&#41;+&#40;&#40;i << 8&#41;&0xff00&#41; == 42&#41;
		return EXIT_SUCCESS;
	else
		return EXIT_FAILURE;
&#125;

Benutzeravatar
Moredread
Verschwörungsfreak
Verschwörungsfreak
Beiträge: 1176
Registriert: 19.12.2006 - 13:04
Kontaktdaten:

20.08.2009 - 17:05

Mir sagt nur i << 8 nix. Was bedeutet denn da <<?
In Religionskriegen geht es darum, wer den cooleren imaginären Freund hat.

Benutzeravatar
Dhe
Verschwörungsfreak
Verschwörungsfreak
Beiträge: 1437
Registriert: 16.11.2005 - 17:57

04.02.2010 - 02:04

qucuipcu hat geschrieben:Es kommt "Just another Perl / Unix hacker" heraus.

Bei welcher Eingabe beendet das Programm erfolgreich? :D
]
Ich bin mal so frei auch eine Leiche auszugraben. Habe es jetzt erst gesehen.

10752
Was bedeutet denn da <<
Acht Bits nach links verschoben.

Also in dem Fall dann:

10752 = 10101000000000 um acht nach rechts = 101010 (42) AND 255 = 101010 (42)

+

10752 = 10101000000000 um acht nach links = 1010100000000000000000 AND 65280 = 0

=

42

EXIT_SUCCESS

Ich freue mich übrigens der Mehrheit der Leser gerade 30 Sekunden ihres Lebens gestohlen zu haben!



Zurück zu „Denksport Rätselforum Logikrätsel“