• Предмет: Информатика
  • Автор: velikiumnik
  • Вопрос задан 2 года назад

Напишите программы на языке ПаскальABC для заданий 3 и 4 . Тема ,,Перебор в строковых велечинах"​

Приложения:

Ответы

Ответ дал: LRSM
1

PascalABC.NET

Задание 3:

  • ### RS.Split(' ').Sel(w → w[^1] in ',!?.' ? w[:^1]+'сла'+w[^1] : w+'сла').Pr

Задание 4:

  • ##
  • var lat := 'shh sh zh ch je jo ju ja a b v g d e z i j k l m n o p r s t u f h x c w " y '' q'.Split(' ');
  • var rus := 'щ ш ж ч е ё ю я а б в г д е з и й к л м н о п р с т у ф х х ц ш ъ ы ь э'.Split(' ');
  • var s := ReadString;
  • lat.ForEach((c,i) → begin
  •  s := s.Replace(c, rus[i]);
  •  s := s.Replace(c.ToUpper, rus[i].ToUpper)
  • end);
  • s.Print
Приложения:

velikiumnik: Слушай, можешь пожалуйста расписать 3 более подробно и просто . Очень прошу!
LRSM: ### — замена begin-end блока + подключение модуля SF (третья решетка). Можно не подключать, это исключительно для "укорочения" кода. RS = ReadString, Sel = Select, Pr = Print и пр.
LRSM: Значит. Сначала вызываем RS (ReadString), он запрашивает ввод строки с клавиатуры и возвращает полученное значение (типа string). Затем с помощью метода расширения Split разбиваем нашу строку на массив, используя указанный символ (' ') в качестве разделителя. Получаем массив слов (со знаками). Далее с помощью Sel (Select) проецируем каждый элемент массива по заданному правилу.
LRSM: Берем за обозначение элемента 'w'. Тогда, если последний символ нашего элемента (w[^1], первый с конца) находится в строке определённых знаков (',!?.'), то возвращаем (проецируем элемент как) срез слова до последнего символа (т.е. все символы кроме последнего) + 'сла' + этот последний символ.
LRSM: Иначе (т.е. если последний символ не находится среди указанных нами знаков), возвращаем сам исходный элемент (w) + 'сла'. После этого, с помощью Pr (Print) выводим элементы нашей полученной последовательности на экран, использую пробел в качестве разделителя.
velikiumnik: Спасибо огромное!
Вас заинтересует