Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //це функція main {
- // а = спитатиЛюдинуПроРозмірМасиву()
- // створити масив м
- // спитатиЛюдинуПроВсіЕлементиМасиву(м, а)
- // вивестиНаЕкранКрасивоМасив(м)
- // реверснутиМасив(м)
- // написати "ось реверснутий масив:"
- // вивестиНаЕкранКрасивоМасив(м)
- // }
- function askSizeArr () { /* назва метода це має бути дієслово, що каже нам людською мовою що робить цей метод (метод в java = функція)
- є деякі шаблонні іменування, наприклад отримати щось getШось , встановити значення чомусть setЩось, при цьому ми не
- описуємо в іменуванні що і як ми робимо, чи що намагаємось зробити, а пишемо кінцеву дію. Тут буде норм:
- отриматиРозмірМасиву*/
- return +prompt ('Якій розмір масиву?')
- }
- function askElemArr (array, size) { // заповнитиМасив. Ви ж знаєте, що іменування параметрів у ваших руках?)
- for (let i = 0; i < size; i++) {
- array[i] = +prompt ('Назвіть елементи масиву?')
- }
- }
- function showArr(m, msg = '') { // норм іменування, ще можна display // поки не звертайте уваги на function showArr(m, msg = '')
- let i = 0;
- let nStr = '';
- while (i < (m.length - 1)) {
- nStr = nStr + m[i] + ', ' // можна скорочено nStr += m[i] + ', '; те що зліва від равно якби "переноситься" направо.)
- i++
- }
- if (i === (m.length - 1)) {
- nStr = nStr + m[i] + '\n'
- }
- console.put (nStr);
- }
- function reverseArr(m) {
- /*let i;
- let j; зручно прям у форі створити, якщо вони вам тільки там і потрібні, а після ні.*/
- let other; // іменування не допомагає зрозуміти його призначення, якщо це просто тимчасова змінна , то можна temp (temporary)
- for (let i = 0, j = (m.length - 1); i < j; i++, j--) { /* круто придумали! я коли писав, що інші масиви тут не створюються
- не подумав, що проміжний тут може бути потрібен, але ви мене підстахували.) */
- other = m[i];
- m[i] = m[j];
- m[j] = other;
- }
- /* реверс з проміжним масивом виглядав би так:
- let tempArray = []; // створили ще один проміжний масив
- for (let i = 0; i < m.length; i++) {
- tempArray[i] = m[m.length - 1 - i]
- }
- після цього , нам потрібно замінити той масив що на нього зараз вказує параметр m на новий - реверснутий -
- tempArray. І це ми зробити можемо таким просвоюванням
- m = tempArray;
- Але чи зміниться при цьому той масив в мейні що ми передали посилання на нього сюди до функції?
- Спробуйте, поміркуйте чому так, підказка нижче. Як тоді зробити щоб в мейн потрапив звідси реверснутий масив */
- }
- function main() {
- let a = askSizeArr (); // ми хотім не спитати, а нам потрібно отримати, може щось суворіше: getArraySize ?
- let m = []; // ну то в псевдокоді до задачі супероптимальний кодер надав такі іменування, нам тут можна нормальні давати.)
- askElemArr (m, a); // setElements, setEveryElements, setArrayElements , fillArray - я за останню
- showArr(m);
- reverseArr(m);
- console.log("Oсь реверснутий масив: "); /* пропоную доробити функцію showArr(m, msg) щоб вона вміла отримувати
- другим параметром msg строкове повідомлення, що буде виводитися перед тим, що передано першим параметром
- тоді виклик буде showArr(m, "Oсь реверснутий масив: ");
- А ще можна зробити параметр із значенням за замовчуванням.)
- Тобто щоб попередній виклик не було потреби змінювати: якщо передали меседж - вивевся він, а не передали нічого,
- то виведеться той, що за замовчуванням. Хоча в java не так це буде робиться, всеж може бути цікаво. */
- showArr(m);
- }
- main();
- /* це вже нижче, ось та підказка :*/
- let arr = [1, 2, 3];
- let brr = arr // створили ще одне посилання на той самий 1,2,3 масив. Не створили новий масив.
- brr[0] = 888; // тепер ми можемо змінювати масив 1,2,3 звертраючись до нього за будь-яким з посилань: arr чи brr
- arr[1] = 777; // маємо тепер 888,777,3 масив замість 1,2,3
- // а тепер увага:
- brr = [4, 5, 6]; // що ми зробили з ?? Поміркуйте... а потім подивіться що стало з нашим 888,777,3 масивом через arr
- console.log(`arr = ${arr}`); // ось він
- console.log(`brr = ${brr}`); /* тобто у рядку brr = [4, 5, 6]; - ми поклали до brr посилання на новий масив, "відвязавши"
- старий а не змінивши його. Змінює коли міняємо елементи, а коли присвоюємо чи новий (як у нас) чи пустий (brr = []) то
- це посилання більше не вказує на той, що раніше, а тепер воно вказує на інший.*/
- // Гарного коду!)
Add Comment
Please, Sign In to add comment