| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
Статьи:: Интернет технологии :: Учебник по JavaScript :: Глава 15. Процедурный тип данных и функция eval.
Глава 15. Процедурный тип данных и функция eval.
Процедурный тип данных и функция eval
Предположим, что нам требуется написать программу, которая определяет
значение функции в заданной точке. График функции представлен на рис. 15.1.
Задачи подобного типа рассматривались ранее. Можно описать функцию fi, которая
по заданному значению х будет выдавать соответствующее значение у, например,
так: function f1(x) { var у у=х*х*х-1 return у }
Если использовать методы объекта Math, то функцию fl можно описать следующим образом: function f1(x) { var у y=Math.pow(x,3)-1 return у } Когда аналогичную задачу требуется решить для функции, график Которой представлен на рис. 15.2, можно описать функцию f2: function f2(x) { var у у=(х-1)*(x-D+1 return у }
Описание функции f 2 может быть и таким: function f2(x) { var у у= Math.pow(x-l,2)+l return у } Во многих языках программирования разрешается рассматривать функции fi и f2
как процедурные константы, а в программе описать переменную процедурного типа,
значение которой во время выполнения программы может меняться. Такие переменные
связываются во время выполнения программы с разными процедурами. Процедурные
константы и переменные можно использовать в качестве фактических параметров. В
нашем случае ситуация была бы такой: в программе описана функция, которая
вычисляет значение в точке, определяемой пользователем. Функция, задаваемая
пользователем, передается в качестве параметра. Иногда в аналогичных случаях
говорят, что процедура или функция рассматриваются как данные. Идея единства
данных и подпрограмм занимает одно из основных мест в объектно-ориентированном
программировании. В языке JavaScript идея процедурных типов данных реализована с
помощью функции evai. Функция eval получает в качестве параметра строку. Если
строка представляет собой выражение языка JavaScript, то вычисляется ее значение
и возвращается как результат функции evai. Вычисление значения пользовательской функции Напишем программу, которая определяет значение функции, задаваемой пользователем, в некоторой заданной точке. Функция, точка и вычисленное значение указываются в текстовых полях формы,
как показано на рис. 15.3.
Для того чтобы определить значение функции, график которой изображен на рис. 15.1, достаточно задать функцию формулой х*х*х-1 или формулой Math.pow(x, 3) -1. Если же нас интересует значение в некоторой точке функции, график которой изображен на рис. 15.2, то надо ввести формулу (х-1)*(х-1)+1 или Math.pow(x-l,2)+l. Функция может иметь такой вид, что ее нельзя описать с помощью лишь одного выражения. Например, для того, чтобы описать функцию, график которой представлен на рис. 15.4, следует воспользоваться условным оператором: if (Math.abs(x)<l) {y=Math.sqrt(l-x*x)} else if (x <-l) {y=x+l} else {y=x-l} Для получения значения функции, график которой изображен на рис. 15.4, следует воспользоваться условным оператором: if (Math.abs(х)<1) {у= х*х} else if (х <-1) {у=х+2} else {y=l} Метод eval может быть использован для выполнения операторов языка JavaScript,
включенных в строку параметра. Таким образом, при задании функции можно вводить
не только формулу, как мы поступали ранее, но и операторы. Для получения
значений в заданных точках функций, графики которых изображены на рис. 15.4 и
15.5, можно ввести в поле формы соответствующие условные операторы. Таким
образом, используя метод eval, мы получили возможность задавать в качестве
исходных данных функцию, и тем самым решать целый класс однотипных задач.
Формирование таблицы значений пользовательской функции Напишем программу, которая формирует таблицу значений задаваемой пользователем функции. Кроме функции указывается начальное и конечное значение аргумента, и шаг его изменения. С помощью цикла вычисляется точка, значение функции в точке, и формируется строка, которая затем составит таблицу. После завершения работы цикла строка помещается в поле формы, предназначенное для отображения результата. Полностью HTML-код представлен в листинге 15.1. Листинг 15.1. Построение таблицы знйчений функции <HTML> <HEAD> <TITLE>Построение таблицы значений функции</TITLE> <script language="JavaScript"> <!-— // function valfunc (objj ) { var fs=obj.func.value var m=Number(obj.left.value) var n=Number(obj.rig.value) var h=Number (obj.by.value) var у var x var s="x f(x)"+"rn" for (var i=m; i<=n; i=i+h) {x=i; y=eval(fs); s+=x+" "+y+"rn"} obj.res.value=s } //-—> </script> </HEAD> <BODY bgcolor="F8F8FF"> <Н4>Построение таблицы значений функции</Н4> <FORM name="form1"> <pre> Введите функцию: <input type="text" size=20 name="func"><hr> Введите левый конец интервала: <input type="text" size=8 name="left"><hr> Введите правый конец интервала:<input type="text" size=8 name="rig"><hr> Введите шаг изменения аргумента:<input type="text" size=8 name="by"><hr> <input type="button" value=Вычислить' onclick="valfunc (form1) "><hr> Таблица значений функции: <textarea cols=40 rows=10 name="res"></textarea><hr> <input type="reset" value=Отменить> </pre> </FORM> </BODY> </HTML> На рис. 15.6 приведен результат выполнения сценария.
Для того чтобы получить значение функции у = 0,5 х cos(x) на
интервале [0; 1] с шагом 0,05, следует заполнить соответствующие поля формы,
причем, функцию надо задать как выражение JavaScript: 0.5*Math. cos (x). Определение принадлежности точки некоторой области На плоскости определяется некоторая область. Требуется написать программу, которая для произвольной точки, заданной своими координатами, определяет, принадлежит ли точка области. Мы решали ранее подобные задачи, только описание каждой из областей
производили с помощью соответствующей функции. Использование метода evai
позволит нам написать программу, которая обрабатывает параметр, определяющий
область плоскости. Область плоскости задается пользователем в качестве исходных
данных. Рассмотрим варианты, изображенные на рис. 15.7-15.9.
Для заштрихованных областей на приведенных рисунках формулы, описывающие область, могут быть следующими:
Полностью программа приведена в листинге 15.2. Листинг 15.2. Принадлежит ли точка области, задаваемой пользователем <HTML> <HEAD> <TITLE>Принадлежит ли точка определенной области</TITLE> <script language="JavaScript"> <!-— // function valfunc(obj) { var fs=obj.func.value var x=Number(obj.x.value) var y=Number(obj.y.value) var z=eval(fs) var s="принадлежит области" if (!z) s= "не " +s obj.res.value=s } //-—> </script> </HEAD> <BODY bgcolor="F8F8FF"> <H4Принадлежность точки выделенной области плоскости</Н4> <FORM name="forml"> <pre> Введите формулу, описывающую область: <input type="text" size=40 name="func"><hr> Введите x: <input type="text" size=8 name="x"><hr> Введите у: <input type="text" size=8 name="y"><hr> <input type="button" value=Вычислить onClick="valfunc(forml)"><hr> Точка с заданными координатами <input type="text" size=30 name="res"><hr> <input type="reset" value=Отменить> </pre> </FORM> </BODY> </HTML> Вычисление корня уравнения методом итераций Напишем программу, которая определяет корень уравнения вида х = J(x) с начальным приближением / и точностью eps методом итераций. Мы писали ранее программу, которая вычисляла корень конкретного уравнения. Напишем программу (листинг 15.3), в которой функция, представляющая правую часть уравнения, указывается пользователем при заполнении соответствующих полей формы; Испойьзуя программу, мы можем задавать различные функции, изменять точность и начальные приближения, анализировать результат. Листинг 15.3. Нахождение корня уравнения вида х - f(x) методом итераций <HTML> <HEAD> <TITLE>Нахождение корня уравнения вида х = f(x) методом итераций</TITLE> <script language="JavaScript"> <!-—// function iter(obj) { var d=document var fs=obj.func.value var t=Number(obj.tv.value) var eps=Number(obj.epsv.value) var x=t; var y=eval(fs) while (Math.abs(y-x) >= eps) { x=y ; y= eval(fs) } obj.res.value= x } //-—> </script> </HEAD> <BODY bgcolor="F8F8FF"> <Н4>Нахождение корня уравнения вида х = f(х) методом итераций</Н4> <FORM name="forml"> <pre> Введите функцию f(х): <input type="text" size=20 name="func"><hr> Введите начальное приближение: <input type="text" size=8 name="tv"><hr> Введите требуемую точность: <input type="text" size=8 name="epsv"><hr> <input type="button" value=Bычиcлить onClick="iter(forml)"><hr> Корень уравнения равен: <input type="text" size=20 name="res"><hr> <input type="reset" value=Отменить> </pre> </FORM> </BODY> </HTML>
Вычисление корня уравнения методом деления отрезка пополам Напишите программу, которая находит корень уравнения вида f(x) = 0 методом деления отрезка пополам с заданной точностью eps. Нас интересует интервал [a, b], на котором функция непрерывна и монотонна и на концах интервала принимает значения разных знаков. Тогда на этом интервале функция имеет ровно один корень и его можно приблизительно определить следующим образом. Разделить интервал [а, b] на две части точкой m = (а + b) / 2 и вычислить значение f(m). После этого из двух получавшихся интервалов [а, m] и [m, b] рассматривать тот, на концах которого функция принимает значения разных знаков, именно он содержит корень. Продолжить процесс поиска корня для вновь образованного интервала. Процесс будет закончен, когда длина очередного интервала станет меньше значения eps. Следовательно, любая точка интервала будет представлять значение корня с точностью eps. Напишем сценарий, который для уравнения вида f(x) = 0 находит корень с точностью eps методом деления отрезка пополам. При этом пользователь должен задать функцию, точность и границы интервала (листинг 15.4). Листинг 15.4. Метод деления отрезка пополам <HTML> <HEAD> <TITLE>Метод деления отрезка пополам</TITLE> <script language="JavaScript"> <!--// function binroot (obj) { var fs=obj.func.value var a=Number(obj.left.value) var b=Number(obj.right.value) var eps=Number(obj.epsv.value) var x=a var fa = eval(fs) x=b var fb = eval(fs) var fc var с if (fa*fb < 0) { while (Math.abs(b-a) >= eps) { c= (a+b)/2; x=c; fc= eval(fs) if (fa*fc < 0) {b=c; fb= fc } else {a=c; fa=fc } } obj.res.value= (a+b)/2 x= (a+b)/2 var tes = eval(fs) obj.test.value= tes } else document.write("на концах отрезка значения одного знака") } //--> </script> </HEAD> <BODY bgcolor="F8F8FF"> <H4> Метод деления отрезка пополам</Н4> <FORM name="form0"> <pre> Введите функцию: <input type="text" size=30 name="func"><hr> Введите левьй конец отрезка: <input type="text" size=10 name="left"><hr> Введите правый конец отрезка: <input type="text" size=10 name="right"><hr> Задайте требуемую точность: <input type="text" size=10 name="epsv"><hr> <input type="button" value=Вычислить onClick="binroot(form0)"><hr> Корень уравнения равен: <input type="text" size=30 name="res"><hr> Тест: <input type="text" size=30 name="test"><hr> <input type="reset" value=Отменить> </pre> </FORM> </BODY> </HTML>
Для того чтобы найти корень уравнения у = х4-3х+ 1 с
точностью 0,001 можно взять интервал [0, 1], т. к. на концах этого интервала
функция принимает значения разных знаков. Результат работы сценария приведен на
рис. 15.10. Напишите программу, которая приближенно вычисляет интеграл
Приближенное значение интеграла можно получить, если на промежутке [а, b] функцию f заменить кусочно-линейной функцией, т. е. превратить задачу о вычислении площади криволинейной трапеции в задачу вычисления площадей прямолинейных трапеций. Чем больше количество элементарных отрезков, тем более точные вычисления. Разобьем отрезок [а, b] на равные промежутки а = x0 , x1, ... xn = b. Площадь трапеции, на отрезке [xi-1, xi] определяется формулой
Если интервал [а, b] разбит на равные промежутки, то длина такого промежутка равна р = (b — а)/п, а точки определяются по формуле xi = а + i x h. Формула приближенного вычисления интеграла аналогично формуле трапеций может быть записана так:
Задачу будем решать следующим образом. Интеграл вычислять по формуле трапеций, последовательно уменьшая шаг в два раза, пока последние вычисленные приближения интеграла не станут меньше чем заданное значение eps. Кроме того, значение подынтегральной функции в каждой точке будем вычислять лишь один раз. Пусть рассматриваемым отрезком будет интервал [0, 1], а первоначальное разбиение n = 10. Значения подынтегральной функции должны быть подсчитаны в точках 1/10, 2/10, ... , 9/10. При следующем разбиении п = 20, значения функции должны считаться в точках: 1/20, 2/20, 3/20, 18/20, 19/20. Для некоторых значении в этом интервале значения функции уже считались на предыдущем шаге. Поэтому программу следует составить так, чтобы функция вычислялась лишь в точках 1/20, 3/20, ... , 19/20. В функции integral использованы следующие переменные. В переменной fs хранится подынтегральная функция, которую задает пользователь, заполняя поля предложенной формы. Переменные а и b служат для задания промежутка интегрирования. Переменная п задает начальное разбиение. Для хранения двух последовательных приближений предназначены переменные i1 и i2. Напишем программу решения задачи (листинг 15.5). Листинг 15.5. Вычисление значения интеграла по формуле трапеций <HTML> <HEAD> <TITLE>Вычисление значения интеграла по формуле трапеций</TITLE> <script language="JavaScript"> <!-— // function integral(obj) { var d=document var fs=obj.func.value var a=Number(obj.left.value) var b=Number(obj.right.value) var n=Number(obj.nv.value) var eps=Number(obj.epsv.value) var i1; var i2; var h; var s; var i var fcur x=a var fa=eval(fs) x=b var fb=eval(fs) s=(fa+fb)/2; h=(b-a)/n for (1=1; i<= n-1; i = 1+1) {x=a+i*h ; fcur=eval(fs); s=s+fcur} i1=s*h n=n*2; h=h/2 for (i=1; i<= n-1; i=i+2) {x=a+i*h; fcur=eval(fs); s=s+fcur} i2=s*h while (Math.abs(11-12) >= eps) {i1=i2; n=n*2; h=h/2 for (i=1; i<= n-1; i = i+2) {x=a+i*h; fcur= eval(fs); s=s+fcur} i2=s*h } obj.res.value=i2 } //-—> </script> </HEAD> <BODY bgcolor="F8F8FF"> <Н4>Численное интегрирование. Вычисление интеграла методом трапеций</Н4> <FORM name="form0"> <pre> Введите подынтегральную функцию: <input type="text" size=20 name="func"><hr> Введите левый конец промежутка интегрирования: <input type="text" size=8 name="left"><hr> Введите правый конец промежутка интегрирования: <input type="text" size=8 name="right"><hr> Задайте начальное разбиение: <input type="text" size=12 name="nv"><hr> Задайте требуемую точность: <input type="text" size=12 name="epsv"><hr> <input type="button" value=Вычислить onClick="integral(form0)"><hr> Значение интеграла равно: <input type="text" size=20 name="res"><hr> <input type="reset" value=0тменить> </pre> </FORM> </BODY> </HTML> Определение типа выравнивания изображения Напишите программу, которая позволяет определить действие параметра align при вставке изображения в строку. Пользователь выбирает интересующий параметр, и в правой части появляется описание действий при выбранном параметре, как на рис. 15.11. При выборе значения параметра выравнивания изображения возникает событие
focus, реакцией на которое является вызов функции set. Второй параметр функции
set применяется при формировании имени строковой переменной, значение которой
помешается в соответствующее поле формы.
function set(obj,i) {obj.res.value=eval("s"+i) } Если написать конструкцию obj.res.value="s"+i то в зависимости от значения i будет выведена строка so, si, ...., s5. Полностью HTML-код приведен в листинге 15.6. Листинг 15.6. Объяснение действия при выбранном значении параметра <HTML> <HEAD> <TITLE>Расположение изображения относительно строки</TITLE> <script> <!-— var s0="Верхняя граница изображения выравнивается"+ "по самому высокому элементу текущей строки" var s1="Верхняя граница изображения выравнивается "+ "по самому высокому текстовому элементу текущей строки" var s2="Выравнивание середины изображения по базовой линии "+ "текущей строки" var s3="Выравнивание середины изображения посередине "+ "текущей строки" var s4="Выравнивание нижней границы изображения "+ "по базовой линии текущей строки" var s5="Выравнивание нижней границы изображения "+ "по нижней границе текущей строки" function set(obj,i) {obj.res.value=eval("s"+i)} //-—> </script> </HEAD> <BODY bgcolor="F8F8FF"> <H3 align=center>Расположение изображения относительно строки</Н3> Выберите значение параметра, который Вас интересует <FORM name="form1"> <TABLE border=2> <ТR><ТD><h4>Значения параметра выравнивания ALIGN</h4> <ТD><h4>Действия при выбранном значении параметра:</h4> </TR> <TR><TD> <input type="radio" name="m" value=0 onfocus="set(forml,0)">TOP <br> < input type="radio" name="m" value=l onfocus="set(forml,1)">TEXTTOP<br> <input type="radio" name="m" value=2 onfocus="set(forml,2)">MIDDLE<br> <input type="radio" name="m" value=3 onfocus="set(forml,3)">ABSMIDDLE<br> <input type="radio" name="m" value=4 onfocus="set(forml,4)">BOTTON или BASELINE<br> <input type="radio" name="m" value=5 onfcus="set (forml, 5) ">ABSBOTTON<br></TD> <TD><textarea name="res" cols=40 rows=4> </textarea><br></TD></TR></TABLE><br> <input type="reset" value="Обновить"> </FORM> </BODY> </HTML> 1. Напишите сценарий с функцией, которая определяет приближенное значение корня уравнения f(x) = 0 методом хорд с точностью eps. Найдите корни уравнения ех+ х — 2 = 0 на промежутке [0, 1] с точностью 10-4. 2. Напишите сценарий с функцией, определяющей корень уравнения f(x) = 0 на промежутке [а, b] с заданным начальным приближением x0 методом Ньютона. Найдите с помощью описанной функции корни уравнения tgx — р х х = 0 на промежутке [0; 3/2] для р =1,4(0,2)2,1, x0 = 1,5. 3. Напишите сценарий с функцией, приближенно вычисляющей интеграл по формуле прямоугольников:
где h = (b - а)/п, хi = а + i x h - h/2 при заданном значении п. Подынтегральную функцию, промежуток и разбиение пользователь должен задавать с помощью формы. 4. Напишите сценарий, который дает возможность пользователю выбрать график, для которого требуется определить значение функции при заданном значении аргумента. В сценарии следует предусмотреть проверку правильности написанного фрагмента для заданного графика. После выполнения всей работы (просмотра всех графиков) пользователю выставляется оценка. 5. Напишите сценарий, который дает возможность пользователю выбрать рисунок из набора заданных изображений. Пользователю для каждого из рисунков требуется написать фрагмент программы, определяющий, принадлежит ли точка с заданными координатами заштрихованной области. В сценарии предусмотреть проверку правильности написанного фрагмента для заданного графика. После выполнения работы (просмотра всех изображений) пользователю выставляется оценка. 6. Напишите сценарий, согласно которому пользователь выполняет задание, а затем ему выставляется оценка. Задание таково: напишите выражение, которое выдает значение функции при заданном значении аргумента. Пользователь выбирает график, вводит выражение, нажимает на кнопку Готово, выбирает следующий график и т. д., пока не будут выполнены все задания. На выполнение всего задания отводится определенное время. После окончания работы выставляется оценка. 7. Напишите сценарий, в результате выполнения которого выбирается задание из предложенного списка, затем пользователь вводит выражение, удовлетворяющее условию задания и т. д., пока не будут выполнены все задания. На выполнение всего задания отводится определенное время. После окончания работы выставляется оценка. При выполнении каждого задания требуется написать выражение, истинное тогда и только тогда, когда выполняется одно из следующих условий: • хотя бы одна из переменных а, b, с имеет значение false; • ровно одна из переменных а, b, с имеет значение false; • ровно две переменные из переменных а, b, с, имеют значение false; • все переменные а, b, с имеют одинаковое значение; • ни одна из логических переменных а, b, с не истинна; 8. Напишите сценарий, в результате выполнения которого выбирается задание из предложенного списка, затем пользователь вводит выражение, удовлетворяющее условию задания, и т. д., пока не будут выполнены все задания. На выполнение всего задания отводится определенное время. После окончания работы ставится оценка. При выполнении каждого задания требуется написать выражение, истинное тогда и только тогда, когда выполняется одно из следующих условий: • остаток от деления целого числа n на 7 равен либо 3, либо 7; • два числа нечетны и разность между ними равна 2; • сумма цифр заданного трехзначного числа п совпадает с самим числом; • заданное четырехзначное число п является палиндромом; • заданное трехзначное число п является числом Армстронга; • первая и последняя цифра четырехзначного числа п совпадают; • максимальная цифра четырехзначного числа п делится на минимальную цифру без остатка. 9. Напишите сценарий, в результате выполнения которого выбирается задание из предложенного списка, затем пользователь вводит выражение, удовлетворяющее условию задания, и т. д., пока не будут выполнены все задания. На выполнение всего задания отводится определенное время. После окончания работы ставится оценка. При выполнении каждого задания требуется написать выражение, истинное тогда и только тогда, когда выполняется одно из следующих условий: • последовательность из пяти чисел а, b, с, d, e образует арифметическую прогрессию; • пять чисел образуют возрастающую последовательность; • пять чисел образуют строго возрастающую последовательность; • пять чисел образуют строго убывающую последовательность; • пять чисел образуют возрастающую последовательность; • в последовательности есть два одинаковых числа; • в последовательности три одинаковых числа; • в последовательности нет одинаковых чисел; • в последовательности два равных числа расположены рядом. 10. Напишите сценарий, в результате выполнения которого выбирается задание из предложенного списка, затем пользователь вводит выражение, удовлетворяющее условию задания, и т. д., пока не будут выполнены все задания. На выполнение всего задания отводится определенное время. После окончания работы ставится оценка. При выполнении каждого задания требуется написать выражение, истинное тогда и только тогда, когда выполняется одно из следующих условий: • в последовательности из четырех чисел а, b, с, d только одно максимальное число; • в последовательности из четырех чисел а, b, с, d чисел ровно два максимальных числа; • в последовательности из четырех чисел а, b, с, d максимальное число совпадает с квадратом минимального числа; • в последовательности из четырех чисел а, b, с, d первое минимальное число стоит на нечетном месте; • в последовательности из четырех чисел а, b, с, d максимальное число и минимальное число идут подряд; • значение а является наибольшим из четырех попарно различных значений а, b, с, d; • разность между максимальным и минимальным числом является числом, кратным 7. 11. Напишите сценарий, в результате выполнения которого выбирается задание из предложенного списка, затем пользователь вводит выражение, удовлетворяющее условию задания, и т. д., пока не будут выполнены все задания. На выполнение всего задания отводится определенное время. После окончания работы ставится оценка. При выполнении каждого задания требуется написать выражение, истинное тогда и только тогда, когда выполняется одно из следующих условий: • последовательность из пяти символов а, b, с, d, e является идентификатором; • последовательность из пяти символов а, b, с, d, e является палиндромом; • в последовательности из пяти символов а, b, с, d, e есть одинаковые буквы; • в последовательности из пяти символов а, b, с, d, e все буквы различны; • буквы расположены в алфавитном порядке в последовательности из пяти букв; • в последовательности символов а, b, с, d, e есть хотя бы одна цифра; • в последовательности а, b, с, d, e есть две цифры, стоящие рядом; • последовательность а, b, с, d, e представляет целое число, которое при делении на 7 дает в остатке 5; • последовательность а, b, с, d, e представляет целое число, кратное 3; • в последовательности а, b, с, d, e есть ровно три буквы; • последовательность а, b, с, d, e представляет целое число, кратное 9. 12. Напишите сценарий, в результате выполнения которого выбирается задание из предложенного списка, затем пользователь вводит выражение, удовлетворяющее условию задания, и т. д., пока не будут выполнены все задания. На выполнение всего задания отводится определенное время. После выполнения работы ставится оценка. В заданиях, предлагаемых для тестирования, приняты следующие соглашения. Четыре числа трактуются как оценки за сессию. Требуется написать выражение, истинное тогда и только тогда, когда: • все экзамены сданы на 5; • экзамены сданы на оценки 4 и 5, но не на все пятерки; • имеется хотя бы одна тройка, но нет двоек; • имеется хотя бы одна двойка; • средний балл за все экзамены в пределах 3,5 и 4,5; • сумма баллов за сессию либо меньше 3,5, либо более 4,75; • среди оценок нет одинаковых; • ровно две четверки; • ровно три тройки. 13. Напишите сценарий, в результате выполнения которого выбирается задание из предложенного списка, затем пользователь вводит выражение, удовлетворяющее условию задания, и т. д., пока не будут выполнены все задания. На выполнение всего задания отводится определенное время. После окончания работы ставится оценка. В заданиях, предлагаемых для тестирования, предполагается выполнение следующих условий. Три числа а, b, с трактуются как длины сторон. Определите: • можно ли построить треугольник с заданными длинами сторон; • является ли треугольник равносторонним; • является ли треугольник равнобедренным; является ли треугольник разносторонним; • является ли треугольник прямоугольным; является ли треугольник остроугольным; является ли треугольник тупоугольным. Рубрика: Учебник по JavaScript
Вышел MySQL 5.1.30, первый стабильный рели....
После публикации 29 тестовых версий анонсирован первый стабильный релиз MySQL 5.1, пригодный для промышленной эксплуатации и обеспечивающий увеличение производительности для "тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные новшества появившиеся в MySQL 5.1:
Подробнее... |
Рубрика: MySQL
| Добавлено: 28.11.2008
Тестирование параллельных программ.
Тестирование параллельного программного обеспечения представляет собой более сложную задачу по сравнению с тестированием последовательной программы. Программист должен знать о подводных камнях при тестировании параллельного кода, имеющихся методологиях и инструментарии.
Подробнее... |
Рубрика: Тестирование
| Добавлено: 28.11.2008
Архитектура AMD64 (EM64T).
Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности, достоинства и недостатки.
Подробнее... |
Рубрика: Архитектура AMD
| Добавлено: 27.11.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|