Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Задача. Квадратик із зірочок.
- Вивести на екран квадратик із зірочок, розмір квадрата задається юзером.
- vvedi razmer: 4
- ****
- ****
- ****
- ****
- - юзати for
- - юзати while
- */
- // РІШЕННЯ
- // юзаю for
- // 1 вариант - сырой (не стоит проверять); - добре, що вказали це. Є правило що до зайвого коду, закоментованого чи ні :
- /* його не повинно бути якщо ви передаєте код комусь, або долучаєте його до проекту, тощо,
- звісно у вашой особсистої копії можете зберігати , але там він буде заважати і вам.) */
- let starsNum = prompt('введи размер');
- // let stars = '*';
- for (let i = 1; i <= starsNum; i++) {
- for (let j = 1; j <= starsNum; j++) {
- console.put('*' + '*' + '*' + '*' + '*' + '*' + '*' + '*\n');
- }
- }
- // 2 вариант (немного лучше, но не то) - а цей варіант вже рев'ювати чи ще ні? .. краще б ні...
- let starsNum = prompt('введи размер');
- let stars = '* '; /* іменування змінної має відповідати змісту, якщо це просто символ зірка, то star можна, чи starSymb.
- Але якщо рядок з декількома зірками - то краще starsLine (рядок із зірок) . Це тому, що у множині іменубть масиви та інші штуки,
- де багато (декілька) елементів.*/
- for (let i = 1; i <= starsNum; i++) {
- for (let j = 1; j <= starsNum; j++) { // тут j це число, спочатку 1, далі на кожній ітераціїї збільшуємо на одиницю
- j = stars; // тут ви присваюєте до j строку, що містить зірку та пробіл. тобто число лічильник, що від нього залежить цикл ми втратили.
- console.put(j + j + j + j); // как по-другому указать j, незная заранее размер? стоит ли это делать? /* а що ви тут робите?*/
- j = parseInt(j); // тепер у j ви намагаєтесь покласти число перетворене з зірки з пробілом?! яке воно має бути ? ))
- }
- console.put('\n'); // це команда вивести у рядок (тобто не переводячи строку) символ переведення строки (тобто перевести рстроку)
- // можна просто console.log() - це перевести рядок нічого не виводячи (тільки перевести рядок)
- }
- /* ох, ну чому зі всього що я вам радив ви обрали саме те, що супроводжувалось коментарем:
- "насправді спосіб не дуже, скоріше за все я марно його згадав. Не варто втрачати час." ЧОМУ!?
- я знаю чому - бо він чарівний і схожий на магію, він працює і не зрозуміло як, а значит не треба думати над ним.
- мені дуже жаль, що я надав вам подібний варіант, заплутав вас виходить. але ж то стосувалося іншої задачі, хіба ні?
- і перед тим ми розглянули з вами нормальне рішення, де все було ок, і лише одна претензія до іменування змінної coma.
- Ось той поганий, глупий, недоцільний варіант:
- for (let i = 1; i <= numberN; i++) { // тут і - змінна-лічильник що містить число, і інкрементується
- if (i < numberN) {
- i = i + ', '; // було число - стала строка.
- }
- console.put(i);
- i = parseInt(i); // намагається знов зробити число із строки.
- }
- якщо поміркувати, або залогувати, то можна бачити яким було значення змінної i : 1, "1, ", 1, потімм 2, "2, ", 2 і т.д.
- Тобто до числа ми переводили строкову змінну яка містила число з доданими до нього комою і пробілом, таку строку
- функція parseInt може перевести до числа. Знаєте як? Якщо ні то можна спробувати та погуглити про parseInt.
- Але у вашому коді ви намагаєтеся перевести до числа строку що містить зірку та пробіл, звісно це не можливо, тому
- parseInt на такий аргумент поверне NaN (не число - not a number), після того цикл фор скінчиться, бо його умова
- j <= starsNum; поверне false.
- Таким чином ваш код можна спростити до такого: */
- let starsNum = prompt('введи размер');
- let stars = '* ';
- for (let i = 1; i <= starsNum; i++) {
- let j = stars;
- console.put(j + j + j + j);
- console.put('\n');
- }
- // 3 вариант
- let starsNum = prompt('введи размер');
- let stars; // обьявил переменную stars в начале перед циклом.
- for (let i = 1; i <= starsNum; i++) {
- for (let j = 1; j <= starsNum; j++) {
- stars = '* '; // сохранил в переменную строку '* '.
- console.put(stars);
- stars = parseInt(stars); // возможен ли другой вариант вывода квадрата вместо parseInt?
- /* а для чого ви тут використовуєте parseInt ? навіщо попередній рядок взагалі? Може просто видалити його?*/
- }
- console.put('\n');
- }
- // 4 вариант - переменная stars со строкой '* ' обьявлена в цикле.
- let starsNum = prompt('введи размер');
- for (let i = 1; i <= starsNum; i++) {
- for (let j = 1; j <= starsNum; j++) {
- let stars = '* '; // переменная stars со строкой '* ' обьявлена в цикле.
- console.put(stars);
- stars = parseInt(stars); // ну навіщо вам цей рядок, ну як так, невже це такий вплив того, що він був у тому прикладі.. ох..((
- }
- console.put('\n');
- }
- // вважаю, що не здатен вам допомогти, тоді вже нашкоджу ще більше. Ось все, що треба для квадрата.
- let starsNum = prompt('введи размер');
- let star = '* ' // не обов'язково створювати змінну, можна просто символ виводити. але зі змінною навіть краще.
- for (let i = 1; i <= starsNum; i++) {
- for (let j = 1; j <= starsNum; j++) {
- console.put(star); // console.put('*'); // якщо не створювати змінну star, а просто виводити зірку.
- }
- console.log();
- }
- // юзаю while - вибачте, побачив там parseInt і вже не можу далі дивитися .. вибачте..
- let starsNum = prompt('введи размер');
- let stars; // обьявил переменную stars в начале перед циклом.
- let i = 1;
- while (i <= starsNum) {
- i++;
- let j = 1;
- while (j <= starsNum) {
- j++;
- stars = '* ';
- console.put(stars);
- stars = parseInt(stars);
- }
- console.put('\n');
- }
Advertisement
Add Comment
Please, Sign In to add comment