Лекция 12 Стандартни подпрограми за въвеждане и извеждане на информация



Дата25.07.2016
Размер94.85 Kb.
#5550
ТипЛекция
Лекция 12

Стандартни подпрограми за въвеждане и извеждане на информация

В език Pascal съществуват няколко стандартни библиотечни подпрограми (процедури) за въвеждане и извеждане на данни. Начините за въвеждане и извеждане на величините зависи от програмната среда на езика и операционната система, в която се разработва приложението. Програмните среди за алгоритмичните езици могат да генерират работни приложения както за графичен интерфейс (Windows), така и за текстов интерфейс (DOS). Стандартното програмно осигуряване за най-популярната програмна среда за Pascal - Turbo е разработена за конзолно управление на приложенията (използва се текстов прозорец за потребителски съобщения в операционна среда DOS). Този прозорец се нарича конзола – наименование, останало от времето, когато компютърните системи работеха в пакетен режим и текстовият прозорец на монитора беше основен изструмент за получаване на съобщения за процеса в машините.

За програмната среда на езика Pascal е прието стандартно изходящо устройство да бъде текстов прозорец на операционна система DOS - конзола, а за стандартно входно устройство да се използва клавиатурата.

Извеждане (показване) на данни.

При извеждане на данни трябва да се укажат величините, чиито стойности трябва да се изведат , форматът, с който да бъдат изведени и устройството, на което да се изведат данните. Основните подпрограми (процедури) за извеждане на информация са write и writeln.

Когато устройството на което се извеждат данните е стандартното изходящо устройство, то не се задава в операцията за извеждане. Като стандартно устройство за извеждане на информацията се приема дисплея на компютърната система. Когато се използва друго устройство (например принтер, дискови устройства) за извеждане на данни то трябва да се специфицира в оператора за извеждане - процедурата write. Ето няколко примера на оператори за за извеждане на цели числа върху стандартното устройство:

write (56) ; → изход (на екрана): 56

write (12+5) ; → изход (на екрана): 17

write (-1254:5) ; → изход (на екрана): -1254

write (1254:6) ; → изход (на екрана): __1254

write (1254:6,55:6) ; → изход (на екрана): __1254____55

Основните свойства на процедурата write за извеждане на цели числа могат да се обобщят като:

- Данните (величините), които се извеждат се заграждат в скоби и се отделят със запетая помежду си, образувайки списък на извежданите данни;

- Целите числа се извеждат последователно, така както се срещат в оператора за извеждане, като се разполагат от мястото, където е позициониран показалецът в прозореца на конзолата;

- За извеждането на всяко число се отделя поле с ширина равна на броя на цифрите на числото. Ширината на полето може да се зададе и чрез тъй-наречената форматна спецификация. Тя се указва с помощта на цяло число, отделено от величината, за която се отнася с двоеточие ‘:’. Операторите от 3 до 5 в горния пример са с форматна спецификация. Когато форматната спецификация задава ширина по-голяма от броя на цифрите на извежданото число (включително знака на числото), се добавят празни символи (blank - пробел) пред числото (примери 5 и 6).

- С едно обръщение към процедурата write може да се изведе една или повече величини (числа).

- Освен величини в оператора за извеждане на информация могат да се поставят и изрази. Стойността, която се извежда, е стойността, получена след извършване на действията в израза.

Последователното обръщение към процедурата write позволява извеждането на няколко числа или групи числа. Те се нареждат в един ред от текстовия прозорец на конзолата. Когато се извеждат много числа върху един ред, те може да надхвърлят дължината на реда. Тогава се извършва автоматично прехвърляне на следващия ред. Това може да предизвика разделяне на цифрите на дадено число и да се получи нечетлив резултат. За да се управлява процесът на прехвърляне на извежданите числа на следващ ред се използва процедурата writeln. Тази процедура работи по същия начин както процедурата write, но след изпълнение на оператора, показалецът в текстовия прозорец се премества на нов ред. Пример:



writeln (1245:6) ; write (21534:8) ;

като в прозореца на конзолата ще се отпечата:

__1254

___21534
Извеждане на реални числа.

Процедурата write и writeln е универсална и може да се използва за извеждане на различни по тип данни. За извеждане на реален тип данни се използват три формата:


  • Извежданото число има цяла част, десетична точка и дробна част;

  • Извежданото число има експоненциална част;

  • Не се посочва спецификация.

Общият запис на форматната спецификация за реални числа изглежда така:

R[:m[:n]], където R е реално число, m - ширина на полето, в което се извежда числото и n - брой цифри след десетичната точка. Квадратните скоби обикновено се използват, за да укажат незадължителен атрибут в дадена спецификация. В случая това означава, че спецификациите m и n не са задължителни.Допустимите комбинации за форматната спецификация са: R:m:n; R:m; R. Ето няколко примера за извеждане на реални числа (R = 12.134):

writeln (R:9:4) ; → изход (на екрана): __12.1340

writeln (R:10:5) ; → изход (на екрана): __12.13400

writeln (R+1:10:5) ; → изход (на екрана): __13.13400

writeln (R:10) ; → изход (на екрана): 1.2134E+01

writeln (R:11) ; → изход (на екрана): 1.21340E+01

Ако спецификацията е от втория тип (R:m) и m<8, се приема m=8, тъй като в по-малко поле не може да се разположи числото.

Когато се указва спецификация от третия тип (задава се само величината R), системата приема подразбираща се дължина на полето за извеждане m=17:

writeln (R) ; → изход (на екрана): _1.2134000000E+01

Както се вижда от представените примери в спецификацията m се включва ширината на цялото поле, включително и десетичната точка и знака за експонента, а в спецификацията n - само цифрите на дробната част.

Извеждане на текстова информация се извършва като се използва или текстова променлива в списъка на извежданата информация или като се включи текстова константа (текст ограден с апострофи)

writeln (‘Извеждане на стойността на R : ’,R) ;

С този оператор върху дисплея на монитора ще бъде изведен следният текст:



Извеждане на стойността на R : 1.21340E+01
Процедури за въвеждане на числови данни.

Въвеждането на числа става от стандартното устройство, което за системата на езика Pascal е клавиатурата. Въвеждането на числа може да се пренасочва към други устройства (например от дискови файлове), но те трябва да се специфицират в процедурата за въвеждане на данни. За въвеждане на данни се използват стандартните процедури read и readln. Правилата за използване на процедурите за въвеждане са показани в следните примери:



Var a, b, c, d, e : integer ;
read (a,b) ; → входен поток: 11_24

В резулта на операцията променливите a и b ще получат стойности a=11 и b=24.

Този оператор може да бъде записан и по следния начин:

read (a) ;

read (b) ;
read (a) read (b,c,d) ; → входен поток: 11_24_14_35_46

резултат: a=11; b=24; c=14; d=35

Основните правила при въвеждане на данние са следните:

- Посредством процедурата read се въвеждат стойности, които променливите, записани в скобите, получават след операцията;

- Входният поток данни се разполагат на един или повече редове в конзолния прозорец (екрана), като между отделните стойности се поставя един или няколко пробела;

- Ако има повече стойности във входния поток отколкото са променливите, те се игнорират;

- Данните, предназначени за числови променливи, трябва да се задават във входния поток като константи, допустими за съответния тип.

За въвеждане на данни от няколко реда се използва процедурата readln. Ето пример с използване на readln:



Var i, j, k, l, m : integer ;
readln (i,j) ;

readln (k) ;

read (m,n) ; → входен поток: 11_24_48

32_44_88

12_23_11

Резултатът от горните операции е: i=11 ; j=24; k=32; m=12; n=23.

За въвеждане на реални числа във входния поток трябва да има стойности на реални величини:

Var x, y, z, x1, x2 : integer ;
readln (x,y) ;

readln (z, x1, x2) ; → входен поток: 2.33_2.54_4.28



-32.43_4.54_8.48

Резултатът от операциите е: x=2.33 ; y=2.54; z=-32.43; x1=4.54; x2=8.48.

При въвеждане на знакови данни във входния поток те не се задават с апострофи. За въвеждане на логически тип данни могат да се използват само логическите константи true и false.

Подпрограми от стандартната библиотека Crt

Една от най-използваните програмни библиотеки в програмната среда Turbo е библиотеката Crt. Тя съдържа много полезни процедури и стандартни обекти, като дефиниции на константи и променливи, използвани за управление на програмната среда. Включването на библиотеката се извършва чрез клаузата uses:

uses Crt ;

Тази клауза се записва в началото на програмата, която ще използва процедури от библиотеката Crt.


П
Program Test ;

uses Crt;

Var a,b,x,r,d,: real ;

begin

ClrScr ;

write (‘въведете стойност на а, b и r:’) ;

read (a,b,r) ;

x:=a+b*r ;

writeln (‘ Стойност на x:’, x) ;

end .


роцедура за изчистване на екрана:
ClrScr. При изпълнение на тази процедура се изтрива текстът, намиращ се в конзолния прозорец и показалецът се позиционира в най-лявата позиция на най-горния ред от текстовия прозорец. В примера (фиг.9.7), илюстриращ използването на процедурата за изчистване на екрана, е показан начинът на включване на библиотеката Crt в програмата посредством клаузата uses.

Фиг. 9.7 Използване на процедура ClrScr


Процедура GotoXY (x,y). Тази процедура се използва за извеждане на информацията на точно определена позиция в текстовия прозорец. Позицията, където ще се позиционира показалецът, се определя от координатите x и y. В случая координатите определят реда и колоната в текстовото поле на конзолата. Пример:

GotoXY (10,15) ;

writeln (‘Позиция на текста’) ;

writeln (‘Следващ ред’) ;

Този фрагмент от програма на Pascal ще отпечата текста ‘Позиция на текста’ на 10-ти ред, като се започне от 15-та позиция в реда. Следващият текст ‘Следващ ред’ ще се изобрази на следващия ред като се започне от 1-ва позиция.
Процедури Sound (Hz), Delay (ms), NoSound.

Процедурата Sound (Hz) се използва за генериране на звуков сигнал с определена честота. Аргументът на тази процедура Hz е променлива от тип word (целочислена променлива). Hz задава честотата в херци на генерирания звуков сигнал. Процедурата NoSound се използва за прекратяване на звуковия сигнал, предизвикан от процедурата Sound. За определяне на продължителност на даден процес се използва процедурата Delay (ms). Аргументът ms е числен израз от тип word. Той определя времето в [ms], което се отмерва при изпълнение на процедурата. Ето един пример за използване на тези процедури:

Sound (440) ; { това е честотата на тон ла}

Delay (500) ;

NoSound ;

Този фрагмен предизвиква генериране на звуков сигнал с честота 440 Hz (тон ла) с продължителност 500 ms. Това е пример как може да се програмира генерирането на мелодия.


Прост и съставен оператор в език Pascal.

Разгледаните досега оператори са прости оператори. Те се състоят от една синтактична конструкция и завършват със знака за край на оператор ‘;’. Понякога в алгоритмите се налага последователно изпълнение на няколко прости оператора, които образуват една обща логическа част. Обединението на няколко прости оператора в една логическа група води до дефиниране на съставен оператор. В езика Pascal за задаване на съставен оператор се използват запазените думи begin и end. В следващия фрагмент е дефиниран един съставен оператор.



begin

d:=-b*b-4*a*c ;



d:=sqrt(d) ;

end

След end в съставния оператор не се поставя знакът за край на оператор ‘;’. Поставянето му не е грешка в програмите на Pascal, защото се предполага, че е използван празен оператор. Празен оператор е такъв оператор, който не изпълнява никакви команди и операции. Той съдържа само знака за край на оператор ‘;’. Напълно допустим е например запис от типа: d:=-b*b-4*a*c ; ; ;. Тук има 2 празни оператора.
Каталог: Informatics
Informatics -> Търсене и предлагане – основа на пазарния механизъм
Informatics -> Тема: Дж. Р. Р. Толкин
Informatics -> Достоверността на един летопис и на един роман
Informatics -> Бизнес план за развитие на интернет клуб „The Net”
Informatics -> Лекция 11 Програмен език Psacal
Informatics -> 2 Математически основи на компютърните системи
Informatics -> Лекция 9 Компютърно програмиране Програмни езици
Informatics -> Курсова работа
Informatics -> 1 задача за: Василена Николова, Йоанна Николова, Филип Маринов


Сподели с приятели:




©obuch.info 2022
отнасят до администрацията

    Начална страница