====== 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