1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | -- -- Integer calculator program. Takes lines of input consisting of -- <operator> <number>, and applies each one to a display value. The -- display value is printed at each step. The operator is one of =, -- +, -, *, /, or ^, which correspond to assign, add, subtract, multiply -- divide, and raise, respectively. The display value is initially zero. -- The program terminates on a input of q. -- with Text_IO; with Gnat.Io; use Gnat.Io; procedure Calc is Op: Character; -- Operation to perform. Disp: Integer := 0; -- Contents of the display. In_Val: Integer; -- Input value used to update the display. begin loop -- Print the display. Put(Disp); New_Line; -- Promt the user. Put("> "); -- Skip leading blanks and read the operation. loop Get(Op); exit when Op /= ' '; end loop; -- Stop when we're s'posed to. exit when Op = 'Q' or Op = 'q'; -- Read the integer value (skips leading blanks) and discard the -- remainder of the line. Get(In_Val); Text_IO.Skip_Line; -- Apply the correct operation. case Op is when '=' => Disp := In_Val; when '+' => Disp := Disp + In_Val; when '-' => Disp := Disp - In_Val; when '*' => Disp := Disp * In_Val; when '/' => Disp := Disp / In_Val; when '^' => Disp := Disp ** In_Val; when '0'..'9' => Put_Line("Please specify an operation."); when others => Put_Line("What is " & Op & "?"); end case; end loop; end Calc; |
LS0KLS0gSW50ZWdlciBjYWxjdWxhdG9yIHByb2dyYW0uICBUYWtlcyBsaW5lcyBvZiBpbnB1dCBjb25zaXN0aW5nIG9mCi0tIDxvcGVyYXRvcj4gPG51bWJlcj4sIGFuZCBhcHBsaWVzIGVhY2ggb25lIHRvIGEgZGlzcGxheSB2YWx1ZS4gIFRoZQotLSBkaXNwbGF5IHZhbHVlIGlzIHByaW50ZWQgYXQgZWFjaCBzdGVwLiAgVGhlIG9wZXJhdG9yIGlzIG9uZSBvZiA9LAotLSArLCAtLCAqLCAvLCBvciBeLCB3aGljaCBjb3JyZXNwb25kIHRvIGFzc2lnbiwgYWRkLCBzdWJ0cmFjdCwgbXVsdGlwbHkKLS0gZGl2aWRlLCBhbmQgcmFpc2UsIHJlc3BlY3RpdmVseS4gIFRoZSBkaXNwbGF5IHZhbHVlIGlzIGluaXRpYWxseSB6ZXJvLgotLSBUaGUgcHJvZ3JhbSB0ZXJtaW5hdGVzIG9uIGEgaW5wdXQgb2YgcS4KLS0Kd2l0aCBUZXh0X0lPOwp3aXRoIEduYXQuSW87IHVzZSBHbmF0LklvOwpwcm9jZWR1cmUgQ2FsYyBpcwogICBPcDogQ2hhcmFjdGVyOyAgICAgICAgICAgICAgIC0tIE9wZXJhdGlvbiB0byBwZXJmb3JtLgogICBEaXNwOiBJbnRlZ2VyIDo9IDA7ICAgICAgICAgIC0tIENvbnRlbnRzIG9mIHRoZSBkaXNwbGF5LgogICBJbl9WYWw6IEludGVnZXI7ICAgICAgICAgICAgIC0tIElucHV0IHZhbHVlIHVzZWQgdG8gdXBkYXRlIHRoZSBkaXNwbGF5LgpiZWdpbgogICBsb29wCiAgICAgIC0tIFByaW50IHRoZSBkaXNwbGF5LgogICAgICBQdXQoRGlzcCk7CiAgICAgIE5ld19MaW5lOwoKICAgICAgLS0gUHJvbXQgdGhlIHVzZXIuCiAgICAgIFB1dCgiPiAiKTsKCiAgICAgIC0tIFNraXAgbGVhZGluZyBibGFua3MgYW5kIHJlYWQgdGhlIG9wZXJhdGlvbi4KICAgICAgbG9vcAogICAgICAgICBHZXQoT3ApOwogICAgICAgICBleGl0IHdoZW4gT3AgLz0gJyAnOwogICAgICBlbmQgbG9vcDsKCiAgICAgIC0tIFN0b3Agd2hlbiB3ZSdyZSBzJ3Bvc2VkIHRvLgogICAgICBleGl0IHdoZW4gT3AgPSAnUScgb3IgT3AgPSAncSc7CgogICAgICAtLSBSZWFkIHRoZSBpbnRlZ2VyIHZhbHVlIChza2lwcyBsZWFkaW5nIGJsYW5rcykgYW5kIGRpc2NhcmQgdGhlCiAgICAgIC0tIHJlbWFpbmRlciBvZiB0aGUgbGluZS4KICAgICAgR2V0KEluX1ZhbCk7CiAgICAgIFRleHRfSU8uU2tpcF9MaW5lOwoKICAgICAgLS0gQXBwbHkgdGhlIGNvcnJlY3Qgb3BlcmF0aW9uLgogICAgICBjYXNlIE9wIGlzCiAgICAgICAgIHdoZW4gJz0nICAgICAgPT4gRGlzcCA6PSBJbl9WYWw7CiAgICAgICAgIHdoZW4gJysnICAgICAgPT4gRGlzcCA6PSBEaXNwICsgSW5fVmFsOwogICAgICAgICB3aGVuICctJyAgICAgID0+IERpc3AgOj0gRGlzcCAtIEluX1ZhbDsKICAgICAgICAgd2hlbiAnKicgICAgICA9PiBEaXNwIDo9IERpc3AgKiBJbl9WYWw7CiAgICAgICAgIHdoZW4gJy8nICAgICAgPT4gRGlzcCA6PSBEaXNwIC8gSW5fVmFsOwogICAgICAgICB3aGVuICdeJyAgICAgID0+IERpc3AgOj0gRGlzcCAqKiBJbl9WYWw7CiAgICAgICAgIHdoZW4gJzAnLi4nOScgPT4gUHV0X0xpbmUoIlBsZWFzZSBzcGVjaWZ5IGFuIG9wZXJhdGlvbi4iKTsKICAgICAgICAgd2hlbiBvdGhlcnMgICA9PiBQdXRfTGluZSgiV2hhdCBpcyAiICYgT3AgJiAiPyIpOwogICAgICBlbmQgY2FzZTsKICAgZW5kIGxvb3A7CmVuZCBDYWxjOw==
-
upload with new input
-
result: Runtime error time: 0.02s memory: 1856 kB signal: -1
10
0 >
raised ADA.IO_EXCEPTIONS.END_ERROR : a-textio.adb:1919
-
result: Runtime error time: 0.02s memory: 1856 kB signal: -1
0 >
raised ADA.IO_EXCEPTIONS.END_ERROR : a-textio.adb:1919



