Решить в Паскаль 1. Поменять местами слова в строках, состоящих из двух слов. 2.Даны три строки. Вывести самую длинную строку. (Первая задача - линейный алгоритм, вторая - ветвление) ПРОШУ РЕБЯТА ПОЖАЛУЙСТА!!!

Ответы

Ответ дал: DexelGamer
0

1.

Нам дана строка из двух слов. Например, 'ah-ha nanana'. Сначала найдем индекс пробела в этой строке. Это делает функция pos(s1, s). Она возвращает первый встретившийся индекс подстроки s1 в строке s. Если мы вызовем pos(' ', 'ah-ha nanana'), она вернет 6. Сохраним это значение в переменную space.

Функция copy(s, pos, n) возвращает подстроку строки s из n символов, которая начинается в pos. Для копирования первого слова нам нужно взять подстроку, которая начинается с первого символа и имеет длину space-1. Под номером space в строке находится пробел, а в space+1 - начало второго слова.

Таким образом, copy('ah-ha nanana', 1, space-1) вернет 'ah-ha', а copy('ah-ha nanana', space+1, length('ah-ha nanana')-space) - 'nanana'.


var

 s, s1, s2: string;

 space: longint;

begin

 readln(s);

 space := pos(' ', s);

 s1 := copy(s, 1, space - 1);

 s2 := copy(s, space + 1, length(s) - space);

 s := s2 + ' ' + s1;

 writeln(s);

end.


2.

Предположим, что первая введенная строка - самая длинная. Если вторая строка длиннее первой, изменим ответ. Если третья строка длиннее самой длинной из первых двух, изменим ответ.

Примечание: В переменной s мы сначала храним первую введенную строку, а после ввода - максимальную. Если нужно сохранить первую введенную строку, лучше хранить максимальную в отдельной переменной.

var

 s, s1, s2: string;

begin

 readln(s);

 readln(s1);

 readln(s2);

 if length(s1) > length(s) then s := s1;

 if length(s2) > length(s) then s := s2;

 writeln(s);

end.

Ответ дал: DexelGamer
0
Нам дана строка из двух слов. Например, 'ah ha'. Функция copy(s, pos, n) возвращает подстроку строки s из n символов, которая начинается в pos. Для копирования первого слова нам нужно взять подстроку, которая начинается в первом символе и имеет длину два. Третим в строке идет пробел, а четвертым - начало второго слова.
Ответ дал: DexelGamer
0
Таким образом, copy('ah ha', 1, 2) вернет 'ah', а copy('ah ha', 4, 2) - 'ha'.
Ответ дал: idolmcweazzy
0
а в первой задаче не надо указывать это ах ха
Ответ дал: DexelGamer
0
Oh, не заметил, что слова не всегда длины 2. Сейчас исправлю.
Ответ дал: DexelGamer
0
Исправил. Прошу прощения.
Вас заинтересует
2 года назад