Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 06.09.2019
Сообщений: 18

Почему ml? Шифр Юлия Цезаря

06.09.2019, 12:45. Показов 856. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  var
   st : string;
   i : byte;
begin
    Assign (input , 'input.txt');
    Assign (output , 'output.txt');
    ReSet (input);
    ReWrite (output);
    Read (st);     
      for i:=1 to Length(st) do       
        if (ord(st[i]) >= 120) then
          st[i] := chr(ord(st[i]) - 23)
        else   
          st[i] := chr(ord(st[i]) + 3);
         
         
       write (st); 
   
end.
Миниатюры
Почему ml? Шифр Юлия Цезаря   Почему ml? Шифр Юлия Цезаря  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.09.2019, 12:45
Ответы с готовыми решениями:

Закодировать строку при помощи шифра Юлия Цезаря
Условие Дана строка, состоящая из маленьких букв латинского алфавита. Требуется закодировать строку при помощи шифра Юлия Цезаря. Суть...

Шифр Цезаря
нужно написать программу, шифрующий строку шифром цезаря, причем задается произвольный сдвиг и алфавит в виде массива Добавлено через...

Шифр Цезаря (нужна блок-схема)
Программа шифрует вводимую строку "Шифром Цезаря",как построить ее блок-схему? Program Shifr; const n=25; {число букв в алфавите} ...

3
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
06.09.2019, 13:34
Кроме того, в PascalABC.NET реализованы размерные строки. Для их описания используется тип string[n], где n - константа целого типа, указывающая длину строки. Размерные строки, в отличие от обычных, можно использовать как компоненты типизированных файлов. Для совместимости с Delphi Object Pascal в стандартном модуле описан тип shortstring=string[255].
cм. ограничения задания.
0
0 / 0 / 0
Регистрация: 06.09.2019
Сообщений: 18
06.09.2019, 14:24  [ТС]
Не помогает
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
06.09.2019, 15:22
Цитата Сообщение от Constantin Cat Посмотреть сообщение
Кроме того, в PascalABC.NET реализованы размерные строки
Враньё. string[n] при компиляции в тихую превращается в string. А размерным типом string[n] в PascalABC.NET никогда не было.

Теперь не_устаревший текст из справки (я так понимаю, с той же страницы):
Для совместимости с Delphi Object Pascal в PascalABC.NET реализованы короткие строки. Для их описания используется тип string[n], где n - константа целого типа, указывающая длину строки (n <= 255). Для совместимости с Delphi Object Pascal в стандартном модуле описан тип shortstring=string[255].
Теперь что касается задания:

Строки реализуются типом System.String платформы .NET и представляют собой ссылочный тип. Таким образом, все операции над строками унаследованы от типа System.String. Однако, в отличие от .NET - строк, строки в PascalABC.NET изменяемы. Например, можно изменить s[i] (в .NET нельзя). Более того, строки string в PascalABC.NET ведут себя как размерные: после
Pascal
1
2
3
var s2 := 'Hello';
var s1 := s2;
s1[2] := 'a';
строка s2 не изменится. Здесь происходит так называемое копирование при записи (Copy On Write) - при изменении символа строки создаётся её копия, в результате s1 и s2 начинают ссылаться на разные участки памяти.
(тоже из справки, в этот раз главная страница string, ближе к концу)

То есть вы своими изменениями строк - наплодили кучу их копий в памяти. И сборщик мусора просто не успел лишние выкинуть, поэтому превышение памяти.

Теперь решение без говнокода и не забывая про то что кодим в .Net языке:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const base_id = word('a');
 
begin
  Reset(input, 'input.txt');
  Rewrite(output, 'output.txt');
  
  while not Eof do
  begin
    
    foreach var ch in ReadlnString do
    begin
      var id := word(ch)-base_id;
      id := (id+3) mod 26;
      Write(char(id+base_id));
    end;
    
    Writeln;
  end;
  
end.
Вообще в нормальной программе - надо было бы использовать или массив, или StringBuilder (массив (обязательно динамичный!) если знаков известное кол-во и StringBuilder в противном случае).

Однако тут мы имеем дело с текстовыми потоками (я про поток вывода). А они имеют свойство растягиваться, как и StringBuilder и List<T>, поэтому можно выводить по 1 знаку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.09.2019, 15:22
Помогаю со студенческими работами здесь

Шифр Юлия
Пожалуста помогите, не могу решить эту задачу.Даже нет идеи. Юлий Цезарь использовал свой способ шифрования текста. Каждая буква...

Шифр Цезаря
Название данного шифра происходит от имени древнеримского императора Юлия Цезаря, который использовал данный шифр для обмена сообщениями с...

Шифр Цезаря
Написать программу для шифрования произвольного текста с использованием шифра Цезаря. Ключ должен быть любым. Для латинского алфавита.

Шифр Цезаря
Доброго времени суток! Помогите, пожалуйста, написать программу. Пересмотрела здесь на сайте множество интерпретаций, но все они очень...

Шифр Цезаря
Доброго времени суток! Подскажите пожалуйста! Написать программу, которая выполняет шифрование строки с помощью шифра Цезаря. ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru