Помощь - Поиск - Пользователи - Календарь
Полная версия: задание Ada(не компилится проект)
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Psychoman
Здраствуйте ,недавно меня заставили писать на Аде , потому я очень мало знаю про данный язык. Разобравшись с простыми на первый взгляд болезнями ( действительно это было над чем потягаться ),что-то вроде поставить компилятор и разобраться с елементарным синтаксисом, дальше вроде все неплохо пошло ( написание самой проги ).Но вышла небольшая проблема, ошибок нет ,но выдает ,что не может скомпилировать файл.

Ошибка такого плана:"Invalid context, cannot build.Error while trying to execute C:\Users\Psycho\AdaProjects\Lab1Test: not an executable".

Вот пример кода:
Код

////////////////////////////////Спецификации////////////////////////////////////////
--1.21 - D = sort(A) + sort(B) + sort(C)*(MA*MZ);
--2.24 - MG = sort( MA - MB * MC );
--3.25 - E = ( A + B + C )*( MA * MB );


package Lab1 is
   N: Integer := 3;
   type Vector is array( 1..N ) of Integer;
   type Matrix is array( 1..N ) of Vector;

   --procedure Func1( A,B,C : in Vector; MA,MZ: in Matrix; D : out Vector );
   --procedure Func2( MA,MB,MC : in Matrix; MG : out Matrix );
   --procedure Func3( A,B,C : in Vector; MA,MB : in Matrix; E : out Vector );
  
   procedure sortVectorUp( K : in Vector; S : out Vector );
   procedure sortVectorDown( K : in Vector; S : out Vector );
   --procedure sortMatrixUp( MK : in Matrix; MN : out Matrix );
   --procedure sortMatrixDown( MK : in Matrix; MN : out Matrix );

   procedure InputVector( V : out Vector );
   procedure InputMatrix( M : out Matrix );

   procedure PrintResultMatrix( M : in Matrix );
   procedure PrintResultVector( V : in Vector );

end Lab1;
///////////////////////////////////////Реализация///////////////////////////////////////////////
with Ada.Integer_Text_IO;
use Ada.Integer_Text_IO;
with Ada.Text_IO;
use Ada.Text_IO;
package body Lab1 is

   procedure InputVector( V : out Vector ) is
      i : Integer := 0;

   begin
      for i in 1..N
      loop
         Get( V(i) );
      end loop;

   end;

   procedure InputMatrix( M : out Matrix ) is
      i,j : Integer := 0;
   begin
      for i in 1..N
      loop
         for j in 1..N
         loop
            Get( M(i)(j) );
         end loop;
      end loop;

   end;

   procedure sortVectorUp( K : in Vector; S : out Vector ) is
      minElem : Integer := 9999;
      i,j: Integer := 0;
   begin

      for i in 1..N
      loop

         for j in i..N
         loop
            if K(i) < minElem then
               minElem := K(i);
            end if;
         end loop;
         S(i) := minElem;

      end loop;

   end;

   procedure sortVectorDown( K : in Vector; S : out Vector ) is
      maxElem : Integer := -9999;
      i,j: Integer := 0;
    begin

      for i in 1..N
      loop

         for j in i..N
         loop
            if K(i) > maxElem then
               maxElem := K(i);
            end if;
         end loop;
         S(i) := maxElem;

      end loop;

   end;

   procedure PrintResultVector( V :in Vector ) is
      i : Integer := 0;
   begin
      for i in 1..N
      loop
         Put( V(i) );
         Put( " " );
      end loop;
   end;

   procedure PrintResultMatrix( M :in Matrix ) is
      i,j : Integer := 0;
   begin
      for i in 1..N
      loop
         for j in 1..N
         loop
            Put( M(i)(j) );
            Put( " " );
         end loop;
         New_Line;
      end loop;

   end;


end Lab1;
////////////////////////////////////////////Выполняймая процедура //////////////////////////////////////////////////////
with Lab1;
procedure Lab1Test is
  A : Lab1.Vector;
begin
   Lab1.InputVector( A );
   Lab1.PrintResultVector( A );
  
end Lab1Test;


Компилятор GNAT 2011.
Спасибо.С удовольствием рассмотрю все ваши предложения по этому поводу smile.gif
IUnknown
Перед тем, как собирать проект, надо зайти в Project->Edit project properties->Main files, и выбрать в качестве основного файла проекта файл lab1test.adb... А теперь - собрать проект (Build main):
Нажмите для просмотра прикрепленного файла
, и будет собран EXE-шник (если сделать Build all без выбора главного файла проекта, то exe-файл, разумеется, не будет создан, и не сможет быть запущен)
Psychoman
Помогло smile.gif Спасибо.
IUnknown
Что именно в работе Дебаггера интересует? Как запустить - я уже рассказывал здесь: Настройка GPS (IDE для Ады)
Psychoman
Уже разобрался , спасибо за помощь smile.gif
Sanek
Привет.
Есть программа написанная на ада (из учебника). В самом начале подключается модуль win32 используя такой синтаксис
with win32;
use win32;

Однако на практике ничего не работает.
Ошибка - win32 not found in library

Кто знает почему?
При этом другие модули подключались в других примерах этого же учебника раньше именно так, через with / use и нормально.
Может в настройках ОбжектАда что то не то? или в настройках проекта?
nishaknapp
Why not settling on games that is fun and at the same time your earning. Well itll make suspense because of the game as well but dude just try it and it gave me hope while pandemic is real rn. Here’s What You Need to Know About Online Casino
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.