В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
satokostanay
satokostanay
15.07.2020 13:13 •  Информатика

ДЕВОЧКЕ РЕШИТЬ ЗАДАЧУ В ПИТОНЕ Дана строка-предложение на русском языке. Преобразовать строку так, чтобы
каждое слово начиналось с заглавной буквы. Словом считать набор символов, не
содержащий пробелов и ограниченный пробелами или началом/концом строки.
Слова, не начинающиеся с буквы, не изменять.

Показать ответ
Ответ:
Masa113
Masa113
16.11.2020 18:15
Цитата Из Вик.ипедии: "Правило шифрования 'Атбаш' состоит в замене 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();
            }
        }
    }
}
0,0(0 оценок)
Ответ:
morozhenkom
morozhenkom
26.09.2021 04:34
Программа посимвольно читает стандартный ввод (клавиатура) и выбирает только цифры - все остальное игнорируется. Как результат, получает последовательность из натуральных чисел. Для завершения ввода нужно ввести "0". Любые символы после 0 считаны не будут.
\\\\\\\\\\\\\\\\\\\
using System;
namespace sequen {
    class Program {
        static string seq() {
            string res = "";
            char symb;
            while ((symb = (char)Console.Read()) != ' ' && symb != '\n') {
                if (symb >= '0' && symb <= '9')
                    res += symb.ToString();
            }
            if (res == "") return seq(); //Если ни один символ не подошел
            if (res != "0") return seq() + res + " "; // Если число считано
            else return ""; // Если конец
        }
        static void Main(string[] args) {
            Console.Write("Введите последовательность: ");
            Console.WriteLine("Результат: {0}", seq());
            Console.ReadKey();
        }
    }
}
Написать рекурсивную процедуру для ввода с клавиатуры последовательности чисел(окончание ввода-0) и
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота