Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2010, 10:19   #1
Pashka1
Новичок
Джуниор
 
Регистрация: 28.09.2010
Сообщений: 6
По умолчанию Вводим с клавиатуры предложение с пробелами, которое должно поменяется местами начало с концом.

Пожалуйста, помогите решить задачу
Вводим с клавиатуры предложение с пробелами, которое должно поменяется местами начало с концом.
вводим "Мама мыло раму " а надо "раму мыло мама"
Pashka1 вне форума Ответить с цитированием
Старый 28.09.2010, 10:30   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

http://www.programmersforum.ru/showt...369#post398369
Скидываешь строку в массив, а потом массив выводишь на экран в цикле от конца массива до начала.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.09.2010, 10:49   #3
Pashka1
Новичок
Джуниор
 
Регистрация: 28.09.2010
Сообщений: 6
По умолчанию

А можно по подробнее хоть часть тела программы написать.
Pashka1 вне форума Ответить с цитированием
Старый 28.09.2010, 11:44   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
хоть часть тела
Иди по ссылке - там сердце, руки и почка.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.09.2010, 12:19   #5
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Ну здесь не совсем, как по ссылке, хотя тоже с массивами


Код:
uses crt;
   var s1: string;
       mas: array [1..50] of string;
       n,i: byte;
BEGIN
   clrscr;
   writeln('Vvedite stroky');
   readln(s1);
   n:=length(s1);

   for i:=1 to n do {zapominaem poslednee slovo}
   begin
      if s1[i]=' ' then mas[1]:=copy(s1,i+1,n-i+1);
   end;
   for i:=n downto 0 do {zapominaem pervoe slovo}
   begin
      if s1[i]=' ' then mas[2]:=copy(s1,1,i);
   end;

   i:=length(s1)-(length(mas[1])+length(mas[1]));
   mas[3]:=copy(s1,(length(mas[2])),i); {kopiryem iz stroky krome 1 i posl slova}
   mas[4]:=mas[1]+mas[3]+mas[2]; {sobiraem stroky}

   writeln('---------------------------------');
   write(mas[4]);
   readln;
END.
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.

Последний раз редактировалось Stilet; 28.09.2010 в 12:52.
Niro вне форума Ответить с цитированием
Старый 28.09.2010, 12:57   #6
Pashka1
Новичок
Джуниор
 
Регистрация: 28.09.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Niro Посмотреть сообщение
Ну здесь не совсем, как по ссылке, хотя тоже с массивами


Код:
uses crt;
   var s1: string;
       mas: array [1..50] of string;
       n,i: byte;
BEGIN
   clrscr;
   writeln('Vvedite stroky');
   readln(s1);
   n:=length(s1);

   for i:=1 to n do {zapominaem poslednee slovo}
   begin
      if s1[i]=' ' then mas[1]:=copy(s1,i+1,n-i+1);
   end;
   for i:=n downto 0 do {zapominaem pervoe slovo}
   begin
      if s1[i]=' ' then mas[2]:=copy(s1,1,i);
   end;

   i:=length(s1)-(length(mas[1])+length(mas[1]));
   mas[3]:=copy(s1,(length(mas[2])),i); {kopiryem iz stroky krome 1 i posl slova}
   mas[4]:=mas[1]+mas[3]+mas[2]; {sobiraem stroky}

   writeln('---------------------------------');
   write(mas[4]);
   readln;
END.

что то она не работает
Pashka1 вне форума Ответить с цитированием
Старый 28.09.2010, 13:19   #7
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Что конкретно не работает?

Я ввожу - mama mila ramy
на выходе -ramy mila mama
----------------------
ввожу aaa bbb ccc
на выходе ccc bbb aaaa
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 28.09.2010, 13:27   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
что то она не работает
Воспользуйся примером что дал я по ссылке.
и допиши
Код:
 while count>0 do begin write(a[count]+' ');dec(count);end;
 readln;
Цитата:
Niro
И все же есть недочеты. Я ввожу:
Цитата:
Vvedite stroky
1 2 3 4 5
---------------------------------
5 2 3 4 1
I'm learning to live...

Последний раз редактировалось Stilet; 28.09.2010 в 13:29.
Stilet вне форума Ответить с цитированием
Старый 28.09.2010, 13:51   #9
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Цитата:
И все же есть недочеты.
Насколько я понял задание нужно в строке первое слово поставить на последнее место, а последнее на первое. Так в чём ошибка?

Хотя да, перечитал заново задание.
Тогда понятнее было написать не
Цитата:
которое должно поменяется местами начало с концом
, а "вывести предложение в обратном порядке". А из примера и моё решение правильное.
Хотя не спорю мой косяк тоже есть
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.

Последний раз редактировалось Stilet; 28.09.2010 в 14:16.
Niro вне форума Ответить с цитированием
Старый 28.09.2010, 14:07   #10
Pashka1
Новичок
Джуниор
 
Регистрация: 28.09.2010
Сообщений: 6
По умолчанию

А если предложение состоит не из трех слов а больше то не выходит
Pashka1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
У клавиатуры поменялись местами спец.символы. Revival001 Компьютерное железо 0 05.09.2010 13:52
Как уменьшить вес приложения, которое не должно показываться пользователю? TwiX Общие вопросы Delphi 29 03.03.2010 00:29
начало второй нарисованной линии должно передвинутся к началу первой. Delphi maddamo4ka Помощь студентам 7 08.12.2008 19:19