Вопрос задан 25.07.2023 в 09:28. Предмет Информатика. Спрашивает Дубенская Полина.

Решить в Паскаль 1. Поменять местами слова в строках, состоящих из двух слов. 2.Даны три строки.

Вывести самую длинную строку. (Первая задача - линейный алгоритм, вторая - ветвление) ПРОШУ РЕБЯТА ПОЖАЛУЙСТА!!!
0 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.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, я помогу вам решить обе задачи в языке программирования Паскаль. Давайте начнем с первой задачи.

Задача 1. Поменять местами слова в строках, состоящих из двух слов:

pascal
program SwapWords; procedure SwapTwoWordStrings(var str: string); var spacePos: integer; firstWord, secondWord: string; begin spacePos := Pos(' ', str); if spacePos > 0 then begin firstWord := Copy(str, 1, spacePos - 1); secondWord := Copy(str, spacePos + 1, Length(str) - spacePos); str := secondWord + ' ' + firstWord; end; end; var inputString: string; begin WriteLn('Введите строку из двух слов:'); ReadLn(inputString); SwapTwoWordStrings(inputString); WriteLn('Результат:'); WriteLn(inputString); end.

Задача 2. Вывести самую длинную строку из трех заданных строк (с помощью ветвления):

pascal
program LongestString; function FindLongestString(str1, str2, str3: string): string; begin if (Length(str1) >= Length(str2)) and (Length(str1) >= Length(str3)) then FindLongestString := str1 else if Length(str2) >= Length(str3) then FindLongestString := str2 else FindLongestString := str3; end; var str1, str2, str3: string; longestStr: string; begin WriteLn('Введите три строки:'); ReadLn(str1); ReadLn(str2); ReadLn(str3); longestStr := FindLongestString(str1, str2, str3); WriteLn('Самая длинная строка:'); WriteLn(longestStr); end.

Теперь вы можете скопировать каждый из приведенных выше кодов в среду разработки Паскаль и запустить программы для проверки. В первой задаче вводите строки, состоящие из двух слов, а во второй задаче вводите три произвольные строки. Программы выполнат указанные действия и выведут результат на экран.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос