Anonymní profil Jerry – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Jerry – Programujte.comAnonymní profil Jerry – Programujte.com

 

Příspěvky odeslané z IP adresy 2a00:1028:83be:235a:1564:...–

Jerry
C / C++ › Čas doby zápisu do souboru
4. 5. 2017   #215862

#6 ORION206
sem tam něco vložil a mě to funguje, čas běhu 0.004 sec. tak nevim

#include "stdafx.h"
#include <iostream>     // std::cout
#include <fstream>      // std::ifstream
#include <string>
#include <sstream>
#include <time.h>
#include <ctime>

const int COLUMNS = 7;

struct radek
{
 float x;
 float y;
 float z;
 float odrazivost;
 float r;
 float g;
 float b;
};


using namespace std;

radek MakeRow(float pole[7])
{
 radek soucasnejRadek;
 soucasnejRadek.x = pole[0];
 soucasnejRadek.y = pole[1];
 soucasnejRadek.z = pole[2];
 soucasnejRadek.odrazivost = pole[3];
 soucasnejRadek.r = pole[4];
 soucasnejRadek.g = pole[5];
 soucasnejRadek.b = pole[6];

 return soucasnejRadek;
}

#define DatumFormat "%d.%m.%Y %H:%M:%S "
#define DatumVelikost 21
#define DatumFormat2 "%d.%m.%Y %H:%M:%S "
#define DatumVelikost2 21

static char *DATUM(char *buff)
{
 time_t t = time(0);
 strftime(buff, DatumVelikost, DatumFormat, localtime(&t));
 return buff;
}

