Форум программистов, компьютерный форум, киберфорум
Наши страницы
Другие языки программирования
Войти
Регистрация
Восстановить пароль
 
 
watersoda
0 / 0 / 1
Регистрация: 04.04.2015
Сообщений: 96
#1

Ada для начинающих - Программирование

01.07.2017, 21:09. Просмотров 955. Ответов 29
Метки нет (Все метки)

Есть ли литература на русском языке для изучения Ada с нуля?
http://www.cyberforum.ru/other-lang/thread1738582.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2017, 21:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ada для начинающих (Программирование):

[Ada] Где можно скачать язык Ada?
Здрасте всем народ где можно скачать этот язык?у кого нибудь есть ссылки? в...

[Ada] Язык Ada и семантика ASIS
Требуется помощь, не ставится ADA ASIS на ПК, не понимаю как его распаковывать,...

[Ada] Метод Якоби для решения системы линейных уравнений
Помогите, кто может, написать код на языке ADA на одну из трех тем: 1)...

[Ada] Разработка параллельной программы для вычисления векторно-матричного выражения
Мне необходимо разработать параллельную программу для вычисления...

[Ada] TCP клиент-сервер
Добрый день! Вопрос таков. Есть ли какие нибудь примеры или готовые решения TCP...

29
watersoda
0 / 0 / 1
Регистрация: 04.04.2015
Сообщений: 96
05.07.2017, 18:27  [ТС] #21
volvo, на одном из форумов по программированию нашёл Ваши (по крайней мере ник участника был тоже volvo, ссылку на данный форум я посеял) советы по уменьшению размера бинарника. Решил разместить их здесь, только расположение опций поправил в соответствии с GPS-2017:

1. Зайти в Project/Properties/Switches/Ada Linker и там включить опцию Strip Symbols.

2. Зайти в Project/Properties/Switches/Binder, включить опцию Shared GNAT run time. Внимание! Могут возникнуть проблемы с запуском полученного бинарника на стороннем ПК из-за отсутствия необходимых библиотек.
0
Миниатюры
Ada для начинающих  
watersoda
0 / 0 / 1
Регистрация: 04.04.2015
Сообщений: 96
05.07.2017, 18:28  [ТС] #22
Цитата Сообщение от volvo Посмотреть сообщение
Не назначен главный файл проекта. Project -> Properties -> Sources -> Main, нажми на "+" и выбери тот файл который содержит основную программу. После сохранения изменений появится стрелка.
Спасибо за разъяснения, заработало!
0
watersoda
0 / 0 / 1
Регистрация: 04.04.2015
Сообщений: 96
14.07.2017, 18:54  [ТС] #23
В продолжение задания кодировки: в Ada есть аналог system, как, например, в C++?

Сейчас для запуска бинарника использую батник:
Windows Batch file
1
2
3
4
@echo off
chcp 20866
hello.exe
pause
Нельзя ли реализовать в исходнике на Ada что-то аналогичное
C++
1
system("chcp 20866");
?
0
KolodeznyDiver
2493 / 1640 / 203
Регистрация: 01.06.2013
Сообщений: 3,332
Записей в блоге: 7
14.07.2017, 19:39 #24
Если вы ставили GNAT Аду вместе с пакетом Win32Ada (хотя он Project называется), то там можно найти и смену локали и вызов (с помощью Win API), дочернего процесса, и ShellExecute есть, и CreateProcess, и может даже поможет setlocale. (За справкой по этим функциям в MSDN ).
Но я бы, если б было на это время, попытался бы решить проблему с ошибкой вывода в консоль использованием чисто Win API из этого же пакета Win32Ada не меняя кодировку в консоли. Исходники бы я в utf-8 оставил, а перекодировать текст можно Win API функциями MultiByteToWideChar и WideCharToMultiByte, заодно изучите как в ада память выделять, аллокаторы, access, aliased, всё такое.
Я это уже успел подзабыть, увы. Падает там, кстати при выводе символов возврата каретки и перевода строки.

