A+B: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (syntax highlighting fixup automation) |
|||
Line 32: | Line 32: | ||
=={{header|0815}}== |
=={{header|0815}}== |
||
<lang |
<syntaxhighlight lang=0815>|x|+%</syntaxhighlight> |
||
=={{header|11l}}== |
=={{header|11l}}== |
||
{{trans|Python}} |
{{trans|Python}} |
||
< |
<syntaxhighlight lang=11l>print(sum(input().split(‘ ’, group_delimiters' 1B).map(i -> Int(i))))</syntaxhighlight> |
||
=={{header|360 Assembly}}== |
=={{header|360 Assembly}}== |
||
< |
<syntaxhighlight lang=360asm>* A+B 29/08/2015 |
||
APLUSB CSECT |
APLUSB CSECT |
||
USING APLUSB,R12 |
USING APLUSB,R12 |
||
Line 60: | Line 60: | ||
YREGS |
YREGS |
||
END APLUSB |
END APLUSB |
||
</syntaxhighlight> |
|||
</lang> |
|||
{{in}} |
{{in}} |
||
<pre> |
<pre> |
||
Line 75: | Line 75: | ||
=={{header|8th}}== |
=={{header|8th}}== |
||
< |
<syntaxhighlight lang=forth>gets dup . space eval n:+ . cr</syntaxhighlight> |
||
=={{header|8080 Assembly}}== |
=={{header|8080 Assembly}}== |
||
Line 86: | Line 86: | ||
which can take four forms: |
which can take four forms: |
||
< |
<syntaxhighlight lang=8080asm> dad b ; HL += BC (i.e., add BC reg pair to HL reg pair) |
||
dad d ; HL += DE |
dad d ; HL += DE |
||
dad h ; HL += HL (also known as "mul HL by two") |
dad h ; HL += HL (also known as "mul HL by two") |
||
dad sp ; HL += SP (actually the only way to get at SP at all)</ |
dad sp ; HL += SP (actually the only way to get at SP at all)</syntaxhighlight> |
||
Merely doing A+B, with 16-bit numbers so that <math>(-1000 \le A,B \le +1000)</math> will fit, |
Merely doing A+B, with 16-bit numbers so that <math>(-1000 \le A,B \le +1000)</math> will fit, |
||
would look like this: |
would look like this: |
||
< |
<syntaxhighlight lang=8080asm> lxi h,123 |
||
lxi d,456 |
lxi d,456 |
||
dad d |
dad d |
||
; HL is now 579</ |
; HL is now 579</syntaxhighlight> |
||
Then, the following is what is required to wrap it all in a CP/M command line utility. |
Then, the following is what is required to wrap it all in a CP/M command line utility. |
||
Line 104: | Line 104: | ||
fits exactly in one CP/M block. |
fits exactly in one CP/M block. |
||
< |
<syntaxhighlight lang=8080asm>fcb1n: equ 5Ch+1 ; "Filename" in first FCB |
||
fcb2n: equ 6Ch+1 ; "Filename" in second FCB |
fcb2n: equ 6Ch+1 ; "Filename" in second FCB |
||
puts: equ 9 ; CP/M call to write string to console |
puts: equ 9 ; CP/M call to write string to console |
||
Line 193: | Line 193: | ||
negf: db 0 ; Space for negative flag |
negf: db 0 ; Space for negative flag |
||
db '-00000' |
db '-00000' |
||
num: db '$' ; Space for number</ |
num: db '$' ; Space for number</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
Line 209: | Line 209: | ||
=={{header|AArch64 Assembly}}== |
=={{header|AArch64 Assembly}}== |
||
{{works with|as|Raspberry Pi 3B version Buster 64 bits}} |
{{works with|as|Raspberry Pi 3B version Buster 64 bits}} |
||
< |
<syntaxhighlight lang=AArch64 Assembly> |
||
/* ARM assembly AARCH64 Raspberry PI 3B */ |
/* ARM assembly AARCH64 Raspberry PI 3B */ |
||
/* program addAetB.s */ |
/* program addAetB.s */ |
||
Line 406: | Line 406: | ||
.align 4 // instruction to realign the following routines |
.align 4 // instruction to realign the following routines |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|ABAP}}== |
=={{header|ABAP}}== |
||
< |
<syntaxhighlight lang=ABAP>report z_sum_a_b. |
||
data: lv_output type i. |
data: lv_output type i. |
||
selection-screen begin of block input. |
selection-screen begin of block input. |
||
Line 423: | Line 423: | ||
start-of-selection. |
start-of-selection. |
||
lv_output = p_first + p_second. |
lv_output = p_first + p_second. |
||
write : / lv_output.</ |
write : / lv_output.</syntaxhighlight> |
||
=={{header|Action!}}== |
=={{header|Action!}}== |
||
< |
<syntaxhighlight lang=Action!>BYTE FUNC Find(CHAR ARRAY s CHAR c BYTE POINTER err) |
||
BYTE i |
BYTE i |
||
FOR i=1 TO s(0) |
FOR i=1 TO s(0) |
||
Line 487: | Line 487: | ||
PutE(); |
PutE(); |
||
OD |
OD |
||
RETURN</ |
RETURN</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/A+B.png Screenshot from Atari 8-bit computer] |
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/A+B.png Screenshot from Atari 8-bit computer] |
||
Line 503: | Line 503: | ||
=={{header|Ada}}== |
=={{header|Ada}}== |
||
< |
<syntaxhighlight lang=Ada>-- Standard I/O Streams |
||
with Ada.Integer_Text_Io; |
with Ada.Integer_Text_Io; |
||
Line 512: | Line 512: | ||
Ada.Integer_Text_Io.Get (Item => B); |
Ada.Integer_Text_Io.Get (Item => B); |
||
Ada.Integer_Text_Io.Put (A+B); |
Ada.Integer_Text_Io.Put (A+B); |
||
end APlusB;</ |
end APlusB;</syntaxhighlight> |
||
Using appropriate user defined types: |
Using appropriate user defined types: |
||
< |
<syntaxhighlight lang=Ada>with Ada.Text_IO; |
||
procedure A_Plus_B is |
procedure A_Plus_B is |
||
Line 525: | Line 525: | ||
IO.Get (B); |
IO.Get (B); |
||
IO.Put (A + B, Width => 4, Base => 10); |
IO.Put (A + B, Width => 4, Base => 10); |
||
end A_Plus_B;</ |
end A_Plus_B;</syntaxhighlight> |
||
=={{header|Agena}}== |
=={{header|Agena}}== |
||
Tested with Agena 2.9.5 Win32 |
Tested with Agena 2.9.5 Win32 |
||
< |
<syntaxhighlight lang=agena>scope |
||
local f := trim( io.read() ) split " "; # read a line and split into fields |
local f := trim( io.read() ) split " "; # read a line and split into fields |
||
local a := tonumber( f[ 1 ] ); |
local a := tonumber( f[ 1 ] ); |
||
local b := tonumber( f[ 2 ] ); |
local b := tonumber( f[ 2 ] ); |
||
print( a + b ) |
print( a + b ) |
||
epocs</ |
epocs</syntaxhighlight> |
||
=={{header|Aime}}== |
=={{header|Aime}}== |
||
< |
<syntaxhighlight lang=aime>file f; |
||
list l; |
list l; |
||
Line 543: | Line 543: | ||
f_list(f, l, 0); |
f_list(f, l, 0); |
||
o_integer(atoi(l[0]) + atoi(l[1])); |
o_integer(atoi(l[0]) + atoi(l[1])); |
||
o_newline();</ |
o_newline();</syntaxhighlight> |
||
=={{header|ALGOL 60}}== |
=={{header|ALGOL 60}}== |
||
{{works with|A60}} |
{{works with|A60}} |
||
< |
<syntaxhighlight lang=algol60>begin |
||
comment A+B; |
comment A+B; |
||
integer a,b; |
integer a,b; |
||
ininteger(0,a); ininteger(0,b); |
ininteger(0,a); ininteger(0,b); |
||
outinteger(1,a+b) |
outinteger(1,a+b) |
||
end </ |
end </syntaxhighlight> |
||
{{in}} |
{{in}} |
||
<pre> |
<pre> |
||
Line 569: | Line 569: | ||
{{wont work with|ELLA ALGOL 68|Any (with appropriate job cards) - missing transput function "read int"}} |
{{wont work with|ELLA ALGOL 68|Any (with appropriate job cards) - missing transput function "read int"}} |
||
===Console=== |
===Console=== |
||
< |
<syntaxhighlight lang=algol68>print((read int + read int))</syntaxhighlight> |
||
Input: |
Input: |
||
<pre> |
<pre> |
||
Line 580: | Line 580: | ||
===File=== |
===File=== |
||
< |
<syntaxhighlight lang=algol68>open(stand in, "input.txt", stand in channel); |
||
open(stand out, "output.txt", stand out channel); |
open(stand out, "output.txt", stand out channel); |
||
print((read int + read int))</ |
print((read int + read int))</syntaxhighlight> |
||
Input "input.txt": |
Input "input.txt": |
||
<pre> |
<pre> |
||
Line 593: | Line 593: | ||
=={{header|ALGOL W}}== |
=={{header|ALGOL W}}== |
||
< |
<syntaxhighlight lang=algolw>begin |
||
integer a, b; |
integer a, b; |
||
read( a, b ); |
read( a, b ); |
||
write( a + b ) |
write( a + b ) |
||
end.</ |
end.</syntaxhighlight> |
||
=={{header|Amazing Hopper}}== |
=={{header|Amazing Hopper}}== |
||
< |
<syntaxhighlight lang=Amazing Hopper> |
||
#include <hbasic.h> |
#include <hbasic.h> |
||
Line 615: | Line 615: | ||
Print("Suma : ", Token(1),Val(Token$(msg)) Plus (Token(2),Val(Token$(msg))), Newl) |
Print("Suma : ", Token(1),Val(Token$(msg)) Plus (Token(2),Val(Token$(msg))), Newl) |
||
End |
End |
||
</syntaxhighlight> |
|||
</lang> |
|||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
Line 625: | Line 625: | ||
Version dos: hopper-BASIC acepta "programación fluída" |
Version dos: hopper-BASIC acepta "programación fluída" |
||
< |
<syntaxhighlight lang=Amazing Hopper> |
||
#include <hbasic.h> |
#include <hbasic.h> |
||
Line 646: | Line 646: | ||
Take(A, B), and Add It; then Print It with a Newl |
Take(A, B), and Add It; then Print It with a Newl |
||
End |
End |
||
</syntaxhighlight> |
|||
</lang> |
|||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
Line 660: | Line 660: | ||
=={{header|Apex}}== |
=={{header|Apex}}== |
||
< |
<syntaxhighlight lang=Apex> |
||
static Integer sumOfTwoNums(Integer A, Integer B) { |
static Integer sumOfTwoNums(Integer A, Integer B) { |
||
Line 677: | Line 677: | ||
A = 50 and B = -25: 25 |
A = 50 and B = -25: 25 |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|APL}}== |
=={{header|APL}}== |
||
<lang |
<syntaxhighlight lang=APL> ⎕+⎕ </syntaxhighlight> |
||
=={{header|AppleScript}}== |
=={{header|AppleScript}}== |
||
Open the '''AppleScript Editor''' and save this as '''A+B.scpt''' on your Desktop |
Open the '''AppleScript Editor''' and save this as '''A+B.scpt''' on your Desktop |
||
< |
<syntaxhighlight lang=AppleScript>on run argv |
||
try |
try |
||
return ((first item of argv) as integer) + (second item of argv) as integer |
return ((first item of argv) as integer) + (second item of argv) as integer |
||
Line 690: | Line 690: | ||
return "Usage with -1000 <= a,b <= 1000: " & tab & " A+B.scpt a b" |
return "Usage with -1000 <= a,b <= 1000: " & tab & " A+B.scpt a b" |
||
end try |
end try |
||
end run</ |
end run</syntaxhighlight> |
||
To make this run in Terminal open the '''Terminal.app''' and type |
To make this run in Terminal open the '''Terminal.app''' and type |
||
Line 700: | Line 700: | ||
=={{header|Arc}}== |
=={{header|Arc}}== |
||
< |
<syntaxhighlight lang=Arc> |
||
(prn (+ (read) |
(prn (+ (read) |
||
(read))) |
(read))) |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Argile}}== |
=={{header|Argile}}== |
||
{{trans|C}} |
{{trans|C}} |
||
{{works with|Argile|1.0.0}} |
{{works with|Argile|1.0.0}} |
||
< |
<syntaxhighlight lang=Argile>(: Standard input-output streams :) |
||
use std, array |
use std, array |
||
Cfunc scanf "%d%d" (&val int a) (&val int b) |
Cfunc scanf "%d%d" (&val int a) (&val int b) |
||
printf "%d\n" (a + b)</ |
printf "%d\n" (a + b)</syntaxhighlight> |
||
< |
<syntaxhighlight lang=Argile>(: Input file : input.txt :) |
||
(: Output file: output.txt :) |
(: Output file: output.txt :) |
||
use std, array |
use std, array |
||
Line 721: | Line 721: | ||
fprintf out "%d\n" (x+y) |
fprintf out "%d\n" (x+y) |
||
fclose in |
fclose in |
||
fclose out</ |
fclose out</syntaxhighlight> |
||
=={{header|ARM Assembly}}== |
=={{header|ARM Assembly}}== |
||
Line 727: | Line 727: | ||
Exploiting C standard library functions (scanf and printf). |
Exploiting C standard library functions (scanf and printf). |
||
Requires arm-linux-gnueabi-gcc and qemu-arm. Compile with: |
Requires arm-linux-gnueabi-gcc and qemu-arm. Compile with: |
||
< |
<syntaxhighlight lang=ARM_Assembly>arm-linux-gnueabi-as src.s -o src.o && arm-linux-gnueabi-gcc -static src.o -o run && qemu-arm run</syntaxhighlight> |
||
< |
<syntaxhighlight lang=ARM_Assembly>.text |
||
.global main |
.global main |
||
.extern printf |
.extern printf |
||
Line 755: | Line 755: | ||
.bss |
.bss |
||
num_a: .skip 4 |
num_a: .skip 4 |
||
num_b: .skip 4</ |
num_b: .skip 4</syntaxhighlight> |
||
{{works with|gcc|Linux}} |
{{works with|gcc|Linux}} |
||
Line 775: | Line 775: | ||
Save in ab.S |
Save in ab.S |
||
Build with: |
Build with: |
||
< |
<syntaxhighlight lang=ARM_Assembly>as -o ab.o ab.S |
||
ld -o a.out ab.o</ |
ld -o a.out ab.o</syntaxhighlight> |
||
< |
<syntaxhighlight lang=ARM_Assembly>.data |
||
.align 2 |
.align 2 |
||
.code 32 |
.code 32 |
||
Line 1,291: | Line 1,291: | ||
movlt r0, #0 |
movlt r0, #0 |
||
ldmfd sp!, {r7, pc} |
ldmfd sp!, {r7, pc} |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Arturo}}== |
=={{header|Arturo}}== |
||
< |
<syntaxhighlight lang=rebol>while ø [ |
||
x: map split.words input "give me 2 numbers:" 'x -> to :integer x |
x: map split.words input "give me 2 numbers:" 'x -> to :integer x |
||
print add x\0 x\1 |
print add x\0 x\1 |
||
] |
] |
||
</syntaxhighlight> |
|||
</lang> |
|||
{{out}} |
{{out}} |
||
Line 1,316: | Line 1,316: | ||
=={{header|ATS}}== |
=={{header|ATS}}== |
||
< |
<syntaxhighlight lang=ATS> |
||
(* ****** ****** *) |
(* ****** ****** *) |
||
// |
// |
||
Line 1,343: | Line 1,343: | ||
(* ****** ****** *) |
(* ****** ****** *) |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|AutoHotkey}}== |
=={{header|AutoHotkey}}== |
||
This handles more than two inputs |
This handles more than two inputs |
||
< |
<syntaxhighlight lang=AutoHotkey>Gui, Add, Edit, vEdit ;Enter your A+B, i.e. 5+3 or 5+3+1+4+6+2 |
||
Gui, Add, Button, gAdd, Add |
Gui, Add, Button, gAdd, Add |
||
Gui, Add, Edit, ReadOnly x+10 w80 |
Gui, Add, Edit, ReadOnly x+10 w80 |
||
Line 1,359: | Line 1,359: | ||
GuiControl, Text, Edit2, %var% ;here it displays var in the second edit control |
GuiControl, Text, Edit2, %var% ;here it displays var in the second edit control |
||
var := 0 ;here it makes sure var is 0 so it won't contain the value from the previous addition |
var := 0 ;here it makes sure var is 0 so it won't contain the value from the previous addition |
||
return</ |
return</syntaxhighlight> |
||
=={{header|AutoIt}}== |
=={{header|AutoIt}}== |
||
< |
<syntaxhighlight lang=AutoIt>;AutoIt Version: 3.2.10.0 |
||
$num = "45 54" |
$num = "45 54" |
||
consolewrite ("Sum of " & $num & " is: " & sum($num)) |
consolewrite ("Sum of " & $num & " is: " & sum($num)) |
||
Line 1,368: | Line 1,368: | ||
$numm = StringSplit($numbers," ") |
$numm = StringSplit($numbers," ") |
||
Return $numm[1]+$numm[$numm[0]] |
Return $numm[1]+$numm[$numm[0]] |
||
EndFunc</ |
EndFunc</syntaxhighlight> |
||
===Example2=== |
===Example2=== |
||
This version can handle any amount of numbers in the input: |
This version can handle any amount of numbers in the input: |
||
< |
<syntaxhighlight lang=AutoIt>ConsoleWrite("# A+B:" & @CRLF) |
||
Func Sum($inp) |
Func Sum($inp) |
||
Line 1,393: | Line 1,393: | ||
; so the program works correctly even with this input: |
; so the program works correctly even with this input: |
||
Local $inp = "999x y 42 -999", $res = Sum($inp) |
Local $inp = "999x y 42 -999", $res = Sum($inp) |
||
ConsoleWrite($inp & " --> " & $res & @CRLF)</ |
ConsoleWrite($inp & " --> " & $res & @CRLF)</syntaxhighlight> |
||
{{Out}} |
{{Out}} |
||
<pre> |
<pre> |
||
Line 1,402: | Line 1,402: | ||
=={{header|AWK}}== |
=={{header|AWK}}== |
||
< |
<syntaxhighlight lang=awk>{print $1 + $2}</syntaxhighlight> |
||
=={{header|BASIC}}== |
=={{header|BASIC}}== |
||
< |
<syntaxhighlight lang=qbasic>DEFINT A-Z |
||
tryagain: |
tryagain: |
||
Line 1,420: | Line 1,420: | ||
ELSE |
ELSE |
||
GOTO tryagain |
GOTO tryagain |
||
END IF</ |
END IF</syntaxhighlight> |
||
==={{header|Applesoft BASIC}}=== |
==={{header|Applesoft BASIC}}=== |
||
< |
<syntaxhighlight lang=ApplesoftBasic>10 BH = PEEK(37) |
||
20 INPUT ""; A$ : I$ = A$ : VTAB BH : A = PEEK(40) + PEEK(41) * 256 : FOR S = 0 TO 39 : IF PEEK(A + S) = 160 THEN NEXT S : S = 0 |
20 INPUT ""; A$ : I$ = A$ : VTAB BH : A = PEEK(40) + PEEK(41) * 256 : FOR S = 0 TO 39 : IF PEEK(A + S) = 160 THEN NEXT S : S = 0 |
||
40 IF LEN(I$) THEN IF MID$(I$, LEN(I$), 1) = " " THEN I$ = MID$(I$, 1, LEN(I$) - 1) : GOTO 40RTRIM |
40 IF LEN(I$) THEN IF MID$(I$, LEN(I$), 1) = " " THEN I$ = MID$(I$, 1, LEN(I$) - 1) : GOTO 40RTRIM |
||
Line 1,433: | Line 1,433: | ||
100 VTAB BH |
100 VTAB BH |
||
110 HTAB LEN(A$) + 2 + S |
110 HTAB LEN(A$) + 2 + S |
||
120 PRINT C%</ |
120 PRINT C%</syntaxhighlight> |
||
==={{header|BaCon}}=== |
==={{header|BaCon}}=== |
||
< |
<syntaxhighlight lang=qbasic>' A+B |
||
INPUT d$ |
INPUT d$ |
||
PRINT VAL(TOKEN$(d$, 1)) + VAL(TOKEN$(d$, 2))</ |
PRINT VAL(TOKEN$(d$, 1)) + VAL(TOKEN$(d$, 2))</syntaxhighlight> |
||
==={{header|BASIC256}}=== |
==={{header|BASIC256}}=== |
||
< |
<syntaxhighlight lang=basic256>dim a(2) |
||
input "Enter two numbers separated by a space?", t$ |
input "Enter two numbers separated by a space?", t$ |
||
a = explode(t$," ") |
a = explode(t$," ") |
||
print t$ & " " & int(a[0]) + int(a[1])</ |
print t$ & " " & int(a[0]) + int(a[1])</syntaxhighlight> |
||
==={{header|BBC BASIC}}=== |
==={{header|BBC BASIC}}=== |
||
< |
<syntaxhighlight lang=bbc> REPEAT |
||
hereY% = VPOS |
hereY% = VPOS |
||
INPUT LINE "" q$ |
INPUT LINE "" q$ |
||
Line 1,460: | Line 1,460: | ||
PRINT TAB(hereX%, hereY%) ; a + b |
PRINT TAB(hereX%, hereY%) ; a + b |
||
ENDIF |
ENDIF |
||
UNTIL FALSE</ |
UNTIL FALSE</syntaxhighlight> |
||
That seems overly complicated. What's wrong with: |
That seems overly complicated. What's wrong with: |
||
< |
<syntaxhighlight lang=bbc> REPEAT |
||
INPUT LINE "" q$ |
INPUT LINE "" q$ |
||
space% = INSTR(q$," ") |
space% = INSTR(q$," ") |
||
PRINT VAL LEFT$(q$,space%-1) + VAL MID$(q$,space%+1) |
PRINT VAL LEFT$(q$,space%-1) + VAL MID$(q$,space%+1) |
||
UNTIL FALSE</ |
UNTIL FALSE</syntaxhighlight> |
||
==={{header|Commodore BASIC}}=== |
==={{header|Commodore BASIC}}=== |
||
< |
<syntaxhighlight lang=qbasic>10 PRINT "ENTER TWO NUMBERS, SEPARATED BY A SPACE: "; |
||
20 INPUT X$ |
20 INPUT X$ |
||
30 I = 1 : N = LEN(X$) |
30 I = 1 : N = LEN(X$) |
||
Line 1,475: | Line 1,475: | ||
50 A = VAL(LEFT$(X$,I)) |
50 A = VAL(LEFT$(X$,I)) |
||
60 B = VAL(RIGHT$(X$,N-1)) |
60 B = VAL(RIGHT$(X$,N-1)) |
||
70 PRINT A+B</ |
70 PRINT A+B</syntaxhighlight> |
||
==={{header|FreeBASIC}}=== |
==={{header|FreeBASIC}}=== |
||
< |
<syntaxhighlight lang=freebasic>' fb 1.05.0 Win64 |
||
Dim As Integer a, b |
Dim As Integer a, b |
||
Line 1,494: | Line 1,494: | ||
Print |
Print |
||
Print "Press any key to quit the program" |
Print "Press any key to quit the program" |
||
Sleep</ |
Sleep</syntaxhighlight> |
||
==={{header|FUZE BASIC}}=== |
==={{header|FUZE BASIC}}=== |
||
< |
<syntaxhighlight lang=qbasic>INPUT n$ |
||
PRINT VAL(LEFT$(n$,(LEN(STR$(VAL(n$))))))+VAL(RIGHT$(n$,(LEN(n$)-LEN(STR$(VAL(n$)))-1))) |
PRINT VAL(LEFT$(n$,(LEN(STR$(VAL(n$))))))+VAL(RIGHT$(n$,(LEN(n$)-LEN(STR$(VAL(n$)))-1))) |
||
END</ |
END</syntaxhighlight> |
||
==={{header|IS-BASIC}}=== |
==={{header|IS-BASIC}}=== |
||
< |
<syntaxhighlight lang=IS-BASIC>100 DO |
||
110 INPUT PROMPT "Ener two integers separated by a comma: ":A,B |
110 INPUT PROMPT "Ener two integers separated by a comma: ":A,B |
||
120 IF ABS(A)>1000 OR ABS(B)>1000 OR IP(A)<>A OR IP(B)<>B THEN |
120 IF ABS(A)>1000 OR ABS(B)>1000 OR IP(A)<>A OR IP(B)<>B THEN |
||
Line 1,510: | Line 1,510: | ||
160 EXIT DO |
160 EXIT DO |
||
170 END IF |
170 END IF |
||
180 LOOP</ |
180 LOOP</syntaxhighlight> |
||
==={{header|Liberty BASIC}}=== |
==={{header|Liberty BASIC}}=== |
||
< |
<syntaxhighlight lang=lb>input, n$ |
||
print eval(word$(n$,1);" + ";word$(n$,2))</ |
print eval(word$(n$,1);" + ";word$(n$,2))</syntaxhighlight> |
||
==={{header|OxygenBasic}}=== |
==={{header|OxygenBasic}}=== |
||
Line 1,530: | Line 1,530: | ||
print val(s)+val(mid(s,i))+cr |
print val(s)+val(mid(s,i))+cr |
||
loop |
loop |
||
</syntaxhighlight> |
|||
</lang> |
|||
==={{header|Sinclair ZX81 BASIC}}=== |
==={{header|Sinclair ZX81 BASIC}}=== |
||
< |
<syntaxhighlight lang=basic>10 INPUT A$ |
||
20 LET I=1 |
20 LET I=1 |
||
30 IF A$(I)=" " THEN GOTO 60 |
30 IF A$(I)=" " THEN GOTO 60 |
||
40 LET I=I+1 |
40 LET I=I+1 |
||
50 GOTO 30 |
50 GOTO 30 |
||
60 PRINT VAL A$( TO I-1)+VAL A$(I+1 TO )</ |
60 PRINT VAL A$( TO I-1)+VAL A$(I+1 TO )</syntaxhighlight> |
||
==={{Header|Tiny BASIC}}=== |
==={{Header|Tiny BASIC}}=== |
||
< |
<syntaxhighlight lang=Tiny BASIC>REM Rosetta Code problem: https://rosettacode.org/wiki/A+B |
||
REM by Jjuanhdez, 06/2022 |
REM by Jjuanhdez, 06/2022 |
||
Line 1,558: | Line 1,558: | ||
60 PRINT "Both integers must be in the range [-1000..1000] - try again." |
60 PRINT "Both integers must be in the range [-1000..1000] - try again." |
||
GOTO 10 |
GOTO 10 |
||
70 END</ |
70 END</syntaxhighlight> |
||
==={{header|True BASIC}}=== |
==={{header|True BASIC}}=== |
||
< |
<syntaxhighlight lang=qbasic>DO |
||
INPUT PROMPT "Enter two integers separated by a comma: ": A, B |
INPUT PROMPT "Enter two integers separated by a comma: ": A, B |
||
IF ABS(A)>1000 OR ABS(B)>1000 OR IP(A)<>A OR IP(B)<>B THEN |
IF ABS(A)>1000 OR ABS(B)>1000 OR IP(A)<>A OR IP(B)<>B THEN |
||
Line 1,571: | Line 1,571: | ||
END IF |
END IF |
||
LOOP |
LOOP |
||
END</ |
END</syntaxhighlight> |
||
==={{header|uBasic/4tH}}=== |
==={{header|uBasic/4tH}}=== |
||
<lang>s = FUNC(_GetInt(1000)) + FUNC(_GetInt(1000)) |
<lang>s = FUNC(_GetInt(1000)) + FUNC(_GetInt(1000)) |
||
Line 1,586: | Line 1,586: | ||
Print "Wrong, must be between "; -a@; " and "; a@; ". Try again.." |
Print "Wrong, must be between "; -a@; " and "; a@; ". Try again.." |
||
Loop |
Loop |
||
Return (b@)</ |
Return (b@)</syntaxhighlight> |
||
=={{header|Batch File}}== |
=={{header|Batch File}}== |
||
Prompts version |
Prompts version |
||
< |
<syntaxhighlight lang=dos>::aplusb.cmd |
||
@echo off |
@echo off |
||
setlocal |
setlocal |
||
Line 1,597: | Line 1,597: | ||
set /a c=a+b |
set /a c=a+b |
||
echo %c% |
echo %c% |
||
endlocal</ |
endlocal</syntaxhighlight> |
||
All on the commandline version |
All on the commandline version |
||
< |
<syntaxhighlight lang=dos>::aplusb.cmd |
||
@echo off |
@echo off |
||
setlocal |
setlocal |
||
Line 1,606: | Line 1,606: | ||
set /a c=a+b |
set /a c=a+b |
||
echo %c% |
echo %c% |
||
endlocal</ |
endlocal</syntaxhighlight> |
||
Formula on the command line version |
Formula on the command line version |
||
< |
<syntaxhighlight lang=dos>::aplusb.cmd |
||
@echo off |
@echo off |
||
setlocal |
setlocal |
||
set /a c=%~1 |
set /a c=%~1 |
||
echo %c% |
echo %c% |
||
endlocal</ |
endlocal</syntaxhighlight> |
||
Example of 'Formula on the command line version' |
Example of 'Formula on the command line version' |
||
<pre> |
<pre> |
||
Line 1,622: | Line 1,622: | ||
</pre> |
</pre> |
||
Parse the input stream version (thanks to Tom Lavedas on alt.msdos.batch.nt) |
Parse the input stream version (thanks to Tom Lavedas on alt.msdos.batch.nt) |
||
< |
<syntaxhighlight lang=dos>::aplusb.cmd |
||
@echo off |
@echo off |
||
setlocal |
setlocal |
||
Line 1,634: | Line 1,634: | ||
set /a res=res+%1 |
set /a res=res+%1 |
||
shift |
shift |
||
if "%1" neq "" goto :add</ |
if "%1" neq "" goto :add</syntaxhighlight> |
||
Example of 'parse the input stream version' |
Example of 'parse the input stream version' |
||
<pre>>aplusb |
<pre>>aplusb |
||
Line 1,645: | Line 1,645: | ||
=={{header|bc}}== |
=={{header|bc}}== |
||
{{Works with|GNU bc}} |
{{Works with|GNU bc}} |
||
<lang |
<syntaxhighlight lang=bc>read() + read()</syntaxhighlight> |
||
=={{header|Befunge}}== |
=={{header|Befunge}}== |
||
<lang |
<syntaxhighlight lang=befunge>&&+.@</syntaxhighlight> |
||
=={{header|Bird}}== |
=={{header|Bird}}== |
||
< |
<syntaxhighlight lang=Bird>use Console Math |
||
define Main |
define Main |
||
Line 1,657: | Line 1,657: | ||
$b Console.Read |
$b Console.Read |
||
Console.Println Math.Add $a $b |
Console.Println Math.Add $a $b |
||
end</ |
end</syntaxhighlight> |
||
=={{header|BlooP}}== |
=={{header|BlooP}}== |
||
Line 1,670: | Line 1,670: | ||
=={{header|bootBASIC}}== |
=={{header|bootBASIC}}== |
||
Both numbers are entered separately. |
Both numbers are entered separately. |
||
< |
<syntaxhighlight lang=bootBASIC>10 print "Number 1"; |
||
20 input a |
20 input a |
||
30 print "Number 2"; |
30 print "Number 2"; |
||
40 input b |
40 input b |
||
50 print a+b</ |
50 print a+b</syntaxhighlight> |
||
=={{header|BQN}}== |
=={{header|BQN}}== |
||
Line 1,680: | Line 1,680: | ||
{{works with|https://github.com/dzaima/CBQN CBQN}} |
{{works with|https://github.com/dzaima/CBQN CBQN}} |
||
< |
<syntaxhighlight lang=bqn>#!/usr/bin/env bqn |
||
# Cut 𝕩 at occurrences of 𝕨, removing separators and empty segments |
# Cut 𝕩 at occurrences of 𝕨, removing separators and empty segments |
||
Line 1,693: | Line 1,693: | ||
# •GetLine and •_while_ are nonstandard CBQN extensions. |
# •GetLine and •_while_ are nonstandard CBQN extensions. |
||
{•Show +´ ParseNums 𝕩 ⋄ •GetLine@} •_while_ (@⊸≢) •GetLine@</ |
{•Show +´ ParseNums 𝕩 ⋄ •GetLine@} •_while_ (@⊸≢) •GetLine@</syntaxhighlight> |
||
=={{header|Bracmat}}== |
=={{header|Bracmat}}== |
||
<code>filter</code> is a pattern that checks that input is a non-fractional number not less than -1000 and not greater than 1000. The filter is applied to each input. |
<code>filter</code> is a pattern that checks that input is a non-fractional number not less than -1000 and not greater than 1000. The filter is applied to each input. |
||
< |
<syntaxhighlight lang=bracmat>( out |
||
$ ( put$"Enter two integer numbers between -1000 and 1000:" |
$ ( put$"Enter two integer numbers between -1000 and 1000:" |
||
& (filter=~/#%:~<-1000:~>1000) |
& (filter=~/#%:~<-1000:~>1000) |
||
Line 1,704: | Line 1,704: | ||
| "Invalid input. Try again" |
| "Invalid input. Try again" |
||
) |
) |
||
);</ |
);</syntaxhighlight> |
||
=={{header|Brainf***}}== |
=={{header|Brainf***}}== |
||
< |
<syntaxhighlight lang=brainf***>INPUT AND SUMMATION |
||
TODO if first symbol is a minus sign print Qgo awayQ |
TODO if first symbol is a minus sign print Qgo awayQ |
||
+> initialize sum to one |
+> initialize sum to one |
||
Line 1,730: | Line 1,730: | ||
>++++++++++++++++++++++++++++++++++++++++++++++++> convert remainder to ascii digit |
>++++++++++++++++++++++++++++++++++++++++++++++++> convert remainder to ascii digit |
||
] |
] |
||
<[.<<] print ascii digits</ |
<[.<<] print ascii digits</syntaxhighlight> |
||
=={{header|Brat}}== |
=={{header|Brat}}== |
||
< |
<syntaxhighlight lang=brat>numbers = g.split[0,1].map(:to_i) |
||
p numbers[0] + numbers[1] #Prints the sum of the input</ |
p numbers[0] + numbers[1] #Prints the sum of the input</syntaxhighlight> |
||
=={{header|Burlesque}}== |
=={{header|Burlesque}}== |
||
<lang |
<syntaxhighlight lang=burlesque>ps++</syntaxhighlight> |
||
=={{header|C}}== |
=={{header|C}}== |
||
< |
<syntaxhighlight lang=c>// Standard input-output streams |
||
#include <stdio.h> |
#include <stdio.h> |
||
int main() |
int main() |
||
Line 1,748: | Line 1,748: | ||
printf("%d\n", a + b); |
printf("%d\n", a + b); |
||
return 0; |
return 0; |
||
}</ |
}</syntaxhighlight> |
||
< |
<syntaxhighlight lang=c>// Input file: input.txt |
||
// Output file: output.txt |
// Output file: output.txt |
||
#include <stdio.h> |
#include <stdio.h> |
||
Line 1,760: | Line 1,760: | ||
printf("%d\n", a + b); |
printf("%d\n", a + b); |
||
return 0; |
return 0; |
||
}</ |
}</syntaxhighlight> |
||
<syntaxhighlight lang=c> |
|||
<lang c> |
|||
#include <stdio.h> |
#include <stdio.h> |
||
#include <stdlib.h> |
#include <stdlib.h> |
||
Line 1,769: | Line 1,769: | ||
return 0; |
return 0; |
||
} |
} |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|C sharp|C#}}== |
=={{header|C sharp|C#}}== |
||
< |
<syntaxhighlight lang=csharp>using System; |
||
using System.Linq; |
using System.Linq; |
||
Line 1,781: | Line 1,781: | ||
Console.WriteLine(Console.ReadLine().Split().Select(int.Parse).Sum()); |
Console.WriteLine(Console.ReadLine().Split().Select(int.Parse).Sum()); |
||
} |
} |
||
}</ |
}</syntaxhighlight> |
||
Another way (not recommended since it does not work with more than two numbers): |
Another way (not recommended since it does not work with more than two numbers): |
||
< |
<syntaxhighlight lang=csharp>using System; |
||
class Program |
class Program |
||
Line 1,796: | Line 1,796: | ||
Console.WriteLine(sum.ToString()); |
Console.WriteLine(sum.ToString()); |
||
} |
} |
||
}</ |
}</syntaxhighlight> |
||
=={{header|C++}}== |
=={{header|C++}}== |
||
< |
<syntaxhighlight lang=cpp>// Standard input-output streams |
||
#include <iostream> |
#include <iostream> |
||
using namespace std; |
using namespace std; |
||
Line 1,807: | Line 1,807: | ||
cin >> a >> b; |
cin >> a >> b; |
||
cout << a + b << endl; |
cout << a + b << endl; |
||
}</ |
}</syntaxhighlight> |
||
< |
<syntaxhighlight lang=cpp>// Input file: input.txt |
||
// Output file: output.txt |
// Output file: output.txt |
||
#include <fstream> |
#include <fstream> |
||
Line 1,820: | Line 1,820: | ||
out << a + b << endl; |
out << a + b << endl; |
||
return 0; |
return 0; |
||
}</ |
}</syntaxhighlight> |
||
=={{header|Ceylon}}== |
=={{header|Ceylon}}== |
||
< |
<syntaxhighlight lang=ceylon>shared void run() { |
||
print("please enter two numbers for me to add"); |
print("please enter two numbers for me to add"); |
||
Line 1,847: | Line 1,847: | ||
} |
} |
||
} |
} |
||
}</ |
}</syntaxhighlight> |
||
=={{header|Clojure}}== |
=={{header|Clojure}}== |
||
< |
<syntaxhighlight lang=clojure>(println (+ (Integer/parseInt (read-line)) (Integer/parseInt (read-line)))) |
||
3 |
3 |
||
4 |
4 |
||
=>7</ |
=>7</syntaxhighlight> |
||
< |
<syntaxhighlight lang=clojure>(eval (read-string (str "(+ " (read-line) " )") )) |
||
3 3 |
3 3 |
||
6</ |
6</syntaxhighlight> |
||
Translation of Common Lisp version: |
Translation of Common Lisp version: |
||
< |
<syntaxhighlight lang=clojure>(println (+ (read) (read))) |
||
3 4 |
3 4 |
||
7</ |
7</syntaxhighlight> |
||
Safely and without reader tricks: |
Safely and without reader tricks: |
||
< |
<syntaxhighlight lang=clojure>(let [ints (map #(Integer/parseInt %) (clojure.string/split (read-line) #"\s") )] |
||
(println (reduce + ints))) |
(println (reduce + ints))) |
||
3 4 |
3 4 |
||
=>7</ |
=>7</syntaxhighlight> |
||
or same as above, but without "let": |
or same as above, but without "let": |
||
< |
<syntaxhighlight lang=clojure>(println (reduce + (map #(Integer/parseInt %) (clojure.string/split (read-line) #"\s") ))) |
||
3 4 |
3 4 |
||
=>7</ |
=>7</syntaxhighlight> |
||
=={{header|COBOL}}== |
=={{header|COBOL}}== |
||
< |
<syntaxhighlight lang=cobol> IDENTIFICATION DIVISION. |
||
PROGRAM-ID. A-Plus-B. |
PROGRAM-ID. A-Plus-B. |
||
Line 1,896: | Line 1,896: | ||
GOBACK |
GOBACK |
||
.</ |
.</syntaxhighlight> |
||
A second version. |
A second version. |
||
< |
<syntaxhighlight lang=COBOL> |
||
IDENTIFICATION DIVISION. |
IDENTIFICATION DIVISION. |
||
Line 1,941: | Line 1,941: | ||
STOP RUN. |
STOP RUN. |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|CoffeeScript}}== |
=={{header|CoffeeScript}}== |
||
{{trans|JavaScript}} |
{{trans|JavaScript}} |
||
< |
<syntaxhighlight lang=html4strict><html> |
||
<script type="text/javascript" src="http://jashkenas.github.com/coffee-script/extras/coffee-script.js"></script> |
<script type="text/javascript" src="http://jashkenas.github.com/coffee-script/extras/coffee-script.js"></script> |
||
<script type="text/coffeescript"> |
<script type="text/coffeescript"> |
||
Line 1,958: | Line 1,958: | ||
<div id='output'></div> |
<div id='output'></div> |
||
</body> |
</body> |
||
</html></ |
</html></syntaxhighlight> |
||
{{works with|Node.js}} |
{{works with|Node.js}} |
||
< |
<syntaxhighlight lang=coffeescript> |
||
{ stdin } = process |
{ stdin } = process |
||
sum = ( a, b ) -> a + b |
sum = ( a, b ) -> a + b |
||
Line 1,992: | Line 1,992: | ||
# Start the main loop. |
# Start the main loop. |
||
do prompt |
do prompt |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Common Lisp}}== |
=={{header|Common Lisp}}== |
||
< |
<syntaxhighlight lang=lisp>(write (+ (read) (read)))</syntaxhighlight> |
||
=={{header|Component Pascal}}== |
=={{header|Component Pascal}}== |
||
BlackBox Component Builder |
BlackBox Component Builder |
||
< |
<syntaxhighlight lang=oberon2> |
||
MODULE AB; |
MODULE AB; |
||
IMPORT StdLog, DevCommanders,TextMappers; |
IMPORT StdLog, DevCommanders,TextMappers; |
||
Line 2,029: | Line 2,029: | ||
END Go; |
END Go; |
||
END AB. |
END AB. |
||
</syntaxhighlight> |
|||
</lang> |
|||
Execute: <i>AB.Go 12 23 ~ </i><br/> |
Execute: <i>AB.Go 12 23 ~ </i><br/> |
||
{{out}} |
{{out}} |
||
Line 2,037: | Line 2,037: | ||
=={{header|Computer/zero Assembly}}== |
=={{header|Computer/zero Assembly}}== |
||
< |
<syntaxhighlight lang=czasm> STP ; wait for input |
||
a: 0 |
a: 0 |
||
b: 0 |
b: 0 |
||
LDA a |
LDA a |
||
ADD b |
ADD b |
||
STP</ |
STP</syntaxhighlight> |
||
=={{header|Crystal}}== |
=={{header|Crystal}}== |
||
< |
<syntaxhighlight lang=ruby>puts gets.not_nil!.split.map(&.to_i).sum</syntaxhighlight> |
||
The <code>not_nil!</code> call on <code>gets</code> is needed because <code>gets</code> might return <code>nil</code> and the compiler forces us to deal with it. |
The <code>not_nil!</code> call on <code>gets</code> is needed because <code>gets</code> might return <code>nil</code> and the compiler forces us to deal with it. |
||
Line 2,052: | Line 2,052: | ||
To handle the <code>nil</code> case we could do: |
To handle the <code>nil</code> case we could do: |
||
< |
<syntaxhighlight lang=ruby>if line = gets |
||
puts line.split.map(&.to_i).sum |
puts line.split.map(&.to_i).sum |
||
else |
else |
||
puts "No input" |
puts "No input" |
||
end</ |
end</syntaxhighlight> |
||
=={{header|D}}== |
=={{header|D}}== |
||
===From Console=== |
===From Console=== |
||
< |
<syntaxhighlight lang=d>import std.stdio, std.conv, std.string; |
||
void main() { |
void main() { |
||
Line 2,070: | Line 2,070: | ||
writeln(to!int(r[0]) + to!int(r[1])); |
writeln(to!int(r[0]) + to!int(r[1])); |
||
}</ |
}</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
<pre>30</pre> |
<pre>30</pre> |
||
===From File=== |
===From File=== |
||
< |
<syntaxhighlight lang=d>void main() { |
||
import std.stdio, std.file; |
import std.stdio, std.file; |
||
immutable ab = "sum_input.txt".slurp!(int, int)("%d %d")[0]; |
immutable ab = "sum_input.txt".slurp!(int, int)("%d %d")[0]; |
||
"sum_output.txt".File("w").writeln(ab[0] + ab[1]); |
"sum_output.txt".File("w").writeln(ab[0] + ab[1]); |
||
}</ |
}</syntaxhighlight> |
||
=={{header|Dart}}== |
=={{header|Dart}}== |
||
< |
<syntaxhighlight lang=Dart>import 'dart:io'; |
||
// a little helper function that checks if the string only contains |
// a little helper function that checks if the string only contains |
||
Line 2,109: | Line 2,109: | ||
} |
} |
||
} |
} |
||
</syntaxhighlight> |
|||
</lang> |
|||
{{out}} |
{{out}} |
||
Line 2,118: | Line 2,118: | ||
=={{header|dc}}== |
=={{header|dc}}== |
||
<lang |
<syntaxhighlight lang=dc>? + psz</syntaxhighlight> |
||
The question mark ''?'' reads and executes a line of input. The user must enter a dc program that pushes two numbers to the stack, such as ''2 3'' or ''5 _1''. (The user must use underscore ''_'' for negative numbers.) |
The question mark ''?'' reads and executes a line of input. The user must enter a dc program that pushes two numbers to the stack, such as ''2 3'' or ''5 _1''. (The user must use underscore ''_'' for negative numbers.) |
||
=={{header|DCL}}== |
=={{header|DCL}}== |
||
< |
<syntaxhighlight lang=DCL>$ read sys$command line |
||
$ a = f$element( 0, " ", line ) |
$ a = f$element( 0, " ", line ) |
||
$ b = f$element( 1, " ", line ) |
$ b = f$element( 1, " ", line ) |
||
$ write sys$output a, "+", b, "=", a + b</ |
$ write sys$output a, "+", b, "=", a + b</syntaxhighlight> |
||
=={{header|Delphi}}== |
=={{header|Delphi}}== |
||
Console version. |
Console version. |
||
< |
<syntaxhighlight lang=delphi>program SUM; |
||
{$APPTYPE CONSOLE} |
{$APPTYPE CONSOLE} |
||
Line 2,144: | Line 2,144: | ||
Readln(s2); |
Readln(s2); |
||
Writeln(StrToIntDef(s1, 0) + StrToIntDef(s2,0)); |
Writeln(StrToIntDef(s1, 0) + StrToIntDef(s2,0)); |
||
end.</ |
end.</syntaxhighlight> |
||
=={{header|Diego}}== |
=={{header|Diego}}== |
||
< |
<syntaxhighlight lang=diego>set_namespace(rosettacode)_me(); |
||
begin_instuct(A + B); |
begin_instuct(A + B); |
||
Line 2,161: | Line 2,161: | ||
exec_instruct(A + B)_me(); |
exec_instruct(A + B)_me(); |
||
reset_namespace[];</ |
reset_namespace[];</syntaxhighlight> |
||
=={{header|DMS}}== |
=={{header|DMS}}== |
||
< |
<syntaxhighlight lang=DMS>number a = GetNumber( "Please input 'a'", a, a ) // prompts for 'a' |
||
number b = GetNumber( "Please input 'b'", b, b ) // prompts for 'b' |
number b = GetNumber( "Please input 'b'", b, b ) // prompts for 'b' |
||
Result( a + b + "\n" )</ |
Result( a + b + "\n" )</syntaxhighlight> |
||
=={{header|Dragon}}== |
=={{header|Dragon}}== |
||
< |
<syntaxhighlight lang=dragon> |
||
select "graphic" |
select "graphic" |
||
select "types" |
select "types" |
||
Line 2,177: | Line 2,177: | ||
showln a + b |
showln a + b |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|DWScript}}== |
=={{header|DWScript}}== |
||
Ghetto GUI version |
Ghetto GUI version |
||
< |
<syntaxhighlight lang=delphi>var a := StrToInt(InputBox('A+B', 'Enter 1st number', '0')); |
||
var b := StrToInt(InputBox('A+B', 'Enter 2nd number', '0')); |
var b := StrToInt(InputBox('A+B', 'Enter 2nd number', '0')); |
||
ShowMessage('Sum is '+IntToStr(a+b));</ |
ShowMessage('Sum is '+IntToStr(a+b));</syntaxhighlight> |
||
=={{header|Déjà Vu}}== |
=={{header|Déjà Vu}}== |
||
{{trans|Python}} |
{{trans|Python}} |
||
===Console=== |
===Console=== |
||
< |
<syntaxhighlight lang=dejavu>0 |
||
for k in split !prompt "" " ": |
for k in split !prompt "" " ": |
||
+ to-num k |
+ to-num k |
||
!print</ |
!print</syntaxhighlight> |
||
=={{header|EasyLang}}== |
=={{header|EasyLang}}== |
||
Line 2,201: | Line 2,201: | ||
b = number substr a$ i -1 |
b = number substr a$ i -1 |
||
print a + b |
print a + b |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|EchoLisp}}== |
=={{header|EchoLisp}}== |
||
< |
<syntaxhighlight lang=scheme> |
||
(+ (read-number 1 "value for A") (read-number 2 "value for B")) |
(+ (read-number 1 "value for A") (read-number 2 "value for B")) |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|EDSAC order code}}== |
=={{header|EDSAC order code}}== |
||
The EDSAC does not support input of data while a program is running, so A and B are pre-set to 37 and 28. Other values can of course be substituted: note the slightly idiosyncratic format in which integer data is written (the least significant bit set using an alphabetic character). The result of the computation is displayed in binary in the first address of storage tank 3. |
The EDSAC does not support input of data while a program is running, so A and B are pre-set to 37 and 28. Other values can of course be substituted: note the slightly idiosyncratic format in which integer data is written (the least significant bit set using an alphabetic character). The result of the computation is displayed in binary in the first address of storage tank 3. |
||
< |
<syntaxhighlight lang=edsac>[ A plus B |
||
======== |
======== |
||
Line 2,242: | Line 2,242: | ||
[ When loading is finished: ] |
[ When loading is finished: ] |
||
EZPF [ Branch to load point ]</ |
EZPF [ Branch to load point ]</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
<pre>00000000001000001</pre> |
<pre>00000000001000001</pre> |
||
Line 2,260: | Line 2,260: | ||
3. Dismiss the message, make the file with the two integers the active file, and click Reset. The simulator will continue, read the integers, and print them together with their sum. |
3. Dismiss the message, make the file with the two integers the active file, and click Reset. The simulator will continue, read the integers, and print them together with their sum. |
||
< |
<syntaxhighlight lang=edsac> |
||
[A + B for Rosetta Code. |
[A + B for Rosetta Code. |
||
Read two integers and find their sum. |
Read two integers and find their sum. |
||
Line 2,369: | Line 2,369: | ||
P F |
P F |
||
-987.123. |
-987.123. |
||
</syntaxhighlight> |
|||
</lang> |
|||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
Line 2,379: | Line 2,379: | ||
=={{header|EGL}}== |
=={{header|EGL}}== |
||
< |
<syntaxhighlight lang=EGL> |
||
package programs; |
package programs; |
||
Line 2,398: | Line 2,398: | ||
end |
end |
||
end |
end |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Eiffel}}== |
=={{header|Eiffel}}== |
||
argument(0) contains the path of the executable - thus we start at argument(1) |
argument(0) contains the path of the executable - thus we start at argument(1) |
||
< |
<syntaxhighlight lang=eiffel> |
||
class |
class |
||
APPLICATION |
APPLICATION |
||
Line 2,416: | Line 2,416: | ||
end |
end |
||
end |
end |
||
</syntaxhighlight> |
|||
</lang> |
|||
Alternatively ... |
Alternatively ... |
||
< |
<syntaxhighlight lang=eiffel> |
||
make |
make |
||
-- Run application. |
-- Run application. |
||
Line 2,440: | Line 2,440: | ||
end |
end |
||
end |
end |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Ela}}== |
=={{header|Ela}}== |
||
< |
<syntaxhighlight lang=ela>open monad io string list |
||
a'b() = do |
a'b() = do |
||
Line 2,449: | Line 2,449: | ||
putStrLn <| show <| sum <| map gread <| string.split " " <| str |
putStrLn <| show <| sum <| map gread <| string.split " " <| str |
||
a'b() ::: IO</ |
a'b() ::: IO</syntaxhighlight> |
||
{{Out}} |
{{Out}} |
||
Line 2,457: | Line 2,457: | ||
=={{header|Elena}}== |
=={{header|Elena}}== |
||
ELENA 5.0 : |
ELENA 5.0 : |
||
< |
<syntaxhighlight lang=elena>import extensions; |
||
public program() |
public program() |
||
Line 2,465: | Line 2,465: | ||
console.loadLine(A,B).printLine(A + B) |
console.loadLine(A,B).printLine(A + B) |
||
}</ |
}</syntaxhighlight> |
||
Or more generic solution: |
Or more generic solution: |
||
< |
<syntaxhighlight lang=elena>import system'routines; |
||
import extensions; |
import extensions; |
||
Line 2,477: | Line 2,477: | ||
.selectBy(mssgconst toInt<convertorOp>[1]) |
.selectBy(mssgconst toInt<convertorOp>[1]) |
||
.summarize()) |
.summarize()) |
||
}</ |
}</syntaxhighlight> |
||
=={{header|Elixir}}== |
=={{header|Elixir}}== |
||
< |
<syntaxhighlight lang=Elixir>IO.gets("Enter two numbers seperated by a space: ") |
||
|> String.split |
|> String.split |
||
|> Enum.map(&String.to_integer(&1)) |
|> Enum.map(&String.to_integer(&1)) |
||
|> Enum.sum |
|> Enum.sum |
||
|> IO.puts</ |
|> IO.puts</syntaxhighlight> |
||
=={{header|Elm}}== |
=={{header|Elm}}== |
||
< |
<syntaxhighlight lang=Elm> |
||
--To write this function directly run cmd |
--To write this function directly run cmd |
||
--Type elm-repl to start |
--Type elm-repl to start |
||
Line 2,499: | Line 2,499: | ||
--END |
--END |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Emacs Lisp}}== |
=={{header|Emacs Lisp}}== |
||
< |
<syntaxhighlight lang=lisp>(let* ((input (read-from-minibuffer "")) |
||
(numbers (mapcar #'string-to-number (split-string input))) |
(numbers (mapcar #'string-to-number (split-string input))) |
||
(a (car numbers)) |
(a (car numbers)) |
||
(b (cadr numbers))) |
(b (cadr numbers))) |
||
(message "%d" (+ a b)))</ |
(message "%d" (+ a b)))</syntaxhighlight> |
||
=={{header|Emojicode}}== |
=={{header|Emojicode}}== |
||
< |
<syntaxhighlight lang=Emojicode>🏁🍇 |
||
🆕🔡▶️👂🏼❗️ ➡️ input 💭 Get numbers as input string |
🆕🔡▶️👂🏼❗️ ➡️ input 💭 Get numbers as input string |
||
🔫 input 🔤 🔤❗ ➡️ nums 💭 Split numbers by space |
🔫 input 🔤 🔤❗ ➡️ nums 💭 Split numbers by space |
||
Line 2,515: | Line 2,515: | ||
🍺🔢 🐽 nums 1❗ 10❗ ➡️ B 💭 Retrieve second number |
🍺🔢 🐽 nums 1❗ 10❗ ➡️ B 💭 Retrieve second number |
||
😀 🔤🧲A➕B🧲🔤 ❗ 💭 Output sum |
😀 🔤🧲A➕B🧲🔤 ❗ 💭 Output sum |
||
🍉️</ |
🍉️</syntaxhighlight> |
||
=={{header|Erlang}}== |
=={{header|Erlang}}== |
||
< |
<syntaxhighlight lang=erlang>-module(aplusb). |
||
-export([start/0]). |
-export([start/0]). |
||
Line 2,527: | Line 2,527: | ||
io:format("~w~n",[A+B]), |
io:format("~w~n",[A+B]), |
||
start() |
start() |
||
end.</ |
end.</syntaxhighlight> |
||
=={{header|ERRE}}== |
=={{header|ERRE}}== |
||
< |
<syntaxhighlight lang=ERRE> |
||
PROGRAM SUM2 |
PROGRAM SUM2 |
||
Line 2,543: | Line 2,543: | ||
END PROGRAM |
END PROGRAM |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Euler Math Toolbox}}== |
=={{header|Euler Math Toolbox}}== |
||
< |
<syntaxhighlight lang=Euler Math Toolbox> |
||
>s=lineinput("Two numbers seperated by a blank"); |
>s=lineinput("Two numbers seperated by a blank"); |
||
Two numbers seperated by a blank? >4 5 |
Two numbers seperated by a blank? >4 5 |
||
Line 2,555: | Line 2,555: | ||
>vs[1]()+vs[2]() |
>vs[1]()+vs[2]() |
||
9 |
9 |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Euphoria}}== |
=={{header|Euphoria}}== |
||
< |
<syntaxhighlight lang=euphoria>include get.e |
||
function snd(sequence s) |
function snd(sequence s) |
||
Line 2,569: | Line 2,569: | ||
b = snd(get(0)) |
b = snd(get(0)) |
||
printf(1," %d\n",a+b)</ |
printf(1," %d\n",a+b)</syntaxhighlight> |
||
=={{header|Excel}}== |
=={{header|Excel}}== |
||
Take any 3 columns of any row or rows. Let's say A1,B1 and C1 are taken. In C1 type in : |
Take any 3 columns of any row or rows. Let's say A1,B1 and C1 are taken. In C1 type in : |
||
< |
<syntaxhighlight lang=excel> |
||
=A1+B1 |
=A1+B1 |
||
</syntaxhighlight> |
|||
</lang> |
|||
The value of C1 will change as the values of A1 and B1 are changed |
The value of C1 will change as the values of A1 and B1 are changed |
||
<lang>1 2 3 |
<lang>1 2 3 |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|F Sharp|F#}}== |
=={{header|F Sharp|F#}}== |
||
< |
<syntaxhighlight lang=fsharp>open System |
||
let SumOf(str : string) = |
let SumOf(str : string) = |
||
Line 2,592: | Line 2,592: | ||
let main argv = |
let main argv = |
||
Console.WriteLine(SumOf(Console.ReadLine())) |
Console.WriteLine(SumOf(Console.ReadLine())) |
||
0</ |
0</syntaxhighlight> |
||
=={{header|Factor}}== |
=={{header|Factor}}== |
||
< |
<syntaxhighlight lang=factor>USING: math.parser splitting ; |
||
: a+b ( -- ) |
: a+b ( -- ) |
||
readln " " split1 |
readln " " split1 |
||
[ string>number ] bi@ + |
[ string>number ] bi@ + |
||
number>string print ;</ |
number>string print ;</syntaxhighlight> |
||
<pre> |
<pre> |
||
( scratchpad ) a+b |
( scratchpad ) a+b |
||
Line 2,607: | Line 2,607: | ||
=={{header|FALSE}}== |
=={{header|FALSE}}== |
||
< |
<syntaxhighlight lang=false>[0[^$$'9>'0@>|~]['0-\10*+]#%]n: {read an integer} |
||
n;!n;!+.</ |
n;!n;!+.</syntaxhighlight> |
||
=={{header|Fantom}}== |
=={{header|Fantom}}== |
||
< |
<syntaxhighlight lang=fantom>class APlusB |
||
{ |
{ |
||
public static Void main () |
public static Void main () |
||
Line 2,621: | Line 2,621: | ||
echo (sum) |
echo (sum) |
||
} |
} |
||
}</ |
}</syntaxhighlight> |
||
=={{header|FBSL}}== |
=={{header|FBSL}}== |
||
Using stdin and stdout |
Using stdin and stdout |
||
< |
<syntaxhighlight lang=qbasic>#APPTYPE CONSOLE |
||
DIM %a, %b |
DIM %a, %b |
||
Line 2,631: | Line 2,631: | ||
PRINT a, "+", b, "=", a + b |
PRINT a, "+", b, "=", a + b |
||
PAUSE</ |
PAUSE</syntaxhighlight> |
||
=={{header|Fhidwfe}}== |
=={{header|Fhidwfe}}== |
||
< |
<syntaxhighlight lang=Fhidwfe> |
||
function listint scanint (num:ptr) {// as of writing, fhidwfe has no builtin int scanning |
function listint scanint (num:ptr) {// as of writing, fhidwfe has no builtin int scanning |
||
reset negative |
reset negative |
||
Line 2,676: | Line 2,676: | ||
puti$ + access_word$ inp 0u access_word$ inp 1u |
puti$ + access_word$ inp 0u access_word$ inp 1u |
||
free$ inp |
free$ inp |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Fish}}== |
=={{header|Fish}}== |
||
< |
<syntaxhighlight lang=Fish>i:o:"-"=?v1$68*-v |
||
v >~01-0 > |
v >~01-0 > |
||
>i:o:" "=?v68*-$a*+ |
>i:o:" "=?v68*-$a*+ |
||
Line 2,685: | Line 2,685: | ||
v >~01-0 > |
v >~01-0 > |
||
>i:o:d=?v68*-$a*+ |
>i:o:d=?v68*-$a*+ |
||
>~*+aonao;</ |
>~*+aonao;</syntaxhighlight> |
||
=={{header|Forth}}== |
=={{header|Forth}}== |
||
< |
<syntaxhighlight lang=Forth>pad dup 80 accept evaluate + .</syntaxhighlight> |
||
=={{header|Fortran}}== |
=={{header|Fortran}}== |
||
< |
<syntaxhighlight lang=fortran>program a_plus_b |
||
implicit none |
implicit none |
||
integer :: a,b |
integer :: a,b |
||
read (*, *) a, b |
read (*, *) a, b |
||
write (*, '(i0)') a + b |
write (*, '(i0)') a + b |
||
end program a_plus_b</ |
end program a_plus_b</syntaxhighlight> |
||
And in Fortran 77 |
And in Fortran 77 |
||
< |
<syntaxhighlight lang=fortran> READ (1,100) I,J |
||
100 FORMAT(2I5) |
100 FORMAT(2I5) |
||
WRITE (2,200) I+J |
WRITE (2,200) I+J |
||
200 FORMAT(1X,I5) |
200 FORMAT(1X,I5) |
||
END</ |
END</syntaxhighlight> |
||
=={{header|Free Pascal}}== |
=={{header|Free Pascal}}== |
||
< |
<syntaxhighlight lang=pascal>program SUMA; |
||
uses |
uses |
||
SysUtils; |
SysUtils; |
||
Line 2,715: | Line 2,715: | ||
WriteLn(IntToStr(s1 + s2)); |
WriteLn(IntToStr(s1 + s2)); |
||
end. |
end. |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Frink}}== |
=={{header|Frink}}== |
||
This program handles arbitrarily-large integers, or even floating-point or rational numbers or complex numbers (as long as they're not internally separated with spaces, of course, which are the delimiters for this task.) It can even handle units of measure (with no embedded spaces) such as "3.3meter 2feet" and does the right thing when summing those units. It can handle any number of arbitrary whitespace characters separating the numbers. It also works whether the input is user-interactive, or input comes from stdin or a pipe. (It will bring up a user dialog for input when run in a graphical environment.) |
This program handles arbitrarily-large integers, or even floating-point or rational numbers or complex numbers (as long as they're not internally separated with spaces, of course, which are the delimiters for this task.) It can even handle units of measure (with no embedded spaces) such as "3.3meter 2feet" and does the right thing when summing those units. It can handle any number of arbitrary whitespace characters separating the numbers. It also works whether the input is user-interactive, or input comes from stdin or a pipe. (It will bring up a user dialog for input when run in a graphical environment.) |
||
< |
<syntaxhighlight lang=frink> |
||
sum[eval[split[%r/\s+/, input[""]]]] |
sum[eval[split[%r/\s+/, input[""]]]] |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|FunL}}== |
=={{header|FunL}}== |
||
< |
<syntaxhighlight lang=funl>println( sum(map(int, readLine().split(' +'))) )</syntaxhighlight> |
||
=={{header|Furor}}== |
=={{header|Furor}}== |
||
< |
<syntaxhighlight lang=Furor> |
||
cin sto mystring |
cin sto mystring |
||
#s dec mystring @mystring sprintnl |
#s dec mystring @mystring sprintnl |
||
Line 2,746: | Line 2,746: | ||
{ „mylist” } |
{ „mylist” } |
||
{ „nums” } |
{ „nums” } |
||
</syntaxhighlight> |
|||
</lang> |
|||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
Line 2,775: | Line 2,775: | ||
=={{header|FutureBasic}}== |
=={{header|FutureBasic}}== |
||
The input statement was removed from FB several years ago. However, it's trivial to write our own input field which compiles as a stand-alone Macintosh application. |
The input statement was removed from FB several years ago. However, it's trivial to write our own input field which compiles as a stand-alone Macintosh application. |
||
< |
<syntaxhighlight lang=futurebasic> |
||
_window = 1 |
_window = 1 |
||
begin enum 1 |
begin enum 1 |
||
Line 2,818: | Line 2,818: | ||
HandleEvents |
HandleEvents |
||
</syntaxhighlight> |
|||
</lang> |
|||
{{output}} |
{{output}} |
||
<pre> |
<pre> |
||
Line 2,829: | Line 2,829: | ||
=={{header|Gambas}}== |
=={{header|Gambas}}== |
||
< |
<syntaxhighlight lang=gambas>Public Sub Main() |
||
Dim sInput As String = InputBox("Input 2 numbers seperated by a space", "A + B") |
Dim sInput As String = InputBox("Input 2 numbers seperated by a space", "A + B") |
||
Print Split(sInput, " ")[0] & " + " & Split(sInput, " ")[1] & " = " & Str(Val(Split(sInput, " ")[0]) + Val(Split(sInput, " ")[1])) |
Print Split(sInput, " ")[0] & " + " & Split(sInput, " ")[1] & " = " & Str(Val(Split(sInput, " ")[0]) + Val(Split(sInput, " ")[1])) |
||
End</ |
End</syntaxhighlight> |
||
Output: |
Output: |
||
<pre> |
<pre> |
||
Line 2,842: | Line 2,842: | ||
=={{header|Gastona}}== |
=={{header|Gastona}}== |
||
Taking A and B from command line arguments |
Taking A and B from command line arguments |
||
< |
<syntaxhighlight lang=gastona>#listix# |
||
<main> |
<main> |
||
"@<p1> + @<p2> = " |
"@<p1> + @<p2> = " |
||
=, p1 + p2 |
=, p1 + p2 |
||
</syntaxhighlight> |
|||
</lang> |
|||
Using Graphical interface |
Using Graphical interface |
||
< |
<syntaxhighlight lang=gastona>#javaj# |
||
<layout of main> |
<layout of main> |
||
Line 2,864: | Line 2,864: | ||
<suma> =, eA + eB |
<suma> =, eA + eB |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Gema}}== |
=={{header|Gema}}== |
||
< |
<syntaxhighlight lang=gema><D> <D>=@add{$1;$2}</syntaxhighlight> |
||
=={{header|Genie}}== |
=={{header|Genie}}== |
||
< |
<syntaxhighlight lang=genie>[indent=4] |
||
/* |
/* |
||
A+B in Genie |
A+B in Genie |
||
Line 2,892: | Line 2,892: | ||
print "B" + warning |
print "B" + warning |
||
print "From %s\nA + B = %llu", line, a+b</ |
print "From %s\nA + B = %llu", line, a+b</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
Line 2,912: | Line 2,912: | ||
=={{header|GML}}== |
=={{header|GML}}== |
||
< |
<syntaxhighlight lang=GML>var add, a, b; |
||
add = argument0; // get the string with the numbers to add |
add = argument0; // get the string with the numbers to add |
||
a = real(string_copy(add, 1, string_pos(" ", add))); |
a = real(string_copy(add, 1, string_pos(" ", add))); |
||
b = real(string_copy(add, string_pos(" ", add) + 1, string_length(add) - string_pos(" ", add))); |
b = real(string_copy(add, string_pos(" ", add) + 1, string_length(add) - string_pos(" ", add))); |
||
return(a + b);</ |
return(a + b);</syntaxhighlight> |
||
=={{header|Go}}== |
=={{header|Go}}== |
||
< |
<syntaxhighlight lang=go>package main |
||
import "fmt" |
import "fmt" |
||
Line 2,927: | Line 2,927: | ||
fmt.Scan(&a, &b) |
fmt.Scan(&a, &b) |
||
fmt.Println(a + b) |
fmt.Println(a + b) |
||
}</ |
}</syntaxhighlight> |
||
=={{header|Golfscript}}== |
=={{header|Golfscript}}== |
||
<lang |
<syntaxhighlight lang=golfscript>~+</syntaxhighlight> |
||
=={{header|Golo}}== |
=={{header|Golo}}== |
||
< |
<syntaxhighlight lang=Golo>#!/usr/bin/env golosh |
||
---- |
---- |
||
This module asks for two numbers, adds them, and prints the result. |
This module asks for two numbers, adds them, and prints the result. |
||
Line 2,959: | Line 2,959: | ||
println("they both need to be numbers for this to work") |
println("they both need to be numbers for this to work") |
||
} |
} |
||
}</ |
}</syntaxhighlight> |
||
=={{header|Gosu}}== |
=={{header|Gosu}}== |
||
< |
<syntaxhighlight lang=Gosu> |
||
uses java.io.InputStreamReader |
uses java.io.InputStreamReader |
||
uses java.util.Scanner |
uses java.util.Scanner |
||
Line 2,972: | Line 2,972: | ||
print( a + b ) |
print( a + b ) |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Groovy}}== |
=={{header|Groovy}}== |
||
< |
<syntaxhighlight lang=groovy>def abAdder = { |
||
def reader = new Scanner(System.in) |
def reader = new Scanner(System.in) |
||
def a = reader.nextInt(); |
def a = reader.nextInt(); |
||
Line 2,982: | Line 2,982: | ||
a + b |
a + b |
||
} |
} |
||
abAdder()</ |
abAdder()</syntaxhighlight> |
||
=={{header|GUISS}}== |
=={{header|GUISS}}== |
||
We cannot use variables, but we can find the sum of two numbers.Here we add 3 + 2: |
We cannot use variables, but we can find the sum of two numbers.Here we add 3 + 2: |
||
< |
<syntaxhighlight lang=guiss>Start,Programs,Accessories,Calculator,Button:3,Button:[plus], |
||
Button:2,Button:[equals]</ |
Button:2,Button:[equals]</syntaxhighlight> |
||
=={{header|Harbour}}== |
=={{header|Harbour}}== |
||
< |
<syntaxhighlight lang=visualfoxpro>PROCEDURE Main() |
||
LOCAL GetList := {} |
LOCAL GetList := {} |
||
LOCAL bValid := { |n| iif(n>-1001, iif(n<1001, .T.,.F.),.F.) } |
LOCAL bValid := { |n| iif(n>-1001, iif(n<1001, .T.,.F.),.F.) } |
||
Line 3,003: | Line 3,003: | ||
RETURN |
RETURN |
||
</ |
</syntaxhighlight> |
||
Screen output:<p>Enter two numbers (range -1000...+1000): ''-56 98''</p> |
Screen output:<p>Enter two numbers (range -1000...+1000): ''-56 98''</p> |
||
<p>Sum of given numbers is 42</p> |
<p>Sum of given numbers is 42</p> |
||
Line 3,009: | Line 3,009: | ||
=={{header|Haskell}}== |
=={{header|Haskell}}== |
||
< |
<syntaxhighlight lang=haskell>main = print . sum . map read . words =<< getLine</syntaxhighlight> |
||
=={{header|hexiscript}}== |
=={{header|hexiscript}}== |
||
< |
<syntaxhighlight lang=hexiscript>fun split s delim |
||
let ret dict 32 |
let ret dict 32 |
||
let l len s |
let l len s |
||
Line 3,032: | Line 3,032: | ||
let a tonum nums[0] |
let a tonum nums[0] |
||
let b tonum nums[1] |
let b tonum nums[1] |
||
println a + b</ |
println a + b</syntaxhighlight> |
||
=={{header|HicEst}}== |
=={{header|HicEst}}== |
||
A and B are input via edit controls with spinners limiting inputs to +-1000. |
A and B are input via edit controls with spinners limiting inputs to +-1000. |
||
< |
<syntaxhighlight lang=HicEst>DLG(Edit=A, DNum, MIn=-1000, MAx=1000, E=B, DN, MI=-1000, MA=1000) |
||
WRITE(Messagebox, Name) A, B, "Sum = ", A+B</ |
WRITE(Messagebox, Name) A, B, "Sum = ", A+B</syntaxhighlight> |
||
=={{header|Hoon}}== |
=={{header|Hoon}}== |
||
<lang> |
<lang> |
||
|= [a=@ud b=@ud] (add a b) |
|= [a=@ud b=@ud] (add a b) |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Hope}}== |
=={{header|Hope}}== |
||
Line 3,060: | Line 3,060: | ||
=={{header|Huginn}}== |
=={{header|Huginn}}== |
||
< |
<syntaxhighlight lang=huginn>import Algorithms as algo; |
||
import Text as text; |
import Text as text; |
||
Line 3,075: | Line 3,075: | ||
); |
); |
||
); |
); |
||
}</ |
}</syntaxhighlight> |
||
=={{header|Hy}}== |
=={{header|Hy}}== |
||
< |
<syntaxhighlight lang=hy>(print (sum (map int (.split (input)))))</syntaxhighlight> |
||
Alternatively, with the "threading tail" macro: |
Alternatively, with the "threading tail" macro: |
||
< |
<syntaxhighlight lang=hy>(->> (input) (.split) (map int) (sum) (print))</syntaxhighlight> |
||
=={{header|i}}== |
=={{header|i}}== |
||
< |
<syntaxhighlight lang=i>main: print(integer(in(' '))+integer(in('\n'))); ignore</syntaxhighlight> |
||
=={{header|Icon}} and {{header|Unicon}}== |
=={{header|Icon}} and {{header|Unicon}}== |
||
< |
<syntaxhighlight lang=icon>procedure main() |
||
numChars := '-'++&digits |
numChars := '-'++&digits |
||
read() ? { |
read() ? { |
||
Line 3,093: | Line 3,093: | ||
} |
} |
||
write((\A + \B) | "Bad input") |
write((\A + \B) | "Bad input") |
||
end</ |
end</syntaxhighlight> |
||
=={{header|Idris}}== |
=={{header|Idris}}== |
||
< |
<syntaxhighlight lang=idris>main : IO() |
||
main = do |
main = do |
||
line <- getLine |
line <- getLine |
||
print $ sum $ map cast $ words line</ |
print $ sum $ map cast $ words line</syntaxhighlight> |
||
=={{header|J}}== |
=={{header|J}}== |
||
Typically, in J, you would find the sum of two numbers (let us say 2 and 3) by entering both of them on a line with a + sign between them: |
Typically, in J, you would find the sum of two numbers (let us say 2 and 3) by entering both of them on a line with a + sign between them: |
||
< |
<syntaxhighlight lang=J> 2+3 |
||
5</ |
5</syntaxhighlight> |
||
Next we describe then implement a command line program to add some numbers. |
Next we describe then implement a command line program to add some numbers. |
||
1) In the following expression, <tt>1!:1(3)</tt> reads a line from STDIN; <tt>-.LF</tt> drops the line ending character; <tt>".</tt> converts the remaining text to a sequence of numbers which are then summed using <tt>+/</tt>. |
1) In the following expression, <tt>1!:1(3)</tt> reads a line from STDIN; <tt>-.LF</tt> drops the line ending character; <tt>".</tt> converts the remaining text to a sequence of numbers which are then summed using <tt>+/</tt>. |
||
< |
<syntaxhighlight lang=J>+/". (1!:1(3))-.LF</syntaxhighlight> |
||
2) Here's a little script, called "a+b.ijs": |
2) Here's a little script, called "a+b.ijs": |
||
< |
<syntaxhighlight lang=J>#!/Applications/j602/bin/jconsole |
||
echo +/". (1!:1(3))-.LF |
echo +/". (1!:1(3))-.LF |
||
exit ''</ |
exit ''</syntaxhighlight> |
||
3) Here is an execution of the script: |
3) Here is an execution of the script: |
||
< |
<syntaxhighlight lang=bash>echo 2 3 | ./a+b.ijs |
||
5</ |
5</syntaxhighlight> |
||
=={{header|Java}}== |
=={{header|Java}}== |
||
< |
<syntaxhighlight lang=java>import java.util.Scanner; |
||
public class Sum2 { |
public class Sum2 { |
||
Line 3,125: | Line 3,125: | ||
System.out.println(in.nextInt() + in.nextInt()); // Standard output |
System.out.println(in.nextInt() + in.nextInt()); // Standard output |
||
} |
} |
||
}</ |
}</syntaxhighlight> |
||
Object of [[class]] Scanner works slow enough, because of that contestants prefer to avoid its use. Often, longer solution works faster and easily scales to problems. |
Object of [[class]] Scanner works slow enough, because of that contestants prefer to avoid its use. Often, longer solution works faster and easily scales to problems. |
||
< |
<syntaxhighlight lang=java>import java.io.*; |
||
import java.util.*; |
import java.util.*; |
||
Line 3,153: | Line 3,153: | ||
out.println(nextInt() + nextInt()); |
out.println(nextInt() + nextInt()); |
||
} |
} |
||
}</ |
}</syntaxhighlight> |
||
The following code uses a StreamTokenizer instead of a Scanner. |
The following code uses a StreamTokenizer instead of a Scanner. |
||
< |
<syntaxhighlight lang=java>import java.io.*; |
||
import java.nio.charset.Charset; |
import java.nio.charset.Charset; |
||
Line 3,173: | Line 3,173: | ||
} |
} |
||
} |
} |
||
</syntaxhighlight> |
|||
</lang> |
|||
Line 3,191: | Line 3,191: | ||
NEWLINE : WS* '\r'? '\n' |
NEWLINE : WS* '\r'? '\n' |
||
; |
; |
||
</syntaxhighlight> |
|||
</lang> |
|||
Produces: |
Produces: |
||
<pre> |
<pre> |
||
Line 3,212: | Line 3,212: | ||
Client side: |
Client side: |
||
< |
<syntaxhighlight lang=html4strict><html> |
||
<body> |
<body> |
||
<div id='input'></div> |
<div id='input'></div> |
||
Line 3,225: | Line 3,225: | ||
</script> |
</script> |
||
</body> |
</body> |
||
</html></ |
</html></syntaxhighlight> |
||
Server side (with [http://nodejs.org node.js]): |
Server side (with [http://nodejs.org node.js]): |
||
< |
<syntaxhighlight lang=javascript>process.openStdin().on ( |
||
'data', |
'data', |
||
function (line) { |
function (line) { |
||
Line 3,238: | Line 3,238: | ||
process.exit() |
process.exit() |
||
} |
} |
||
)</ |
)</syntaxhighlight> |
||
$ node io.js |
$ node io.js |
||
Line 3,249: | Line 3,249: | ||
=== ES6 === |
=== ES6 === |
||
Node.js in a terminal: |
Node.js in a terminal: |
||
< |
<syntaxhighlight lang=javascript>process.stdin.on("data", buffer => { |
||
console.log( |
console.log( |
||
(buffer + "").trim().split(" ").map(Number).reduce((a, v) => a + v, 0) |
(buffer + "").trim().split(" ").map(Number).reduce((a, v) => a + v, 0) |
||
); |
); |
||
}); |
}); |
||
</syntaxhighlight> |
|||
</lang> |
|||
<pre> $ node io.js |
<pre> $ node io.js |
||
Line 3,262: | Line 3,262: | ||
=== JScript Windows Script Host Version 5.8 === |
=== JScript Windows Script Host Version 5.8 === |
||
< |
<syntaxhighlight lang=javascript>var a = WScript.StdIn.ReadLine(); |
||
var b = WScript.StdIn.ReadLine(); |
var b = WScript.StdIn.ReadLine(); |
||
WSH.echo(a, " + " , b , " = " , Number(a)+Number(b)); |
WSH.echo(a, " + " , b , " = " , Number(a)+Number(b)); |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Joy}}== |
=={{header|Joy}}== |
||
===Console=== |
===Console=== |
||
<lang |
<syntaxhighlight lang=Joy>get get +.</syntaxhighlight> |
||
===File=== |
===File=== |
||
< |
<syntaxhighlight lang=Joy>"input.txt" include |
||
"output.txt" "w" fopen |
"output.txt" "w" fopen |
||
get get + fput pop quit.</ |
get get + fput pop quit.</syntaxhighlight> |
||
=={{header|jq}}== |
=={{header|jq}}== |
||
Since the given task is simply to add two numbers, the simplest approach in jq is illustrated by the following transcript: |
Since the given task is simply to add two numbers, the simplest approach in jq is illustrated by the following transcript: |
||
< |
<syntaxhighlight lang=jq>$ jq -s add |
||
3 2 |
3 2 |
||
5 </ |
5 </syntaxhighlight> |
||
This will work provided the numbers are neither too small nor too large. However, the above program will add **all** the numbers presented on the stream (assuming only numbers are presented). If the task were to add consecutive pairs of numbers, then the approach illustrated in the following transcript can be used, in conjunction with the jq "-s" option:< |
This will work provided the numbers are neither too small nor too large. However, the above program will add **all** the numbers presented on the stream (assuming only numbers are presented). If the task were to add consecutive pairs of numbers, then the approach illustrated in the following transcript can be used, in conjunction with the jq "-s" option:<syntaxhighlight lang=jq> |
||
def addpairs: |
def addpairs: |
||
if length < 2 then empty |
if length < 2 then empty |
||
Line 3,286: | Line 3,286: | ||
end; |
end; |
||
addpairs</ |
addpairs</syntaxhighlight> |
||
For example, here is a transcript that assumes the program is in a file named AB.jq:< |
For example, here is a transcript that assumes the program is in a file named AB.jq:<syntaxhighlight lang=jq> |
||
$ jq -s -f AB.jq |
$ jq -s -f AB.jq |
||
1 2 3 4 5 6 |
1 2 3 4 5 6 |
||
3 |
3 |
||
7 |
7 |
||
11</ |
11</syntaxhighlight> |
||
=={{header|Jsish}}== |
=={{header|Jsish}}== |
||
< |
<syntaxhighlight lang=javascript>/* A+B in Jsish */ |
||
var line = console.input(); |
var line = console.input(); |
||
var nums = line.match(/^\s*([+-]?[0-9]+)\s+([+-]?[0-9]+)\s*/); |
var nums = line.match(/^\s*([+-]?[0-9]+)\s+([+-]?[0-9]+)\s*/); |
||
Line 3,308: | Line 3,308: | ||
} else { |
} else { |
||
puts("error: A+B requires two numbers separated by space"); |
puts("error: A+B requires two numbers separated by space"); |
||
}</ |
}</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
Line 3,326: | Line 3,326: | ||
=={{header|Julia}}== |
=={{header|Julia}}== |
||
Run from the command line: |
Run from the command line: |
||
< |
<syntaxhighlight lang=julia>input = parse.(Int, split(readline(stdin))) |
||
println(stdout, sum(input))</ |
println(stdout, sum(input))</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
Line 3,335: | Line 3,335: | ||
In the next solution, an error is returned if the entry is not constituted from exactly two integers. Any number of spaces can follow an integer. |
In the next solution, an error is returned if the entry is not constituted from exactly two integers. Any number of spaces can follow an integer. |
||
< |
<syntaxhighlight lang=Julia>julia> println(parse(Int, readuntil(stdin, ' ')) + parse(Int, readuntil(stdin, '\n'))) |
||
1 2 |
1 2 |
||
3</ |
3</syntaxhighlight> |
||
=={{header|K}}== |
=={{header|K}}== |
||
<syntaxhighlight lang=K> |
|||
<lang K> |
|||
split:{(a@&~&/' y=/: a:(0,&x=y)_ x) _dv\: y} |
split:{(a@&~&/' y=/: a:(0,&x=y)_ x) _dv\: y} |
||
ab:{+/0$split[0:`;" "]} |
ab:{+/0$split[0:`;" "]} |
||
Line 3,346: | Line 3,346: | ||
2 3 |
2 3 |
||
5 |
5 |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Keg}}== |
=={{header|Keg}}== |
||
<lang |
<syntaxhighlight lang=Keg>+.</syntaxhighlight> |
||
[https://tio.run/##y05N//9fW@//f1MDLjMDAA Try it online!] |
[https://tio.run/##y05N//9fW@//f1MDLjMDAA Try it online!] |
||
Or, using flags (<code>-hr</code>): |
Or, using flags (<code>-hr</code>): |
||
<lang |
<syntaxhighlight lang=Keg>+</syntaxhighlight> |
||
[https://tio.run/##y05N//9f@/9/UwMuM4P/uhlFAA Try it online!] |
[https://tio.run/##y05N//9f@/9/UwMuM4P/uhlFAA Try it online!] |
||
=={{header|Kite}}== |
=={{header|Kite}}== |
||
< |
<syntaxhighlight lang=Kite>#!/usr/bin/kite |
||
import "System.file"; |
import "System.file"; |
||
Line 3,369: | Line 3,369: | ||
line = in|readline; |
line = in|readline; |
||
];</ |
];</syntaxhighlight> |
||
{{Out}} |
{{Out}} |
||
<pre> |
<pre> |
||
Line 3,379: | Line 3,379: | ||
=={{header|Klong}}== |
=={{header|Klong}}== |
||
<syntaxhighlight lang=K> |
|||
<lang K> |
|||
{(1:$(*x?0c )#x)+1:$(1+*|x?0c )_x}@.rl() |
{(1:$(*x?0c )#x)+1:$(1+*|x?0c )_x}@.rl() |
||
2 3 |
2 3 |
||
5 |
5 |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Kotlin}}== |
=={{header|Kotlin}}== |
||
< |
<syntaxhighlight lang=scala>// version 1.0.5-2 |
||
fun main(args: Array<String>) { |
fun main(args: Array<String>) { |
||
Line 3,408: | Line 3,408: | ||
} |
} |
||
} |
} |
||
}</ |
}</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
Line 3,422: | Line 3,422: | ||
=={{header|KQL}}== |
=={{header|KQL}}== |
||
< |
<syntaxhighlight lang=KQL>datatable(Input:string)[ |
||
'2 2', |
'2 2', |
||
'3 2' |
'3 2' |
||
] |
] |
||
| parse Input with A:int ' ' B:int |
| parse Input with A:int ' ' B:int |
||
| project Input, Output = A + B</ |
| project Input, Output = A + B</syntaxhighlight> |
||
=={{header|L++}}== |
=={{header|L++}}== |
||
< |
<syntaxhighlight lang=lisp>(main |
||
(decl int a) |
(decl int a) |
||
(decl int b) |
(decl int b) |
||
(>> std::cin a b) |
(>> std::cin a b) |
||
(prn (+ a b)))</ |
(prn (+ a b)))</syntaxhighlight> |
||
=={{header|Lambdatalk}}== |
=={{header|Lambdatalk}}== |
||
< |
<syntaxhighlight lang=scheme> |
||
Lambdatalk works in a wiki, lambdatank. |
Lambdatalk works in a wiki, lambdatank. |
||
Line 3,469: | Line 3,469: | ||
Several boxes can be created in the wiki page |
Several boxes can be created in the wiki page |
||
with any valid lambdatalk expressions. |
with any valid lambdatalk expressions. |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Lang5}}== |
=={{header|Lang5}}== |
||
< |
<syntaxhighlight lang=lang5>read read + . |
||
read " " split expand drop + .</ |
read " " split expand drop + .</syntaxhighlight> |
||
=={{header|Lasso}}== |
=={{header|Lasso}}== |
||
<lang |
<syntaxhighlight lang=lb>[a + b]</syntaxhighlight> |
||
=={{header|LIL}}== |
=={{header|LIL}}== |
||
< |
<syntaxhighlight lang=tcl># A+B, in LIL |
||
# Requires lil shell readline routine |
# Requires lil shell readline routine |
||
set in [readline] |
set in [readline] |
||
Line 3,487: | Line 3,487: | ||
if [expr $A < -1000 || $A > 1000] { print "A out of range: $A"; exit 1 } |
if [expr $A < -1000 || $A > 1000] { print "A out of range: $A"; exit 1 } |
||
if [expr $B < -1000 || $B > 1000] { print "B out of range: $B"; exit 1 } |
if [expr $B < -1000 || $B > 1000] { print "B out of range: $B"; exit 1 } |
||
print [expr $A + $B]</ |
print [expr $A + $B]</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
Line 3,494: | Line 3,494: | ||
=={{header|Lisaac}}== |
=={{header|Lisaac}}== |
||
< |
<syntaxhighlight lang=lisaac>Section Header |
||
+ name := A_PLUS_B |
+ name := A_PLUS_B |
||
Section Public |
Section Public |
||
- main <- ( (IO.read_integer; IO.last_integer) + |
- main <- ( (IO.read_integer; IO.last_integer) + |
||
(IO.read_integer; IO.last_integer) ).println;</ |
(IO.read_integer; IO.last_integer) ).println;</syntaxhighlight> |
||
=={{header|Little}}== |
=={{header|Little}}== |
||
< |
<syntaxhighlight lang=c>void main() { |
||
string a, b; |
string a, b; |
||
scan(gets(stdin), "%d %d", &a, &b); |
scan(gets(stdin), "%d %d", &a, &b); |
||
puts(((int)a + (int)b)); |
puts(((int)a + (int)b)); |
||
}</ |
}</syntaxhighlight> |
||
=={{header|Little Man Computer}}== |
=={{header|Little Man Computer}}== |
||
Line 3,514: | Line 3,514: | ||
'''Assembly''' |
'''Assembly''' |
||
< |
<syntaxhighlight lang=Little Man Computer> INP |
||
STA 99 |
STA 99 |
||
INP |
INP |
||
Line 3,520: | Line 3,520: | ||
OUT |
OUT |
||
HLT |
HLT |
||
// Output the sum of two numbers</ |
// Output the sum of two numbers</syntaxhighlight> |
||
'''Machine code''' |
'''Machine code''' |
||
< |
<syntaxhighlight lang=Little Man Computer>00 INP |
||
01 STA 99 |
01 STA 99 |
||
02 INP |
02 INP |
||
03 ADD 99 |
03 ADD 99 |
||
04 OUT |
04 OUT |
||
05 HLT</ |
05 HLT</syntaxhighlight> |
||
=={{header|LiveCode}}== |
=={{header|LiveCode}}== |
||
Using Livecode Server script |
Using Livecode Server script |
||
< |
<syntaxhighlight lang=LiveCode><?lc |
||
if isNumber($0) and isNumber($1) then |
if isNumber($0) and isNumber($1) then |
||
put $0 + $1 |
put $0 + $1 |
||
Line 3,538: | Line 3,538: | ||
put $0 && $1 |
put $0 && $1 |
||
end if |
end if |
||
?></ |
?></syntaxhighlight> |
||
A graphical version using an input dialog |
A graphical version using an input dialog |
||
< |
<syntaxhighlight lang=LiveCode>on mouseUp |
||
ask "Enter two numbers" |
ask "Enter two numbers" |
||
set itemdelimiter to space |
set itemdelimiter to space |
||
Line 3,550: | Line 3,550: | ||
answer item 1 of nums && item 2 of nums |
answer item 1 of nums && item 2 of nums |
||
end if |
end if |
||
end mouseUp</ |
end mouseUp</syntaxhighlight> |
||
=={{header|Logo}}== |
=={{header|Logo}}== |
||
<lang |
<syntaxhighlight lang=logo>show apply "sum readlist</syntaxhighlight> |
||
=={{header|Lua}}== |
=={{header|Lua}}== |
||
< |
<syntaxhighlight lang=Lua>a,b = io.read("*number", "*number") |
||
print(a+b)</ |
print(a+b)</syntaxhighlight> |
||
=={{header|M2000 Interpreter}}== |
=={{header|M2000 Interpreter}}== |
||
Line 3,564: | Line 3,564: | ||
Input A%, B% |
Input A%, B% |
||
} Until Range(A%) And Range(B%) |
} Until Range(A%) And Range(B%) |
||
Print A%+B%</ |
Print A%+B%</syntaxhighlight> |
||
=={{header|M4}}== |
=={{header|M4}}== |
||
< |
<syntaxhighlight lang=M4> define(`sumstr', `eval(patsubst(`$1',` ',`+'))') |
||
sumstr(1 2) |
sumstr(1 2) |
||
3</ |
3</syntaxhighlight> |
||
=={{header|Maple}}== |
=={{header|Maple}}== |
||
< |
<syntaxhighlight lang=maple> convert( scanf( "%d %d" ), '`+`' ); |
||
23 34 |
23 34 |
||
57</ |
57</syntaxhighlight> |
||
=={{header|Mathematica}}/{{header|Wolfram Language}}== |
=={{header|Mathematica}}/{{header|Wolfram Language}}== |
||
Interactive in a notebook |
Interactive in a notebook |
||
<lang |
<syntaxhighlight lang=Mathematica>Input[] + Input[]</syntaxhighlight> |
||
=={{header|MATLAB}} / {{header|Octave}}== |
=={{header|MATLAB}} / {{header|Octave}}== |
||
< |
<syntaxhighlight lang=MATLAB>function sumOfInputs = APlusB() |
||
inputStream = input('Enter two numbers, separated by a space: ', 's'); |
inputStream = input('Enter two numbers, separated by a space: ', 's'); |
||
numbers = str2num(inputStream); %#ok<ST2NM> |
numbers = str2num(inputStream); %#ok<ST2NM> |
||
Line 3,589: | Line 3,589: | ||
end |
end |
||
sumOfInputs = sum(numbers); |
sumOfInputs = sum(numbers); |
||
end</ |
end</syntaxhighlight> |
||
=={{header|Maude}}== |
=={{header|Maude}}== |
||
===Built-in=== |
===Built-in=== |
||
< |
<syntaxhighlight lang=Maude> |
||
red 3 + 4 . |
red 3 + 4 . |
||
</syntaxhighlight> |
|||
</lang> |
|||
===With restrictions=== |
===With restrictions=== |
||
< |
<syntaxhighlight lang=Maude> |
||
fmod ADD is |
fmod ADD is |
||
Line 3,610: | Line 3,610: | ||
endfm |
endfm |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Maxima}}== |
=={{header|Maxima}}== |
||
Line 3,619: | Line 3,619: | ||
); |
); |
||
close(in_stream); |
close(in_stream); |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Mercury}}== |
=={{header|Mercury}}== |
||
Line 3,641: | Line 3,641: | ||
else |
else |
||
true |
true |
||
).</ |
).</syntaxhighlight> |
||
=={{header|min}}== |
=={{header|min}}== |
||
{{works with|min|0.19.3}} |
{{works with|min|0.19.3}} |
||
< |
<syntaxhighlight lang=min>gets " " split 'bool filter 'int map sum puts!</syntaxhighlight> |
||
=={{header|MiniScript}}== |
=={{header|MiniScript}}== |
||
The <code>input</code> intrinsic in MiniScript isn't available in all implementations, so we've just hard-coded the input here: |
The <code>input</code> intrinsic in MiniScript isn't available in all implementations, so we've just hard-coded the input here: |
||
< |
<syntaxhighlight lang=MiniScript>s = " 2 3 " |
||
fields = s.split |
fields = s.split |
||
for i in range(fields.len-1, 0) |
for i in range(fields.len-1, 0) |
||
Line 3,658: | Line 3,658: | ||
else |
else |
||
print val(fields[0]) + val(fields[1]) |
print val(fields[0]) + val(fields[1]) |
||
end if</ |
end if</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
Line 3,664: | Line 3,664: | ||
=={{header|mIRC Scripting Language}}== |
=={{header|mIRC Scripting Language}}== |
||
< |
<syntaxhighlight lang=mirc>alias a+b { |
||
echo -ag $calc($1 + $2) |
echo -ag $calc($1 + $2) |
||
}</ |
}</syntaxhighlight> |
||
=={{header|МК-61/52}}== |
=={{header|МК-61/52}}== |
||
Line 3,675: | Line 3,675: | ||
=={{header|ML/I}}== |
=={{header|ML/I}}== |
||
The two numbers are read from 'standard input' or its equivalent. |
The two numbers are read from 'standard input' or its equivalent. |
||
< |
<syntaxhighlight lang=ML/I>MCSKIP "WITH" NL |
||
"" A+B |
"" A+B |
||
"" assumes macros on input stream 1, terminal on stream 2 |
"" assumes macros on input stream 1, terminal on stream 2 |
||
Line 3,687: | Line 3,687: | ||
MCSKIP SL WITH * |
MCSKIP SL WITH * |
||
MCSET S1=1 |
MCSET S1=1 |
||
*MCSET S10=2</ |
*MCSET S10=2</syntaxhighlight> |
||
=={{header|Modula-2}}== |
=={{header|Modula-2}}== |
||
< |
<syntaxhighlight lang=modula2>MODULE ab; |
||
IMPORT InOut; |
IMPORT InOut; |
||
Line 3,701: | Line 3,701: | ||
InOut.WriteInt (A + B, 8); |
InOut.WriteInt (A + B, 8); |
||
InOut.WriteLn |
InOut.WriteLn |
||
END ab.</ |
END ab.</syntaxhighlight> |
||
=={{header|Modula-3}}== |
=={{header|Modula-3}}== |
||
< |
<syntaxhighlight lang=modula3>MODULE Ab EXPORTS Main; |
||
IMPORT IO; |
IMPORT IO; |
||
Line 3,719: | Line 3,719: | ||
IO.PutInt(A+B); |
IO.PutInt(A+B); |
||
IO.Put("\n"); |
IO.Put("\n"); |
||
END Ab.</ |
END Ab.</syntaxhighlight> |
||
=={{header|MoonScript}}== |
=={{header|MoonScript}}== |
||
< |
<syntaxhighlight lang=moonscript>a,b = io.read '*number','*number' |
||
print a + b</ |
print a + b</syntaxhighlight> |
||
=={{header|MUMPS}}== |
=={{header|MUMPS}}== |
||
< |
<syntaxhighlight lang=MUMPS>ANB |
||
NEW A,B,T,S |
NEW A,B,T,S |
||
READ !,"Input two integers between -1000 and 1000, separated by a space: ",S |
READ !,"Input two integers between -1000 and 1000, separated by a space: ",S |
||
Line 3,733: | Line 3,733: | ||
IF T WRITE !,(A+B) |
IF T WRITE !,(A+B) |
||
IF 'T WRITE !,"Bad input" |
IF 'T WRITE !,"Bad input" |
||
QUIT</ |
QUIT</syntaxhighlight> |
||
=={{header|Nanoquery}}== |
=={{header|Nanoquery}}== |
||
< |
<syntaxhighlight lang=Nanoquery>// get a line of input |
||
line = input() |
line = input() |
||
Line 3,743: | Line 3,743: | ||
// add the two numbers and print the result |
// add the two numbers and print the result |
||
println int(strings[0]) + int(strings[1])</ |
println int(strings[0]) + int(strings[1])</syntaxhighlight> |
||
=={{header|Neko}}== |
=={{header|Neko}}== |
||
< |
<syntaxhighlight lang=ActionScript>/** |
||
A+B, Rosetta Code, in Neko |
A+B, Rosetta Code, in Neko |
||
Tectonics: |
Tectonics: |
||
Line 3,810: | Line 3,810: | ||
} else $print("Need two numbers, separated by whitespace\n") |
} else $print("Need two numbers, separated by whitespace\n") |
||
} catch with $print("Exception: ", with, "\n")</ |
} catch with $print("Exception: ", with, "\n")</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
Line 3,822: | Line 3,822: | ||
=={{header|Nemerle}}== |
=={{header|Nemerle}}== |
||
{{trans|C#}} |
{{trans|C#}} |
||
< |
<syntaxhighlight lang=Nemerle>using System; |
||
using System.Console; |
using System.Console; |
||
using System.Linq; |
using System.Linq; |
||
Line 3,832: | Line 3,832: | ||
WriteLine(ReadLine().Split().Select(int.Parse).Sum()); |
WriteLine(ReadLine().Split().Select(int.Parse).Sum()); |
||
} |
} |
||
}</ |
}</syntaxhighlight> |
||
=={{header|NetRexx}}== |
=={{header|NetRexx}}== |
||
< |
<syntaxhighlight lang=NetRexx>/* NetRexx */ |
||
options replace format comments java symbols binary |
options replace format comments java symbols binary |
||
parse ask a b . |
parse ask a b . |
||
say a '+' b '=' a + b</ |
say a '+' b '=' a + b</syntaxhighlight> |
||
=={{header|newLISP}}== |
=={{header|newLISP}}== |
||
< |
<syntaxhighlight lang=newLISP>(println (apply + (map int (parse (read-line)))))</syntaxhighlight> |
||
=={{header|Nim}}== |
=={{header|Nim}}== |
||
A+B: |
A+B: |
||
< |
<syntaxhighlight lang=nim> |
||
# Takes 2 inputs of Floats and adds them (which is not correct for the exercise, will revisit, Thank you |
# Takes 2 inputs of Floats and adds them (which is not correct for the exercise, will revisit, Thank you |
||
Line 3,868: | Line 3,868: | ||
let second: float = getnumber() |
let second: float = getnumber() |
||
echo("Result: " & formatFloat(aplusb(first, second), ffDecimal, 2))</ |
echo("Result: " & formatFloat(aplusb(first, second), ffDecimal, 2))</syntaxhighlight> |
||
The puzzle requires 1 input, 2 INTS separated by a space, than a+b |
The puzzle requires 1 input, 2 INTS separated by a space, than a+b |
||
Line 3,875: | Line 3,875: | ||
=={{header|Nit}}== |
=={{header|Nit}}== |
||
Generic non-robust version (source: [https://github.com/nitlang/nit/blob/master/examples/rosettacode/ab.nit the Nit’s official repository]): |
Generic non-robust version (source: [https://github.com/nitlang/nit/blob/master/examples/rosettacode/ab.nit the Nit’s official repository]): |
||
< |
<syntaxhighlight lang=nit>module ab |
||
var words = gets.split(" ") |
var words = gets.split(" ") |
||
Line 3,882: | Line 3,882: | ||
return |
return |
||
end |
end |
||
print words[0].to_i + words[1].to_i</ |
print words[0].to_i + words[1].to_i</syntaxhighlight> |
||
=={{header|NS-HUBASIC}}== |
=={{header|NS-HUBASIC}}== |
||
< |
<syntaxhighlight lang=NS-HUBASIC>10 INPUT "ENTER NUMBER A: ",A |
||
20 INPUT "ENTER NUMBER B: ",B |
20 INPUT "ENTER NUMBER B: ",B |
||
30 PRINT A+B</ |
30 PRINT A+B</syntaxhighlight> |
||
=={{header|Nyquist}}== |
=={{header|Nyquist}}== |
||
===SAL Syntax=== |
===SAL Syntax=== |
||
< |
<syntaxhighlight lang=Nyquist>;nyquist plug-in |
||
;version 1 |
;version 1 |
||
;type tool |
;type tool |
||
Line 3,902: | Line 3,902: | ||
print a + b |
print a + b |
||
return ""</ |
return ""</syntaxhighlight> |
||
===Audacity plug-in (SAL syntax)=== |
===Audacity plug-in (SAL syntax)=== |
||
< |
<syntaxhighlight lang=Nyquist>;nyquist plug-in |
||
;version 1 |
;version 1 |
||
;type tool |
;type tool |
||
Line 3,916: | Line 3,916: | ||
print a + b |
print a + b |
||
return ""</ |
return ""</syntaxhighlight> |
||
=={{header|Oberon-2}}== |
=={{header|Oberon-2}}== |
||
< |
<syntaxhighlight lang=oberon2>MODULE ab; |
||
IMPORT In, Out; |
IMPORT In, Out; |
||
Line 3,930: | Line 3,930: | ||
Out.Int (A + B, 8); |
Out.Int (A + B, 8); |
||
Out.Ln |
Out.Ln |
||
END ab.</ |
END ab.</syntaxhighlight> |
||
Producing |
Producing |
||
<pre> |
<pre> |
||
Line 3,938: | Line 3,938: | ||
=={{header|Objeck}}== |
=={{header|Objeck}}== |
||
< |
<syntaxhighlight lang=objeck>bundle Default { |
||
class Vander { |
class Vander { |
||
function : Main(args : String[]) ~ Nil { |
function : Main(args : String[]) ~ Nil { |
||
Line 3,947: | Line 3,947: | ||
} |
} |
||
} |
} |
||
}</ |
}</syntaxhighlight> |
||
=={{header|OCaml}}== |
=={{header|OCaml}}== |
||
< |
<syntaxhighlight lang=ocaml>Scanf.scanf "%d %d" (fun a b -> Printf.printf "%d\n" (a + b))</syntaxhighlight> |
||
=={{header|Oforth}}== |
=={{header|Oforth}}== |
||
Line 3,956: | Line 3,956: | ||
Works with any number of integers separated by a space. |
Works with any number of integers separated by a space. |
||
< |
<syntaxhighlight lang=Oforth>import: mapping |
||
System.Console accept words map( #>integer) reduce( #+ ) printcr .</ |
System.Console accept words map( #>integer) reduce( #+ ) printcr .</syntaxhighlight> |
||
=={{header|Ol}}== |
=={{header|Ol}}== |
||
Note: input data must be separated by newline ([Enter] key press). |
Note: input data must be separated by newline ([Enter] key press). |
||
< |
<syntaxhighlight lang=ol>; simplest |
||
(+ (read) (read)) |
(+ (read) (read)) |
||
Line 3,975: | Line 3,975: | ||
(print a " + " b " = " (+ a b))) |
(print a " + " b " = " (+ a b))) |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Onyx}}== |
=={{header|Onyx}}== |
||
< |
<syntaxhighlight lang=onyx>$Prompt { |
||
`\nEnter two numbers between -1000 and +1000,\nseparated by a space: ' print flush |
`\nEnter two numbers between -1000 and +1000,\nseparated by a space: ' print flush |
||
} def |
} def |
||
Line 4,003: | Line 4,003: | ||
} def |
} def |
||
Prompt GetNumbers CheckInput Answer</ |
Prompt GetNumbers CheckInput Answer</syntaxhighlight> |
||
=={{header|ooRexx}}== |
=={{header|ooRexx}}== |
||
===version 1=== |
===version 1=== |
||
{{trans|REXX}} |
{{trans|REXX}} |
||
< |
<syntaxhighlight lang=oorexx>Numeric digits 1000 /*just in case the user gets ka-razy. */ |
||
Say 'enter some numbers to be summed:' |
Say 'enter some numbers to be summed:' |
||
parse pull y |
parse pull y |
||
Line 4,026: | Line 4,026: | ||
Parse arg list |
Parse arg list |
||
list=space(list) |
list=space(list) |
||
return translate(list,'+',' ')</ |
return translate(list,'+',' ')</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
<pre>enter some numbers to be summed: |
<pre>enter some numbers to be summed: |
||
Line 4,032: | Line 4,032: | ||
===version 2=== |
===version 2=== |
||
extend for negative numbers |
extend for negative numbers |
||
< |
<syntaxhighlight lang=oorexx>Numeric digits 1000 |
||
Say 'enter some numbers to be summed:' |
Say 'enter some numbers to be summed:' |
||
parse pull y |
parse pull y |
||
Line 4,052: | Line 4,052: | ||
End |
End |
||
Say yplus '=' sum/1 |
Say yplus '=' sum/1 |
||
Exit</ |
Exit</syntaxhighlight> |
||
=={{header|OpenEdge/Progress}}== |
=={{header|OpenEdge/Progress}}== |
||
< |
<syntaxhighlight lang=progress>DEFINE VARIABLE a AS INTEGER NO-UNDO FORMAT "->>>9". |
||
DEFINE VARIABLE b AS INTEGER NO-UNDO FORMAT "->>>9". |
DEFINE VARIABLE b AS INTEGER NO-UNDO FORMAT "->>>9". |
||
Line 4,066: | Line 4,066: | ||
UPDATE a b. |
UPDATE a b. |
||
MESSAGE a + b VIEW-AS ALERT-BOX</ |
MESSAGE a + b VIEW-AS ALERT-BOX</syntaxhighlight> |
||
=={{header|Openscad}}== |
=={{header|Openscad}}== |
||
There is no means of run-time input in Openscad |
There is no means of run-time input in Openscad |
||
< |
<syntaxhighlight lang=openscad> |
||
a = 5 + 4; |
a = 5 + 4; |
||
echo (a); |
echo (a); |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Order}}== |
=={{header|Order}}== |
||
Line 4,079: | Line 4,079: | ||
To run this Order program, you must define the macros '''A''' and '''B''' to values of the form '''8int(SIGN, 8nat(VALUE))''', where SIGN is 1/0 to represent signed/unsigned numbers, and VALUES is any comma-separated list of decimal digits. For example, to evaluate the sum of A=-150, B=275, define A to be '''8int(1, 8nat(1,5,0))''' and B to be '''8int(0, 8nat(2,7,5))'''. |
To run this Order program, you must define the macros '''A''' and '''B''' to values of the form '''8int(SIGN, 8nat(VALUE))''', where SIGN is 1/0 to represent signed/unsigned numbers, and VALUES is any comma-separated list of decimal digits. For example, to evaluate the sum of A=-150, B=275, define A to be '''8int(1, 8nat(1,5,0))''' and B to be '''8int(0, 8nat(2,7,5))'''. |
||
< |
<syntaxhighlight lang=order> |
||
#define ORDER_PP_DEF_1int_is_positive \ |
#define ORDER_PP_DEF_1int_is_positive \ |
||
ORDER_PP_FN(8fn(8X, 8is_0(8tuple_at_0(8X)))) |
ORDER_PP_FN(8fn(8X, 8is_0(8tuple_at_0(8X)))) |
||
Line 4,116: | Line 4,116: | ||
ORDER_PP(8int_to_lit(8int_add(A, B))) |
ORDER_PP(8int_to_lit(8int_add(A, B))) |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Oxygene}}== |
=={{header|Oxygene}}== |
||
< |
<syntaxhighlight lang=oxygene> |
||
// Sum 2 integers read fron standard input |
// Sum 2 integers read fron standard input |
||
// |
// |
||
Line 4,152: | Line 4,152: | ||
end. |
end. |
||
</syntaxhighlight> |
|||
</lang> |
|||
Produces: |
Produces: |
||
<pre> |
<pre> |
||
Line 4,161: | Line 4,161: | ||
=={{header|Oz}}== |
=={{header|Oz}}== |
||
< |
<syntaxhighlight lang=oz>declare |
||
class TextFile from Open.file Open.text end |
class TextFile from Open.file Open.text end |
||
Line 4,170: | Line 4,170: | ||
end |
end |
||
in |
in |
||
{Show {ReadInt}+{ReadInt}}</ |
{Show {ReadInt}+{ReadInt}}</syntaxhighlight> |
||
=={{header|PARI/GP}}== |
=={{header|PARI/GP}}== |
||
User input: |
User input: |
||
<lang |
<syntaxhighlight lang=parigp>input()+input()</syntaxhighlight> |
||
File input: |
File input: |
||
< |
<syntaxhighlight lang=parigp>read("file1")+read("file2")</syntaxhighlight> |
||
=={{header|Pascal}}== |
=={{header|Pascal}}== |
||
< |
<syntaxhighlight lang=pascal>var |
||
a, b: integer; |
a, b: integer; |
||
begin |
begin |
||
readln(a, b); |
readln(a, b); |
||
writeln(a + b); |
writeln(a + b); |
||
end.</ |
end.</syntaxhighlight> |
||
Same with input from file <tt>input.txt</tt> and output from file <tt>output.txt</tt>. |
Same with input from file <tt>input.txt</tt> and output from file <tt>output.txt</tt>. |
||
< |
<syntaxhighlight lang=pascal>var |
||
a, b: integer; |
a, b: integer; |
||
begin |
begin |
||
Line 4,195: | Line 4,195: | ||
close(input); |
close(input); |
||
close(output); |
close(output); |
||
end.</ |
end.</syntaxhighlight> |
||
===Version 2. Following the rules=== |
===Version 2. Following the rules=== |
||
< |
<syntaxhighlight lang=pascal>{ Task: A + B |
||
Sum of A + B while A, B >= -1000 and A,B <= 1000 |
Sum of A + B while A, B >= -1000 and A,B <= 1000 |
||
Author: Sinuhe Masan (2019) } |
Author: Sinuhe Masan (2019) } |
||
Line 4,214: | Line 4,214: | ||
writeln('The sum is: ', A + B); |
writeln('The sum is: ', A + B); |
||
end.</ |
end.</syntaxhighlight> |
||
=={{header|Perl}}== |
=={{header|Perl}}== |
||
< |
<syntaxhighlight lang=Perl>my ($a,$b) = split(' ', scalar(<STDIN>)); |
||
print "$a $b " . ($a + $b) . "\n";</ |
print "$a $b " . ($a + $b) . "\n";</syntaxhighlight> |
||
=== using the List::Util module === |
=== using the List::Util module === |
||
< |
<syntaxhighlight lang=Perl>say sum split /\s+/, scalar <STDIN>;</syntaxhighlight> |
||
=={{header|Phix}}== |
=={{header|Phix}}== |
||
<!--< |
<!--<syntaxhighlight lang=Phix>--> |
||
<span style="color: #000080;font-style:italic;">-- demo\rosetta\AplusB.exw</span> |
<span style="color: #000080;font-style:italic;">-- demo\rosetta\AplusB.exw</span> |
||
<span style="color: #004080;">string</span> <span style="color: #000000;">s</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">prompt_string</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"Enter two numbers separated by a space : "</span><span style="color: #0000FF;">)</span> |
<span style="color: #004080;">string</span> <span style="color: #000000;">s</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">prompt_string</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"Enter two numbers separated by a space : "</span><span style="color: #0000FF;">)</span> |
||
Line 4,234: | Line 4,234: | ||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"invalid input\n"</span><span style="color: #0000FF;">)</span> |
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"invalid input\n"</span><span style="color: #0000FF;">)</span> |
||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
||
<!--</ |
<!--</syntaxhighlight>--> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
Line 4,242: | Line 4,242: | ||
=== GUI version === |
=== GUI version === |
||
<small>(The above console version is now just a comment in the distributed file.)</small> |
<small>(The above console version is now just a comment in the distributed file.)</small> |
||
<!--< |
<!--<syntaxhighlight lang=Phix>(phixonline)--> |
||
<span style="color: #000080;font-style:italic;">-- demo\rosetta\AplusB.exw</span> |
<span style="color: #000080;font-style:italic;">-- demo\rosetta\AplusB.exw</span> |
||
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span> |
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span> |
||
Line 4,275: | Line 4,275: | ||
<span style="color: #000000;">main</span><span style="color: #0000FF;">()</span> |
<span style="color: #000000;">main</span><span style="color: #0000FF;">()</span> |
||
<!--</ |
<!--</syntaxhighlight>--> |
||
=={{header|Phixmonti}}== |
=={{header|Phixmonti}}== |
||
< |
<syntaxhighlight lang=Phixmonti>/# Rosetta Code problem: http://rosettacode.org/wiki/A+B |
||
by Galileo, 05/2022 #/ |
by Galileo, 05/2022 #/ |
||
Line 4,294: | Line 4,294: | ||
over over + >ps |
over over + >ps |
||
nl "The sum of " print print " and " print print " is: " print ps> print</ |
nl "The sum of " print print " and " print print " is: " print ps> print</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
<pre>Enter two numbers (betwen -1000 ... +1000) separated by space: 2 3 |
<pre>Enter two numbers (betwen -1000 ... +1000) separated by space: 2 3 |
||
Line 4,301: | Line 4,301: | ||
=={{header|PHP}}== |
=={{header|PHP}}== |
||
< |
<syntaxhighlight lang=php>fscanf(STDIN, "%d %d\n", $a, $b); //Reads 2 numbers from STDIN |
||
echo ($a + $b) . "\n";</ |
echo ($a + $b) . "\n";</syntaxhighlight> |
||
< |
<syntaxhighlight lang=php>$in = fopen("input.dat", "r"); |
||
fscanf($in, "%d %d\n", $a, $b); //Reads 2 numbers from file $in |
fscanf($in, "%d %d\n", $a, $b); //Reads 2 numbers from file $in |
||
fclose($in); |
fclose($in); |
||
Line 4,309: | Line 4,309: | ||
$out = fopen("output.dat", "w"); |
$out = fopen("output.dat", "w"); |
||
fwrite($out, ($a + $b) . "\n"); |
fwrite($out, ($a + $b) . "\n"); |
||
fclose($out);</ |
fclose($out);</syntaxhighlight> |
||
=={{header|Picat}}== |
=={{header|Picat}}== |
||
< |
<syntaxhighlight lang=Picat> |
||
go => |
go => |
||
println("Write two integers (and CR)"), |
println("Write two integers (and CR)"), |
||
println(read_int()+read_int()). |
println(read_int()+read_int()). |
||
</syntaxhighlight> |
|||
</lang> |
|||
{{out}} |
{{out}} |
||
Line 4,333: | Line 4,333: | ||
=={{header|PicoLisp}}== |
=={{header|PicoLisp}}== |
||
< |
<syntaxhighlight lang=PicoLisp>(+ (read) (read)) |
||
3 4 |
3 4 |
||
-> 7</ |
-> 7</syntaxhighlight> |
||
=={{header|Piet}}== |
=={{header|Piet}}== |
||
[[File:Piet A+B.png]] |
[[File:Piet A+B.png]] |
||
The code is fairly straightforward. The individual commands are as follows: |
The code is fairly straightforward. The individual commands are as follows: |
||
< |
<syntaxhighlight lang=text>in(num) |
||
in(num) |
in(num) |
||
add |
add |
||
out(num)</ |
out(num)</syntaxhighlight> |
||
=={{header|Pike}}== |
=={{header|Pike}}== |
||
< |
<syntaxhighlight lang=Pike>string line = Stdio.stdin->gets(); |
||
sscanf(line, "%d %d", int a, int b); |
sscanf(line, "%d %d", int a, int b); |
||
write(a+b +"\n");</ |
write(a+b +"\n");</syntaxhighlight> |
||
=={{header|PL/I}}== |
=={{header|PL/I}}== |
||
< |
<syntaxhighlight lang=pli>get (a, b); |
||
put (a+b);</ |
put (a+b);</syntaxhighlight> |
||
=={{header|Pony}}== |
=={{header|Pony}}== |
||
< |
<syntaxhighlight lang=pony> |
||
actor Main |
actor Main |
||
let _env:Env |
let _env:Env |
||
Line 4,381: | Line 4,381: | ||
_env.out.print(sum.string()) |
_env.out.print(sum.string()) |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|PostScript}}== |
=={{header|PostScript}}== |
||
< |
<syntaxhighlight lang=postscript>(%stdin) (r) file % get stdin |
||
dup |
dup |
||
token pop % read A |
token pop % read A |
||
Line 4,390: | Line 4,390: | ||
token pop % read B |
token pop % read B |
||
add |
add |
||
=</ |
=</syntaxhighlight> |
||
=={{header|Potion}}== |
=={{header|Potion}}== |
||
< |
<syntaxhighlight lang=potion># The numbers are entered, piped, or redirected in via STDIN and the format is proper (i.e., "%d %d"). |
||
input = read |
input = read |
||
i = 0 |
i = 0 |
||
Line 4,405: | Line 4,405: | ||
# The numbers are manually inputted, but the format is improper (i.e., "%d\n%d\n"). |
# The numbers are manually inputted, but the format is improper (i.e., "%d\n%d\n"). |
||
(read number + read number) print</ |
(read number + read number) print</syntaxhighlight> |
||
=={{header|PowerShell}}== |
=={{header|PowerShell}}== |
||
< |
<syntaxhighlight lang=powershell>$a,$b = -split "$input" |
||
[int]$a + [int]$b</ |
[int]$a + [int]$b</syntaxhighlight> |
||
This solution does not work interactively, while the following ''only'' works interactively: |
This solution does not work interactively, while the following ''only'' works interactively: |
||
< |
<syntaxhighlight lang=powershell>$a,$b = -split (Read-Host) |
||
[int]$a + [int]$b</ |
[int]$a + [int]$b</syntaxhighlight> |
||
I think this works better and doesn't require string input (following the task closer): |
I think this works better and doesn't require string input (following the task closer): |
||
< |
<syntaxhighlight lang=powershell>filter add { |
||
return [int]$args[0] + [int]$args[1] |
return [int]$args[0] + [int]$args[1] |
||
}</ |
}</syntaxhighlight> |
||
Can be called in one line with |
Can be called in one line with |
||
<lang |
<syntaxhighlight lang=powershell>add 2 3</syntaxhighlight> |
||
=={{header|Processing}}== |
=={{header|Processing}}== |
||
===Rudimentary User Interface=== |
===Rudimentary User Interface=== |
||
Click on either side to add 1 to its value. |
Click on either side to add 1 to its value. |
||
< |
<syntaxhighlight lang=Processing>int a = 0; |
||
int b = 0; |
int b = 0; |
||
Line 4,449: | Line 4,449: | ||
b++; |
b++; |
||
} |
} |
||
}</ |
}</syntaxhighlight> |
||
[https://i.imgur.com/QEHtMyA.jpg What the GUI looks like.] |
[https://i.imgur.com/QEHtMyA.jpg What the GUI looks like.] |
||
Line 4,455: | Line 4,455: | ||
=={{header|ProDOS}}== |
=={{header|ProDOS}}== |
||
With the math module: |
With the math module: |
||
< |
<syntaxhighlight lang=ProDOS>editvar /newvar /value=a /title=Enter an integer: |
||
editvar /newvar /value=b /title=Enter another integer: |
editvar /newvar /value=b /title=Enter another integer: |
||
editvar /newvar /value=c |
editvar /newvar /value=c |
||
do add -a-,-b-=-c- |
do add -a-,-b-=-c- |
||
printline -c- </ |
printline -c- </syntaxhighlight> |
||
Without the math module: |
Without the math module: |
||
< |
<syntaxhighlight lang=ProDOS>editvar /newvar /value=a /title=Enter an integer: |
||
editvar /newvar /value=b /title=Enter another integer: |
editvar /newvar /value=b /title=Enter another integer: |
||
editvar /newvar /value=c=-a-+-b- |
editvar /newvar /value=c=-a-+-b- |
||
printline -c- </ |
printline -c- </syntaxhighlight> |
||
=={{header|Prolog}}== |
=={{header|Prolog}}== |
||
{{Works with|SWI-Prolog}} |
{{Works with|SWI-Prolog}} |
||
< |
<syntaxhighlight lang=Prolog>plus :- |
||
read_line_to_codes(user_input,X), |
read_line_to_codes(user_input,X), |
||
atom_codes(A, X), |
atom_codes(A, X), |
||
Line 4,474: | Line 4,474: | ||
maplist(atom_number, L, LN), |
maplist(atom_number, L, LN), |
||
sumlist(LN, N), |
sumlist(LN, N), |
||
write(N).</ |
write(N).</syntaxhighlight> |
||
output : |
output : |
||
< |
<syntaxhighlight lang=Prolog>?- plus. |
||
|: 4 5 |
|: 4 5 |
||
9 |
9 |
||
true.</ |
true.</syntaxhighlight> |
||
=={{header|Pure}}== |
=={{header|Pure}}== |
||
< |
<syntaxhighlight lang=pure>using system; |
||
printf "%d\n" (x+y) when x,y = scanf "%d %d" end;</ |
printf "%d\n" (x+y) when x,y = scanf "%d %d" end;</syntaxhighlight> |
||
=={{header|PureBasic}}== |
=={{header|PureBasic}}== |
||
===Console=== |
===Console=== |
||
< |
<syntaxhighlight lang=PureBasic>x$=Input() |
||
a=Val(StringField(x$,1," ")) |
a=Val(StringField(x$,1," ")) |
||
b=Val(StringField(x$,2," ")) |
b=Val(StringField(x$,2," ")) |
||
PrintN(str(a+b))</ |
PrintN(str(a+b))</syntaxhighlight> |
||
===File=== |
===File=== |
||
< |
<syntaxhighlight lang=PureBasic>If ReadFile(0,"in.txt") |
||
x$=ReadString(0) |
x$=ReadString(0) |
||
a=Val(StringField(x$,1," ")) |
a=Val(StringField(x$,1," ")) |
||
Line 4,501: | Line 4,501: | ||
EndIf |
EndIf |
||
CloseFile(0) |
CloseFile(0) |
||
EndIf </ |
EndIf </syntaxhighlight> |
||
=={{header|Python}}== |
=={{header|Python}}== |
||
Line 4,510: | Line 4,510: | ||
The first two lines allow the program to be run in either Python 2 or 3. In Python 2, <code>raw_input</code> exists, and the lines are effectively skipped. In Python 3, calling <code>raw_input</code> triggers an error, so the <code>except</code> loop activates and assigns "raw_input" the value of Python 3's "input" function. Regardless of version, these two lines make sure that <code>raw_input</code> will return a string. |
The first two lines allow the program to be run in either Python 2 or 3. In Python 2, <code>raw_input</code> exists, and the lines are effectively skipped. In Python 3, calling <code>raw_input</code> triggers an error, so the <code>except</code> loop activates and assigns "raw_input" the value of Python 3's "input" function. Regardless of version, these two lines make sure that <code>raw_input</code> will return a string. |
||
< |
<syntaxhighlight lang=python>try: raw_input |
||
except: raw_input = input |
except: raw_input = input |
||
print(sum(map(int, raw_input().split())))</ |
print(sum(map(int, raw_input().split())))</syntaxhighlight> |
||
===File=== |
===File=== |
||
For Python 2.X and 3.X taking input from stdin stream which can be redirected to be file input under Unix |
For Python 2.X and 3.X taking input from stdin stream which can be redirected to be file input under Unix |
||
< |
<syntaxhighlight lang=python>import sys |
||
for line in sys.stdin: |
for line in sys.stdin: |
||
print(sum(map(int, line.split())))</ |
print(sum(map(int, line.split())))</syntaxhighlight> |
||
===Console, Python 3 only=== |
===Console, Python 3 only=== |
||
< |
<syntaxhighlight lang=python>a = int(input("First number: ")) |
||
b = int(input("Second number: ")) |
b = int(input("Second number: ")) |
||
print("Result:", a+b)</ |
print("Result:", a+b)</syntaxhighlight> |
||
=={{header|QB64}}== |
=={{header|QB64}}== |
||
< |
<syntaxhighlight lang=QB64>DIM a AS INTEGER, b AS INTEGER |
||
DIM c AS LONG |
DIM c AS LONG |
||
INPUT "Enter A: ", a |
INPUT "Enter A: ", a |
||
Line 4,534: | Line 4,534: | ||
c = a + b |
c = a + b |
||
PRINT "" |
PRINT "" |
||
PRINT "A + B = " + LTRIM$(STR$(c)) </ |
PRINT "A + B = " + LTRIM$(STR$(c)) </syntaxhighlight> |
||
'''Fully implemented version:''' |
'''Fully implemented version:''' |
||
Line 4,544: | Line 4,544: | ||
** Integers between -1000 and +1000. |
** Integers between -1000 and +1000. |
||
< |
<syntaxhighlight lang=qbasic>START: |
||
PRINT "Enter two integers between -1000 and +1000 separated by at least one space: " |
PRINT "Enter two integers between -1000 and +1000 separated by at least one space: " |
||
INPUT "> "; n$ ' | Enter two numbers with at least one space between. |
INPUT "> "; n$ ' | Enter two numbers with at least one space between. |
||
Line 4,558: | Line 4,558: | ||
b$ = LTRIM$(STR$(b)) ' | " |
b$ = LTRIM$(STR$(b)) ' | " |
||
sum$ = LTRIM$(STR$(a + b)) ' | " |
sum$ = LTRIM$(STR$(a + b)) ' | " |
||
PRINT "The sum of the two integers a + b = "; a$; " + "; b$; " = "; sum$</ |
PRINT "The sum of the two integers a + b = "; a$; " + "; b$; " = "; sum$</syntaxhighlight> |
||
=={{header|Quackery}}== |
=={{header|Quackery}}== |
||
Line 4,571: | Line 4,571: | ||
=={{header|Quite BASIC}}== |
=={{header|Quite BASIC}}== |
||
< |
<syntaxhighlight lang=Quite BASIC>10 input "Enter number A: ";a |
||
20 input "Enter number B: ";b |
20 input "Enter number B: ";b |
||
30 print a+b</ |
30 print a+b</syntaxhighlight> |
||
=={{header|R}}== |
=={{header|R}}== |
||
< |
<syntaxhighlight lang=r>sum(scan("", numeric(0), 2))</syntaxhighlight> |
||
=={{header|Ra}}== |
=={{header|Ra}}== |
||
<syntaxhighlight lang=Ra> |
|||
<lang Ra> |
|||
class Sum |
class Sum |
||
**Adds two given integers** |
**Adds two given integers** |
||
Line 4,605: | Line 4,605: | ||
print to Console.error made !, "Numbers too large" |
print to Console.error made !, "Numbers too large" |
||
exit program with error code |
exit program with error code |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Racket}}== |
=={{header|Racket}}== |
||
< |
<syntaxhighlight lang=racket> |
||
#lang racket |
#lang racket |
||
(+ (read) (read)) |
(+ (read) (read)) |
||
</syntaxhighlight> |
|||
</lang> |
|||
Or, with additional error checking: |
Or, with additional error checking: |
||
< |
<syntaxhighlight lang=racket> |
||
#lang racket |
#lang racket |
||
(define a (read)) |
(define a (read)) |
||
Line 4,622: | Line 4,622: | ||
(unless (number? b) (error 'a+b "number" b)) |
(unless (number? b) (error 'a+b "number" b)) |
||
(displayln (+ a b)) |
(displayln (+ a b)) |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Raku}}== |
=={{header|Raku}}== |
||
Line 4,629: | Line 4,629: | ||
Short version with very little "line noise": |
Short version with very little "line noise": |
||
<lang |
<syntaxhighlight lang=perl6>get.words.sum.say;</syntaxhighlight> |
||
Reduction operator <code>[+]</code>, and <code>say</code> as a function: |
Reduction operator <code>[+]</code>, and <code>say</code> as a function: |
||
<lang |
<syntaxhighlight lang=perl6>say [+] get.words;</syntaxhighlight> |
||
Long version: |
Long version: |
||
< |
<syntaxhighlight lang=perl6>my ($a, $b) = $*IN.get.split(" "); |
||
say $a + $b;</ |
say $a + $b;</syntaxhighlight> |
||
=={{header|REBOL}}== |
=={{header|REBOL}}== |
||
< |
<syntaxhighlight lang=rebol>forever [x: load input print x/1 + x/2]</syntaxhighlight> |
||
{{Out}} |
{{Out}} |
||
<pre>1 2 |
<pre>1 2 |
||
Line 4,647: | Line 4,647: | ||
=={{header|Red}}== |
=={{header|Red}}== |
||
< |
<syntaxhighlight lang=Red>x: load input print x/1 + x/2</syntaxhighlight> |
||
{{Out}} |
{{Out}} |
||
<pre>1 2 |
<pre>1 2 |
||
Line 4,657: | Line 4,657: | ||
Alternative implementations: |
Alternative implementations: |
||
< |
<syntaxhighlight lang=Red>print (first x: load input) + x/2</syntaxhighlight> |
||
< |
<syntaxhighlight lang=Red>print head insert load input 'add</syntaxhighlight> |
||
< |
<syntaxhighlight lang=Red>print load replace input " " " + "</syntaxhighlight> |
||
=={{header|Relation}}== |
=={{header|Relation}}== |
||
< |
<syntaxhighlight lang=Relation> |
||
set input = "2 2" |
set input = "2 2" |
||
set a = regexreplace(input,"^(-?\d+)\s+(-?\d+)+$","$1") |
set a = regexreplace(input,"^(-?\d+)\s+(-?\d+)+$","$1") |
||
set b = regexreplace(input,"^(-?\d+)\s+(-?\d+)+$","$2") |
set b = regexreplace(input,"^(-?\d+)\s+(-?\d+)+$","$2") |
||
echo a + b |
echo a + b |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Retro}}== |
=={{header|Retro}}== |
||
< |
<syntaxhighlight lang=Retro>:try ("-n) s:get s:to-number s:get s:to-number + n:put ;</syntaxhighlight> |
||
< |
<syntaxhighlight lang=Retro>try |
||
1 |
1 |
||
2</ |
2</syntaxhighlight> |
||
=={{header|REXX}}== |
=={{header|REXX}}== |
||
===version 1, unnormalized=== |
===version 1, unnormalized=== |
||
The numbers can be any valid REXX number (integer, fixed point decimal, floating point (with exponential notation, ···). |
The numbers can be any valid REXX number (integer, fixed point decimal, floating point (with exponential notation, ···). |
||
< |
<syntaxhighlight lang=rexx>/*REXX program obtains two numbers from the input stream (the console), shows their sum.*/ |
||
parse pull a b /*obtain two numbers from input stream.*/ |
parse pull a b /*obtain two numbers from input stream.*/ |
||
say a+b /*display the sum to the terminal. */ |
say a+b /*display the sum to the terminal. */ |
||
/*stick a fork in it, we're all done. */</ |
/*stick a fork in it, we're all done. */</syntaxhighlight> |
||
===version 2, normalizied=== |
===version 2, normalizied=== |
||
If the user entered '''4.00000''' and wanted to add '''5''' to that, and expects '''9''', |
If the user entered '''4.00000''' and wanted to add '''5''' to that, and expects '''9''', |
||
Line 4,690: | Line 4,690: | ||
Dividing by one normalizes the number. |
Dividing by one normalizes the number. |
||
< |
<syntaxhighlight lang=rexx>/*REXX program obtains two numbers from the input stream (the console), shows their sum.*/ |
||
parse pull a b /*obtain two numbers from input stream.*/ |
parse pull a b /*obtain two numbers from input stream.*/ |
||
say (a+b) / 1 /*display normalized sum to terminal. */ |
say (a+b) / 1 /*display normalized sum to terminal. */ |
||
/*stick a fork in it, we're all done. */</ |
/*stick a fork in it, we're all done. */</syntaxhighlight> |
||
===version 3, extended precision=== |
===version 3, extended precision=== |
||
Using the '''numeric digits''' statement allows more decimal digits to be used, the default is '''9'''. |
Using the '''numeric digits''' statement allows more decimal digits to be used, the default is '''9'''. |
||
< |
<syntaxhighlight lang=rexx>/*REXX program obtains two numbers from the input stream (the console), shows their sum.*/ |
||
numeric digits 300 /*the default is nine decimal digits.*/ |
numeric digits 300 /*the default is nine decimal digits.*/ |
||
parse pull a b /*obtain two numbers from input stream.*/ |
parse pull a b /*obtain two numbers from input stream.*/ |
||
z= (a+b) / 1 /*add and normalize sum, store it in Z.*/ |
z= (a+b) / 1 /*add and normalize sum, store it in Z.*/ |
||
say z /*display normalized sum Z to terminal.*/ |
say z /*display normalized sum Z to terminal.*/ |
||
/*stick a fork in it, we're all done. */</ |
/*stick a fork in it, we're all done. */</syntaxhighlight> |
||
===version 4, multiple numbers=== |
===version 4, multiple numbers=== |
||
This REXX version adds ''all'' the numbers entered (not just two). |
This REXX version adds ''all'' the numbers entered (not just two). |
||
< |
<syntaxhighlight lang=rexx>/*REXX program obtains some numbers from the input stream (the console), shows their sum*/ |
||
numeric digits 1000 /*just in case the user gets ka-razy. */ |
numeric digits 1000 /*just in case the user gets ka-razy. */ |
||
say 'enter some numbers to be summed:' /*display a prompt message to terminal.*/ |
say 'enter some numbers to be summed:' /*display a prompt message to terminal.*/ |
||
Line 4,716: | Line 4,716: | ||
end /*j*/ |
end /*j*/ |
||
/*stick a fork in it, we're all done. */ |
/*stick a fork in it, we're all done. */ |
||
say 'sum of ' many " numbers = " $/1 /*display normalized sum $ to terminal.*/</ |
say 'sum of ' many " numbers = " $/1 /*display normalized sum $ to terminal.*/</syntaxhighlight> |
||
===version 5, multiple numbers, tongue in cheek=== |
===version 5, multiple numbers, tongue in cheek=== |
||
< |
<syntaxhighlight lang=rexx>/*REXX program obtains some numbers from the input stream (the console), shows their sum*/ |
||
numeric digits 1000 /*just in case the user gets ka-razy. */ |
numeric digits 1000 /*just in case the user gets ka-razy. */ |
||
say 'enter some numbers to be summed:' /*display a prompt message to terminal.*/ |
say 'enter some numbers to be summed:' /*display a prompt message to terminal.*/ |
||
Line 4,726: | Line 4,726: | ||
y=translate(y,'+',' ') |
y=translate(y,'+',' ') |
||
Interpret 's='y |
Interpret 's='y |
||
say 'sum of ' many " numbers = " s/1 /*display normalized sum s to terminal.*/</ |
say 'sum of ' many " numbers = " s/1 /*display normalized sum s to terminal.*/</syntaxhighlight> |
||
=={{header|Ring}}== |
=={{header|Ring}}== |
||
< |
<syntaxhighlight lang=ring>give Numbers |
||
Numbers = split(Numbers) |
Numbers = split(Numbers) |
||
sum = 0 |
sum = 0 |
||
Line 4,737: | Line 4,737: | ||
func Split Str |
func Split Str |
||
for x in str if x = " " x = nl ok next |
for x in str if x = " " x = nl ok next |
||
return str2list(str)</ |
return str2list(str)</syntaxhighlight> |
||
=={{header|Robotic}}== |
=={{header|Robotic}}== |
||
< |
<syntaxhighlight lang=robotic> |
||
input string "Input A:" |
input string "Input A:" |
||
set "A" to "input" |
set "A" to "input" |
||
Line 4,747: | Line 4,747: | ||
* "('A' + 'B')" |
* "('A' + 'B')" |
||
end |
end |
||
</syntaxhighlight> |
|||
</lang> |
|||
Although the function in the first and third line asks for a string as the input, so long as the variable isn't made to store a string, it will default to an integer instead. Inserting a string to this will return a 0. |
Although the function in the first and third line asks for a string as the input, so long as the variable isn't made to store a string, it will default to an integer instead. Inserting a string to this will return a 0. |
||
Line 4,753: | Line 4,753: | ||
=={{header|Rockstar}}== |
=={{header|Rockstar}}== |
||
Minimized: |
Minimized: |
||
< |
<syntaxhighlight lang=Rockstar> |
||
Listen to A number |
Listen to A number |
||
Listen to B |
Listen to B |
||
Say A number plus B |
Say A number plus B |
||
</syntaxhighlight> |
|||
</lang> |
|||
Idiomatic: |
Idiomatic: |
||
< |
<syntaxhighlight lang=Rockstar> |
||
Listen to my voice |
Listen to my voice |
||
Listen to your thoughts |
Listen to your thoughts |
||
Shout your thoughts with my voice |
Shout your thoughts with my voice |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Ruby}}== |
=={{header|Ruby}}== |
||
< |
<syntaxhighlight lang=ruby>puts gets.split.sum(&:to_i)</syntaxhighlight> |
||
=={{header|Run BASIC}}== |
=={{header|Run BASIC}}== |
||
< |
<syntaxhighlight lang=runbasic>input, x$ |
||
print val(word$(x$,1)) + val(word$(x$,2))</ |
print val(word$(x$,1)) + val(word$(x$,2))</syntaxhighlight> |
||
=={{header|Rust}}== |
=={{header|Rust}}== |
||
< |
<syntaxhighlight lang=rust>use std::io; |
||
fn main() { |
fn main() { |
||
Line 4,784: | Line 4,784: | ||
} |
} |
||
println!("{}", i); |
println!("{}", i); |
||
}</ |
}</syntaxhighlight> |
||
or |
or |
||
< |
<syntaxhighlight lang=rust>use std::io; |
||
fn main() { |
fn main() { |
||
Line 4,798: | Line 4,798: | ||
.sum(); |
.sum(); |
||
println!("{}", sum); |
println!("{}", sum); |
||
}</ |
}</syntaxhighlight> |
||
=={{header|S-lang}}== |
=={{header|S-lang}}== |
||
< |
<syntaxhighlight lang=C>% A+B from stdin, sans error checking |
||
variable input, a, b; |
variable input, a, b; |
||
Line 4,807: | Line 4,807: | ||
input = strtrim_end(input, "\n"); |
input = strtrim_end(input, "\n"); |
||
() = sscanf(input, "%d%d", &a, &b); |
() = sscanf(input, "%d%d", &a, &b); |
||
print(a + b);</ |
print(a + b);</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
Line 4,813: | Line 4,813: | ||
46</pre> |
46</pre> |
||
< |
<syntaxhighlight lang=C>% A+B from stdin, basic validity testing |
||
variable input, a, b, rc; |
variable input, a, b, rc; |
||
Line 4,823: | Line 4,823: | ||
} else { |
} else { |
||
message("input invalid or out of range (-1000,1000): $input"$); |
message("input invalid or out of range (-1000,1000): $input"$); |
||
}</ |
}</syntaxhighlight> |
||
=={{header|Scala}}== |
=={{header|Scala}}== |
||
< |
<syntaxhighlight lang=scala>println(readLine().split(" ").map(_.toInt).sum)</syntaxhighlight> |
||
This will work if the input is exactly as specified, with no extra whitespace. A slightly more robust version: |
This will work if the input is exactly as specified, with no extra whitespace. A slightly more robust version: |
||
< |
<syntaxhighlight lang=scala>val s = new java.util.Scanner(System.in) |
||
val sum = s.nextInt() + s.nextInt() |
val sum = s.nextInt() + s.nextInt() |
||
println(sum)</ |
println(sum)</syntaxhighlight> |
||
or |
or |
||
< |
<syntaxhighlight lang=scala>println(readLine().split(" ").filter(_.length>0).map(_.toInt).sum)</syntaxhighlight> |
||
=={{header|Scheme}}== |
=={{header|Scheme}}== |
||
< |
<syntaxhighlight lang=scheme>(display (+ (read) (read)))</syntaxhighlight> |
||
=={{header|Scratch}}== |
=={{header|Scratch}}== |
||
Line 4,848: | Line 4,848: | ||
=={{header|sed}}== |
=={{header|sed}}== |
||
Sed is for string processing and has no facility for manipulating numbers as numeric values. However, being Turing complete, sed can be coerced into performing mathematics. |
Sed is for string processing and has no facility for manipulating numbers as numeric values. However, being Turing complete, sed can be coerced into performing mathematics. |
||
< |
<syntaxhighlight lang=sed>: Loop |
||
# All done |
# All done |
||
/^-*00* /s/// |
/^-*00* /s/// |
||
Line 4,873: | Line 4,873: | ||
# Decrement 2nd |
# Decrement 2nd |
||
s/\([^0]\)\(0*\);[^0]*\1\(.\).*\2\(9*\).*/\3\4/ |
s/\([^0]\)\(0*\);[^0]*\1\(.\).*\2\(9*\).*/\3\4/ |
||
t Loop</ |
t Loop</syntaxhighlight> |
||
Another method, based off of [http://unix.stackexchange.com/a/36959/11750 this StackExchange answer]: |
Another method, based off of [http://unix.stackexchange.com/a/36959/11750 this StackExchange answer]: |
||
< |
<syntaxhighlight lang=sed>#!/bin/sed -f |
||
# Add a marker in front of each digit, for tracking tens, hundreds, etc. |
# Add a marker in front of each digit, for tracking tens, hundreds, etc. |
||
Line 4,914: | Line 4,914: | ||
s/</|/g |
s/</|/g |
||
t back |
t back |
||
s/^$/0/</ |
s/^$/0/</syntaxhighlight> |
||
=={{header|Seed7}}== |
=={{header|Seed7}}== |
||
< |
<syntaxhighlight lang=seed7>$ include "seed7_05.s7i"; |
||
const proc: main is func |
const proc: main is func |
||
Line 4,927: | Line 4,927: | ||
read(b); |
read(b); |
||
writeln(a + b); |
writeln(a + b); |
||
end func;</ |
end func;</syntaxhighlight> |
||
=={{header|Self}}== |
=={{header|Self}}== |
||
Works with positive and negative integers, and also more than two integers. |
Works with positive and negative integers, and also more than two integers. |
||
< |
<syntaxhighlight lang=self>((stdin readLine splitOn: ' ') mapBy: [|:e| e asInteger]) sum printLine.</syntaxhighlight> |
||
=={{header|SenseTalk}}== |
=={{header|SenseTalk}}== |
||
< |
<syntaxhighlight lang=sensetalk>ask "Enter the first number:" |
||
put it into a |
put it into a |
||
Line 4,941: | Line 4,941: | ||
put it into b |
put it into b |
||
put a + b</ |
put a + b</syntaxhighlight> |
||
< |
<syntaxhighlight lang=sensetalk>put file "input.txt" into inputFile |
||
split inputFile by space |
split inputFile by space |
||
put sum of inputFile</ |
put sum of inputFile</syntaxhighlight> |
||
=={{header|SequenceL}}== |
=={{header|SequenceL}}== |
||
< |
<syntaxhighlight lang=sequencel>import <Utilities/Conversion.sl>; |
||
main(args(2)) := stringToInt(args[1]) + stringToInt(args[2]);</ |
main(args(2)) := stringToInt(args[1]) + stringToInt(args[2]);</syntaxhighlight> |
||
{{Out}} |
{{Out}} |
||
Line 4,962: | Line 4,962: | ||
=={{header|SETL}}== |
=={{header|SETL}}== |
||
< |
<syntaxhighlight lang=setl>read(A, B); |
||
print(A + B);</ |
print(A + B);</syntaxhighlight> |
||
=={{header|Shiny}}== |
=={{header|Shiny}}== |
||
< |
<syntaxhighlight lang=shiny>if (io.line 'stdin').match ~(\d+)\s+(\d+)~ |
||
say "$a $b %(a+b)d" |
say "$a $b %(a+b)d" |
||
end</ |
end</syntaxhighlight> |
||
=={{header|Sidef}}== |
=={{header|Sidef}}== |
||
Works with both positive and negative integers. |
Works with both positive and negative integers. |
||
< |
<syntaxhighlight lang=ruby>say STDIN.readline.words.map{.to_i}.sum</syntaxhighlight> |
||
More idiomatically: |
More idiomatically: |
||
< |
<syntaxhighlight lang=ruby>say read(String).words»to_i»()«+»</syntaxhighlight> |
||
Explicit summation: |
Explicit summation: |
||
< |
<syntaxhighlight lang=ruby>var (a, b) = read(String).words.map{.to_i}... |
||
say a+b</ |
say a+b</syntaxhighlight> |
||
=={{header|Simula}}== |
=={{header|Simula}}== |
||
< |
<syntaxhighlight lang=simula>BEGIN |
||
WHILE NOT LASTITEM DO |
WHILE NOT LASTITEM DO |
||
BEGIN |
BEGIN |
||
Line 4,989: | Line 4,989: | ||
END; |
END; |
||
END. |
END. |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Smalltalk}}== |
=={{header|Smalltalk}}== |
||
Most Smalltalk implementations do not have the notion of a standard input stream, since it has always been a GUI based programming environment. I've included test methods to demonstrate one way to create an input stream with two integers can be created. Opening a text file would be another. |
Most Smalltalk implementations do not have the notion of a standard input stream, since it has always been a GUI based programming environment. I've included test methods to demonstrate one way to create an input stream with two integers can be created. Opening a text file would be another. |
||
< |
<syntaxhighlight lang=smalltalk>'From Squeak3.7 of ''4 September 2004'' [latest update: #5989] on 8 August 2011 at 3:50:55 pm'! |
||
Object subclass: #ABTask |
Object subclass: #ABTask |
||
instanceVariableNames: '' |
instanceVariableNames: '' |
||
Line 5,022: | Line 5,022: | ||
test3Plus2 |
test3Plus2 |
||
^ self |
^ self |
||
sum: (ReadStream on: '3 2')! !</ |
sum: (ReadStream on: '3 2')! !</syntaxhighlight> |
||
but all have a stream hierarchy, so the task could be restated to pass input and output as stream arguments: |
but all have a stream hierarchy, so the task could be restated to pass input and output as stream arguments: |
||
{{works with|Smalltalk/X}} |
{{works with|Smalltalk/X}} |
||
{{works with|VisualWorks Smalltalk}} |
{{works with|VisualWorks Smalltalk}} |
||
< |
<syntaxhighlight lang=smalltalk>|task| |
||
task := [:inStream :outStream | |
task := [:inStream :outStream | |
||
|processLine| |
|processLine| |
||
Line 5,045: | Line 5,045: | ||
]. |
]. |
||
task value: ( 'dataIn.txt' asFilename readStream) value:Transcript.</ |
task value: ( 'dataIn.txt' asFilename readStream) value:Transcript.</syntaxhighlight> |
||
or: |
or: |
||
< |
<syntaxhighlight lang=smalltalk>task value: Stdin value: Stdout.</syntaxhighlight> |
||
=={{header|smart BASIC}}== |
=={{header|smart BASIC}}== |
||
< |
<syntaxhighlight lang=qbasic>INPUT n$ |
||
PRINT VAL(LEFT$(n$,(LEN(STR$(VAL(n$))))))+VAL(RIGHT$(n$,(LEN(n$)-LEN(STR$(VAL(n$)))-1)))</ |
PRINT VAL(LEFT$(n$,(LEN(STR$(VAL(n$))))))+VAL(RIGHT$(n$,(LEN(n$)-LEN(STR$(VAL(n$)))-1)))</syntaxhighlight> |
||
<b>NOTE:</b> This is a horribly forced way of doing this. smart BASIC has commands to SPLIT strings. Surely someone can provide better code than what I've written here. ;@) |
<b>NOTE:</b> This is a horribly forced way of doing this. smart BASIC has commands to SPLIT strings. Surely someone can provide better code than what I've written here. ;@) |
||
Line 5,059: | Line 5,059: | ||
A FAR more elegant solution was provided by "Dutchman" on the smart [http://kibernetik.pro/forum/viewforum.php?f=2 BASIC Support Forum]: |
A FAR more elegant solution was provided by "Dutchman" on the smart [http://kibernetik.pro/forum/viewforum.php?f=2 BASIC Support Forum]: |
||
< |
<syntaxhighlight lang=qbasic>INPUT n$ |
||
SPLIT n$ TO m$,n WITH " " |
SPLIT n$ TO m$,n WITH " " |
||
PRINT m$(0),m$(1),m$(0)+m$(1)</ |
PRINT m$(0),m$(1),m$(0)+m$(1)</syntaxhighlight> |
||
<b>NOTE:</b> smart BASIC will intelligently interpret the contents of a string as a numeric value if necessary. Other versions of BASIC would require the values stored in a string to be converted to numeric values before calculation. |
<b>NOTE:</b> smart BASIC will intelligently interpret the contents of a string as a numeric value if necessary. Other versions of BASIC would require the values stored in a string to be converted to numeric values before calculation. |
||
=={{header|SmileBASIC}}== |
=={{header|SmileBASIC}}== |
||
< |
<syntaxhighlight lang=smilebasic>INPUT A |
||
INPUT B |
INPUT B |
||
PRINT A+B |
PRINT A+B |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|SNOBOL4}}== |
=={{header|SNOBOL4}}== |
||
Simple-minded solution (literally "two somethings separated by space") |
Simple-minded solution (literally "two somethings separated by space") |
||
< |
<syntaxhighlight lang=snobol> input break(" ") . a " " rem . b |
||
output = a + b |
output = a + b |
||
end</ |
end</syntaxhighlight> |
||
"Integer aware" solution: |
"Integer aware" solution: |
||
< |
<syntaxhighlight lang=snobol> nums = "0123456789" |
||
input span(nums) . a break(nums) span(nums) . b |
input span(nums) . a break(nums) span(nums) . b |
||
output = a + b |
output = a + b |
||
end</ |
end</syntaxhighlight> |
||
=={{header|SPAD}}== |
=={{header|SPAD}}== |
||
Line 5,087: | Line 5,087: | ||
{{works with|Axiom}} |
{{works with|Axiom}} |
||
One of several possibilities: |
One of several possibilities: |
||
< |
<syntaxhighlight lang=SPAD>(1) -> integer READ()$Lisp + integer READ()$Lisp |
||
333 444 |
333 444 |
||
(1) 777 |
(1) 777 |
||
Type: PositiveInteger</ |
Type: PositiveInteger</syntaxhighlight> |
||
Domain:[http://fricas.github.io/api/SExpression.html?highlight=lisp SExpression] |
Domain:[http://fricas.github.io/api/SExpression.html?highlight=lisp SExpression] |
||
=={{header|SPARK}}== |
=={{header|SPARK}}== |
||
< |
<syntaxhighlight lang=Ada>-- By Jacob Sparre Andersen |
||
-- Validates with SPARK GPL 2010's Examiner/Simplifier |
-- Validates with SPARK GPL 2010's Examiner/Simplifier |
||
Line 5,139: | Line 5,139: | ||
Stop => 0); |
Stop => 0); |
||
end if; |
end if; |
||
end A_Plus_B;</ |
end A_Plus_B;</syntaxhighlight> |
||
=={{header|SPL}}== |
=={{header|SPL}}== |
||
< |
<syntaxhighlight lang=spl>n = #.split(#.input("Input two numbers, separated by space:")," ") |
||
#.output(n[1],"+",n[2],"=",#.val(n[1])+#.val(n[2]))</ |
#.output(n[1],"+",n[2],"=",#.val(n[1])+#.val(n[2]))</syntaxhighlight> |
||
{{in}} |
{{in}} |
||
<pre> |
<pre> |
||
Line 5,155: | Line 5,155: | ||
=={{header|SQL}}== |
=={{header|SQL}}== |
||
<lang |
<syntaxhighlight lang=sql>select A+B</syntaxhighlight> |
||
Example: |
Example: |
||
<lang |
<syntaxhighlight lang=sql>select 2+3</syntaxhighlight> |
||
This should produce a result set containing the value 5. |
This should produce a result set containing the value 5. |
||
Line 5,165: | Line 5,165: | ||
{{works with|Db2 LUW}} |
{{works with|Db2 LUW}} |
||
With SQL only: |
With SQL only: |
||
< |
<syntaxhighlight lang=sql pl> |
||
CREATE OR REPLACE FUNCTION splitadd (instring VARCHAR(255)) |
CREATE OR REPLACE FUNCTION splitadd (instring VARCHAR(255)) |
||
Line 5,180: | Line 5,180: | ||
return first + second; |
return first + second; |
||
END |
END |
||
</syntaxhighlight> |
|||
</lang> |
|||
Output: |
Output: |
||
<pre> |
<pre> |
||
Line 5,191: | Line 5,191: | ||
=={{header|SSEM}}== |
=={{header|SSEM}}== |
||
The SSEM has no Add instruction, so we rely on the fact that <i>a</i> + <i>b</i> = -(-<i>a</i> - <i>b</i>). |
The SSEM has no Add instruction, so we rely on the fact that <i>a</i> + <i>b</i> = -(-<i>a</i> - <i>b</i>). |
||
< |
<syntaxhighlight lang=ssem>10100000000000100000000000000000 0. -5 to c acc = -A |
||
01100000000001010000000000000000 1. Sub. 6 acc -= B |
01100000000001010000000000000000 1. Sub. 6 acc -= B |
||
11100000000001100000000000000000 2. c to 7 X = acc |
11100000000001100000000000000000 2. c to 7 X = acc |
||
Line 5,198: | Line 5,198: | ||
10100100000000000000000000000000 5. 37 A |
10100100000000000000000000000000 5. 37 A |
||
00111000000000000000000000000000 6. 28 B |
00111000000000000000000000000000 6. 28 B |
||
00000000000000000000000000000000 7. 0 X</ |
00000000000000000000000000000000 7. 0 X</syntaxhighlight> |
||
=={{header|Standard ML}}== |
=={{header|Standard ML}}== |
||
< |
<syntaxhighlight lang=sml>(* |
||
* val split : string -> string list |
* val split : string -> string list |
||
* splits a string at it spaces |
* splits a string at it spaces |
||
Line 5,222: | Line 5,222: | ||
in |
in |
||
(sum o List.mapPartial Int.fromString o split) input |
(sum o List.mapPartial Int.fromString o split) input |
||
end</ |
end</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
Line 5,233: | Line 5,233: | ||
{{works with|Swift|2}} |
{{works with|Swift|2}} |
||
Requires sending EOF. |
Requires sending EOF. |
||
< |
<syntaxhighlight lang=Swift>import Foundation |
||
let input = NSFileHandle.fileHandleWithStandardInput() |
let input = NSFileHandle.fileHandleWithStandardInput() |
||
Line 5,244: | Line 5,244: | ||
let b = (nums[1] as String).toInt()! |
let b = (nums[1] as String).toInt()! |
||
print(" \(a + b)")</ |
print(" \(a + b)")</syntaxhighlight> |
||
{{works with|Swift|3}} |
{{works with|Swift|3}} |
||
Line 5,250: | Line 5,250: | ||
Swift 4 and no requirement to send EOF (press enter/send newline like you normally would) |
Swift 4 and no requirement to send EOF (press enter/send newline like you normally would) |
||
< |
<syntaxhighlight lang=Swift> |
||
import Foundation |
import Foundation |
||
Line 5,265: | Line 5,265: | ||
print(" \(a + b)") |
print(" \(a + b)") |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Symsyn}}== |
=={{header|Symsyn}}== |
||
< |
<syntaxhighlight lang=Symsyn> |
||
[] $s |
[] $s |
||
Line 5,276: | Line 5,276: | ||
y [] |
y [] |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Tailspin}}== |
=={{header|Tailspin}}== |
||
< |
<syntaxhighlight lang=tailspin> |
||
composer nums |
composer nums |
||
[ (<WS>?) <INT> (<WS>) <INT> (<WS>?) ] |
[ (<WS>?) <INT> (<WS>) <INT> (<WS>?) ] |
||
Line 5,286: | Line 5,286: | ||
$IN::lines -> nums -> $(1) + $(2) -> '$; |
$IN::lines -> nums -> $(1) + $(2) -> '$; |
||
' -> !OUT::write |
' -> !OUT::write |
||
</syntaxhighlight> |
|||
</lang> |
|||
Alternatively |
Alternatively |
||
< |
<syntaxhighlight lang=tailspin> |
||
composer nums |
composer nums |
||
(<WS>?) (def a: <INT>;) (<WS>) <INT> -> $a + $ (<WS>?) |
(<WS>?) (def a: <INT>;) (<WS>) <INT> -> $a + $ (<WS>?) |
||
Line 5,296: | Line 5,296: | ||
$IN::lines -> nums -> '$; |
$IN::lines -> nums -> '$; |
||
' -> !OUT::write |
' -> !OUT::write |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |
||
< |
<syntaxhighlight lang=tcl>scan [gets stdin] "%d %d" x y |
||
puts [expr {$x + $y}]</ |
puts [expr {$x + $y}]</syntaxhighlight> |
||
Alternatively: |
Alternatively: |
||
< |
<syntaxhighlight lang=tcl>puts [tcl::mathop::+ {*}[gets stdin]]</syntaxhighlight> |
||
To/from a file: |
To/from a file: |
||
< |
<syntaxhighlight lang=tcl>set in [open "input.txt"] |
||
set out [open "output.txt" w] |
set out [open "output.txt" w] |
||
scan [gets $in] "%d %d" x y |
scan [gets $in] "%d %d" x y |
||
puts $out [expr {$x + $y}] |
puts $out [expr {$x + $y}] |
||
close $in |
close $in |
||
close $out</ |
close $out</syntaxhighlight> |
||
=={{header|Terraform}}== |
=={{header|Terraform}}== |
||
< |
<syntaxhighlight lang=hcl> |
||
#Aamrun, August 15th, 2022 |
#Aamrun, August 15th, 2022 |
||
Line 5,326: | Line 5,326: | ||
value = var.a + var.b |
value = var.a + var.b |
||
} |
} |
||
</syntaxhighlight> |
|||
</lang> |
|||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
Line 5,345: | Line 5,345: | ||
=={{header|TI-83 BASIC}}== |
=={{header|TI-83 BASIC}}== |
||
< |
<syntaxhighlight lang=ti83b>:Prompt A,B |
||
:Disp A+B</ |
:Disp A+B</syntaxhighlight> |
||
=={{header|TI-83 Hex Assembly}}== |
=={{header|TI-83 Hex Assembly}}== |
||
Line 5,352: | Line 5,352: | ||
Note: Comments (after the semicolons) are just for explanation -- TI-83 hex assembly does not allow comments in program source code. |
Note: Comments (after the semicolons) are just for explanation -- TI-83 hex assembly does not allow comments in program source code. |
||
< |
<syntaxhighlight lang=ti83b>PROGRAM:APLUSB |
||
:AsmPrgm |
:AsmPrgm |
||
: |
: |
||
Line 5,368: | Line 5,368: | ||
:F7 ; rst FPAdd |
:F7 ; rst FPAdd |
||
:EFBF4A ; StoAns |
:EFBF4A ; StoAns |
||
:C9 ; ret</ |
:C9 ; ret</syntaxhighlight> |
||
Store the inputs in the 'A' and 'B' OS variables. Run it with Asm(prgmAPLUSB) and the output will be stored in the Ans OS variable. |
Store the inputs in the 'A' and 'B' OS variables. Run it with Asm(prgmAPLUSB) and the output will be stored in the Ans OS variable. |
||
=={{header|TI-89 BASIC}}== |
=={{header|TI-89 BASIC}}== |
||
< |
<syntaxhighlight lang=ti89b>:aplusb(a,b) |
||
:a+b</ |
:a+b</syntaxhighlight> |
||
=={{header|TorqueScript}}== |
=={{header|TorqueScript}}== |
||
Since torque is not compatible with standard input, I will show the closest to that. |
Since torque is not compatible with standard input, I will show the closest to that. |
||
It's a function that takes a single string input, that will contain the 2 numbers. |
It's a function that takes a single string input, that will contain the 2 numbers. |
||
< |
<syntaxhighlight lang=Torque>Function aPlusB(%input) |
||
{ |
{ |
||
return getWord(%input, 0) + getWord(%input, 1); |
return getWord(%input, 0) + getWord(%input, 1); |
||
}</ |
}</syntaxhighlight> |
||
=={{header|Transd}}== |
=={{header|Transd}}== |
||
< |
<syntaxhighlight lang=scheme>#lang transd |
||
MainModule : { |
MainModule : { |
||
Line 5,391: | Line 5,391: | ||
b: Int(), |
b: Int(), |
||
_start: (lambda (textout (+ (read a) (read b)))) |
_start: (lambda (textout (+ (read a) (read b)))) |
||
}</ |
}</syntaxhighlight> |
||
=={{header|TSE SAL}}== |
=={{header|TSE SAL}}== |
||
< |
<syntaxhighlight lang=TSESAL> |
||
INTEGER PROC FNMathGetSumAPlusBI( INTEGER A, INTEGER B ) |
INTEGER PROC FNMathGetSumAPlusBI( INTEGER A, INTEGER B ) |
||
RETURN( A + B ) |
RETURN( A + B ) |
||
Line 5,406: | Line 5,406: | ||
Message( FNMathGetSumAPlusBI( Val( s1 ), Val( s2 ) ) ) // gives e.g. 5 |
Message( FNMathGetSumAPlusBI( Val( s1 ), Val( s2 ) ) ) // gives e.g. 5 |
||
END |
END |
||
</syntaxhighlight> |
|||
</lang> |
|||
{{out}} <pre> |
{{out}} <pre> |
||
output |
output |
||
Line 5,413: | Line 5,413: | ||
=={{header|TUSCRIPT}}== |
=={{header|TUSCRIPT}}== |
||
< |
<syntaxhighlight lang=tuscript>$$ MODE TUSCRIPT |
||
SET input="1 2" |
SET input="1 2" |
||
SET input=SPLIT(input,": :") |
SET input=SPLIT(input,": :") |
||
SET input=JOIN (input) |
SET input=JOIN (input) |
||
SET output=SUM(input)</ |
SET output=SUM(input)</syntaxhighlight> |
||
=={{header|TXR}}== |
=={{header|TXR}}== |
||
Line 5,434: | Line 5,434: | ||
=={{header|UNIX Shell}}== |
=={{header|UNIX Shell}}== |
||
{{works with|Bourne Shell}} |
{{works with|Bourne Shell}} |
||
< |
<syntaxhighlight lang=sh>#!/bin/sh |
||
read a b || exit |
read a b || exit |
||
echo `expr "$a" + "$b"`</ |
echo `expr "$a" + "$b"`</syntaxhighlight> |
||
{{works with|bash}} |
{{works with|bash}} |
||
Line 5,443: | Line 5,443: | ||
{{works with|zsh}} |
{{works with|zsh}} |
||
Script "a+b.sh": |
Script "a+b.sh": |
||
< |
<syntaxhighlight lang=bash>#!/bin/bash |
||
read a b || exit |
read a b || exit |
||
echo $(( a + b ))</ |
echo $(( a + b ))</syntaxhighlight> |
||
{{Out}} |
{{Out}} |
||
< |
<syntaxhighlight lang=bash>echo 2 3 | ksh a+b.sh |
||
5</ |
5</syntaxhighlight> |
||
One liner : |
One liner : |
||
< |
<syntaxhighlight lang=bash> |
||
a=0;b=0;read a;read b;echo "Sum of $a and $b is "$((a+b)) |
a=0;b=0;read a;read b;echo "Sum of $a and $b is "$((a+b)) |
||
</syntaxhighlight> |
|||
</lang> |
|||
Sample run : |
Sample run : |
||
<pre> |
<pre> |
||
Line 5,463: | Line 5,463: | ||
==={{header|C Shell}}=== |
==={{header|C Shell}}=== |
||
< |
<syntaxhighlight lang=csh>set line=$< |
||
set input=($line) |
set input=($line) |
||
@ sum = $input[1] + $input[2] |
@ sum = $input[1] + $input[2] |
||
echo $sum</ |
echo $sum</syntaxhighlight> |
||
=={{header|Ursa}}== |
=={{header|Ursa}}== |
||
Line 5,483: | Line 5,483: | ||
# output the sum |
# output the sum |
||
out sum endl console</ |
out sum endl console</syntaxhighlight> |
||
=={{header|Ultimate++}}== |
=={{header|Ultimate++}}== |
||
< |
<syntaxhighlight lang=Cpp> |
||
#include <Core/Core.h> |
#include <Core/Core.h> |
||
#include <stdio.h> |
#include <stdio.h> |
||
Line 5,508: | Line 5,508: | ||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Ursala}}== |
=={{header|Ursala}}== |
||
Using standard input and output streams: |
Using standard input and output streams: |
||
< |
<syntaxhighlight lang=Ursala>#import std |
||
#import int |
#import int |
||
#executable& |
#executable& |
||
main = %zP+ sum:-0+ %zp*FiNCS+ sep` @L</ |
main = %zP+ sum:-0+ %zp*FiNCS+ sep` @L</syntaxhighlight> |
||
Overwriting a text file named as a command line parameter: |
Overwriting a text file named as a command line parameter: |
||
< |
<syntaxhighlight lang=Ursala>#import std |
||
#import int |
#import int |
||
#executable -[parameterized]- |
#executable -[parameterized]- |
||
main = ~command.files.&h; <.contents:= %zP+ sum:-0+ %zp*FiNCS+ sep` @L+ ~contents></ |
main = ~command.files.&h; <.contents:= %zP+ sum:-0+ %zp*FiNCS+ sep` @L+ ~contents></syntaxhighlight> |
||
Creating a new file named after the input file with suffix <code>.out</code>: |
Creating a new file named after the input file with suffix <code>.out</code>: |
||
< |
<syntaxhighlight lang=Ursala>#import std |
||
#import int |
#import int |
||
Line 5,536: | Line 5,536: | ||
~command.files.&h; ~&iNC+ file$[ |
~command.files.&h; ~&iNC+ file$[ |
||
contents: %zP+ sum:-0+ %zp*FiNCS+ sep` @L+ ~contents, |
contents: %zP+ sum:-0+ %zp*FiNCS+ sep` @L+ ~contents, |
||
path: ~path; ^|C\~& ~=`.-~; ^|T/~& '.out'!]</ |
path: ~path; ^|C\~& ~=`.-~; ^|T/~& '.out'!]</syntaxhighlight> |
||
=={{header|Vala}}== |
=={{header|Vala}}== |
||
Read from stdin while program running: |
Read from stdin while program running: |
||
< |
<syntaxhighlight lang=vala>Using GLib; |
||
int main (string[] args) { |
int main (string[] args) { |
||
Line 5,550: | Line 5,550: | ||
return 0; |
return 0; |
||
} |
} |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|VBA}}== |
=={{header|VBA}}== |
||
A simple version: |
A simple version: |
||
< |
<syntaxhighlight lang=VBA>Sub AplusB() |
||
Dim s As String, t As Variant, a As Integer, b As Integer |
Dim s As String, t As Variant, a As Integer, b As Integer |
||
s = InputBox("Enter two numbers separated by a space") |
s = InputBox("Enter two numbers separated by a space") |
||
Line 5,561: | Line 5,561: | ||
b = CInt(t(1)) |
b = CInt(t(1)) |
||
MsgBox a + b |
MsgBox a + b |
||
End Sub</ |
End Sub</syntaxhighlight> |
||
An other version: |
An other version: |
||
< |
<syntaxhighlight lang=VBA>Sub Rosetta_AB() |
||
Dim stEval As String |
Dim stEval As String |
||
stEval = InputBox("Enter two numbers, separated only by a space", "Rosetta Code", "2 2") |
stEval = InputBox("Enter two numbers, separated only by a space", "Rosetta Code", "2 2") |
||
Line 5,569: | Line 5,569: | ||
"VBA converted this input to " & Replace(stEval, " ", "+") & vbCr & vbCr & _ |
"VBA converted this input to " & Replace(stEval, " ", "+") & vbCr & vbCr & _ |
||
"And evaluated the result as " & Evaluate(Replace(stEval, " ", "+")), vbInformation + vbOKOnly, "XLSM" |
"And evaluated the result as " & Evaluate(Replace(stEval, " ", "+")), vbInformation + vbOKOnly, "XLSM" |
||
End Sub</ |
End Sub</syntaxhighlight> |
||
=={{header|VBScript}}== |
=={{header|VBScript}}== |
||
A simple version: |
A simple version: |
||
< |
<syntaxhighlight lang=vb>s=InputBox("Enter two numbers separated by a blank") |
||
t=Split(s) |
t=Split(s) |
||
a=CInt(t(0)) |
a=CInt(t(0)) |
||
b=CInt(t(1)) |
b=CInt(t(1)) |
||
c=a+b |
c=a+b |
||
MsgBox c </ |
MsgBox c </syntaxhighlight> |
||
An other version: |
An other version: |
||
< |
<syntaxhighlight lang=vb>Option Explicit |
||
Dim a, b |
Dim a, b |
||
Select Case WScript.Arguments.Count |
Select Case WScript.Arguments.Count |
||
Line 5,616: | Line 5,616: | ||
.Close |
.Close |
||
End With |
End With |
||
end if</ |
end if</syntaxhighlight> |
||
=={{header|Verilog}}== |
=={{header|Verilog}}== |
||
< |
<syntaxhighlight lang=Verilog>module TEST; |
||
reg signed [11:0] y; |
reg signed [11:0] y; |
||
Line 5,637: | Line 5,637: | ||
endfunction |
endfunction |
||
endmodule</ |
endmodule</syntaxhighlight> |
||
=={{header|VHDL}}== |
=={{header|VHDL}}== |
||
< |
<syntaxhighlight lang=VHDL>LIBRARY std; |
||
USE std.TEXTIO.all; |
USE std.TEXTIO.all; |
||
Line 5,662: | Line 5,662: | ||
wait; -- needed to stop the execution |
wait; -- needed to stop the execution |
||
end process; |
end process; |
||
end architecture beh;</ |
end architecture beh;</syntaxhighlight> |
||
=={{header|Visual Basic .NET}}== |
=={{header|Visual Basic .NET}}== |
||
< |
<syntaxhighlight lang=vbnet>Module Module1 |
||
Sub Main() |
Sub Main() |
||
Line 5,674: | Line 5,674: | ||
End Sub |
End Sub |
||
End Module</ |
End Module</syntaxhighlight> |
||
=={{header|Vlang}}== |
=={{header|Vlang}}== |
||
< |
<syntaxhighlight lang=go>import os |
||
fn main() { |
fn main() { |
||
Line 5,691: | Line 5,691: | ||
println('$a + $b = ${a+b}') |
println('$a + $b = ${a+b}') |
||
}</ |
}</syntaxhighlight> |
||
Read from stdin |
Read from stdin |
||
{{out}} |
{{out}} |
||
Line 5,701: | Line 5,701: | ||
=={{header|Wee Basic}}== |
=={{header|Wee Basic}}== |
||
< |
<syntaxhighlight lang=Wee Basic>Print 1 "Enter number A:" |
||
input a |
input a |
||
Print 1 "Enter number B:" |
Print 1 "Enter number B:" |
||
Line 5,707: | Line 5,707: | ||
let c=a+b |
let c=a+b |
||
print 1 c |
print 1 c |
||
end</ |
end</syntaxhighlight> |
||
=={{header|Whitespace}}== |
=={{header|Whitespace}}== |
||
< |
<syntaxhighlight lang=whitespace> |
||
Line 5,722: | Line 5,722: | ||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Wisp}}== |
=={{header|Wisp}}== |
||
{{trans|Scheme}} |
{{trans|Scheme}} |
||
< |
<syntaxhighlight lang=scheme> |
||
display : + (read) (read) |
display : + (read) (read) |
||
Line 5,733: | Line 5,733: | ||
315 |
315 |
||
;; displays 629 |
;; displays 629 |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Wren}}== |
=={{header|Wren}}== |
||
< |
<syntaxhighlight lang=ecmascript>import "io" for Stdin, Stdout |
||
while (true) { |
while (true) { |
||
Line 5,750: | Line 5,750: | ||
return |
return |
||
} |
} |
||
}</ |
}</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
Line 5,761: | Line 5,761: | ||
=={{header|X86 Assembly}}== |
=={{header|X86 Assembly}}== |
||
{{works with|NASM|Linux}} |
{{works with|NASM|Linux}} |
||
< |
<syntaxhighlight lang=asm>section .text |
||
global _start |
global _start |
||
Line 5,820: | Line 5,820: | ||
a resd 1 |
a resd 1 |
||
b resd 1 |
b resd 1 |
||
sum resd 1</ |
sum resd 1</syntaxhighlight> |
||
This will not work on numbers over 0(from 1 to 0). This is due to the fact, numbers higher than 0(10,11, etc) are in fact strings when taken from the keyboard. A much longer conversion code is required to loop through and treat each number in the string as separate numbers. For example, The number '10' would have to be treated as a 1 and a 0. |
This will not work on numbers over 0(from 1 to 0). This is due to the fact, numbers higher than 0(10,11, etc) are in fact strings when taken from the keyboard. A much longer conversion code is required to loop through and treat each number in the string as separate numbers. For example, The number '10' would have to be treated as a 1 and a 0. |
||
=={{header|XBS}}== |
=={{header|XBS}}== |
||
Since XBS is written in Javascript, we have to use the Javascript prompt function to get inputs. |
Since XBS is written in Javascript, we have to use the Javascript prompt function to get inputs. |
||
< |
<syntaxhighlight lang=xbs>const Amount:number = toint(window.prompt("Input an amount")); |
||
set Stream = []; |
set Stream = []; |
||
<|(*1..Amount)=>Stream.push(window.prompt("Input a number")); |
<|(*1..Amount)=>Stream.push(window.prompt("Input a number")); |
||
Line 5,832: | Line 5,832: | ||
set Result = 0; |
set Result = 0; |
||
<|(*Inputs)Result+=_; |
<|(*Inputs)Result+=_; |
||
log(Result);</ |
log(Result);</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
If we input an amount of "2", then input "1" and "2", the output will be "3". |
If we input an amount of "2", then input "1" and "2", the output will be "3". |
||
Line 5,840: | Line 5,840: | ||
=={{header|xEec}}== |
=={{header|xEec}}== |
||
< |
<syntaxhighlight lang=xEec>i# i# ma h#10 r o# p o$ p</syntaxhighlight> |
||
=={{header|XLISP}}== |
=={{header|XLISP}}== |
||
< |
<syntaxhighlight lang=xlisp>(DEFUN A-PLUS-B () |
||
(DISPLAY "Enter two numbers separated by a space.") |
(DISPLAY "Enter two numbers separated by a space.") |
||
(NEWLINE) |
(NEWLINE) |
||
Line 5,849: | Line 5,849: | ||
(DEFINE A (READ)) |
(DEFINE A (READ)) |
||
(DEFINE B (READ)) |
(DEFINE B (READ)) |
||
(+ A B))</ |
(+ A B))</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
<pre>(A-PLUS-B) |
<pre>(A-PLUS-B) |
||
Line 5,858: | Line 5,858: | ||
=={{header|Xojo}}== |
=={{header|Xojo}}== |
||
< |
<syntaxhighlight lang=xojo>var inp as string |
||
var strVals() as string |
var strVals() as string |
||
Line 5,884: | Line 5,884: | ||
exit |
exit |
||
loop |
loop |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|XPL0}}== |
=={{header|XPL0}}== |
||
< |
<syntaxhighlight lang=XPL0>include c:\cxpl\codes; |
||
int A, B; |
int A, B; |
||
[A:= IntIn(0); |
[A:= IntIn(0); |
||
Line 5,893: | Line 5,893: | ||
IntOut(0, A+B); |
IntOut(0, A+B); |
||
CrLf(0); |
CrLf(0); |
||
]</ |
]</syntaxhighlight> |
||
=={{header|XQuery}}== |
=={{header|XQuery}}== |
||
< |
<syntaxhighlight lang=xquery> |
||
(: |
(: |
||
Using the EXPath File Module, which is built into most XQuery processors |
Using the EXPath File Module, which is built into most XQuery processors |
||
Line 5,912: | Line 5,912: | ||
let $result := xs:numeric($numbers[1]) + xs:numeric($numbers[2]) |
let $result := xs:numeric($numbers[1]) + xs:numeric($numbers[2]) |
||
return file:write-text($out, xs:string($result)) |
return file:write-text($out, xs:string($result)) |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Yabasic}}== |
=={{header|Yabasic}}== |
||
< |
<syntaxhighlight lang=Yabasic>repeat |
||
input "Enter two numbers (betwen -1000 ... +1000): " a, b |
input "Enter two numbers (betwen -1000 ... +1000): " a, b |
||
until(valid(a) and valid(b)) |
until(valid(a) and valid(b)) |
||
Line 5,922: | Line 5,922: | ||
sub valid(x) |
sub valid(x) |
||
return x >= -1000 and x <= 1000 |
return x >= -1000 and x <= 1000 |
||
end sub</ |
end sub</syntaxhighlight> |
||
=={{header|Yorick}}== |
=={{header|Yorick}}== |
||
< |
<syntaxhighlight lang=yorick>a = b = 0; |
||
read, a, b; |
read, a, b; |
||
write, a + b;</ |
write, a + b;</syntaxhighlight> |
||
=={{header|ZED}}== |
=={{header|ZED}}== |
||
Source -> http://ideone.com/WLtEfe |
Source -> http://ideone.com/WLtEfe |
||
Compiled -> http://ideone.com/fMt6ST |
Compiled -> http://ideone.com/fMt6ST |
||
< |
<syntaxhighlight lang=zed>(A+B) |
||
comment: |
comment: |
||
#true |
#true |
||
Line 5,945: | Line 5,945: | ||
comment: |
comment: |
||
#true |
#true |
||
(001) "read"</ |
(001) "read"</syntaxhighlight> |
||
=={{header|zkl}}== |
=={{header|zkl}}== |
||
< |
<syntaxhighlight lang=zkl>do(2){ask("A B: ").split(" ").filter().sum().println()}</syntaxhighlight> |
||
<pre> |
<pre> |
||
A B: 123 567 |
A B: 123 567 |
||
Line 5,958: | Line 5,958: | ||
=={{header|Zoea}}== |
=={{header|Zoea}}== |
||
< |
<syntaxhighlight lang=Zoea>program: a_plus_b |
||
input: '7 11' |
input: '7 11' |
||
output: 18 |
output: 18 |
||
</syntaxhighlight> |
|||
</lang> |
|||
=={{header|Zoea Visual}}== |
=={{header|Zoea Visual}}== |
||
Line 5,967: | Line 5,967: | ||
=={{header|zonnon}}== |
=={{header|zonnon}}== |
||
< |
<syntaxhighlight lang=zonnon> |
||
module ABProblem; |
module ABProblem; |
||
var |
var |
||
Line 5,975: | Line 5,975: | ||
writeln(a+b) |
writeln(a+b) |
||
end ABProblem. |
end ABProblem. |
||
</syntaxhighlight> |
|||
</lang> |
|||
<pre> |
<pre> |
||
1 2 |
1 2 |
||
Line 5,982: | Line 5,982: | ||
=={{header|ZX Spectrum Basic}}== |
=={{header|ZX Spectrum Basic}}== |
||
< |
<syntaxhighlight lang=zxbasic>10 PRINT "Input two numbers separated by"'"space(s) " |
||
20 INPUT LINE a$ |
20 INPUT LINE a$ |
||
30 GO SUB 90 |
30 GO SUB 90 |
||
Line 5,991: | Line 5,991: | ||
80 REM LTrim operation |
80 REM LTrim operation |
||
90 IF a$(1)=" " THEN LET a$=a$(2 TO ): GO TO 90 |
90 IF a$(1)=" " THEN LET a$=a$(2 TO ): GO TO 90 |
||
100 RETURN</ |
100 RETURN</syntaxhighlight> |
||
Another solution |
Another solution |
||
< |
<syntaxhighlight lang=zxbasic>10 PRINT "Input two numbers separated by"'"space(s) " |
||
20 INPUT LINE a$ |
20 INPUT LINE a$ |
||
30 LET ll=10e10: LET ls=0: LET i=1 |
30 LET ll=10e10: LET ls=0: LET i=1 |
||
Line 6,003: | Line 6,003: | ||
70 LET i=i+1: GO TO 40 |
70 LET i=i+1: GO TO 40 |
||
80 LET a=VAL a$( TO i): LET b=VAL a$(i TO ) |
80 LET a=VAL a$( TO i): LET b=VAL a$(i TO ) |
||
90 PRINT a;" + ";b;" = ";a+b</ |
90 PRINT a;" + ";b;" = ";a+b</syntaxhighlight> |
||
<pre> |
<pre> |