local-stats-pixel fb-conv-api

Programmēšanas valodu pamati - Pascal vidē!16

Tā kā , domājams te ir arī cilvēki , kuri vēlas kļūt par programistiem (web programistiem), sākums visiem ir apmēram vienāds.
Pirmkārt ir nepieciešams kompilators, kurš jūsu kodu no burtiem pārvērstu programmā, modulī un tamlīdzīgās lietās.
Kā par piemēru varu piedāvāt Dev-Pascal kompilatoru, kurā arī tiks veidots dotais tutorial.
http://www.softpedia.com/get/Programming/Coding-languages-Compilers/Dev-Pascal.shtml
Lejupielādējiet programmu, es personīgi izmantoju default stilu, domājams, ka instalācis tutoriala neviens nepieprasīs.

Kad esam ieinstalējuši kompilatoru, atveram to.
Veidojam jaunu projektu File>New Project.
Lai arī ko jūs tur rakstītu, īpašas lomas tas pagaidām mums nespēlē.
Logā kurša atveras izvēlāmies Windows Application.

Tā kā dažreiz var gadīties kļūmes ar programmas palaišanu, iesaku saglabāt tukšu failu, aizvērt kompilatoru, tad sameklēt savu saglabāto failu (untitle.pas nevis untitled.db) un tikai tur veidot savas programmas.

Pirmais ar ko laikam būtu jāsāk ir tas, ka programma sastāv no 2 daļām , tās ir programmas ievaddaļa un programmas ķermenis.
Programmas ievaddaļā atrodas bibliotēku(moduļu) noteikšana, funkcijas, procedūras, mainīgie, etiķete(label), konstantes u.c.
Programmas ķermenī atrodas programmas izpildāmās darbības, ķermeni no ievad daļas atdala vārds "Begin" un programma beidzas ar vārdu "end."(ar punktu).

Tātad, programmas pirmā rinda satur informāciju par to, ko tieši darīs jūsu kods, vai tas būs jauns modulis vai programma.
Moduļa veidošanai tiek izmantota rinda "Unit untitled;", kur untitled ir jūsu moduļa vārds, bet moļi tiks apskatīti vēlāk.
Programma sākas ar vārdiem "Program P_R_G_M_1;", kur P_R_G_M_1 ir jūsu programmas vārds.

Programmas un moduļa vārds nevar saturēt atstarpes un sākties ar ciparu.

Tā kā mēs neradām nekādu saisti programmas ar citām programmām un failiem, mēs varam arī nepaziņot programmai, ka dotā programma ir vienkārši programma (noteikšana notiks automātiski).

Gandrīz visas rindas, valodā Pascal, beidzas ar semikola zīmi ";".

Varam sākt programmēt.

Vis vienkāršākā programma ,kura vienkārši izvada uz ekrānu paziņojumu "Hellow World!".

Kods:

begin
write('Hellow world!');
end.


Komanda write(); izvada uz ekrānu tekstu vai mainīgā saturu(writeln(a);) , ln pievienojums pie vārda write novietos kursoru nākošajā rindā pēc izvada.
Lai mūsu uzrakstu varētu redzēt un programma neaizvērtos pievienojam jaunu rindu Readln;

Kods:

begin
writeln('Hello World!');
readln;
end.


Komanda "Readln;","Read();" un "Readln();".
Lai saprastu ko dara dotā procedūra mums ir jānodefinē mainīgais.
Eksistē daudz un dažādu mainīgo tipi , pie tam, ka katrs var pievienot savus.

Vis izplatītākie mainīgo tipi:
Integer(Veselo skaitļu mainiigais),
Real(Daļskaitļu mainīgais),
Boolean(Logiskais mainīgais),
Char(Simbolu mainīgais),
String(teksta rindas mainīgais),
Byte(Veselo skaitļu mainiigais),
word(1 Vārda mainīgais)
Boolean tipa mainīgiem var piešķirt tikai 2 vērtības True vai False

Mainīgo definē pirms vārda begin (programmas ievaddaļā), un šim nolūkam izmanto vārdu "Var" priekšā mainīgajam.
Var i:integer;
z:string;
tutorial:integer;
b23232323,PROGRAMMAS_SAAKUMPUNKTA_NEZIN_TUR_KAUT_KAADA_MAINIGA_VARDS:integer;
Kurs viss, kas seko pirms :Mainīgā_tips; ir jūsu mainīgā nosaukums.

Mainīgie nedrīkst atkārtoties (variants "var a:integer; a:char;" ir nepareizs), kā arī mainīgais nevar sākties ar ciparu.

Kods:

var i:integer;
begin
Write('Ievadiet 1 veselu skaitli: ');
readln(i);
writeln(i);
readln;
end.


Dotā programma pieprasi ievadīt 1 veselu skaitli, kam seko ievadītā simbola nolasīšana kur mums palīdz read();
Iekavās norāda ko tieši ir jānolasa , ln pielikums norāda uz to ka nolasot programma pārvietos kursoru uz jauno rindu, kur arī izvadīs to ko nolasīja un saglabāja mainīgajā "i".

Komanda Readln; it kā nolasa, bet nesala neko, tādējādi aizturot programmu, lai tā neaizvērtos.

Matemātiskās darbības Paskālā.

* - reizināšana,- atņemšana, "/" vai "div" - dalīšana, sqrt(x) - kvadrātsakne, kur x ir mainīgais vai cipars, sqr(x); skaitļa kvadrāts , kur x ir skaitlis vai manīgais.

Paskalā ir dažādi veidi dabūt vēlamo rezultātu attiecībā uz matemātiskām darbībām:
1. Izvadīt uz ekrānu darbību bez mainīgā.(dotajā gadījumā reizinājumu)

Kods:

begin
write('3*4');
readln;
end.



2. Izvadīt uz ekrānu 2 vai vairāku mainīgo matemātisko darbību.

Kods:

var i,j:integer;
begin
i:=1;
j:=2;
writeln(i*j);
readln;
end.


kur j:=2; ir vērtības piešķiršana mainīgajam.

Lai piešķirt simbolu tipa mainīgajam vērtību (Char) ir jāizmanto apostrofi (j:='$');

Operātori.
Paskal vidē eksistē 3 operatoru veidi :
1: Cikls ar pirmspaurlbaldi
2: Cikls ar pēcpaurlbaldi
3: Cikls ar skaitītāju

Aplūkosim 3. variantu, ciklu ar skaitītāju.

Ja mums ir nepieciešamība izvadīt kādu tekstu zināmu reižu skaitu, tad tiek pielietots cikls ar skaitītāju.
Ciklam ir nepieciešams 1 veselā(Integer) tipa mainīgais. Pieņemsim, ka ir nepieciešams izvadīt uz ekrānu vārdu Hello 10 reizes, tad kods izskatīsies sekojoši:

Kods:

var i:integer;
begin
for i:=1 to 10 do
writeln('Hello');
readln;
end.


Rakstam vārdu 'For' kam seko mainīgā nosaukums(manā gadijumā tas ir 'i') kam noteikti ir jānosaka vērtība, ja cipari pieaugs tad ir jāizmanto vārdu 'to', kam seko skaitlis līdz kuram palieliāt mainīgo 'i', sasniedzot šo vērtību cikls apstāsies, un vis beidzot visam tam galā seko vārds 'do'.
To ko ir jāizpilda raksta uzreiz zem cikla.

Ja ir vairākas darbības lieto begin un end;(ar semikolu).

Kods:

var i:integer;
begin
for i:=1 to 10 do
begin
writeln('hello');
writeln('world');
end;
readln;
end.


Ja skaits iet no lielākā skaitļa uz mazāko tad vārda 'to' vietā ir jāizmanto vārds "downto', kas izskatīsies šādi:
i:=10 downto 1 do

2. Cikls ar pirms paurlbaldi.
Šo ciklu izmanto ja ir jādara kāda(s) darbība(s) nenoteiktu laiku, kamēr izpildīsies nosacijums.

Kods:

var i:integer;
begin
while i<10 do
begin
write('World ');
i:=i+1;
end;
readln;
end.



Rinda i:=i+1; nozīmē, ka mainīgajam i katru cikla izpildes reizi tiks pieskaitīts skaitlis 1.

rindu i:=i+1; var aizvietot ar komantu Inc(i);
3. Cikls ar pēcparulbaldi.

Kods:

var x:integer;
begin
repeat
writeln('Ziimogs');
inc(x,2);
until x=100;
readln;
end.



Izmantojor ciklu repeat...until ir visvieglāk uztaisīt bezgalīgu ciklu par nosacijumu izmantojot vārdu salikumu keypressed (until keypressed;) , kas nodrošina cikla darbību līdz tiks nospista jebkura poga.

Lai palielinātu skaitli par skaitli lielāku nekā 1 iekavās ieliekam komatu un pieliekam pēc komata ciparu , par kuru palielināsies skaitītājs. {inc(x,2)}

Nosacijumi(Sazarojuma operātori).
Neviena programma neiztiek bez nosacījumiem, sazaroju ma operātora vispārīgā forma izskatās šādi: {if...then...else}

Kods:

var x,y:integer;
begin
Writeln('Ievadiet 2 veselus skaitlus');
readln(x,y);
{ doti 2 varianti pieprasāmo mainīgo nolasīšanai (lai darbotos jānoņem {figūriekavas})
readln(a)
readln(b)
}
IF a<>b then writeln('Ievadītais ',a,' nav vienāds ar ievadīto ',b)
else
if a
else
if a>b then writeln('Skaitlis ',a,' ir lielāks par skatili ',b)
else writeln('Skaitli ',a,' un ',b,' ir vienādi.');
readln;
end.



Dotajā variantā programma pieprasa iedīt 2 veselus skaitļus, tad tiek veikta noteikšana vai skaitlis a nav vienāds ar skaitli b ja tā ir tad tiek izvadīts paziņojums ja nav tad programma skatās otro daļu.
Turn notiek noteikšana vai skaitlis a ir mazāks par skaitli b ja tā tad nosacijums izpildās un izvadās sekojošs uzraksts, ja nē programma turpina darbību ejot pie nākošā nosacījuma.
Pēdējais un galīgais nosacījums nosaka vai skaitlis nosaka vai skaitlis a ir lielāks par skaitli b (kas ir bezjēdzīgi jo ja neipildās iepriekšējais nosacijums tad ir jau skaidrs ka skaitlis a ir lielāks par skaitli b) ja nosacījums neizpildās programa izvada uzrakstu ka skaitļi ir vienādi jo citu variantu vairs nav .

CRT Modulis.


Moduļa pieslēgšana notiek pirms visām pārējām darbībām ar "uses crt;" rindas palīdzību.

Moduļa crt pieslēgšana ļauj jums mainīt krāsu , uzstādīt pauzi , ievietot skaņu, attīrīt ekrānu, izvietot logus utt.

Krāsas.

Paskal vidē ir pieejamas 16 krāsas (0-16).

Kods:

uses crt;
begin
textcolor(lightred);
textbackgroud(lightblue);
write('Hellow World!');
readln;
end.



Dotā programma izvadīs uz ekrānu 2 vārdus Hellow World! nokrāsotus gaiši sarkanā krāsā un to apakšējā slāņa krāsa būs gaiši zila.

Pasls pieņem komandās (textcolor , textbackground) ne tikai vārdisku krāsu nosaukumus , bet arī ciparu apzīmējumus ,tādējādi textcolor(10); izvadīs tekstu ar gaiši zaļu krāsu.

Pauzue.

Pauzes pielietojums var būt visdažādākais ,tāpēc domāiet paši kur tad to pielietot.

Kods:

uses crt;
begin
delay(1000);
writeln('hello');
readln;
end.


Pēc dotā koda palaišanas , programma nogaidīs 1 sekundi (delay(1000);) un tad izvadīs uz ekrānu tekstu hello.

Ekrāna attīrīšana.

Ekrāna attīrīšana notiek ar clrscr; koda rindas palīdzību.

Kods:

uses crt;
begin
writeln('hello');
delay(1000);
clrscr;
readln;
end.


Dotajā piemērā programma izvadīs uz ekrānu uzrakstu hello, kuru notīrīs pēc 1 sekundes.

Pielietojot komandu ClrScr; uzreiz pēc komandas Textbackground(color); nomainīsies visa loga krāsa.

Skaņa

Ne visiem datoriem diemžēl tas strādās, bet kaut ko gan jau, ka dzirdēsiet.
Lai iedarbinātu skaņas signālu ir jāpielieto sound(x); komanda un skaņas atslēgšanai ir jālieto nosound; komanda, kur x ir frekvence(Hz).

Kods:

uses crt;
var x,i:integer;
begin
for i:=1 to 10 do
begin
x:=1000*i;
sound(x);
end;
begin
for i:=10 downto 1 do
begin
x:=1000*i;
sound(x);
end;
end.


Dotajā piemērā jūs (ja tas jums ir iespējams) dzirdēsiet sirēnas atdarinājumu paskal vidē.

Procedūras

Procedūru darbs ir atvieglot jūsu darbu, un samazināt koda daudzumu jūsu programmā.
Funkciju definē uzreiz pēc moduļa pieslēgšanas rindām.

Kods:

Uses crt;
procedure autors;
begin
Writeln('Vārds Uzvārds');
end;
var x,y,i,t,:integer;
begin
autors;
readln;
end.


Apmēram šādi varētu izskatīties programmā, kur tika nodefinēta procedūra ar nosaukumu autors, bez parametriem.
Procedūras tālākā izmantošana notiek pierakstot procedūras vārdu (autors;)
Ne visas procedūras var būt bez parametriem:

Kods:

uses crt;
procedure izvads(x:integer);
var i:integer;
begin
for i:=1 to x do
writeln("Izvads ",i);
end;
begin
izvads(3);
readln;
end.


Dotā programma pēc palaišanas izvadīs uz ekrānu 3 rindas:
Izvads 1
Izvads 2
Izvads 3
Rindu skaitu kā jau jūs noteikti sapratāt apzīmē cipars iekavās {izvads(3);}

GoTo un GoToXY

GoTo palīdz slinkiem programistiem pārvietoties pa programmu( piemēram, ja kāds no nosacījumiem neizpildās lai programma atgrieztos vēl reiz pie tā paša pieņemsim paros pieprasījuma, tikmēr, kamēr nebūs ievadīts pareizais variants)

Kods:

uses crt;
var pasw,try:string;
label pas; // Apzīmējam vietas punkta atgriešanās nosaukumu.
begin
pas: // Atzīmējam vietu uz kurieni programmai būtu jāatgriežas(pas:)
pasw:='admin';
Write('Enter Password: ');
readln(try);
if try=pasw then write('Parole Pieņemta!')
else goto pas; // Norādām, ka programmai jāvirzās uz iepriekš norādīto vietu (pas:)
end.



GoToXY arī ir pārvietošanas rīks , taču izmantojas savādāk un citiem nolūkiem, to izmanto lai novietotu kursoru tieši tur kur tas ir nepieciešams(ir jāzina koordinātas).
GoToXY(x,y); x ir platuma koordināta un y ir garenuma koordināta;

Paskal atvērtā loga standart iestatījuma loga izmēri ir 80x25 vienības.

Kods:

uses crt;
var i:integer;
label 1;
begin
1:
for i:=1 to 40 do
begin
textcolor(lightblue);
gotoxy(i,15);
write('*');
delay(10);
textcolor(black);
gotoxy(i-1,15);
write('*');

textcolor(brown);
gotoxy(80-i,15);
write('*');
delay(10);
textcolor(black);
gotoxy((80-i+1),15);
write('*');

end;
clrscr;
gotoxy(36,10);
textcolor(lightgreen);
write('-={');
textcolor(yellow);
write('BOOM') ;
textcolor(lightgreen);
write('}=-');
textcolor(lightred);
gotoxy(40,15);
write('**');
gotoxy(40,16);
write('**');

gotoxy(39,14);
write('*');
gotoxy(38,13);
write('*');

gotoxy(42,14);
write('*');
gotoxy(43,13);
write('*');

gotoxy(39,17);
write('*');
gotoxy(38,18);
write('*');

gotoxy(42,17);
write('*');
gotoxy(43,18);
write('*');
delay(100);
clrscr;
goto 1;
readln;
end.

Programmas darbības rezultātu var redzēt pielikumā Nr1.

Programmas pielikumā Nr2, jūs varat redzēt procedūru pielietojumu.

Kods:

uses crt;
procedure izvads(var x:integer ; var tr:string);
var i:integer;
begin
for i:=1 to x do begin
writeln(tr,i);
delay(100); end;
end;
var te:string; at:integer;
begin
write('Ievadiet tekstu : ');
readln(te);
write('IEvadiet atkartojumu skaitu: ');
readln(at);
izvads(at,te);
readln;
end.

89 5 16 Ziņot!
Ieteikt: 000
Spoki.lv logo
Spoki.lv

Komentāri 16

0/2000

macijos par programetaju, saslimu, ilgi nebiju skola, iegulos slimnica, kad atnacu uz skolu man pazinoja ka esmu atskaitits, bet es ari macijos par programetaju

2 0 atbildēt

LIELS + ..

2 1 atbildēt

njuuu ja raksts tiri norm :D sakuma apgushanai pascal ir ideals :D bet Pascal ir miris gigigi vaiga te izversties programmistiem lai var dot padomus viens otram :D:D:D 

1 0 atbildēt

Raksts tiešām ir apjomīgs, nezinu cik labs, jo tiku līdz pusei, bet tev vajadzētu dažas leitas konkretizēt, piemēram ka div var leitot tiaki uz ne floating point mainīgajiem t.i. tiaki uz tādiem kur ir veseli skaitļi pascalā tie ir- byte,shortint,integer,longint un freepascalā vel int64.

P.S visvieglāk bezgalīgu ciklu uztaisīt ir ar until 1=0 :P :D

P.S.S jāpiebilst ka koordinātas skaita no kreisā augšējā stūra.

1 0 atbildēt

Viss sen zināms, šie piemēri ko tu esi ierakstījis, ir diezgan vienkārši un primitīvi! :)

Bet wnlga pluss tev :)

Es jau programmēju diezgan lielas un nopietnas programmas! :)

1 0 atbildēt

Šajā Pascal vīrusu nav?

1 0 atbildēt
H avatarsH

Man šito tgd māca skolā, tādi murgi

1 1 atbildēt

ātri apnīk

1 1 atbildēt

Un tu pats maz zini ,kur tu to pielietosi? 

1 2 atbildēt

man gan pirmā valoda bija latviešu.. tad angļu un tad pascal emotion

0 1 atbildēt

hmm nebuut nav tas, kad esmu pret mana intelektuālā darba zagšanas vai nodošanas citiem, bet var jau arī vismaz pateikt, ka darbs i zarts no tāda un tāda portāla un pieder tādam un tādam cilvēkam, pie tma nemaz neesmu vel šo pabeidzis ))

2 11 atbildēt