Arithmetic/Integer: Difference between revisions

From Rosetta Code
Content added Content deleted
(Added Toka)
(-> Tcl)
Line 50: Line 50:
writeln('a/b = ', a div b, ', remainder ", a mod b);
writeln('a/b = ', a div b, ', remainder ", a mod b);
end.
end.

==[[Tcl]]==
[[Category:Tcl]]

puts "Please enter two numbers:"
gets stdin x
gets stdin y
puts "
$x + $y = [expr $x+$y]
$x - $y = [expr $x-$y]
$x * $y = [expr $x*$y]
$x / $y = [expr int($x / $y)]
$x mod $y = [expr $x % $y]
"

Since Tcl doesn't really know about the "type" of a variable, the "<tt>expr</tt>" command is used to declare whatever follows as an "expression". This means there is no such thing as "integer arithmetic" and hence the kludge <tt>int( $x / $y )</tt>.

Often, these operations would be performed in a way differently from what is shown here. For example to increase the variable "x" by the value of the variable "y", one would write

incr x $y

etc



==[[Toka]]==
==[[Toka]]==

Revision as of 22:36, 28 May 2007

Task
Arithmetic/Integer
You are encouraged to solve this task according to the task description, using any language you may know.

Basic Data Operation
This is a basic data operation. It represents a fundamental action on a basic data type.

You may see other such operations in the Basic Data Operations category, or:

Integer Operations
Arithmetic | Comparison

Boolean Operations
Bitwise | Logical

String Operations
Concatenation | Interpolation | Comparison | Matching

Memory Operations
Pointers & references | Addresses

Get two integers from the user, and then output the sum, difference, product, integer quotient and remainder of those numbers. Don't include error handling.

Ada

with Ada.Text_Io;
with Ada.Integer_Text_IO;

procedure Integer_Arithmetic is
   use Ada.Text_IO;
   use Ada.Integer_Text_Io;

   A, B : Integer;
begin
   Get(A);
   Get(B);
   Put_Line("a+b = " & Integer'Image(A + B));
   Put_Line("a-b = " & Integer'Image(A - B));
   Put_Line("a*b = " & Integer'Image(A * B));
   Put_Line("a/b = " & Integer'Image(A / B) & ", remainder " & Integer'Image(A mod B));  
end Integer_Arithmetic;

C++

#include <iostream>

int main()
{
  int a, b;
  std::cin >> a >> b;
  std::cout << "a+b = " << a+b << "\n";
  std::cout << "a-b = " << a-b << "\n";
  std::cout << "a*b = " << a*b << "\n";
  std::cout << "a/b = " << a/b << ", remainder " << a%b << "\n";
}

Pascal

program arithmetic(input, output)

var
 a, b: integer;

begin
 readln(a, b);
 writeln('a+b = ', a+b);
 writeln('a-b = ', a-b);
 writeln('a*b = ', a*b);
 writeln('a/b = ', a div b, ', remainder ", a mod b);
end.

Tcl

puts "Please enter two numbers:"

gets stdin x
gets stdin y

puts "
$x + $y = [expr $x+$y]
$x - $y = [expr $x-$y]
$x * $y = [expr $x*$y]
$x / $y = [expr int($x / $y)]
$x mod $y = [expr $x % $y]
"

Since Tcl doesn't really know about the "type" of a variable, the "expr" command is used to declare whatever follows as an "expression". This means there is no such thing as "integer arithmetic" and hence the kludge int( $x / $y ).

Often, these operations would be performed in a way differently from what is shown here. For example to increase the variable "x" by the value of the variable "y", one would write

incr x $y

etc


Toka

[ ( a b -- )
  2dup ." a+b = " + . cr  
  2dup ." a-b = " - . cr  
  2dup ." a*b = " * . cr  
  2dup ." a/b = " / . ." remainder " mod . cr  
] is mathops