p.s. Win32Ada подключается (если устанавливали) Project/Properties/Sources/Dependecies и в правой колонке Projets который можно подключить.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25612 / 17165 / 6825
Регистрация: 22.10.2011
Сообщений: 30,361
Записей в блоге: 6
14.07.2017, 19:47 #25
Цитата Сообщение от watersoda Посмотреть сообщение
Нельзя ли реализовать в исходнике на Ada что-то аналогичное
Нет. Я бы вообще не завязывался при изучении Ады на какую-то конкретную ОС. Если использовать только Windows (и лезть в WinAPI) - то Ада и не нужна.
0
watersoda
0 / 0 / 1
Регистрация: 04.04.2015
Сообщений: 96
19.08.2017, 18:47  [ТС] #26
Думаю, что новичкам, изучающим Ada, пригодится данный ресурс.
0
KolodeznyDiver
2493 / 1640 / 203
Регистрация: 01.06.2013
Сообщений: 3,332
Записей в блоге: 7
19.08.2017, 19:16 #27
Цитата Сообщение от watersoda Посмотреть сообщение
Думаю, что новичкам, изучающим Ada, пригодится
Может и пригодится, но ... . Глянул пару страниц наобум. Почему то код бледно серый, плохо читаемый. И сразу ошибку увидел : Character'Val('97').
Вычитывать же надо.
0
WH
789 / 209 / 32
Регистрация: 10.09.2013
Сообщений: 807
24.12.2017, 11:10 #28
Язык интересен. Есть ли пример совсем простенькой программы, например вычисления корней квадратного уравнения? (1. с вводом с клавиатуры и 2. заданный в программе). Интернет на эту тему результатов не дал.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25612 / 17165 / 6825
Регистрация: 22.10.2011
Сообщений: 30,361
Записей в блоге: 6
24.12.2017, 11:47 #29
Чего ж не дал? Rosetta code дает ответ: http://rosettacode.org/wiki/Roots_of_a_quadratic_function#Ada
1
KolodeznyDiver
2493 / 1640 / 203
Регистрация: 01.06.2013
Сообщений: 3,332
Записей в блоге: 7
24.12.2017, 13:05 #30
Цитата Сообщение от WH Посмотреть сообщение
с вводом с клавиатуры
Oracle 11 SQL
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
WITH Ada.Text_IO; USE Ada.Text_IO;
WITH Ada.Float_Text_IO; USE Ada.Float_Text_IO;
WITH Ada.Numerics.Elementary_Functions;  USE Ada.Numerics.Elementary_Functions;
 
PROCEDURE Main IS
   TYPE Roots IS ARRAY (1..2) OF FLOAT;
   FUNCTION Solve (A, B, C : FLOAT) RETURN Roots IS
      SD : CONSTANT FLOAT := SQRT (B**2 - 4.0 * A * C);
      AA : CONSTANT FLOAT := 2.0 * A;
   BEGIN
      RETURN ((- B + SD) / AA, (- B - SD) / AA);
   END Solve;
   
   A, B, C : FLOAT;
   R : Roots;   
BEGIN
   Put("A ? ");
   Get(A);
   Put("B ? ");
   Get(B);
   Put("C ? ");
   Get(C);
   R:=Solve(A,B,C);
   Put_Line ("X1 =" & FLOAT'Image (R (1)) & " X2 =" & Float'Image (R (2)));
END Main;
Добавлено через 48 минут
С корректной обработкой ситуаций с разным кол-вом корней
Oracle 11 SQL
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
51
52
WITH Ada.Text_IO; USE Ada.Text_IO;
WITH Ada.Float_Text_IO; USE Ada.Float_Text_IO;
WITH Ada.Numerics.Elementary_Functions;  USE Ada.Numerics.Elementary_Functions;
 
PROCEDURE Main IS
   TYPE ResultType IS (No_Roots, One_Root, Two_Roots);
 
   TYPE Roots(ResType : ResultType) IS
   RECORD
         CASE ResType IS
         WHEN No_Roots => NULL;   
         WHEN One_Root => Root : FLOAT;
         WHEN Two_Roots =>
            Root1   : FLOAT;
            Root2   : FLOAT;
         END CASE;
      END RECORD;
 
   FUNCTION Solve (A, B, C : FLOAT) RETURN Roots IS
      Q : CONSTANT FLOAT := B**2 - 4.0 * A * C;
      AA : CONSTANT FLOAT := 2.0 * A;
      SD : FLOAT;
   BEGIN
      IF Q < 0.0 THEN
         RETURN (ResType => No_Roots);
      ELSIF Q = 0.0 THEN
         RETURN (One_Root, - B / AA);
      ELSE
         SD := SQRT (Q);
         RETURN (Two_Roots,(- B + SD) / AA, (- B - SD) / AA);
      END IF; 
   END Solve;
   
   A, B, C : FLOAT;
BEGIN
   Put("A ? ");
   Get(A);
   Put("B ? ");
   Get(B);
   Put("C ? ");
   Get(C);
   DECLARE
      R : CONSTANT Roots :=Solve(A,B,C);
   BEGIN   
      CASE R.ResType IS
      WHEN No_Roots =>  Put_Line ("No roots");
      WHEN One_Root =>  Put_Line ("One root = " & FLOAT'Image (R.Root));
      when Two_Roots => Put_Line ("Two roots : " & Float'Image (R.Root1) & " ,   " &
                               FLOAT'Image (R.Root2));
      end case;
   end;   
end Main;
1
24.12.2017, 13:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2017, 13:05
Привет! Вот еще темы с решениями:

[Ada] Обращение верхней треугольной матрицы
Нужно написать одну из трех задач на выбор на аде!. . Помогите пожалуйста!...

[Ada] Циклическая редукция и кусочно-линейный интеграл
Здравствуйте. Прошу помочь написать код на языке АДА по следующим двум темам: ...

[Ada] Поиск человека с самым большим весом в БД по сокращенному имени
) Имеется программа Heavy. Она готова много раз вводить и выводить пары...

[Ada] Когда освобождать память под динамически созданную задачу?
В книжке Гавва (п. 16.1.3) написано, что, если задачу создаём по new, то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru