Wap/wml 1 I. Мобилни технологии, Интернет и wap 1



страница5/10
Дата14.01.2018
Размер6.74 Mb.
#46632
1   2   3   4   5   6   7   8   9   10

$(result)

WMLScript код във файла ex6-08_07.wmls:

extern function doBreak(number, result) {
for (var i = -10; i <= 10; i++) {

// If argument number is between -10 and 10,

// control comes out from the loop, when

// i is equal to number

if (i == number) break;

} var answer = i * number; WMLBrowser.setVar(result,answer);


Стр. 4 от 7


WAP/WML 8

WMLBrowser.refresh();

}
8. Команда continue

o тази команда прекратява изпълнението на текущата итерация от цикъл – for или while

– като управлението се предава към следващата итерация на цикъла (ако има такава)

o тази команда също се ползва само в блок на цикъл

o пример

"http://www.wapforum.org/DTD/wml_1.1.xml">













$(result1)

Second card (evens)













$(result2)



WMLScript код във файла ex6-08_08.wmls:

extern function odds() {

var answer = "";

for (var i = 1; i < 10; ++i) {

if (i%2 == 0) continue;

answer += " " + i + " *";

} WMLBrowser.setVar("result1",answer); WMLBrowser.refresh();

}

extern function evensWhile() {



var answer = "";

var i = 0;

while (i < 10) {

++i;


if (i%2 == 1) continue;

answer += " " + i + " *";

} WMLBrowser.setVar("result2",answer); WMLBrowser.refresh();

}
9. Директивни метаелементи

o освен директивите access (т. 5, л. 7.) и url (т. 2., л. 8.) се ползва и директивата meta

за метаелементи (описания), предназначени за WWW сърверите

o метаелементите се въвеждат с директивните опции name, http equiv и user agent

o с тях се въвежда допълнителна информация за документа, която обикновено не се интерпретира от браузера

o опциите name и http equiv имат еднакви функции (обикновено въвеждат версия, дата, автор, съдържание) но за разлика от name при опция http equiv метаелементите се предават към микробраузера; пример:

use meta name “Creation” “13-April-2003”

use meta name “Author” “None of Your Business”
Стр. 5 от 7

WAP/WML 8

use meta http equiv “Creation” “13-April-2003”

use meta http equiv “Author” “None of Your Business”

o при директивната опция user agent метаелементите се предават към микробраузера и освен това се предполага, че някои браузери интерпретират тяхното съдържание; пример:

use meta user agent “type” “examination test”
10. Конверсия на типовете - 2

o отново: типа на променливите се определя от операциите, в които те участват и ако има несъответствие с регламентирания тип на операнда, се извършва конверсия на типа на променливата преди изпълнението на дефинираната операция

o целите и плаващите числа и булевите променливи се конвертират (при необходимост) до низове напр. 5 до “5”; 0.5 до “.5”, “0.5” или “.5е0”, а булевите до низове или до цели или плаващи числа: напр. true до “true” или до 1 или до 1.0 (false до 0)

o конверсия от низ към числов тип може да доведе до грешка – напр. ако низът съдържа нерегламентирани за числата символи (букви) или ако е съставен само от цифри

(евентуално и знак и десетична точка) но означеното число е извън съответната област на стойностите; неизпълнимите конверсии са до тип invalid

o конверсия от низ към булева стойност поражда винаги true освен в при нулева дължина на низа – “” се конвертира до false

o аналогично целите и плаващи стойности се конвертират до true, а само 0 и 0.0 до false; в последния случай дори 0.000000013 ( < MinFloat ) също се конвертира до true, макар че като плаваща стойност се интерпретира като 0.0

o операторите с типова конвенция са както следва:

o !, &&, || : приемат булеви операнди и връщат булева стойност

o ~, <<, >>, >>>, &, ^, |, %, div : приемат цели числа като операнди и връщат цяла стойност

o <<=, >>=, >>>=, &=, ^=, |=, %=, div= : приемат произволен тип за първи операнд,

цяло число за втори операнд и връщат цяла стойност

o пример (променете WMLScript кода за да проверите и други типови конверсии):

"http://www.wapforum.org/DTD/wml_1.1.xml">










$(result)


WMLScript код във файла ex6-08_10.wmls: extern function conversion(result) {
var booleanValue = true;

var thisIsLie;

var someInteger = 10;

var someFloat = 5.5;

var my_string = "Hello!";

var answer = "";


if (someFloat) { // Float 5.5 is converted to true:

// Thus, these statements are executed.


someInteger = booleanValue << 2; // Conversion is possible

// to integer.

Стр. 6 от 7




WAP/WML 8

answer += "someInteger: " + someInteger + ". ";


// After division someInteger is converted to float.

// Not operand converts float to boolean. thisIsLie = !(someInteger / someFloat);


answer += "thisIsLie: " + thisIsLie + ". ";
if (my_string>someInteger){ // someInteger is converted

// to string for this comparison


}

}


// Next, first thisIsLie variable is converted to

// integer, and then the expression’s result is converted to boolean. booleanValue = !(3 < thisIsLie);

answer += "booleanValue: " + booleanValue + ".";



WMLBrowser.setVar(result,answer); WMLBrowser.refresh();

}

Стр. 7 от 7



IX. Стандартни библиотеки в WMLScript
1. Стандартни библиотеки с WMLScript функции

WAP/WML 9



o съдържат тематично групирани функции, които разширяват възможностите на езика

o библиотеките са 6: Lang, Float, String, URL, WMLBrowser и Dialogs

o те следват аналогия с JavaScript методите, като

o плаващата аритметика е отделена в самостоятелна библиотека, тъй като не всички браузери я поддържат

o добавена е библиотека за специфичния интерфейс между WML и WMLScript код

o библиотеката Dialogs поддържа функционално потребителския интерфейс по аналогия с метода аlert() на JavaScript

o функциите се извикват по идентификатор на библиотеката и идентификатор на функцията – с разделител точка (а не диез) – за синтаксиса на библиотечинте функции вж. примерите от лекции 7. и 8.
2. Библиотека Lang; функции abort, exit, abs и characterSet

o тази библиотека съдържа функции, обслужващи интерфейса между WML и WMLScript

код – типови конверсии и проверки, управление на скрипт кода и т.н.

o функцията abort преустановява изпълнението на скрипт кода и връща управлението в точката на обръщение към WMLScript интерпретатора като присвоява на функцията стойността на параметъра й ако е низ – в противен случай invalid

o прилага се когато изпълнението на скрипт кода трябва да се преустанови при непоправима грешка

o резюме
синтаксис abort(value)


параметър typeof(value) = String
стойност на

функцията value или invalid ако value не е низ
примери Lang.abort("Script aborts with " + result); // Returns a string

Lang.abort(in_valid); // Returns invalid


o функцията exit преустановява изпълнението на скрипт кода и връща управлението в точката на обръщение към WMLScript интерпретатора като присвоява на функцията стойността на параметъра й от произволен тип

o прилага се когато изпълнението на скрипт кода трябва да се преустанови по алгоритмична логика, а не при непоправима грешка

o резюме
синтаксис exit(value)
параметър typeof(value) = Any

стойност на функцията value


примери Lang.exit("Script Ends with " + result); // Returns a string

Lang.exit(invalid); // Returns invalid


o функцията abs връща абсолютната стойност на числовия параметър, като запазва типа му (цял или с плаваща запетая) а нечисловите параметри конвертира до invalid
Стр. 1 от 25


WAP/WML 9

o резюме
синтаксис abs(value)


параметър typeof(value) = Number
стойност на

функцията |value| или invalid ако value не е число
var a = -6;

примери

var b = Lang.abs(a); // b = 6;

var c = -8.4;

var d = Lang.abs(c); // d = 8.4


