Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2] 3  Все   Вниз
  Печать  
Автор Тема: [C++] Помогите, ПОЖАЛУЙСТА, решить задачу!!!  (Прочитано 59924 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #30 : 01-05-2010 22:00 » 

Цитата: LELECHKA
просто очень сложно разбираться одной, когда не дают материала и ничего не объясняют!
Вот это ты брось - каждый второй студент тут начинает ныть, что "препод тупой - ничего не объясняет", а на самом деле преподавателя просто не спрашивали, потому что сдавать уже "завтра" (а где до этого болтались - неизвестно) или спрашивали в духе "ничего не понятно" - в этом последнем случае большинство преподавателей посылает подальше с разной степенью вежливости.

На самом деле такое поведение студентов свидетельствует лишь о том, что в них остались школьные привычки, когда всё разжуют и в рот положат и заставят вызубрить - часто встречается на младших курсах. Здесь же требуется самостоятельная работа, которая заключается не в тупом переписывании методички, а постановке целей и разработке плана достижения результата. Самое интересное, что учить этому начинают ещё в школе при написании сочинений: составить план, подобрать материалы и т.д. Но школьники упорно не понимают, зачем это - в результате не умеют разобраться в элементарных вещах.

Я тебе, фактически разжевал, что первая твоя проблема - грубейшие ошибки на уровне синтаксиса языка (пропущенные знаки), и дал методические советы. НО! Об этом же тебе в этой теме сказали сразу (см. выше), даже за тебя сделали форматирование (выравнивание по скобкам и отступам) кода - ты это благополучно пропустила мимо ушей, будто тебя это не касается. И только когда я чуть-чуть разжевал, о чём речь, ты вроде как уловила. Почему так происходит? Вовсе не потому, что "ничего не объясняли", а потому что у тебя в голове нет анализа твоих собственных проблем и вытекающего из этих проблем плана твоих действий. Пока ты не разберёшься с тем, что представляют собой твои проблемы, ты будешь и дальше пропускать мимо ушей любую полезную информацию, которую тебе дают - до тех пор, пока кто-нибудь не напишет методичку получения готового решения.

Итак, первая твоя проблема - форматирование. Остальные сформулируй сама, прикинь, что ты собираешься с ними делать, что тебе нужно узнать, чтобы с ними справиться - и вот только тогда ты вместо бессмысленного "ничего не понятно" сможешь задать осмысленные вопросы, на которые получишь понятные для тебя же самой ответы.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #31 : 02-05-2010 07:34 » 

я не сказала, что препод плохой! и не собиралась этого говорить
Я все задачи делала всегда сама, только сейчас сроки поджимают и нужна помочь, чтобы кто-то направлял
Ведь я могла и заказать эту работу, только хочу сама разобрать, хотя бы попробую это сделать!
Ты не прав, я ною только из-за того, что не получается, я уже говорила, что я учусь не на программиста и мне действительно сложно разобраться в этом
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #32 : 02-05-2010 07:37 » 

P.S.:Я говорила, что материала нет, я ведь не могу с головы это все писать, нужна литература, чтобы разбираться!!!
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #33 : 02-05-2010 11:04 » 

Цитата: LELECHKA
нужна литература, чтобы разбираться
Советую учебники Подбельского, Фомина по C и C++. Всё разжёвано, с примерами, с набором задач для самостоятельной проработки каждой темы.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #34 : 02-05-2010 12:36 » 

Я постаралась исправить, не знаю насколько успешно...
все равно не компилирует!
Код:

#include <fstream.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
#define MAX 100
#include <stdlib.h>

struct Furniture
{
   int Num_Buyer;
   char Addres_Buyer[30];
   char Furniture_Name[30];
   int Furniture_Model;
   int Date_Registration;
   int Date_Execution;
};

int enterChoice();

 void newFile (fstream&);
 void addFile (fstream&);
 void outputLine (ostream&);
 void deleteFile (fstream&);
 void runFile  (fstream&);
 void outputFile  (fstream&);
 void outputLine(ostream&, Furniture);


void main()
{
   fstream My_base ("f:\\base.dat",ios::in | ios::out);
   if (!My_base)
   {
      cerr<<"The file can't be opened!"<<endl;
      exit(1);
   }

int choice;

while ((choice=enterChoice())!=6)
{
    switch (choice)
    {
        case 1: newFile (My_base);
           break;
        case 2: addFile  (My_base);
           break;
        case 3: outputLine (My_base);
           break;
        case 4: deleteFile (My_base);
           break;
        case 5: runFile (My_base);
           break;
        case 6: outputFile (My_base);
           break;
        default:
        cerr<<"Incorrect choice"<<endl;
           break;
     }
     My_base.clear();
     }
}

int enterChoice()
{
       cout<<endl<<"Your choise:"<<endl
  <<"1-newFile"<<endl
  <<"2-addFile"<<endl
  <<"3-outputLine"<<endl
  <<"4-deleteFile"<<endl
  <<"5-runFile"<<endl
  <<"6-outputFile"<<endl
           <<"6-the end of the work"<<endl<<"?";

int menuChoice;
cin>>menuChoice;
return menuChoice;
}


void newFile (ofstream &writeFromFile)
{
   ofstream My_base("f:\\base.dat", ios::out);
   if (!My_base)
   {
     cerr<<"The file can't be opened!"<<endl;
     My_base.close();
   }

     Furniture blankFurniture={0," "," ",0,0,0};

   for( int i=1; i<=100; i++)
     My_base.write((char*)&blankFurniture, sizeof(blankFurniture));
}



void addFile (ofstream &writeFromFile)
{
   ofstream My_base("f:\\base.dat", ios::ate);
   if (!My_base)
   {
cerr<<"The file can't be opened!"<<endl;
My_base.close();
   }

   cout<<"Input the number of the buyer"
       <<"(from 1 to 100, 0 - the end of input)"<<endl<<"?";

   Furniture furniture;
   cin>>furniture.Num_Buyer;

   while(furniture.Num_Buyer>0 && furniture.Num_Buyer<=100)
   {
       cout<<"Input Addres_Buyer, Furniture_Name, Furniture_Model, Date_Registration, Date_Execution"
           <<endl<<"?";

       cin>>furniture.Addres_Buyer>>furniture.Furniture_Name
          >>furniture.Furniture_Model>>furniture.Date_Registration
          >>furniture.Date_Execution;

       My_base.seekp((furniture.Num_Buyer-1)*sizeof(furniture));

       My_base.write((char*)&furniture, sizeof(furniture));

       cout<<"Input the number of the buyer"
           <<"(from 1 to 100, 0 - the end of input)"<<endl<<"?";
           cin>>furniture.Num_Buyer;
   }
}


void outputLine(int, char, char,int,int,int);

int main ()
{
   ifstream inFurnitureFile("f:\\base.dat", ios::in);
   if (!inFurnitureFile)
   {
      cerr<<"The file cannot be opened"<<endl;
      getch();
      exit (1);
   }
      int Num_Buyer;
      char  Addres_Buyer[30];
      char Furniture_Name[30];
      int Furniture_Model;
      int Date_Registration;
      int Date_Execution;

      cout<<setiosflags(ios::left)<<setw(6)<<"Num_Buyer"
             <<setw(16)<< "Addres_Buyer"<<setw(11)<<"Furniture_Name"
             <<setiosflags(ios::right)<<setw(10)<<"Furniture_Model"
             <<setw(10)<<"Date_Registration"<<setw(11)<<"Date_Execution"
             <<endl;

      while (inFurnitureFile>>Num_Buyer>>Addres_Buyer>>Furniture_Name
                                      >>Furniture_Model>>Date_Registration
                                      >>Date_Execution)
               outputLine (Num_Buyer,Addres_Buyer,Furniture_Name,Furniture_Model,Date_Registration,Date_Execution);
      return 0;
}


void outputLine(int Num_B, char *Addres_B, char *F_Name, int F_Model, int Date_Registr, int Date_Exec)
{
      cout<<setiosflags(ios::left)<<setw(6)<<Num_B
          <<setw(16)<<Addres_B<<setw(11)<<F_Name
          <<setw(10)<<setprecision(5)
          <<setiosflags(ios::showpoint | ios::right)
          <<F_Model<<setw(10)<<Date_Registr
          <<setw(10)<<Date_Exec<<endl;
}


void deleteFile(fstream &deleteFromFile)
{
   int d=0;
   int i;
   int k=0;
   int r=0;

   cout<<"Input the date:";
       cin>>d;

   Furniture furniture;

   if (furniture.Num_Buyer!=0)
   {
      Furniture blankFurniture={0," "," ",0,0,0};

      deleteFromFile.seekp((d-1)*sizeof(furniture));
      deleteFromFile.write((char*)&blankFurniture, sizeof(furniture));
   }

   for (i=0;i<k;i++)
   {
      if (furniture.Date_Execution<d)
        {
           r=r+1;
        }
   }
      if   (r==0)
            cout<<" Information was delete"<<endl;
}
« Последнее редактирование: 03-05-2010 10:11 от Джон » Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #35 : 02-05-2010 16:09 » 

Уже лучше, но не совсем:

Цитата: LELECHKA
Код:
void main()
{
   fstream My_base ("f:\\base.dat",ios::in | ios::out);
   if (!My_base)
   {
      cerr<<"The file can't be opened!"<<endl;
      exit(1);
   }

int choice;
Почему переменная choice потеряла отступ? Разве открытая скобка после main закрылась до этой переменной?

И т.д. Внимательнее. Как только выровняешь - сразу найдёшь, где чепуха со скобками.


Затем интересно, почему две функции main. Функция main во всей программе может быть только одна - в ней начинается и заканчивается работа программы, это главная функция (в соответствии со своим названием). Правильная функция main может быть следующих видов:
Код:
int main()
Код:
int main(int argc, char *argv[])
Код:
int main(int argc, char *argv[], char *envv[])
С такими параметрами и с таким типом результата - изменять это по своему произволу программист не может. Программист не должен вызывать эту функцию в своём коде, так как она вызывается автоматически при запуске.
« Последнее редактирование: 02-05-2010 16:20 от Dimka » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #36 : 02-05-2010 18:57 » 

Не получается разобраться со скобками, не вижу!!!!

Код:

#include <fstream.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
#define MAX 100
#include <stdlib.h>

struct Furniture
{
   int Num_Buyer;
   char Addres_Buyer[30];
   char Furniture_Name[30];
   int Furniture_Model;
   int Date_Registration;
   int Date_Execution;
};

 int enterChoice();

 void newFile (fstream&);
 void addFile (fstream&);
 void viewFile (ostream&);
 void deleteFile (fstream&);
 void runFile  (fstream&);
 void outputFile  (fstream&);
 void outputLine(ostream&, Furniture);


void main()
{
   fstream My_base ("f:\\base.dat",ios::in | ios::out);
   if (!My_base)
     {
        cerr<<"The file can't be opened!"<<endl;
        exit(1);
     }

   int choice;

   while ((choice=enterChoice())!=6)
   {
      switch (choice)
      {
         case 1:
           newFile (My_base);
           break;
         case 2:
           addFile  (My_base);
           break;
         case 3:
           viewFile (My_base);
           break;
         case 4:
           deleteFile (My_base);
           break;
         case 5:
           runFile (My_base);
           break;
         case 6:
           outputFile (My_base);
           break;
         default:
           cerr<<"Incorrect choice"<<endl;
           break;
        }
     My_base.clear();
     }
}

int enterChoice()
{
    cout<<endl<<"Your choise:"<<endl
        <<"1-newFile"<<endl
        <<"2-addFile"<<endl
        <<"3-viewFile"<<endl
        <<"4-deleteFile"<<endl
        <<"5-runFile"<<endl
        <<"6-outputFile"<<endl
        <<"7-the end of the work"<<endl<<"?";

    int menuChoice;
    cin>>menuChoice;
    return menuChoice;
}


void newFile (ofstream &writeFromFile)
{
   ofstream My_base("f:\\base.dat", ios::out);

   if (!My_base)
      {
        cerr<<"The file can't be opened!"<<endl;
        My_base.close();
      }

   Furniture blankFurniture={0," "," ",0,0,0};

   for( int i=1; i<=100; i++)

      My_base.write((char*)&blankFurniture, sizeof(blankFurniture));

}


void addFile (ofstream &writeFromFile)
{
   ofstream My_base("f:\\base.dat", ios::ate);

   if (!My_base)
      {
        cerr<<"The file can't be opened!"<<endl;
        My_base.close();
      }

   cout<<"Input the number of the buyer"
       <<"(from 1 to 100, 0 - the end of input)"<<endl<<"?";

   Furniture furniture;
   cin>>furniture.Num_Buyer;

   while(furniture.Num_Buyer>0 && furniture.Num_Buyer<=100)
   {
         cout<<"Input Addres_Buyer, Furniture_Name, Furniture_Model, Date_Registration, Date_Execution"
             <<endl<<"?";

         cin>>furniture.Addres_Buyer>>furniture.Furniture_Name
            >>furniture.Furniture_Model>>furniture.Date_Registration
            >>furniture.Date_Execution;

         My_base.seekp((furniture.Num_Buyer-1)*sizeof(furniture));

         My_base.write((char*)&furniture, sizeof(furniture));

         cout<<"Input the number of the buyer"
             <<"(from 1 to 100, 0 - the end of input)"<<endl<<"?";
             cin>>furniture.Num_Buyer;
   }
}


void viewFile(int, char, char,int,int,int);
{
   ifstream inFurnitureFile("f:\\base.dat", ios::in);

   if (!inFurnitureFile)
      {
         cerr<<"The file cannot be opened"<<endl;
         getch();
         exit (1);
      }

    int Num_Buyer;
    char Addres_Buyer[30];
    char Furniture_Name[30];
    int Furniture_Model;
    int Date_Registration;
    int Date_Execution;

    cout<<setiosflags(ios::left)<<setw(6)<<"Num_Buyer"
        <<setw(16)<< "Addres_Buyer"<<setw(11)<<"Furniture_Name"
        <<setiosflags(ios::right)<<setw(10)<<"Furniture_Model"
        <<setw(10)<<"Date_Registration"<<setw(11)<<"Date_Execution"
        <<endl;

    while (inFurnitureFile>>Num_Buyer>>Addres_Buyer>>Furniture_Name
                          >>Furniture_Model>>Date_Registration
                          >>Date_Execution)
           outputLine (Num_Buyer,Addres_Buyer,Furniture_Name,Furniture_Model,Date_Registration,Date_Execution);
    return 0;
}


void outputLine(int Num_B, char *Addres_B, char *F_Name, int F_Model, int Date_Registr, int Date_Exec)
{
     cout<<setiosflags(ios::left)<<setw(6)<<Num_B
         <<setw(16)<<Addres_B<<setw(11)<<F_Name
         <<setw(10)<<setprecision(5)
         <<setiosflags(ios::showpoint | ios::right)
         <<F_Model<<setw(10)<<Date_Registr
         <<setw(10)<<Date_Exec<<endl;
}


void deleteFile(fstream &deleteFromFile)
{
   int d=0;
   int i;
   int k=0;
   int r=0;

   cout<<"Input the date:";
       cin>>d;

   Furniture furniture;

   if (furniture.Num_Buyer!=0)
   {
       Furniture blankFurniture={0," "," ",0,0,0};

       deleteFromFile.seekp((d-1)*sizeof(furniture));
       deleteFromFile.write((char*)&blankFurniture, sizeof(furniture));
   }

   for (i=0;i<k;i++)
   {
      if (furniture.Date_Execution<d)
        {
           r=r+1;
        }
   }
      if   (r==0)
            cout<<" Information was delete"<<endl;
}
« Последнее редактирование: 03-05-2010 10:11 от Джон » Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #37 : 02-05-2010 20:22 » 

LELECHKA, в последнем варианте все скобки на месте и main только одна, но, обрати внимание, что main у тебя описана не так, как я показывал. Твой вариант не всякий компилятор переварит - только старые.

Потом заголовочные файлы типа iostream.h - это тоже для старых компиляторов.

Скажи, в какой среде ты собираешь решение? Borland C++ 3.1?

Потом полезно сюда выкладывать сообщения об ошибках, которые ты получаешь при компиляции.


Точно является ошибкой то, что объявление (declaration) функции не соответствует её реализации (definition). Например, в объявлении у тебя стоит:
Код:
void newFile (fstream&);
а в реализации:
Код:
void newFile (ofstream &writeFromFile)

Объявления делаются лишь для того, чтобы в том случае, когда в реализации функции пишутся вызовы других функции, было уже определено (выше по тексту), сколько параметров какого типа и какой тип результата должны быть у вызываемой функции. У тебя в объявлении стоит один тип параметра, а в реализации - другой. Компилятор видит, что функция объявлена, но реализацию функции, соответствующей объявлению, не находит и сообщает об ошибке.
« Последнее редактирование: 02-05-2010 20:44 от Dimka » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #38 : 03-05-2010 04:36 » 

Dimka,
У меня C++Builder 6

Ошибка: Declaration terminated incorrectly ( возле открывающей скобки, после viewFile).

Т.е. объявление и реализация должны совпадать?

А main, как лучше исправить?
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
resource
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #39 : 03-05-2010 08:43 » 

LELECHKA, Dimka конечно добрый, но даже у него терпение может кончиться
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #40 : 03-05-2010 09:22 » 

Цитата: LELECHKA
Ошибка: Declaration terminated incorrectly ( возле открывающей скобки, после viewFile).
Ну и посмотри что там такое, сравни с другими функциями, на которые компилятор не ругается. Непонятно, что там такое может вызывать у тебя ступор и панику. Нужно внимание и наблюдательность.

Цитата: LELECHKA
А main, как лучше исправить?
Я дал три варианта. Выбери наиболее похожий на твой.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #41 : 03-05-2010 11:00 » 


Я конечно понимаю, что вы возможно программист со стажем или человек, который программированием увлечен, но я таковой не являюсь!!!
Мне всего 21 год,я только учусь, программирование не мой основной предмет, и задачи не такого уровня мы делали до этого!!!!!
Я вчера уже плакала, потому что, не вижу ошибки, хоть убейте меня( это надо понимать) и не потому что я не внимательная!!!!!!!

Я уже каждую строчку знаю наизусь, а по ночам не могу уснуть от того, что снится код и думаю об этих ошибках!!!!!!!!!!!!!!!

Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #42 : 03-05-2010 11:03 » 

Dimka,

Я исправила, как смогла, посмотрите,пожалуйста, если еще не надоело:
Все равно не компилирует!
Код:
#include <fstream.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
#define MAX 100
#include <stdlib.h>

struct Furniture
{
   int Num_Buyer;
   char Addres_Buyer[30];
   char Furniture_Name[30];
   int Furniture_Model;
   int Date_Registration;
   int Date_Execution;
};

 int enterChoice();

 void newFile (fstream&);
 void addFile (fstream&);
 void viewFile (ostream&);
 void deleteFile (fstream&);
 void runFile  (fstream&);
 void outputFile  (fstream&);
 void outputLine(ostream&, Furniture);


int main()
{
   fstream My_base ("f:\\base.dat",ios::in | ios::out);
   if (!My_base)
     {
        cerr<<"The file can't be opened!"<<endl;
        exit(1);
     }

   int choice;

   while ((choice=enterChoice())!=6)
   {
      switch (choice)
      {
         case 1:
           newFile (My_base);
           break;
         case 2:
           addFile  (My_base);
           break;
         case 3:
           viewFile (My_base);
           break;
         case 4:
           deleteFile (My_base);
           break;
         case 5:
           runFile (My_base);
           break;
         case 6:
           outputFile (My_base);
           break;
         default:
           cerr<<"Incorrect choice"<<endl;
           break;
        }
     My_base.clear();
     }
}

int enterChoice()
{
    cout<<endl<<"Your choise:"<<endl
        <<"1-newFile"<<endl
        <<"2-addFile"<<endl
        <<"3-viewFile"<<endl
        <<"4-deleteFile"<<endl
        <<"5-runFile"<<endl
        <<"6-outputFile"<<endl
        <<"7-the end of the work"<<endl<<"?";

    int menuChoice;
    cin>>menuChoice;
    return menuChoice;
}


void newFile (fstream &writeFromFile)
{
   fstream My_base("f:\\base.dat", ios::out);

   if (!My_base)
      {
        cerr<<"The file can't be opened!"<<endl;
        My_base.close();
      }

   Furniture blankFurniture={0," "," ",0,0,0};

   for( int i=1; i<=100; i++)

      My_base.write((char*)&blankFurniture, sizeof(blankFurniture));

}


void addFile (fstream &writeFromFile)
{
   fstream My_base("f:\\base.dat", ios::ate);

   if (!My_base)
      {
        cerr<<"The file can't be opened!"<<endl;
        My_base.close();
      }

   cout<<"Input the number of the buyer"
       <<"(from 1 to 100, 0 - the end of input)"<<endl<<"?";

   Furniture furniture;
   cin>>furniture.Num_Buyer;

   while(furniture.Num_Buyer>0 && furniture.Num_Buyer<=100)
   {
         cout<<"Input Addres_Buyer, Furniture_Name, Furniture_Model, Date_Registration, Date_Execution"
             <<endl<<"?";

         cin>>furniture.Addres_Buyer>>furniture.Furniture_Name
            >>furniture.Furniture_Model>>furniture.Date_Registration
            >>furniture.Date_Execution;

         My_base.seekp((furniture.Num_Buyer-1)*sizeof(furniture));

         My_base.write((char*)&furniture, sizeof(furniture));

         cout<<"Input the number of the buyer"
             <<"(from 1 to 100, 0 - the end of input)"<<endl<<"?";
             cin>>furniture.Num_Buyer;
   }
}


void viewFile(ostream &inFurnitureFile);
{
   ostream My_base("f:\\base.dat", ios::in);

   if (!My_base)
      {
         cerr<<"The file cannot be opened"<<endl;
         exit (1);
      }

    int Num_Buyer;
    char Addres_Buyer[30];
    char Furniture_Name[30];
    int Furniture_Model;
    int Date_Registration;
    int Date_Execution;

    cout<<setiosflags(ios::left)<<setw(6)<<"Num_Buyer"
        <<setw(16)<< "Addres_Buyer"<<setw(11)<<"Furniture_Name"
        <<setiosflags(ios::right)<<setw(10)<<"Furniture_Model"
        <<setw(10)<<"Date_Registration"<<setw(11)<<"Date_Execution"
        <<endl;

    while (inFurnitureFile>>Num_Buyer>>Addres_Buyer>>Furniture_Name
                          >>Furniture_Model>>Date_Registration
                          >>Date_Execution)
           outputLine (My_base, Furniture);
    return 0;
}


void outputLine(ostream &output, Furniture f)
{
     output<<setiosflags(ios::left)<<setw(6)<<f.Num_Buyer
         <<setw(16)<<f.Addres_Buyer<<setw(11)<<f.Furniture_Name
         <<setw(10)<<setprecision(5)
         <<setiosflags(ios::showpoint | ios::right)
         <<f.Furniture_Model<<setw(10)<<f.Date_Registration
         <<setw(10)<<f.Date_Execution<<endl;
}


void deleteFile(fstream &deleteFromFile)
{
   int d=0;
   int i;
   int k=0;
   int r=0;

   cout<<"Input the date:";
       cin>>d;

   Furniture furniture;

   if (furniture.Num_Buyer!=0)
   {
       Furniture blankFurniture={0," "," ",0,0,0};

       deleteFromFile.seekp((d-1)*sizeof(furniture));
       deleteFromFile.write((char*)&blankFurniture, sizeof(furniture));
   }

   for (i=0;i<k;i++)
   {
      if (furniture.Date_Execution<d)
        {
           r=r+1;
        }
   }
      if   (r==0)
            cout<<" Information was delete"<<endl;
}
« Последнее редактирование: 03-05-2010 11:08 от Джон » Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #43 : 03-05-2010 11:08 » 

LELECHKA, бери код в скобки [ code ] [ /code ], последний раз намекаю. Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
resource
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #44 : 03-05-2010 11:11 » 

LELECHKA, компилятор обычно пишет (в окошке снизу) какие есть ошибки. Два раза кликаешь на ошибку, и попадаешь на строку, в которой ошибка была обнаружена. В любом случае вы если пишите, что "не компилируется и не знаю почему", то вы эти ошибки (полностью, с номерами строк) приводите.

ЗЫ кстати плохо что тут номера строк не показывает, когда в тэги заворачиваешь
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #45 : 03-05-2010 11:19 » 

А когда не заворачиваешь, тоже не показывает. Ага Вывод: теги здесь не при чём.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #46 : 03-05-2010 11:36 » 

Определение:
Код:
 void viewFile (ostream&);

в main():
Код:
int main()
{
  fstream My_base ("f:\\base.dat",ios::in | ios::out); //это идентичный тип?
  ...
  switch (choice)
      {...
       case 3:
           viewFile (My_base); //Так и должно вызываться?
           break;
        ...}

Реализация:
Код:
void viewFile(ostream &inFurnitureFile);
{
   ostream My_base("f:\\base.dat", ios::in);
   ...
   exit(1);  //возвращаемое функцией значение в случае ошибки
   ...
   return 0;//возвращаемое функцией значение в случае успешного выполнения
}
а вернуть должны "void", т.е. ничего.

функция int main() должна вернуть целочисленное значение.
Записан

С уважением, Oldy.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #47 : 03-05-2010 12:59 » 

LELECHKA, я не понимаю следующего. Если тебе показали ошибку, например, с newFile, почему ты исправляешь только её? Почему недосуг проверить по аналогии другие функции с точно такой же ошибкой? Я также попросил сравнить реализацию viewFile с другими функциями - твоей реакции почему-то не последовало.

Синтаксис одинаковый во всей программе. Синтаксические правила, относящиеся к ошибкам, я описал - нужно всего лишь аккуратно всё проверить. Тем более, если компилятор сообщает об ошибках и строчках, в которых эти ошибки возникли.

P.S. Я лишь один раз работал с группой студентов, у которых программирование - непрофильный предмет. У них были точно такие же проблемы с синтаксисом (правда, усугубленные их незаинтересованностью). Когда нет интереса - это мне понятно, но когда есть желание разобраться - непонятно, какая религия мешает усвоить правила синтаксиса.

Давай в чат (вверху страницы в меню найдёшь) - так быстрее будет.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #48 : 03-05-2010 20:11 » 

За 2 часа в чате выяснили следующее:

1) Незнание синтаксиса - ну это дело наживное, можно освоить.
2) Код не вполне авторский и написан без особого понимания, хотя по сравнению с прочим контингетом этого раздела форума LELECHKA можно поздравить - действительно разбирается в том, с чем успела разобраться.
3) Представленный код просто довести до собираемого состояния невозможно - по ошибкам возникают циклы (исправляем одну - возникает другая, исправляем вторую - восстанавливается прежняя). Значит придётся сменить стратегию со "снизу вверх" на "сверху вниз", во главу угла поставив понимание.
4) Отсутствие навыка концентрации внимания и удержания в памяти мелких деталей. Это не потому, что у программистов память как-то по-особенному работает и какая-то нечеловеческая, а потому, что нужно уметь отделять главное от второстепенного и запоминать иерархически.
5) Незнание приёмов разработки и отладки - но это тоже дело наживное.

Что обсуждалось.

1) Схемы синтаксических конструкций. Например, объявление переменной: <тип> <название>; Предложено запоминать схемы и научиться проверять правильность записи кода по таким схемам и справляться с чисто синтаксическими ошибками и опечатками.
2) Базовые понятия: значение, тип, переменная, функция, аргументы и результат функции. Проводились параллели с обычной школьной математикой. Использование всего этого дела при анализе семантических ошибок вроде несовместимости типов значения и переменной.
3) Правила работы со списком ошибок от компилятора: разница между error и warning, обработка ошибок строго по порядку. Способ "исправления", когда код меняется с целью сокращения числа ошибок, был отвергнут: всегда нужно добиваться, чтобы исправление устранило (а не сдвинуло вниз) первую по списку ошибку, и не важно, что количество ошибок после этого может даже увеличиться.

Что делать дальше.

1) Было предложено составить алгоритм решения задачи на русском языке или по крайней мере описать код программы на русском языке строчка за строчкой, начиная с функции main.
2) Было предложено завести новый чистый проект и переносить туда код, начиная с main, строчка за строчкой, каждый раз добиваясь, чтобы программа компилировалась без ошибок.

Далее (что не обсуждалось). Пункт 2 лучше отложить и сосредоточиться на пункте 1. После составления алгоритма на кажду строчку русского описания нужно будет составить план её кодирования: какие конструкции языка, какие операции (функции) стандартной библиотеки, какие типы данных и переменные нужны для того, чтобы написать код по данному на русском языке описанию. Чтобы это не заняло много времени, и чтобы обратная связь была интенсивной, лучше это делать по частям. Например, сначала описать и разобрать функцию main и только её.
« Последнее редактирование: 03-05-2010 20:16 от Dimka » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #49 : 04-05-2010 17:23 » 

Привет, теперь я живу программированием! Улыбаюсь


Можно я словами буду прописывать алгоритм, того что программа должна делать.
Как я поняла:
1.   создать файл
2.   открыть файл
3.   ввод информации
4.   вывод информации из файла
5.   удаление…
6.   сортировка…
7.   сортировка….

Первые 3 пункта я объединила в один:

Код:
#include <fstream.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
#define MAX 100
#include <stdlib.h>
#define STR3 4
#define FNAME "f:\\furniture.txt\0"

struct Furniture
{
   int Num_Buyer;
   char Addres_Buyer[30];
   char Furniture_Name[30];
   char Furniture_Model[30];
   int Date_Registration;
   int Date_Execution;
};


void main()
{
   char fname[40]=FNAME;
   FILE*in;
   int i;

   if ((in=fopen(fname, "wt"))==NULL)
   {
      printf("The file cannot be opened");
      getch();
      return;
   }

   Furniture furniture;

   for (i=0;i<3;i++)
   {
     _flushall();

     printf("\n Num_Buyer: \n");
     scanf("%d",&furniture.Num_Buyer);

     printf ("\n Addres_Buyer: \n");
     gets (furniture.Addres_Buyer);

     printf ("\n Furniture_Name: \n");
     gets(furniture.Furniture_Name);

     printf ("\n Furniture_Model: \n");
     gets(furniture.Furniture_Model);

     printf ("\n Date_Registration: \n");
     scanf("%d",&furniture.Date_Registration);

     printf ("\n Date_Execution: \n");
     scanf("%d",&furniture.Date_Execution);
    }
     printf("\n\n");

    for (i=0;i<3;i++)
    {
      printf("\n Num_Buyer %d \n, Addres_Buyer %s \n, Furniture_Name %s \n, Furniture_Model %s \n,Date_Registration %d \n,Date_Execution %d \n",furniture.Num_Buyer,
      furniture.Addres_Buyer,furniture.Furniture_Name,furniture.Furniture_Model, furniture.Date_Registration,furniture.Date_Execution );
      

    }
    fclose(in);
  getch();
}

Программа не дописана. Я не знаю как вывести информацию в файл?
Нашла пример из книги, там после scanf пишут fprinf (in, «……»,…..),. Мне можно так писать?(только не знаю куда это вставить  и что вместо многоточия добавить).


У меня еще есть вопросы:
1. E меня не вводит Num_Buyer (пропускает), не могу понять почему?
2. Как правильно вывести дату, например, 12.12.12 ( с помощью scanf), не смогла найти, а вообще оно может так выводить ?
В программе  вводит дату просто как числа 1,2 и т.д.
3. Можно ли то Меню оставить прежним, изменив только функции, которые в него входят?


« Последнее редактирование: 04-05-2010 17:41 от Sla » Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #50 : 04-05-2010 21:00 » 

LELECHKA, в задании в самом начале говорилось о меню. Если в конце концов нужно будет меню, то ты неудачно начала с объединения функций и записи последовательностей.

Удачное начало - это описать меню и сделать "заглушки" функций, которые выполняют действия. "Заглушка" - означает функцию, которая ничего не делает (т.е. внутри неё ничего не написано), тем не менее, сама функция уже есть, её вызовы можно вставить в нужные места, и программа будет компилироваться. Написав основную функцию, потом по очереди начинаешь каждую "заглушку" превращать в полезную функцию. В принципе, у тебя в предыдущей версии меню было нормально описано, только там была допущена невнимательность - функция enterChoice позволяла вводить 7 вариантов, и выход из программы был 7, а меню считало, что выход - это число 6. Если что-то меняешь в одном месте - нужно проверять все остальные места, не оказало ли на них влияние твоё новое изменение.

По поводу открытия файла в главной функции у меня есть большие сомнения. В принципе, если файл открывается в режиме произвольного доступа, можно в него писать и из него читать одновременно. Но если файл открывается в режиме последовательного доступа (как поток - так обычно открывают текстовые файлы), то его можно открыть либо на чтение, либо на запись, и переключить режим можно, лишь закрыв файл и открыв в другом режиме. С этой точки зрения открывать файл до того, как пользователь определился, что же он хочет делать - занятие рискованное, поскольку можно открыть файл не в том режиме, который нужен.

Предлагаю не писать сразу открытие/закрытие файлов, а сделать логический каркас программы. Часто предлагается такой метод: в начале внутри функции в комментариях описывается алгоритм действий, потом строчка за строчкой под каждым действием в комментарии пишется код, который это действие выполняет. А управляющие конструкции (циклы, условия и т.п.) пишутся сразу - они и образуют логический каркас.

Что ещё. В предыдущей версии ты использовала стандартную библиотеку STL языка C++ - там для операций ввода/вывода использовались такие штуки, как cin, cout, ofstream, ifstream, операторы << и >> и т.п. Теперь ты стала использовать стандартную библиотеку языка C - в ней для операций ввода/вывода используются printf, scanf, fprintf, fopen, fclose, feof, тип FILE и т.п. При этом обе эти библиотеки делают одно и то же, просто код по-разному записывается. Ты уж определись, какой тебе пользоваться удобнее. По-моему для работы с потоками удобнее первое, а для работы с файлами произвольного доступа - второе.

Функция scanf не выводит, она вводит. И дату как дату она вводить не умеет - только как строчку с последующим написанием кода разбора этой строки.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #51 : 05-05-2010 17:14 » 

Вот, что я сделала. Программа компилируется.
Осталось теперь удаление и сортировка.
Не получается удалить исполненные договора, предшествующие заданной дате. Оно у меня удаляет абсолютно все данные( я этот кусок на вставляла).
С сортировкой я попробую разобраться, есть ведь различные виды сортировки, какой мне лучше использовать или это не имеет значения?

Код:
#include <fstream.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
#define MAX 100
#include <stdlib.h>
#define STR2 3
#define FNAME "f:\\furniture.txt\0"

struct Furniture
{
   int Num_Buyer;
   char Addres_Buyer[30];
   char Furniture_Name[30];
   char Furniture_Model[30];
   int Date_Registration;
   int Date_Execution;
};

 int enterChoice();

 void newFile (fstream&);
 void viewFile (fstream&);
 void deleteFile (fstream&);
 void runFile  (fstream&);
 void outputFile  (fstream&);



int main()
{
   fstream My_base ("f:\\furniture.txt",ios::in | ios::out);
   if (!My_base)
     {
        cerr<<"The file can't be opened!"<<endl;
        exit(1);
      }

   int choice;

   while ((choice=enterChoice())!=5)
   {
      switch (choice)
      {
         case 1:
           newFile (My_base);
           break;
         case 2:
           viewFile (My_base);
           break;
         case 3:
           deleteFile (My_base);
           break;
         case 4:
           runFile (My_base);
           break;
         case 5:
           outputFile (My_base);
           break;
         default:
           cerr<<"Incorrect choice"<<endl;
           break;
        }
     My_base.clear();
     }
}

