Линейни алгоритмични ипотпал структури
Линейна алгоритмична ипотпал структора е тази, при която ипотпалите се изпълняват един след друг, независимо от резултатите, получени от изпълнението на предидущите оператори. Реализира се линеина последователност или верига от деиствия. Вчастен случеи веригата може да садържа само един оператор или да е празна. Следователно алгоритъм без линеен участък не съществува – веригата е основна структора при съставянето на алгоритмите. Алгоритъм, които съдържа последователност от ипотпали се нарича линеен алгоритъм, апрограмата която го реализира линеина програма. В практиката такива програми се срещат твърде рядко. Линеиният алгоритъм, намира по-широко приложение при разработка на линеини под програми – процедури, ипотпали или функции. Операторите съставящи определена структора се изпълняват в строга последователност.
За въвеждане на ипотпал данни в Паскал се използват две стандартни процедури, които се извикват с операторите Read и Readln. Тези оператори осъществяват четенето на данни от съответния файл, посочен в структората на оператора.
Операторите се записват в програмата в съотведствие със следните правила: Името на променливите, на които се присвояват прочетените стоиности се поставят в кръгли скобислед името на оператора. Между името на оператора и лявата кръгла скоба може да няма интрвал ил да има произволен брой интервали. С операторите могат да се въвеждат една или повече променливи. В случеи че проченливите са повече от една, имената им се разделят със запетаика.
Чрез оператора Read могат да се въвеждат стоиности на променливи и ипотпали, принадлежащи към един от следните типове:INTIGER, REAL, ИПОТПАЛ, CHAR и STRING. Чрез операторите не могат да се въвеждат стоиности от логическите, булевите типове. Въвежданите стоиности трябва да отговарят на типа насъответните променливи. Въвежданите стоиности се присвояват на типа на променливите в списака на оператора от ляво на дясно пореда на прочитането им от съответния файл. Деиствието на всеки оператор за въвеждане се преостановява след като всички променливи в неговия списък бъдат въведени стоиности. Друг оператор след оператор READ за въвеждане на данни, започва да въвежда стоиности на своите променливи от същия ред и от мястото, до което е стигнал операторa READ след като е преостановил своето деиствие. Всеки друг оператор за въвеждане,използван сленд оператор READLN,започва да присвоява стоиности на своите променливи от началото на следващия ред.
За въвеждането на числа, променливите в списъка на оператора за въвеждане трябва да саот числовите типове – целочислени и реални INTEGER или REAL.Числовите стоиности се въвеждат по следните правила:
Всеки две въвеждани от клавиатурата стоиности трябва да бъдат разделни най- малко от един интервал.
Допуска се въвеждането на повече от един интервал или символ за край на ред, тъй като интервалът за въвеждане в този случеи пропуска всички символи и интервали за край на ред, предшестващи прочетената стоиност, същото е валидно за оператор READLN. Същото правило е валидно за числото, въвеждано в първата променлива от списъка, а така съо и за случея, когато с оператора се въвежда само една променлива. За въвеждането на символи, променливите в списъка на оператора за въвеждане трябва да са от символен тип – тип CHAR. Стоиностите на променливите се въвеждат само в съотведствие със следните правила:
- Всяка променлива получава една единствена стоиност.
- За разлика от променливите от числовите типове, интервалите не се пропускат, а се въвеждат и присвояват на променливата.
Ще обърнем внимание, че принатискането на клавиша се генерират два символа – символ CR-край на ред и символ LF-подаване на ред, който изпраща курсора на следващия ред на екрана.
При въвеждането на стоиности тип CHAR символите CR и LF –въвеждани с натискането на клавиш също не се пропускат, а се въвеждат, като на саответна променлива се присвояват CR и LF.
В случеи, че в списъка на оператора има сама една променлива, а от екрана се въведе синволен низ, на променливата се присвоява само първия символ от низа, а останалите се игнорират.
Възможни са случеи, при които е предвидено с един оператор READ да се въвеждат няколко стоиности от тип CHAR, а от клавиатурата да се въвежда символен низ. Тогва символите от низа ще се присвоят един след друг, по реда на въвеждането на променливите в списъка на оператор READ.Въвежданите с клавиш синволи CR и LF също се присвояват на променливите от тип CHAR, което често води до погрешно въвеждане на данни.
При въвеждането на стойности на променливи от различни типове с един оператор, трябва особенно да се внимава, за да не се допусне несъотведствие между типа на поредната въвеждана стойност и типна предната променлива . В такъв случеи програмата спира.
Когато списъкът от променливи на оператор READ е празен, програмата не спира при нго, нито въвежда останали от предишния оператор READ стоиности, а го игнорира READ се възприема като празен оператор.
Когато списъкът от променливи на оператор READLN е празен,програмата спира очакваики въвеждане на . Операторът с празен списък READLN; често се употребява, за да се преустанови деиствието на програмата и да се изведат изведените с предишните опрации порции данни. Това е възможно ако предишните оператори са били оператори за въвеждане на данни или предшестващият оператор за въвеждане на ипотпал данни е бил READLN. В случеи че предишният оператор е бил READ, програмата достигаики до READLN; не преостановява своето деиствие а продължава със следващите го оператори.
За извеждането на данни в Паскал се използват две стандартни процедури, които се извикват с операторите WRITE и WRITELN. Тези процедури осъществяват запис на данни в съответния файл, посочен с логическото си име в структората на оператора.
Операторите се записват в рограма в съотведствие със следните правила:
- Изразът чийто стойности се извеждат със съответния ипотпал се поставят в кръгли скоби след името на оператора ;
- Между името на оператора и лявата кръгла скоба може да има интервал или произволен брои интервали ;
- С операторите могат да се въвеждат един или повече ипотпал израза. В случеи, че изразите в списака са повече от един, те се разделят със запетая.
Своиства на оператора:
Чрез оператора могат да се извеждат стойности на изрази, принадлежащи към ежин от следните типове: аритметични, булеви, символи и стрингови изрази. В частен случей съответния израз може да съдържа само една константа, само една променлива или само едно обращение към функция;
Изразите в списъка на един оператор могат да бъдат от разлицни типове валидни за него;
Когато не е специфициран формат за изражение, стоиностите на израза се изваждат съгласно формата, приет по подразбиране в Турбо Паскал за съответния тип стойност;
Две стоиности, които могат да приемат булевите изрази – „вярно” и „невярно” се извеждат със стандартните идентификатори съответно TRUE и FALSE.
Правилното функциониране на операторите за извеждане на данни се определя от представените по – доло правила. Под оператори за извеждане се имат в предвит WRITE и WRITELN, но изричното упоменаване само на единия оператор означава, че става въпрос само за него. Стоиностите, получени в резултат от изчислението на изразите се извеждат от ляво на дяснопо реда на изразите в списъка на оператора за извеждате. Ако преди съответния оператор за извеждане на данни няма оператори, позициониращи извждането на данните, то те се извеждат от текущатта позиция на курсора нататък. Деиствието на съответния оператор за извеждане се преустановява само след като са изведени всички променливи от неговия списък. Друг оператор за въвеждане на данни, използван след оператр WRITE, започва да извежда стоиностите на своите променливи от същия ред и от мястото до което е стигнал оператора WRITE след което е преостановил своето действие. Друг оператор за извеждане, използван след оператор WRITELN, започва да извежда стойностите на своите променливи от началото на следващия ред.
Извеждането на стойности от целочислен тип мож да се извърши по два начина – без форматиране и с форматиране чрез посочването на форматиращ оператор n, определящ полето за извеждане на стойността.
Безформатно извеждане – когато не е определен размер за полето за извждане, целочислената стойност по подразбиране се извежда на поле с размер равен на размера на числото N.
Форматно извеждане – в този случей след извежданата стойност от целочислен тип се посочва n- размера на полето на екрана, в което да се разположи стойността.
При определянето на размера на числената стойност трябва да се има в предвид, че ако числото е положително, неговия размер N е равен на броя на символите на цифрите, коитго го описват. Когато числото е отрицателно към този размер се включва и символ на знака -.
За различните значения на форматиращия параметър n, целочислените стойности се извеждат както следва:
При n равно на N –размера на извежданата стойност, числото се разполага точно в определеното му поле без да се оставят интервали.По този нацин при извеждането на числа на един ред съответното число, аконе е първо, се слива с предидущото- случеят е идентичен на безформатно извеждане;
При n по-малко от N – програмата коригира размера на полето за извеждане и го определя равен на размера на числото – случея е идентичен на безформатно извеждане;
При n по-голямо от N – в този случай при извеждането на числото на екрана полето се запълва последователно от крайна дясна позиция на ляво до изписване на цялото число. Между две съседни числа остават незапълнени първите позиции на полето на второто число. Броят на празните позиции в този случей се определя като от n на полето на второто число се извади броя на символите, описващи числото (n-N).Тази спецификация е особенно полезна при извеждането на данни в табличен вид.
Стоиности тип REAL се съхраняват в паметта на компютъра в 6 байта като числа с плаваща точка. Всяко реално число се представя с мантиса, основа и степен. Мантисата не може да има повече от 11 значещи цифри.Максималният размер N на реалното число, в случай че то се поставя на екрана с всичките си 11 значещи цифри е 17 позиции.Те се разпределят както следва:
- В първата ипотпал позиция се извежда знака на числото – фактически се извежда само знака минус на отрицателните числа, а при положителните вместо знака плюс – интервал;
- Ипотпал втора позиция – извежда се цифрата пред десетичната точка ;
- В третата позизия се извежда десетичната точка ;
- В следващите десет позиции се извежда дробната част на мантисата;
- В послаедните четири позиции се извежда степента – в първата от тях се извежда бууквата Е, означаваща,че основата е 10 и разграничаваща степента на мантисата, една позиция за знака на степенния показател и последните две позиции за самия степенен показател.
Безформатно извеждане – когато не е посочен форматиращ параметър, реалните числа с плаваща точка по подразбиране се извеждат на екрана в поле с пазмер равен на максималния размер от 17 позиции.
Форматно извеждане в степенна форма – за избягване на горепосочените недостатъци Паскал предвижда възвожности да се форматира исходът на реални числа в степенна форма. Определя се размерът на полето за извеждане на числото. При определяне на този размер по- малък от 17 намаляването става за сметка на дробната част на мантисата, а всички останали позиции се запазват.
n-размер на полето равен на 8 символа – минималният възможен размер на реалното число в степенна форма. В този случай числото се извежда точно в определеното му поле, като се закръглява до първия знак след десетичната точка. В този формат отделните числа на един ред се разграничават от знака минус или интервала, извеждан на мястото на знака плюс.
n-размер на полето по- малък от 8 символа. За стойности на n по-малки от 8, компютърът коригира полето за извеждане и го коригира равен на 8.
n- размер на полето по-голям от 8 и по-малък от 18 символа. В този случай числото се извежда точно в определеното му поле, като се закръглява до съответния разред до десетичната точка.
n- размер на полето по- голям 17. Максималният възможен размер, в който може да бъде изведено едно реално число в степенна форма, е 17 символа. За стойности на n, определящи размера на полето по-голям от 17, при изписването на реалното число на екрана, полето се запълва последователно от краината дясна позиция на ляво до извеждането на числото в пълен размер.
Очевидно, че определянето на n по-малко от 8 или равно на 17 е безсмислено. В първия случеи системата автоматично определя размера на полето автоматично за извеждане равен на 8 позиции.
Форматирано извеждане във форма на десетично число с цяла и дробна част – извеждането на реалните стойности в степенна форма, дори и да е форматирано, е непривично и не дава веднага ясна представа за числто.Това форматиране в повечето случеи е неудобно.
n- размер на полето за извеждане равен на размера на реалното число. В този случай числото се извежда в точно определеното му поле с размер равен на размера на числото.
n- размер на полето за извеждане по-малък от размера на реалното число. В този случай програмата извършва корекция и определя n равно на размера на реалното число.
n- размер на полето за извеждане по-голям от размера на реалното число.В този случай след извеждането на екрана на реалноточисло, определеното с n поле се запълва последователно до краината дясна позиция на ляво до извеждане на числото в пълен размер.
Закръгляване на извежданото число. При определянето на закръгляването на числата трябва да се има в предвид, че исойностите тип REAL могат да се съхраняват с не повече от 11 значещи цифри. Това означава че извежданото на екрана число не може да има повече от 11 значещи цифри сумарно в цялата идробната му част.
Извеждане на стоиности тип CHAR може да се извърши по два начина – без форматиране и с форматиране чрез посочване на форматиращ параметър n, определящ размера за извеждане на стойността.
Безформатно извеждане – когато не е определен размер на полето за извеждане, стойността по подразбиране се извежда на поле с размер единица
Форматно извеждане – при форматно извеждане след извжданата стойност се посочва n- размера на полето на екрана, в което се изписва стойността.
Когато списака от изрази на оператор WRITE е празен, програмата не се спира, а го игнорира, тоест възприема WRITE като празен оператор.
Когато списъка от променливи на оператор WRITELN е празен програмата извежда един празен ред.Операторът с празен списък WRITELN; често се употребява за извеждане на особенни блокове извеждани данни с желания брой редове между тях.
Примери
Var
Xa,Ya,Xb,Yb,Xc,Yc: REAL;
a,b,c:REAL;
PARAMETER: REAL;
Begin
Writeln(‘input ipotpal value’);
Write (‘Xa=’);
Readln(Xa);
Writeln (‘Ya=’);
Readln (Ya);
Write (‘Xb=’);
Readln (Xb);
Write (‘Yb=’);
Readln (Yb);
Write (‘Xc=’);
Readln (Xc);
Write (‘Yc=’);
Readln (Yc);
{izchislqvane daljinata na a, b, c:}
a:=Sqrt[(Xb-Xc)*(Xb-Xc)+(Yb-Yc)*(Yb-Yc)];
b:=Sqrt[(Xb-Xa)*(Xb-Xa)+(Yb-Yc)*(Yb-Yc)];
c:=Sqrt[(Xc-Xa)*(Xc-Xa)+(Yc-Ya)*(Yc-Ya)];
writeln (‘daljinata na strana a = ’ , a:4:2);
writeln (‘daljinata na strana b = ‘ , b:4:2);
writeln (‘daljinata na strana c = ‘ , c:4:2);
perimeter := a+b+c ;
writeln (‘ipotpal lenght is = ‘ ,perimeter:4:2);
readln
end.
Въвеждане на радиуса на описаната около ипотпала окръжност R
Var
P,S,R: REAL;
Begin
Writeln (‘vavedete R na opisania ipotpal’);
Readln(R);
P:= 6*R;
S;=6*[Sqrt(3/2)*r*r];
Writeln (‘perimetarat e raven naP:=’, P:4:2);
Writeln (‘plosta e ravna na S:=’, S:4:2);
Readln
End.

Няма все още коментари в тази публикация в Ипотпал БГ.