o функцията charcterSet връща целочислената стойност на знакогенаратора съгласно MIBEnum списъка на знакогенератори (напр. на http://www.iana.org/assignments/character-sets)

o резюме
синтаксис characterSet()

стойност на функцията integer


пример a = characterSet(); //a = 1000 i.e. ISO-10646-UCS-2 aka Unicode

o пример:



"http://www.wapforum.org/DTD/wml_1.1.xml">





















The Lang.abort result: $(result1)_The_Lang.abs_result:_$(result2)__The_Lang.characterSet_result:_$(result3)_The_Lang.exit_result:_$(result4)'>$(result1)
The Lang.abs result: $(result2)

The Lang.characterSet result: $(result3)


The Lang.exit result: $(result4)

WMLScript код във файла ex7-09_02.wmls:

extern function error(result) {

var errorCode = "ERROR";

var answ=Lang.abort(errorCode); WMLBrowser.setVar(result,answ);

WMLBrowser.refresh(); }

extern function absValue(result) {

var a = -10;

var b = 20;

var c = -0.5;

var d = 2.5;

var answer = "";

var e = Lang.abs(a); // e = 10

answer += e + ",";

e = Lang.abs(b); // e = 20

answer += e + ",";

e = Lang.abs(c); // e = 0.5

answer += e + ",";

Стр. 2 от 25


WAP/WML 9

e = Lang.abs(d); // e = 2.5

answer += e; WMLBrowser.setVar(result,answer); WMLBrowser.refresh();}

extern function charset(result) {

var chars = Lang.characterSet(); WMLBrowser.setVar(result,chars);

WMLBrowser.refresh(); }

extern function doExit(result) {

var exitCode = "Function execution ends.";

result = Lang.exit(exitCode);}
3. Библиотека Lang; функции float, isFloat, parseFloat, isInt и parseInt

o функцията float връща стойност true ако микробраузера поддържа стойности с плаваща запетая

o резюме
синтаксис float()

стойност на функцията Boolean


пример var a = Lang.float();
o функциите parseFloat и parseInt конвертират символен низ до числова стойност от съответения тип, като разборът започва от първия символ в низа и завършва при откриване на символ, който не може да се идентифицира като компонент на числов запис

o резюме
синтаксис parseInt(value); parseFloat(value)


параметър typeof(value) = String
стойност на

функцията Number или invalid
var a = Lang.parseInt("+9351"); // a = 9351

var b = Lang.parseInt(" 9351 x/y"); // b = invalid



примери

var c = Lang.parseInt("9351 x/y"); // c = 9351

var d = Lang.parseFloat("935.14"); // d = 935.14

var e = Lang.parseFloat("-85.17e2 Kg"); // e = -85.17e2

var f = Lang.parseFloat("4.2e"); // f = invalid

o функциите isFloat и isInt връщат стойност true ако параметърът им може да се конвертира до числова стойност от съответния тип с използване на функциите parseFloat и parseInt съответно

o резюме
синтаксис isFloat(value); isInt(value)
параметър typeof(value) = Any
стойност на

функцията Boolean или invalid
var a = Lang.isFloat("-935"); // a = true

var b = Lang.isFloat("-85.17e3"); // b = true



примери
var c = Lang.isFloat("pi"); // b = false var d = Lang.isFloat("@157"); // d = false

var e = Lang.isFloat(invalid); // e = invalid var f = Lang.isInt("-935"); // f = true


Стр. 3 от 25




WAP/WML 9

o пример:

var g = Lang.isInt("-85.17"); // g = true

var h = Lang.isInt("thousand "); // h = false var i = Lang.isInt("$157"); // i = false

var j = Lang.isInt(invalid); // j = invalid



"http://www.wapforum.org/DTD/wml_1.1.xml">

























The Lang.float result: $(result1)
The Lang.isFloat result: $(result2)
The Lang.isInt result: $(result3)

The Lang.parseFloat result: $(result4)


The Lang.parseInt result: $(result5)

WMLScript код във файла ex7-09_03.wmls:

extern function floats(result) {

var supportFloats = Lang.float(); // true or false WMLBrowser.setVar(result,supportFloats); WMLBrowser.refresh();}

extern function giveFloat(result) {

var string1 = "10.8";

var string2 = "100.99 levs";

var string3 = "$40.10";

var string4 = "40e-2 or something";

var answer;

var a = Lang.parseFloat(string1); // a = 10.8

answer += a;

a = Lang.parseFloat(string2); // a = 100.99

answer += ", " + a;

// Left uncommented, next couple of lines would have returned

// an invalid value:

// a = Lang.parseFloat(string3); // invalid!!!

// answer += ", " + a;

a = Lang.parseFloat(string4); // a = 0.4 answer += ", " + a; WMLBrowser.setVar(result,answer); WMLBrowser.refresh();}

extern function giveInt(result) {

var string1 = "10";

var string2 = "100 levs";

var string3 = "£40";

var answer;

var a = Lang.parseInt(string1); // a = 10

answer += a;

a = Lang.parseInt(string2); // a = 100

answer += ", " + a;

// Next lines have been commented out for a good reason:

// a = Lang.parseInt(string3); // invalid!

// answer += ", " + a;

a = Lang.parseInt("13.7"); // a = 13 answer += ", " + a; WMLBrowser.setVar(result,answer); WMLBrowser.refresh();}

Стр. 4 от 25


WAP/WML 9

extern function isItFloat(result) {

var answer = "";

var a = Lang.isFloat("2000"); // a = true

answer += a + ", ";

a = Lang.isFloat("09.10"); // a = true

answer += a + ", ";

a = Lang.isFloat("string"); // a = false

answer += a; WMLBrowser.setVar(result,answer); WMLBrowser.refresh();}

extern function isItInt(result) {

var a = Lang.isInt("2000"); // a = true var answer = a;

a = Lang.isInt("9.10"); // a = true,

// parseInt can be used with float 9.10

// It returns value 9, which is

// an integer. answer += ", " + a;

a = Lang.isInt("string"); // a = false answer += ", " + a; WMLBrowser.setVar(result,answer); WMLBrowser.refresh();}


4. Библиотека Lang; функции min, max, minInt, maxInt, random и seed

o функциите min и max връщат съответно по-малкото и по-голямото число от двата си параметъра, които могат да бъдат цели или плаващи; при равенство се връща стойността на първия параметър

o специално внимание изисква сравнението на отрицателни стойности

o резюме
синтаксис min(value1, value2); max(value1, value2)


параметри typeof(value1,2) = Number
стойност на

функцията Number или invalid
var a = Lang.min(40, 50.3); // a = 40 (integer)

примери

var b = Lang.min(40, 35.7); // b = 35.7 (floating) var c = Lang.max(40, 50.3); // c = 50.3 (floating) var d = Lang.max(40, 35.7); // d = 40 (integer)


o функциите minInt и maxInt връщат съответно най-малкото и най-голямото цяло число,

дефинирани за съответния микробраузер

o резюме
синтаксис minInt(); maxInt()

стойност на функцията Integer
примери var a = Lang.minInt(); // a = -2147483648

var a = Lang.maxInt(); // a = 2147483647


o функцията random връща неотрицателна цяла стойност, не по-голяма от зададения параметър и получена в резултат на псевдо-случайна генерация; ако е необходимо и възможно параметърът се конвертира до цяло число с вътрешно извикване на Float.int

o резюме
синтаксис random(value)

Стр. 5 от 25



WAP/WML 9

параметър typeof(value) = Number



стойност на функцията
Integer; 0 (value = 0); invalid (value < 0 | value not а

Number)



примери a = Lang.random(8.2); // a = 0..8

b = Lang.random("bsp"); // b = invalid


o функцията seed инициализира генератора на псевдо-случайни числа със зададения параметър и връща празен низ; ако е необходимо и възможно параметърът се конвертира до цяло число с вътрешно извикване на Float.int; отрицателен или нечислов параметър поражда резултат invalid като инициализацията на генератора остава неопределена

o резюме
синтаксис seed(value)


параметър typeof(value) = Number
стойност на

функцията Integer или invalid
a = Lang.seed(8.2); // a = ""

примери

o пример


b = Lang.seed("bsp"); // b = invalid (генераторът не е променен)



"http://www.wapforum.org/DTD/wml_1.1.xml">



















Lang.max result: $(result1)


Lang.min result: $(result2)
Lang.random result: $(result3)
Lang.seed result: $(result4)

WMLScript код във файла ex7-09_04.wmls:

extern function max_mum(result) {

var a = -10;

var b = 20;

var c = -0.5;

var d = 2.5;

var answer;

var e = Lang.max(a,b); // e = 20

answer = e;

e = Lang.max(c,d); // e = 2.5

answer += ", " + e;

e = Lang.max(c,e); // e = 2.5 answer += ", " + e; WMLBrowser.setVar(result, answer); WMLBrowser.refresh();}

Стр. 6 от 25




WAP/WML 9

extern function min_mum(result) {

var a = -10;

var b = 20;

var c = -0.5;

var d = 2.5;

var answer;

var e = Lang.min(a,b); // e = -10

answer = e;

e = Lang.min(c,d); // e = -0.5

answer += ", " + e;

e = Lang.min(d,e); // e = -0.5 answer += ", " + e; WMLBrowser.setVar(result, answer); WMLBrowser.refresh();}

extern function ran_dom(result) {

var rand1 = 10;

var rand2 = 1000;

var answer;

var x = Lang.random(5.1)*rand1; // x = 0, 10, 20, ..., 50

answer += x;

var y = Lang.random(rand2); // y = 0..1000 answer += ", " + y; WMLBrowser.setVar(result,answer); WMLBrowser.refresh();}

extern function c_it(result) { Lang.seed(200); // a = ""

var number = Lang.random(100); // number = 0..100 var answer = "Random seed: " + number; WMLBrowser.setVar(result,answer); WMLBrowser.refresh();}
5. Библиотека Float; функции ceil, floor, int, maxFloat и minFloat

o тази библиотека съдържа функции за обработка на стойности с плаваща запетая но някои от функциите имат и целочислени параметри

o функцията ceil връща най-малкото цяло число, не по-малко от нейния числов параметър

o резюме:

синтаксис ceil(value)
параметър typeof(value) = Number
стойност на

функцията Integer или invalid
var a = Float.ceil(9.13); // a = 10

примери

var b = Float.ceil(9); // b = 9

var c = Float.ceil(-9.53); // c = -9

var d = Float.ceil("bsp"); // d = invalid


o функцията floor връща най-голямото цяло число, не по-голямо от нейния числов параметър

o резюме:

синтаксис floor(value)


параметър typeof(value) = Number
стойност на

функцията Integer или invalid
var a = Float.floor(9.13); // a = 9

примери

var b = Float.floor(9); // b = 9

var c = Float.floor(-9.53); // c = -10
Стр. 7 от 25




Сподели с приятели:
1   2   3   4   5   6   7   8   9   10




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

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