Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Решаем задачи в javascript (https://javascript.ru/forum/misc/28130-reshaem-zadachi-v-javascript.html)

franzee 08.05.2012 21:10

Решаем задачи в javascript
 
Такие дела, надо в кратчайшие сроки решать несколько задач, буду писать сюда решение, надеюсь на вашу помощь.

Задача 1.

Используя оператор while, на страницу сгенерировать таблицу из нескольких строк по четыре ячейки в строке. Содержимое каждой первой ячейки строки - число, вводимое с клавиатуры; содержимое остальных ячеек соответствует их номеру в строке. Генерацию строк таблицы продолжить до тех пор, пока произведение введенных чисел не достигнет 1000.

Здесть не могу додумать последний пункт: Генерацию строк таблицы продолжить до тех пор, пока произведение введенных чисел не достигнет 1000.


<script type="text/javascript">

		var num, num1=0, sum, row=0;

		document.write("ПРИВЕТ <br>");

		document.write('<table border="1">');

		do {
			document.write('<tr>');
				for ( cell = 0;  cell < 4; cell++ ){

					if (cell == 0){

					num = window.prompt('Введите первый элемент '+row+' строки');
					num = Number(num);
					num1 = sum;
					if (row == 0) {num1 = num1 + num;}
					if (row > 0) {sum=num*num1}
						document.write('<td>'+ num +'</td>');
					}
					else{
						document.write('<td>'+ cell +'</td>');
					}
					
				}
			document.write('</tr>');

			row = row + 1;

		} while (sum < 1000);

		document.write('</table>');

		document.write('Пока');

		</script>

franzee 08.05.2012 21:50

А вот проде бы разобрался, посмотрите пожалуйста, может можно реализовать лучше?

<script type="text/javascript">

		var num, num1=0, sum=0, row=0;

		document.write("ПРИВЕТ <br>");

		document.write('<table border="1">');

		do {
			document.write('<tr>');
				for ( cell = 0;  cell < 4; cell++ ){

					if (cell == 0){ // если первый элемент строки записываем туда пользовательское значение

					num = window.prompt('Введите первый элемент '+row+' строки');
					num = Number(num);
					//num1 = sum; // запоминаем предыдущее произведение чисел
					//if (row == 0) {num1 = num1 + num;} // если цикл работает впервый раз, запоминаем число введеное впервый раз
					//if (row > 0) {sum=num*num1} // 


					if (row == 0) {num1 = num;} // если первая строка, запоминаем значение
					if (row != 0) // если строка не первая, т.е. все последующие, начинаем обрабатывать 
					{
						sum = num*num1; // сумма произведения чисел в первых строках
						num1 = sum; // запоминаем сумму произвед
					}



						document.write('<td>'+ num +'</td>');
					}
					else{ // если не первый элемент, то записываем туда их номера в порядке следования
						document.write('<td>'+ cell +'</td>');
					}
					
				}
			document.write('</tr>');

			
			

			row = row + 1;

		} while (row > 0 && sum < 1000);

		document.write('</table>');

		document.write('Пока');

		</script>

franzee 09.05.2012 00:55

Задача 2.

Ввести с клавиатуры три целых числа. При помощи оператора switch реализовать меню, которое позволит выполнять по выбору пользователя одну из следующих альтернатив: 1) определить и вывести наименьшее их них 2) определить и вывести два меньших их них 3) вычислить среднее арифметическое. Предусмотреть возможность выхода из программы без выполнения указанныз действий.

Вот написал код только немогу понять почему картинка не уменьшается?

<script type="text/javascript">

		document.write("ПЗ-2 Вар. 11. А)<br>");

		var a, g, h, i, x=800, y=600;

		document.write('<img height="'+ y +'" width="'+ x +'" src="img/Nature_Beach_Beach_005125_.jpg"><br>');

			g = window.prompt('Введите g элемент');
			g = Number(g);

			h = window.prompt('Введите h элемент');
			h = Number(h);

			i = window.prompt('Введите i элемент');
			i = Number(i);

			if (i < g*2 || h != 0) { g = g-1; x = x/2; y = y/2; }
			else { document.write ('<br><h3>Переменной g не повезло!</h3>'); }

			document.write ('<br>переменная g равна: '+g);


		</script>

franzee 09.05.2012 01:36

--

Gvozd 09.05.2012 05:15

franzee,
И что, вы таки думаете, что будем сидеть и заместо вас(нерадивого студента) решать ваши задачи, чтобы вы могли получить диплом по вашей специальности, не уча и не обладая необходимыми знаниями?

Представьте что врач который будет лечить вас, или ваших родителей, учится по такому же принципу.
По принципу "я нихуя не шарю. спишу у друга, и получу диплом".
А потом с этими знаниями идет лечить людей.
Хотите у него лечится? :)

Конечно, профессия программиста(особенно в области веб) с меньшей вероятностью калечит здоровье и жизни людей, и к тому же в отличии от хирурга во время операции на сердце, программист может пойти почитать справочник.

Да, программистом можно быть и не зная всего на 100%(в этой динамичной области это вообще трудно, если не сказать что невозможо), но надо как минимум знать азы, уметь анализировать(в частности думать как думает компьютер, выполняя вашу программу), и уметь находить ту информацию, которую вы еще не знаете, и использовать ее, и усваивать.

Тем кто неспособен на эти действия - не место в этой профессии.

melky 09.05.2012 06:51

Цитата:

Сообщение от Gvozd
По принципу "я нихуя не шарю. спишу у друга, и получу диплом".

да у нас так половина потока учится (я отношусь к другой половине, "тут схалявил, тут сделал" - учёба по пути меньшего сопротивления)

Gvozd 09.05.2012 10:30

Цитата:

Сообщение от melky
я отношусь к другой половине, "тут схалявил, тут сделал" - учёба по пути меньшего сопротивления

вы считаете это особым поводом для гордости?
В любом случае изучение основ программирования - не то место, где нужно халявить, учась программированию

Kolyaj 09.05.2012 10:43

Цитата:

Сообщение от Gvozd
профессия программиста(особенно в области веб) с меньшей вероятностью калечит здоровье и жизни людей

Не знаю, моё здоровье калечит.

Dim@ 09.05.2012 15:46

:) не хочу присоединяться к мнению остальных(ведь челевек только помощи просит)
var num, sum=1, row=0;//инициализируем переменные, переменная sum изначально должна являться числом
document.write("ПРИВЕТ <br>");
document.write('<table border="1">');
do {
document.write('<tr>');
for ( cell = 0;  cell < 4; cell++ ){
if (cell == 0){
num = window.prompt('Введите первый элемент '+row+' строки');
num = Number(num);
document.write('<td>'+ num +'</td>'); 
  sum *= num   //sum изменяется каждый раз после ввода числа
}
else{
document.write('<td>'+ cell +'</td>');
}
           
}
document.write('</tr>');
row = row + 1;
} while (sum < 1000);
document.write('</table>'); 
document.write('Пока');

вот и все :)

Dim@ 09.05.2012 15:56

Задача 2.
Да потому что вы написали строку создающюю изображение до изменения x и y
document.write('<img height="'+ y +'" width="'+ x +'" src="img/Nature_Beach_Beach_005125_.jpg"><br>');
это надо написать после промптов и if с else:)

melky 09.05.2012 16:40

Цитата:

Сообщение от Gvozd (Сообщение 173383)
вы считаете это особым поводом для гордости?
В любом случае изучение основ программирования - не то место, где нужно халявить, учась программированию

халявлю как раз для обучения программированию. я учусь сейчас на материаловеда... потом получу ещё одно высшее, программиста, и тогда буду работать программистом.

Gvozd 09.05.2012 16:47

Цитата:

Сообщение от melky
халявлю как раз для обучения программированию.

я вижу как раз обратное, как вы вместо того чтобы самостоятельно и полностью выполнить базовые учебные задания( самостоятельное нахождение ошибок в собственном коде является неотъемлемой и важной частью их выполнения), начали просить выполнить их за вас.
И чему вы рассчитываете ранучится в таком случае?
Цитата:

Сообщение от melky
я учусь сейчас на материаловеда... потом получу ещё одно высшее, программиста, и тогда буду работать программистом.

