Diễn đàn các môn học - Huỳnh Phước Hải
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Bài tập 41 - 45

3 posters

Go down

Bài tập 41 - 45 Empty Bài tập 41 - 45

Bài gửi  root Mon Jan 24, 2011 5:49 am

Bài 41. Viết hàm tìm số lần xuất hiện của các phần tử trùng nhau (nếu có) trong mảng.
Bài 42. Viết hàm tách mảng số nguyên thành 2 mảng a (chứa các số nguyên chẵn) và mảng b (chứa các số nguyên lẻ)
Bài 43. Viết hàm tìm các số hữu tỉ trong danh sách.
Bài 44. Viết chương trình nhập vào một mảng gồm các phân số. (Nhập, Xuất Mảng)
Bài 45. Viết chương trình nhập vào một mảng gồm các phân số. Tối giản các phân số nhập vào và in mảng.

root
Admin

Tổng số bài gửi : 37
Join date : 03/01/2011
Age : 38
Đến từ : An Giang

http://www.huynhhai.co.cc

Về Đầu Trang Go down

Bài tập 41 - 45 Empty Bài 44

Bài gửi  NanoShita Mon Jan 24, 2011 11:59 pm

Bài 44. Viết chương trình nhập vào một mảng gồm các phân số. (Nhập, Xuất Mảng)
- Bài yêu cầu nhập và xuất mảng gồm các phân số (không phải là mảng các số nguyên).
Bài tập 41 - 45 Hinhl
- Nên đầu tiên, ta cần tạo 1 struct PhanSo gồm tử số và mẫu số.
Code:
        struct PhanSo
        {
            int tuSo; //Tử số
            int mauSo; //Mẫu số
        }
- Trong struct này ta viết thêm 2 hàm nhập và xuất
+ Hàm nhập
Code:
            /// <summary>
            /// Hàm Nhập tử số và mẫu số cho 1 phân số
            /// </summary>
            public void Nhap()
            {
                //Nhập tử số
                Console.Write("  + Nhap tu so: ");
                tuSo = int.Parse(Console.ReadLine());
                //Nhập mẫu số. Mẫu số phải khác 0
                do
                {
                    Console.Write("  + Nhap mau so: ");
                    mauSo = int.Parse(Console.ReadLine());
                } while (mauSo == 0);
            }
+ Hàm xuất
Code:
            /// <summary>
            /// Hàm xuất 1 phân số ra màn hình
            /// </summary>
            public void Xuat()
            {
                Console.Write("({0} / {1})", tuSo, mauSo);
            }
- Việc còn lại chỉ là tạo ra mảng các phân số, nhập mảng và xuất mảng.
Code
Code:
using System;

namespace Bai44
{
    class Program
    {
        /// <summary>
        /// Cấu trúc phân số
        /// --------------------------------
        /// Gồm 2 thành phần
        ///  + Tử số
        ///  + Mẫu số
        /// --------------------------------
        /// Có 2 hàm
        ///  + Hàm nhập
        ///  + Hàm xuất
        /// </summary>
        struct PhanSo
        {
            int tuSo; //Tử số
            int mauSo; //Mẫu số
            /// <summary>
            /// Hàm Nhập tử số và mẫu số cho 1 phân số
            /// </summary>
            public void Nhap()
            {
                //Nhập tử số
                Console.Write("  + Nhap tu so: ");
                tuSo = int.Parse(Console.ReadLine());
                //Nhập mẫu số. Mẫu số phải khác 0
                do
                {
                    Console.Write("  + Nhap mau so: ");
                    mauSo = int.Parse(Console.ReadLine());
                } while (mauSo == 0);
            }
            /// <summary>
            /// Hàm xuất 1 phân số ra màn hình
            /// </summary>
            public void Xuat()
            {
                Console.Write("({0} / {1})", tuSo, mauSo);
            }

        }
        /// <summary>
        /// Chương trình chính
        /// </summary>
        static void Main()
        {
            Console.Write("So phan so can nhap: ");
            int n = int.Parse(Console.ReadLine());
            /*
            * Tạo mảng phân số.
            * Có n phần tử.
            * Mỗi phần tử là 1 phân số.
            */
            PhanSo[] mangPhanSo = new PhanSo[n];
            /*
            * Nhập mảng phân số
            */
            Console.WriteLine("\nNhap cac phan so: \n");
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("\n - Nhap phan so thu {0}: ", i + 1);
                //Nhập tử số và mẫu số cho phân số thứ i
                mangPhanSo[i].Nhap();
            }
            /*
            * Xuất mảng phân số
            */
            Console.WriteLine("\nCac phan so vua nhap: \n");
            for (int i = 0; i < n; i++)
            {
                //Xuất phân số thứ i
                mangPhanSo[i].Xuat();
                Console.WriteLine();
            }
            Console.ReadLine();
        }
    }
}

NanoShita

Tổng số bài gửi : 12
Join date : 12/01/2011
Age : 33
Đến từ : Long Xuyên, An Giang

Về Đầu Trang Go down

Bài tập 41 - 45 Empty Bài 45

Bài gửi  NanoShita Tue Jan 25, 2011 12:25 am

Bài 45. Viết chương trình nhập vào một mảng gồm các phân số. Tối giản các phân số nhập vào và in mảng.
- Bài này tương tự như bài 44, chỉ thêm vào phần tối giản phân số.
Bài tập 41 - 45 Hinho
- Để tối giản phân số ra viết thêm hàm tìm ước chung lớn nhất
Code:
        static int UCLN(int a, int b)
        {
            a = Math.Abs(a);
            b = Math.Abs(b);
            while (a != b)
                if (a > b)
                    a = a - b;
                else
                    b = b - a;
            return a;
        }
- Hàm tối giản phân số
Code:
            public void ToiGian()
            {
                if (tuSo != 0)
                {
                    int uocChung = UCLN(tuSo, mauSo);
                    tuSo = tuSo / uocChung;
                    mauSo = mauSo / uocChung;
                }//Nếu tử số bằng 0 thì không cần tối giản
            }
- Code đầy đủ
Code:
using System;

namespace Bai44
{
    class Program
    {
        static int UCLN(int a, int b)
        {
            a = Math.Abs(a);
            b = Math.Abs(b);
            while (a != b)
                if (a > b)
                    a = a - b;
                else
                    b = b - a;
            return a;
        }
        /// <summary>
        /// Cấu trúc phân số
        /// --------------------------------
        /// Gồm 2 thành phần
        ///  + Tử số
        ///  + Mẫu số
        /// --------------------------------
        /// Có 2 hàm
        ///  + Hàm nhập
        ///  + Hàm xuất
        ///  + Hàm tối giản phân số
        /// </summary>
        struct PhanSo
        {
            int tuSo; //Tử số
            int mauSo; //Mẫu số
            /// <summary>
            /// Hàm Nhập tử số và mẫu số cho 1 phân số
            /// </summary>
            public void Nhap()
            {
                //Nhập tử số
                Console.Write("  + Nhap tu so: ");
                tuSo = int.Parse(Console.ReadLine());
                //Nhập mẫu số. Mẫu số phải khác 0
                do
                {
                    Console.Write("  + Nhap mau so: ");
                    mauSo = int.Parse(Console.ReadLine());
                } while (mauSo == 0);
            }
            /// <summary>
            /// Hàm xuất 1 phân số ra màn hình
            /// </summary>
            public void Xuat()
            {
                Console.Write("({0} / {1})", tuSo, mauSo);
            }
            /// <summary>
            /// Hàm tối giản phân số
            /// </summary>
            public void ToiGian()
            {
                if (tuSo != 0)
                {
                    int uocChung = UCLN(tuSo, mauSo);
                    tuSo = tuSo / uocChung;
                    mauSo = mauSo / uocChung;
                }//Nếu tử số bằng 0 thì không cần tối giản
            }

        }
        /// <summary>
        /// Chương trình chính
        /// </summary>
        static void Main()
        {
            Console.Write("So phan so can nhap: ");
            int n = int.Parse(Console.ReadLine());
            /*
            * Tạo mảng phân số.
            * Có n phần tử.
            * Mỗi phần tử là 1 phân số.
            */
            PhanSo[] mangPhanSo = new PhanSo[n];
            /*
            * Nhập mảng phân số
            */
            Console.WriteLine("\nNhap cac phan so: \n");
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("\n - Nhap phan so thu {0}: ", i + 1);
                //Nhập tử số và mẫu số cho phân số thứ i
                mangPhanSo[i].Nhap();
            }
            /*
            * Tối giản các phân số trong mảng
            */
            for (int i = 0; i < n; i++)
            {
                mangPhanSo[i].ToiGian();
            }
            /*
            * Xuất mảng phân số sau khi tối giản
            */
            Console.WriteLine("\nCac phan so sau khi toi gian: \n");
            for (int i = 0; i < n; i++)
            {
                //Xuất phân số thứ i
                mangPhanSo[i].Xuat();
                Console.WriteLine();
            }
            Console.ReadLine();
        }
    }
}

NanoShita

Tổng số bài gửi : 12
Join date : 12/01/2011
Age : 33
Đến từ : Long Xuyên, An Giang

Về Đầu Trang Go down

Bài tập 41 - 45 Empty Bài 42

Bài gửi  LoveIT Tue Jan 25, 2011 8:31 pm

Bài 42: Viết hàm tách mảng số nguyên thành 2 mảng a (chứa các số nguyên chẵn) và mảng b (chứa các số nguyên lẻ)


Code:
static void TachMang(int [] Array,int n)
{
            //mảng phụ 
            int[] Chang = new int[n];      //chứa những phần tử chẵn (n phần tử)
            int[] Le = new int[n];          //chứa phần tử lẻ (n phần tử)
            int l = 0, m = 0;              //các chỉ số của mảng chẳng và mảng lẻ

            for (int k = 0; k < Array.Length; k++)
            {
                //nếu phần tử Array[k] là số chẳng
                if (Array[k] % 2 == 0)     
                {
                    Chang[l] = Array[k];    //gán vào mảng chẳng
                    l++;                    // tăng l để lưu giá trị phần tử kế
                }
                //phần tử Array[k] là số lẻ
                else
                {
                    Le[m] = Array[k];      //gán vào mảng lẻ
                    m++;                    // tăng m để lưu giá trị phần tử kế
                }
            }

            //xuất mảng các số chẵn
            Console.WriteLine();
            Console.Write("Mang so chang: ");
            for (int c = 0; c < l; c++)
                Console.Write(Chang[c] + "  ");

            Console.WriteLine();
            //xuất mảng các số lẻ
            Console.Write("Mang so le: ");

            for (int q = 0; q < m; q++)
                Console.Write(Le[q] + "  ");
            Console.WriteLine();
}

LoveIT

Tổng số bài gửi : 15
Join date : 16/01/2011

Về Đầu Trang Go down

Bài tập 41 - 45 Empty Re: Bài tập 41 - 45

Bài gửi  Sponsored content


Sponsored content


Về Đầu Trang Go down

Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết