КАТЕГОРИЯ:


Астрономия- (809) Биология- (7483) Биотехнологии- (1457) Военное дело- (14632) Высокие технологии- (1363) География- (913) Геология- (1438) Государство- (451) Демография- (1065) Дом- (47672) Журналистика и СМИ- (912) Изобретательство- (14524) Иностранные языки- (4268) Информатика- (17799) Искусство- (1338) История- (13644) Компьютеры- (11121) Косметика- (55) Кулинария- (373) Культура- (8427) Лингвистика- (374) Литература- (1642) Маркетинг- (23702) Математика- (16968) Машиностроение- (1700) Медицина- (12668) Менеджмент- (24684) Механика- (15423) Науковедение- (506) Образование- (11852) Охрана труда- (3308) Педагогика- (5571) П Arhitektura- (3434) Astronomiya- (809) Biologiya- (7483) Biotehnologii- (1457) Военно дело (14632) Висока технологиите (1363) Geografiya- (913) Geologiya- (1438) на държавата (451) Demografiya- ( 1065) Къщи- (47672) журналистика и SMI- (912) Izobretatelstvo- (14524) на външните >(4268) Informatika- (17799) Iskusstvo- (1338) История- (13644) Компютри- (11121) Kosmetika- (55) Kulinariya- (373) култура (8427) Lingvistika- (374) Literatura- (1642) маркетинг-(23,702) Matematika- (16,968) инженерно (1700) медицина-(12,668) Management- (24,684) Mehanika- (15423) Naukovedenie- (506) образование-(11,852) защита truda- (3308) Pedagogika- (5571) п Политика- (7869) Право- (5454) Приборостроение- (1369) Программирование- (2801) Производство- (97182) Промышленность- (8706) Психология- (18388) Религия- (3217) Связь- (10668) Сельское хозяйство- (299) Социология- (6455) Спорт- (42831) Строительство- (4793) Торговля- (5050) Транспорт- (2929) Туризм- (1568) Физика- (3942) Философия- (17015) Финансы- (26596) Химия- (22929) Экология- (12095) Экономика- (9961) Электроника- (8441) Электротехника- (4623) Энергетика- (12629) Юриспруденция- (1492) Ядерная техника- (1748) oligrafiya- (1312) Politika- (7869) Лево- (5454) Priborostroenie- (1369) Programmirovanie- (2801) производствено (97182) от промишлеността (8706) Psihologiya- (18,388) Religiya- (3217) с комуникацията (10668) Agriculture- (299) Sotsiologiya- (6455) спортно-(42,831) Изграждане, (4793) Torgovlya- (5050) превозът (2929) Turizm- (1568) физик (3942) Filosofiya- (17015) Finansy- (26596 ) химия (22929) Ekologiya- (12095) Ekonomika- (9961) Telephones- (8441) Elektrotehnika- (4623) Мощност инженерно (12629) Yurisprudentsiya- (1492) ядрена technics- (1748)

Аритметични операции и аритметични изрази




Концепцията за операциите и операнди изрази.

Аритметични оператори и изрази

Правила на мълчание за типове данни и техните промени.

В Fortran позволи да не декларират обекти на данни (променливи, наречени константи и функции) на цялото и реални типове. В такива случаи типа информационен обект се настройва автоматично в съответствие със следните подразбиране: данни обекти, чиито имена започват с буквите I, J, K, L, M, N ( или, разбира се, I, J, K, L , M, N ) се считат за целия обект тип данни (цяло число), както и всички други предмети, имат реален тип (реални). Например:

число (4) :: п = 10! п - число променлива Y е = 2 * п; m = 2 * п! Y - променлива от тип REAL, т - тип INTEGER

Имайте предвид, че правилото по подразбиране посочено по-горе, не се прилага за част от вградените функции.

Всеки тип данни има набор от вградени операции.

Експресия - формула, която изчислява стойност. Изразът се състои от операнди и нула или повече сделки. Изрази, използвани в операции са разделени в двойно и единично (+, -). При работа с две място, включващо два операнда в единична (единично) - он.

Операнд изрази са обекти с данни или техните под-обекти. Експресията може да се намира от дясната страна на оператор задача, вход оператор, процедура повиквания и т.н. Общата форма на експресията, в които има двойна операция .:

операнд операнд ...

Имайте предвид, че в Fortran Унарна операция не може да се слага знак на друга работа.

Стойността на всеки операнд трябва да се определи, и резултатът трябва да математическия смисъл (например, не трябва да има разделителна от нула).

В зависимост от вида на операнди са разделени на аритметични изрази, логически характер и производни тип. За първите три типа изрази в Fortran определено комплексна операция. Изразите, получени операции тип трябва да бъдат посочени от програмист (не е определено аудио интегрирана операция за производните типове данни). Операции варират предимство или приоритет.

Аритметични операции се използват за числови типове данни:

** - мощност;

* / - умножение и деление;

+ - - Единична (единично) плюс и минус;

+ - - събиране и изваждане.

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

Аритметичен израз се състои от цифрови операнди и аритметични операции. Ако изразът съдържа множество операции, те са в допълнение към изграждането на степента, извършена в съответствие с приоритет от ляво на дясно. изграждане операции в степен от дясно на ляво. За да промените реда на операциите, използвани скоби. Например, записът -X-Y + Z, и (((-x) -Y) + Z) еквивалент. Същото може да се каже по отношение на х ** г ** Z и (х ** (у ** Z)) записи. От друга страна, очевидно е, че резултатите от оператори за присвояване



k1 = 2 ** 8/2 + 2; k2 = 2 ** (8/2 + 2); k2 = 2 ** (8 / (2 + 2))

ще бъде различна. А именно, променливи К1, К2, и K3 ще получи стойност резултат 130, 64 и 4, съответно. Като цяло, в резултат на аритметика

Чески израз може да бъде цяло число, реално или комплексно число.

Аритметични операции в FORTRAN имат свои собствени характеристики, на които да живеят поставянето им по-долу.

1. В резултат на аритметични операции се отразява това, което всички числа, съхранени в паметта на компютъра, с ограничен брой значещи цифри. Така аритметични изрази с реални и комплексни операнди често неточно изчисляват (за събиране, изваждане и умножение са загубили значителни бита на резултата; разделяне обикновено не може да се извърши точно, например 1./3.=0.333333 ...). Трябва да се има предвид, че във всички случаи, в Fortran не е кръгла и пускане (отрязване) LSB резултати, които не се вписват в паметта. С оглед на спецификата на посочения по-специално може да се сравни реалните числа за точно равенство или неравенство, и е необходимо да се извърши сравнение с някои точност

2. Действието на степенуване се извършва по различен начин в зависимост от експонат. Ако индексът - променлив число, число постоянно или аритметична експресията на тип цяло число, за степенуване се извършва чрез последователно размножаване:

а ** 3 ® а * а * а; б ** (- 2) ® 1. / (Ь * б).

Ако индикаторът има реален вид, за извършване на степенуване преводач използва формулата

,

Вследствие на това степенуване с недвижими показател определя само когато , Например, не може да се оцени експресията ш ** (1./3) на у = -8, въпреки че като цяло, , По същата причина, при х = 0 е невъзможно да се изчисли х ** 2., но е възможно да се изчисли х ** 2 и х * х.

По този начин, степенуване на работа има ограничения (ограничен обхват). По-специално, че е забранено да се изгради отрицателно число noninteger в степен. Освен това, не е възможно да се изгради отрицателна или нулева степен нула.

3. Не се разделят с нула (което е в съответствие с традиционните математически правила).

4. В резултат на аритметични операции с цели числа винаги е цяло число. Това значително, като се раздели броя на цяло число в строителството и цяло число отрицателна мощност (в други случаи и като резултат). Трябва да се отбележи, че в Fortran чрез разделяне числа и издигането цяло число в цялата отрицателна мощност, дробна част на резултата се изхвърля (без знак). Нека илюстрираме това с един пример, като се отчете следната програма:

