Article View: pl.comp.objects
Article #4653Re: Prawda o C++
From: Adam Karpierz
Date: Sat, 23 Jan 1999 02:12
Date: Sat, 23 Jan 1999 02:12
99 lines
4458 bytes
4458 bytes
Andrzej Lewandowski wrote:
>"Adam Karpierz" <karpierz@itl.pl> wrote:
>
>>Gwoli scislosci. Mowiac o programach numerycznych mialem na
>>mysli konstrukcje np. typu:
>
>>doubler array_ [2+N + 1];
>>double * array = &array[-N];
>
>>for ( int i = 0; i <= N; ++i )
>> {
>> parz[i] = (array[i] + array[-i]) / 2.0;
>> parz[-i] = parz[i];
>> npar[i] = (array[i] - array[-i]) / 2.0;
>> npar[-i] = - npar[i];
>> }
>
>>a nie o powyzszy przyklad z character ktory
>>(poniewaz nei me innego wyjscia w C) tez jest
>>przydatny.
>
>Panie Adamie, prosze napisac ze pan zartowal...
>
>A.L.
To zalezy z czego ? Z ostatniego zdania
(ze nie ma innego wyjscia w C niz skazanie na traktowanie
znaku jako liczby a nie typu i dlatego przyklad jest przydatny)
to oczywiscie ze nie tyle zartowalem ile sobie zakpilem po prostu.
Wredna prowokacja bylo takze w innym liscie (do Dariusza
Slusarczyka) moje zdanie:
> PS: Natomiast jestem ciekawy jak Pan ta metode
> zastosuje w przypadku tablic wielowymiarowych
> powiedzmy dwywymiarowych ?.
> Tu juz chyba tak latwo sie nie da prawda ?.
Prosze zobaczyc na jego odpowiedz na moj list i jego "implementacje"
tablicy dwuwymiarowej w C o dowolnych zakresach (indeksowanej ZNAKAMI).
Troche prowokacji i pewne rzeczy po prostu komentuja sie same.
Owszem D.Slusarczyk udowodnil ze sie da. Tak sie skoncentrowal
na tym ze nie pomyslal ze mnie chodzilo nie o wykazanie ze sie da
(bo sie da, z wskaznikami mozna wszytsko) ale W JAKI SPOSOB sie
da.. i jak to bedzie wygladalo :)
Odpowiedz D.SLusarczyka jest przykladem jak ja to nazywam
samokomentujacym sie.
Od tej chwili wszystko powiem na serio.
Przyklad z tablica double niestety musze Pana zmartwic zartem
nie byl, oczywiscie oprocz deklaracji samej tablicy zostawionej w
takiej postaci po to aby uwidocznic jej udziwnienie, nielogicznosc i
sztucznosc i zupelnej bezsensownosci merytorycznej
przykladu (no bo po jaka cho... pamietac cala czesc parzysta i nieparzysta
probek gdy wystarczy polowe). Tak mi sie jakos z rozpedu po prostu
bezsensownie napisalo. Nie powiem ze bylo inaczej bo bym
sklamal... Mylic sie jest rzecza.. itd.
Oczywiscie w praktyce w C stosowalem normalne w swiecie
funkcje do tworzenia tablic np:
double * array = matrix1(-N, N);
Niestety gdy pojawily sie PC-ty bylem kiedys postawiony
przed sytuacja _koniecznosci_ przepisania na C sporej czesci swojej
biblioteki w Algolu gdzie jak Pan zapewne doskonale pamieta deklaracja
tej tablicy bylaby chyba najnormalniejsza jaka sobie mozna awyobrazic
BEGIN
REAL ARRAY tab[-N : N];
% w ogolnym przypadku typ ARRAY nazwa[wyrp1:wyrk1, wyrp2:wyrk2,...];
...
END;
i naprawde stosowalem z powodzeniem powyzszy sposob w C
no bo inaczej pozostalo by mi mozolne przeliczanie indeksow z Algolu
tak aby kazda tablica byla indeksowana od 0.
Prosze mi powiedziec po co ? Aby sie dostosowac do ograniczen C
w tym wzgledzie i uczynic wcale dobry kod zupelnie nieczytelnym i
nielogicznym ?. Wolalem to drugie wyjscie czyli dostosowac C
do moich potrzeb.
Jako swoj prywatny standard przyjalem tez realizacje
tablic wiecej niz 1 wymiarowych wylacznie jako tablic pointerow.
Tez mi sie to bardzo oplacilo.
Oczywiscie mowie o C.
W C++ juz malo pisalem rzeczy numerycznych a do tablic
stosowalem po prostu najnormalniej w swiecie klasy.
Ciekawy jestem Panskiej reakcji na to co napisalem nawet jesli
mialaby byc skrajnie nieprzyjemna.
Pozdrawiam
--
Adam Karpierz
Poszukuje stalej pracy, moje dane:
http://www.adares.alpha.pl/cv.htm
Technical Details
Message-ID:
<36a930c3.0@news.vogel.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!news.task.gda.pl!news.memax.krakow.pl!dumb.iinf.polsl.gliwice.pl!news.vogel.pl!194.204.186.195References:
<36A623E1.A4AF7B72@zeus.polsl.gliwice.pl> <36a6d8c3.0@news.vogel.pl> <36a7cf5f@news3.ibm.net> <788lpj$k6e$1@zeus.polsl.gliwice.pl> <36a90b54@news3.ibm.net>Show Full Headers
Complete Article Headers
From: "Adam Karpierz" <karpierz@itl.pl> Newsgroups: pl.comp.lang.c,pl.comp.objects References: <36A623E1.A4AF7B72@zeus.polsl.gliwice.pl> <36a6d8c3.0@news.vogel.pl> <36a7cf5f@news3.ibm.net> <788lpj$k6e$1@zeus.polsl.gliwice.pl> <36a90b54@news3.ibm.net> Subject: Re: Prawda o C++ Date: Sat, 23 Jan 1999 03:12:35 +0100 Lines: 102 X-Newsreader: Microsoft Outlook Express 4.72.3110.1 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 NNTP-Posting-Host: 194.204.186.195 Message-ID: <36a930c3.0@news.vogel.pl> X-Trace: 23 Jan 1999 03:15:31 +0100, 194.204.186.195 Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!news.task.gda.pl!news.memax.krakow.pl!dumb.iinf.polsl.gliwice.pl!news.vogel.pl!194.204.186.195 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit