Статистика
Всего в нашей базе более 4 327 663 вопросов и 6 445 976 ответов!

С клавиатуры вводится строка, содержащая три слова, разделённые пробелом.Напишите программу, которая меняет местами второе и третье слово.Программу

5-9 класс

написать в PascalABC.

Ирина131986 30 янв. 2014 г., 13:49:53 (10 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
MaryMaryV
30 янв. 2014 г., 14:42:12 (10 лет назад)

Первая программа предназначена ТОЛЬКО для Pascal.ABC, в другой среде она работать не будет. Она самая короткая и простая. Метод Split разбивает исходную строку на слова по символу пробела и формирует динамический массив. Что бы мы ни вводили, мы всегда будем получать в результате то, что требовалось. (понятно, что если слов будет меньше трех, будем получать то, что ввели).

var
  s: string;
  ms: array of string;

begin
  Write('Введите три слова через пробел: ');
  Readln(s);
  ms := s.Split(' ');
  Writeln(ms[0] + ' ' + ms[2] + ' ' + ms[1])
end.

Вторая программа реализуется в любой версии Pascal. Её недостаток в том, что она правильно работает только тогда, когда введена фраза из трех слов, разделенных пробелом. Это простейший линейный алгоритм.

var
  s, s1, s2, s3: string;
  n, p: integer;

begin
  Write('Введите три слова через пробел: ');
  Readln(s);
  n := Length(s);
  p := Pos(' ', s);
  s1 := Copy(s, 1, p - 1);
  s3 := Copy(s, p + 1, n - p);
  p := Pos(' ', s3);
  s2 := Copy(s3, 1, p - 1);
  n := Length(s3);
  s3 := Copy(s3, p + 1, n - p);
  Writeln(s1 + ' ' + s3 + ' ' + s2)
end.

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

var
  s: string;
  ms: array[1..3] of string;
  i, n, p, j: integer;

begin
  Write('Введите три слова через пробел: ');
  Readln(s);
  {
  Алгоритм: Просматриваем все символы строки начиная с позиции p
  и при обнаружении пробела в позиции q заносим в массив очередное слово,
  копируя q-p символов, начиная с p. Затем заносим в p значение q+1
  и продолжаем просмотр. При старте принимаем p=1
  }
  p := 1; j := 0; n := Length(s);
  for i := 1 to n do
    if s[i] = ' ' then
    begin
      j := j + 1;
      if j <= 3 then begin{ если введено больше двух пробелов }
        ms[j] := Copy(s, p, i - p);
        p := i + 1
      end
    end;
  if j < 3 then ms[3] := Copy(s, p, n - p + 1);
  Writeln(ms[1] + ' ' + ms[3] + ' ' + ms[2])
end.

Все три программы опробованы и результаты их работы одинаковы:

Введите три слова через пробел: Зебра полосатая лошадь
Зебра лошадь полосатая



Ответить

Другие вопросы из категории

пожалуйста срочно помогите, очень прошу

тема у нас Организация ветвлений в Паскале. и так, вопрос:
дано трёхзначное число. если сумма цифр числа кратно 3, тогда перевернуть число, иначе обнулить среднюю цифру
очень срочно, кто может

Читайте также

1. Напишите программу, которая вводит трехзначное число и разбивает

его на цифры. Например, при вводе числа 123 программа должна
вывести 1, 2, 3.
2. Напишите программу, которая вводит возраст человека (число, не
превосходящее 120) и выводит на экран этот возраст со словом «»год,
«года» , «лет» . например «21 год», «22 года», «15 лет»

Помогите пожалуйста !!!!

1)Напишите программу,которая запрашивает значения двух переменных и выводит их разность.Приглашение к вводу каждого числа произведите в отдельных

строках.Вывод результата сопроводите пояснениями
2)Напишите программу ввода трех величин( А,В,С) на одной строке,рассчитайте и выдайте на экран на отдельной строке значение выражения: (А*В)/3,14 +3С.
3)Напишите программу вычисления длины окружности и площади круга одного и того же заданного радиуса R.
Решать на паскале...Помогите пожалуйста(((

помогите пожалуйста..очень надо....что нибудь из этих задач..1)написать программу которая поменяет местами первую и последнюю букву в слове. 2)написать

программу которая вставит между буквами веденного слова пробелы 3)написать программу вывода на экран деление двух чисел

5-9 класс информатика ответов нет


Вы находитесь на странице вопроса "С клавиатуры вводится строка, содержащая три слова, разделённые пробелом.Напишите программу, которая меняет местами второе и третье слово.Программу", категории "информатика". Данный вопрос относится к разделу "5-9" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.