реална (4) X, Y, Z, W! Описание на променливите, използвани х = 7/4; у = -7 / 4! определяне стойности на Z = 2 ** (- 2); w = (- 1) ** (- 3)! променливи X, Y, Z и W печат *, "х = ', X", Y =', Y ", Z = ', Z," w =', W! Изход на резултатите до края на екрана! Задължително последната програма оператор

В резултат на тази програма променливите х и у са определени стойностите 1 и -1, съответно, вместо привидно естествено в този случай 1.75 и -1.75. С други думи, в резултат на разделянето на две числа, Fortran е цялата част на получения коефициент. След разделянето на число, което се дължи на факта, че променливите х и у имат вида REAL (4), числа 1 и -1 се превръщат в стандартен тип материал.

За да получите най-очакваните по-горе в програмата (естествено) от гледна точка на обикновените аритметични отговори на трябва да бъде написано:

х = 7. / 4. или X = 7. / 4 или X = 7/4. и у = -7. / 4. или Y = -7. / 4 или у = -7/4.

вместо втория и третия ред на програмата, съответно.

По отношение на заместителите Z и W, също се използват в програмата, те получават стойности 0 и -1, съответно (резултати ерекция числа на числа степен - числа).

5. В аритметични изрази не трябва да се комбинира променливи, които се различават от няколко порядъка, например:

реална (4) :: х = 1.Е + 30, у = -1.E + 30, Z = 7. печат *, (х + у) + Z! 7.000000 (вдясно) печат * х + (Y + Z)! 0.000000E + 00 (неправилно)

6. Fortran оставя (но не се препоръчва) за използване в аритметична експресия на различни видове и различни видове видове. Всеки тип аритметична операнд се характеризира с определен ранг. Ние списък на тези видове по-долу в низходящ ред на степента

комплекс (8) или двойна КОМПЛЕКС - най-висок ранг;

комплекс (4)

недвижими (8)

недвижими (4)

INTEGER (4) или INTEGER

INTEGER (2)

INTEGER (1) или байт

Резултатът от всяка операция израз определя в съответствие със следните правила:

• Ако операндите на аритметична операция са от същия тип, и резултата от операцията е от същия тип (най-важният пример - операция число разделяне);

· Ако величините имат различен тип работа, резултатът е от типа на операнд най-висока степен.

Обясняваме двете правила с един пример.

число (2) :: х = 1, у = 2 реално (4) :: Z = 2.5 реално (8) w1, w2 w1 = X / Y * Z! 0.0_8 w2 = Х / (Y * Z)! 0.2_8

При изчисляване на работа w2 умножение се извършва първоначално, но преди числото 2 от цяло число тип (2) се прехвърля в реално тип (4). Освен това, операция за разделяне се изпълнява, и отново се предхожда от типа на трансформация: Тип 1 число (2) се прехвърля в реално тип (4). Експресия връща реално число тип 0.2 (4), които след резултат се превръща в реално вид назначение (8). При изпълнението на тези действия операнди х и у, разбира се, да остане.

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

число (2) :: х = 2, у = 4 реално (4) :: Z = 4, Q1, Q2 Q1 = Z ** (х / у)! 1.000000 q2 = Z ** (поплавък (х) / поплавък (у))! 2.000000

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

недвижими (4) :: х = 1.11 недвижими (8) :: у у = х печат *, х! 1.110000 печат *, у! 1,110000014305115

Но, ако просто започнете да въвеждате реален (8), точността се поддържа:

реална (4) :: х, у х = 1.11_8; у = 1.11d0 печат *, х! 1,110000000000000 печат *, у! 1,110000000000000

Както вече бе отбелязано, преходът към по-ниска тип видове може да се придружава от нарушаване на стойности, например:

число (2) :: х = 325 число (1) :: у! -128 <= Y <= 127 у = х печат *, х! 325 печат *, у! 69

трябва да се вземат 8. грижа, така че в резултат на израза не надвишава стойността на сорта. Например, ние имаме:

число (1) :: а = 100, б = 100, в число (2) :: г! -128 <= ш <= 127 с = а + б! Грешка - грешно! г = а + б! Вярно печат *, C, D! -56200