русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Экранды пішіндегі редактор


Дата добавления: 2015-06-12; просмотров: 972; Нарушение авторских прав


Бастапқы кодтың редакторы сол жоғарғы бөлiмiнде"әрлендiру" Design белгi басамыз . Бiз жанында бұл бұл суретте көрсететiн экранды пiшiннiң редакторы (Source белсендi белгi - "бастапқы код") бастапқы кодтың редакциялауын тәртiптен тәртiпке ауыстырып қосамыз.


увеличить изображение


Сурет- 2.15. Экранды пішінді редакциялау

 

Бастапқы код орынына компонент ол болатын экрандық пiшiн сырт пiшiнi көлбеңдейдi. Терезенiң оң жағындағы, редакциялаудың тәртiбiнде экрандық пiшiн көлбеңдеген "палитра" терезе Palette орналастырған ) компоненттердiң палитрасы және ("қасиет") Properties көрсету және ағымдағы компоненттiң қасиеттерiнiң редакциялауын терезе.

Қасиет - бұл әрекет қандай болса да мәннiң өзгеруiнен кейiн iстей алған мәлiметтердi дала. Мысалы, жаңа енi бар компонент пердеде компоненттiң енiн мәннiң өзгеруiнде сурет салу. Мәлiметтерiн даласы "Кәдiмгi" мұндай қабiлеттi емеске. Қорыта келгенде, қасиет - бұл "мәлiметтердi ақылды кеңістік".

Компоненттердiң палитрасы экрандық пiшiнде орналастыру үшiн керек бағдарламашы компонент таңдау үшiн түрiндегi арналған. Мысалы, (Java Button жиырылу - "Java батырма") JButton компонент бiздiң пiшiн түрiндегi қосамыз. Үшiн бұл палитрадаJButton тармақ бойымен тiнтуiрдi шертемiз және керек экрандық пiшiндi орынға тiнтуiр жылжытамыз. Тiнтуiрмен бiргемен жылжытатын үйреншiктi өлшемнiң батырмасы онда экрандық пiшiндi облысқа тiнтуiрдiң дәл тигiзуiнде көрiнiп қалады. Керек пiшiннiң орынында шерту батырма бұл орында қалған алып келедi. Оны қоршаған бiздiң компонентi болып табыл шығарылған шеңбер және таңбалаушы кiшкентай кiшкене шаршылар көлбеңдейдi. Ол үшiн Properties қасиеттердi терезеде көрсету және редакциялауды жүзеге асырылады.



Одан басқа, шығарылған компоненттен пiшiнде компоненттiң жағдайының тапсырмасы үшiн байлануды жүрген сызық аралап шығады.

Компоненттерде жазудың үндемеуi бойымен кейiн компоненттiң нөмiрiн жүрген есiм түрiндегi сияқты менменседi. Бiрақ есiмнен бас әрiптермен, айырмашылыққа орынына түрiндегi, кiшi пайдаланады. Сондықтан бiрiншi батырма jButton1 ие болады, екiншi - jButton2, және әрi қарай. Сондай болыбы айнымалылар, тиiстi батырмалар бастапқы кодта автоматты түрде құрылған кесеуге ие болған.

Батырмада жазуды өзгерт бiрнеше тәсiлдермен мүмкiн. - бiрiншi, қос шерту ол арналған жасалып, және мәтiн редакциялап. - екiншi,Properties терезеге өтiп, қасиет Text мәнi өзгертiп және енгiзудiң аяқтауы үшiн басылып. - үшiншi, label қасиет аналогиялық түр өзгертiп. Әйтеуiр, емес Properties мәтiн терезеде редакциялау мүмкiн, Text немесе label қасиеттерi үшiн мәндердiң енгiзуiн бiр жолды дала емес, қасиеттiң мәнiнiң редакциялауы тармақтың оң жағындағы болатын батырмаға басу көп жолды редактор жолымен ашылып. Дегенмен редактордың көп жолдылығы батырмада жазу көп жолды жасауға көмектеспейдi.

"OK" жазудың батырмасында енгiземiз - бағдарламадан шығатын есiк үшiн бұл батырманы пайдаланамыз.


увеличить изображение


Сурет - 2.16. Өзіндік компоненттің редакциялануы

 

Компоненттiң мөлшерi тиiстi бағыттар бойымен шеңбердi және кеңейту немесе тарылуда ұстап алу жолымен тiнтуiрмен менменседi. Жаңа орынға қою - тiнтуiрдiң компонентiнiң тасуымен.

Шығарылғанкомпоненттiң (оның мөлшерi, жағдай, мәтiн) кейбiр қасиеттерi экрандық пiшiндi облыста тiкелей өзгертуге болады. Дегенмен қасиеттердiң көпшiлiгi қасиеттердiң редакциялауын терезеде қарап шығып айырбастайды. Ол бағаналардың екiлiктерiнен тұрады: сол көлбеңде қасиеттер, құқыққа ие болған - олардыңның мәнi. Көп жағдайларда бағана құқық тұрған мән кесте ұяшықтарындағы тiкелей редакциялай алады. бұл енгiзуде <Enter> басу немесе редакциялалатын ұяшықтан шығуымен, ал бiтiрiлмеген енгiзудiң нәтижелерi бұзуға <Escape> басу мүмкiн.

Әр ұяшықтың оң бөлiгiнде "жазумен батырма ие болады - пункт мәзiрi және басуынан кейiн диалогктiк терезенi ашылған батырма атауда үш нүктенiң қабылдап толтыру қазiргi басқару жүйелерiнде. Егер ол бар болса бұл жағдайда тиiстi қасиеттiң мамандандырылған редакторын терезе ашылады.

Егер компоненттiң қасиеттерiнiң үлкен санын қарап шығып редакциялауға талап етсе, керек компонент бойымен мәзiр "Properties" тармақты таңдауға қалқып шығатын тiнтуiр оң батырма пайда болған шертуге ыңғайлырақ болады. Бұл жағдайдада компоненттiң қасиеттерiнiң редакциялауын жеке терезенi ашылады. Мұндай терезелердiң ашық бiр мезгiлде кез келген сандарымен ұстауға болады.

Қасиеттердiң мәндерiнiң бағанында булев қасиеттерi таңдау checkbox батырмаларын өңде көлбеңдейдi - қанат белгiнiң қоюын мүмкiндiкпен кiшкене шаршылары iшiнде. Егер бар болса - true егер қанат белгi жоқ, қасиет false мәнi.

Компоненттер үшiн орнатуға болған кейбiр ең маңызды қасиеттердiң батырма қатар мысалында санап шығамыз. Оның көптерiн басқа компоненттерге де жатады.

Кесте 2.5.
Өзіндік мағынасы Не білдіреді
background Түс негізі
componentPopupMenu Компоненттiң облысында тiнтуiрдiң оң батырма пайда болатын қалқып шығатын мәзiрдi тағайындауға мүмкiндiк бередi
font Компоненттегi жазу жасалған шрифт
foreground Компоненттегi жазу жасалған шрифттың түсi
icon Мәтiндi жанасаламен компонентте қылмиютын сурет
text Компоненттегi (жазу ) мәтiн
toolTipText Компонентке әрi-берiден тiнтуiрдiң мегзегiшiнiң көрсету пайда болатын қалқып шығатын анықтама
border Компонент шеңбердiң түрi айнала
borderPainted Компонент шеңбер айнала қылмиюды.
contentAreaFilled (ол батырмалар үшiн үш өлшемдiктiң әсерiн құрады, толтыру батырма жазық көрiнедi) компоненттiң iшкi облысының түсiмен толтыру ие болады.
defaultCapable Қабiлеттi батырма "үндемеу бойымен батырмамен" болу: <Enter>"үндемеу бойымен батырма" (экрандық пiшiнде мұндай батырма бiр болуы керек бол) басуда автоматты түрде болады
enabled Компонент қол жететiн. Бәрi құрылған компоненттердi пiшiндерде үндемеуi бойымен қол жететiн. Қол жетпес компоненттер солғын бояулардан астам қылмиюды.

 

Мысалдың сапасында бiздiң батырма үшiн қалқып шығатын анықтама қосамыз: toolTipText далаға, тиiстi қасиет "Бұл батырма бағдарламадан шығатын есiк үшiн арналған" мәтiн енгiземiз. Егеролжолдапрограммалықжолыментапсырылсаөкiнiшке, анықтаматекқанабiржолдыболаалады - жаңажолғааударманыңнышандарынанықтаманыңқорытындысындаелемейдi.

Әйтеуiр, батырмаға басуды (event handler ) оқиғаның батырмаға басуда орындаған әрекет, өңдеушiсiн тапсырамыз. Үшiн бұл батырма бастапқыда шығарамыз, кейiн мәзiр Events/Action/actionPerformed тармақты таңдауға қалқып шығатын тiнтуiрдiң оң батырманы ол арналған шертемiз.


Сурет - 2.17. Уақиға өңдеушінің мағынасы

 

Events "Оқиға", Action - "Әрекет", actionPerformed - "атқарылған әрекет"бiлдiредi.

Бастапқы кодтың редакторына автоматты ауысуда бұдан кейiн болады, және оқиғаның өңдеушiсiн дайындама анда пайда болады:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:}

Аналогиялық нәтиже алуға болады және тәсiл жылдамырақ - бiз (Design ) пiшiннiң редакциялауын терезеде батырма шығаратын кейiн, терезеде Navigator бұл батырманы есiм көлбеңдеп шығарады. Жол сiлтеушiнiң терезесiнде бұл есiм бойымен қос шерту оқиғаның өңдеушiсi дайындаманың құрылуына алып келедi. JButton1ActionPerformed өңдеушiнi жанасала "Шығу" мәзiр тармаққа басу iске қосылатын оқиға бар өңдеушi ендi орналастырады:

private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {System.exit(0);}Бағдарламадан шығатын есiк шақыратын кодқа түсiнiгi бар жолдың оқиғасы бiздiң өңдеушi алмастырамыз; private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {System.exit(0);}

Батырмаға тiнтуiрдiң мегзегiшiнiң жинақтауы ендi iске қосудан кейiн бiздiң қосымша қалқып шығатын анықтаманың пайда болуына келтiредi, - бағдарламадан шығатын есiкке басу.

Мысалы, жиi кездесетiн жағдай - батырмаға басуды оқиға қандай болса да қатынастың көрсетуi шабуылда.

Бұл жағдайдада қатынасы бар панель шақырады: (null, "Менiлер бастым" "сы) javax.swing.JOptionPane.showMessageDialog;

 

 

Таблица 3.4.
Тип Число байт Диапазон значений Сипаттама
byte Жазба ( 8-биттық табандатқан таныс) бiр байттық бүтiн сан
short ( 16-биттiк табандатқан таныс) сан қысқа бүтiн
char (таңбасыз 16-биттiк табандатқан) нышандық түр
int ( 32-биттiк табандатқан таныс) бүтiн сан
long ( 64-биттiк табандатқан таныс) ұзын бүтiн сан

 

Long сандық литералық тұрақтылардың бағдарламасының мәтiнiнде тапсырма үшiн түрiндегi, int сандардың диапазоны түрiндегi шектен шығу, постфикс санның жазуынан кейiн құру керек - L әрiптi. Мысалы, 600000000000000L. Кiшi l, бiрақ сiрә оның ең жаманы, әсiресе - (бiрлiкпен шатыстыруға болады) программаны басып шығаруларда да құруға болады. Мән барлық бүтiн санды түрлер үшiн өңге жағдайларда кәдiмгi өңде көрсетiледi, және ол int бар түр санасылады - бiрақ int санды қақшауда түрiндегi long мәнге түрiндегi автоматты түрде түрлендiредi. Сөйлеп қойылды, айнымалыларды тану қалай тапса да, әдiсте де жүзеге асырыла алады. Бұл мәннiң нұсқауымен де, анық иемденусiз бастапқы мән де олардың тапта жариялауға болады. Егер бастапқы мәнi көрсетiлмесе, мөлшердi нөлдiк мәнмен аты-жөнiн көрсетедi. Егер бiрнеше айнымалылар бiр түрiндегi жарияласа, бiрнеше айнымалылар есiмнiң нұсқауынан кейiн аударуға түрiндегi рұқсат берiледi, сол санда - оларға иемденумен бастапқы мән. Қолданудың алдында бәрi айнымалылары әдiсте мiндеттi түрде аты-жөнiн көрсетуi керек - олар үшiн автоматты инициализацияда болмайды. Бұл хабарлауда да, iшкi программада айнымалының мәнiнiң қолдануының талпынысына дейiн де жасауы керек. Инициализацияламалған айнымалының мәнiнiң iшкi программасында қолданудың талпынысы компиляцияның уақытына қатеге алып келедi. Тапта айнымалылардың тапсырмасының мысалдарын қарап шығамыз. int i,j,k; int j1; byte i1,i2=-5; short i3=-15600; long m1=1,m2,m3=-100; Байқаймыз, j, k, j1, i1, m2 i көрcетiлген айнымалыларды танулардан кейiн 0 маңызы болады. I1лер үшiн бұл айқын емес - екi айнымалылар мәндi аты-жөнiн көрсететiнiн ойлауға болады, 5. Сондықтан осылай жақсы сию: byte i1=0,i2=-5; Бiлдiрулердегi қолдану: i=5; j=i*i + 1 m1=j m2=255; m1=m1 + m2*2; Жеке нышандардың сақтауы үшiн арнағандығымен, char Java, сонымен қатар C/C++ларға түр, болып табыл санмен көрсетiлген. Айнымалы нышандық Unicode жадағай тырнақшалар алынған бiр нышан немесе басқарушы тiзбекке кодпен жазатын нышан түрiндегi тағайындауға болады. Немесе (кодтық кестеде нышанның нөмiрi) нышан Unicode санмен көрсетiлген коды тағайындауға болады: • char c1='a'; • char c2='\u0061'; • char c3=97; Айнымалылардың бәрi үш келтiрiлген декларациялары "a" 97, тиiстi латын әрiптерiменiн ондық мән айнымалыларды тағайындайды.

Перде немесе басқа құрылғыда суреттей алған нышандардың сандары салыстыру үшiн әр түрлi кодтық кестелер бар болады. Тарихи себептерiнiң күшiне өзi таралған латын жазуының нышандары, цифрлар және үйреншiктi арнаулы нышандар үшiн ASCII кодтық кесте болып табылады. Сондықтан Unicode оларғаның болған iсiнiң кестесiнде нөмiр сол бердi, және Unicode және ASCII олардың кодтары үшiн дәл келедi: 'A 65-шi код, B ие болады - 66, Z - 90, a - 97, z - 122, 0-48, 1-49, 9-57:' - 58 ';' - 59, <- 60, =-61,> - 62, және әрi қарай. Өкiнiшке айнымалылармен және мәндермен нышандық бүтiн сандармен iске асыруға рұхсат ететiн бәрi әрекеттер түрiндегi iске асыруға болады. Сондықтан нышандық мәндердi шөмелелеп шегеруге, табандатқан мөлшерлер "кәдiмгi" тек қана емес көбейтiп бөлуге болады, бiрақ және бiр-бiрiне! Тұрақты атаулы жад ұяшықтары өзгермейтiн iшiндегi деп аталады. Тұрақтыларды тану тапта жүзеге асырылады, тұрақтысы есiмiн алдында жанында бұл түрiндегi комбинациясына тұрғызыл словpublic және final: кейiнге сақталған public final int MAX1=255; public final int MILLENIUM=1000; Тұрақты оқу бойымен айнымалылармен, түсiнiктi тек қана сияқты пайдалануға болады. Талпыныс "=" енгiзу операторының көмегi бар мәнiн тұрақтыны бер компиляцияның қатесiн шақырады. Олардың үшiн болған iстiң тұрақтылары ие бол бағдарламаның мәтiнiнде жақсы көрiнетiндей етiп (бас әрiптермендермен ) жоғарғы регистрде әдетте жазады. Әдептiң келесi ережесi ие болады: ешқашан бiр пайдаланбаңыз және онда бағдарламаның әр түрлi орындарында санмен көрсетiлген литералық мән тұрақты бұның орынына және бұл орындардағы оныңның есiмi пайдалануға жасаужөн сiлтеп отыру керек. Мысалы, бiз әрiптердi ағылшын әлiппесiнде көп орындарда 26-шы литералық тұрақтыны пайдаланатын мәтiннiң өңдеуiнiң бағдарламасы, сан жазамыз. Мысалы, егер бiздiде есеп әрiптердi басқа санға орыс ) әлiппемен оныңның жұмыс үшiнiн түрлендiруге пайда болса, бағдарлама үлкен орындар санына түзетудi кiргiзуге келедi. Жанында бұл қажеттi түзетулерден қандай болса да ескерусiз ұмыт болмайтын ешқандай да кепiлдiк жоқ, немесе әлiппенiң әрiптерiн санға 26-шы литералық бiлдiру, бар емес ешқандай да қатынастар жаңа мәнге "түзетiлген" қапылыста болмайды. Оптимист, мәселе (мүмкiн әзiрлеудiң кейбiр орталарында мұндай) жобаның файлдары бойымен 26-шы санның iздестiруiмен ұйғарылатын сүтқоректi, бұл көмектеспейтiнде мысалды келтiремiн: "" астын сызу символысы әрiппен (бiрақ әрқашан емес) кейде санасылады. Сондықтан бағдарламаның кейбiр орындарында 27-шi санды дараланады, ал кейбiр 26. Басқа жерлерде, бiр және түзетудi кiргiзу керек ейдi. Сондықтан жұмыс таза техникалық болуға тоқтайды - бағдарламаның бөлiмшесi, және мүмкiншiлiк өзгерiстерде мағынаны байымдатуға талап етiледi жанылауға бар. Атаулы тұрақтылардың қолдануы бұл мәселенi толық шешедi. Егер бiз тұрақты CHARS_COUNT= 26 енгiзсек, онда 27 орынына CHARS_COUNT + 1 жазып алып, және мән CHARS_COUNT өзгеруiн дұрыс түрмен ықпал тигiзетiн болады және бұл бағдарламаның орынына. Бiрде қажеттi түзету бағдарламаның барлық орындары үшiн дұрыс нәтиже алуға кепiлдiк берген бiр өзгеру кiргiзуге жеткiлiктi бар.

 

 

