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

Ответы 6

  • Нам дана строка из двух слов. Например, 'ah ha'. Функция copy(s, pos, n) возвращает подстроку строки s из n символов, которая начинается в pos. Для копирования первого слова нам нужно взять подстроку, которая начинается в первом символе и имеет длину два. Третим в строке идет пробел, а четвертым - начало второго слова.
  • Таким образом, copy('ah ha', 1, 2) вернет 'ah', а copy('ah ha', 4, 2) - 'ha'.
  • а в первой задаче не надо указывать это ах ха
    • Автор:

      august66
    • 5 лет назад
    • 0
  • Oh, не заметил, что слова не всегда длины 2. Сейчас исправлю.
    • Автор:

      kim
    • 5 лет назад
    • 0
  • Исправил. Прошу прощения.
    • Автор:

      nala82
    • 5 лет назад
    • 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.

    • Автор:

      dodger82
    • 5 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years