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:)


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