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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Строки 
:(
    Опции темы
mgkit
Дата 11.6.2009, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Задание обширнее, но у меня не получается только findPRICE. Если пользуюсь gets, то даже не заставляет вводить строку, если другими, то не сравнивает... А первый метод "Бинарный" вообще не работает... помогите.
Задание:
Описать структуру с именем PRICE, содержащую следующие поля:
-     название товара;
-     название магазина, в котором продается товар;
-     стоимость товара в руб.
Написать программу, выполняющую следующие действия:
-     ввод с клавиатуры данных в массив, состоящий из восьми элементов типа PRICE;
-      записи должны быть размещены в алфавитном порядке по названиям товаров;
-     вывод на экран информации о товаре, название которого введено с клавиатуры;
-     если таких товаров нет, выдать на дисплей соответствующее сообщение.

Код

#include<conio.h>
#include<iostream.h>
#include<stdio.h>
#include<math.h>

struct price {
char namewares[30];
char shopname[30];
int pricewares;
 };

void enterPRICE(price *p, int n)
{
int i;
for (i=0; i<n; i++)
 {
  cout<<"Please, enter name wares"<<endl;
  cin>>p[i].namewares;
  cout<<"Please, enter name shop"<<endl;
  cin>>p[i].shopname;
  cout<<"Please, enter price wares"<<endl;
  cin>>p[i].pricewares;
 }
}

void recursia (price *p, int j, int i)
{
 j++;
 price per;
 if(p[i].shopname[j]>p[i+1].shopname[j])
  {
   per=p[i];
   p[i]=p[i+1];
   p[i+1]=per;
  }
 else if(p[i].shopname[j]==p[i+1].shopname[j])
  recursia (p, j, i);

}

void sortPRICE(price *p,int n)
{
int i,j;
price shop;
  for (i=0; i<(n-1); i++)
   {
    j=0;
    if(p[i].shopname[j]>p[i+1].shopname[j])
     {
    shop=p[i];
        p[i]=p[i+1];
        p[i+1]=shop;
     }
    else if(p[i].shopname[j]==p[i+1].shopname[j])
     recursia (p, j, i);
   }
}

/*bool rmiddle (price *p, char findshopname[30], int middle, int i)
{
 i++;
 if (findshopname[i]>p[middle].shopname[i])
  return(true);
 else if (findshopname[i]<p[middle].shopname[i])
  return(false);
 else if (findshopname[i]=NULL)
  return(false);
 else return(rmiddle(p, findshopname, middle, i));
}

bool fmiddle(price *p, char findshopname[30], int middle)
{
 int i=0;
 if (findshopname[i]>p[middle].shopname[i])
  return(true);
 else if (findshopname[i]<p[middle].shopname[i])
  return(false);
 else return(rmiddle(p, findshopname, middle, i));
}


void findPRICE(price *p,int n)
{
 char findshopname[30];
 int start,middle,end;
  cout<<"Please, enter shop name "<<endl;
  cin>>findshopname;
 start=-1;
 end=n+1;
  while ( end - start >1)
   {
    middle=(start+end)/2;
    if ( fmiddle(p, findshopname, middle) == true)
     start=middle;
    else end=middle;
   }
 if ( findshopname!=p[end].shopname )
  cout<<"Not find"<<endl;
 else{
   cout <<(end+1)<<" Wares"<<endl;
   cout <<"namewares "<<p[end].namewares<<endl;
   cout <<"shopname "<<p[end].shopname<<endl;
   cout <<"pricewares "<<p[end].pricewares<<endl;
  }
 getch();
} */

void findPRICE(price *p,int n)
{
 char findshopname[30];
 int i,j;
  cout<<"Please, enter shop name "<<endl;
  cin>>findshopname;
 for (i=0; i<n; i++)
    if (findshopname==p[i].shopname) {
     cout <<(i+1)<<" Wares"<<endl;
     cout <<"namewares "<<p[i].namewares<<endl;
     cout <<"shopname "<<p[i].shopname<<endl;
     cout <<"pricewares "<<p[i].pricewares<<endl;
   }
}

void readPRICE(price *p,int n)
{
for (int i=0; i<n; i++)
 {
  cout <<(i+1)<<" Wares"<<endl;
  cout <<"namewares "<<p[i].namewares<<endl;
  cout <<"shopname "<<p[i].shopname<<endl;
  cout <<"pricewares "<<p[i].pricewares<<endl;
 }
getch();
}

main ()
{
clrscr();
int a,n;
cout <<"please, enter quiment elemnt of PRICE "<<endl;
cin>>n;
price *p =new price [n];
    while (a!='0')
    {
    cout<<"1 - enterPRICE"<<endl;
    cout<<"2 - sortPRICE"<<endl;
    cout<<"3 - findPRICE"<<endl;
    cout<<"4 - readPRICE"<<endl;
    cout<<"0 - Exit"<<endl;
    switch(a = getch())
    { case '1': enterPRICE(p,n); break;
      case '2': sortPRICE(p,n) ; break;
      case '3': findPRICE(p,n); break;
      case '4': readPRICE(p,n); break;
      case '0': break;
          default: cout<<"Please, write new simbul!"<<endl; break;
         }
        }
}



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


Кодофей
****


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

Репутация: 10
Всего: 33



mgkit, Ты уже определись. Либо пишешь на С, либо на С++.
Вот. Недавно студику делал. Принцип тот же, но хранимые объекты другие. Поправь, и будет тебе счастье!
Код


#include <io.h>
#include <conio.h>
#include <sys/stat.h>

#include <windows.h>

#include <ctime>
#include <cstdlib>
#include <cstdio>
#include <vector>
#include <string>
#include <iostream>
#include <algorithm>

using namespace std;

static const string _name = "base.";
static const string _bext  = "bin";
static const string _text  = "txt";
static bool _binary = true;

/***************************************************************************/
/* Строка должна содержать две точки, пробел, двоеточие */
bool is_valid_time_string(const string& s) {
    return (    count(s.begin(), s.end(), '.')==2 &&
                count(s.begin(), s.end(), ' ')==1 &&
                count(s.begin(), s.end(), ':')==1
            );
}

/***************************************************************************/

class MyTime {
public:
    MyTime() { reset(); }
    MyTime(const string& s) { from_string(s); }
    /*  */
    bool from_string(const string& s) {
        if ( !is_valid_time_string(s) ) return false;
        sscanf(s.c_str(), "%d.%d.%d %d:%d", &day, &month, &year, &hour, &minutes);
        return true;
    }
    string to_string() const {
        char buf[128] = "\0";
        sprintf(    buf, "%02d.%02d.%04d %02d:%02d",
                    day, month, year, hour, minutes);
        return string(buf);
    }
    void reset() { month=day=year=hour=minutes=0; }
    /*  */
    int month;
    int day;
    int year;
    int hour;
    int minutes;
};

/***************************************************************************/

class File {
public:
    enum Mode {read, write};
    /**/
    File():file(NULL) {}
    File(const char* name, Mode m) { open(name, m); }
    ~File() {fclose(file);}
    /*  */
    bool open(const char* fn, Mode m) {
        string mode = (m == read) ? "rb" : "wb";
        file = fopen(fn, mode.c_str());
        return file != NULL;
    }
    void close() { fclose(file); }
    /*  */
    bool at_end() const { return feof(file) != 0; }
    int size() const {
        struct stat stat;
        fflush(file);
        fstat(fileno(file), &stat);
        return stat.st_size;
    }
    /**/
    File& operator<< (int v) {
        fwrite(&v, 1, sizeof(v), file);
        return *this;
    }
    File& operator<< (const MyTime& v) {
        fwrite(&v, 1, sizeof(v), file);
        return *this;
    }
    File& operator<< (const string& v) {
        int len = strlen(v.c_str());
        *this << len;
        fwrite(v.c_str(), 1, len+1, file);
        return *this;
    }
    File& operator>> (int& v) {
        fread(&v, 1, sizeof(v), file);
        return *this;
    }
    File& operator>> (MyTime& v) {
        fread(&v, 1, sizeof(v), file);
        return *this;
    }
    File& operator>> (string& v) {
        int len = 0;
        *this >> len;
        v.clear();
        v.resize(len);
        fread((char*)v.c_str(), 1, len+1, file);
        return *this;
    }
    /*  */
    FILE* file;
};

/***************************************************************************/

class Item {
    friend File& operator<< (File&, const Item&);
    friend File& operator>> (File&, Item&);
public:
    Item() { num = 0; }
    Item(    int n,
            const string& fb,
            const string& fv,
            const string& d,
            MyTime in,
            MyTime out)
    {
        num = n;
        fiob = fb;
        fiov = fv;
        diagnoz = d;
        d_in = in;
        d_out = out;
    }
    Item(const Item& i) {
        num = i.num;
        fiob = i.fiob;
        fiov = i.fiov;
        diagnoz = i.diagnoz;
        d_in = i.d_in;
        d_out = i.d_out;
    }
    void clear() {
        fiob.clear();
        fiov.clear();
        diagnoz.clear();
        num = 0;
        d_in.reset();
        d_out.reset();
    }
    /**/
    int num;
    string fiob;
    string fiov;
    string diagnoz;
    MyTime d_in;
    MyTime d_out;
};

/***************************************************************************/

File& operator<< (File& fs, const Item& item) {
    if ( _binary ) {
        fs << item.num
            << item.fiob
            << item.fiov
            << item.diagnoz
            << item.d_in
            << item.d_out;
    } else {
        fprintf(fs.file, "%d#%s#%s#%s#%s#%s\n",
                    item.num, item.fiob.c_str(),
                    item.fiov.c_str(),
                    item.diagnoz.c_str(),
                    item.d_in.to_string().c_str(),
                    item.d_out.to_string().c_str()
                );
    }
    return fs;
}

File& operator>> (File& fs, Item& item) {
    if ( _binary ) {
        fs >> item.num
            >> item.fiob
            >> item.fiov
            >> item.diagnoz
            >> item.d_in
            >> item.d_out;
    } else {
        char buf[1024]  = "\0";
        char _num[128]  = "\0";
        char _fiob[128] = "\0";
        char _fiov[128] = "\0";
        char _diag[128] = "\0";
        char _d_in[128] = "\0";
        char _d_ou[128] = "\0";
        /*  */
        fgets(buf, sizeof(buf), fs.file);
        /* if buf id empty */
        if ( strlen(buf) < 5 ) return fs;
        /* Number */
        char* p1 = buf;
        char* p2 = strchr(p1, '#');
        strncpy(_num, p1, p2-p1);
        /* fiob */
        p2++;
        p1 = p2;
        p2 = strchr(p1, '#');
        strncpy(_fiob, p1, p2-p1);
        /* fiov */
        p2++;
        p1 = p2;
        p2 = strchr(p1, '#');
        strncpy(_fiov, p1, p2-p1);
        /* diagnoz */
        p2++;
        p1 = p2;
        p2 = strchr(p1, '#');
        strncpy(_diag, p1, p2-p1);
        /* incomming */
        p2++;
        p1 = p2;
        p2 = strchr(p1, '#');
        strncpy(_d_in, p1, p2-p1);
        /* outgoing */
        p2++;
        p1 = p2;
        p2 = strchr(p1, '\n');
        strncpy(_d_ou, p1, p2-p1);

        item.num = atoi(_num);
        item.fiob = _fiob;
        item.fiov = _fiov;
        item.diagnoz = _diag;
        item.d_in.from_string(_d_in);
        item.d_out.from_string(_d_ou);
    }
    return fs;
}

/***************************************************************************/

bool CompFiob(const Item& it1, const Item& it2) {
    return it1.fiob < it2.fiob;
}
bool CompFiov(const Item& it1, const Item& it2) {
    return it1.fiov < it2.fiov;
}
bool CompDiag(const Item& it1, const Item& it2) {
    return it1.diagnoz < it2.diagnoz;
}

/***************************************************************************/

bool file_exists(const char* fn) {
    FILE* file = fopen(fn, "r");
    return (file) ? fclose(file) == 0 : false;
}

/***************************************************************************/

class ItemList :public vector<Item> {
    string fname;
public:
    enum Sort{fiob, fiov, diag};
    ItemList():vector<Item>() {}
    ItemList(const char* fn, bool b):vector<Item>() {
        fname = fn;
        if ( !file_exists(fn) ) {
            File file(fn, File::write);
        }
        load(fn);
    }
    ~ItemList() { save(fname.c_str()); }
    /* Загужает список из файла */
    bool load(const char* fn) {
        fname = fn;
        clear();
        File file(fn, File::read);
        if ( file.size() == 0 )
            return true;
        Item item;
        while ( !file.at_end() ) {
            file >> item;
            if ( !item.fiob.length() ) continue;
            push_back(item);
        }
        file.close();
        return true;
    }
    /* Сохраняет список в файл */
    void save(const char* fn) {
        File file(fn, File::write);
        vector<Item>::const_iterator it;
        for (it = begin(); it != end(); it++) {
            file << *it;
        }
        file.close();
    }
    /* Тут все понятно */
    void sort(Sort s) {
        switch (s) {
            case fiob:
                std::sort(begin(), end(), CompFiob);
                break;
            case fiov:
                std::sort(begin(), end(), CompFiov);
                break;
            case diag:
                std::sort(begin(), end(), CompDiag);
                break;
        }
        save(fname.c_str());
    }
    bool contains(const Item& item) const {
        const_iterator it = begin();
        while ( it != end() ) {
            if ( it->fiob == item.fiob )
                return true;
            it++;
        }
        return false;
    }
    void add(Item& item) {
        if ( size() && contains(item) ) return;
        item.num = size();
        push_back(item);
    }
    int find(Sort s, const string& p) const {
        int idx = 0;
        const_iterator it = begin();
        while ( it != end() ) {
            if ( p == ((s==fiob)?it->fiob:(s==fiov)?it->fiov:it->diagnoz) ) {
                return idx;
            }
            it++;
            idx++;
        }
        return -1;
    }
};

/***************************************************************************/

void ClearScreen() {
    COORD c = {0,0};
    DWORD whocares;
    FillConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE),' ',2000,c,&whocares);
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}

/***************************************************************************/

void Add(ItemList& list) {
    string tmp1;
    string tmp2;
    Item item;
    while ( true ) {
        ClearScreen();
        /*  */
        cout << "ФИО пациента               : "; getline(cin, item.fiob, '\n');
        cout << "Диагноз                    : "; getline(cin, item.diagnoz, '\n');
        cout << "ФИО врача                  : "; getline(cin, item.fiov, '\n');
        cout << "Поступил (дд.мм.гггг чч:мм): "; getline(cin, tmp1, '\n');
        cout << "Выписан  (дд.мм.гггг чч:мм): "; getline(cin, tmp2, '\n');
        if ( !is_valid_time_string(tmp1) ) {
            cerr << "Ошибка ввода даты поступления пациента! Повторите ввод." << endl;
            continue;
        }
        if ( !is_valid_time_string(tmp2) ) {
            cerr << "Ошибка ввода даты выписки пациента! Повторите ввод." << endl;
            continue;
        }
        break;
    }
    item.d_in.from_string(tmp1);
    item.d_out.from_string(tmp2);
    list.add(item);
}

/***************************************************************************/

void Print(const Item& item) {
    cout << "ФИО пациента : " << item.fiob << endl;
    cout << "ФИО врача    : " << item.fiov << endl;
    cout << "Диагноз      : " << item.diagnoz << endl;
    cout << "Поступил     : " << item.d_in.to_string().c_str() << endl;
    cout << "Выписан      : " << item.d_out.to_string().c_str() << endl;
}

void PrintAll(const ItemList& list) {
    ItemList::const_iterator it;
    for ( it = list.begin(); it != list.end(); it++ ) {
        Print(*it);
        cout << "\n***************************************************************************\n";
    }
    cout << "Нажмите Esc для продолжения." << endl;
    getch();
}

/***************************************************************************/

void Find(ItemList& list) {
    int idx = 0;
    char ch = 0;
    string tmp;
    /*  */
    while ( ch != 'q' ) {
        cout << "Искать по ФИО пациента - 1\n"
                  "Искать по ФИО врача    - 2\n"
                  "Искать по диагнозу     - 3\n"
                  "Вернуться              - q\n";
        ch = getch();
        ClearScreen();
        switch ( ch ) {
            case '1':
                cout << "Укажите ФИО пациента : "; getline(cin, tmp, '\n');
                idx = list.find(ItemList::fiob, tmp);
                break;
            case '2':
                cout << "Укажите ФИО врача    : "; getline(cin, tmp, '\n');
                idx = list.find(ItemList::fiov, tmp);
                break;
            case '3':
                cout << "Укажите диагноз      : "; getline(cin, tmp, '\n');
                idx = list.find(ItemList::diag, tmp);
                break;
            case 'q':
                cout << "Возвращаемся";
                return;
            default:
                cout << "Не верно указан параметр. Нажмите Esc для повторного ввода." << endl;
                getch();
                ClearScreen();
                continue;
        }
        if ( idx == -1 ) {
            cout << "Искомая запись не найдена. Нажмите Esc для повторного ввода." << endl;
            getch();
            ClearScreen();
            continue;
        }
        Print(list[idx]);
        cout << "Нажмите Esc для продолжения." << endl;
        getch();
        ClearScreen();
    }
    ClearScreen();
}

/***************************************************************************/

void Remove(ItemList& list) {
    unsigned ch = 0;
    cout << "Укажите номер записи которую желаете удалить. Макс = " << list.size()-1 << endl;
    ch = getch()-'0';
    if ( ch > list.size() ) {
        cout << "Элемента с этим номером не существует!" << endl;
        return;
    }
    ItemList::iterator it = list.begin()+ch;
    list.erase(it);
}

/***************************************************************************/

void RemoveAll(ItemList& list) {
    char ch = 0;
    cout << "Вы действительно желаете удалить все записи? 1-Да, Esc-Нет." << endl;
    ch = getch();
    if ( ch == '1' ) {
        list.clear();
    } else {
        return;
    }
}

/***************************************************************************/

void Edit(ItemList& list) {
    unsigned ch = 0;
    cout << "Укажите номер записи которую желаете изменить. Макс = " << list.size()-1 << endl;
    ch = getch()-'0';
    if ( ch > list.size() ) {
        cout << "Элемента с этим номером не существует!" << endl;
        return;
    }
    ClearScreen();
    string tmp;
    Item item = list[ch];
    cout << "Предыдущая информация в записи:\n"
              "***************************************************************************\n";
    Print(item);
    cout << "***************************************************************************\n";
    cout << "Внесите необходимые изменения:" << endl << endl;
    cout << "ФИО пациента : "; getline(cin, item.fiob, '\n');
    cout << "ФИО врача    : "; getline(cin, item.fiov, '\n');
    cout << "Диагноз      : "; getline(cin, item.diagnoz, '\n');
    cout << "Поступил     : "; getline(cin, tmp, '\n'); item.d_in.from_string(tmp);
    cout << "Выписан      : "; getline(cin, tmp, '\n'); item.d_out.from_string(tmp);
    /*  */
    list[ch] = item;
}

/***************************************************************************/

void SaveAs(ItemList& list) {
    cout << "Укажите имя файла для сохранения: ";
    string file_name;
    getline(cin, file_name, '\n');
    list.save(file_name.c_str());
}

/***************************************************************************/

int main(int argc, char** argv) {
    char ch = 0;
    string file_name;
    system("chcp 1251 > nul");
    
    cout <<    "Выбирите способ хранения информации:\n"
                "   1 - бинарный\n"
                "   2 - текстовый\n";
    _binary = (getch() == '1');
    
    file_name = (_binary) ? _name + _bext : _name + _text;
    ItemList list(file_name.c_str(), _binary);

    while ( ch != 'q') {
        ClearScreen();
        cout <<    "Выбирите действие:\n"
                    "   1 - Добавить\n"
                    "   2 - Найти\n"
                    "   3 - Изменить\n"
                    "   4 - Показать все\n"
                    "   5 - Удалить\n"
                    "   6 - Удалить все\n"
                    "   7 - Сохранить\n"
                    "   8 - Сохранить как...\n"
                    "   q - Выход\n";
        ch = getch();
        if ( ch == 'q' || ch == 27 ) break;
        switch (ch) {
            case '1':
                ClearScreen();
                Add(list);
                ClearScreen();
                break;
            case '2':
                ClearScreen();
                Find(list);
                ClearScreen();
                break;
            case '3':
                ClearScreen();
                Edit(list);
                ClearScreen();
                break;
            case '4':
                ClearScreen();
                PrintAll(list);
                ClearScreen();
                break;
            case '5':
                ClearScreen();
                Remove(list);
                ClearScreen();
                break;
            case '6':
                ClearScreen();
                RemoveAll(list);
                ClearScreen();
                break;
            case '7':
                list.save(file_name.c_str());
                break;
            case '8':
                ClearScreen();
                SaveAs(list);
                ClearScreen();
                break;
        };
    }

    ClearScreen();
    return 0;
}

/***************************************************************************/



Это сообщение отредактировал(а) andrew_121 - 11.6.2009, 01:25


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
mgkit
Дата 11.6.2009, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



andrew_121
Красивая программа, но можно сказать почему в моей это происходит?
Если описывать проблемму подробней, то
Код

void findPRICE(price *p,int n)
{
 char findshopname[30]; /пользователь вводит имя магазина, для поиска его в базе
 int i;
  cout<<"Please, enter shop name "<<endl;
  cin>>findshopname; /ввод
 for (i=0; i<n; i++)
    if (findshopname==p[i].shopname) { /а теперь самое интересное, в процессе отладки выяснил значения, у p[i].shopname="имя", а у findshopname="то что ввели ранее" + куча непонятных символов позади, и выходит, что строчки не равны и условие не выполняется
     cout <<(i+1)<<" Wares"<<endl;
     cout <<"namewares "<<p[i].namewares<<endl;
     cout <<"shopname "<<p[i].shopname<<endl;
     cout <<"pricewares "<<p[i].pricewares<<endl;
   }
}

От чего так? Если юзаю gets, то он даже не просит ввести строку  smile 
PM MAIL   Вверх
andrew_121
Дата 11.6.2009, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

Репутация: 10
Всего: 33



Цитата(mgkit @  11.6.2009,  00:41 Найти цитируемый пост)
findshopname==p[i].shopname

Это что такое? smile 

Добавлено @ 01:16
И еще. Если используешь файловые потоки, не разумно использовать С-строки. Используй std::string.

Это сообщение отредактировал(а) andrew_121 - 11.6.2009, 01:57


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
gosn1ck
Дата 11.6.2009, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(mgkit @ 11.6.2009,  00:41)
andrew_121
Красивая программа, но можно сказать почему в моей это происходит?
Если описывать проблемму подробней, то
От чего так? Если юзаю gets, то он даже не просит ввести строку  smile

в куче потому что 30 символом, наверно smile там перед кучей, случайно \0 не было?
чаровский строки сравниваются 
Код

if (strcmp(findshopname,p[i].shopname) == 0) { 
  cout << "Popa";
}


ты больше так не шокируй andrew_121  smile 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

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


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

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


 




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


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

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