Форум программистов, компьютерный форум, киберфорум
Наши страницы

Другие языки программирования

Войти
Регистрация
Восстановить пароль
 
 
watersoda
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 95
#1

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

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

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

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

[Ada] Где можно скачать язык Ada? - Программирование
Здрасте всем народ где можно скачать этот язык?у кого нибудь есть ссылки? в поисковиках все ссылки битые, вся надежда на вас:)

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

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

[Ada] Разработка параллельной программы для вычисления векторно-матричного выражения - Программирование
Мне необходимо разработать параллельную программу для вычисления векторно-матричного выражения MА= MВ*МС + ME*(MM*МX) для заданной...

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

29
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25521 / 17074 / 5411
Регистрация: 22.10.2011
Сообщений: 30,229
Записей в блоге: 6
01.07.2017, 21:29 #2
Начинай с А.Гавва: "Адское" программирование
0
watersoda
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 95
01.07.2017, 21:40  [ТС] #3
Как обстоят дела с кириллицей в консольных приложениях (ОС Windows 7)? В Dev-C++ (при написании консольных приложений на C++) вопрос решался прописыванием в опциях компилятора -finput-charset=CP1251 -fexec-charset=CP866. Для GNAT наверное тоже что-то в опциях указать надо?
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25521 / 17074 / 5411
Регистрация: 22.10.2011
Сообщений: 30,229
Записей в блоге: 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
Сообщений: 95
01.07.2017, 22:51  [ТС] #5
Цитата Сообщение от volvo Посмотреть сообщение
Никто ж не мешает сделать то же самое (Win7 нет в наличии, проверил на 8-ке)
В GPS?
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25521 / 17074 / 5411
Регистрация: 22.10.2011
Сообщений: 30,229
Записей в блоге: 6
01.07.2017, 22:52 #6
Да, это GPS 2017
0
watersoda
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 95
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
KolodeznyDiver
2468 / 1599 / 186
Регистрация: 01.06.2013
Сообщений: 3,284
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
Сообщений: 95
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
25521 / 17074 / 5411
Регистрация: 22.10.2011
Сообщений: 30,229
Записей в блоге: 6
02.07.2017, 13:40 #10
У меня везде во всех IDE используется UTF-8. И да, мне проще выставить chcp в консоли, чем забивать себе голову входными/выходными кодировками. Тем более, что у меня системная кодировка - не Win1251, а консоль - не в CP866 ни разу. Однако, все нормально отработало после смены кодовой страницы в консоли. А выше - пример того, как и после изменения исходящей кодировки ничего не работает.

Не с того начинают учить язык обычно.
0
watersoda
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 95
02.07.2017, 15:54  [ТС] #11
С кодировкой в cmd решил вопрос с помощью chcp 65001. Но заметил следующую особенность: при запуске получившегося бинарника кроме строки "Привет, мир!" выводится сообщение:
raised ADA.IO_EXCEPTIONS.DEVICE_ERROR : No error
Можно его как-то убрать?
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25521 / 17074 / 5411
Регистрация: 22.10.2011
Сообщений: 30,229
Записей в блоге: 6
02.07.2017, 21:25 #12
Лучше поменяй кодировку файлов на KOI8-R, и кодировку консоли на нее же, через
Windows Batch file
1
chcp 20866
, тогда и в редакторе сможешь работать с кириллицей, и сообщение об ошибке (кстати, оно с 2008-го в багрепорте, никто даже не почесался исправить, разработка под Windows вообще мало волнует создателей этой среды, до сих пор нет даже 64-битной версии под Windows) возникать не будет.
1
KolodeznyDiver
2468 / 1599 / 186
Регистрация: 01.06.2013
Сообщений: 3,284
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
25521 / 17074 / 5411
Регистрация: 22.10.2011
Сообщений: 30,229
Записей в блоге: 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
Сообщений: 95
03.07.2017, 19:26  [ТС] #15
Ещё раз спасибо за помощь! Продолжаю обживаться в GPS-2017. Если я всё правильно понял, то для получения бинарника нужно выполнить: Bulid/Project/Build <current file>, после чего нажать кнопку "Execute". А нельзя ли "повесить" данную последовательность на какую-нибудь клавишу, например, F9?
0
03.07.2017, 19:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2017, 19:26
Привет! Вот еще темы с ответами:

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

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

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

[Ada] Создать динамический массив, тип которого опеределяется, как "Запись с динамическим массивом" - Программирование
Я программирую на языке ada. Передо мной возникла задача создать динамический массива тип которого опередяется как запись с динамическим...


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

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

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