[ Príspevkov: 16 ] 
AutorSpráva
Offline

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

Registrovaný: 19.09.06
Prihlásený: 26.06.26
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 26.09.2007 9:06 | Narabanie pascalu s pamatou

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 | 95
NapísalOffline : 26.09.2007 10:53 | Narabanie pascalu s pamatou

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 | 6
NapísalOffline : 26.09.2007 12:08 | Narabanie pascalu s pamatou

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ý: 26.06.26
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
Napísal autor témyOffline : 26.09.2007 13:24 | Narabanie pascalu s pamatou

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 | 6
NapísalOffline : 26.09.2007 13:30 | Narabanie pascalu s pamatou

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 | 9
NapísalOffline : 26.09.2007 17:50 | Narabanie pascalu s pamatou

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ý: 26.06.26
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
Napísal autor témyOffline : 28.09.2007 6:54 | Narabanie pascalu s pamatou

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 | 0
Bydlisko: Bratislava
NapísalOffline : 28.09.2007 8:47 | Narabanie pascalu s pamatou

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 | 1
NapísalOffline : 28.09.2007 11:22 | Narabanie pascalu s pamatou

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ý: 26.06.26
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
Napísal autor témyOffline : 28.09.2007 11:43 | Narabanie pascalu s pamatou

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 | 0
Bydlisko: Bratislava
NapísalOffline : 28.09.2007 12:01 | Narabanie pascalu s pamatou

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: 153
Témy: 1 | 1
NapísalOffline : 28.09.2007 15:59 | Narabanie pascalu s pamatou

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 | 0
Bydlisko: Bratislava
NapísalOffline : 28.09.2007 16:38 | Narabanie pascalu s pamatou

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 | 9
NapísalOffline : 28.09.2007 18:00 | Narabanie pascalu s pamatou

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 | 1
NapísalOffline : 28.09.2007 19:31 | Narabanie pascalu s pamatou

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 | 0
NapísalOffline : 04.11.2007 21:04 | Narabanie pascalu s pamatou

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


 [ Príspevkov: 16 ] 


Narabanie pascalu s pamatou



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é programy

4

633

01.04.2007 17:03

okooko

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

Datum do pascalu?

v Backend

2

809

05.06.2007 22:27

Ivan11114

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

Otázka ohľadom pascalu

v Ostatné

4

1252

21.03.2014 13:36

1daemon1

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

prepojenie pascalu a internetu...

v Ostatné

4

689

14.04.2007 11:30

neznamy

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

De/kodovanie v Pascalu

v Backend

2

605

17.04.2010 9:32

noff

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

potrebujem nieco z pascalu prosiim

v Ostatné

13

1073

04.05.2008 16:25

neutronmind

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

1220

10.03.2017 19:05

kllr007

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

Problém s pamäťou

v Pevné disky a radiče

13

544

10.12.2014 21:15

Mandy

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

problém s pamäťou

v Pamäte

6

605

17.02.2009 12:21

Luks

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

pomoc s pamatou

v Pamäte

1

326

07.03.2013 19:05

jtbs

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

Problem s corsair pamatou

v Pamäte

6

663

14.03.2011 19:47

tomando1

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

notebook s ssd pamatou

v Notebooky a netbooky

28

810

12.01.2015 9:18

brmbo

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

upgrade PC ram pamatou

v Pamäte

6

559

27.11.2011 18:20

tma24

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

problém s virtuálnou pamäťou

v Windows

19

1620

15.07.2009 8:01

psichac

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

problem s pamatou? v C++

v Backend

7

654

19.12.2011 23:41

apatka

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

Problém s pamätou po sťahovaní

v Ostatné programy

1

485

13.08.2010 22:53

jaro100



© 2005 - 2026 PCforum, edited by JanoF