Article View: pl.comp.lang.c
Article #247122Re: ile czasu trzeba aby sie nauczyc c++?
From: (fir)
Date: Mon, 03 Apr 2017 20:28
Date: Mon, 03 Apr 2017 20:28
196 lines
7200 bytes
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-mailReferences:
<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