01.12.2013, 16:03
|
|
Профессор
|
|
Регистрация: 03.05.2011
Сообщений: 848
|
|
YorikoSC, вам предлагается ознакомится какие имеются свойства и методы у каждого типа переменных в JavaScript...
|
|
01.12.2013, 18:02
|
Интересующийся
|
|
Регистрация: 27.11.2013
Сообщений: 16
|
|
Все равно не очень понятно, но это ладно головняком стало другое задание:
<!DOCTYPE html>
<html>
<body>
<p>Задание 1 вариант 4: Написать скрипт, в котором будет предлагаться ввести текст размером не
менее случайного сгенерированного программно числа (генерировать в диапазоне от 1
до 45) символов. Все четные символы перевести в верхний регистр, все нечетные в
нижний регистр. Вывести в сообщении полученный результат.</p>
<p id="условие">Нажмите на кнопку, чтобы сгенерировать число.</p>
<p id="текст"></p>
<button onclick=Generate()>ГСЧ</button>
<button onclick=Text()>Нажмите для ввода.</button>
<script>
function Generate(){
document.getElementById("условие").innerHTML = Math.floor(Math.random() * 44)+1;
document.getElementById("текст").innerHTML = "Введите текст длинной в число."
}
function Text(){
var x = prompt("Введите текст:", "");
if (x = Generate()){
alert("Ура,правильно!")
}
}
</script>
</body>
</html>
Естественно, что при вводе текстка происходит не проверка а генерация нового числа
А как ещё и символы разбить на ToUpperCase, ToLowerCase я вообще понять не могу, хотя гугл уже ничего нового мне не говорит
Минусы вечерней формы обучения - нам ни фига не объясняют((.
|
|
01.12.2013, 18:37
|
|
Профессор
|
|
Регистрация: 03.05.2011
Сообщений: 848
|
|
YorikoSC, предыдущее задание нельзя назвать заданием...чисто ознакомление...
с текущим...делайте все действия в одной функции
сгенерируйте случайно число; предлагайте вводить текст пока его длина не будет достигнута величины "random-но" сгенерированного числа; как только длина текста достигнута с помощью метода charAt() в цикле получайте i-ый символ строки -> если это четный символ, т.е. остаток от деления на 2 = 0 (number % 2) - значит число четное, иначе не четное; требуемый результат собирайте в новую переменную (строку) и выводите результат на экран...
|
|
01.12.2013, 19:35
|
Интересующийся
|
|
Регистрация: 27.11.2013
Сообщений: 16
|
|
function Generate(){
document.getElementById("условие").innerHTML = Math.floor(Math.random() * 44)+1;
document.getElementById("текст").innerHTML = "Введите текст длинной в число.";
var x = prompt("Введите текст длинной в сгенерированное число","");
while ("x".lenght = "условие")
{
x = prompt("Введите текст длинной в сгенерированное число","");
}
}
Как приравнять к рандомному числу корректно? Из того что я написал он не проверяет
|
|
01.12.2013, 20:06
|
|
Профессор
|
|
Регистрация: 03.05.2011
Сообщений: 848
|
|
Сообщение от YorikoSC
|
function Generate(){
document.getElementById("условие").innerHTML = Math.floor(Math.random() * 44)+1;
document.getElementById("текст").innerHTML = "Введите текст длинной в число.";
var x = prompt("Введите текст длинной в сгенерированное число","");
while ("x".lenght = "условие")
{
x = prompt("Введите текст длинной в сгенерированное число","");
}
}
Как приравнять к рандомному числу корректно? Из того что я написал он не проверяет
|
во-первых, свойство называется не lenght, а length; во-вторых, рандомное сгенеренное число записывайте в переменную, иначе вы никогда не проверите длину вводимой строки на равенство числу
function Generate() {
var random = Math.floor(Math.random() * 44)+1, x;
document.getElementById("условие").innerHTML = random;
document.getElementById("текст").innerHTML = "Введите текст длинной не менее чем "+random+" символов.";
//alert(random);
do {
x = prompt("Введите текст длинной в сгенерированное число ("+random+")","");
}
while (x.length < random)
}
Generate();
|
|
01.12.2013, 20:07
|
Интересующийся
|
|
Регистрация: 27.11.2013
Сообщений: 16
|
|
Огромное вам спасибо
|
|
01.12.2013, 22:25
|
Интересующийся
|
|
Регистрация: 27.11.2013
Сообщений: 16
|
|
function Generate(){
var random = Math.floor(Math.random() * 44)+1, x;
document.getElementById("условие").innerHTML = random;
document.getElementById("текст").innerHTML = "Введите текст длинной в "+random+" символов.";
do
{
x = prompt("Введите текст длинной в сгенерированное число","");
}
while
(x.length != random);
var answer = x;
{
alert(x.charAt(i%2=0).toUpperCase());
}
}
Generate();
Ну не работает оно
Не понимаю я как правильно применить((
Попробовал переписать
function Generate(){
var random = Math.floor(Math.random() * 44)+1, x;
document.getElementById("условие").innerHTML = random;
document.getElementById("текст").innerHTML = "Введите текст длинной в "+random+" символов.";
do
{
x = prompt("Введите текст длинной в сгенерированное число","");
}
while
(x.length != random);
var answer = x.charAt();
if (charAt(i%2=0))
{
return toUpperCase;
}
else
{
return toLowerCase;
{
alert("answer");
}
}
Generate();
Результат тот же
Последний раз редактировалось YorikoSC, 01.12.2013 в 22:42.
|
|
01.12.2013, 22:41
|
|
Профессор
|
|
Регистрация: 03.05.2011
Сообщений: 848
|
|
YorikoSC, откуда взялись скобки?
{
alert(x.charAt(i%2=0).toUpperCase());
}
и естественно нужно обрабатывать (не)четность символов в отдельно цикле...
function Generate() {
var random = Math.floor(Math.random() * 44)+1, x, final_str = "";
document.getElementById("условие").innerHTML = random;
document.getElementById("текст").innerHTML = "Введите текст длинной не менее чем "+random+" символов.";
//alert(random);
do {
x = prompt("Введите текст длинной в сгенерированное число ("+random+")","");
}
while (x.length < random)
for (i=0; i < x.length; i++) { // в цикле перебираем всю полученную строку и собираем новую на основе поставленной задачи
if (i%2) { // если номер очередного символа строки делится на 2 с остатком - нечетный
final_str += x.charAt(i).toUpperCase();
} else { // иначе четный
final_str += x.charAt(i).toLowerCase();
}
}
alert(final_str);
}
Generate();
Последний раз редактировалось lord2kim, 01.12.2013 в 22:43.
|
|
01.12.2013, 22:59
|
Интересующийся
|
|
Регистрация: 27.11.2013
Сообщений: 16
|
|
Сообщение от lord2kim
|
YorikoSC, откуда взялись скобки?
{
alert(x.charAt(i%2=0).toUpperCase());
}
и естественно нужно обрабатывать (не)четность символов в отдельно цикле...
function Generate() {
var random = Math.floor(Math.random() * 44)+1, x, final_str = "";
document.getElementById("условие").innerHTML = random;
document.getElementById("текст").innerHTML = "Введите текст длинной не менее чем "+random+" символов.";
//alert(random);
do {
x = prompt("Введите текст длинной в сгенерированное число ("+random+")","");
}
while (x.length < random)
for (i=0; i < x.length; i++) { // в цикле перебираем всю полученную строку и собираем новую на основе поставленной задачи
if (i%2) { // если номер очередного символа строки делится на 2 с остатком - нечетный
final_str += x.charAt(i).toUpperCase();
} else { // иначе четный
final_str += x.charAt(i).toLowerCase();
}
}
alert(final_str);
}
Generate();
|
Исправил чуток ваш код:
function Generate(){
var random = Math.floor(Math.random() * 44)+1, x;
var answer = new String()//добавил новое значение - без него ругалось.
document.getElementById("условие").innerHTML = random;
document.getElementById("текст").innerHTML = "Введите текст длинной в "+random+" символов.";
do
{
x = prompt("Введите текст длинной в сгенерированное число","");
//отсюда убрал alert - он стопорил процесс, в любом случае.
}
while
(x.length != random);//поставил != т.к. при < большее кол-во символов пропускалось, как верное
for (i=0; i< x.length; i++)
{//перебор полученой строки.
if (i%2) //проверка четности, если делится на 2 без остатка.
{
answer +=x.charAt(i).toUpperCase();
}
else //если не делится.
{
answer +=x.charAt(i).toLowerCase();
}
}
alert(answer);
}
Generate();
В общем большое спасибо без вас бы кумекал половину ночи
|
|
01.12.2013, 23:19
|
|
Профессор
|
|
Регистрация: 03.05.2011
Сообщений: 848
|
|
YorikoSC,
Сообщение от YorikoSC
|
while
(x.length != random);//поставил != т.к. при < большее кол-во символов пропускалось, как верное
|
так у вас в задании написано...
Сообщение от YorikoSC
|
<p>Задание 1 вариант 4: Написать скрипт, в котором будет предлагаться ввести текст размером не
менее случайного сгенерированного программно числа (генерировать в диапазоне от 1 до 45) символов...
|
Сообщение от YorikoSC
|
if (i%2) //проверка четности, если делится на 2 без остатка.
|
"если делится на 2 с остатком..."
Сообщение от YorikoSC
|
var answer = new String()//добавил новое значение - без него ругалось.
document.getElementById("условие").innerHTML = random;
document.getElementById("текст").innerHTML = "Введите текст длинной в "+random+" символов.";
|
; не забывайте в конце строки и не давайте элементам значения id и name атрибутов кирилицей...
Последний раз редактировалось lord2kim, 01.12.2013 в 23:23.
|
|
|
|