![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Scorpio |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 2.10.2006 Где: Россия, г. Санкт- Петербург Репутация: нет Всего: нет |
Такой вот вопрос:
Как организовать линейный циклический список с возможностью подсчета имеющихся элементов с заданным содержимым одного из полей? Просьба НЕ писать код под C++, так как программа должна работать в TurboC 2.0 Если возможно - развернутый комментарий. |
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
это вопрос в алгоритмы. там и теория, и развернутый комментарий может кто сделает, а здесь обсуждаются конкретные решения. Если есть проблемы с реализацией алгоритма на С, то код в студию. Посмотрим, исправим и т.д и т.п. |
|||
|
||||
| Scorpio |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 2.10.2006 Где: Россия, г. Санкт- Петербург Репутация: нет Всего: нет |
В алгоритмах вопрос не должен быть связан с языком программирования. А мне нужно именно под TurboC 2.0. А в Центре помощи то ли не могут помочь, то ли не хотят.
|
|||
|
||||
| V.A.KeRneL |
|
|||
![]() Vadim A. Kazantsev ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 3.12.2006 Где: Moscow, Russia Репутация: 1 Всего: 14 |
Возможно, я и смогу тебе помочь, если ты объяснишь, что подразумевается под словами «линейный циклический»! Если тебе нужет линейный список, от это одно. Тут встречный вопрос будет такой: односвязный или двусвязный? Если же нужна циклическая структура данных (т.е. свёрнутая в кольцо, у которой начало поисоединено к концу З.Ы. Но, интуитивно чувствую, что нужен просто список. Я прав? З.З.Ы. Также не плохо было бы привести желаемую структуру полей, чтобы можно было писать конкретный код. Абстрактный, конечно, можно и так... -------------------- «C'est un pense-creux d'ici. C'est le meilleur et le plus irascible homme du monde...» © Ф.М. Достоевский, «Бесы» ---/)/)---(\.../)---(\(\ --(':'=)---(=';'=)---(=':') (")(")..)-(").--.(")-(..(")(") |
|||
|
||||
| wnayk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
#include <iostream>
#include <windows.h> using namespace std; char* rus(const char* text); void Disk (char udk [],int pok,char aut [],char naz [],char god [],int kol); int kolvo (); struct Spisok *Loading (char udk [],int pok,char aut [],char naz [],char god [],int kol); void Load (Spisok **begin,char udk [],int pok,char aut [],char naz [],char god [],int kol); int Podchet (Spisok **begin); void Pech (Spisok **begin); void Exit (Spisok **begin); void Save (Spisok **begin); int ForFIO (char a[]); int ForCHIS (char a[]); void Poisk (Spisok **begin,char aut [],char naz []); int Srav (Spisok **begin, char udk[]); void Glavnoe_Menu (); void Vzyat_Knigu (Spisok **begin,char udk [],int pok,char aut [],char naz [],char god [],int kol); void Vozvrat_Knigi (Spisok **begin,char udk [],int pok,char aut [],char naz [],char god [],int kol); void Dobav (Spisok **begin,char udk [],int pok,char aut [],char naz [],char god [],int kol); int Perevod (char pl[]); /*__________ Создание Структуры__________*/ struct Spisok // Структура содержит данные лишь об одной книге! { char u[11]; // наименование int p; // Индикатор наличия данной книги в библиотеке char a[51]; // единица измерения char n[51]; // цена еденицы char g[5]; // дата последнего завоза int k; // Количество товара Spisok *next; }; /*___________ Главная Функция_____________*/ int main () { int a,b,d=0; FILE *fp; char abc[3]; Spisok *begin; char udk [11]; int pok=0; char aut [51]; char naz [51]; char god [5]; int kol=0; cout<<rus("------------МАГАЗИН С ОДНИМ ПРОДАВЦОМ------------")<<endl; fp=fopen ("data.txt","r"); if (fp==NULL) { Disk (udk,pok,aut,naz,god,kol); } else { fclose (fp); } /*_______ Загрузка Базы в Память______*/ begin=Loading(udk,pok,aut,naz,god,kol); metka: ; a=kolvo (); // Мы узнали количество карточек в картотеке b=Podchet (&begin); // Подсчет карточек в памяти cout<<rus("Записей в Базе на Диске: ")<<a<<endl; cout<<rus("Записей в Базе в Памяти: ")<<b<<endl<<endl; if (d) { cout<<rus("База товаров изменилась! Рекомендуется сохраниться!")<<endl; } /*________ Вызов функции "Главного окна" ___*/ Glavnoe_Menu (); do { cout<<rus("Ваш выбор: "); gets (abc); // получаем номер действия от пользователя cout<<rus("======================")<<endl; } while ((strlen(abc)==0)||(strlen(abc)>1)); /*________ Переключаем действия ____________*/ switch (abc[0]) { // добавить в базу case '1': { Dobav (&begin,udk,pok,aut,naz,god,kol); d=1; } break; // печать базы case '2': { Pech (&begin); } break; // взять книгу case '3': { Vzyat_Knigu (&begin,udk,pok,aut,naz,god,kol); d=1; break; } // вернуть книгу case '4': { Vozvrat_Knigi (&begin,udk,pok,aut,naz,god,kol); d=1; } break; // поиск книги case '5': { Poisk (&begin,aut,naz); break; } // сохранить изменения case '6': { do { cout<<rus("Сохраняем?")<<"(Y/N)"; gets (abc); } while ((strlen(abc)==0)||(strlen(abc)>1)); if ((abc[0]=='Y')||(abc[0]=='y')) // если юзер вводит 'y' или 'Y'.... { Save (&begin); // ...тогда вызываем функцию сохранения d=0; } else cout<<rus("Сохранения НЕ произошло!")<<endl; cout<<"***********************"<<endl; } break; // выйти из программы case '7': { do { cout<<rus("Выходим?")<<"(Y/N): "; gets (abc); } while ((strlen(abc)==0)||(strlen(abc)>1)); if ((abc[0]=='Y')||(abc[0]=='y')) // если юзер вводит "Y" или "y" { do { cout<<rus("Сохраняемся?")<<"(Y/N): "; gets (abc); } while ((strlen(abc)==0)||(strlen(abc)>1)); if ((abc[0]=='y')||(abc[0]=='Y')) { Save (&begin); d=0; } Exit (&begin); // Высвобождение всей картотеки из памяти } else // иначе cout<<rus(">>>>>>>>...Выход отменён...>>>>>>>>")<<endl; break; } break; // выполнять по умолчанию, если пользователь // введёт комманду, отличную от предложенных default: cout << rus("Невыполнимая команда!\n"); } /*___ возвращение к началу программы ___*/ goto metka; return 0; } /*___ Руссификатор ___*/ // т.к. консоль DOS читает корректно только char bufer[256]; // ASCII кириллицу, используем функцию char* rus(const char* text) // конвертации ANSI в ASCII для { // нормального отображения и работы CharToOem(text,bufer); // с русскими символами return bufer; } //////////////////////////////////////////////////////////////////////////// /*___ Начальное Формирование Базы ____*/ void Disk (char udk [],int pok,char aut [],char naz [],char god [],int kol) { pok=1; kol=1; FILE *fp; aut [0]='H'; udk [0]='0'; naz [0]='*'; god [0]='0'; aut [1]='l'; udk [1]='0'; naz [1]='*'; god [1]='0'; aut [2]='e'; udk [2]='0'; naz [2]='*'; god [2]='0'; aut [3]='b'; udk [3]='0'; naz [3]='*'; god [3]='0'; aut [4]='\0'; udk [4]='\0'; naz [4]='\0'; god [4]='\0'; fp=fopen ("data.txt","w"); fprintf (fp,"%s\n",udk); fprintf (fp,"%d\n",pok); fprintf (fp,"%s\n",aut); fprintf (fp,"%s\n",naz); fprintf (fp,"%s\n",god); fprintf (fp,"%d\n",kol); fclose (fp); } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /*___ Функция Подсчёта Количества Сохранённых Данных ____*/ int kolvo () { int k=0; // заводим счётчик char a[51]; FILE *f; f=fopen("data.txt","r"); while (!feof(f)) // пока не конец файла { fscanf(f,"%s",a); // считываем ко-во байт а k++; } fclose (f); return ((k-1)/6); } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /*___ Функция Загрузки Данных из Базы _____*/ struct Spisok *Loading (char udk [],int pok,char aut [],char naz [],char god [],int kol) { int a=-1,b=0; FILE *fp; Spisok *aa; // указатель на 1-й объект Spisok *d; // указатель на 2-й объект fp=fopen ("data.txt","r"); /* чтение данных из файла*/ fscanf(fp,"%s",udk); fscanf(fp,"%d",&pok); fscanf(fp,"%s",aut); fscanf(fp,"%s",naz); fscanf(fp,"%s",god); fscanf(fp,"%d",&kol); aa=new Spisok; // выделяем динамически память под 1-й объект /* копирование строк из файла во временную структуру*/ strcpy(aa->u,udk); aa->p=pok; strcpy(aa->a,aut); strcpy(aa->n,naz); strcpy(aa->g,god); aa->k=kol; aa->next=0; d=aa; a=kolvo (); b=1; while ((!feof(fp))&&(b<a)) { fscanf(fp,"%s",udk); fscanf(fp,"%d",&pok); fscanf(fp,"%s",aut); fscanf(fp,"%s",naz); fscanf(fp,"%s",god); fscanf(fp,"%d",&kol); Load (&d,udk,pok,aut,naz,god,kol); b++; } fclose (fp); cout<<rus("Загружено: ")<<b<<endl; return d; } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /*___ Функция Добавления к Концу при Загрузке _____*/ void Load (Spisok **begin,char udk [],int pok,char aut [],char naz [],char god [],int kol) { Spisok *t=*begin; Spisok *t1; Spisok *aa; while (t) { t1=t; t=t->next; } aa=new Spisok; /* копирование строк из файла во временную структуру*/ strcpy(aa->u,udk); aa->p=pok; strcpy(aa->a,aut); strcpy(aa->n,naz); strcpy(aa->g,god); aa->k=kol; aa->next=0; t1->next=aa; } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /*___ Функция Подсчёта Количества Данных в Памяти ______*/ int Podchet (Spisok **begin) { Spisok *t=*begin; int k=0; while (t) { k++; // ...увеличиваем счётчик t=t->next; } return k; } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /*___ Функция Печати Данных на Экран _____*/ void Pech (Spisok **begin) { Spisok *t=*begin; while (t) { cout<<rus("Наименивание товара: ")<<t->u<<endl; cout<<rus("Единица измерения: ")<<t->a<<endl; cout<<rus("Цена еденицы: ")<<t->n<<endl; cout<<rus("Дата последнего завоза: ")<<t->g<<endl; cout<<rus("Количество товара: ")<<t->k<<endl<<endl; t=t->next; } } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /*___ Функция Выхода из Программы ________*/ void Exit (Spisok **begin) { Spisok *t=*begin; Spisok *t1; int n=0; while (t) { t1=t->next; delete t; n++; t=t1; } cout<<rus("Выгружено: ")<<n<<endl<<endl; exit (0); } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /*___ Функция Сохранения в Файл __________*/ void Save (Spisok **begin) { int n=0; Spisok *t=*begin; Spisok *t1; FILE *fp; fp=fopen ("data.txt","w"); while (t) { t1=t->next; fprintf(fp,"%s\n",t->u); fprintf(fp,"%d\n",t->p); fprintf(fp,"%s\n",t->a); fprintf(fp,"%s\n",t->n); fprintf(fp,"%s\n",t->g); fprintf(fp,"%d\n",t->k); t=t1; n++; } cout<<rus("Сохранено: ")<<n<<endl<<endl; fclose (fp); } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /*___ Функция Индикации Чисел ___________*/ int ForCHIS (char a[]) { int i,n=0; n=strlen (a); for (i=0;i<n;i++) { if (((a[i]<'0')||(a[i]>'9'))&&(a[i]!=':')) { return 1; } } return 0; } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /*___ Функция Индикации Слов ____________*/ int ForFIO (char a[]) { int i,n=0; n=strlen (a); for (i=0;i<n;i++) { if (((a[i]<'A')||(a[i]>'Z'))&&((a[i]<'a')||(a[i]>'z'))) { return 1; } } return 0; } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /*___ Функция Сравнения __________________*/ int Srav (Spisok **begin, char udk[]) { Spisok *t=*begin; int a=0; while (t) { a=strcmp(t->u,udk); if (a==0) { return 2; } else { t=t->next; } } return 0; } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /*___ Функция Главного Меню _______________*/ void Glavnoe_Menu () { cout<<rus("-----------Чего делать будем?----------")<<endl; cout<<rus("1 - Регистрация поступления товара")<<endl;//Добавить информацию о новой книге cout<<rus("2 - Посмотреть базу данных товаров")<<endl;//Просмотр содержимого базы данных cout<<rus("3 - Оформление покупки")<<endl;//Выдать книгу на руки cout<<rus("4 - Уценка товара и опись")<<endl;//Вернуть книгу в библиотеку cout<<rus("5 - Посмотреть инвентарь товаров")<<endl;//Выполнить запрос о наличии книги cout<<rus("6 - Сохранить изменения")<<endl;//Сохранить изменения cout<<rus("7 - Выйти из программы")<<endl;//Выйти из программы } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /*___ Функция Поиска ______________________*/ void Poisk (Spisok **begin,char aut [],char naz []) { int a=0,k=0,l=0, dlina,d=0; Spisok *t=*begin; Spisok *t1; do { cout<<rus("Укажите наименование товара: "); gets (aut); // получаем данные с клавиатуры a=ForFIO (aut); dlina=strlen(aut); // сверяем размер if (a) { cout << rus("ОШИБКА! Недопустимый символ!\n"); } } while ((dlina==0)||(dlina>50)||(a)); do { cout << rus("Укажите название книги: "); gets (naz); dlina=strlen(naz); } while ((dlina==0)||(dlina>50)); while (t) { t1=t->next; k=strcmp(t->a,aut); l=strcmp(t->n,naz); if ((k==0)&&(l==0)) { d=1; cout<<"\n"<<rus("*** Книга Найдена! ***")<<endl; cout<<rus("год издания: ")<<t->g<<endl; cout<<rus("количество в наличии: ")<<t->k<<endl; } t=t1; } if (d==0) { cout<<rus("ТАКОГО ТОВАРА НЕ НАЙДЕНО!\n")<<endl; } } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /*___ Функция "Выдать Книгу На Руки" _________*/ void Vzyat_Knigu (Spisok **begin,char udk [],int pok,char aut [],char naz [],char god [],int kol) { int a=0,k1=0,l=0,m=0, dlina,d=0,chetchik=0; Spisok *t=*begin; Spisok *t1; do { cout << rus("Укажите автора: "); gets (aut); a=ForFIO (aut); dlina=strlen(aut); if (a) { cout<<rus("ОШИБКА! Недопустимый символ!")<<endl; } } while ((dlina==0)||(dlina>50)||(a)); do { cout << rus("Укажите название книги: "); gets (naz); // получаем dlina=strlen(naz); // проверяем } while ((dlina==0)||(dlina>50)); // выполнять пока =0 или больше 50 while (t) { t1=t->next; k1=strcmp(t->a,aut); l=strcmp(t->n,naz); if ((k1==0)&&(l==0)) { d=1; strcpy(god,t->g); strcpy(udk,t->u); t->p=0; break; } t=t1; } t=*begin; while (t) { t1=t->next; k1=strcmp(t->a,aut); l=strcmp(t->n,naz); m=strcmp(t->g,god); if ((k1==0)&&(l==0)&&(m==0)&&((t->p)==1)) { chetchik=chetchik-1; // Количество книг уменьшилось на 1 } t=t1; } t=*begin; while (t) { t1=t->next; k1=strcmp(t->a,aut); l=strcmp(t->n,naz); m=strcmp(t->g,god); if ((k1==0)&&(l==0)&&(m==0)&&((t->p)==1)) { t->k=chetchik; // Применяем изменения } t=t1; } if (d==0) { cout<<rus("Такой книги нет в наличии!")<<endl; cout<<"^^^^^^^^^^^^^^^^^^^^^^^^^^^^"<<endl; } cout<<rus("Произведена выдача книги с номером УДК: ")<<udk<<endl; } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /*___ Функция "Возврат Книги в Библиотеку" _______*/ void Vozvrat_Knigi (Spisok **begin,char udk [],int pok,char aut [],char naz [],char god [],int kol) { int a=0,k1=0,l=0,m=0, dlina,d=0,chetchik=0; Spisok *t=*begin; Spisok *t1; do { cout<<rus("Укажите УДК книги: "); gets (udk); a=ForCHIS (udk); dlina=strlen(udk); if (a) { cout<<rus("ОШИБКА! Недопустимый символ!\n"); } } while ((dlina==0)||(dlina>10)||(a)); while (t) { t1=t->next; k1=strcmp(t->u,udk); if (k1==0) { d=1; strcpy(aut,t->a); strcpy(god,t->g); strcpy(naz,t->n); t->p=1; break; } t=t1; } t=*begin; while (t) { t1=t->next; k1=strcmp(t->a,aut); l=strcmp(t->n,naz); m=strcmp(t->g,god); if ((k1==0)&&(l==0)&&(m==0)&&((t->p)==1)) { chetchik=chetchik+1; // Количество книг уменьшилось на 1 } t=t1; } t=*begin; while (t) { t1=t->next; k1=strcmp(t->a,aut); l=strcmp(t->n,naz); m=strcmp(t->g,god); if ((k1==0)&&(l==0)&&(m==0)&&((t->p)==1)) { t->k=chetchik; // Применяем изменения } t=t1; } if (d==0) { cout<<rus("Такой книги нет в наличии!")<<endl; } cout<<rus("Возвращена книга с номером: ")<<udk<<endl; } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /*____ Добавление в Базу ___________*/ void Dobav (Spisok **begin,char udk [],int pok,char aut [],char naz [],char god [],int kol) { int dlina=0,b=0,abc=1,a; char kol1 [11]; Spisok *pp; Spisok *aa=*begin; Spisok *t1; Spisok *t=*begin; do { cout<<rus("Укажите название товара: "); gets (aut); a=ForFIO (aut); dlina=strlen(aut); if (a) // если введены неправильные символы { cout<<rus("ОШИБКА! Недопустимый символ!\n"); } } while ((dlina==0)||(dlina>50)||(a)); // пока соответсвует длине и символам do { cout << rus("Укажите название книги: "); gets (naz); // получаем данные с клавиатуры dlina=strlen (naz); // проверяем длину строки } while ((dlina==0)||(dlina>50)); do { cout << rus("Укажите год издания: "); gets (god); a=ForCHIS (god); dlina=strlen(god); if (a) { cout << rus("ОШИБКА! Недопустимый символ!\n"); } } while ((dlina==0)||(dlina>4)||(a)); do { cout << rus("Укажите УДК данной книги: "); gets (udk); a=ForCHIS (udk); dlina=strlen(udk); if (a) { cout<<rus("ОШИБКА! Недопустимый символ!")<<endl; } abc=Srav (&aa,aut); if (abc) // проверяем УДК { cout<<rus("ОШИБКА! Вводимый иденфикационный номер уже занят!")<<endl; } } while ((dlina==0)||(dlina>10)||(a)||(abc)); do { cout<<rus("Укажите количество экземпляров: ")<<endl; gets (kol1); a=ForCHIS (kol1); dlina=strlen(kol1); if (a) { cout<<rus("ОШИБКА! Недопустимый символ!")<<endl; } } while ((dlina==0)||(dlina>10)||(a)); kol=Perevod (kol1); if(abc==0) { while (t) { t1=t; t=t->next; } pp=new Spisok; strcpy(pp->u,udk); pp->p=pok; strcpy(pp->a,aut); strcpy(pp->n,naz); strcpy(pp->g,god); pp->k=kol; pp->next=0; pp->next=0; t1->next=pp; } b=Podchet (&aa); cout<<rus("Количество данных: ")<<b<<endl<<endl; } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /*___ Функция Перевода Строки в Число*/ int Perevod (char pl[]) { int a=0,b; for (b=0;b<strlen (pl);b++) a=a*10+pl[b]-'0'; return a; } /////////////////////////////////////////////////////////////////////////// /*/=/=/=/=/=/=/=/=/=/.|...КОНЕЦ ПРОГРАММЫ...|.\=\=\=\=\=\=\=\=\=\=\=\=\*/// // Last update: 30.12.2005 03:12 /// /////////////////////////////////////////////////////////////////////////// |
|||
|
||||
| Scorpio |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 2.10.2006 Где: Россия, г. Санкт- Петербург Репутация: нет Всего: нет |
Я сам не совсем уверен (за это извиняюсь!
Однако я не очень понимаю что это значит.
Извиняюсь за тупой вопрос, но что такое структура полей? |
||||||
|
|||||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
Scorpio, это называется - "кольцевой список с барьером". Т.е. у него есть один фиксированный элемент ( всегда ) который не учитывается при подсчете, и указатель на следующий элемент которого указывает на первый в списке, ( указатель напредыдущий соответственно на этотэлемент, он, кстати, "барьер" называется ), и соответственно обстоят дела с указателем на предыдущий элемент у барьера. Такое решение ущественно упрощает реализацию списка ( и делает ее более эффективной ), т.к. не нужно делать проверку на ненулевость указателей у элементов списка
ЗЫ: элемент списка - имеется ввиду контейнер, естетственно, а не сами данные. --------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| Scorpio |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 2.10.2006 Где: Россия, г. Санкт- Петербург Репутация: нет Всего: нет |
ОК, Спасибо!
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 12 Всего: 459 |
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |