[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Общего плана ->Проблемы и их решения
Автор Сообщение
Роман Стриженков

Темы: 5
Сообщений: 120

Мой профиль
Подскажите, что можно сделать чтобы при компиляции файлов созданных в PascalABC DL правильно воспринимала русские буквы. Например старший сын в Базовом программировании в Одномерном массиве задача "ОМ13.Оценка" за четверть. Она на понимает вывод "да" или "нет". Пришлось переписывать на Free Pascal.
А младший сегодня перешел в "Информатике 2015" в Одномерный массив и решил первую задачу. Очень не хотелось бы переходить с PascalABC из-за этого. Может можно добавить какой-нибудь компилятор другой?
Ну и в завершение. Приступая к обучению я не верил, что можно объяснить операции с массивом первокласснику, но Ваша система реально позволяет это делать.
Михаил Долинский

Темы: 1982
Сообщений: 47183

Мой профиль
Про русский язык - нужно просто отправлять файл в DOS-кодировке.

Есть множество способов это сделать - один нашли Вы.
Вот ещё варианты

Как настроить русский язык в Паскале +1
Как в Паскале писать на русском языке
Как в Паскале(DosBox) писать на русском языке
Как решать проблему русского языка в ответах

Но в принципе там таких задач не много.
Очень давно - когда мы поняли, что это создаёт проблемы - перестали ставить задачи с вводом/выводом русскими буквами.
Ну старых задач осталось немножко.
Последнее время, когда натыкаемся на такую - меняем формат ввода-вывода на латиницу.

Добавлять компилятор Pascal ABC мы не планируем,
по той причине, что он запрещён к использованию на международной олимпиаде,
и как следствие у нас в Беларуси - на республиканской, и как следствие
- у нас в Гомельской области на областных, городских и школьных олимпиадах.

Именно потому что есть существенные отличия между Pascal ABC и Free Pascal.
И можно сильно пострадать на олимпиаде - получив у себя на машине на Pascal ABC правильные ответы и не получив
правильных ответов при официальном тестировании на Free Pascal.
Владимир Фант

Темы: 1
Сообщений: 13

Мой профиль
Михаил Семёнович!
Огромная просьба, уберите пожалуйста русский язык в задачах тренировочных олимпиад (суббота-воскресенье) Занимаемся на С++ на iMac в Xcode - постоянные "танцы с бубном" утомили
Спасибо!
С уважением, Владимир.
Михаил Долинский

Темы: 1982
Сообщений: 47183

Мой профиль
Не буду я ничего убирать, это огромная работа.
Не решайте их просто.

Хотя может не так и сложно один раз разобраться.


Михаил Долинский:

Русские буквы на dl.gsu.by (Игорь Беляев, 26-дек-2009)

Для решения задач использую Visual Studio 2005, компилятор C++ 9.0. Во время решения столкнулся с проблемой вывода русских букв. Первый раз это произошло в задаче “О скобках”, где нужно было вывести “Да” или “Нет” в качестве ответа.
Проблема заключается в том, что для проверяющей системы выходные файлы должны быть в кодировке CP886(DOS). Из проблемы вышел таким образом


... 
using namespace std; 
... 
void output(bool value) 
{ 
    locale rus("rus_rus.866"); 
    wcout.imbue(rus); 
    if (value) 
        wcout<<L"Да"; 
    else 
        wcout<<L"Нет"; 
    exit(0); 
} 
  
 



Филипп Левковский:

Есть разные способы решения проблемы с неправильной кодировкой. Опишу приглянувшийся мне, остальные здесь - http://www.cyberforum.ru/post3883960.html. Стоит просмотреть их.
Нужно установить текстовый редактор, поддерживающий сохранение текста в кодировке OEM-866 (DOS). Мой выбор пал на Notepad++:
  • Скопировать код. Если у вас Windows Vista или 7, то код может испортиться в буфере - копируйте с русской раскладкой.
  • Выбрать в меню "Кодировки" -> "Кодировки" -> "Кириллица" -> "OEM-866".
  • Вставить код. 



  • Вывод кодами:

    Как Левковский Филипп решил проблему DOS-кодировки для русских букв
    if (l1 = l2) and (l2 = l3) and (l3 = l4) and (l4 = l5) and (l5 = l6) and (l6 = l7)
      then writeln(t, chr(164), chr(160))
      else writeln(t, chr(173), chr(165), chr(226));
     
    Владимир Фант

    Темы: 1
    Сообщений: 13

    Мой профиль
    Для компилятора Xcode на Mac решения пока не нашёл. Здесь сама задача с русскими символами компилируется с ошибками. Выход пока один: русские задачи решаем на Винде 10 в MVS. Там при сохранении файла меняем кодировку и ответ засчитывается. Но это очень не удобно.
    Просто думал, что выборку тренировок изменять не сложно. Там в блоке из пяти задач попадается еженедельно однотипная задача с русскими символами.
    С уважением, Владимир.
    Михаил Долинский

    Темы: 1982
    Сообщений: 47183

    Мой профиль
    Ну в винде же так предложил человек

    locale rus("rus_rus.866"); 

    И кодировку менять не надо.

    В общем менять ничего не будем.

    Есть ещё вариант - решать олимпиаду 1-4 класса.
    Там разной сложности задачи и с русскими буквами почти нет.
    Владимир Фант

    Темы: 1
    Сообщений: 13

    Мой профиль
    locale rus("rus_rus.866"); 

    Спасибо, попробую.
    Решаем олимпиады для начинающих. Это вроде и есть 1-4 класс. Там в блоке из пяти задач каждую неделю есть задача с русскими символами или ответами типа "да - нет"
    Михаил Долинский

    Темы: 1982
    Сообщений: 47183

    Мой профиль
    Ниже этого блока из 5 задач
    Есть блок из 20 задач в папке
    Олимпиады по 1-4 кл годам
    Такого примерно вида

    Область, 19 апреля 2019, 1-4 кл
    1. Задача 1
    2. Задача 2
    3. Задача 3
    4. Задача 4
    5. Задача 5
    6. Задача 6
    7. Задача 7
    8. Задача 8
    9. Задача 9
    10. Задача 10
    11. Задача 11
    12. Задача 12
    13. Задача 13
    14. Задача 14
    15. Задача 15
    16. Задача 16
    17. Задача 17
    18. Задача 18
    19. Задача 19
    20. Задача 20
    Владимир Фант

    Темы: 1
    Сообщений: 13

    Мой профиль
    Понял. Мы решаем два блока: и первый, и второй. Где 20 задач - там русского языка действительно нет.
    Спасибо за подробную консультацию.
     
    Индекс форума ->Общего плана ->Проблемы и их решения
    Time:0,04