Программирование в Интернет

advertisement
Знакомимся с
программированием
в Интернет
Или
Зачем нужен
JavaScript
Как писать на
JavaScript
JavaScript — это не HTML!
JavaScript располагается внутри документа HTML.
JavaScript сохраняется в виде текста вместе с
документом HTML.
У JavaScript четкая форма. И пренебрегать ею нельзя.
Первая строка скрипта:
<SCRIPT LANGUAGE="JavaScript">
…….
</SCRIPT>- это последняя строка скрипта.
JavaScript – это объектно-ориентированный язык.
Первый объект – это наш документ.
document.write("<font color='red'>
Я изучаю JavaScript</font>")
объект
метод
Первая программа
на JavaScript
Пусть браузер покажет несколько окон с
приветствиями.
Вы можете пользоваться такими окнами для вывода
особо важных сообщений.
В примере используем
единственную команду alert
для вывода сообщения на
экран.
Однако пример содержит
два сценария.
Первый вставлен в раздел
заголовка
<HEAD>..</HEAD>, второй в тело документа
<BODY>..</BODY>.
Первый сценарий будет
загружен и выполнен
раньше, чем браузер
распечатает сам документ.
Второй сценарий будет
выполнен в процессе вывода
на экран тела документа.
Оператор ввода и
вывода информации
Оператор ввода имеет следующий формат:
Prompt(<текст запроса>,<значение по
умолчанию>);
Пример:
ima=prompt("Как тебя зовут?", "введи сюда свое
имя");
Переменная ima приобретает тип строковый,
т.к. с помощью оператора prompt получаем
строку.
=====================================
Оператор вывода устроен несколько проще:
В скобках содержится строка или выражение,
значение которого и выводится в окно.
При этом знак «+» означает
операцию конкатенации, т.е. слияния двух
строк
Пример:
alert(“Привет! ” + ima);
Задания
1. Оформите на HTML –страничке дружественный
диалог с посетителем Вашего сайта.
2. Проверьте, что будет выведено в окно в случае
выполнения следующего оператора:
alert (22+3);
alert(“22 + 3=” + 25)
объясните получившийся результат
Работа над
ошибками
!!! Обратите внимание, что в <SCRIPT
LANGUAGE="JavaScript"> используются кавычки.
Вероятно, что в процессе исполнения сценария браузер
выдал ошибку. Причины могут быть следующими:
1. JavaScript чувствителен к регистрам символов.
Большая часть команд, ключевых слов, названий
объектов пишется с маленькой буквы. Давая имена
своим переменным, старайтесь также следить за
регистром.
2. Команды JavaScript разделяются точкой с запятой.
Часто именно отсутствие знака « ;» приводит к
ошибке.
Об ошибках браузеры сигнализируют по-разному. Internet
Explorer, например, может вывести сообщение:
А может просто "промолчать". При этом в нижнем углу
строки состояния появляется мелкий значок с желтым
треугольником и знаком восклицания. Если по нему
щелкнуть два раза, раскроется окно с расшифровкой
ошибки.
Задание
Вариант 1
Напишите программу на HTML-страничке, которая
запрашивает значение температуры в градусах
Цельсия и переводит его в градусы Фаренгейта
по следующей формуле:
Градусы Фаренгейта=1.8 * градусы Цельсия + 32
Измените программу так, чтобы она переводила еще и
градусы Фаренгейта в градусы Цельсия
<body>
<h1> перевод градусов из Цельсия в шкалу Фаренгейта и
обратно</h1>
<br><br><br>
<script language="javascript">
grad=prompt("перевод температуры","задай град по
Цельсию");
alert(grad+"градусов по Цельсию равно" + (1.8*grad+32) +
"градусов по Фаренгейту");
</script>
</body>
Подпрограммы на
языке JavaScript
Однако, полезно и удобно размещать программы на
языке JavaScript в отдельном файле.
Для этого:
1.
Создайте текстовый файл, назовите его
например prim2.js и поместите в него
следующую подпрограмму:
function far()
{
Grad=prompt(“перевод температуры”, “введи
градусы по Цельсию”);
Alert(grad+”градусов по Цельсию =“ + (1.8*grad+32)
+ “градусов по Фаренгейту”);
}
А в HTML- программе в разделе HEAD пишем:
<script src="prim2.js">
</script>
Варианты решения
Вариант 2 (разместим функции в отдельном файле и в
основной странице создадим кнопки для вызова)
<HTML>
<HEAD>
<TITLE>
Вариант 2
</TITLE>
<script src=prim2.js>
</script>
<body>
<h1> перевод градусов из Цельсия в шкалу Фаренгейта и
обратно</h1>
<br><br><br>
<form name="f1">
<input name=“knopka1” type=button value="перевод из Цельсия в
Фаренгейта" onclick="far()">
</form>
</BODY>
====================
Файл к Варианту 2 (Prim2.js)
function far()
{
grad=prompt("перевод температуры","задай град по
Цельсию");
alert(grad + "градусов по Цельсию равно " + (1.8*grad+32)
+ " градусов по Фаренгейту");
}
!!! Не забывайте добавлять перевод градусов из
шкалы по Фаренгейту в шкалу по Цельсию
Варианты решений
(Вариант 3)
(выведем результат расчета прямо на кнопку)
<HTML>
<HEAD>
<TITLE>
Перевод градусов
</TITLE>
<script src=prim3.js>
</script>
<body>
<h1> перевод градусов из Цельсия в шкалу Фаренгейта и
обратно</h1>
<br><br><br>
<form name="f1">
<input id="knopka1" type=button value="перевод из Цельсия в
Фаренгейта" onclick="far()">
<br><br><br>
<input id="knopka2" type=button value="перевод из Фаренгейта в
Цельсия" onclick="cel()">
</form>
</BODY>
======================
Файл prim3.js (к Варианту3)
function far()
{
grad=prompt("перевод температуры","задай град по Цельсию");
f1.knopka1.value=grad+"градусов по Цельсию равно " +
(1.8*grad+32) + " градусов по Фаренгейту";
}
!!! Не забывайте добавлять перевод градусов из шкалы по Фаренгейту
в шкалу по Цельсию
Подпрограммы на языке
JavaScript
(САМОСТОЯТЕЛЬНАЯ РАБОТА)
В технике скорость вращения колеса измеряют
количеством оборотов в минуту.
Физики скорость вращения меряют в метрах в
секунду.
Создайте на Вашей странице скрипт для перевода
значений скорости об/мин (W) в скорость м/с (V) и
обратно. Используйте формулу:
V = W*3,14 / 30
ВАРИАНТ 1
Ввод и вывод данных осуществить с помощью
окон, вызываемых командой PROMPT () и
ALERT().
ВАРИАНТ 2
разместим функции в отдельном файле и в
основной странице создадим кнопки для
вызова.
ВАРИАНТ 3
выведем результат расчета прямо на кнопку
Переменные и
присваивание значений
Имена переменных строятся по тем же правилам,
что и в большинстве других языков
программирования. Например: а, min, clock ….
Для присваивания значений используйте знак =.
Новые переменные объявляются в теле
программы с помощью ключевого слова var.
Вот пример, где
некоторая информация
запоминается в
переменные и
выводится на экран
Задание
Наберите этот пример и сделайте следующие
эксперименты:
1.
Попробуйте объявить переменную a второй раз с
помощью var. Произойдет ли ошибка?
2.
Попробуйте вообще убрать все ключевые слова
var. Будет ли работать программа?
Сделайте так, чтобы в конце программы
компьютер присвоил переменной c результат
сложения строковой и числовой переменной,
например,
var a="слово"; var b=1; var c=a+b; alert(c);
Что получится?
3.
Рассмотрим пример:
var a=30;
var b=22;
var c="слово";
alert(a+b+c);
В этом примере мы получим
ответ "52слово".
Усложним диалог с
посетителем сайта
Задаем вопрос и пишем реакцию на ответ.
Если ответ «хорошо» или «отлично», мы
ответим «Ok», в противном случае ответим «не
грусти»
Текст программы
<HTML>
<HEAD>
<TITLE>
диалог
</TITLE>
<script language="javascript">
function ansv()
{var d=document
if ((d.form1.n1.value=="отлично") ||
(d.form1.n1.value=="хорошо"))
{d.form1.n1.value="OK"}
else
{d.form1.n1.value="не грусти"}
}
</script>
</HEAD>
<BODY bgcolor=#ffeeaa>
<h1 style="font-family: Astra; font-size: 34pt ">
Как твои дела?</h1>
<form name="form1">
<input type=text size=40 value=пиши_сюда name="n1">
<input TYPE=button NAME=otvet value=ответь
onclick="ansv()">
</form>
</BODY>
</HTML>
Объект HTML – изображение
тэг <img>
Разместите на Вашей страничке изображение.
Давайте с помощью подпрограммы на языке JavaScript
снабдим его «зум-эффектом», т.е. пусть при
наведении мышки его размер увеличивается, скажем,
в 2 раза.
Сначала приведем таблицу основных событий, на
которые реагирует объект <img>
Событие
Возникает
onclick
При щелчке мышкой на
изображении
onmouseover
При наведении мышки на
изображение
onmouseout
При выходе курсора мышки из
области над изображением
ondblclick
При двойном щелчке на
изображении
oncopy
При копировании изображения
onmouseup
При отпускании левой клавиши
мышки над изображением
Объект HTML – изображение
тэг <img>
Добавим в тэг <img> идентификатор для
нашего рисунка
<img id=“ris1” src=1.gif height=300>
prim3.js
Добавить в вашу страничку
Добавить в файл
<img src=tv.jpg
height=300
name="ris1"
onmouseover=
"zoom()" >
function zoom()
{
ris1.height=600;
}
Вопросы и задания
Определите для объекта <img>
реакцию еще на пару событий и
обеспечьте:
1. Возвращение исходного
размера картинки после того,
как мышка будет убрана из ее
области;
2. Изменение картинки в случае
щелчка по изображению
Естественно, что для каждого
такого события должна быть
написана соответствующая
подпрограмма.
Калькулятор
Давайте создадим свой
простенький калькулятор.
Пусть он будет выглядеть
так…
Для красоты разместим его
элементы в таблице,
воспользовавшись ее
параметром border.
Калькулятор
<html>
<head>
<title>
calculator
</title>
<script src=kalkul.js>
</script>
Это HTML-файл
</head>
<body>
<table border=2 bgcolor=#ffeeaa>
<tr>
<td><input id=op1></td>
<td><input type=button value=" + " onclick="plus()"></td>
<td><input type=button value=" - " onclick="minus()"></td>
</tr>
<tr>
<td> <input id=op2></td>
<td><input type=button value=" x " onclick="umn()"></td>
<td><input type=button value=" / " onclick="razd()"></td>
</tr>
<tr>
<td> <input id=rez></td>
<td></td>
<td></td>
</tr>
</table>
Для операндов создали
</body>
поля: OP1 и OP2, а для
</html>
результата поле REZ.
два
Калькулятор
Это файл
kalkul.js
function plus()
{
rez.value=op1.value-(-1)*op2.value;
}
function minus()
{
rez.value=op1.value - op2.value;
}
ЗАДАНИЯ:
1. Допишите две подпрограммы, необходимые для
работы калькулятора.
2. В правой нижней части калькулятора осталось
свободное место для дополнительных кнопок.
Создайте, например, кнопку для очистки
текстовых полей и пусть эта кнопка занимает
обе свободные ячейки (см рисунок
калькулятора).
Самостоятельная
работа
Создайте в HTML-странице скрипт для
расчета суммарного и среднего балла
учащегося(см образец)
Арифметические и логические
вычисления в JavaScript
В арифметических действиях используйте следующие
операции:
Операция
Название
+
*
/
%
Сложение
вычитание
умножение
деление
Остаток от
деления
Для выполнения логических операций используйте
константы true и false, а также операторы:
Операция
&&
║
!
Название
Логическое И
Логическое ИЛИ
Логическое отрицание
Вычисления на
странице сайта
Задача: вычислим площадь круга, радиус
зададим с помощью окна ввода
Var r=prompt ("введи радиус", "0");
результат функции prompt имеет строковый тип.
Значит, необходимо преобразовать символ в
число.
Воспользуйтесь функцией parseInt(строка) или
parseFloat(строка) для преобразования введенной
строки в целое число или число с плавающей
точкой.
Например:
var r=parseInt(prompt("Введите радиус","0"));
или
var r=parseFloat(prompt("Введите
радиус","0"));
Вот пример простейшей
программы для расчета площади
круга по формуле S=r2:
<html> <head>
</head>
<body>
<script language="javascript">
Alert("расчет площади круга");
Var r = parseFloat(prompt("Введите
радиус", "1"));
Var s=3.1415 * r * r;
Alert("площадь круга" + s);
</script>
</body>
</html>
Задание для самостоятельной
работы
На своей новой страничке школьник Петя
предусмотрел гостевую книгу.
В ней запрашивались фамилия, имя
посетителя и телефон.
Некоторые посетители вводили номер
без тире, например, вместо 41-05-10
они набрали 410510.
Такой набор цифр Петя пожелал сразу
преобразовывать в удобный для
запоминания вид.
Он составил простую программу на
JavaScript, которая проверяла поле
формы на наличие тире.
Если они отсутствовали, компьютер
форматировал номер и в базу сервера
номер попадал в нужном виде.
См далее
Задание для
самостоятельной работы
Будем считать, что номер всегда вводится
шестизначным числом, в котором отсутствуют
тире. Программа должна запрашивать номер с
помощью функции prompt, а результат
демонстрировать командой alert.
Нельзя пользоваться ветвлениями, циклами и
методами для работы со строками. В вашем
распоряжении одни арифметические операции
и механизм автоматического преобразования
типов языка JavaScript.
Результат можно получить с помощью простого
линейного алгоритма. Вам будут нужны
несколько дополнительных переменных,
операция % и механизм конкатенации строк.
Маленькая подсказка:
Пусть а=123456
Пусть а1=а % 10; a=(а – а1) / 10;
В результате: а1=6, а=12345
Объект JavaScript – DATE
Объекты JavaScript служат для хранения и обработки
разнородных данных. Функции обработки называются
в JavaScript «методами».
Объект Date используется для работы с
календарными данными.
Например:
d=new Date();
В переменной d содержится информация о текущей
дате: о времени, о годе, номере месяца, о дне недели
и еще много о чем.
!!! Обратите внимание на прописные и строчные
буквы. Это важно.
И еще!!! Если вы хотите, чтобы ваша функция
выполнялась сразу при загрузке страницы, добавьте в
тэг body загрузку этой функции:
<body background=“fon1.gif” onLoad=“function1()”>
См далее
Чтобы воспользоваться этой информацией, служат
методы.
Объект JavaScript – DATE
методы
назначение
getYear ()
Год
getMonth ()
Номер месяца. Январь
№0
getDate ()
число
getDay ()
Номер дня недели.
Воскресенье № 0
getHours ()
часы
getMinutes ()
минуты
getSeconds ()
секунды
<SCRIPT LANGUAGE="JavaScript">
//Скрипт отмечает точную дату и время вашего
прибытия на страницу
Now = new Date();
document.write("Сегодня " + Now.getDate()+
"-" + Now.getMonth() + "-" + Now.getFullYear() + ".
Вы зашли на мою страницу ровно в: " +
Now.getHours() +
":" + Now.getMinutes() + " и " + Now.getSeconds() +
" секунд.");
</SCRIPT>
строка document.write не должна
прерываться. Она разбита для удобства чтения.
// - означает комментарий.
Now = это созданный объект, к которому
применены методы: getDate(), getMonth() и др.
Самостоятельная
работа
Создайте на своей страничке сценарий, в
котором сообщается посетителю о
том, сколько дней осталось, например,
до Нового года.
Кроме того, на странице должна
появиться текущая дата в российском
стандарте в виде:
Сегодня – 1.1.2014, сейчас – 23:18
Время на странице
пошло
<script type="text/javascript">
function digitalWatch()
{
var date = new Date();
var hours = date.getHours();
var minutes = date.getMinutes();
var seconds = date.getSeconds();
if (hours < 10) hours = "0" + hours;
if (minutes < 10) minutes = "0" + minutes;
if (seconds < 10) seconds = "0" + seconds;
document.getElementById("digital_watch").innerHTML
= hours + ":" + minutes + ":" + seconds;
setTimeout("digitalWatch()", 1000);
}
</script>
Слайд–шоу
Проблема: пусть картинка, находящаяся на Вашей
страничке, автоматически меняется, скажем,
каждые пять секунд.
Для этого нам потребуется переменная, начальное
значение которой присваивается вне вызываемой
функции.
Эта JavaScript – программа будет выглядеть
следующим образом:
X=0;
Function slide()
{
Pictures=new Array("1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg");
Period=1000;
setTimeout("slide() " ,period);
ris1.src=pictures[x];
x=x+1;
If (x>=pictures.length) (x=0);
}
Здесь переменная Pictures является массивом из 5-ти
элементов (картинок).
Переменная Х является индексом (порядковым номером)
элементов массива.
Оператор SetTimeout обеспечивает выполнение
подпрограммы, написанной внутри скобок (в нашем
случае - slide() ), каждую секунду.
Задание
1.
Организуйте на новой страничке
слайд-шоу
2.
Добавьте ниже иллюстрации пару –
другую кнопок, позволяющую
ускорять, замедлять и практически
остановить показ картинок.
3.
Вы можете использовать слайд –
шоу для создания мультимедийной
презентации по какому-нибудь
учебному предмету.
ИНТЕРНЕТМАГАЗИНЧИК
Организуем продажу товара через
Интернет. Конечно, это довольно
сложный программный комплекс, его
не сделать за урок. Мы попробуем
рассчитать стоимость выбранных
товаров.
ИНТЕРНЕТМАГАЗИНЧИК
<h1><center>ИНТЕРНЕТ - МАГАЗИН</h1><br>
<br>
<p align=left><font size=5 color=green>выбирайте
нужный товар</p><br>
<p align=left><font size=4 color=red>
<form name="f1">
<input type="checkbox" id="tov1"
value="7345">Монитор lg795 - 7345 руб.<br>
<input type="checkbox" id="tov2"
value="3220">Винчестер 60гб - 3220 руб.<br>
<input type="checkbox" id="tov3"
value="4750">Принтер canon i550 - 4750
руб.<br>
<input type="checkbox" id="tov4"
value="2160">Видеокарта 8500 pro - 2160
руб.<br>
<input type="checkbox" id="tov5"
value="2300">Сканер Mustek 12SP- 2300
руб.<br>
<input type="button" onclick="count1()"
value="сумма">
<input type=text name="itog">
</form>
ИНТЕРНЕТМАГАЗИНЧИК
Объект типа СheckBox имеет два важных свойства:
Value – это его значение, которое будет обрабатывать
программа;
Checked – имеет логическое значение True, если
внутри объекта стоит галочка выбора, и значение
False в противном случае.
Назовем функцию, которая вычислит общую стоимость
выбранных товаров, count1().
function count1()
{
f1.itog.value=0;
if (f1.tov1.checked)
(f1.itog.value=Number(f1.itog.value)+
Number(f1.tov1.value));
}
!!! Функция Number() преобразует строковые
значения в числовые.
Задание:
1.
Допишите подпрограмму count1().
2.
Поменяйте картинки на подходящие для
интернет – магазина.
Download