М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Мария20684
Мария20684
06.03.2022 12:45 •  Информатика

Переделать из программы pascal в c# : шифр атбаш const s1=''; s2=''; var i,p: integer; s: string; begin write('введите текст: '); readln(s); for i: =1 to length(s) do begin p: =pos(s[i],s1); if p> 0 then s[i]: =s2[p] end; writeln('результат: ',s) end.

👇
Ответ:
simpleam
simpleam
06.03.2022
Цитата Из Вик.ипедии: "Правило шифрования 'Атбаш' состоит в замене i-й буквы алфавита буквой с номером n - i + 1, где n — число букв в алфавите".

На самом деле, n - i — смещение относительно первой буквы, которое будет иметь i-тая в алфавите буква после шифровки. Для того, чтобы получить номер буквы, нужно прибавить к смещению порядковый номер первой буквы. В случае с обычным алфавитом — 1. (А ещё можно делать наоборот: искать отрицательное смещение и прибавлять номер последнего элемента)

С программой все чуть-чуть посложнее (но не так, чтобы сильно). Номер символа в ней определяется не положением в алфавите, а используемой кодировкой. Обычно, символы идут в таблице кодировки друг за другом, но есть и исключения. Например, буква "ё" обычно идет отдельно от остального алфавита.

Программа читает стандартный ввод (клавиатура) построчно.
Если буквы латинские, достаточно простой арифметики с кодами символов и перевод результата в символьных формат.
Для русских символов выделена переменная, содержащая алфавит в правильном порядке (хотя можно было бы извернуться и решить первым но зачем?). Если символ подходит входит в один из двух алфавитов, то шифруется. Нет - выводится без изменений.

Программа будет работать до тех пор пока не будет введен символ с кодом 0 (Ctrl + @).


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace {
    class Program {
        static void Main(string[] args) {
            string buff,
                alfa = "", //алфавит
                key = new string(alfa.ToCharArray().Reverse().ToArray());//перевернутый алфавит
            bool isEnd = false;
            while (!isEnd) {
                Console.Write("Введите текст: ");
                buff = Console.ReadLine();
                Console.Write("Результат:     ");
                for (int i = 0; i < buff.Length; ++i) {
                    if (buff[i] == '\0') isEnd = true; //Выход?
                    if (buff[i] >= 'a' && buff[i] <= 'z')
                        Console.Write((char)('z' - buff[i] + 'a'));
                    else if (buff[i] >= 'A' && buff[i] <= 'Z')
                        Console.Write((char)('Z' - buff[i] + 'A'));
                    else if (buff[i] >= 'а' && buff[i] <= 'я' || buff[i] == 'ё')
                        Console.Write(key[alfa.IndexOf(buff[i])]);
                    else if (buff[i] >= 'А' && buff[i] <= 'Я' || buff[i] == 'Ё')                        Console.Write(key[alfa.ToUpper().IndexOf(buff[i])].ToString().ToUpper());
                    else
                        Console.Write(buff[i]);
                }
                Console.WriteLine();    Console.WriteLine();
            }
        }
    }
}
4,6(29 оценок)
Открыть все ответы
Ответ:
dived
dived
06.03.2022

Для начала переведем -16 в двоичную СС. Мы знаем ,что 16 это 2^4, значит двоичная запись будет: 10000(единица и 4 нуля).Теперь сделаем из прямого кода обратный(заменим единицы нулями и наоборот) и получим 01111(незначщий ноль можно убрать).

Теперь переведем -73 в двоичную СС, для этого будем делить 73 на 2 и записывать остатки от деления (остатки должны быть <2 и >=0), а затем записать число задом наперед ( смотрите фото ); При переводе получили: 1001001(прямой код) переведем в обратный -->0110110(первый незначщий ноль можно убрать);

ответ: -16=1111

            -73=110110


Написать числа (-16) и (-73) в двоичной системе (обратный код),
4,8(13 оценок)
Ответ:
AlisaSkun3
AlisaSkun3
06.03.2022

===== PascalABC.NET ====

begin

 var a := ArrRandom(25, 20, 100);

 a.Println.SortedDescending.Println

end.

===== Free Pascal =====

const

 n = 25;

var

 a: array[1..n] of integer;

 i, j, t: integer;

begin

 randomize;

 for i := 1 to n do

 begin  

   a[i] := random(81) + 20;

   write(a[i], ' ')

 end;

 writeln;

 // пузырьковая сортировка по убыванию

 for i := n - 1 downto 1 do

   for j := 1 to i do

     if a[j] < a[j + 1] then

     begin

       t := a[j];

       a[j] := a[j + 1];

       a[j + 1] := t

     end;

 // вывод результатов

 for i := 1 to n do

   write(a[i], ' ');

end.


Класс из 25 человек сдал экзамен, нужно составить рейтинг учеников по убыванию ( диапазон от 20 до 1
4,7(25 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