Основы программирования. Часть 1.

Ссылка на прошлую часть: http://pikabu.ru/story/_3219983
Основы программирования. Часть 1. Ссылка на прошлую часть: <a href="http://pikabu.ru/story/osnovyi_programmirovaniya_chast_0_3219983">http://pikabu.ru/story/_3219983</a>
Вы смотрите срез комментариев. Показать все
8
Автор поста оценил этот комментарий
Почему, мистер Андерсон, почему? Во имя чего? Что Вы делаете? Зачем, зачем склеиваете длиннопост? Зачем продолжаете клепать туториалы? Неужели Вы верите в какую-то миссию или Вам просто страшно кануть в небытие не оставив после себя даже захудалого мануальчика? Так в чем же миссия, может быть Вы откроете? Это свобода, правда, может быть мир или Вы боретесь за свободу знаний? Иллюзии, мистер Андерсон, причуды восприятия! Хрупкие логические конструкции ветвления слабого кодера, который отчаянно пытается оправдать свое существование: бесцельное и бессмысленное. Но они, мистер Андерсон, как и Матрица, столь же искусственны. Только человек может выдумать скучное и безжизненное понятие "программирование". Вам пора это увидеть, мистер Андерсон, увидеть и понять: Вы не можете победить, продолжать обучать бессмысленно! Почему, мистер Андерсон, почему Вы упорствуете?
раскрыть ветку (43)
8
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (18)
5
Автор поста оценил этот комментарий
Ради плюсов я бы клубничку постил)
раскрыть ветку (16)
7
Автор поста оценил этот комментарий
Я просто захотел выпендриться внезапной картинкой в тему, никаких претензий к тебе нет :D
Иллюстрация к комментарию
1
Автор поста оценил этот комментарий
Видишь, тебя заминусили, пости клубничку =) ну вообще крутой гайд, нам не так понятно объясняли когда на турбопаскале учились, правда на втором пункте я приуныл ибо на работе твои уроки практикую -_-
раскрыть ветку (12)
7
Автор поста оценил этот комментарий
Минуса - это не страшно, потерплю) Главное, что кому-то мои посты помогут)
раскрыть ветку (11)
Автор поста оценил этот комментарий
Не знаю как мне помогают твои посты, но практиковать основы довольно интересно, разбираться как это работает и какая команда что означает
1
Автор поста оценил этот комментарий
Кстати тут вопрос появился
Как сделать чтобы только "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"
раскрыть ветку (9)
2
Автор поста оценил этот комментарий
Этот метод не принимает аргументов. Он просто делает все буквы в строке заглавными.
http://javascript.ru/String/toUpperCase

Вы можете воспользоваться, например, методом replace() и заменять маленькую букву на большую
http://javascript.ru/String/replace
Только не забудьте, что этот метод заменит лишь первое вхождение, если передать первым параметром просто строку. Что бы заменить все совпадения, нужно использовать регулярные выражения.
Почитайте по ссылке в документации, там есть примеры. Заранее предупрежу, регуляные выражения - тема сложная, но интересная.

Ну и сразу код для вас:
"abcdefghijklmnop".replace('c', 'C'); // Заменит только первую букву c

"abcdefghijklmnop".replace(/c/g, 'C'); // Заменит все буквы c
раскрыть ветку (8)
1
Автор поста оценил этот комментарий
Регулярки в массы! Пили тутор по регуляркам!
раскрыть ветку (6)
Автор поста оценил этот комментарий
Если вы решили проблему регулярками, то у вас уже две проблемы.
раскрыть ветку (3)
Автор поста оценил этот комментарий
Какие проблемы? Никаких проблем! Недавно решил заменять все "ето" на "это" (и по совместительству "ету", "етих") в сообщениях ВК:

message = message.replace(/([^а-яa-z]|^)(e|е|ё)([^ ])?(т|t|T|?)([^ ])?([а-яa-z])/img, "$1э$3$4$5$6");

Всё замечательно работает. Правда, периодически наблюдаю слово "эсть", но это ведь не проблема? :D
раскрыть ветку (2)
Автор поста оценил этот комментарий
конэчно нэ проблэма, дарагой!
Автор поста оценил этот комментарий
Сопровождать чужой код набитый регулярками - вот ЭТО боль.
2
Автор поста оценил этот комментарий
Самое то для аудитории пикабу :D
раскрыть ветку (1)
Автор поста оценил этот комментарий

Где продолжение? я все еще жду!

