Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*це функція main {
- а = спитатиЛюдинуПроРозмірМасиву() // маємо повернути із функції значення
- створити масив м
- спитатиЛюдинуПроВсіЕлементиМасиву(м, а)
- вивестиНаЕкранКрасивоМасив(м)
- реверснутиМасив(м)
- написати "ось реверснутий масив:"
- вивестиНаЕкранКрасивоМасив(м)
- }
- */
- let arrSize; //це глобальна змінна, глобальні змінні - подлі та підступні бо загально доступні , майже завжди бажано уникати, але існують винятки.
- // в цьому завданні не обов'язково уникати, та хоча б присвоїмо їй значення явно, а потім передамо як параметр, саме як в ТЗ
- let arr = []; // доречі це теж глобальна змінна
- function getSize() {
- let size; // це локальна для цієї функції змінна
- do {
- size = +prompt("Яка довжина масиву");
- } while (size <= 0)
- return size; // тут ми повертаємо значення, тобто там, де буде викликатися функція вона буде повертати число
- }
- function createArr(array, size) { // тут ви масив заповнюєте, тож вдаліше ім'я fillArr, додав параметри, куди передамо
- // при виклику функції якийся масив та його розмір. (звісно можна тільки масив, але ТЗ хоче розмір окремо)
- let n = 0;
- for (let i = 0; i < size; i++) {
- array[i] = prompt(`Яке значення елементу масиву array[${n}] ?`);
- n++;
- }
- console.log();
- // важливо розуміти, чому звідси не повертаємо заповнений масив: return array; , а все одно він заповниться.
- }
- function bubbleSort(arr) { // параметр це локальна для функції змінна, куди передається значення при виклику функції
- // тобто тут ім'я арр це співпадіння з глобальним, внутрі функції буде використовуватися значення локальної змінної -
- // точніше параметру, а точніше те, що ми туда передамо при викликові функції.
- for (let j = arr.length - 1; j > 0; j--) {
- for (let i = 0; i < j; i++) { // можна зупиняти коли за один прохід не виконано жодної зміни
- if (arr[i] > arr[i + 1]) {
- let temp = arr[i];
- arr[i] = arr[i + 1];
- arr[i + 1] = temp;
- }
- }
- }
- }
- function showArr(array) { //
- //arr.sort()
- for (let i = 0; i < array.length; i++) {
- if (i == array.length - 1) {
- console.put(array[i] + ".")
- } else {
- console.put(array[i] + ", ");
- }
- }
- console.log();
- console.log();
- }
- function showMesage(msg) {
- console.log(msg);
- console.log();
- }
- function reversbubbleSort() { // реверснутий це ж просто перевернутий , тобто з кінця до начала.
- // не варто дулювати код, аббревіатура DRY. Малося на увазі написати фунцію, що буде масив "переворачивати" у самому собі,
- // тобто масив [D, R, Y] перетворить у [Y, R, D]. Тоді сотрування навпаки ввзагалі не потрібне, хоча тут сотрування і не було обов'язковим.
- for (let j = arr.length - 1; j > 0; j--) {
- for (let i = 0; i < j; i++) {
- if (arr[i] < arr[i + 1]) {
- let temp = arr[i];
- arr[i] = arr[i + 1];
- arr[i + 1] = temp;
- }
- }
- }
- }
- function showreversArr() {
- //arr.reverse();
- for (let i = 0; i < arr.length; i++) {
- if (i == arr.length - 1) {
- console.put(arr[i] + ".")
- } else {
- console.put(arr[i] + ", ");
- }
- }
- }
- function main() {
- let a = getSize(); // створили локальну для мейну змінну, в неї отримали розмір масиву
- let m = []; // створили локальний для функції мейн масив.
- createArr(m, a); // так заповнимо масив м
- createArr(arr, a); // так заповнимо глоб. масив арр. Масиво передаються за посиланням, тобто передаємо адресу реального масиву.
- bubbleSort(m); // можна і без сортування, реверс лише
- bubbleSort(arr);
- showArr(m);
- showArr(arr); // додавши параметр у функцію вона стає гнучкою та може перевикористовуватися, а при виклику передається аргумент, який приймає параметр.)
- showMesage("ось реверснутий масив");
- reversbubbleSort();
- showreversArr();
- return m; // корисно зрозуміти, чому тут є сенс повертати масив . Це лише для прикладу тут, повертати по ТЗ з мейну нічого не потрібно.
- }
- main(); // можна не отримувати те, що повертає функція (у нашому випадку масив)
- let anotherArr = main(); // а можна отримати
- // тут спробуйте вивести масиви м, арр, еназерАрр
- /* Корисно вміти передавати аргументи до параметрів функцій, та щось повертати з них. Це не завжди потрібно застосовувати,
- але переважно саме так і пишуть функції
- */
- // Гарного коду.
Add Comment
Please, Sign In to add comment