Пятница, 24.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Seqular, Pavel  

Шифрования
snaper1993Дата: Понедельник, 24.11.2008, 23:12 | Сообщение # 1
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
Известный метод шифрования квадратом: некоторое сообщение вписывается в квадрат по строкам. При этом пропуска заменяют знаком '*', а если в последней строке квадрата остались свободные клеточки, они заполняются точками ('.'). После этого, прочитавши содержимое квадрата столбец за столбцом, получают зашифрованный текст.
Ваша задача состоит в том, чтобы зашифровать входное сообщение.
Входные данные:
В файле Z1.dat содержится сообщения, длиной не больше 5000 символов. При считывании символы переведения строки необходимо игнорировать.
Исходные данные: В файл Z1.sol вывести зашифрованное сообщение.
Пример:
Z1.dat:
Attack at dawn or we are done for
Промежуточное представление в виде квадрата:
A t t a c k
* a t * d a
w n * o r *
w e * a r e
* d o n e *
f o r . . .
Z1.sol:
A*ww*ftanedott**ora*oan.cdrre.ka*e*.


Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
AlexanderДата: Вторник, 25.11.2008, 00:39 | Сообщение # 2
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
И в чём проблема? Смотрим размер файла, из него находим размер матрицы. Затем выделяем память под эту матрицу и переписываем в другой файл её же только транспонированную и в одну строчку.

Скажем дружно- нафиг нужно!
 
snaper1993Дата: Вторник, 25.11.2008, 00:57 | Сообщение # 3
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
Alexander, из того что ти написал я понял только слово "матрица"!
Помоги пожалуста, с написанием!


Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
AlexanderДата: Вторник, 25.11.2008, 03:22 | Сообщение # 4
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
ну так пиши, а я помогу.

Скажем дружно- нафиг нужно!
 
snaper1993Дата: Вторник, 25.11.2008, 03:54 | Сообщение # 5
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
Ну я не знаю с чево тут начинать!
И што здесь писать?! обще не режу!


Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
AlexanderДата: Вторник, 25.11.2008, 03:58 | Сообщение # 6
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
ну начни с открытия файла и проверки его размера. Исходя из этого вычисли порядок матрицы.

Скажем дружно- нафиг нужно!
 
snaper1993Дата: Вторник, 25.11.2008, 05:25 | Сообщение # 7
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
Quote

проверки его размера. Исходя из этого вычисли порядок матрицы.

А как ето зделать!


Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
AlexanderДата: Вторник, 25.11.2008, 05:45 | Сообщение # 8
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
FileSize, порядок матрицы [sqrt(FileSize(...))]

Скажем дружно- нафиг нужно!
 
SeqularДата: Вторник, 25.11.2008, 06:46 | Сообщение # 9
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
snaper1993, Учитывая, что матрица квадратная(!), число строк будет равно числу столбцов. А значит общий размер сообщения равен их произведению. И представь, что размер сообщения нам известен, а число строк нужно найти. Как? Извлечением корня из размера. Почитай паскалевский хелп по функции FileSize и по sqrt. И кидай свои догадки сюда

Поддерживаю также проект сообщество молодых сисадминов
 
snaper1993Дата: Вторник, 25.11.2008, 07:33 | Сообщение # 10
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
Seqular, если чесно я ничего не понял с выше написаного!
Кагбудто на разных языках розговариваем!
Пожалуста напишы приблезительный код!


Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
AlexanderДата: Вторник, 25.11.2008, 08:01 | Сообщение # 11
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Quote (snaper1993)
Кагбудто на разных языках розговариваем!

это точно, давай уже на русский переходи tongue .


Скажем дружно- нафиг нужно!
 
snaper1993Дата: Вторник, 02.12.2008, 01:09 | Сообщение # 12
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
Alexander, хватит прикаловаться!
Я сёрйозно розговариваю а ти....!
Помогите с кодом пожалуйста!

Добавлено (01.12.2008, 18:09)
---------------------------------------------
Вот я зделал, тоже вроди всьо правильно, но когда пишешь не в одной строке то оно фиг зна што выдайот:

Code

var
    i,m,n,k,j: integer;
    x: char;
    a: array[1..5000]of char;
    f1,f2: text;
    b: real;
begin
    assign(f1,'z1.in');
    assign(f2,'z1.out');
    reset(f1);
    n:=0;i:=0;
    while not eof(f1) do
     begin
      while not eoln(f1) do
       begin
        inc(i);
        read(f1,x);
       if x=' ' then a[i]:='*' else a[i]:=x;
     end;
       readln(f1);
       end;
       a[i]:=a[i+1];
       writeln(a[16]);
    rewrite(f2);
    n:=i;
    b:=sqrt(n);
    writeln(n);
    k:=trunc(b);
    if k*k<n then m:=k+1;
    for i:=(n+1) to m*m do
     begin
      a[i]:='.';
     end;
    for i:=1 to m do
     begin
      j:=0;
      while j<=(m*m-1) do
       begin
        write(f2,a[j+i]);
        j:=j+m;
       end;
     end;
    close(f1);close(f2);
end.

Alexander, Seqular, помогите!


Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
SeqularДата: Вторник, 02.12.2008, 09:59 | Сообщение # 13
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
snaper1993, А ты разобрался почему такое происходит? Что значит не в одной строке? Что-то типа:
Code

фывлфыовлфыовлыовфыв
      ыфвыфвыфвфывывывывывыв

Запускай под отладкой с наблюдением переменной и посмотри, что там не так


Поддерживаю также проект сообщество молодых сисадминов
 
snaper1993Дата: Вторник, 02.12.2008, 16:07 | Сообщение # 14
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
Seqular, Да типа вот так!
Я не знаю как ето зделать можешь помоч!


Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
SeqularДата: Среда, 03.12.2008, 09:08 | Сообщение # 15
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Читай тут

Поддерживаю также проект сообщество молодых сисадминов
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;