3.3. Жұмыс үшiннiң негiзгi операторлары бүтiн санды мөлшерлермен.

Оператор бәрi аталған төменде операндтар деп аталған бүтiн санды мөлшерлер двелерге әрекет жасайды. Оператордың әрекетi нәтижеде бүтiн санды нәтиженi қайтарады. I және j мысал барлық аталған бұдан әрi бүтiн санды бiлдiрулердi белгi қояды, v ал - бүтiн санды айнымалыны.

 

Таблица 3.5.
Оператор Название Пример Примечание
+ Оператор сложения i+j В случае, когда операнды i и j имеют разные типы или типы byte, short илиchar, действуют правила автоматического преобразования типов.
Оператор вычитания i-j
* Оператор умножения i*j
/ Оператор деления i/j Результат округляется до целого путем отбрасывания дробной части как для положительных, так и для отрицательных чисел.
% Оператор остатка от целочисленного деления i%j Возвращается остаток от целочисленного деления
= Оператор присваивания v=i Сначала вычисляется выражение i, после чего полученный результат копируется в ячейку v
++ Операторинкремента(увеличения на 1) v++ v++ эквивалентно v=v+1
-- Оператордекремента(уменьшения на 1) v-- v-- эквивалентно v=v-1
+=   v+=i v+=i эквивалентно v=v+i
-=   v-=i v-=i эквивалентно v=v-i
*=   v*=i v*=i эквивалентно v=v*i
/=   v/=i v/=i эквивалентно v=v/i
%=   v%=i v%=i эквивалентно v=v%i

Сонымен бiрге Integer және Long кластарды табандатқан мәнге тiзбектiк сандарды көрсетудi өзгерту қамтамасыз ететiн маңызды әдiстер ие болады: • (жол ) Integer.parseInt • (жол ) Long.parseLong Мысалы, егер экрандық пiшiнде енгiзу jTextField1 және jTextField2 санда мәтiннiң оларында қорыта келгенде жүргiзiле алуға енгiзiлген мәтiндiк тармақтары ие болса, өзгертуi: • int n=Integer.parseInt(jTextField1.getText()); • long n1=Long.parseLong(jTextField2.getText()); (сан ) Integer.signum және егер ол 0 тең, (сан ) Long.signum санның таңбасын қайтарады - онда сан егер оң бар, 0, және - сан егер 1 терiс функция. Одан басқа, Integer және Long таптардағы сандармен жұмыс үшiннiң операторларының олардыңның бит ұсынысының деңгейiндегi қатар ие болады. Integer және Long тап (wrappers ) деп аталатын қабық таптарымен сөздiң олары туралы әрi қарай

сәл кетедi болып табылады.

 

 

3.4. Math заттық түрлер және тап

Таблица 3.6.
Тип Размер Диапазон Описание
float 4 байта (32 бит) "Одинарная" точность, 7-8 значащих десятичных цифр мантиссы. Тип real*4 стандарта IEEE754
double 8 байт (64 бит) "Двойная" точность, 15..16 значащих цифр мантиссы. Тип real*8 стандарта IEEE754
Таблица 3.7.
Оператор Название Пример Примечание
+ Оператор сложения x+y В случае, когда операнды x и y имеют разные типы, действуют правилаавтоматического преобразования типов.
Оператор вычитания x-y
* Оператор умножения x*y
/ Оператор деления x/y Результат является вещественным. В случае, когда операнды x и y имеют разные типы, действуют правила автоматического преобразования типов.
% Оператор остатка от целочисленного деления x%y Возвращается остаток от целочисленного деления x на y. В случае, когда операнды x и y имеют разные типы, действуют правила автоматического преобразования типов.
             

 

Математикалық функциялар, "Пи" (Math.PI ) тұрақты сонымен бiрге ал және "е" (Math.E ) Math java.lang пакет болатын тапта тапсырылған. Үшiн олардың тап Math бiлiктi алдында есiмiмен функция немесе тұрақты ат нұсқайду керек пайдаланатындай етiп. Мысалы, Math.PI немесе (x ) Math.sin шақыру мүмкiн. Пакет java.lang бұл есiмiнде көрсету керек - оны автоматты түрде импорттайды. Өкiнiшке, квалификатор Math математикалық функциялар пайдалансын, алынбайды, өйткенi бұл таптың әдiстерi. Math тапта тұрақты осылай тапсырылған: • public static final double E = 2.7182818284590452354; • public static final double PI = 3.14159265358979323846; Static түрлендiргiш бұл таптың айнымалы бiлдiредi; final тапта бұл мән қайтадан анықта мүмкiн емес бiлдiредi. Мөлшер x, y, angdeg, angrad төменде келтiрiлген кестеде a double, мөлшер түр ие болады - float, n түр - long немесе int табандатқан түрлер.

 

 

Таблица 3.9.
Оператор класса Math Примечание
Тригонометрические и обратные тригонометрические функции
sin(x) sin(x) - синус
cos(x) cos(x) - косинус
tan(x) tg(x) - тангенс
asin(x) arcsin(x) - арксинус
acos(x) arccos(x) - арккосинус
atan(x) arctg(x) - арктангенс
atan2(y, x) Возвращает угол, соответствующий точке с координатами x,y, лежащий в пределах .
toRadians(angdeg) angdeg / 180.0 * PI; - перевод углов из градусов в радианы.
toDegrees(angrad) angrad * 180.0 / PI; - перевод углов из радиан в градусы.
Степени,экспоненты, логарифмы
exp(x) - экспонента
expm1(x) . При x, близком к 0, дает гораздо более точные значения, чем
log(x) ln(x) – натуральный логарифм.
log10(x) – десятичный логарифм.
log1p(x) . При x, близком к 0, дает гораздо более точные значения, чем
sqrt(x) - квадратный корень
cbrt(x) - кубический корень
hypot(x,y) - вычисление длины гипотенузы по двум катетам
pow(x, y) – возведение x в степень y
sinh(x) – гиперболический синус
cosh(x) – гиперболический косинус
tanh(x) – гиперболический тангенс
Модуль, знак, минимальное, максимальное число
abs(m) abs(x) Абсолютное значение числа. Аргумент типа int, long, float или double. Результат того же типа, что аргумент.
signum(a) signum(x) Знак числа. Аргумент типа float или double. Результат того же типа, что аргумент.
min(m,n) min(x,y) Минимальное из двух чисел. Аргументы одного типа. Возможнытипы: int, long, float, double. Результат того же типа, что аргумент.
max(m,n) max(x,y) Максимальное из двух чисел. Аргументы одного типа. Возможнытипы: int, long, float, double. Результат того же типа, что аргумент.
Округления
ceil(x) Ближайшее к x целое, большее или равное x
floor(x) Ближайшее к x целое, меньшее или равное x
round(a) round(x) Ближайшее к x целое. Аргумент типа float или double. Результат типа long, если аргументdouble, и типа int – если float. То же, что (int)floor(x + 0.5).
rint(x) Ближайшее к x целое.
ulp(a) ulp(x) Расстояние до ближайшего большего чем аргумент значения того же типа ("дискретность" изменения чисел в формате с плавающей точкой вблизи данного значения). Аргумент типаfloat или double. Результат того же типа, что аргумент.
Случайное число, остаток
random() Псевдослучайное число в диапазоне от 0.0 до 1.0. При этом
IEEEremainder(x,y) Остаток от целочисленного деления x/y, то есть x-y*n, где n – результат целочисленного деления

Сонымен бiрге Float және Double қабық кластарын Float немесе Double: мәнге тiзбектiк сандарды көрсетудi өзгерту түрiндегi қамтамасыз ететiн әдiстер ие болады • (жол ) Float.parseFloat • (жол ) Double.parseDouble Мысалы, егер экрандық пiшiнде енгiзу jTextField1 және jTextField2 санда мәтiннiң оларында қорыта келгенде жүргiзiле алуға енгiзiлген мәтiндiк тармақтары ие болса, өзгертуi: • float f1= Float.parseFloat(jTextField1.getText()) ; • double d1= Double.parseDouble(jTextField2.getText()) ; Math тап орынына кейде классыBigDecimal болатын java.math, BigInteger, MathContext, RoundingMode пакеттi пайдалануға қате азаптандырады. BigDecimal тап мәндi цифрлардың кез келген саны бар ондық сандармен жұмысты қамтамасыз етедi - сол цифрлардың кез келген саны бар санында ондық нүктеден кейiн. BigInteger тап кез келген ұзындықтың бүтiн сандармен жұмысты қамтамасыз етедi. MathContext және RoundingModeявляются тап кейбiр әдiстермен жұмыс үшiннiң күйге келтiру қамтамасыз ететiн қосалқы.3.5. Түрiндегi жұмысының жанында анық және автоматты өзгертуiн ереже сандық шама Компьютер int немесе long бүтiн санды математикалық есептеулер тек қана мөлшерлермен аппаратты деңгейде түрiндегi өткiзе алады. - Бұл негiзгi математикалық операциялардағы операндтарында +,- түрiндегi болуы керек бiр ) /, % *,. Екiншi операнд бұл түрге автоматты түрде түрлендiретiндiгiнен, егер операндтардың бiрлерi long түр ие болса, әрекет long сандармен түрiндегi өндiредi. Аналогиялық, тек қана float және double түрлерiнiң операндтарымен аппаратты деңгейде Java мүмкiн жұмысқа нақты мәндермен жұмыстың жанында. Бiр бұл негiзгi математикалық операциялардағы операндтарында түрiндегi болуы керек.Егер операндтардың бiрлерi бүтiн санды болса, ал басқа заттығы, сондай болып заттық түрге бүтiн санды операндты өзгертудi бастапқыда жүредi, ал операторды сонан соң орындайды. Иемдену бойымен түрлердiң үйлесiмдiктiң ережесiн ендi қарап шығамыз. Ол оңай: түрiндегi сол бөлiктiң мәндерiнiң диапазоны ендi диапазон түрiндегi оңға қарағанда болуы керек. Сондықтан оң бөлiкте түр сол бөлiктiң диапазонына орналастырмаған иемденулердегi, анық өзгерту түрiндегi көрсетiлуге талап етiледi. Әйтпесе компилятор "("мүмкiн дәлдiктi жоғалту") possible loss of precision" өте адекватты диагностикасы бар қателiк туралы хабарды бередi. Өзгертiлетiн мөлшердiң алдында дөңгелек жақшалардағы анық өзгерту үшiн түрiндегi есiм түрлендiруi керек болатын түрiндегi құрады.

Мысалы, мейлi ие болады double d=1.5; D мөлшер float түрге қорыта келгенде түрлендiруге болады:(float)d Егер float f мөлшер түрiндегi ие болса, аналогиялық, оның double мөлшерге түрiндегi қорыта келгенде түрлендiруге болады: (double)f Егер өзгеру түр ендi диапазоннан астам бар айнымалы болса, анық түрлердiң өзгеруiне көп жағдайларында қолдану керек, өйткенi автоматты өзгерту әрекет жасайды, өзгерудiң диапазонымен түр тарлау бар бiлдiрудi тағайындайды. Например, для вещественных типов разрешено присваивание только в том случае, когда слева стоит вещественная переменная более широкого диапазона, чем целочисленная или вещественная – справа. Мысалы, типаdouble айнымалы float мән түрiндегi беруге болады, бiрақ керiсiнше емес. Бiрақ үшiн түр мұндай иемденудi орындайтындай етiп өзгертудi пайдалануға болады. Мысалы: double d=1.5; float f=(float)d; Рұқсат етiлген иемденулердi басқа мысалдар:

