Jump to content

Pascal programmas aizveras.


Tiermans
 Share

Recommended Posts

Labs rīts.

Vārdu sakot dotajā brīdī mācos Pascal. Kompilēšanai izmantoju DevPascal. Viss būtu labi līdz brīdim, kad jāpalaiž kāda gatava programma- tā atveras un vai nu aizveras, vai izpilda dažas komandas un tad aizveras. Ar piemēru būs vieglāk- šāds kods:

PROGRAM P3;

CONST PI=3.141592;

VAR R, L : REAL;

BEGIN

WRITE ('Ievadi rinka linijas radiusu R.');

READ ( R );

L:=PI*R*R;

WRITELN ('Rinka linijas laukums ir', L);

END.

 

Dotajai programmai tiek līdz Ievadi rinka linijas radiusu R. , un kad ievada ciparu un nospiež Enter, programma itkā ātri parāda un aizveras, taču neesmu drošs, ka parāda rezultātu, jo viss notiek pārāk ātri.

 

Varbūt neesmu to Pascal ideju sapratis un viņš iznes rezultātu tikai failā?

 

P.S. Tur parādās ®, bet tā ir foruma vaina, jo tur ir R burts iekavās.

Labots - Vilx-
Link to comment
Share on other sites

Tiermans

Mēģināju, tāpat aizveras.

Tāpēc domāju, ka kautkur kodā vaina, bet itkā nav.

Arī uz turbopascal rakstot tas pats notiek.

Link to comment
Share on other sites

Tiermans
(labots)

Pamēģini FreePascal.

 

Nedomāju, ka kompilatorā ir vaina.

 

USES CRT?

Papildināts: Nop, tas arī nepalīdz.

Labots - Tiermans
Link to comment
Share on other sites

Tiermans

ieleic 2x readln beigas dazreiz palidz.

 

Paldies, šis nostrādāja.

Bet kādēļ tā notiek, ka aizveras momentāni ciet?

Link to comment
Share on other sites

Divas reizes tāpēc, ka iepriekš izmantoji READ, nevis READLN, kā vajadzēja. READ nolasa visu līdz newline, bet pašu newline atstāj "nenolasītu". Pirmais READLN tad uzreiz sastopas ar newline un atgriežas. Nākamais READLN tad reāli arī gaida uz to newline.

 

Skaidrs?

  • Patīk 1
Link to comment
Share on other sites

Komandrindas programmas aizvēršanās pēc darba beigām nav gļuks, bet fīča.

Rakstot BAT failu, var ieplānot nākamo komandu, kas pratīs izpildīities, jo iepriekšējā negaidīs uz lietotāja inputu.

 

Tātad Start/Run/CMD [ENTER] jebšu [Windows]+[R] CMD [ENTER]

ierakstām programmas nosaukumu [ENTER]

--> programma izpildās. komandrindas logs neaizveras.

JA programma jāizpilda vēl kādu reizi, bultiņa uz augšu un [ENTER]

Link to comment
Share on other sites

Atceros VIL kā tu man šo pašu ieteikumu, devi 3 gadus atpakaļ :D Laiki iet , bet nekas tā arī nemainās :D

Link to comment
Share on other sites

Nu ir redzēti arī varianti, ka konsoles logs paliek atvērts pēc programmas darba beigām (pat nekādu inputu vairs negaidīja, loga title laikam pamainījās). Tagad gan nevarēšu pateikt, kas tie par gadījumiem/softiem bija.

Link to comment
Share on other sites

DOS programmām Windows vidē var(ēja) nodefinēt, vai tās aizveras pēc tam, kad to izpilde beigusies, vai logs vienkārši kļūst neaktīvs.

Link to comment
Share on other sites

To Vilks- nu apmēram sapratu :D

 

Kazarma- tas jau arī ir devPascal.

 

VIL- tas nav .bat fails, tas ir .exe.

Link to comment
Share on other sites

Laid to programmu no FAR manager, ja netīk aizverošās konsoles un negribas to konsoli attiecīgi sakonfigurēt.

Link to comment
Share on other sites

Aha, un kodu raksti notepadā un kompilē no komandrindas. Nav IDE vajadzīga, lai to visu darītu. Tikai vairums to nez kādēļ atzīst par ērtu un pareizu praksi.

Link to comment
Share on other sites

VIL- tas nav .bat fails, tas ir .exe.

Kad secīgi būs jāizpilda divi exe faili, iegūsi bat failu.

Piemērs:

1. laboratorijas darbā uzrakstīsi programmu, kas sagatavo atskaiti.

2. laboratorijas darbā uzrakstīsi programmu, atskaiti nosūta pa epastu.

 

Aha, un kodu raksti notepadā un kompilē no komandrindas. Nav IDE vajadzīga, lai to visu darītu. Tikai vairums to nez kādēļ atzīst par ērtu un pareizu praksi.

PL/SQL tā arī daru, tikai notepad vietā izmantoju Context redaktoru ar sintakses izgaismošanu.

Kompilēšanas nav - tā ir interpretēta valoda.

Link to comment
Share on other sites

VIL, IMHO komentārs nevietā - te runa tomēr ir par Pascal, nevis par citām valodām ;)

Link to comment
Share on other sites

Kad tikko uzliku 64bitu lazarus, tam nestrādāja 64 bitu debuggers.

Faktiski vienīgās strādājošās lietas bija sintakses izgaismošana un kompilēšana. Tā bija sāpe, bet pārvarama.

Ar vēlākām versijām kļūme tika salabota.

 

Es nepropagandēju notepada lietošanu, bet nav slikti, ja cilvēks neapjūk situācijās, ja ir pieejama tikai konsole un kompilators.

Link to comment
Share on other sites

Starp citu, par to, ka PL/SQL ir interpretējama valoda, nevis kompilējama - par to gan es nedaudz šaubos. Nedomāju, ka DBMS katru reizi interpretē kodu. Lai gan to drīzāk jājautā tiem, kas vairāk pārzina tos DBMS iekšējos procesus.

Link to comment
Share on other sites

interpetējama. Selektu izpildes plāni tiek noteikti pirms katra konkrētā laidiena.

Protams, šo to var padarīt, lai 10 secīgas izpildes strādā ar to pašu izpildes plānu.

 

 

http://www.dba-oracle.com/concepts/programming_pl_sql.htm

 

Traditionally, PL/SQL has been a compiled/interpreted language similar to Java. When PL/SQL code is loaded into the database it is compiled into an intermediate form, similar to the way Java is compiled into byte-code. This intermediate code is portable across Oracle databases. Later versions of Oracle (Oracle9i and 10g) will compile PL/SQL into native code for over 60 hardware platforms. This natively compiled code runs more efficiently, but it loses the ability to move to other Oracle databases without recompiling.
Labots - VIL
Papildināts par ORA kompilēšanu
Link to comment
Share on other sites

1kārt - selects un pl/sql ir dažādas lietas.

2kārt - pats devi citātu, kur minēts, ka PL/SQL tiek kompilēts natīvā kodā ("Later versions of Oracle (Oracle9i and 10g) will compile PL/SQL into native code ").

3kārt - arī 5 gadus vecos pdf no oracle.com ir runa par PL/SQL kompileriem.

 

offtopic panesās...

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...