Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 16 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Narabanie pascalu s pamatou

Registrovaný: 19.09.06
Prihlásený: 17.01.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok NapísalOffline : 26.09.2007 9:06

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?


Offline

Čestný člen
Čestný člen
Narabanie pascalu s pamatou

Registrovaný: 21.12.06
Prihlásený: 31.12.19
Príspevky: 9438
Témy: 95
Príspevok NapísalOffline : 26.09.2007 10:53

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?? :shock:







_________________
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
Offline

Užívateľ
Užívateľ
Narabanie pascalu s pamatou

Registrovaný: 16.05.07
Prihlásený: 01.08.17
Príspevky: 837
Témy: 6
Príspevok NapísalOffline : 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
Offline

Užívateľ
Užívateľ
Narabanie pascalu s pamatou

Registrovaný: 19.09.06
Prihlásený: 17.01.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok Napísal autor témyOffline : 26.09.2007 13:24

Akym sposobom by som sa mal pytat, aby sa to dalo?


Offline

Užívateľ
Užívateľ
Narabanie pascalu s pamatou

Registrovaný: 16.05.07
Prihlásený: 01.08.17
Príspevky: 837
Témy: 6
Príspevok NapísalOffline : 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
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.11.06
Prihlásený: 31.12.07
Príspevky: 677
Témy: 9
Príspevok NapísalOffline : 26.09.2007 17:50

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ť.


Offline

Užívateľ
Užívateľ
Narabanie pascalu s pamatou

Registrovaný: 19.09.06
Prihlásený: 17.01.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok Napísal autor témyOffline : 28.09.2007 6:54

Si si isty, ze to var a:array of integer v pascale funguje, lebo stale mu tam chybaju zatvorky.


Offline

Skúsený užívateľ
Skúsený užívateľ
Narabanie pascalu s pamatou

Registrovaný: 10.07.07
Prihlásený: 02.11.17
Príspevky: 1060
Témy: 0
Bydlisko: Bratislava
Príspevok NapísalOffline : 28.09.2007 8:47

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...
Offline

Užívateľ
Užívateľ
Narabanie pascalu s pamatou

Registrovaný: 28.04.07
Prihlásený: 03.11.09
Príspevky: 133
Témy: 1
Príspevok NapísalOffline : 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.


Offline

Užívateľ
Užívateľ
Narabanie pascalu s pamatou

Registrovaný: 19.09.06
Prihlásený: 17.01.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok Napísal autor témyOffline : 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?


Offline

Skúsený užívateľ
Skúsený užívateľ
Narabanie pascalu s pamatou

Registrovaný: 10.07.07
Prihlásený: 02.11.17
Príspevky: 1060
Témy: 0
Bydlisko: Bratislava
Príspevok NapísalOffline : 28.09.2007 12:01

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...
Offline

Užívateľ
Užívateľ
Narabanie pascalu s pamatou

Registrovaný: 02.09.05
Prihlásený: 17.11.10
Príspevky: 154
Témy: 1
Príspevok NapísalOffline : 28.09.2007 15:59

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.


Offline

Skúsený užívateľ
Skúsený užívateľ
Narabanie pascalu s pamatou

Registrovaný: 10.07.07
Prihlásený: 02.11.17
Príspevky: 1060
Témy: 0
Bydlisko: Bratislava
Príspevok NapísalOffline : 28.09.2007 16:38

Podobne,
ale to free(pole) asi nie, ale FreeMem(pole, SizeOf(Integer)*n); ;)







_________________
Nebo je modre, voda je mokra...
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.11.06
Prihlásený: 31.12.07
Príspevky: 677
Témy: 9
Príspevok NapísalOffline : 28.09.2007 18:00

jedna rada: kašli na pascal a všetky tieto kraviny


Offline

Užívateľ
Užívateľ
Narabanie pascalu s pamatou

Registrovaný: 28.04.07
Prihlásený: 03.11.09
Príspevky: 133
Témy: 1
Príspevok NapísalOffline : 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ť...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 04.09.06
Prihlásený: 05.03.09
Príspevky: 8
Témy: 0
Príspevok NapísalOffline : 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


Odpovedať na tému [ Príspevkov: 16 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Narabanie s heslom na Opere

v Sieťové a internetové programy

4

549

01.04.2007 17:03

okooko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Datum do pascalu?

v Assembler, C, C++, Pascal, Java

2

711

05.06.2007 22:27

Ivan11114 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Otázka ohľadom pascalu

v Assembler, C, C++, Pascal, Java

4

945

21.03.2014 13:36

1daemon1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. De/kodovanie v Pascalu

v Assembler, C, C++, Pascal, Java

2

522

17.04.2010 9:32

noff Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prepojenie pascalu a internetu...

v Assembler, C, C++, Pascal, Java

4

617

14.04.2007 11:30

neznamy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. potrebujem nieco z pascalu prosiim

v Assembler, C, C++, Pascal, Java

13

927

04.05.2008 16:25

neutronmind Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. 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 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problém s pamäťou

v Pevné disky a radiče

13

436

10.12.2014 21:15

Mandy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. problém s pamäťou

v Pamäte

6

523

17.02.2009 12:21

Luks Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pomoc s pamatou

v Pamäte

1

242

07.03.2013 19:05

jtbs Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. upgrade PC ram pamatou

v Pamäte

6

461

27.11.2011 18:20

tma24 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. problém s virtuálnou pamäťou

v Operačné systémy Microsoft

19

1515

15.07.2009 8:01

psichac Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problem s corsair pamatou

v Pamäte

6

575

14.03.2011 19:47

tomando1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. notebook s ssd pamatou

v Notebooky a netbooky

28

704

12.01.2015 9:18

brmbo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Doska s pamatou Blu nefunguje

v Pamäte

2

536

06.03.2011 21:50

ss11 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. problem s pamatou? v C++

v Assembler, C, C++, Pascal, Java

7

526

19.12.2011 23:41

apatka Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra