Giải bài tập Hàm

Ngôn ngữ Javascript

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180/*1.Viết hàm tính tổng các phần tử có trong mảng giá trị nguyên.
 Ex: SumOfElementsInArray([5, 11, 12, 9, 7, 3, 15, 20, 19, 1, 18, 8, 17, 13, 6, 16, 14, 2, 10, 4]) => 210*/
let a = [5, 11, 12, 9, 7, 3, 15, 20, 19, 1, 18, 8, 17, 13, 6, 16, 14, 2, 10, 4];
let result = SumOfElementsInArray(a);
console.log(result);
function SumOfElementsInArray(a) {
    let sum = 0;
    for (let i = 0; i < a.length; i++) {
        sum = sum + a[i];
    }
    return sum;
}
/*2.Viết hàm tính trung bình cộng của các phần tử có trong mảng giá trị nguyên.
 => AverageOfElementsInArray(arrr)*/
let a = [5, 11, 12, 9, 7, 3, 15, 20, 19, 1, 18, 8, 17, 13, 6, 16, 14, 2, 10, 4];
let n = a.length;
let resultAvg = AverageOfElementsInArray(a);
console.log("The average result of the integer elements: " + resultAvg);
function CountNumberInArray(a) {
    let dem = 0;
    for (let i = 0; i < n; i++) {
        dem++;
    }
    return dem;
}
function AverageOfElementsInArray(a) {
    let sum = 0;
    let kqdem = CountNumberInArray(a);
    for (let i = 0; i < n; i++) {
        sum = sum + a[i];
    }
    return (sum / kqdem);
}
/*3.Viết hàm tính tổng các phần tử ở vị trí lẻ có trong mảng giá trị nguyên.
 => SumOfElementsAtOddIndexInArray(arrr)*/
let a = [5, 11, 12, 9, 7, 3, 15, 20, 19, 1, 18, 8, 17, 13, 6, 16, 14, 2, 10, 4];
let result = SumOfElementsAtOddIndexInArray(a);
console.log(result);
function SumOfElementsAtOddIndexInArray(a) {
    let sum = 0;
    for (let i = 0; i < n; i++) {
        if (i % 2 !== 0) {
            sum = sum + a[i];
        }
    }
    return sum;
}
/*4. Viết hàm:
Tìm chỉ số của số nhỏ nhất (FindMinIndexInArray) trong mảng giá trị nguyên.
Tìm chỉ số của số lớn nhất (FindMaxIndexInArray) trong mảng giá trị nguyên.
Tìm chỉ số của số nhỏ nhất và chỉ số của số lớn nhất (FindMinIndexAndMaxIndexInArray) trong mảng giá trị nguyên.*/
let a = [5, 11, 12, 9, 7, 3, 15, 20, 19, 1, 18, 8, 17, 13, 6, 16, 14, 2, 10, 4];
let n = a.length;
let resultindexofMin = FindMinIndexInArray(a, n);
console.log(resultindexofMin);
let resultindexofMax = FindMaxIndexInArray(a, n);
console.log(resultindexofMax);
let indexOfMinAndMax = FindMinIndexAndMaxIndexInArray(a, n);
console.log(indexOfMinAndMax);
function FindMinIndexInArray(a, n) {
    let min = a[0];
    let vtmin = 0;
    for (let i = 0; i < n; i++) {
        if (min > a[i]) {
            min = a[i];
            vtmin = i;
        }
    }
    return vtmin;
}
function FindMaxIndexInArray(a, n) {
    let max = a[0];
    let vtmax = 0;
    for (let i = 0; i < n; i++) {
        if (max < a[i]) {
            max = a[i];
            vtmax = i;
        }
    }
    return vtmax;
}
function FindMinIndexAndMaxIndexInArray(a, n) {
    let indexOfMin = FindMinIndexInArray(a, n);
    let indexOfMax = FindMaxIndexInArray(a, n);
    return {
        indexOfMin,
        indexOfMax
    };
}
/*5. Viết hàm in tất cả số nguyên tố trong mảng.
 Ex: PrintAllPrimeNumberInArray([5, 11, 12, 9, 18, 7, 3, 15, 20, 19]) => 5, 11, 7, 3, 19
 Ví dụ các số nguyên tố từ 2 đến 100:
 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83,
 89, 97.*/
 let a = [5, 11, 12, 9, 18, 7, 3, 15, 20, 19];
let n = a.length;
console.log("The prime number is: ");
PrintAllPrimeNumberInArray(a, n);
function checkPrimeNumbers(x) {
    let check = false;//dùng flag(cờ hiệu)
    if (x < 2) {
        return false;//không phải số nguyên tố
    }
    if (x === 2) {
        return true;//là số nguyên tố
    }
    if (x > 2) {
        if (x % 2 === 0) {
            return false;//không phải số nguyên tố
        }
        else {
            for (let i = 3; i <= Math.sqrt(x); i += 2) {
                if (x % i === 0) {
                    return false;//không phải số nguyên tố
                }
            }
            return true;//là số nguyên tố
        }
    }
}
function PrintAllPrimeNumberInArray(a, n) {
    let str = "";
    for (let i = 0; i < n; i++) {
        if (checkPrimeNumbers(a[i]))//true
        {
            str = str + a[i];
            if (i < n - 1) {
                str = str + ", ";
            }
        }
    }
    console.log(str);
}
/*6. Fibonacci là dãy vô hạn các số tự nhiên bắt đầu bằng hai phần tử là 1 và 1 (hoặc 0 và 1),
 các phần tử sau đó được thiết lập theo quy tắc mỗi phần tử luôn bằng tổng hai phần tử trước nó.
 Viết chương trình nhận vào một số nguyên không âm và in ra dãy Fibonacci có chiều dài tương ứng
 với giá trị này.
 Ex: PrintFibonacci(8) => Fibonacci sequence: 1 1 2 3 5 8 13 21*/
// let f0 = 1;
// let f1 = 1;
// let fn;
// fn = f0 + f1;//1 + 1 = 2
// console.log(fn);

// f0 = f1;
// f1 = fn;
// fn = f0 + f1;//1+2=3
// console.log(fn);

// f0 = f1;
// f1 = fn;
// fn = f0 + f1;//2+3=5
// console.log(fn);

// f0 = f1;
// f1 = fn;
// fn = f0 + f1;//3+5=8
// console.log(fn);

// f0 = f1;
// f1 = fn;
// fn = f0 + f1;//5+8=13
// console.log(fn);

// f0 = f1;
// f1 = fn;
// fn = f0 + f1;//8+13=21
// console.log(fn);

//Viết hàm
console.log("Fibonacci sequence: ");
PrintFibonacci(f0,f1,fn);
function PrintFibonacci(f0 = 1, f1 = 1, fn = 1) {
    for (let i = 1; i <= 8; i++) {
        f0 = f1;
        f1 = fn;
        fn = f0 + f1;
        console.log(f0);
    }
}

Làm quen hàm

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103/*Viết chương trình nhận vào ba giá trị số nguyên gồm giờ, phút và giây.
Chuyển đối sang số giây tương ứng.In kết quả ra màn hình.*/
let h = 3;
let m = 2;
let s = 5;
let kq = ConvertHoursMinutesToSeconds(h, m, s);//gọi hàm
console.log(kq);
//Khởi tạo hàm
function ConvertHoursMinutesToSeconds(h, m, s) {
    return h * 3600 + m * 60 + s;
}
/*Viết chương trình nhận vào bốn số nguyên.
    Tìm số lớn nhất và số bé nhất trong 4 số.
    In số lớn nhất và số bé nhất trong bốn số này.
*/
let a = 4, b = 1, c = 5, d = 2;
let kqMax = FindMax4Number(a, b, c, d);
console.log("Max: " + kqMax);
let kqMin = FindMin4Number(a, b, c, d);
console.log("Min: " + kqMin);
//Khởi tạo hàm Max
function FindMax4Number(a, b, c, d) {
    let max = a;
    if (max < b) {
        max = b;
    }
    if (max < c) {
        max = c;
    }
    if (max < d) {
        max = d;
    }
    return max;
}
//Khởi tạo hàm min
function FindMin4Number(a, b, c, d) {
    let min = a;
    if (min > b) {
        min = b;
    }
    if (min > c) {
        min = c;
    }
    if (min > d) {
        min = d;
    }
    return min;
}
/*Viết chương trình nhận vào một tháng dạng số (từ 1 đến 12).
    Kiểm tra tháng này thuộc mùa nào trong năm.
    In ra tên mùa tương ứng.
Biết rằng.
    Tháng 1 đến tháng 3: mùa xuân (spring)
    Tháng 4 đến tháng 6: mùa hạ (summer)
    Tháng 7 đến tháng 9: mùa thu (fall)
    Tháng 10 đến tháng 12: mùa đông (winter)
*/
let month = 5;
let kq = FindMonthOf4season(month);
console.log(kq);
//Khởi tạo hàm
function FindMonthOf4season(month) {
    if (month >= 1 && month <= 3) {
        return "Mùa xuân";
    }
    else if (month >= 4 && month <= 6) {
        return "Mùa hạ";
    }
    else if (month >= 7 && month <= 9) {
        return "Mùa thu";
    }
    else if (month >= 10 && month <= 12) {
        return "Mùa đông";
    }
}
/*Viết chương trình nhận vào năm dương lịch (từ 1975 trở đi) và in ra các giải thể thao lớn được tổ chức trong năm, biết rằng:
    Các năm 1988, 1992, 1996, … có tổ chức Olympic và Euro.
    Các năm 1990, 1994, 1998, … có tổ chức World Cup.
    Các năm 1995, 1997, 1999, … có tổ chức SEA Games.
    Các năm 1996, 1998, … có tổ chức Tiger Cup.
*/
let sonam = 2016, namhientai = 1990;
let kq = FindSportsTournaments(sonam, namhientai);
console.log(kq);
//Khởi tạo hàm
function FindSportsTournaments(sonam, namhientai) {
    if (sonam < 1988) {
        return "Không có giải thể thao nào!!!";
    }
    else if ((namhientai - sonam) % 4 == 0) {
        return "Olympic và Euro";
    }
    else if ((namhientai - sonam) % 4 == 0) {
        return "World Cup";
    }
    else if ((namhientai - sonam) % 2 == 0) {
        return "SEA Games";
    }
    else if ((namhientai - sonam) % 2 == 0) {
        return "Tiger Cup";
    }
}