Анимация реализованна средствами css3. Кадры формируют javascript. Массив создается из десяти элементов с целыми числами до 100 (при желании легко модифицировать). Каждая сортировака в отдельной функции, к которой добавлен функционал перемещения шариков.
Скрипты находятся по адресу js/main.js
console.log(min(0, 10)); // → 0
console.log(min(0, -10)); // → -10
Результат:
function min(a, b) {
return ( a > b ? b : a );
}
console.log(min(0, 10)); // → 0
console.log(min(0, -10)); // → -10
document.write(min(0, 10),' и ',min(0, -10));
Символ номер N строки можно получить, добавив к ней .charAt(N) ( “строчка”.charAt(5) ) – схожим образом с получением длины строки при помощи .length. Возвращаемое значение будет строковым, состоящим из одного символа (к примеру, “к”). У первого символа строки позиция 0, что означает, что у последнего символа позиция будет string.length – 1. Другими словами, у строки из двух символов длина 2, а позиции её символов будут 0 и 1.Напишите функцию countBs, которая принимает строку в качестве аргумента, и возвращает количество символов “B”, содержащихся в строке.Затем напишите функцию countChar, которая работает примерно как countBs, только принимает второй параметр — символ, который мы будем искать в строке (вместо того, чтобы просто считать количество символов “B”). Для этого переделайте функцию countBs.
function countChar(stroka, a) {
var count = 0;
for (var i =0 ; i < stroka.length-1; i++) {
if ( stroka.charAt(i) == a )
count++;
}
return count;
}
document.write('Число вхождений буквы \"е\" в тексте \"Ноль чётный. Единица нечётная. У любого числа N чётность такая же, как у N-2.Напишите рекурсивную функцию isEven согласно этим правилам.\" равно: ',countChar("Ноль чётный. Единица нечётная. У любого числа N чётность такая же, как у N-2.Напишите рекурсивную функцию isEven согласно этим правилам." , "е") );
Ноль чётный. Единица нечётная. У любого числа N чётность такая же, как у N-2.Напишите рекурсивную функцию isEven согласно этим правилам. Она должна принимать число и возвращать булевское значение. Потестируйте её на 50 и 75. Попробуйте задать ей -1. Почему она ведёт себя таким образом? Можно ли её как-то исправить?
function isEven(N) {
if (N > 0) {
if( (N-2) == 0 ) {
return true;
} else if ( (N-2) == 1) {
return false;
} else {
return isEven( N-2 );
}
} else {
if( (N+2) == 0 ) {
return true;
} else if ( (N+2) == 1) {
return false;
} else {
return isEven( N+2 );
}
}
}
document.write('50 ', isEven(50),'<br>');
document.write('70 ', isEven(75),'<br>');
document.write('-1 ', isEven(-1));
Для отрицательных чисел можно сделать двумя способами, либо по модулю взять число, либо сделать как я, т. е. прибавлять 2. Иначе будет происходить переполнение стека, т. к. бесконечная рекурсия.
Простой калькулятор. Можно последовательно выполнять действия как на обычном калькуляторе. До конца не протестирован, но кажется работает.
var buff="test";
var result=0;
var first=false;
function calc(znak) {
var x = + document.getElementById("userEntry").value;
if(buff != znak && buff != "test")
{
calc(buff);
buff = znak;
return;
}
buff = znak;
if(first)
{
switch(znak) {
case "+" : result = result + x; break;
case "-" : result = result - x; break;
case "/" : result = result / x; break;
case "*" : result = result * x; break;
}
}
else
{
first = true;
result = x;
}
document.getElementById("userEntry").value = String(result);
}
function clean() {
result = 0;
buff="test";
first = false;
document.getElementById("userEntry").value = 0;
}
function end() {
calc(buff);
result = 0;
buff="test";
first = false;
}