Таблица 3.10.
byte byte0=1; //-128..127
short short0=1;//- 32768.. 32767
char char0=1;//0.. 65535
int int0=1; //- 2.147483648E9.. 2.147483647E9
long long0=1;//-9.223E18.. 9.223E18
float float0=1;// ±(1.4E-45..3.402E38)
double double0=1;// ±(4.9E-324..1.797E308 )
Таблица 3.11.
short0=byte0;
byte0=( byte )short0;
char0=( char )short0;
int0=short0;
int0=char0;
char0=( char )int0;
short0=( short )int0;
long0=byte0;
byte0=( byte )long0;
long0=char0;
long0=int0;
int0=( int )long0;
float0=byte0;
float0=int0;
float0=( float )double0;
double0=float0;
     

3.6. Қабық таптары. (boxing ) қаптама және (unboxing ) таңудан босату

Қарапайым мән орынына жағдайларды қатарда объект түрiндегi талап етiледi. Мысалы, объектiлердiң тiзiмдерiмен жұмыс үшiн. Тап Object бәрi таптар Java мұрагерлерiмен, қарапайым түрлер үшiн ал бұл жасауға болып табыл мүмкiн еместен, бұл Java объектiлермен жұмыс бейiмделе алған байланған. Мұндай әр қарапайым түрге Java мақсаттары үшiн объектiнiң түрi салыстырады, онда тап бар. Мұндай таптар (class wrappers ) қабық деп аталады. Ол ортақ жағдайда сол ие бол ие болған, емес жаңа бастап жүрген қарапайым түрлер, бiрақ кiшi емес, бас әрiптерменнен. Неге-онда шығару int және үшiн Integer қабық кластары болатын және Character char түрлердi құрайды.

Таблица 3.12.
  Оболочечныйкласс
byte Byte
short Short
char Character
int Integer
long Long
float Float
double Double

Character тап бiрнеше өңге қабық санмен көрсетiлген кластарынан ерекшеленедi сондықтан, "әбден емес санмен көрсетiлген" char түр. Қабық кластарын негiзгi тағайындау - қарапайым түрлердiң мәндерiнiң үсiнде қабық болатын объектiлердiң жасауы. "қорап" мұндай объектiнiң жасауы процесс - box ) мәннен қарапайым (boxing ) қаптама түрiндегi деп аталады, объектiден мөлшерге керi өзгеру ал қарапайым түрiндегi - (unboxing ) таңудан босатумен. Мән үшiн "орауыш" қабық объектiлерi қарапайым түрiндегi ) соответствующегопримитивного далаға бұл мән түрiндегi сақталады, () ) функция имяТипаValue қол жететiн көмегiмен. Мысалы, Byte объект үшiн () ) әдiс byteValue түрiндегi.

Бiрақ көп жағдайларда қабық кластарының түрi бар айнымалыларының қарапайым түрлердiң айнымалыларынан жалпы айырмашылыққа абайламауға болмайды, өйткенi қаптама және бiлдiруге мұндай объектiнiң алмастыруының жанында таңудан босатуда автоматты түрде болады, және бұл жағдайдалардағы объект қабық түрiндегi сыртқы өзiн өзi сан сияқты ұстайды. Мысалы, мұндай кодтың бөлiктерi мүмкiн: Integer obj1=10; int i1= obj1*2; Byte b=1; obj1=i1/10; b=2; Бiрақ аралық буферлiк ұяшықтарда мәндердiң көшiруiнiң сыртқы көрiнбейтiн қосымша операцияларында қаптама операцияларында болғанын ұмыту керек емес, сондықтан тиiстi есептеулер қарапайым түрлерi бар операция бiрнеше ақырынырақ және жад бiрнеше артық талап етедi.

 

Сондықтан олардыңның қолдануы бағдарламаның орындарына кризистiк тезәрекеттiктерге және атқаратын ресурстарға орынсыз. Көп жағдайларда басқа жағынан, (ол бесiншi нобай JDK пайда болды) автоматты қаптамамен программалауды елеулi ықшамдайды және бағдарламасының мәтiнi жаса оқылатынырақ. Оның тезәрекеттiк сыналмайтын бағдарламалардың бөлiмшелерi үшiн дегенмен әбден пайдалануға болады.

Қабық таптары объектiлердiң жасауынан тысқары басқа пайдалы қолдануларды қатар ие болады. Мысалы, санмен көрсетiлген қабық таптарында көмегiмен ең жоғары және минималь мән алуға болған тұрақтыны сақтайды:

• Byte.MIN_VALUE, Byte.MAX_VALUE, Float.MIN_VALUE, Float.MAX_VALUE, Double.MIN_VALUE, Double.MAX_VALUE және т.б.. Сонымен бiрге қабық таптарында кластарды әдiстер ие болады, онда объектiнiң жоқтығында тиiстi түрiндегi жұмыс iстей алатын бар, олардыңның шақыруы үшiн есiм түрiндегi пайдалануға болады. Мысалы, бiлiп қойыл бiз қалай, әдiстер ие болады

· Byte.parseByte ( строка )

· Short.parseShort ( строка )

· Integer.parseInt ( строка )

· Long.parseLong ( строка )

· Float.parseFloat ( строка )

· Double.parseDouble ( строка )

Ол санға жол тиiстi түрiндегi түрлендiредi. Шақырулар

· Byte.valueOf ( строка )

· Short.valueOf ( строка )

· Integer.valueOf ( строка )

· Long.valueOf ( строка )

· Float.valueOf ( строка )

· Double.valueOf ( строка )

оларға аналогиялық, бiрақ қайтарады, санмен көрсетiлмеген мән емес, тиiстi қабық түрлерiнiң объект. Қабық кластарын қолданудың мысалдары:

· int n1=Integer.MAX_VALUE;

· double d1= Double.MIN_VALUE;

Айтып ескертемiз, иемденумiз

· double d2= Double.parseDouble(jTextField1.getText());

қалайдай ғой мүлде жұмыс iстейдi

· double d2= Double.valueOf(jTextField1.getText());

valueOf әдiс екiншi жағдайда қарамастан Double объект қабық түрiндегi құрылады.

 

Сол иемденудiң бiр бөлiгiнде double айнымалы түрiндегi тұрып, айнымалы d2присваивается буманы шешiлген мән автоматты таңудан босату, және болатындығы. Жанында өзiмнiң объектiсi бұл қоқыс болады - онымен программалық байланысты сасқалақтатады, және ол қоқыс жинастырудың жүйесiн жадтан әрi-берiден алып тастайды. Компьютер өлшегiштерi бойымен қолданушымен әрекеттесудiң операциясы өте ақырын, бiр объект ал қабық (жүздiк байт жанында) жадта орын аз түрiндегi елемеуге болатын орынға ие болатындығы, бұл жағдайда сыналмайтын тезәрекеттiктер де жад көлемi де. Ресурстарды бұл жағдайдада жоғалтулармен дегенмен, тек қана бағдарламаның мәтiнiнiң оқылатындығына қарауа санаспауға болмайды. Сондықтан автор иемденудiң екiншi нұсқасын қалайды: ол бiр жағынан және ресурстарды шығын бойымен "ең жақсы емес", бiрақ аса оқып отырамыз.

3.7. Операторларды басымдылық

Операторларды басымдылық бiлдiрулердi есептеуде маңызды. "табиғи" ол қосу, шегеру, көбейту және бөлiнудiң операторлары үшiн: көбейту және бөлiну бiрдей өте биiк басымдылыққа ие болады, қосу және шегеру ал - төменде бiрдей басымдылықпен. Мысалы, қорыта келгенде, • a*b/c+d бұл онда, не • ( (a*b)/c )+d Жақшаның Круглоесi бiлдiрулердi элементтер, жақшалардағы бұл бiлдiрудiң жанында топтауға мүмкiндiк бер бiлдiрудi қалған бөлiктiң есептеуiнде қатысатын дейiн есептейдi. Бiрде жақша бар бәрi өңге операторға қарағанда үлкенiрек басымдылықты қамтамасыз етедi. (a+b ) сондықтан *c осылай есептейдi: a+b сома бастапқыда есептеп шығарады, c мәнге не алған нәтижеден кейiн көбейтедi. Аталған Java басқа әр түрлi операторларды басымдылық анықтайтын басқа ережелердiң үлкен саны ие болады. Автор олардыңның зерттеуi тек қана емес тиiмсiз санасады, бiрақ тiптi зиянды: бағдарлама болған iстiң әрекеттерiн бәрi тiзбектер анық болғандай етiп және текстапрограммы күрделiлiктердi түсiнуде шақыратындай етiп және логикалық қатеге келтiре алмағандай етiп сию керек. Сондықтан ол теория жағынан алғанда керек жағдай жақша тiптi сол қойып шығу керек, бiрақ әрекеттердi анық тiзбектер жасайды.

Айтып ескертемiз, мұндай әрекеттер анағұрлым күрделi мәселеден астам бел байлауға жиi бiрге көмектес арифметикалық асыра толтырумен сабақтаспыз. Анықтама мақсаттарында бұдан әрi операторларды басымдылықтың кестесi келтiрiлген. Ол операторларды айқын емес тiзбек бағдарламаның мәтiн жаман жазылған бағдарламалардың талдауын жағдайда пайдалануға мағынасы болады.

Таблица 3.13.
Приоритет Группа операторов Операторы
1 высший Постфиксные ( ) [ ] .  
Унарные ++ операнд операнд ++ --операнд операнд-- ~ ! + операнд - операнд
Создания объектов и преобразования типа new (тип) операнд  
Мультипликативные * / %  
Аддитивные + -  
Сдвиги битов >> >>> <<  
Отношения > >= < <= instanceof
Эквивалентности == !=  
Побитовое И &  
Побитовое исключающее ИЛИ ^
Побитовое ИЛИ |
Логическое И &&
Логическое ИЛИ ||
Условный ? :
15 низший Присваивания = Оператор = ( +=, -=, *=, /= и т.п. )

Қысқа қорытындылар • Boolean мөлшер түрiндегi мән true немесе false қабылдайды. • - Логикалық операторлар - және, "Шығаратын Иля",- Иля, ! – Қолданылатын мөлшерлерге "Емес" булев түрiндегi. Java логикалық бiлдiрулер кеспелтек бағалауы бар сәйкестiкте есептейдi. • Кез келген мiндеттi түрде емес бар тұрпаттасқа сонымен бiрге ал a және bқолданылатын a және b сандық шама кез келген мөлшерлерге салыстыруының операторлары бiр түрiндегi. Теңдiкке салыстырудың операторын сапада "==" теңдiктiң қатар жүретiн нышандарының екiлiк тұратын құрама нышанды пайдаланады. • Java сонымен бiрге белгiлi бiр мағынадасында charbyte, short, int, long және бүтiн санды болатын нышандық түр iшiне салған қарапайым табандатқан түрлер ие болады. Char бұл тек қана түрде таңбасыз, бәрi өңге-таңбалы. • Long сандық литералық тұрақтылардың бағдарламасының мәтiнiнде тапсырма үшiн түрiндегi, int сандардың диапазоны түрiндегi шектен шығасың, постфикс санның жазуынан кейiн құру керек - L әрiпі

 

