Грешка при програмиране в Ada при изпълнение на файлове

Току-що започнах да програмирам в Ada и имам проблем с изпълнението на някои файлове .adb.

with Ada.Text_IO, Ada.Integer_Text_IO; 
use Ada.Text_IO, Ada.Integer_Text_IO; 
procedure Trapeze(A:integer;B: Integer;C :Integer;D: Integer) is
   procedure Traceligne(C:Character;X:Integer) is 
   begin 
      for I in 1 .. X loop 
         Put("C"); 
   end loop; 
   end Traceligne; 
   H:Integer:=C; 
   Alpha:Integer:=D; 
   Decd:integer:=A; 
   Decg:integer:=B;

begin 
   for I in 1 .. H loop
      Traceligne(' ',Decd); 
      Traceligne('*',Alpha); 
      Traceligne(' ',Decg); 
      Decd:=Decd-Integer(Decd*I/H); 
      Decg:=Decg-Integer(Decg*I/H);
      Alpha:=Alpha+Integer(Decd*I/H)+Integer(Decg*I/H);    
   end loop;
get(x);
Trapeze(1,2,3,4) 
end Trapeze;

имам тази грешка в кода:

ред 1: с: командата не е намерена.

Не знам причината за това съобщение.

PS: Въпросът е прост за някои програми, компютърът ми разпознава командата with Ada.Text_IOcommand, а за някои други ми дава грешката, спомената преди, не знам защо. Всъщност открих, че истинският проблем е в компилирането на файла, който компилира, но спира в gcc и не продължава към gnatbind и gnatlink. Надявам се, че ще имате някои предложения.


person user2539972    schedule 05.10.2013    source източник
comment
Добре дошли в SO. Ако искате някой да отдели време от натоварения си ден, за да ви помогне, моля, отделете малко време за създаване на използваем въпрос. Вижте тези връзки - stackoverflow.com/questions/how-to-ask и sscce.org   -  person OldProgrammer    schedule 06.10.2013
comment
Какви други езици знаете?   -  person Hot Licks    schedule 06.10.2013
comment
опитайте да потърсите в Google с: командата не е намерена. там има някои отговори.   -  person Yuriy Galanter    schedule 06.10.2013
comment
with е ключова дума на Ada със значение, смътно близко до #include на C или (малко по-близко) import на Java.   -  person Hot Licks    schedule 06.10.2013
comment
Пример: с Ada.Text_IO, Ada.Integer_Text_IO; използвайте Ada.Text_IO, Ada.Integer_Text_IO; процедура Trapeze(A:integer;B: Integer;C :Integer;D: Integer) е процедура Traceligne(C:Character;X:Integer) започва за I в 1 .. X цикъл Put(C); крайна линия; край Traceline; H:Цяло число:=C; Алфа:Цяло число:=D; Decd:integer:=A; Decg:integer:=B; начало за I в 1 .. H цикъл Traceligne(' ',Decd); Traceligne('',Alpha); Traceline(' ',Decg); Decd:=Decd-цяло число(DecdI/H); Decg:= Decg-цяло число (Decg*I/H); крайна линия; край Трапец;   -  person user2539972    schedule 06.10.2013
comment
Редактирайте оригиналния си въпрос и го поставете в текста. След това маркирайте това, което сте поставили, и натиснете бутона {}, за да го отстъпите с 4 знака, така че да бъде форматирано като код.   -  person Hot Licks    schedule 06.10.2013
comment
(Но звучи така, сякаш процесът на изграждане не смята, че файлът е Ada и се опитва да го интерпретира като скрипт или нещо подобно.)   -  person Hot Licks    schedule 06.10.2013


Отговори (1)


Причината за съобщението command not found е, че се опитвате да изпълните файла trapeze.adb, а не изпълнима програма, създадена от него (trapeze или, в Windows, trapeze.exe).

Причината, поради която GNAT не е изградил изпълнима програма е, че в GNAT основната програма трябва да бъде процедура без параметри; вероятно някои от вашите тестови програми са били без параметри, но тази не е.

Ако се надявахте да можете да предоставите параметрите от командния ред, като

$ ./trapeze 1 2 3 4

тогава трябва да използвате Ada.Command_Line, за да ги извлечете .

person Simon Wright    schedule 06.10.2013
comment
Благодаря за отговора, редактирах програмата си, направих trapeze(1,2,3,4) накрая и проблемът продължава да съществува. Опитах и ​​с ada.command_Line; Използвайте Ada.command_Line и не работи. - person user2539972; 06.10.2013
comment
Това, което направих е, че оттеглих всички параметри от процедурата в началото и поставих get ... Най-накрая проработи, така че Благодаря! - person user2539972; 06.10.2013