Зачем вы учитесь на материаловеда, если работать хотите программистом?
Зачем терять попусту драгоценное время?
Вы наверно из богатой семьи, и привыкли чтобы вас всем обеспечивали родители, раз вы можете себе позволить не работать до 25-26 лет, и платить за второе высшее образование?

melky 09.05.2012 16:50

Gvozd, вы меня не путаете ли с топик стартером ?)

Gvozd 09.05.2012 16:56

Цитата:

Сообщение от melky
Gvozd, вы меня не путаете ли с топик стартером ?)

Упс!
Так и есть.
В любом случае к Вам остается вопрос о том зачем учится на материаловеда, чтобы потом учится на программиста, чтобы потом работать программистом?

melky 09.05.2012 17:08

Цитата:

Сообщение от Gvozd (Сообщение 173437)
Упс!
Так и есть.
В любом случае к Вам остается вопрос о том зачем учится на материаловеда, чтобы потом учится на программиста, чтобы потом работать программистом?

есть тут несколько причин :
  • я хочу иметь 2 высших, одно - для запасного случая. да и это ещё никому не вредило
  • я за 11 класс изучил больше половины того, что преподается в ВУЗах, в отношении программирования
  • в наших краях нет престижного ВУЗа, где учили бы программисту
  • второе образование будет быстрым (и, к сожалению, платным)
тем более, после того, как мне многие друзья\преподаватели\форум чане рассказали про то, как там учат, появилось желание остаться программистом-самоучкой.

тем более, как можно преподавать JS в ВУЗах, если язык очень быстро развивается, а преподавателей в некотороых ВУЗах редко, или никогда, отправляют на курсы повышения квалификации? только, если Core учить.. но что там учить?

nerv_ 09.05.2012 17:14

Цитата:

Сообщение от Gvozd
Конечно, профессия программиста(особенно в области веб) с меньшей вероятностью калечит здоровье и жизни людей, и к тому же в отличии от хирурга во время операции на сердце, программист может пойти почитать справочник.

Да, программистом можно быть и не зная всего на 100%(в этой динамичной области это вообще трудно, если не сказать что невозможо), но надо как минимум знать азы, уметь анализировать(в частности думать как думает компьютер, выполняя вашу программу), и уметь находить ту информацию, которую вы еще не знаете, и использовать ее, и усваивать.

правильные мысли
Цитата:

Сообщение от Dim@
не хочу присоединяться к мнению остальных(ведь челевек только помощи просит)

сделай за меня на халяву - это то, о чем просит тс. Располагаете временем/знаниями и готовы бесплатно помочь? Я Вам мешать не буду )
Цитата:

Сообщение от Gvozd
Зачем вы учились на ..., если работать хотите программистом?

этот вопрос можно задать и мне. Рассуждения типа "так получилось" будут выглядеть нелепой отмазкой, поэтому скажу, что не знал о том, что программировать настолько классно, пока не попробовал. А к той профессии на которую учился, интерес угас еще на 1-ом курсе ВУЗ'а.
Так что теперь я недоспециалист и недопрограммист, приятно познакомится :D
Второе высшее получать не собираюсь (официально), занимаюсь самообразованием )

Dim@ 09.05.2012 19:02

Цитата:

сделай за меня на халяву - это то, о чем просит тс. Располагаете временем/знаниями и готовы бесплатно помочь? Я Вам мешать не буду )
конечно я располагаю временем :lol: (всего-то 13 лет), и знаниями тоже располагаю :) надо только хорошую литературу и стремление к програмированнию:yes:

franzee 10.05.2012 01:56

Dim@, спасибо, так вот оно то что искал, а я чуть голову не сломал, знал что решени примерно такое)
11 sum *= num //sum изменяется каждый раз после ввода числа
Насчет второй задачи так и сделал, но смутила постановка задачи.

сделай за меня на халяву - это то, о чем просит тс., не совсем, я просто хотел чтобы люди на этом форуме знающие javascript помогли , а не решили задачу за меня (хотя для кого-то одно и тоже), хотя бы ткнули откуда копать.

Насчет времени, знаний и бабла со всеми согласен, но ведь это одна из функций форума помогать другим.


Часовой пояс GMT +3, время: 01:44.