• Тұрақты атаулы жад ұяшықтары өзгермейтiн iшiндегi деп аталады. Тұрақтыларды тану тапта жүзеге асырылады, тұрақтысы есiмiн алдында жанында бұл түрiндегi комбинациясына тұрғызыл словpublic және final кейiнге сақталған. • Java float және (айқынырақ, жүзитiн нүктемен сандарды қалыпта түрлер) double екi iшiне салған қарапайым заттық түрiндегi ие болады. • Математикалық функциялар, "Пи" (Math.PI ) тұрақты сонымен бiрге ал және "е" (Math.E ) Math java.lang пакет болатын тапта тапсырылған.

• Бүтiн санды математикалық есептеулер int илиlong тек қана мөлшерлермен аппаратты деңгейде түрiндегi жүргiзiледi. Byte, short немесе char мөлшерлер үшiн түрiндегi int түрге өзгертуде бастапқыда болады, кейiн операндтарды сапада олардыңның алмастыруын не өндiредi. Екiншi операнд бұл түрге автоматты түрде түрлендiретiндiгiнен, егер операндтардың бiрлерi long түр ие болса, әрекет long сандармен түрiндегi өндiредi.

 

• Тек қана float және double түрлерiнiң операндтарымен аппаратты деңгейде Java мүмкiн жұмысқа нақты мәндермен жұмыстың жанында. Float операнд түрiндегi double түрге автоматты түрде түрлендiретiндiгiнен, егер операндтардың бiрлерi double түр ие болса, басқа float, әрекет ал double сандармен түрiндегi өндiредi.

• Егер операндтардың бiрлерi бүтiн санды болса, ал басқа заттығы, сондай болып заттық түрге бүтiн санды операндты өзгертудi бастапқыда жүредi, ал операторды сонан соң орындайды.

• Java әр қарапайым түр объектiнiң түрi салыстырады, онда тап бар. Мұндай таптар (class wrappers ) қабық деп аталады. Ол ортақ жағдайда сол ие бол ие болған, емес жаңа бастап жүрген қарапайым түрлер, бiрақ кiшi емес, бас әрiптерменнен. Шығару int және үшiн Integer қабық кластары болатын және Character char түрлердi құрайды.

• Қабық кластарын негiзгi тағайындау - қарапайым түрлердiң мәндерiнiң үсiнде қабық болатын объектiлердiң жасауы. "қорап" мұндай объектiнiң жасауы процесс - box ) (boxing ) қаптаманы қарапайым типаназываетсяны мәннен, объектiден мөлшерге керi өзгеру ал қарапайым түрiндегi - (unboxing ) таңудан босатумен. Санмен көрсетiлген кластар үшiн қаптама және таңудан босатуды автоматты түрде жүзеге асырылады.

• Қабық таптарында пайдалы әдiстер және тұрақтылардың қатары ие болады. Мысалы, ең жоғары мәнiн тең емес нөл модуль бойымен ең төменгi есiм арқылы қабық түрiндегi шақырылатын тұрақтылардың көмегiмен түрiндегi алуға болуға санмен көрсетiлген: Integer.MIN_VALUE, Integer.MAX_VALUE, Float.MIN_VALUE, Float.MAX_VALUE, Double.MIN_VALUE, Double.MAX_VALUE. және т.б..

• Java оператор 15 приоритет деңгейлерi ие болады. Егер басымдылықтардың кестесiнiң керек емес пiкiрден ол болса жақсы жазылған бағдарламада бағдарламаның оқылатындық жоғарылататын жақшаларға тұрғызылады.

• Сандардаболыптабылмағанэлементтердi пайдалануғакейдеталапетiледi, жолдарда, бiрақсияқтыөзiн-өзi ұстаэлементиеболғанжәнереттiкнөмiрлергебiрмезгiлдеиеболады. Мысалы, айларнемесеаптаныңкүндерiнiңатауы. Бұлжағдайдалардағыатапшығудыпайдаланады. Типтi қателер:

 

•Жiп-жиi = b пишетa өң a==b бағдарламашысандықмәндерiнiңсалыстыруыорынынақатенiңұшырасады.Мұндайқатекөбiнесешарттыоператорлардағыпайдаболады: (a==b ) if орынына...} (a=b ) if жазады...}. Java мұндайқатебарлықтүрлерүшiнкомпиляцияныңкезеңiндебасқабулевдиагнозқояды. Булев a және (a=b ) bвызов if үшiн...} a мөлшер b мәндi бергенкелтiредi, жәнеиемденудiңнәтижесi теңбұлмәнкайтады. Қатенiңдиагностикасыалөкiнiшкеберболмайды.

 

•Үшiнөң a b BASIC тiлбұрынзерттегенжаңабастапжүргенбағдарламашыларыдәрежегешығаруғабiлдiрудi пайдалануғаазаптандырады, ондабұлбiлдiрудiңесептеуi үшiн . Мұндайоперацияүшiн Java a, b Math.pow бiлдiрупайдаланукерек.

• C/C++ бұрын зерттеген бағдарламашы логикалық бiлдiрулердi (кеспелтек емес) толық баға үшiн өң a b немесе a b логикалық бiлдiрулерiн пайдалануға азаптандырады. (кеспелтек емес) толық Java жоқ, логикалық бiлдiрулердi баға емес, "Және"және "Иля" арифметикалық бит бойынша операциялар үшiн операторлар және зарезервированы.

• Оператор instanceof қолдануында instanceOf жазуға азаптандырады.

• Java.math java.lang.Math және пакет тапты қоқытады.

• Жiп-жиi byte мөлшерлер үшiн түрiндегi ұмытқанда қате, short немесе char ұшырас int, және тек қана содан кейiн түрге өзгерту бұл бастапқыда бол операндтарды сапада олардыңның алмастыруын өндiредi. Сондықтан, бұл түрлердiң мөлшерлерi бар операциясы int мөлшерлермен жұмыстың жанында сол түрiндегi беруге бит бойынша жекелiктерде.

• Айқын емес операндтарды орындаудың тiзбегiн бөтен бағдарламашы ұзын бiлдiрулерде операнд топтайтын жақшаларға тұрғызылмайды.



<== предыдущая лекция | следующая лекция ==>
Листинг . (html, txt) | Тапсырма


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.967 сек.