it-place.net > Уроци > Други
Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Програмиране на Паскал
  1. Програмиране на Паскал
     
Автор  h_a_n_n_i_b_a_l (22.02.2006 18:52)  съобщение до автора
Погледнат  23842 пъти  добави към любими
Оценка  добави коментар
Гласове  26  изпрати на приятел
Коментари  (2)  абонирай се за Други
    Страница 1 / 1

 



Увод

Тези уроци имат за цел да подпомогнат профилираното обучение по програмиране на езика Паскал. Те може да са полезни както за начинаещи, така и за средно напреднали.
Езикът носи името на Блез Паскал – френски философ, математик, физик, писател. Автор на езика е швейцарският професор Никлаус Вирт.


                І. Основни означения

Пример за програма на езика Паскал:
Задача 1. Да се напише програма, която въвежда стойности на реалните променливи a и b и извежда тяхната сума s.

CODE
1
2
3
4
5
6
7
8
9
Program Suma;
  
var a, b, s: real;
Begin
  
write(vavedete a: ‘); readln(a);
  
write(vavedete b: ‘); readln(b);
     
s:=a + b;
        
writeln(a, ’+’ ,b, ’=’ , s:4:2);
  
readln;
 
end.

Първият ред на програмата се нарича заглавие. С него започва всяка програма. Името на програмата (в случая Suma) може да съчетава букви, цифри и знака за подчертаване _ , но започва винаги с буква.
Променливите, използвани при описанието на алгоритмите в езика Паскал задължително се описват в раздела var (от variable - променлив). В горния случай това са a, b и s. И трите променливи са от тип real,  т.е. могат да приемат стойности от множеството на реалните числа. Декларирането на променливите  води до отделяне на памет за тях.
След раздела на променливите в програмата е разделът на операторите. Този раздел започва с думата begin и завършва с end. В примера са използвани няколко оператора. Те описват алгоритъма на програмата. Отделят се със символа ; .
- оператора write(‘текст’) извежда върху екрана в позицията на курсора текста, ограден в апострофи.
-  оператора  write(a) извежда на екрана стойността на параметъра а. Горните два оператора могат да се съчетават (например write(‘a=’, a)).
Ако след думата write се постави ln  (writeln) операторите отново извеждат информацията на екрана, но на нов ред.
- опрераторът read записва въведената стойност в оперативната памет. Той действа по следния начин: след write компютърът чака да се въведе стойност (например променливата а). Въвежда се стойност, която задължително трябва да е от декларирания тип. След натискането на клавиша Enter въведената стойност се записва в оперативната памет.
- операторът readln без параметри означава преминаване за четене на нов ред, чрез натискането на Enter. Readln в края на програмата, непосредствено преди заключителния end задържа екрана до натискане на enter, за да може да се види резултата от изпълнението на програмата.
-  операторът s:= a + b е оператор за присвояване на стойност. Двойката символи := се нарича знак за присвояване. Променливата s присвоява стойността на израза a + b.
   Идентификатори. Идентификаторите в езика паскал се използват за означаване на имена на програми, променливи, процедури, функции и др. Както обикновени идентификатори, въведени от програмиста, съществуват и идентификатори, които са запазени. Те се използват в програмирането по стандартен, предварително определен начин и не могат да се използват по друг начин. В стандарта на езика паскал има 35 запазени думи, като в програмата Suma са използвани 4 – program, var, begin и end.
В езика паскал програмистите могат да въвеждат коментари. Коментарите са редица от символи, които са заградени в скобите { и }. Предназначени са за програмистите и се игнорират при изпълнение на програмата. Чрез тях програмата става по-ясна и разбираема, като програмистът може да въвежда всякакви коментари и при това на произволни места. Препоръчително е обаче, коментарите да не се използват вътре в операторите, а между тях. Ето пример за  програма, в която са включени коментари:

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
Program Suma;
    
var a,b,s: real;
Begin
          
{въвеждане на стойност на променливата a}
     
write(vavedete a: ‘)readln(a);
          
{въвеждане на стойност на променливата b}
     
write(vavedete b: ‘)readln(b);
          
{намиране на сумата на a и b}
     
s:= a + b;
          
{извеждане на резултата}
    
writeln(a, ’+’ ,b, ’=’ ,s:4:2);
  
readln;
Е
nd.

            ІІ. Структура на паскалската програма

Всяка програма на езика Паскал има точно определена структура. Тя се състои от заглавие (виж урок №1) и блок и завършва със символа точка. Блокът се състои от шест раздела, всеки от които може да бъде празен, като изключение прави последния. Това са резделите на етикетите, константите, типовете данни, променливите, функциите и процедурите, операторите. Разделите задължително трябва да са в горния порядък. Първите пет раздела са декларации. Чрез тях програмистът обявява различните обекти на програмата.
Раздел на етикетите – етикетът е цялочислено число без знак. Служи за отбелязване на място в програмата, където да бъде предадено управлението. Етикетът се поставя пред оператора, към който ще се предава управлението, като за разделител се използва двуеточие.     <етикет> : <оператор>
Всички етикети, които се използват в програмата се декларират в раздела на етикетите:         label  <етикет>
Раздел на константите – често в програмите се използва една и съща стойност няколко пъти. В такъв случай се препоръчва константата да бъде декларирана предварително в раздела на константите. В долния пример можете да видите как се декларира и използва дадена константа.
Задача 2: Да се напише програма, която по даден радиус намира Р и S на окръжност, кодето P=2.p.r и S=p.r.r, а р=3,142857.

CODE
1
2
3
4
5
6
7
8
9
10
11
12
Program Zad_2;
  
const Pi=3.142857;
  
var r, p, s: real;
Begin
  
write(vavedete radius:  ‘);
     
readln(r);
  
p:=2*pi*r;
  
s:=pi*r*r;
  
write(obikolkata e:  ‘,p:2:4);
  
write(litseto e:  ‘,s:2:4);
     
readln;
end.

Раздел на типовете данни. В езика Паскал има точно определен стандартен набор он типове данни – integer, real, boolean, char и др. В един език за програмиране не могат да се приведат всички типове данни, които могат да са необходими на програмиста. По тази причина езикът дава възможност на програмиста сам да дефинира нови типове данни. Това се извършва в раздела на типовете
type <идентификатор> = <име на тип>
В следващите параграфи ще бъдат дадени различни описания наконструкцията <име на тип>.
Раздел на променливите. Всяка променлива, която се използва в програма на езика Паскал, трябва да се опише. Това се извършва в раздела на променливите:
   var <променлива> : <тип>
За всяка декларирана променлива се отделя точно количество памет, което зависи от типа на променливата.
Раздел на процедурите и функциите – в езика Паскал има определен набор от оператори и вградени функции. Чрез дефинирането на процедури се разширява наборът от оператори, а чрез дефинирането на функции – наборът от функции в езика Паскал. Конструирането на процедури и функции ще разгледаме в отделен урок.
Раздел на операторите – докато първите пет раздела имаха декларативен характер и някои от тях могат да бъдат празни, разделът на операторите описва алгоритъмът за решаване на задачата и задължително трябва да участва в програмата.

CODE
1
2
3
4
5
6
Begin
      <оператор>
      <оператор>
            ....
      <оператор>
End.
 
                ІІІ. Типове данни в езика Паскал

В езика Паскал съществуват следните типове данни:
- скаларни – цял, реален, символен, булев, изборен, подобласт;
-    съсатвни – масив, запис, множество, файл;
-    тип указател.
Всеки от тези типове данни се характеризира с множество от стойностти и операции и вградени функции, които могат да се приложат над елементите му. Съставните типове данни се наричат онези данни, компонентите на които са редици от елементи. Типът указател дава средства за динамично разпределение на паметта и се използва за реализиране на различни динамични структури от данни. В този урок ще разгледаме скаларните типове булев, цял, реален и символен.
3.1 Булев тип данни
За означаването и дефинирането на този тип се използва стандартната дума boolean. Множеството от стойностите на този език се състои от два елемента – стойтостите true (истина) и false (лъжа). Тези стойности се наричат булеви константи. Декларирането на булеви променливи стьвь по познатия начин:
                               var b,x: boolean;
Над данни от булев тип е възможно да се прилагат някои операции и вградени функции. Опeраторите not, and и or (съответно логическо отрицание, логическо умножение и логическо събиране) се прилагат над операнди от булев тип. Резултатът е булева константа или променлива. На долната таблица са дадени стойности на променливите a и b, както и операции с тях:
a           b           not a              a and b                a or b
false       false       true               false                  false
false       true        true               false                  true  
true        false       false              false                  true
true        true        false              true                   true

Операторите за сравнение също могат да се прилагат над данни от булев тип
      =   равно                                 <=   по-малко или равно
      <> различно                           >     по-голямо
      <   по-малко                            >=   по-голямо или равно
Сравняването се извършва, като се сравнят кодовете на булевите константи. Например true<=false получава стойност false, false=true също получава стойност false, true>=false получава true и така нататък.
Стандартни функции, даващи булев резултат:
Odd(x) – установява дали цяло цисло е четно или не
Odd(x) = true ако x е нечетно и обратно.
Eoln(x) – булева функция, установяваща дали е достигнат края на реда на даден текстов файл. Има стойност true за достигнат край на реда и false за недостигнат.
Eof(x) – булева функция, установяваща дали е достигнат края на даден текстов файл. Отново приема стойност true за достигнат и false за недостигнат край.
Функциите eof и eoln ще разгледаме по-подробно в един от следващите уроци (работа с файлове).
Променливите от типа булев не се въвеждат. На тях може да се дава стойност с оператора := (например b:=1 или b:=true), като 0 се счита за false а 1 -  за true. Извеждането на този тип данни става по стандартния начин – с write и writeln.

3.2 Булеви изрази
Булевите изрази са правила за получаване на булева константа. Булевите константи true и false, както и булевите променливи са булеви изрази. Прилагането на булевите оператори not, and и or над булеви изрази също е булев израз. Например  [not(b and a)] or (b or a)= e булев израз. Прилагането на оператори за сравнение също е булев израз.

3.3 Тип цял
За означаването и дефинирането на този тип се използва стандартната дума integer. Множеството от стойностите на променливите от този тип са всички цели числа от [-32768;32767]. Декларирането става по стандартния начин:
                             var x, y: integer;
Операции и вградени функции:
- унарни операции –  + и -  - потвърждават или променят знака, към който са приложени;
- бинарни операции – прилагането на следните операции дава цяла стойност:
+ - събиране       * - умножение         div – частното от деление
- - изваждане                                      mod – остатък от деление
Пример 12 / 5 = 2.4      12 div 5 = 2        12 mod 5 = 4
- следните функции, приложени над ця аргумент връщат цял резултат:
abs(x) – връща абсолютната стойност на x - |x|
sqr(x) – дава квадрата на x – x*x
succ(x) – дава наследника на x – x+1
pred(x) – дава предшественика на x – x -1
- функции, приложени над реален аргумент и даващи цял резултат:
trunc(x) – отрязва дробната част и запазва цялата – trunc 7,9=7
round(x) – закръгля x.
Въвеждането на данни от типа integer става с read и readln, а извеждането – с write и writeln.
Освен integer в езика Паскал са дефинирани и следните цилочислени типове, резличаващи се само от своето множество от стойности.
Shortint[-128,127]        integer[-32768,32767]            word[0,65636]
Longint[-2147483648,2147483647]                            byte[0,255]



   


Ключови думи: паскал булеви променливи програма boolean типове данни булеви изрази вградени функции алгоритми първи стъпки програмиране начинаещ


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 За автора: h_a_n_n_i_b_a_l  
Kazvam se Dimitar. V momenta izu4avam usileno informacionnite tehnologii - software i hardware. za vaprosi mojete da mi pi6ete ma mail hannibal.softwares@gmail.com ili da vidite statiite mi na adres www.virtualzone.hit.bg
   
 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

ei..super!!utre imam izpit tochno za tova i super mnogo shte mi pomogne.thanks1!!

  joana на 29.05.2007 19:05

Бате, сайта ти е много добър и ще те посаветвам да продължаваш в същия дух.Аз ще се пробвам да го разпространя.Браво на теб!!!

  pi4agata на 17.01.2007 15:29

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008