Как сделать чтобы только "a c e" были заглавными?:
abcdefghijklmnop.toUpperCase("a" "c" "e");
VM1842:2 Uncaught SyntaxError: Unexpected string
"abcdefghijklmnop".toUpperCase("a" "c" "e");
VM1843:2 Uncaught SyntaxError: Unexpected string
"abcdefghijklmnop".toUpperCase(a);
VM1844:2 Uncaught ReferenceError: a is not defined
"abcdefghijklmnop".toUpperCase("a");
"ABCDEFGHIJKLMNOP"
http://javascript.ru/String/toUpperCase
Вы можете воспользоваться, например, методом replace() и заменять маленькую букву на большую
http://javascript.ru/String/replace
Только не забудьте, что этот метод заменит лишь первое вхождение, если передать первым параметром просто строку. Что бы заменить все совпадения, нужно использовать регулярные выражения.
Почитайте по ссылке в документации, там есть примеры. Заранее предупрежу, регуляные выражения - тема сложная, но интересная.
Ну и сразу код для вас:
"abcdefghijklmnop".replace('c', 'C'); // Заменит только первую букву c
"abcdefghijklmnop".replace(/c/g, 'C'); // Заменит все буквы c
message = message.replace(/([^а-яa-z]|^)(e|е|ё)([^ ])?(т|t|T|?)([^ ])?([а-яa-z])/img, "$1э$3$4$5$6");
Всё замечательно работает. Правда, периодически наблюдаю слово "эсть", но это ведь не проблема? :D
если (какую обещали погоду) идентично (солнечную) - зонтик можно не брать, в другом случае зонтик моно брать"
Аффтор (адский сотона) объясни нам как ты хочешь добиться того что (какую обещали погоду) идентично (солнечную)? Как сцуко эти два понятия станут идентичными? Ты всю жизнь во второе условие будешь попадать.
Извините что под топовым, но не хочу что бы народ такую хрень читал.
А если знает кто, помогите найти ошибку, и как упростить это вообще? Надеюсь, что поможет кто.
var a = Math.floor((Math.random() * 10) + 1); b = Math.floor((Math.random() * 10) + 1); c = Math.floor((Math.random() * 10) + 1); str1 = "x^2"; str2=" + "; str3 = "x + "; str4 ="= 0"; strg; d; x1; x2; x3, x4;
strg == a + str1 + str2 + b + str3 + c + str4;
alert(strg, ' Высчитайте за 1 минуту корни уравнения');
setTimeout((x3 = window.prompt('Каков 1 корень уравнения?'), x4 = window.prompt('Каков второй корень уравнения?')), 6000);
d==b*b - 4*a*c; x1==-b+Math.sqrt(d), x2==-b-Math.sqrt(d);
if ((x1=x3 || x1=x4) && (x2=x3 || x2=x4)) {
window.alert('Все верно!');
} else {
window.alert('У тебя не получилось, попробуй снова! :D');
}
Во-первых, объявление переменных. Если вы хотите объявить несколько переменных одним var, то разделять их нужно запятыми, а не точками с запятой.
Во-вторых, упростить можно если убрать все переменные str. Там же у вас ошибка - вы перепутали присваивание (=) со сравнением по значению (==). Такая же ошибка у вас чуть ниже. А еще, не обязательно сохранять текст в переменную, можно сразу запихнуть ее в alert(). Вот мой вариант попроще:
alert("Высчитайте за 1 минуту корни уравнения:\n" + a + "x^2 + " + b + "x + " + c + " = 0");.
(Прим.: "\n" автоматически заменится на перенос строки)
В-третьих, метод alert() принимает только один аргумент, второй он проигнорирует.
В-четвертых, setTimeout() принимает 2 аргумента - функцию и время задержки в миллисекундах. У вас тут сразу три ошибки:
1. Первым аргументом вы передали не функцию. Попробуйте выполнить только первый аргумент отдельно. Вы получите строку, которую ввели во втором prompt'е. Таймаут воспримет ее как имя функции и попытается вызвать.
2. Таймер установлен на 6 секунд, а не на 60. Хоть это и не существенная ошибка.
3. Самое главное. Функция, переданная в setTimeout() будет отложена, а код после setTimeout() будет выполняться не дожидаясь ее. То есть в вашем случае проверка значений x3 и x4 произойдет ДО того, как значение им будет присвоено. Что бы вы лучше поняли приведу пример:
var test = "Before timeout";
setTimeout(function(){
test = "After timeout";
}, 5000);
window.alert(test); // Выведет "Before timeout", а значение "After timeout" приобретет только через 5 секунд.
Ну и в-пятых, по сути та же ошибка, только в обратную сторону - в условии вы перепутали сравнение (==) с присваиванием (=).
Надеюсь, что немного прояснил ваши затруднения)
1. Как без многочисленных переменных str записать программу;
2. Как тогда работать с TimeOut'ом, если код после этого оператора прорабатывается заранее?
str1 = "x^2"; str2 = " + "; str3 = "x + "; str4 = "= 0"; strg;
strg = a + str1 + str2 + b + str3 + c + str4;
alert(strg + '\nВысчитайте за 1 минуту корни уравнения');
Вот то же самое одной строкой (я уже писал это выше):
alert("Высчитайте за 1 минуту корни уравнения:\n" + a + "x^2 + " + b + "x + " + c + " = 0");
Все переменные str использовались лишь по одному разу и не меняли значения, а значит смысла в них не было. Вместо них я просто забил строки в алерт, а в нужных местах вставил переменные.
2. Для начала стоит разобраться с функциями. Я собирался разбирать их в следующий раз, но вы можете почитать
https://learn.javascript.ru/function-basics
https://learn.javascript.ru/function-declaration-expression
Идем дальше. Про таймаут вы уже, судя по всему, читали. Что делает таймаут? Он откладывает выполнение функции на некоторое время, НО! не останавливает остальной код. То есть если вы хотите выполнить какие-либо действия ПОСЛЕ того, как выполнится таймаут, то надо просто дописать эти действия в конец функции в таймауте. Ваш случай:
setTimeout(function(){
x3 = Number(window.prompt('Каков 1 корень уравнения?'));
x4 = Number(window.prompt('Каков 2 корень уравнения?'));
// Функцией Number() я преобразовал строку в число для избежания ошибок
d = b*b - 4*a*c;
x1 = -b + Math.sqrt(d);
x2 = -b - Math.sqrt(d);
if ((x1 == x3 || x1 == x4) && (x2 == x3 || x2 == x4)) {
window.alert('Все верно!');
} else {
window.alert('У тебя не получилось, попробуй снова! :D');
}
}, 60000);
Кстати, у вас нет проверки на количество корней у уравнения. Как разберетесь с этим, добавьте =)
http://imgur.com/HrceyV1
( Чтобы не загружать вас сильно, в форме скрина залил, думаю, что код прочесть проще получится ).
P.S. Сильно вы замахнулись на написание кодов... 2 поста, мы же не Джобсы и Гейтсы...
вроде корни счиает.......
но что то мне подсказывает что должно быть не так...
var A=prompt('Введите значение А');
var B=prompt('Введите значение В');
var C=prompt('Введите значение С');
var D=(Math.sqrt(Math.pow(B,2)-4*A*C));
var x1=((-B+D)/(2*A));
var x2=((-B-D)/(2*A));
if (D<0) {alert('нет корней');
} else {
alert(x1);
alert(x2)} ;
еще один, ты код то свой хоть проверял? Вот придираются к херне, а такие ошибки шпилят. Ошибок в коде уже достаточно насчитал. Действительно говнокодерами мир полнится. Либо еще один тролль))))
Ты идиот? Кусок кода приведен для примера (для обучения, не для программы и копирования в своих проектах). Новичкам хватит, чтобы получить элементарное представление об условных операторах. Придираешься к мелочам, как школьник, быдло или тролль. Свой вариант выбери сам. Я не хочу сказать, что это лучшее пособие, но уверен, что не знающие вполне смогут разобраться по таким примерам.