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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2013, 14:14   #1
Jamguranga
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 48
По умолчанию Задача, зеркальное отображение

Пожалуйста, помогите с задачей, я ввожу с клавиатуры предложение, а нужно вывести зеркально слова, которые имеют парное количество символов. У меня получается только считать слова со строки, подскажите как сделать? У меня есть идея параллельно считыванию слов поставить счётчик-массив, который будет считать кол-во символов, а потом просто сравнить значения этого массива, выводя только те слова, номер которых совпадает с номером счётчика, значение которого делится на 2 без остатка, как-то так
Jamguranga вне форума Ответить с цитированием
Старый 04.01.2013, 15:24   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Тоесть предложение :
Код:
А мама мыла рамку
Программулька же должна вывести :
Код:
мама мыла
?
Poma][a вне форума Ответить с цитированием
Старый 04.01.2013, 15:41   #3
Jamguranga
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 48
По умолчанию

да. именно так)
Jamguranga вне форума Ответить с цитированием
Старый 05.01.2013, 19:34   #4
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
По умолчанию

Наработки в студию!
hon вне форума Ответить с цитированием
Старый 05.01.2013, 20:29   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

ВНИМАНИЕ!
Poma][a
Цитата:
Тоесть предложение :
Код:


А мама мыла рамку

Программулька же должна вывести :
Код:


мама мыла

?
Jamguranga
Цитата:
да. именно так)
Но ведь в условии:
Цитата:
нужно вывести зеркально слова, которые имеют парное количество символов
Т.о.программа должна вывести так:
Цитата:
амам алым

Вроде так ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 05.01.2013, 23:08   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

ViktoR, гениально! Я то, сижу решаю совершенно другую задачу... Я то думал берем Текст
Код:
Аб в г де
, переворачиваем
Код:
ед г в бA
смотрим : в 1 слове 2 буквы, после переворота тоже 2 => выводим, и так далее..
Откуда я взял эту задачу-для меня тайна.. Может это так праздники сказались?
Цитата:
парное количество символов
А это как? Тоесть кол-во символов четно?
Poma][a вне форума Ответить с цитированием
Старый 05.01.2013, 23:52   #7
Андрей Коршов
 
Регистрация: 01.12.2012
Сообщений: 5
По умолчанию

var S,S_new:string;
i :integer;
begin
write ('Введите слово') ;
readln (S);
s_new:=' ';
for i:=1to length (S) do
s_new:=S[i]+S_new;
writeln(S_new);
readln;
end;
Андрей Коршов вне форума Ответить с цитированием
Старый 06.01.2013, 17:08   #8
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Андрей, не то Вы написали.. Может освобожусь предложу свой вариант..
Poma][a вне форума Ответить с цитированием
Старый 08.01.2013, 14:31   #9
Jamguranga
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 48
По умолчанию

для начала я пытался найти слова, в которых чётное кол-во символов, итак:
Код:
uses crt;
var
  s:string;
  a:array[1..200] of string;
  b:array[1..200] of string;
  i,count,n,max:integer;
Begin
 clrscr;
 read(s);
 count:=1;
 i:=1;
 n:=1;
         while (i<=length(s)) do
           begin
            if s[i]=' ' then
                begin
                 inc(count);
                 inc(i);

                    if (i-1) mod 2 = 0 then
                       begin
                          b[n]:=a[count];
                          max:=n;
                          inc(n);
                       end;
                       
                end;
       a[count]:=a[count]+s[i];
       inc(i);
 end;
 
 for n:=1 to max do
 writeln(b[n], ' ');


 readln
 end.
Но ничего не выводит... понять не могу почему, смотрел через дебаг, просто проходит 1 раз последний цикл и всё
Jamguranga вне форума Ответить с цитированием
Старый 08.01.2013, 15:14   #10
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Вот Вам решение "в лоб"
Код:
var
        s, word : string;
        i, j : Integer;

begin
        ReadLn (s);
        s := s + ' ';
        word := '';

        for i := 1 to Length(s) do
                if s[i] = ' ' then begin
                        if not (Odd(Length(word))) then begin
                                for j := Length(word) downto 1 do
                                        Write (word[j]);
                                WriteLn;
                        end;
                        word := '';
                end
                else
                        word := word + s[i]
end.
Это уже слегка хитрее
Код:
var
        s, word : string;
        i, j : Integer;

begin
        ReadLn (s);
        s := ' ' + s ;
        word := '';

        for i := Length(s) downto 1 do
                if s[i] = ' ' then begin
                        if not (Odd(Length(word))) then begin
                                        Write (word);
                                WriteLn;
                        end;
                        word := '';
                end
                else
                        word := word + s[i]
end.

Последний раз редактировалось Poma][a; 08.01.2013 в 15:18.
Poma][a вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зеркальное отображение.... Как сделать в строках Алексей Егораев Помощь студентам 5 02.03.2011 16:07
Зеркальное отображение и диагонали Lisёноk Помощь студентам 2 15.06.2010 16:52
Зеркальное отражение V@mpir Общие вопросы Delphi 3 15.09.2009 22:27
Зеркальное отображение элементов матрицы в паскале SEREG@ Помощь студентам 12 12.09.2008 15:54