float main()
{
 char volba;
 char format;
 char format2;

 float mez_X[2];
 float mez_Y[2];
 float mez_Z[2];

 int odrazivost[2];

 int barva_r[2];
 int barva_g[2];
 int barva_b[2];

 int pocetRadku;

 char date[DatumVelikost];
 //char date1[DatumVelikost2];

 int cas;

 cout << "Pokud chcete vysledny soubor dle souradnic stiknete S.\n";
 cout << "Pokud chcete vysledny soubor dle odrazivosti stiknete O.\n";
 cout << "Pokud chcete vysledny soubor dle barev stiknete R.\n";
 cout << "Pokud chcete vysledny soubor dle souradnic a odrazivosti vyberte variantu A.\n";
 cout << "Pokud chcete vysledny soubor dle souradnic a barev vyberte variantu B.\n";
 cout << "Pokud chcete vysledny soubor dle odrazivosti a barev vyberte variantu C.\n";
 cout << "Pokud chcete vysledny soubor dle souradnic, odrazivosti a barev vyberte variantu D.\n";

 cin >> volba;
 cin.get();


 // PODMINKA PRO SOURADNICE - S
 if (volba == 'S' || volba == 's')
 {
  std::string filename;
  std::string filenameOUT = "Vysledek_Cisla_Dle_Souradnic";
  cout << "Zadejte jmeno souboru, ze ktereho chcete nacitat data.\n";
  getline(cin, filename);
  cout << endl;
  cout << "Zadejte format nacitaneho souboru: \n";
  cout << "(1) - .pts\n";
  cout << "(2) - .txt\n";
  cout << "(3) - .rcp\n";
  cout << "(4) - .rcs\n";

  cin >> format;
  switch (format)
  {
  case '1':
   filename += ".pts";
   cout << "Byl vybran format .pts.\n";
   break;
  case '2':
   filename += ".txt";
   cout << "Byl vybran format .txt.\n";
   break;
  case '3':
   filename += ".rcp";
   cout << "Byl vybran format .rcp.\n";
   break;
  case '4':
   filename += ".rcs";
   cout << "Byl vybran format .rcs.\n";
   break;
  }
  cout << endl;
  cout << "Zadejte format vysledneho souboru: \n";
  cout << "(1) - .pts\n";
  cout << "(2) - .txt\n";
  cout << "(3) - .rcp\n";
  cout << "(4) - .rcs\n";

  cin >> format2;
  switch (format2)
  {
  case '1':
   filenameOUT += ".pts";
   cout << "Byl vybran format .pts.\n";
   break;
  case '2':
   filenameOUT += ".txt";
   cout << "Byl vybran format .txt.\n";
   break;
  case '3':
   filenameOUT += ".rcp";
   cout << "Byl vybran format .rcp.\n";
   break;
  case '4':
   filenameOUT += ".rcs";
   cout << "Byl vybran format .rcs.\n";
   break;
  }

  std::ifstream ifs(filename.c_str(), std::ifstream::in);
  std::ofstream ofs(filenameOUT.c_str(), std::ofstream::out);

  cout << endl;
  cout << "Zadejte souradnice pro vytvoreni souboru (x,y,z)\n";
  cout << "Zadejte mez X: (nejpreve zapornou a pak kladnou)\n";
  cin >> mez_X[0];
  cin >> mez_X[1];
  cout << "Zadejte mez Y:\n";
  cin >> mez_Y[0];
  cin >> mez_Y[1];
  cout << "Zadejte mez Z:\n";
  cin >> mez_Z[0];
  cin >> mez_Z[1];
  cout << "Meze zadany, nasleduje vytvareni souboru.\n";

  time_t start = time(NULL);


  //*********************************************
  clock_t time_begin = clock(); 
  //*********************************************


  int start1 = clock();

  int a = 0;

  if (ifs.is_open() && ofs.is_open())
  {
   std::string line;
   while (std::getline(ifs, line))
   {
    std::istringstream ss(line);
    radek soucasnejRadek;

    if (!(ss >> soucasnejRadek.x >> soucasnejRadek.y >> soucasnejRadek.z >> soucasnejRadek.odrazivost >> soucasnejRadek.r >> soucasnejRadek.g >> soucasnejRadek.b))
    {
     continue;
    }

    if (mez_X[0] <= soucasnejRadek.x && mez_X[1] >= soucasnejRadek.x)
    {
     if (mez_Y[0] <= soucasnejRadek.y && mez_Y[1] >= soucasnejRadek.y)
     {
      if (mez_Z[0] <= soucasnejRadek.z && mez_Z[1] >= soucasnejRadek.z)
      {
       a++;
       pocetRadku = a;
       ofs << soucasnejRadek.x << " " << soucasnejRadek.y << " " << soucasnejRadek.z << " " << soucasnejRadek.odrazivost << " " << soucasnejRadek.r << " " << soucasnejRadek.g << " " << soucasnejRadek.b << '\n';
      }

     }

    }


   }
   ifs.close();
   ofs.close();
  }
  else
  {
   std::cout << "Error opening file";
  }

  //LOG soubor souradnic
  time_t tt = time(0);
  struct tm*now = localtime(&tt);
  char DATUM_1[80];
  strftime(DATUM_1, DatumVelikost2, DatumFormat2, now);


  //*********************************************************
  clock_t time_end = clock();
  double elapsed_secs = double(time_end - time_begin) / CLOCKS_PER_SEC;
  std::cout << elapsed_secs; 
  //*********************************************************


  int stop = clock();
  cas = ((stop - start1) / (CLOCKS_PER_SEC));

  cout << "Vysledny soubor vytvoren.\n";
  cout << "Nasleduje zapis LOG souboru.\n";

  std::ofstream ofss("LOG_Cisla_Dle_Souradnic.txt", std::ofstream::out);

  ofss << "Informace o vyslednem souboru vytvoreneho dle mezi souradnic:\n";
  ofss << "Pouzite meze souradnic: \n" << "Mez X: " << "<" << mez_X[0] << "; " << mez_X[1] << ">\n" << "Mez Y: " << "<" << mez_Y[0] << "; " << mez_Y[1] << ">\n" << "Mez Z: " << "<" << mez_Z[0] << "; " << mez_Z[1] << ">\n";
  ofss << "Pocet bodu v tomto souboru: " << pocetRadku << "\n";
  ofss << "Zacatek vytvoreni souboru: " << DATUM(date) << "\n";
  ofss << "Konec vytvoreni souboru: " << DATUM_1 << "\n";
  ofss << "Cas tvoreni souboru: " << (double)(time(NULL) - start) << " s" << "\n";
  ofss << endl;

  cout << "LOG soubor byl vytvoren.\n";
  cout << "Cas tvoreni souboru: " << cas << " s" << "\n";
 }
}// main
Jerry
Pascal › excel?
4. 5. 2017   #215849

#1 ma ka
a proč teda zadáváš tuhle ulohu do sekce Pascal ??? když to chceš v Excelu ?? No dá se to napsat ve VisualBasicu (VBA) co je l dispozici v Excelu. Když chceš "...3 nejčastější čísla , které jsou spolu v jednom řádku a opakují se."

Nejprve tedy vygeneruješ ty čísla ve sloupcích a řádních náhodně .. přímo pomocí VBA a pak sestavíš tabulku použitých čísel a jejich početnosti s ohledem na řádky. Problém je v tom, že ty nepíšeš jak velká ta čísla mají být a jestli se mohou v řádku opakovat takže abychom to zjednodušili předpokládejme že typu unsigned byte (0..255) a opakovat se NEmohou. Potom už to neni až tak hroznej problem.... vygeneruješ si pomocnou tabulku která má 256 sloupců a stejnej počet řádků jako ta tvoje tabulka a pouze přičítáš početnosti pro jednotlivé kombinace ... no to je řečeno hezky teoreticky ale fungovat to bude...

Jerry
C / C++ › Serializace binárního stromu
4. 5. 2017   #215846

#1 nickan
a hele tady to máš hotový:

https://askmecode.wordpress.com/2012/08/15/serializationdeserialization-of-a-binary-tree/

no neni to bomba ? ...

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý