| | |
| Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
Autor | Správa |
---|
Registrovaný: 19.09.06 Prihlásený: 17.01.24 Príspevky: 749 Témy: 31 Bydlisko: Ružomberok&... |
Ak napisem
var
a:array[1..100] of integer;
a program nevyplni pocas svojho chodu vsetky a-cka, budu nepotrebne a-cka zaberat pamat? Ak ano, existuje nieco taketo:
var
a:array[1..n] of integer;
pricom n by som zadal zo vstupu?
|
|
Registrovaný: 21.12.06 Prihlásený: 31.12.19 Príspevky: 9438 Témy: 95 |
s pascalom som nerobil dlho, ale ani poriadne nerozumiem co sa pytas? Ak hces inicializovat pamet "init" potom ju zmazat aby neostala zplnena "close". Hore si zadefinoval pole do 100 dole do n. Ak sa nemylim, takze aka je otazka??
_________________ NB: ACER Aspire TimeLineX 3820TG: i5-460M; ATI HD5650; 4GB DDR3; HDD 640GB; OS: Win7 64bit + Taška: Zeroshock 3; USB Hub: aktiv Belkin 4port - USB2
Myš: MS laser mouse 6000; Headset: Logitech Digital Precision PC Gaming; Klávesnica: Logitech 200; USB key: Patriot SUPERSONIC USB3 - 32GB ; Mobil: SE Xperia Neo V
Repro:Bach 2.0; Tlač:HP 1410, 1315, 3330-kopírka |
|
Registrovaný: 16.05.07 Prihlásený: 01.08.17 Príspevky: 837 Témy: 6 | Napísal juho: 26.09.2007 12:08 | |
|
ak sa pytas takym sposobom, tak nie.
_________________ getch();?{readkey;?} na konci? !A naco! Riesenie je (Alt+F5)
99% pochopí a shaggy je druhá kategória |
|
Registrovaný: 19.09.06 Prihlásený: 17.01.24 Príspevky: 749 Témy: 31 Bydlisko: Ružomberok&... | Napísal autor témy stopa27: 26.09.2007 13:24 | |
|
Akym sposobom by som sa mal pytat, aby sa to dalo?
|
|
Registrovaný: 16.05.07 Prihlásený: 01.08.17 Príspevky: 837 Témy: 6 | Napísal juho: 26.09.2007 13:30 | |
|
sposobom vytvorenia pola natvrdo ako ci sa da var a:array.......
ale keby si spravil dynamicke pole prvkov tak to je uz nieco ine.
_________________ getch();?{readkey;?} na konci? !A naco! Riesenie je (Alt+F5)
99% pochopí a shaggy je druhá kategória |
|
Registrovaný: 17.11.06 Prihlásený: 31.12.07 Príspevky: 677 Témy: 9 |
pamäti sa inicializuje na začiatku také množstvo ako je deklarované. Ak deklaruješ var a: array[1..100] of int tak sa v pamäti vyhradí blok potrebný pre 100 integerov ktorý nemôže používať iná aplikácia
k druhej otázke: áno, existuje. Volá sa to dynamické pole, a deklaruješ to ako var a: array of integer. Čiže iba deklaruješ že ide o pole integeru ale nenapíšeš počet prvkov. V takomto prípade sa nealokuje pamäť, ale v prípade že budeš chceš pridať hodnotu do pola (napríklad 534. hodnotu) môže dôjsť k pretečeniu bufferu. S takýmto poľom je podobná práca ako s pevne deklarovaným, s tým rozdielom že mu musíš pred každým zápisom nastaviť veľkosť.
|
|
Registrovaný: 19.09.06 Prihlásený: 17.01.24 Príspevky: 749 Témy: 31 Bydlisko: Ružomberok&... | Napísal autor témy stopa27: 28.09.2007 6:54 | |
|
Si si isty, ze to var a:array of integer v pascale funguje, lebo stale mu tam chybaju zatvorky.
|
|
Registrovaný: 10.07.07 Prihlásený: 02.11.17 Príspevky: 1060 Témy: 0 Bydlisko: Bratislava |
stopa27 píše: Ak napisem var a:array[1..100] of integer; a program nevyplni pocas svojho chodu vsetky a-cka, budu nepotrebne a-cka zaberat pamat? Ak ano, existuje nieco taketo: var a:array[1..n] of integer; pricom n by som zadal zo vstupu?
no musis aj tak na zaciatku povedat:
priklad:
Kód: CONST MaxPorts = 2; MaxInSize = 255; MaxOutSize = 511;
VAR Framing, Overrun, Parity, Break : ARRAY [1..MaxPorts] OF WORD; OutBuffer : ARRAY [1..MaxPorts, 0..MaxOutSize] OF BYTE; InBuffer : ARRAY [1..MaxPorts, 0..MaxInSize] OF BYTE;
_________________ Nebo je modre, voda je mokra... |
|
Registrovaný: 28.04.07 Prihlásený: 03.11.09 Príspevky: 133 Témy: 1 | Napísal imcold: 28.09.2007 11:22 | |
|
stopa27 píše: Si si isty, ze to var a:array of integer v pascale funguje, lebo stale mu tam chybaju zatvorky.
V modernom pascale - delphi a freepascal dialekty, afaik.
|
|
Registrovaný: 19.09.06 Prihlásený: 17.01.24 Príspevky: 749 Témy: 31 Bydlisko: Ružomberok&... | Napísal autor témy stopa27: 28.09.2007 11:43 | |
|
CONST
MaxPorts = 2;
MaxInSize = 255;
MaxOutSize = 511;
VAR
Framing, Overrun, Parity, Break : ARRAY [1..MaxPorts] OF WORD;
OutBuffer : ARRAY [1..MaxPorts, 0..MaxOutSize] OF BYTE;
InBuffer : ARRAY [1..MaxPorts, 0..MaxInSize] OF BYTE;
V tomto pripade zase urobi pole od 1 do maxports, cize 1..2 nie?
|
|
Registrovaný: 10.07.07 Prihlásený: 02.11.17 Príspevky: 1060 Témy: 0 Bydlisko: Bratislava |
hej, alebo mozes urobit aj taketo nieco:
type PPomA=^TPomA;
TPomA=record
A:array[0..2,1..19] of string[150];
end;
var PA:PPomA;
no a potom niekde napriklad..
procedure Inicializuj;
begin
new(PA);
for i:=1 to 20 do PA^.A[0,i]:='';
for i:=1 to 20 do PA^.A[1,i]:='';
for i:=1 to 20 do PA^.A[2,i]:='';
dispose(PA);
end;
Vysvetlovat Ti to nebudem. Hovorim o moznostiach, ktore si uz dalej nastuduj.
_________________ Nebo je modre, voda je mokra... |
|
Registrovaný: 02.09.05 Prihlásený: 17.11.10 Príspevky: 154 Témy: 1 |
to audiotrack : array of integer sa deklaruje v Delphi. V pascali sa musi definovat ako array [0..0] of integer;
Vyzera to takto :
Kód: program dyn_pole;
type TPole = ^Mpole; Mpole = array [0..0] of Integer;
var pole : TPole; n : Integer;
begin GetMem(pole, SizeOf(Integer)*n); { n je pocet pozadovanych prvkov} if (pole = nil) then begin { ak sa nenasla pamat, ukoncime program } writeln('Nedostatok pamate .'); exit; end;
pole^[2] := 5; { ku polu sa potom pristupuje takto }
free(pole); { uvolnime pamat pouzivanu polom } end.
problem je asi ten, ze programator si musi strazit pretecenie (to znamena davat si pozor, aby si neukazoval na neexistujuci prvok)
Mimochodom zvaz pouzitie pola, pretoze ak chces velkost pola menit v zavislosti od dat (a casu), je vyhodnejsie pouzit linearny zoznam, pretoze je urcite lahsie najst pamat pre jednu bunku velkosti 8 B, ako pre pole o velkosti mozno 10 kB.
|
|
Registrovaný: 10.07.07 Prihlásený: 02.11.17 Príspevky: 1060 Témy: 0 Bydlisko: Bratislava |
Podobne,
ale to free(pole) asi nie, ale FreeMem(pole, SizeOf(Integer)*n);
_________________ Nebo je modre, voda je mokra... |
|
Registrovaný: 17.11.06 Prihlásený: 31.12.07 Príspevky: 677 Témy: 9 |
jedna rada: kašli na pascal a všetky tieto kraviny
|
|
Registrovaný: 28.04.07 Prihlásený: 03.11.09 Príspevky: 133 Témy: 1 | Napísal imcold: 28.09.2007 19:31 | |
|
audiotrack píše: jedna rada: kašli na pascal a všetky tieto kraviny
Kašľanie je dobrý spôsob ako sa niečo naučiť...
|
|
Registrovaný: 04.09.06 Prihlásený: 05.03.09 Príspevky: 8 Témy: 0 | Napísal TrSek: 04.11.2007 21:04 | |
|
Chapem naco sa pytas.
To co potrebujes ty je dynamicka alokacia pamati. Musis vsak este prejst dlhu cestu aby si mohol alokovat mem a hrat sa so smernikmi.
Pre zaciatok si najdi ako sa robi zretazeny zoznam v pascale.
PS: Napriklad tu www,trsek.com/zadania
|
|
| Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Narabanie s heslom na Opere v Sieťové a internetové programy | 4 | 549 | 01.04.2007 17:03 okooko | | Datum do pascalu? v Assembler, C, C++, Pascal, Java | 2 | 711 | 05.06.2007 22:27 Ivan11114 | | Otázka ohľadom pascalu v Assembler, C, C++, Pascal, Java | 4 | 945 | 21.03.2014 13:36 1daemon1 | | De/kodovanie v Pascalu v Assembler, C, C++, Pascal, Java | 2 | 522 | 17.04.2010 9:32 noff | | prepojenie pascalu a internetu... v Assembler, C, C++, Pascal, Java | 4 | 617 | 14.04.2007 11:30 neznamy | | potrebujem nieco z pascalu prosiim v Assembler, C, C++, Pascal, Java | 13 | 927 | 04.05.2008 16:25 neutronmind | | NVIDIA nabídne ovladače navyšující výkon všech Pascalů v DX12 v Novinky | 21 | 1119 | 10.03.2017 19:05 kllr007 | | Problém s pamäťou v Pevné disky a radiče | 13 | 436 | 10.12.2014 21:15 Mandy | | problém s pamäťou v Pamäte | 6 | 523 | 17.02.2009 12:21 Luks | | pomoc s pamatou v Pamäte | 1 | 242 | 07.03.2013 19:05 jtbs | | upgrade PC ram pamatou v Pamäte | 6 | 461 | 27.11.2011 18:20 tma24 | | problém s virtuálnou pamäťou v Operačné systémy Microsoft | 19 | 1515 | 15.07.2009 8:01 psichac | | Problem s corsair pamatou v Pamäte | 6 | 575 | 14.03.2011 19:47 tomando1 | | notebook s ssd pamatou v Notebooky a netbooky | 28 | 704 | 12.01.2015 9:18 brmbo | | Doska s pamatou Blu nefunguje v Pamäte | 2 | 536 | 06.03.2011 21:50 ss11 | | problem s pamatou? v C++ v Assembler, C, C++, Pascal, Java | 7 | 526 | 19.12.2011 23:41 apatka |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|