Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Паскаль
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 06.09.2019, 13:35   #1
Eugene_41
Новичок
Джуниор
 
Регистрация: 06.09.2019
Сообщений: 5
Репутация: 10
Злость PascalABC.NET почему memory limit? Шифр Юлия Цезаря

www
Миниатюры
Нажмите на изображение для увеличения
Название: 5Y9jJTNlyfY.jpg
Просмотров: 61
Размер:	92.1 Кб
ID:	97589   Нажмите на изображение для увеличения
Название: 11111111.png
Просмотров: 48
Размер:	31.7 Кб
ID:	97590  
Eugene_41 вне форума   Ответить с цитированием
Старый 06.09.2019, 14:29   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,100
Репутация: 5675
По умолчанию

ну, если не брать во внимание "магическое" число 120, то я бы заменил Read(st) на ReadLn(st)
и Write(st) на WriteLn(st)


поясню своё замечание насчёт 120.
согласитесь, что так лучше:
Код:
if st[i]>='x' then

Последний раз редактировалось Serge_Bliznykov; 06.09.2019 в 14:32.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 06.09.2019, 15:47   #3
Eugene_41
Новичок
Джуниор
 
Регистрация: 06.09.2019
Сообщений: 5
Репутация: 10
По умолчанию

Не помогает
Eugene_41 вне форума   Ответить с цитированием
Старый 06.09.2019, 15:58   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,100
Репутация: 5675
По умолчанию

Цитата:
Сообщение от Eugene_41 Посмотреть сообщение
Не помогает
очень странно
сочувствую.

а если попробовать завести дополнительную строку, куда собирать результат?
типа
Код:
srez := '';
.....
srez := srez + chr(ord(.....
либо поменяйте алгоритм.
забудьте про ord и chr
заведите строчку со всеми буквами алфавита, ищите в ней позицию через Pos, вычисляете новый индекс в строке и берите символ оттуда.

кстати, а почему именно PascalABC.NET ?
там нельзя выбрать что-то более вменяемое?
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 06.09.2019, 16:14   #5
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,100
Репутация: 5675
По умолчанию

взял PascalABC.NET версии 3.0 и получил ошибку. он не понимает input ??!!

попробуйте такой код
Код:
var
   f,f2 : TextFile;
   st : string[200];
   i : byte;
begin
    Assign (f, 'input.txt');
    Assign (f2 , 'output.txt');
    ReSet (f);
    ReWrite (f2);
    Read(f,st);     
    Close(f);
      for i:=1 to Length(st) do       
        if st[i] >= 'x' then
          st[i] := chr(ord(st[i]) - 23)
        else   
          st[i] := chr(ord(st[i]) + 3);
         
         
    write(f2,st);    
    Close(f2);
    
end.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 08.09.2019, 15:26   #6
Eugene_41
Новичок
Джуниор
 
Регистрация: 06.09.2019
Сообщений: 5
Репутация: 10
По умолчанию

Не работает
Eugene_41 вне форума   Ответить с цитированием
Старый 08.09.2019, 18:41   #7
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,100
Репутация: 5675
По умолчанию

Цитата:
Сообщение от Eugene_41 Посмотреть сообщение
Не работает
беда-печаль...

а какую ошибку выдаёт? Неужели так же ML?

а если заменить String на ShortString что будет?
Код:
var
   st : ShortString;
Потребление памяти какое будет?
Ошибка будет такая же или другая?

Либо попробуйте переписать с использованием StringBuilder

p.s. имхо, зря Вы с этим уродцем PascalABC.NET связались. Чтобы его использовать, нужно понимать, что такое .NET Framework и как он работает.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 10.09.2019, 16:47   #8
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,100
Репутация: 5675
По умолчанию

Цитата:
Сообщение от Gemerity Посмотреть сообщение
А у Вас последняя версия PascalABC.NET ?
так ошибку выдаёт не его компьютер.
судя по скриншоту, он выгружает файл на какой-то сервер, тот запускает код онлайн и выдаёт результаты - прошёл тесты или нет.
ну, для примера, см. https://acmp.ru/ https://www.e-olymp.com/ru/ и т.п.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 11.09.2019, 01:57   #9
Вадим Мошев

Заслуженный модератор
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Адрес: programmersforum
Сообщений: 8,481
Репутация: 4056
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
так ошибку выдаёт не его компьютер
Это был спамер, написал бессмысленный пост, вставил скрытую ссылку и ушёл. Не надо ему отвечать.
Вадим Мошев на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шифр Цезаря Ти6ка C# (си шарп) 7 21.02.2017 23:19
Шифр Цезаря KksMM C# (си шарп) 1 10.11.2016 11:04
Шифр Цезаря на PascalABC Dasha94 Помощь студентам 1 07.02.2014 16:57
шифр Цезаря Defa4ka Помощь студентам 5 23.10.2011 13:48
Шифр Цезаря Jasper92 Помощь студентам 3 02.12.2009 19:47


19:34.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.