Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Буквы алфавита 
:(
    Опции темы
Dov
Дата 21.7.2009, 23:04 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



Цитата(mes @  21.7.2009,  22:16 Найти цитируемый пост)
мне кажется тут и простого варианта будет достаточно :

Что-то мне подсказывает, что массивы, и всё такое прочее, использовать нельзя, иначе самым простым вариантом был бы такой:
Код
int main()
{
    cout << "A A b Q F\nB B c R G\nC C d S H\nD D e T I\n  E f   J\n        K\n        L\n";

    return 0;    
}



Это сообщение отредактировал(а) Dov - 21.7.2009, 23:07


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
mes
Дата 21.7.2009, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



вот так будет эстетичнее смотреться, заодно выход за пределы диапазона убрал :
Код

    for (char c=0;;++c)
    {
        unsigned i=0;
        for (unsigned j=0; j<ranges_row; ++j)
        {
            char c1 = ranges[j][1]-ranges[j][0];
            std::cout<< (c <= c1 ? char(ranges[j][0] + c) : ' ')<< "  ";

            if (c>c1) ++i;
        }
        std::cout<<std::endl;

        if (i<ranges_row) ; else break;

    }


Добавлено через 4 минуты и 9 секунд
Цитата(Dov @  21.7.2009,  22:04 Найти цитируемый пост)
  cout << "A A b Q F\nB B c R G\nC C d S H\nD D e T I\n  E f   J\n        K\n        L\n";

ну так это ручной расчет - вот это как раз вряд ли разрешено.



--------------------
PM MAIL WWW   Вверх
Dov
Дата 21.7.2009, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



Цитата(mes @  21.7.2009,  23:07 Найти цитируемый пост)
ну так это ручной расчет - вот это как раз вряд ли разрешено.

А так можно?
Код
int main()
{
    char * arr[] = { 
        "ABCD   ", 
        "ABCDE  ",
        "bcdef  ",
        "QRST   ",
        "FGHIJKL"
    };

    for( int i = 0; i < 7; i++ )
    {
        for( int j = 0; j < 5; j++ )
            cout << arr[j][i] << " ";
        cout << endl;
    }

    return 0;    
}




--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
mes
Дата 21.7.2009, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Dov @  21.7.2009,  22:16 Найти цитируемый пост)
А так можно?

а чем это не
Цитата(mes @  21.7.2009,  22:07 Найти цитируемый пост)
ручной расчет

?

P.S. Представьте что диапазоны должны задаваться в рантайме. :
или что один из диапазонов такой
Код

 '$' , '.'

smile


Это сообщение отредактировал(а) mes - 21.7.2009, 23:24


--------------------
PM MAIL WWW   Вверх
GoldFinch
Дата 21.7.2009, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



Код

#include <iostream>
#include <vector>

// каждый диапазон символов должен быть непустым
// каждый диапазон символов не должен включать " " (пробел)
template<typename T>
void foo(const T* from_, const T* to_, size_t n)
{   
   using namespace std;

   vector<T> its(from_,from_+n);
   vector<T> ends(to_,to_+n);
   typedef typename vector<T>::iterator iter_t;

   while (n)
   {
      //вывод
      for (iter_t i=its.begin(), e=its.end(); i!=e; ++i)
          cout<<" "<<*i;
      //инкремент
      for (iter_t i=its.begin(), e=its.end(); i!=e; ++i)
          if (*i!=' ') 
              ++(*i);
      //проверка порога
      for (iter_t i1=its.begin(), i2=ends.begin(), e1=its.end(); i1!=e1; ++i1, ++i2)
          if (*i1>*i2)
          {
              *i1=' ';
              --n;
          }
      cout<<endl;
   }
}

int main()
{
   foo("AAbQF","DEfTL",5);
   return 0;
}

http://codepad.org/murbcmkE

--------
for (iter_t i=its.begin(), e=its.end(); i!=e; ++i)
следовало бы заменить на BOOST_FOREACH или применить std::for_each + boost.lambda

Это сообщение отредактировал(а) GoldFinch - 21.7.2009, 23:31
PM MAIL ICQ   Вверх
Dov
Дата 21.7.2009, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



Вот это:
Код
char ranges [][2] = { 'A','D'
                    , 'A','E'
                    , 'b','f'
                    , 'Q','T'
                    , 'F','L'
                    };
 
всё-равно, что это:
Код
char* ranges [] = {   "AD"
                    , "AE"
                    , "bf"
                    , "QT"
                    , "FL"
                    };

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


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
GoldFinch
Дата 21.7.2009, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



Dov, считай что входные данные вводятся с клавиатуры

PM MAIL ICQ   Вверх
mes
Дата 21.7.2009, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Dov @  21.7.2009,  22:29 Найти цитируемый пост)
Так чем же этот массив лучше? 

ничем

Цитата(Dov @  21.7.2009,  22:29 Найти цитируемый пост)
А сделать из него такой, как я показал вообще труда не составляет, даже  в рантайме.  smile  

никто и не спорит.. Но из Вашего примера этого не следовало smile



--------------------
PM MAIL WWW   Вверх
Dov
Дата 21.7.2009, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



Цитата(GoldFinch @  21.7.2009,  23:31 Найти цитируемый пост)
Dov, считай что входные данные вводятся с клавиатуры

Ну и что? На что это влияет? Я просто  говорю, что массивы, векторы и т.д. в этой задаче использовать нельзя. Я так думаю...  smile 



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
mes
Дата 21.7.2009, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Dov @  21.7.2009,  22:35 Найти цитируемый пост)
Ну и что? На что это влияет? Я просто  говорю, что массивы, векторы и т.д. в этой задаче использовать нельзя. Я так думаю...  smile 

ну и на каком основании ? из выше приведенных Вами примеров этого также не следует.



--------------------
PM MAIL WWW   Вверх
Dov
Дата 21.7.2009, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



Цитата(mes @  21.7.2009,  23:37 Найти цитируемый пост)
ну и на каком основании ? из выше приведенных Вами примеров этого также не следует.


mes, я и не настаиваю.  smile Я высказал своё мнение и всё. 


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Dov
Дата 22.7.2009, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



Код
int main()
{
    char a = 'A';
    char b = 'A';
    char c = 'b';
    char d = 'Q';
    char e = 'F';
    char s = ' ';

    while( e <= 'L' )
    {
        cout << ( a > 'D' ? s : a++ ) << s
             << ( b > 'E' ? s : b++ ) << s
             << ( c > 'f' ? s : c++ ) << s
             << ( d > 'T' ? s : d++ ) << s
             << e++ << endl;
    }

    return 0;    
}



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0597 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.