int enterChoice()
{
    cout<<endl<<"Your choise:"<<endl
        <<"1-newFile"<<endl
        <<"2-viewFile"<<endl
        <<"3-deleteFile"<<endl
        <<"4-runFile"<<endl
        <<"5-outputFile"<<endl
        <<"6-the end of the work"<<endl<<"?";

    int menuChoice;
    cin>>menuChoice;
    return menuChoice;
}
void newFile(fstream &writeFromFile)
{
   char fname[40]=FNAME;
   FILE*in;
   int i, j;

   if ((in=fopen(fname, "wt"))==NULL)
   {
      printf("The file cannot be opened");
      getch();
      return;
    }

   Furniture furniture;

   for (i=0;i<2;i++)
   {
     _flushall();

     printf("\n Num_Buyer: \n");
     scanf("%d",&furniture.Num_Buyer);

     printf ("\n Addres_Buyer: \n");
     scanf ("%s", &furniture.Addres_Buyer);

     printf ("\n Furniture_Name: \n");
     scanf("%s", &furniture.Furniture_Name);

     printf ("\n Furniture_Model: \n");
     scanf("%s", &furniture.Furniture_Model);

     printf ("\n Date_Registration: \n");
     scanf("%d",&furniture.Date_Registration);

     printf ("\n Date_Execution: \n");
     scanf("%d",&furniture.Date_Execution);

     fprintf(in,"\n Num_Buyer: %d\n Addres_Buyer: %s \n Furniture_Name: %s \n Furniture_Model: %s \n Date_Registration: %d \n Date_Execution: %d \n" , furniture.Num_Buyer, furniture.Addres_Buyer, furniture.Furniture_Name,
     furniture.Furniture_Model, furniture.Date_Registration,furniture.Date_Execution);
    }
     printf("\n\n");

   fclose(in);
   getch();
}


void viewFile(fstream &inFurnitureFile)
{
   char fname[40]=FNAME;
   FILE*in;
   int i, j;

   if ((in=fopen(fname, "rt"))==NULL)
   {
      printf("The file cannot be opened");
      getch();
      return;
   }

   Furniture furniture;

   while (!feof(in))
   {
     fscanf(in,"\n Num_Buyer: %d\n Addres_Buyer: %s \n Furniture_Name: %s \n            Furniture_Model: %s \n Date_Registration: %d \n Date_Execution: %d \n" , &furniture.Num_Buyer, &furniture.Addres_Buyer, &furniture.Furniture_Name,&furniture.Furniture_Model, &furniture.Date_Registration,&furniture.Date_Execution);
     printf("\n Num_Buyer: %d\n Addres_Buyer: %s \n Furniture_Name: %s \n Furniture_Model: %s \n Date_Registration: %d \n Date_Execution: %d \n", furniture.Num_Buyer, furniture.Addres_Buyer, furniture.Furniture_Name,furniture.Furniture_Model, furniture.Date_Registration,furniture.Date_Execution);
   }
   fclose(in);
   getch();

}

void deleteFile (fstream &deleteFromFile)
{
   char fname[40]=FNAME;
   FILE*in;
   int i, j;
   int d=0;
   int r=0;

   if ((in=fopen(fname, "wt"))==NULL)
   {
      printf("The file cannot be opened");
      getch();
      return;
   }

   Furniture furniture;

   cout<<"Input the date:\n";
   cin>>d;
}


void runFile  (fstream &outputFromFile)
{

}

void outputFile  (fstream &outputFromFile)
{
}
« Последнее редактирование: 05-05-2010 17:16 от Sla » Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #52 : 05-05-2010 17:17 » 

LELECHKA, мне не сложно, но на будущее
оформляй код тегами
[code]   КОД  [/code]


Алгоритм сортировки не имеет значения.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #53 : 05-05-2010 17:19 » 

LELECHKA, ты бы показала как удаляешь из файла
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #54 : 05-05-2010 17:30 » 

при удалении for нужен?
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #55 : 05-05-2010 17:34 » 

LELECHKA, для чего используется for?

Покажи что у тебя получилось (неполучилось) чтоб понять как ты мыслишь
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #56 : 05-05-2010 17:38 » 

Dimka, исполненный договор, насколько я поняла,это  когда дата исполнения=дате оформления, потом я сравниваю дату исполнения с введенной датой, и если дата исполнения< введенной, то небходимо удалить исполненные договора

я прописываю так удаление
deleteFromFile.seekp((....)*sizeof(furniture));
я понимаю, что это не правильно,не знаю как прописать
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #57 : 05-05-2010 17:39 » 

Sla, я писала с if ()
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
LELECHKA
Участник

by
Offline Offline
Пол: Женский

« Ответ #58 : 05-05-2010 17:41 » 

Sla, for - цикл, грубо говоря для того чтобы перебрать все значения (не могу объяснить своими словами)
Записан

Все можно познать, только не самого себя. (Стендаль)

Мудр не тот, кто знает много, а тот, чьи знания полезны. (Эсхил)

Победа над страхом придает нам силы. (Виктор Гюго)
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #59 : 05-05-2010 21:21 » 

fstream внутри main меня уже утомил - что ни говорю, всё мимо ушей, код только усложняется. Аналогично с меню.

Подробный разбор сортировки есть, например, тут:
http://ru.wikibooks.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8

Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Страниц: 1 [2] 3  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines