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

Ada для начинающих

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

Есть ли литература на русском языке для изучения Ada с нуля?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2017, 21:09
Ответы с готовыми решениями:

[Ada] Почему язык Ada не получил широкого распространения?
ADA, этот язык позиционируется как язык для разработки приложений, к которым...

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

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

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

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

29
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26519 / 17808 / 7048
Регистрация: 22.10.2011
Сообщений: 31,338
Записей в блоге: 6
01.07.2017, 21:29 2
Начинай с А.Гавва: "Адское" программирование
0
watersoda
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 97
01.07.2017, 21:40  [ТС] 3
Как обстоят дела с кириллицей в консольных приложениях (ОС Windows 7)? В Dev-C++ (при написании консольных приложений на C++) вопрос решался прописыванием в опциях компилятора -finput-charset=CP1251 -fexec-charset=CP866. Для GNAT наверное тоже что-то в опциях указать надо?
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26519 / 17808 / 7048
Регистрация: 22.10.2011
Сообщений: 31,338
Записей в блоге: 6
01.07.2017, 22:31 4
Цитата Сообщение от watersoda Посмотреть сообщение
вопрос решался прописыванием в опциях компилятора -finput-charset=CP1251 -fexec-charset=CP866
Никто ж не мешает сделать то же самое (Win7 нет в наличии, проверил на 8-ке)

Ada для начинающих

Ada для начинающих
2
watersoda
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 97
01.07.2017, 22:51  [ТС] 5
Цитата Сообщение от volvo Посмотреть сообщение
Никто ж не мешает сделать то же самое (Win7 нет в наличии, проверил на 8-ке)
В GPS?
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26519 / 17808 / 7048
Регистрация: 22.10.2011
Сообщений: 31,338
Записей в блоге: 6
01.07.2017, 22:52 6
Да, это GPS 2017
0
watersoda
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 97
01.07.2017, 23:54  [ТС] 7
Что-то не нахожу. volvo, не могли бы Вы указать путь к данным настройкам?

Добавлено через 19 минут
Нашёл, прописал опцию, при компиляции получил предупреждение:
gnat1.exe: warning: command line option '-fexec-charset=CP866' is valid for C/C++/ObjC/ObjC++ but not for Ada
0
Curry
2602 / 1764 / 225
Регистрация: 01.06.2013
Сообщений: 3,737
Записей в блоге: 7
01.07.2017, 23:54 8
Цитата Сообщение от volvo Посмотреть сообщение
Да, это GPS 2017
Возможно, только в PRO версии? Бесплатная не позволяет ни в оболочке (GPS) выбрать кодировку CP1251, ни указать
gnat1.exe: warning: command line option '-finput-charset=CP1251' is valid for C/C++/ObjC/ObjC++ but not for Ada
0
watersoda
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 97
02.07.2017, 09:57  [ТС] 9
Так, подправил, теперь без предупреждений. Но в бинарнике по-прежнему кракозябры.

Добавлено через 9 часов 31 минуту
Предупреждение появилось, когда я вписал опцию -fexec-charset=CP866 в Project/Properties/Ada.

Как только данная опция была перенесена в Project/Properties/Ada Linker, предупреждение исчезло.

Добавлено через 24 минуты
volvo, а какая кодировка у Вас указана в Edit/Preferences/General/Charsets?
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26519 / 17808 / 7048
Регистрация: 22.10.2011
Сообщений: 31,338
Записей в блоге: 6
02.07.2017, 13:40 10
У меня везде во всех IDE используется UTF-8. И да, мне проще выставить chcp в консоли, чем забивать себе голову входными/выходными кодировками. Тем более, что у меня системная кодировка - не Win1251, а консоль - не в CP866 ни разу. Однако, все нормально отработало после смены кодовой страницы в консоли. А выше - пример того, как и после изменения исходящей кодировки ничего не работает.

Не с того начинают учить язык обычно.
0
watersoda
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 97
02.07.2017, 15:54  [ТС] 11
С кодировкой в cmd решил вопрос с помощью chcp 65001. Но заметил следующую особенность: при запуске получившегося бинарника кроме строки "Привет, мир!" выводится сообщение:
raised ADA.IO_EXCEPTIONS.DEVICE_ERROR : No error
Можно его как-то убрать?
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26519 / 17808 / 7048
Регистрация: 22.10.2011
Сообщений: 31,338
Записей в блоге: 6
02.07.2017, 21:25 12
Лучше поменяй кодировку файлов на KOI8-R, и кодировку консоли на нее же, через
Windows Batch file
1
chcp 20866
, тогда и в редакторе сможешь работать с кириллицей, и сообщение об ошибке (кстати, оно с 2008-го в багрепорте, никто даже не почесался исправить, разработка под Windows вообще мало волнует создателей этой среды, до сих пор нет даже 64-битной версии под Windows) возникать не будет.
1
Curry
2602 / 1764 / 225
Регистрация: 01.06.2013
Сообщений: 3,737
Записей в блоге: 7
02.07.2017, 22:50 13
Цитата Сообщение от volvo Посмотреть сообщение
разработка под Windows вообще мало волнует создателей
Весьма знакомо по другим языкам. Но тут хоть есть оправдание. Ada под embedded заточена, и не под MS Embedded, а под всякие uC и одноплатки.

А Сообщение об исключении убирается ... как любое исключение - перехватом.
SQL
1
2
3
4
5
6
7
8
WITH Ada.Text_IO;  USE Ada.Text_IO;
WITH ADA.IO_EXCEPTIONS;
PROCEDURE Main IS
    BEGIN
   Put_Line("Привет");
   exception
   WHEN ADA.IO_EXCEPTIONS.DEVICE_ERROR => NULL;
END Main;
Что, конечно не отменяет наличие бага.
Кстати, у меня кодировка файла привычная utf-8, chcp 65001, хотя, вообще то настоящая консоль и не нужна была. В GPS встроенная "консоль" есть, какой надо кодировки.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26519 / 17808 / 7048
Регистрация: 22.10.2011
Сообщений: 31,338
Записей в блоге: 6
03.07.2017, 09:14 14
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
А Сообщение об исключении убирается ... как любое исключение - перехватом.
Только не так просто. Потому что
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
WITH Ada.Text_IO; USE Ada.Text_IO;
WITH Ada.IO_Exceptions;
 
PROCEDURE Main IS
 
BEGIN
   Put_Line (" Привет, мир!");
   Put_Line ("Hello, world!");
EXCEPTION
      WHEN Ada.IO_Exceptions.Device_Error => NULL;
END Main;
вторую строку не напечатает. Мало того, даже если вынести печать с отловом исключения в отдельную процедуру:
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
WITH Ada.Text_IO; USE Ada.Text_IO;
WITH Ada.IO_Exceptions;
 
PROCEDURE Main IS
   
   PROCEDURE Print (s : String) IS
   BEGIN
      Put_Line (s);
   EXCEPTION
      WHEN Ada.IO_Exceptions.Device_Error => NULL;
   END Print;
 
BEGIN
   Print (" Привет, мир!");
   Print ("Hello, world!");
END Main;
, это решит проблему лишь частично: теперь отработают обе строки кода, но вот вывод будет не в две, а в одну строку:
Код
 Привет, мир!Hello, world!
Так что вариант со сменой кодировки файла на KOI8-R предпочтительнее, тем более для начинающего. Тогда прекрасно отработает самый простой код:
Oracle 11 SQL
1
2
3
4
5
6
7
8
WITH Ada.Text_IO; USE Ada.Text_IO;
 
PROCEDURE Main IS
 
BEGIN
   Put_Line (" Привет, мир!");
   Put_Line ("Hello, world!");
END Main;
1
watersoda
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 97
03.07.2017, 19:26  [ТС] 15
Ещё раз спасибо за помощь! Продолжаю обживаться в GPS-2017. Если я всё правильно понял, то для получения бинарника нужно выполнить: Bulid/Project/Build <current file>, после чего нажать кнопку "Execute". А нельзя ли "повесить" данную последовательность на какую-нибудь клавишу, например, F9?
0
Curry
2602 / 1764 / 225
Регистрация: 01.06.2013
Сообщений: 3,737
Записей в блоге: 7
03.07.2017, 21:53 16
watersoda, В свойствах проекта, Main указываете что у вас main. И Меню\Build\Run ... там ещё настроить можно. Shift-F2, в общем.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26519 / 17808 / 7048
Регистрация: 22.10.2011
Сообщений: 31,338
Записей в блоге: 6
03.07.2017, 22:27 17
Цитата Сообщение от watersoda Посмотреть сообщение
для получения бинарника нужно выполнить: Bulid/Project/Build <current file>, после чего нажать кнопку "Execute"
Для того, чтобы пересобрать исходник и запустить бинарник достаточно нажать на кнопку со стрелкой (Build and Run <имя_файла>) :

Ada для начинающих


Но если все-таки хочется на эту кнопку повесить хоткей - то Edit -> Preferences -> General -> Key Shortcuts, в строке Filter записать Build, чтобы не просматривать тонны возможных вариантов, и найти строку Build & Run Number 1, выделить ее курсором и нажать кнопку Modify в правой части окна, после чего система будет ждать собственно нажатия хоткея. Я повесил для теста на это действие Shift + F9 (потому что у меня уже и Ctrl+F9 и просто F9 заняты), закрываем диалог настроек и жмем выбранный хоткей еще раз. Проект пересобирается и запускается.

Ada для начинающих
1
watersoda
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 97
05.07.2017, 17:39  [ТС] 18
Что-то не нахожу у себя эту кнопку со стрелкой.
0
Миниатюры
Ada для начинающих  
watersoda
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 97
05.07.2017, 17:47  [ТС] 19
Попробовал задействовать F9 в качестве хоткея, но при нажатии получаю сообщение:
Action not defined : Build & Run Number 1
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26519 / 17808 / 7048
Регистрация: 22.10.2011
Сообщений: 31,338
Записей в блоге: 6
05.07.2017, 18:02 20
Цитата Сообщение от watersoda Посмотреть сообщение
не нахожу у себя эту кнопку со стрелкой
Не назначен главный файл проекта. Project -> Properties -> Sources -> Main, нажми на "+" и выбери тот файл который содержит основную программу. После сохранения изменений появится стрелка.
1
05.07.2017, 18:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2017, 18:02

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

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

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


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

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

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