1
Автор поста оценил этот комментарий
лол
"beoblod ay".split('').reverse().join('')
Автор поста оценил этот комментарий
чёт клубничка как то не заходит, давно в горячем не видел.
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Я ее вообще не вижу ибо отключена) Так что могу судить лишь понаслышке)
2
Автор поста оценил этот комментарий
Да ну, всё же просто... У меня мало опыта в программировании, ( а точнее мини-база html и школьный pascal ) но тем не менее всё доступным языком написано. Опасаюсь читать комменты под такими постами, ибо там начинается обсёр дикий, как так?
Автор поста оценил этот комментарий
Блядь, даже не стал читать полностью топик увидев только пример с if. Ну там где аффтор пишет "
если (какую обещали погоду) идентично (солнечную) - зонтик можно не брать, в другом случае зонтик моно брать"
Аффтор (адский сотона) объясни нам как ты хочешь добиться того что (какую обещали погоду) идентично (солнечную)? Как сцуко эти два понятия станут идентичными? Ты всю жизнь во второе условие будешь попадать.
Извините что под топовым, но не хочу что бы народ такую хрень читал.
раскрыть ветку (22)
1
Автор поста оценил этот комментарий
Сцук, действительно. Я на кураже уже начал что-то писать, составил хуе-код и не пошло. За верхний коммент даже стыдно! Проще обучай, автор!
А если знает кто, помогите найти ошибку, и как упростить это вообще? Надеюсь, что поможет кто.

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');
}
раскрыть ветку (19)
2
Автор поста оценил этот комментарий
Итак.
Во-первых, объявление переменных. Если вы хотите объявить несколько переменных одним 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 секунд.

Ну и в-пятых, по сути та же ошибка, только в обратную сторону - в условии вы перепутали сравнение (==) с присваиванием (=).

Надеюсь, что немного прояснил ваши затруднения)
раскрыть ветку (17)
1
Автор поста оценил этот комментарий
Спасибо, но тут же возникли еще затруднения:
1. Как без многочисленных переменных str записать программу;
2. Как тогда работать с TimeOut'ом, если код после этого оператора прорабатывается заранее?
раскрыть ветку (16)
2
Автор поста оценил этот комментарий
1. Вот ваш код (ошибки я поправил):
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);

Кстати, у вас нет проверки на количество корней у уравнения. Как разберетесь с этим, добавьте =)
раскрыть ветку (15)
Автор поста оценил этот комментарий
Спасибо большое.
Автор поста оценил этот комментарий
Вскоре добавлю)
Автор поста оценил этот комментарий
Собственно, вот. Я даже побоялся проверить...
http://imgur.com/HrceyV1
( Чтобы не загружать вас сильно, в форме скрина залил, думаю, что код прочесть проще получится ).
P.S. Сильно вы замахнулись на написание кодов... 2 поста, мы же не Джобсы и Гейтсы...
раскрыть ветку (12)
Автор поста оценил этот комментарий
Зря побоялись. Возможно заметили бы ошибку в логике: у вас ВСЕ действия теперь отложены на минуту. В том числе и показ задания. Дальше даже смотреть не стал - не с компьютера сейчас, неудобно. Попробуйте ещё раз) Вначале у многих с таймером, как и с асинхронностью в принципе, трудности)
раскрыть ветку (11)
Автор поста оценил этот комментарий
Продолжение уже не последует?) Хотелось бы.
раскрыть ветку (10)
Автор поста оценил этот комментарий
Следует обязательно, как только время появится. Завал такой что даже почитать пикабу не успеваю, не то что уж посты писать. Извините что так разочаровывают, но чисто физически не могу :(
раскрыть ветку (9)
Автор поста оценил этот комментарий

Все, кто еще ждут, всё понимают) От себя же, надеюсь, что продолжите постить.

раскрыть ветку (5)
Автор поста оценил этот комментарий

вроде корни счиает.......

но что то мне подсказывает что должно быть не так...


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)} ;

Автор поста оценил этот комментарий

.. прошло два месяца, даже пост про раков появился, а продолжения все нет.. печаль

раскрыть ветку (1)
Автор поста оценил этот комментарий

еще один, ты код то свой хоть проверял? Вот придираются к херне, а такие ошибки шпилят. Ошибок в коде уже достаточно насчитал. Действительно говнокодерами мир полнится. Либо еще один тролль))))

Автор поста оценил этот комментарий

Ты идиот? Кусок кода приведен для примера (для обучения, не для программы и копирования в своих проектах). Новичкам хватит, чтобы получить элементарное представление об условных операторах. Придираешься к мелочам, как школьник, быдло или тролль. Свой вариант выбери сам. Я не хочу сказать, что это лучшее пособие, но уверен, что не знающие вполне смогут разобраться по таким примерам.

Автор поста оценил этот комментарий
А вы перечитайте сначала еще раз! А потом посмотрите что делает "window.prompt();" в жабаскриптах.
1
Автор поста оценил этот комментарий
Прост
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку