Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на языке Pascal


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Boriss
Статус: Академик
Рейтинг: 1557
∙ повысить рейтинг »
_Ayl_
Статус: Студент
Рейтинг: 1426
∙ повысить рейтинг »
Micren
Статус: Специалист
Рейтинг: 1403
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Pascal (Паскаль)

Номер выпуска:1004
Дата выхода:01.01.2010, 02:00
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:361 / 190
Вопросов / ответов:4 / 6

Вопрос № 175574: Добрый вечер, уважаемые эксперты! Требуется решить две задачи на турбопаскале Первая задача: Разработать криптографическую защиту информации с помощью алгоритма шифрования: шифр Уинстона, построить блок-схему алгоритма, написать программу деши...


Вопрос № 175626: Смоделировать бросание кубика (т.е. с помощью датчика случайных чисел получить одно из чисел 1,2,…,6) каждым из двух игроков. Определить, кто из игроков получил на кубике большое очков....
Вопрос № 175638: Помогите начинающей программистке, решить непонятную задачку. Надо Найти объединение множеств. (6','2','2','5','8'), ('3','5','9') спасибо...
Вопрос № 175642: Уважаемые эксперты, помогите, пожалуйста, решить задачу... Смоделировать бросание кубика (т.е. с помощью датчика случайных чисел получить одно из чисел 1,2,…,6) каждым из двух игроков. Оп...

Вопрос № 175574:

Добрый вечер, уважаемые эксперты! Требуется решить две задачи на турбопаскале

Первая задача: Разработать криптографическую защиту информации с помощью алгоритма шифрования: шифр Уинстона, построить блок-схему алгоритма, написать программу дешифрования.

Вторая задача: Разработать криптографическую защиту информации с помощью алгоритма шифрования: полибианский квадрат,построить блок-схему алгоритма,написать программу дешифрования.

Заранее большое Вам спасибо! Ответ нужен до обеда 24.11.09, иначе будут большие проблемы...

Отправлен: 23.12.2009, 23:01
Вопрос задал: Лобанов Александр, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает lamed, Практикант :
Здравствуйте, Лобанов Александр.
Добрый день. Код программы в приложении (разработчик Зенченко Константин Николаевич).
Источник
Адрес блок-схемы175574.zip (19.7 кб)
Блок-схема подготовлена с помощью программы
BlsEditor Автор: Быстрицкий Владимир

В настоящее время в литературе есть и другие трактовки как шифра Полибия, так и шифра Уитстона.
Шифр Полибия
© Цитата:
В Древней Греции (II в. до н. э.) был известен шифр, называемый квадрат Полибия. Это устройство представляло собой квадрат 5 х 5, столбцы и строки которого нумеровали цифрами от 1 до 5. В каждую клетку этого квадрата записывалась одна буква. (В греческом варианте од- на клетка оставалась пустой, в латинском – в одну клетку помещали две буквы i и j.) В результате каждой букве отвечала пара чисел и шифрован- ное сообщение превращалось в последовательность пар чисел. Пример 1. 13 34 22 24 44 34 15 42 22 34 43 45 32 Это сообщение записано при использовании латинского варианта квад- рата Полибия, в котором буквы расположены в алфавитном порядке. ("Cogito, ergo sum" – лат, "Я мыслю, следовательно существую").


Ю.А.Гатчин, А.Г.Коробейников. Основы криптографических алгоритмов. Учебное пособие. СПБ: ГИТМО (ТУ)
Википедия
Исходник на Pascal
Practical cryptography

Шифр Уитстона
Handbook of Applied Cryptography
by A.Menezes. Chapter 7, Example. 7.51, CRC Press, 1996

Приложение:

Ответ отправил: lamed, Практикант
Ответ отправлен: 31.12.2009, 13:37

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 258288 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 175626:

    Смоделировать бросание кубика (т.е. с помощью датчика случайных чисел получить одно из чисел 1,2,…,6) каждым из двух игроков. Определить, кто из игроков получил на кубике большое очков.

    Отправлен: 26.12.2009, 19:56
    Вопрос задал: maksim0390
    Всего ответов: 2
    Страница вопроса »


    Отвечает Ковалев Никита Викторович, 2-й класс :
    Здравствуйте, maksim0390.
    ну как-то так:

    Приложение:

    Ответ отправил: Ковалев Никита Викторович, 2-й класс
    Ответ отправлен: 26.12.2009, 20:40

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 258145 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Мироненко Николай Николаевич, Студент :
    Здравствуйте, maksim0390.

    Предлагаю этот вариант решения:

    Код:
    program Kubik;    {название программы}
    uses crt; {подключаем модуль для работы с функциями clrscr и readkey}

    var
    Name1, Name2 : String[12]; {строки имен}
    Score1, Score2 : Byte; {переменные для хранения значения очков}
    I, CurrSc : Byte; {переменная счётчик(I) и переменная текущего выпавшего очка}

    BEGIN {начинаем программу}
    clrscr; {функция очистки экрана}
    randomize; {для работы генератора псевдослучайных чисел}

    Writeln;
    Write(' Введите имя первого игрока : ');
    Readln(Name1); {ввод имени с клавиатуры}
    Write(' Введите имя второго игрока : ' ;);
    Readln(Name2); {ввод имени с клавиатуры}

    Writeln;

    For I := 1 to 12 do {цикл выполняется 12 раз}
    begin
    if Odd(I) then {если I нечётный значит очередь игрока #1}
    begin
    Write(' ',Name1,' бросает кубик...');
    CurrSc := Random(6) + 1; {генерируем число текущего броска и сохраняем его в переменной текущего очка}

    Score1 := Score1 + CurrSc; {суммируем очки}
    Write(' Выпало ',CurrSc,' очков ');
    Readln; {ожидание нажатия клавиши Enter}
    end
    else
    begin
    Write(' ',Name2,' бросает кубик...');
    CurrSc := Random(6) + 1; {генерируем число текущего броска и сохраняем его в переменной текущего очка}

    Score2 := Score2 + CurrSc; {суммируем очки}
    Write(' Выпало ',CurrSc,' очков ');
    Readln; {ожидание нажат ия клавиши Enter}
    end;
    end;

    Writeln;
    Writeln(' Итоги: ');
    Writeln(' Игрок ',Name1,' ',Score1,' оч.');
    Writeln(' Игрок ',Name2,' набрал ',Score2,' оч.');
    Writeln;
    {подводим итоги}
    if Score1 < Score2 then Writeln(' Победил игрок ***',Name2,'*** ');
    if Score1 > Score2 then Writeln(' Победил игрок ***',Name1,'*** ');
    if Score1 = Score2 then Writeln(' Ничья ');
    readkey; {ожидание нажатия клавиши}
    END.


    KUBIK.PAS (1.2 кб)

    Результат работы программы:


    Если возникнут вопросы - пишите в мини-форум. Удачи

    Ответ отправил: Мироненко Николай Николаевич, Студент
    Ответ отправлен: 27.12.2009, 02:38

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 258163 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 175638:

    Помогите начинающей программистке, решить непонятную задачку. Надо
    Найти объединение множеств.
    (6','2','2','5','8'), ('3','5','9')
    спасибо

    Отправлен: 26.12.2009, 22:31
    Вопрос задал: Lena Nikulina, Посетитель
    Всего ответов: 1
    Страница вопроса »


    Отвечает Пупорев Юрий Борисович, Специалист :
    Здравствуйте, Lena Nikulina!
    Решение в приложении.

    Приложение:

    Ответ отправил: Пупорев Юрий Борисович, Специалист
    Ответ отправлен: 26.12.2009, 22:40

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 258150 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 175642:

    Уважаемые эксперты, помогите, пожалуйста, решить задачу...
    Смоделировать бросание кубика (т.е. с помощью датчика случайных чисел получить одно из чисел 1,2,…,6) каждым из двух игроков. Определить, кто из игроков получил на кубике большое очков.

    Отправлен: 27.12.2009, 00:01
    Вопрос задал: Житков Максим Петрович, Посетитель
    Всего ответов: 2
    Страница вопроса »


    Отвечает LfiN, 7-й класс :
    Здравствуйте, Житков Максим Петрович.
    Программа написана и проверена на Free Pascal.
    Код программы:
    Код:
    program q175642;
    var a,b: Integer;
    begin
    Randomize;
    {Присваеваем случайное число в интервале от 1 до 6}
    a:=1+random(6);
    b:=1+random(6);
    Write('Первому игроку выпало ',a);
    WriteLn;
    Write('Второму игроку выпало ',b);
    Writeln;
    if a>b then writeln('Первый игрок выиграл!') else
    if a<b then writeln('Второй игрок выиграл!') else
    writeln('Ничья!');
    WriteLn('Для завершения нажмите ENTER...');
    Readln;
    end.
    Файл и скриншо т результата прикреплены к ответу. Прикрепленный файл: загрузить »

    Ответ отправил: LfiN, 7-й класс
    Ответ отправлен: 27.12.2009, 01:16

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 258156 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Мироненко Николай Николаевич, Студент :
    Здравствуйте, Житков Максим Петрович.

    Решение ниже. Предполагается, что каждый игрок должен бросить кубик по 6 раз, но вы можете изменить это значение...

    Код:
    program Kubik;    {название программы}
    uses crt; {подключаем модуль для работы с функциями clrscr и readkey}

    var
    Name1, Name2 : String[12]; {строки имен}
    Score1, Score2 : Byte; {переменные для хранения значения очков}
    I, CurrSc : Byte; {переменная счётчик(I) и переменная текущего выпавшего очка}

    BEGIN {начинаем программу}
    clrscr; {функция очистки экрана}
    randomize; {для работы генератора псевдослучайных чисел}

    Writeln;
    Write(' Введите имя первого игрока : ');
    Readln(Name1); {ввод имен и с клавиатуры}
    Write(' Введите имя второго игрока : ');
    Readln(Name2); {ввод имени с клавиатуры}

    Writeln;

    For I := 1 to 12 do {цикл выполняется 12 раз}
    begin
    if Odd(I) then {если I нечётный значит очередь игрока #1}
    begin
    Write(' ',Name1,' бросает кубик...');
    CurrSc := Random(6) + 1; {генерируем число текущего броска и сохраняем его в переменной текущего очка}

    Score1 := Score1 + CurrSc; {суммируем очки}
    Write(' Выпало ',CurrSc,' очков ');
    Readln; {ожидание нажатия клавиши Enter}
    end
    else
    begin
    Write(' ',Name2,' бросает кубик...');
    CurrSc := Random(6) + 1; {генерируем число текущего броска и сохраняем его в переменной текущего очка}

    Score2 := Score2 + CurrSc; {суммируем очки}
    Write(' Выпало ' ;,CurrSc,' очков ');
    Readln; {ожидание нажатия клавиши Enter}
    end;
    end;

    Writeln;
    Writeln(' Итоги: ');
    Writeln(' Игрок ',Name1,' ',Score1,' оч.');
    Writeln(' Игрок ',Name2,' набрал ',Score2,' оч.');
    Writeln;
    {подводим итоги}
    if Score1 < Score2 then Writeln(' Победил игрок ***',Name2,'*** ');
    if Score1 > Score2 then Writeln(' Победил игрок ***',Name1,'*** ');
    if Score1 = Score2 then Writeln(' Ничья ');
    readkey; {ожидание нажатия клавиши}
    END.


    Исходный код: KUBIK.PAS (1.3 кб)

    Результаты работы программы:


    Я думаю программа Вас устроит, будут воп росы - спрашивайте в мини-форуме. С наступающим
    Редактирование ответа по просьбе эксперта.
    -----
    ∙ Отредактировал: Николай Владимирович / Н.В., Старший модератор
    ∙ Дата редактирования: 27.12.2009, 06:20 (время московское)

    Ответ отправил: Мироненко Николай Николаевич, Студент
    Ответ отправлен: 27.12.2009, 01:26

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 258158 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.13 от 28.12.2009

    В избранное