Another update from ingydotnet^djgoku

This commit is contained in:
Ingy döt Net 2015-11-18 06:14:39 +00:00
parent 91df62d461
commit 948b86eafa
7604 changed files with 108452 additions and 22726 deletions

View file

@ -7,3 +7,6 @@ For this task, show how two loops may be nested within each other, with the numb
***
****
*****</pre>
;Reference:
* [[wp:For loop|For loop]] Wikipedia.

View file

@ -0,0 +1,23 @@
LOOPFORC CSECT
USING LOOPFORC,R12
LR R12,R15 set base register
BEGIN SR R2,R2 from 1
LA R4,1 by 1
LA R5,5 to 5
LOOPI BXH R2,R4,ELOOPI i (R2)
LA R8,BUFFER-1
SR R3,R3 from 1
LA R6,1 by 1
LR R7,R2 to i
LOOPJ BXH R3,R6,ELOOPJ j (R3)
LA R8,1(R8)
MVI 0(R8),C'*'
B LOOPJ
ELOOPJ XPRNT BUFFER,L'BUFFER
B LOOPI
ELOOPI EQU *
RETURN XR R15,R15 set return code
BR R14 return to caller
BUFFER DC CL80' '
YREGS
END LOOPFORC

View file

@ -0,0 +1,10 @@
begin
for i := 1 until 5 do
begin
write( "*" );
for j := 2 until i do
begin
writeon( "*" )
end j
end i
end.

View file

@ -0,0 +1,13 @@
open monad io
loop m n | n < m = do
loop' n 0
putStrLn ""
loop m (n + 1)
| else = do return ()
where loop' m n | n <= m = do
putStr "*"
loop' m (n + 1)
| else = do return ()
_ = loop 10 1 ::: IO

View file

@ -0,0 +1,9 @@
**
***
****
*****
******
*******
********
*********
**********

View file

@ -1,6 +0,0 @@
open console
loop m n | n < m = loop' n 0 $ writen "" $ loop m (n+1)
| else = ()
where loop' m n | n <= m = write "*" $ loop' m (n+1)
| else = ()

View file

@ -0,0 +1,10 @@
defmodule Loops do
def loops_for(n) do
Enum.each(1..n, fn i ->
Enum.each(1..i, fn _ -> IO.write "*" end)
IO.puts ""
end)
end
end
Loops.loops_for(5)

View file

@ -0,0 +1,3 @@
DO 1 I = 1,5
1 WRITE (6,*) ("*", J = 1,I)
END

View file

@ -0,0 +1,4 @@
DO 1 I = 1,5
1 WRITE (6,2) (666, J = 1,I)
2 FORMAT(5I1)
END

View file

@ -0,0 +1,5 @@
function range(i) {
return i ? range(i - 1).concat(i) : [];
}
range(5) --> [1, 2, 3, 4, 5]

View file

@ -0,0 +1,12 @@
var s = '';
range(5).forEach(
function (line) {
range(line).forEach(
function () { s += '*'; }
);
s += '\n';
}
);
console.log(s);

View file

@ -0,0 +1,7 @@
console.log(
range(5).reduce(
function (a, n) {
return a + Array(n + 1).join('*') + '\n';
}, ''
)
);

View file

@ -0,0 +1,5 @@
console.log(
range(5).map(function(a) {
return Array(a + 1).join('*');
}).join('\n')
);

View file

@ -0,0 +1,6 @@
for i in 1:5
for j in 1:i
print("*")
end
println()
end

View file

@ -0,0 +1,7 @@
for i in 0..5 {
for _ in 0..(i + 1) {
print!("*");
}
print!("\n");
}

View file

@ -0,0 +1,7 @@
for i=1:5
s=""
for j=1:i
s=s+"*"
end
printf("%s\n",s)
end

View file

@ -0,0 +1,41 @@
org &4000 ; put code at memory address 0x4000
wr_char equ &bb5a ; write ASCII character in register A to screen
; (jumps into CPC ROM)
; put registers on stack so we can return to BASIC later
push bc
push de
push hl
ld b,5 ; loop from 5 to 1
row:
push bc ; save outer loop variable
; calculate inner loop limit (6 - outer loop variable)
ld a,6
sub b
ld b,a
column:
ld a,42 ; asterisk in ASCII
call wr_char
djnz column ; decrement B, jump to label if non-zero
pop bc ; restore outer loop
; print carriage return/line feed
ld a,13
call wr_char
ld a,10
call wr_char
djnz row
; restore registers
pop hl
pop de
pop bc
ret ; return to BASIC interpreter