Browse Source

Циклы

oleg 6 năm trước cách đây
mục cha
commit
c8bc7d13bf
3 tập tin đã thay đổi với 394 bổ sung0 xóa
  1. BIN
      JS_02.03.2018/diagram.png
  2. 82 0
      JS_02.03.2018/index.html
  3. 312 0
      JS_02.03.2018/script.js

BIN
JS_02.03.2018/diagram.png


+ 82 - 0
JS_02.03.2018/index.html

@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+	<meta charset="UTF-8">
+	<title>Java Script 1</title>
+	<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
+	<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+	
+	<div class="task">
+		<h2>Задача 1</h2>
+		<p>Нарисуйте блок-схему, иллюстрирующую алгоритм приготовления чашечки чая.</p>
+		<img src="diagram.png" alt="Тут должна быть Блок-схама">
+	</div>
+	<div class="task">
+		<h2>Задача 2</h2>
+		<p>Сформируйте строку вида ".#.#.#.#.#." чередованием символов . и # с помощью цикла for.</p>
+		<div class="button" onclick="exercises(2)">Запустить задачку</div>
+	</div>
+	<div class="task">
+		<h2>Задача 3</h2>
+		<p>Напишите цикл с шагом 1, в теле которого распечатываются квадраты каждого четного значения счетчика.</p>
+		<div class="button" onclick="exercises(3)">Запустить задачку</div>
+	</div>
+	<div class="task">
+		<h2>Задача 4</h2>
+		<p>Напишите цикл с confirm, который продолжается при нажатии на Отмена и прерывается при нажатии на Ok.</p>
+		<div class="button" onclick="exercises(4)">Запустить задачку</div>
+	</div>
+	<div class="task">
+		<h2>Задача 5</h2>
+		<p>В окно prompt вводится число. Напишите цикл, в котором суммируются все нечетные числа до диапазона, введенного пользователем. Результат отобразите в окне alert.</p>
+		<div class="button" onclick="exercises(5)">Запустить задачку</div>
+	</div>
+	<div class="task">
+		<h2>Задача 6</h2>
+		<p>Напишите бесконечный цикл, который прерывается при помощи команды break, когда Math.random() > 0.9. Выведите в окно alert случайное число, прервавшее цикл, и количество итераций цикла.</p>
+		<div class="button" onclick="exercises(6)">Запустить задачку</div>
+	</div>
+	<div class="task">
+		<h2>Задача 7</h2>
+		<p>Используя вложенные циклы, распечатайте на странице значения таблицы умножения: 1х1=1, 1x2=2 ... 2x1=2, 2x2=4...</p>
+		<div class="button" onclick="exercises(7)">Запустить задачку</div>
+	</div>
+	<div class="task">
+		<h2>Задача 8</h2>
+		<p>Используя вложенные циклы, сформируйте строку чередованием символов . и # таким образом, чтобы получилась шахматный узор. Для перевода строки используйте символ \n. Код должен поддерживать легкое изменение размеров доски.<br>
+		.#.#.#.#.#.#<br>
+		#.#.#.#.#.#.<br>
+		.#.#.#.#.#.#<br>
+		#.#.#.#.#.#.<br>
+		.#.#.#.#.#.#
+		</p>
+		<div class="button" onclick="exercises(8)">Запустить задачку</div>
+	</div>
+	<div class="task">
+		<h2>Задача 9</h2>
+		<p>С помощью цикла for с пустым телом сформируйте строку, представляющую из себя ряд Фибоначчи: 0 1 1 2 3 5 8 13...</p>
+		<div class="button" onclick="exercises(9)">Запустить задачку</div>
+	</div>
+	<div class="task">
+		<h2>Задача 10</h2>
+		<p>Запустите цикл, в котором пользователю предлагается вводить число с клавиатуры, до тех пор, пока не будет нажата Отмена. После выхода из цикла распечатайте количество введенных чисел, их общую сумму и среднее арифметическое.</p>
+		<div class="button" onclick="exercises(10)">Запустить задачку</div>
+	</div>
+	<div class="task">
+		<h2>Level UP task</h2>
+		<p>Сформируйте строку в виде треугольника-елочки:<br>
+		-----#-----<br>
+		----###----<br>
+		---#####---<br>
+		--#######--<br>
+		-#########-<br>
+		###########
+		</p>
+		<div class="button" onclick="exercises(11)">Запустить задачку</div>
+	</div>
+
+
+</body>
+</html>

