Програмиране в Интернет - теория - 8/10
10) МАСИВИ
1. Какво представлява масивът.
Масивът е начин за съхранение на данни от един тип с цел осъществяване на лесен достъп до тях. Данните се наричат елементи на масива и се състоят от две части – име на масива и номер на елемента. Първият елемент е номериран с 0, вторият с 1 и т. н. Номерата се наричат индекси. За имената на масивите важат правилата за именуване на променливи.
2. Дефиниране на масив.
а) първи начин;
Общ синтаксис:
var ime_na_masiv = new Array (element0, element1, …)
var plist=new Array("Георги", "Мария", "Теодора", "Стоян");
С този код елементът с индекс 0 на масива plist приема стойност "Георги", този с индекс 1 приема стойност "Мария" и т. н.
б) втори начин;
Първоначално се „заделя” пространство за масива чрез задаване броя на елементите, а след това на всеки от тях се присвоява стойност. Не трябва да забравяме, че ако броят елементите е 5, то елементите на масива имат индекси от 0 до 4.
var plist=new Array(4);
var plist[0]="Георги";
var plist[1]= "Мария";
var plist[2]= "Теодора";
var plist[3]= "Стоян";
Можем да добавим пети елемент на масива: var plist[4]= "Петър";
в) трети начин;
Създава се масив, който не съдържа елементи (не се задават параметри, т. е. не се записва число в скобите) и по-късно могат да се присвояват стойности на елементи с произволен индекс.
3. Някои свойства на масива.
- constructor – Съдържа като стойност кода на функцията, която е създала масива.
- length – Връща число, което показва от колко елемента се състои масивът.
window.alert("В ученическия съвет влизат " + plist.lenght + " ученици");
4. Някои методи на масива
- concat() – Комбинира елементите от два или повече масива в нов масив. Новият масив се образува, като най-напред се поставят елементите на масива, използван за извикване на метода. След тях ще се поставят елементите на масива, посочен като параметър. Ако трябва да се комбинират елементите на повече от два масива, то като параметри се подават техните имена, разделени със запетаи и в ред, в който искаме да се добавят елементите им към новия масив.
var zima=new Array("януари", "февруари", "март");
var prolet=new Array("април", "май", "юни");
var lqto=new Array("юли", "август", "септември");
var esen=new Array("октомври", "ноември", "декември");
var godina=zima.concat("prolet", "lqto", "esen");
Резултатът тук е масив godina с елементи: януари, февруари, март, април, май, юни, юли, август, септември, октомври, ноември, декември.
- join() – Комбинира елементите на масив в символен низ, като елементите се разделят чрез знак, който се подава като параметър към метода. Ако не се подаде никакъв параметър, за подразбиращ се знак за разделител се използва запетаята.
var zima=new Array("януари", "февруари", "март");
var z=zima.join();
Стойността на z е: януари,февруари,март
- pop() – Премахва последния елемент от даден масив. Ако се присвои резултатът от метода на променлива, тя ще съдържа стойността на премахнатия елемент.
- push() – Добавя елемент или елементи в края на даден масив. Параметрите на този метод са новият елемент или елементи.
- reverse() – Обръща реда на елементите в масива.
- shift() – Премахва първия елемент от масив. Ако се присвои резултатът от метода на променлива, тя ще съдържа стойността на премахнатия елемент.
- unshift() – Добавя елемент към началото на масив. Елементът или елементите за добавяне се подават като параметри на метода.
- slice() – Премахва елементи от масива. Ако се присвои резултатът от метода на променлива, тя ще съдържа стойността на премахнатите елементи. Общият синтаксис на метода е:
ime_na_masiv.slice(index1,index2);
Тук индекс1 е индексът на първия елемент от отрязъка, а индекс2 е индекса, който следва след последния елемент от отрязъка.
var mec=new Array("януари", "февруари", "март", "април", "май", "юни" );
var prolet=mec.slice(2,5);
Този код преобразува масива mec и сега неговите елементи са: януари, февруари, юни. А масивът prolet съдържа елементите март, април, май.
- splice() – Премахва или заменя елементи на масив. Параметрите, които могат да се подават са: индекса, от който да започне отрязъка; брой елементи за премахване/замяна; елементите за замяна/добавяне.
var mec=new Array("януари", "февруари", "март", "април", "май", "юни" );
var prolet=mec.splice(2,3);
Пример2 (за замяна):
var mec=new Array("януари", "февруари", "март", "април", "май", "юни" );
var pr=mec.splice(2,5, "август", "септември", "октомври");
Полученият масив има елементи: януари, февруари, август, септември, октомври, юни.
Ако вторият параметър е 0, няма да се заменят елементи, а ще се добавят нови на съответното място.
- sort() – Сортира масив в азбучен ред.
5. Масиви и цикли.
Обикновено за работа с масиви се използват цикли. Те могат да се използват за въвеждане на елементи на масив, за обхождане на масив с цел промяна, извличане на информация или извеждане на съдържанието му по определен начин и др.
Ще илюстрираме въвеждане на елементи на масив, сортиране и извеждане с помощта на цикли чрез следния пример:
<HEAD>
<TITLE> Ученически съвет </TITLE>
<SCRIPT language="JavaScript">
<!--
var plist=new Array()
i=0;
do
{
var element=window.prompt("Въведете член на ученическия съвет при 12а клас. Ако вече сте въвели всички имена, оставете полето празно и изберете ОК.", "Име");
plist[i]=element;
i++;
}
while (element!="");
plist.pop();
plist.sort();
//-->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#0AAAFA">
<H2>Ученически съвет при 12<sup>а</sup> клас:</H2>
<SCRIPT language="JavaScript">
<!--
for(i=0; i
document.write(i+1+". "+plist[i]+ "<BR>");
}
//-->
</SCRIPT>
</BODY>
</HTML>
------------------------------
11) ОБЕКТИ MATH И DATE
1. Какво представлява обектът Math.
Този обект ни дава възможността да извършим определени математически изчисления
2. Някои свойства на обекта Math.
- E – константа на Ойлер е (приблизително 2,71828...)
- PI – стойността на числото ? (приблизително 3,14159...)
3. Някои методи на обекта Math.
- abs() – Връща абсолютната стойност на числото, което е подадено като параметър.
- sqrt() – Връща квадратен корен от подаденото като параметър число.
- exp() – Връща е на степен подаденото като параметър число.
- log() – Връща естествения логаритъм подаденото като параметър число.
- sin() – Връща синус от подаденото като параметър число в радиани.
- cos() – Връща косинус от подаденото като параметър число в радиани.
- tan() – Връща тангенс от подаденото като параметър число в радиани.
- round() – Връща закръглената стойност на подаденото като параметър число.
- ceil() – Връща най-малкото цяло число, което е по-голямо или равно на подаденото като параметър число.
- floor() – Връща най-голямото цяло число, което е по-малко или равно на подаденото като параметър число.
- random() – Връща случайно число между 0 и 1, не изисква параметър.
Често се налага да получим не случайно число между 0 и 1, а случайно цяло число между 0 и А. За тази цел се налага да умножим случайното дробно число между 0 и 1 с А и да вземем цялата му част с floor().
Пример2:
В този пример ще покажем как може да се използва методът random() за извеждане на случайна фраза.
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--
var fraza = new Array(10);
fraza[0]= "Мъдър е този, който знае не много, а нужното. Есхил";
fraza[1]= "Ако можеш да си орел не се напъвай да си пръв сред гаргите. Питагор";
fraza[2]= "Мързелът се влачи толкова бавно, че бедността бързо го настига. Франклин";
fraza[3]= "Aко не умееш да говориш, научи се да мълчиш. Помпоний";
fraza[4]= "Който е приятел на всички, не е приятел на никого. Аристотел";
fraza[5]= "Не се страхувай от съвършенството - никога няма да го достигнеш. Дали";
fraza[6]= "Човек е истински мъдър тогава, когато знае, че не знае нищо. Сократ";
fraza[7]= "Въображението е по-важно от знанието. Айнщайн";
fraza[8]= "Проблемът на света е, че глупавите са самоуверени, а умните винаги се колебаят. Ръсел";
fraza[9]= "По-лесно е да се бориш за принципите си, отколкото да живееш според тях. Адлер";
var r = Math.floor(Math.random()*10);
//-->
</SCRIPT>
</HEAD>
<BODY BGCOLOR=#0AAAFA">
<H2>Цитат на деня:</H2><BR>
<SCRIPT language="JavaScript">
<!--
document.write(fraza[r]);
//-->
</SCRIPT>
</BODY>
</HTML>
По подобен начин можем да изобразяваме случайна картинка в уеб страница.
- pow() – Връща стойността на първия параметър на степен стойността, подадена като втори параметър.
- max() – Връща по-голямото от двете числа, подадени като параметри.
- min() – Връща по-малкото от двете числа, подадени като параметри.
4. Какво представлява обектът Date.
Този обект позволява да се работи с дата и време. За да може да се използва трябва най-напред да бъде зададен.
Пример: var ime = new Date();
5. Някои методи на обекта Date.
- getDate() – Връща деня от месеца според локалното време на потребителя.
- getDay() – Връща деня от седмицата (0-6) според локалното време на потребителя.
- getHours() – Връща броя часове (0-23) в деня според локалното време на потребителя.
- getMinutes() – Връща броя минути (0-59) в часа според локалното време на потребителя.
- getMonth() – Връща номера на месеца (0-11) в годината според локалното време на потребителя.
- getSeconds() – Връща броя секунди (0-59) в минутата според локалното време на потребителя.
- getTime() – Връща числова стойност на времето според локалното време на потребителя.
- getYear() – Връща годината (две цифри) според локалното време на потребителя.
- getFullYear() – Връща годината (четири цифри) според локалното време на потребителя. Работи само в по-нови браузъри.
- setDate() – Задава деня то месеца.
- setHours() – Задава броя часове.
- setMinutes() – Задава броя минути.
- setMonth() – Задава месеца.
- setSeconds() – Задава секундите.
- setYear() – Задава годината (две цифри).
- setFullYear() – Задава годината (четири цифри). Работи само в по-нови браузъри.
- toLocaleString() – Връща низ, представляващ датата според локалния формат.
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--
var d = new Date();
var den=d.getDay();
var mes=d.getMonth();
var denmes=d.getDate();
var godina=d.getYear();
var dni = new Array(7);
dni[0] = "понеделник";
dni[1] = "вторник";
dni[2] = "сряда";
dni[3] = "четвъртък";
dni[4] = "петък";
dni[5] = "събота";
dni[6] = "неделя";
mes+=1;
if (godina<2000)
godina+=1900
//-->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#023FA8">
<P>Ден:
<SCRIPT language="JavaScript">
<!--
document.write(dni[den]+ ", "+mes+"/"+denmes+"/"+godina);
//-->
</SCRIPT>
</P>
</BODY>
</HTML>
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--
function chasovnik()
{
var d = new Date();
var chas=d.getHours();
var minuta=d.getMinutes();
var secunda=d.getSeconds();
if (chas<10)
chas="0"+chas;
if (minuta<10)
minuta="0"+minuta;
if (secunda<10)
secunda="0"+secunda;
window.status=chas+":"+minuta+":"+secunda;
}
setInterval("chasovnik()",1000);
//-->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#023FA8">
<P>Часът е изведен в лентата на състоянието</P>
</BODY>
</HTML>