RTV forum PL | NewsGroups PL

Tablice w QBasic: Ograniczenia 64k i sortowanie 7x100000 - jak to działa?

[OT] QBasic

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Tablice w QBasic: Ograniczenia 64k i sortowanie 7x100000 - jak to działa?

Goto page Previous  1, 2, 3  Next

RoMan Mandziejewicz
Guest

Thu Jun 12, 2014 3:47 pm   



Hello bartekltg,

Thursday, June 12, 2014, 4:38:22 PM, you wrote:

Quote:
Jak to jest z tablicami (DIM) w tym języku? Podobno ograniczone są do 64k.
Da się posortować w tym języku tablicę o wielkości 7x100000?
Przy takiej wielkości używa się już baz danych do sortowania (szybciej
będzie zaindeksować).
Że co?
Że masz zastrzeżenia co do tego, że indeksowanie bazy
"Bazy"? Zbiór danych;

7x100000

Quote:
jest szybsze od jej fizycznego posortowania? Wink
To jest zależne od rozmiaru pojedyńcxzego klocka.

I umiejętności programisty... I użytych narzędzi. Bo sortowanie takiej
tablicy w pamięci banalne nie jest.

Quote:
Posortowanie intów (czy kwaternionów na doublach;)) będzie
znacznie szybsze (do tego znacząco mniej pamięciożerne,
a potem użycie tej struktury znów będzie znacznie szybsze*)
Jeśli natomiast klockiem jest kilobajtowi struktura,
a do tego jej porównanie jest szybkie, to posortowanie
listy indeksów/wskaźników będzie szybsze, bo omijamy spore
kopiowania.
...a, no chyba że w QBasic.. Wink
Zapomnij o QBasic. Nawet w dużych systemach nie sortuje się już baz
fizycznie, zawsze przez indeks - tak jest szybciej. Choć niekoniecznie
użytkownik/programatoł (programista wie) musi o tym wiedzieć.
Nikt nie mówił o _bazie_. Pytacz ma małą (no, chyba, że siedzi na
atmedze 'tablicę'. Baz się nie sortuje, bo najczęściej klocek
jest tam duży, a potrzebujemy _wielu_ indeksów.

Pytacz chciał to robić w QBasicu... Ja, mając takie narzędzia jak mam,
niemal z zamkniętymi oczami zassałbym dane do bazy (bo jakoś one są
zapisane, nieprawdaż?) i za chwilę byłyby posortowane „z palca” -
komendami xBase, nawet bez pisania programu.
Ewentualnie program musiałbym napisać do samego zaimportowania danych.

Quote:
Bazy danych i ich zastosowania to szczególny dział programowania.
I poza nim cały czas sortuje się bezpośrednio dane gdy jest to
szybsze, bo nierzadko jest to szybsze.

Zresztą, nie ma co wierzyć, każdy może sam sprawdzić.

Różnie bywa, zależy od skali.

[...]

--
Best regards,
RoMan
Nowa strona: http://www.elektronika.squadack.com (w budowie!)

Robert Wańkowski
Guest

Thu Jun 12, 2014 3:57 pm   



"JK"
Quote:
Czy ty czasem nie mylisz QBasic (DOS) z VBasic (Visual Basic, Windows)?


Nie, problem próbowano rozwi±zać w Excelu (VB), ale to sortowanie jest
specyficzne i muszę to zrobić sam. A potrafię jedeynie co¶ napisać w
Basic-u.

Robert

bartekltg
Guest

Thu Jun 12, 2014 5:18 pm   



On 12.06.2014 16:52, Robert Wańkowski wrote:
Quote:
"John Smith"
Co¶ więcej o systemie powiesz? Z reguły każda implementacja Basic-a
jest inna.
Na pewno da się posortować tablicę tej wielko¶ci, z tym zastrzeżeniem,
że je¶li RAMu nie starczy, to będzie to trwało odpowiednio długo.


System to XP, RAM ile¶ tam GB.

To czemu qbasic?


Quote:
Niby taki program działa. Zapisuję warto¶ć 33 i j± oczytuję.

DIM Tablica(100000, Cool
Tablica(100000, Cool = 33
PRINT Tablica(100000, 8)

Ale w wielu miejscach czytałem w tym tonie podobne stwierdzenia:
"Najmniejsza tablica moze zajmowac 1 bajt, najwieksza 64KB.

A pisz± to o Twojej wersji QBasica? Bo ta uwaga możę dotyczy
interpretera w MS-DOS?

BTW, Dla danych powyżęj pewnej wielko¶ći lepiej użyć pamięci
dynamicznej.
Visual Basic na pewno to umożliwiał, Q chyba też:
http://rosettacode.org/wiki/Arrays#Dynamic


Quote:
Z danych tych mozna wyliczyc, ze tablica typu SINGLE PRECISION moze miec
najwyzej 16384 elementy (64x1024/4).
Deklaracja DIM kub(30,30,30) usiluje stworzyc tablice o 29791 elementach
(31x31x31), a to jest ok. 13000 elementow wiecej niz pozwala na to jezyk
QBasic."
http://infgeo.strefa.pl/Kl2/qbasic.htm

To jest o tym dosowym starociu.


Quote:
Dlatego chciałem zapytac m±drzejszych czy obliczenia i sorotwanie na
takiej ilo¶ci danych zrobię w QBasic-u.



Quote:

Problem chyba tu już opisywałe¶.

Je¶li wybór QBasica bierze się z tego, że ten język znasz
to ¶ci±gnij choćby to:

http://www.visualstudio.com/downloads/download-visual-studio-vs#DownloadFamilies_4

darmowa wersja visual basica, starsza, ale dzięki temu pójdzie pod
windows XP.

Na zachętę:

http://social.msdn.microsoft.com/Forums/vstudio/en-US/d88d332d-5fce-4f2a-bb9d-eb7b2e13e356/maximum-size-of-an-array-vbnet?forum=vbgeneral

http://msdn.microsoft.com/en-us/library/x397t1yt%28VS.71%29.aspx

żadnych problemów z ograniczeniem wielko¶ci. Ile RAMu i przestrzeni
adresowej, taka tablica.

pzdr
bartekltg

bartekltg
Guest

Thu Jun 12, 2014 5:39 pm   



On 12.06.2014 17:47, RoMan Mandziejewicz wrote:
Quote:
Hello bartekltg,

Thursday, June 12, 2014, 4:38:22 PM, you wrote:

Jak to jest z tablicami (DIM) w tym języku? Podobno ograniczone s± do 64k.
Da się posortować w tym języku tablicę o wielko¶ci 7x100000?
Przy takiej wielko¶ci używa się już baz danych do sortowania (szybciej
będzie zaindeksować).
Że co?
Że masz zastrzeżenia co do tego, że indeksowanie bazy
"Bazy"? Zbiór danych;

7x100000

Siedemset tysiety klocków czy tablica dwuwymiarowa 7x100 000,
tego dalej nie wiem.

Quote:
jest szybsze od jej fizycznego posortowania? Wink
To jest zależne od rozmiaru pojedyńcxzego klocka.

I umiejętno¶ci programisty... I użytych narzędzi. Bo sortowanie takiej
tablicy w pamięci banalne nie jest.

Takiej? Je¶li mie¶ci się w pamięci, jest trywialne.
Autor napsiał, że ma kilka GB dostępnej.



[quote]
Pytacz chciał to robić w QBasicu... Ja, maj±c takie narzędzia jak mam,
niemal z zamkniętymi oczami zassałbym dane do bazy (bo jako¶ one s±
zapisane, nieprawdaż?) i za chwilę byłyby posortowane

Robert Wańkowski
Guest

Thu Jun 12, 2014 6:41 pm   



"bartekltg"
Quote:
A pisz± to o Twojej wersji QBasica? Bo ta uwaga możę dotyczy
interpretera w MS-DOS?


I tu chyba trafiłe¶. My¶lałem że jak co¶ się nazywa QBasic to niezależnie
pod jakim system będzie działać to możliwo¶ci będa takie same.

Ten mój QBasic jaki¶ nowszy.
Cytaty z jego helpa "QB64 is a BASIC compatible Editor and C++ compiler that
creates working
Executable files from Qbasic BAS files that can be run on 32 or 64 bit PC's
using WINDOWS(XP, Vista and newer), LINUX or MAC(OSX only). The goal is to
be
100% compatible with QuickBasic 4.5 plus add hundreds of new abilities such
as
program icons and custom sized windows and a great Editor with a new Help
Menu."
Po wpisaniu LPRINT 10*8 drukarka USB (Win XP) wydrukowała wynik.

Robert

Robert Wańkowski
Guest

Thu Jun 12, 2014 6:43 pm   



Ten mój QBasic Smile
http://www.qb64.net/forum/index.php?topic=6007.0

Robert

Włodzimierz Wojtiuk
Guest

Thu Jun 12, 2014 6:46 pm   



On 2014-06-12 12:59, RoMan Mandziejewicz wrote:
Quote:
Hello Włodzimierz,

Thursday, June 12, 2014, 12:52:08 PM, you wrote:

Jak to jest z tablicami (DIM) w tym języku? Podobno ograniczone s± do 64k.
Da się posortować w tym języku tablicę o wielko¶ci 7x100000?
Przy takiej wielko¶ci używa się już baz danych do sortowania (szybciej
będzie zaindeksować).
Proponuję dBaseII

A masz gdzie¶ instalkę? Wink Dałby radę.

FoxBase 2.0 nie uruchamia się na nowszych systemach...



Oj, trudno będzie, już predzej Clipper.
Nie mam stacji 5' :-(

Włodek

A.L.
Guest

Thu Jun 12, 2014 7:40 pm   



On Thu, 12 Jun 2014 20:43:54 +0200, Robert Wa?kowski <robwan@wp.pl>
wrote:

Quote:

To nie jest oryginalny QBasic Microsoftu

A.L.

bartekltg
Guest

Thu Jun 12, 2014 7:40 pm   



On 12.06.2014 20:43, Robert Wańkowski wrote:
Quote:

To może i to się przyda.
http://www.qb64.net/forum/index.php?topic=10866.0
[tutorial do tablic i tablic dynamicznych w QB64]

pzdr
bartekltg

J.F.
Guest

Thu Jun 12, 2014 7:43 pm   



"RoMan Mandziejewicz" napisał w wiadomości grup
dyskusyjnych:264888771.20140612174739@pik-net.pl.invalid...
Quote:
Że masz zastrzeżenia co do tego, że indeksowanie bazy
"Bazy"? Zbiór danych;

7x100000

jest szybsze od jej fizycznego posortowania? Wink
To jest zależne od rozmiaru pojedyńcxzego klocka.

I umiejętności programisty... I użytych narzędzi. Bo sortowanie
takiej
tablicy w pamięci banalne nie jest.

RoManie, czego Ty uzywasz ? To juz nie czasy ZX, XT czy AT - nie wiemy
czego 7,
ale jak 100 tys rekordow zmiesci sie w 4GB, to banalne jest, zwykly
qsort.
A jak ktos ma drozszy komputer, procesor i kompilalator z serii x64,
to i 4GB mu niegrozne :-)

Quote:
Pytacz chciał to robić w QBasicu... Ja, mając takie narzędzia jak
mam,
niemal z zamkniętymi oczami zassałbym dane do bazy (bo jakoś one są
zapisane, nieprawdaż?) i za chwilę byłyby posortowane „z palca” -
komendami xBase, nawet bez pisania programu.

Zalezy co dalej z tymi danymi - jak np chce ladnie na dysku zapisane
.... glowice moze urwac przy kopiowaniu :-)

Quote:
Zresztą, nie ma co wierzyć, każdy może sam sprawdzić.
Różnie bywa, zależy od skali.

Excel chyba potrafi Smile
A Matlab, nawiazujac do niedawnej dyskusji ?

J.

RoMan Mandziejewicz
Guest

Thu Jun 12, 2014 8:37 pm   



Hello bartekltg,

Thursday, June 12, 2014, 7:39:30 PM, you wrote:

[...]

Quote:
Pytacz chciał to robić w QBasicu... Ja, mając takie narzędzia jak mam,
niemal z zamkniętymi oczami zassałbym dane do bazy (bo jakoś one są
zapisane, nieprawdaż?) i za chwilę byłyby posortowane „z palca” -
komendami xBase, nawet bez pisania programu.
Czyli jednak moja uwaga 'a, no chyba, ze w Qbasicu' była słuszna.
W czymkolwiek innym, gdzie nie masz ograniczeń co do wielkości
tablicy zwykłe sortowanie będzie szybsze. Choćby o komunikacje.
Ewentualnie program musiałbym napisać do samego zaimportowania danych.
I machać taką garstką danych tam i z powrotem, miedzy 10 programami,
wyciągać kombajn jak baza danych... Autor wyraźnie chce przetwarzać
te dane dalej.

W QBasicu? To lepiej je przetwarzać w FoxPro :P

Quote:
Bazy danych i ich zastosowania to szczególny dział programowania.
I poza nim cały czas sortuje się bezpośrednio dane gdy jest to
szybsze, bo nierzadko jest to szybsze.
Zresztą, nie ma co wierzyć, każdy może sam sprawdzić.
Różnie bywa, zależy od skali.
Skala była podana. <1M elementów.
Jeśli byłoby ich na TBajty, rzeczywiście baza danych byłaby
wartym rozważenie rozwiązaniem.

Oj tam. Warunków było trochę więcej - dochodzi jeszcze programista i
dostępne narzędzia.

Quote:
Sortowanie z użyciem dysku nie jest bardzo trudne, ale napisanie już
będzie czasochłonne (jest fajny algorytm z dwoma przebiegami zapisu
i odczytu, obecnie chyba najszybszy do takich zdań przy niazbyt
wielkich danych (TB) ).

Ale my nie o tym... Jak będę miał potrzebę przewalania wielkiej ilości
danych w sposób szybki, to nawet się nie będę zastanawiał, tylko
dziecko własne poproszę o pomoc. On się na tym lepiej zna chyba od nas
tu wszystkich :)

Ja już od 7 lat nie programuję - 20 lat w zawodzie wystarczy :P

--
Best regards,
RoMan
Nowa strona: http://www.elektronika.squadack.com (w budowie!)

RoMan Mandziejewicz
Guest

Thu Jun 12, 2014 9:15 pm   



Hello J.F.,

Thursday, June 12, 2014, 9:43:52 PM, you wrote:

Quote:
Że masz zastrzeżenia co do tego, że indeksowanie bazy
"Bazy"? Zbiór danych;
7x100000
jest szybsze od jej fizycznego posortowania? Wink
To jest zależne od rozmiaru pojedyńcxzego klocka.
I umiejętności programisty... I użytych narzędzi. Bo sortowanie
takiej tablicy w pamięci banalne nie jest.
RoManie, czego Ty uzywasz ? To juz nie czasy ZX, XT czy AT - nie
wiemy czego 7, ale jak 100 tys rekordow zmiesci sie w 4GB, to
banalne jest, zwykly qsort. A jak ktos ma drozszy komputer, procesor
i kompilalator z serii x64, to i 4GB mu niegrozne Smile

Ale ja się nie przejmuję tym, gdzie fizycznie te dane będą obrabiane
:)

Quote:
Pytacz chciał to robić w QBasicu... Ja, mając takie narzędzia jak
mam, niemal z zamkniętymi oczami zassałbym dane do bazy (bo jakoś
one są zapisane, nieprawdaż?) i za chwilę byłyby posortowane „z
palca” - komendami xBase, nawet bez pisania programu.
Zalezy co dalej z tymi danymi - jak np chce ladnie na dysku zapisane
... glowice moze urwac przy kopiowaniu Smile

Bez żartów - to się nawet za starych czasów nie robiło. A teraz mam
SSD :P

Quote:
Zresztą, nie ma co wierzyć, każdy może sam sprawdzić.
Różnie bywa, zależy od skali.
Excel chyba potrafi Smile

100000 wierszy? Myślę, że się udławi :(

Quote:
A Matlab, nawiazujac do niedawnej dyskusji ?

Nie używam. Chyba za stary jestem, żeby się jeszcze go nauczyć.

--
Best regards,
RoMan
Nowa strona: http://www.elektronika.squadack.com (w budowie!)

J.F.
Guest

Thu Jun 12, 2014 9:26 pm   



Użytkownik "RoMan Mandziejewicz" napisał w wiadomości
Hello J.F.,
Quote:
Pytacz chciał to robić w QBasicu... Ja, mając takie narzędzia jak
mam, niemal z zamkniętymi oczami zassałbym dane do bazy (bo jakoś
one są zapisane, nieprawdaż?) i za chwilę byłyby posortowane „z
palca” - komendami xBase, nawet bez pisania programu.
Zalezy co dalej z tymi danymi - jak np chce ladnie na dysku
zapisane
... glowice moze urwac przy kopiowaniu :-)

Bez żartów - to się nawet za starych czasów nie robiło. A teraz mam
SSD Razz

