====== Mögliche Lösung zur Binärzahlen erzeugen Aufgabe ======
Die Aufgabenstellung finden Sie [[training:binnum:start|hier]]
===== C =====
#include
#include
#include
void binnum ( int length )
{
for (int i=0; i< (1<>= 1;
}
putchar('\n');
}
}
int main (int argc, char* argv[])
{
if (argc<=1)
return 0;
int length = atoi(argv[1]);
if (length<=0)
return 0;
binnum ( length );
}
===== Fortran =====
PROGRAM main
implicit none
integer :: length = 0;
write (*,"(A,$)") "Bitte eine Laenge eingeben: "
read (*,*) length
call bin ( length )
write (*,*) " "
END PROGRAM
SUBROUTINE bin ( length )
implicit none
integer :: maxi, k, length
! 2 ^ length
maxi = 2**length -1
do k=0, maxi
call dec2bin_mod ( k, length )
write (*,*) ""
enddo
END SUBROUTINE
recursive SUBROUTINE dec2bin_mod ( zahl, length )
implicit none
integer :: zahl, tmp, k
integer,INTENT(in) :: length
if (zahl > 0) then
tmp = mod(zahl, 2)
call dec2bin_mod ( zahl / 2, length-1 )
write (*,"(I1,$)") tmp
else
do k=1, length
! führende Nullen ausgeben (auf die angebene Länge ausdehnen)
write (*,("(A,$)")) "0"
enddo
endif
END SUBROUTINE