+ 312 - 0
JS_02.03.2018/script.js

@@ -0,0 +1,312 @@
+$(document).ready(function() {
+
+	$(".button").css({                  // Стилизация кнопки для запуска задач
+		"display": "inline-block",
+		"background": "grey",
+		"cursor": "pointer",
+		"padding": "10px",
+		"margin": "20px 0 0 20px",
+		"border-radius": "10px",
+		"color": "white"
+	});
+
+	$(".task").css({
+		"width": "50%",
+		"border-bottom": "1px solid black",
+		"box-sizing": "border-box",
+		"padding": "10px"
+	});
+
+	$(".task:first-child img").css("width", "1000px");
+
+});
+
+	
+
+//   Задачки
+
+function exercises(par) {
+
+	var arr = [task_2, task_3, task_4, task_5, task_6, task_7, task_8, task_9, task_10, task_11];
+		
+	arr[par-2]();
+
+};
+
+
+// 2. Сформируйте строку вида ".#.#.#.#.#." чередованием символов . и # с помощью цикла for.
+
+// ET = 3 min;
+// AT = 5 min;
+
+function task_2() {
+
+	var l = +prompt("Введите длинну строки:"),
+		str = "";
+
+
+	for(var i = 1; i <= l; i++) {
+
+		if (i%2) {
+			str = str + ".";
+		} else {
+			str = str + "#";
+		}
+	}
+
+	alert(str);
+}
+
+
+
+// 3. Напишите цикл с шагом 1, в теле которого распечатываются квадраты каждого четного значения счетчика.
+
+// ET = 4 min;
+// AT = 3 min;
+
+function task_3() {
+
+	for(var i = 0; i < 10; i++) {
+
+		if ( !(i%2) && i != 0) {
+			alert(Math.pow(i,2));
+		}
+	}
+}
+
+
+
+// 4. Напишите цикл с confirm, который продолжается при нажатии на Отмена и прерывается при нажатии на Ok.
+
+// ET = 7 min;
+// AT = 2 min;
+
+function task_4() {
+
+	while(true) {
+		if (confirm("Нажмите что-нибудь")) {
+			break;
+		} else {
+			continue;
+		}
+	}
+}
+
+
+// 5. В окно prompt вводится число. Напишите цикл, в котором суммируются все нечетные числа до диапазона, 
+// введенного пользователем. Результат отобразите в окне alert.
+
+// ET = 5 min;
+// AT = 6 min;
+
+function task_5() {
+
+	var num = +prompt("Введите число"),
+		sum = 0;
+
+	for (var i = 0; i <= num; i++) {
+
+		if (i%2) {
+			sum = sum + i;
+		}
+	}
+
+	alert(sum);
+}
+
+
+
+// 6. Напишите бесконечный цикл, который прерывается при помощи команды break, когда Math.random() > 0.9. 
+// Выведите в окно alert случайное число, прервавшее цикл, и количество итераций цикла.
+
+// ET = 5 min;
+// AT = 4 min;
+
+function task_6() {
+
+	for(var i = 0; ; i++) {
+
+		var a = Math.random();
+
+		if (a > 0.9) {
+			alert(a+", "+i);
+			break;
+		}
+	}
+}
+
+
+
+// 7. Используя вложенные циклы, распечатайте на странице значения таблицы умножения: 1х1=1, 1x2=2 ... 2x1=2, 2x2=4... 
+
+// ET = 7 min;
+// AT = 7 min;
+
+function task_7() {
+
+	var main_str = "";
+
+	for(var i = 1; i <=9; i++) {
+
+		var str = "";
+
+		for(var j = 1; j <= 9; j++) {
+
+			str = str + i + "x" + j + "=" + (i*j) + " , ";
+		}
+
+		main_str = main_str + str + "\n";
+	}
+
+	alert(main_str);
+}
+
+
+
+
+
+// 8. Используя вложенные циклы, сформируйте строку чередованием символов . и # таким образом, чтобы получилась 
+// шахматный узор. Для перевода строки используйте символ \n. Код должен поддерживать легкое изменение размеров доски.
+// .#.#.#.#.#.#
+// #.#.#.#.#.#.
+// .#.#.#.#.#.#
+// #.#.#.#.#.#.
+// .#.#.#.#.#.#
+
+// ET = 10 min;
+// AT = 8 min;
+
+function task_8() {
+
+	var a = +prompt("Введите ширину доски:"),
+		b = +prompt("Введите высоту доски:"),
+		str = "";
+
+	for(var i = 1; i <= b; i++) {
+
+		if (i%2) {
+
+			for(var j = 1; j <= a; j++) {
+
+				if (j%2) {
+					str = str + ".";
+				} else {
+					str = str + "#";
+				}
+			}
+		} else {
+
+			for(var j = 1; j <= a; j++) {
+
+				if (j%2) {
+					str = str + "#";
+				} else {
+					str = str + ".";
+				}
+			}
+		}
+
+		str = str + "\n";
+	}
+
+	alert(str);
+}
+
+
+
+// 9. С помощью цикла for с пустым телом сформируйте строку, представляющую из себя ряд Фибоначчи: 0 1 1 2 3 5 8 13... 
+
+// ET = 6 min;
+// AT = 6 min;
+
+function task_9() {
+
+	for(var i = 0, j = 1, str=""; i <= 100; str = str + i + " " + j + " ", i = j + i, j = j+i ) {}
+
+	alert(str);
+}
+
+
+
+// 10. Запустите цикл, в котором пользователю предлагается вводить число с клавиатуры, до тех пор, 
+// пока не будет нажата Отмена. После выхода из цикла распечатайте количество введенных чисел, 
+// их общую сумму и среднее арифметическое.
+
+// ET = 7 min;
+// AT = 15 min;
+
+function task_10() {
+
+	var sum = 0;
+
+	for(var i = 0; ; i++) {
+
+		var num = prompt("Введите число");
+
+		if (num == null) {
+			alert("Чисел введено: " + i + "\nИх сумма: " + sum + "\nСреднее арифметическое: " + sum/i);
+			break;
+		}
+
+		sum = sum + +num;
+	}
+}
+
+
+
+
+// LEVEL UP 
+
+// Сформируйте строку в виде треугольника-елочки:
+
+// .....#.....
+// ....###....
+// ...#####...
+// ..#######..
+// .#########.
+// ###########
+
+// AT = 70 min;
+
+
+function task_11() {
+
+	var h = prompt("Какой высоты хотите елку?"),
+		str = "",
+		l = h*2 - 1;    // Длинна основания елки
+
+	for(var i = 1; i <= h; i++) {
+
+		for(var j = 1; j <= l; j++) {
+
+			if (j <= Math.floor(l/2) - (i-1) ) {
+
+				str = str + "-";
+
+			} else 
+
+			if ( (j > Math.floor(l/2)-(i-1)) && (j <= Math.floor(l/2)-(i-1) + (2*i-1)) ) {
+
+				str = str + "#";
+
+			} else 
+
+			if (j > Math.floor(l/2)-(i-1) + (2*i-1)) {
+
+				str = str + "-";
+			
+			}
+		}
+
+		str = str + "\n";
+	}
+
+	alert(str);
+}
+
+
+
+
+
+
+