Ошибка программирования на Аде при выполнении файлов

Я только начал программировать на Аде, и у меня возникла проблема с выполнением некоторых файлов .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_IO, а для некоторых других это дает мне ошибку, упомянутую ранее, я не знаю, почему. На самом деле я обнаружил, что реальная проблема заключается в компиляции файла, который он компилирует, но останавливается в gcc и не переходит к gnatbind и gnatlink. Надеюсь, у вас будут какие-то предложения.


person user2539972    schedule 05.10.2013    source источник
comment
Добро пожаловать в СО. Если вы хотите, чтобы кто-то выкроил время из своего напряженного дня, чтобы помочь вам, пожалуйста, потратьте немного времени на создание полезного вопроса. См. эти ссылки — stackoverflow.com/questions/how-to-ask и sscce.org   -  person OldProgrammer    schedule 06.10.2013
comment
какие языки вы еще знаете?   -  person Hot Licks    schedule 06.10.2013
comment
попробуйте поискать в гугле с: команда не найдена. там есть некоторые ответы.   -  person Yuriy Galanter    schedule 06.10.2013
comment
with — это ключевое слово Ады, значение которого отдаленно похоже на #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 in 1 ..X loop Put(C); конечная петля; конец Траслин; Н: Целое: = С; Альфа:целое:=D; Decd:целое:=A; Десятица:целое:=B; begin for I in 1 .. H loop Traceligne(' ',Decd); Трассировка('',Альфа); Трассировка (' ', Decg); Decd:=Decd-Integer(DecdI/H); Decg:=Decg-Integer(Decg*I/H); конечная петля; конец трапеции;   -  person user2539972    schedule 06.10.2013
comment
Отредактируйте исходный вопрос и вставьте текст. Затем выделите то, что вы вставили, и нажмите кнопку {}, чтобы сделать отступ на 4 символа, чтобы он был отформатирован как код.   -  person Hot Licks    schedule 06.10.2013
comment
(Но похоже, что процесс сборки не считает файл Адой и пытается интерпретировать его как сценарий или что-то в этом роде.)   -  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
Спасибо за ваш ответ, я отредактировал свою программу, я сделал трапецию (1,2,3,4) в конце, и проблема все еще сохраняется. Я также пробовал с ada.command_Line; Используйте Ada.command_Line, и это не сработает. - person user2539972; 06.10.2013
comment
Что я сделал, так это удалил все параметры из процедуры в начале и поставил get ... Наконец-то это сработало, так что спасибо! - person user2539972; 06.10.2013