Nie mam zaufania do SSD :-)

Quote:
Zresztą, nie ma co wierzyć, każdy może sam sprawdzić.
Różnie bywa, zależy od skali.
Excel chyba potrafi Smile
100000 wierszy? Myślę, że się udławi Sad

sekunde mu to zajmuje :-)

Quote:
A Matlab, nawiazujac do niedawnej dyskusji ?
Nie używam. Chyba za stary jestem, żeby się jeszcze go nauczyć.

Ale FFT w Foxpro nie policzysz :-P

J.

RoMan Mandziejewicz
Guest

Thu Jun 12, 2014 9:30 pm   



Hello J.F.,

Thursday, June 12, 2014, 11:26:46 PM, you wrote:

[...]

Quote:
A Matlab, nawiazujac do niedawnej dyskusji ?
Nie używam. Chyba za stary jestem, żeby się jeszcze go nauczyć.
Ale FFT w Foxpro nie policzysz Razz

W czasie rzeczywistym - oczywi¶cie, że nie.

--
Best regards,
RoMan
Nowa strona: http://www.elektronika.squadack.com (w budowie!)

Robert Wańkowski
Guest

Thu Jun 12, 2014 10:10 pm   



"bartekltg"
Quote:
Ten mój QBasic Smile
http://www.qb64.net/forum/index.php?topic=6007.0
To może i to się przyda.
http://www.qb64.net/forum/index.php?topic=10866.0
[tutorial do tablic i tablic dynamicznych w QB64]


Przyda się z pewno¶ci±. Dziękuję.
Pozostaje kwestia wydajno¶ci. Najpierw muszę zaimportować dane,
uporz±dkować, przeliczyć (fukcje trygonometryczne) i przekonwertować na inny
format.

Robert

Goto page Previous  1, 2, 3  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Tablice w QBasic: Ograniczenia 64k i sortowanie 7x100000 - jak to działa?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map