
Вопрос задан 05.07.2023 в 09:39.
Предмет Информатика.
Спрашивает Завальская Ангелина.
Помогите написать программу в Паскале Строки 1. Дана последовательность, содержащая до 5 слов, в
каждом из которых до 5 строчных латинских букв; между соседними словами — не менее одного пробела, за последним словом — точка. Напечатать все слова последовательности, предварительно преобразовав каждое из них по следующему правилу: 1) перенести первую букву в конец слова; 2) если слово нечетной длины, то удалить его среднюю букву.

Ответы на вопрос

Отвечает Горбенко Вова.
// PascalABC.NET 3.6.3
function Cnv(s: string): string;
begin
var n := s.Length;
if s[n] = '.' then begin
s := s[:n];
Dec(n)
end;
if n <= 1 then Result := s
else
begin
if n.IsOdd then begin
s := s[:n div 2 + 1] + s[n div 2 + 2:];
Dec(n)
end;
Result := s[n] + s[2:n] + s[1]
end
end;
begin
var a := ReadString.ToWords;
a.Select(s -> Cnv(s)).Print
end.



Отвечает Дробит Владислав.
PascalABC.NET
Ответ:
- begin
- var a := ReadString[:^1].ToWords;
- a.Transform(x -> x.Length.IsEven ? x?[2:]+x[1] : x?[2:x.Length div 2 + 1]+x?[x.Length div 2 + 2:]+x[1]);
- a.Print
- end.
Пример работы:




Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Конечно, вот пример программы на Паскале, который выполняет указанные вами задачи:
pascalprogram StringTransformation; const MaxWords = 5; MaxWordLength = 5; type TStringArray = array[1..MaxWords] of string; var Sequence: TStringArray; NumWords, i, j: integer; procedure TransformWord(var word: string); begin if Length(word) = 0 then Exit; // Переносим первую букву в конец слова word := Copy(word, 2, Length(word)) + word[1]; // Удаляем среднюю букву, если длина слова нечетная if Length(word) mod 2 = 1 then Delete(word, (Length(word) div 2) + 1, 1); end; begin // Ввод последовательности слов write('Введите количество слов (не более 5): '); readln(NumWords); if (NumWords <= 0) or (NumWords > MaxWords) then begin writeln('Неверное количество слов.'); Exit; end; writeln('Введите последовательность слов:'); for i := 1 to NumWords do readln(Sequence[i]); // Преобразование и вывод слов writeln('Преобразованные слова:'); for i := 1 to NumWords do begin TransformWord(Sequence[i]); writeln(Sequence[i]); end; readln; end.
Скопируйте этот код в среду разработки Паскаля и запустите программу. Она предоставит вам возможность ввести последовательность слов и выведет преобразованные слова в соответствии с заданными правилами.


Похожие вопросы
Топ вопросов за вчера в категории Информатика

Информатика 47

Информатика 33

Информатика 67

Информатика 18

Информатика 25

Информатика 563

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