🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #247122

Re: ile czasu trzeba aby sie nauczyc c++?

#247122
From: (fir)
Date: Mon, 03 Apr 2017 20:28
196 lines
7200 bytes
W dniu poniedziałek, 3 kwietnia 2017 21:56:26 UTC+2 użytkownik (fir) napisał:
> W dniu poniedziałek, 3 kwietnia 2017 17:32:29 UTC+2 użytkownik godek....@gmail.com napisał:
> > W dniu poniedziałek, 3 kwietnia 2017 17:13:18 UTC+2 użytkownik slawek napisał:
> > 
> > > > yć, w takim sensie, żeby
> > > > pisać programy w jakiś sposób, co do którego panowa�=
> > > > �aby zgoda, że "właśnie
> > > > tak powinno wyglądać rozwiązanie tego problemu". 
> > > 
> > > Istnieje dowód formalny że ŻADEN język programowania nie spełnia 
> > > takiego postulatu.
> > 
> > Oczywiście, jeżeli spojrzymy na tę kwestię bardzo radykalnie.
> > Wydaje się jednak, że np. w środowisku Pythona istnieje pewien konsensus
> > co do tego, jak powinny wyglądać typowe rozwiązania dla typowych problemów.
> > 
> > Problemem C++a jest to, że on sam w sobie ma dużo "warstw geologicznych",
> > co już na starcie utrudnia osiągnięcie tego celu. Dwie osoby, które mówią,
> > że "znają biegle C++", mogą tak naprawdę znać dwa zupełnie różne języki.
> 
> to ze mozna problemy kodowac w roznych stylach to jeszcze nie jest taki problem (w kontekscie omawianej kwestii)
> 
> problemem jest to by nauczyc sie i wyrobic sobie samemu jakis okreslony styl, tj nauczyc sie typowych rozwiazan,
> re-uzywac ich i byc z nich zadowolonym, mi to w c zajelo pare lat
> 
> kolejnym krokiem wydawaloby mi sie by nauczyc sie kodowac w ramach danego stylu coraz szybciej i coraz bardziej bezbolesnie - ale nie wiem czy to nie jest mrzonką 
> (wraz z doswiadczeniem koduje nieco lzej i szybciej ale ciagle sie jednak niezle mecze przy kilkutygodniowych sesjach z kodem)

ps odnosnie tych wypracowanych wzorcow moge pochwalic sie dosyc oryginalna biblioteczką do pracy na tekstach ktorą
napisalem 

nazywa sie "icl" - initial chunk library, konkretnie mam napisana jej prostą (ale skończoną i calkiem uzywalną) postac "small-icl.c"

nizej przyklady uzycia tej bibliotteczki,
ogolnie pozwala ona na uzywanie operacji na tekstach i plikach z tekstem z zaskakujacą nieco prostaotą,
podobna do pythonowskiej a moze i czasem wieksza
(moze szasem slabsza moze czasem lepsza, trudno mi na dany moment ocenic) jest tez w sumie calkiem wydajna, niema niepotrzebnych kopiowan, np jesli che posortowac 
linei w pliku to buduje tablice z adresami poczatka i konca lini sortuje ja i wyswietlam dane przy jej uzyciu nie dotykajac oryginalnego obrazu pliku w ram






#include "small-icl.c"

//copy a file

int main()
{
  chunk x = LoadChunk("some.exe");

  SaveChunk(x, "copy of some.exe");

  return 0;

}





#include "small-icl.c"

int main()
{
  // append given string to a file

  chunk d = PrintfToChunk("<one %d two %d three %d>", 11,21,31);
  AppendChunkTextMode(d, "alasca.txt");
  return 0;

}


#include "small-icl.c"

int main()
{
  // read text file and add a line numbers to it on the left

  chunk d = LoadChunk("notes.txt");
  chunks s = SplitAfterCharacter(d, 0x0a);

  int len = ChunksLength(s);

  CreateFile("notes with numbered lines.txt");

    for(int i=0; i<len; i++)
    {
      AppendChunk(PrintfToChunk("%d ", i), "notes with numbered lines.txt");
      AppendChunk(s.beg[i], "notes with numbered lines.txt");
    }


  return 0;

}



#include "small-icl.c"

int main()
{

     // extract all integer numbers form given text
     // and print them to the console

     char* text = " we got 7 6 zz5z 89u 83 z-3z9";

     chunk t = Chunk(text);

   for(;;)
   {
     chunk m = FindFirstEmbeddedIntegerChunk(t);

     if(ChunkIsEmpty(m)) break;

     int i = ConvertWordChunk2Int(m);
     printf("%d ",i);

     t.beg=m.end+1;
   }

   return 0;

}

ten przyklad powyzej jest stary pozniej dorobilem  
lepsza wersje

  void AddInt(int val)
 {
   printf("\n int digged:      %d", val);
 }

 int main(void)
 {
   char* txt = "some: 100, 200, 300; then: 3, 4, 5, 6, 7, 8, 9; and then: -10, -20, -30; 1 2 3 4 5 6 22222222222 77 88 -111111111111 99 99999999999";

     char* p = txt;
      int value;

     while(DigInt(&p, &value)) 
      AddInt(value);
 }




#include "small-icl.c"

int main()
{

     // sort lines in a file,
     // and save sorted

     chunk notes = LoadChunk("notes.txt");
     chunks lines = SplitAfterCharacter(notes, 0x0a);
     Quicksort(lines);
     SaveChunks(lines, "notes sorted.txt");

     return 0;

}

int main()
{


     // check if given file contains word alice

     chunk notes = LoadChunk("notes.txt");
     chunks lines = SplitAllStdWords(notes);

     int count = 0;

     for(chunk* s = lines.first; s<=lines.last; s++)
     {
       if(Compare(*s, Chunk("alice"))==0)
        count++;
     }

     if(count>0) printf("alice is present");

     return 0;

}

przyklady byly wymyslane ad-hoc ogolnie mialem wrazenie ze przy pomocy tej mojej biblioteczki mozna zrobic latwo wszystko na plikach tekstowych (moga byc tez w sumie binarne jesli ktos chialby wykonywac na nich podobne operacje do tych jakie wykonuje si ene tekstowych co chyab nie jest jednak czeste) przy pomocy kilkolinijkowych programikow jak wyzej

nie myslalem co prawda o jakiejs ogromnej ilosci 
przypadkow i ni szukalem na razie czegos czego si enie da zrobic.. nad biblioteczka pracowalem z pol roku temu
ale jestem z niej zadowolony, w sumie jest to project open source jest maly ale mz to naprawde dobry mega oryginalny projekt
Technical Details
Message-ID: <440434da-e157-4cf1-9e91-c36ce96d1711@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!n21no4995782qta.1!news-out.google.com!j72ni1739itb.0!nntp.google.com!y18no3873081itc.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <451e90e7$0$17965$f69f905@mamut2.aster.pl> <b1e91861-9e4f-4b2e-be9f-b9a47ca8d719@googlegroups.com> <58e14e55$0$5152$65785112@news.neostrada.pl> <50630553-5585-4c79-b204-10decc20648f@googlegroups.com> <almarsoft.3884412123853337381@news.v.pl> <3b940da0-86b9-4d94-84c9-9de94f1bea6f@googlegroups.com> <eea8e297-771f-4bf5-87ab-56956e65f679@googlegroups.com>

Show Full Headers
Complete Article Headers
X-Received: by 10.31.156.204 with SMTP id f195mr5669101vke.16.1491251283698;        Mon, 03 Apr 2017 13:28:03 -0700 (PDT)
X-Received: by 10.157.33.35 with SMTP id i32mr756762otb.19.1491251283651; Mon, 03 Apr 2017 13:28:03 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!n21no4995782qta.1!news-out.google.com!j72ni1739itb.0!nntp.google.com!y18no3873081itc.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.c
Date: Mon, 3 Apr 2017 13:28:03 -0700 (PDT)
In-Reply-To: <eea8e297-771f-4bf5-87ab-56956e65f679@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=5.172.255.224; posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
NNTP-Posting-Host: 5.172.255.224
References: <451e90e7$0$17965$f69f905@mamut2.aster.pl> <b1e91861-9e4f-4b2e-be9f-b9a47ca8d719@googlegroups.com> <58e14e55$0$5152$65785112@news.neostrada.pl> <50630553-5585-4c79-b204-10decc20648f@googlegroups.com> <almarsoft.3884412123853337381@news.v.pl> <3b940da0-86b9-4d94-84c9-9de94f1bea6f@googlegroups.com> <eea8e297-771f-4bf5-87ab-56956e65f679@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <440434da-e157-4cf1-9e91-c36ce96d1711@googlegroups.com>
Subject: Re: ile czasu trzeba aby sie nauczyc c++?
From: "(fir)" <profesor.fir@gmail.com>
Injection-Date: Mon, 03 Apr 2017 20:28:03 +0000
X-Received-Bytes: 7466
X-Received-Body-CRC: 3958072681
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit