Bài tập 41 - 45
3 posters
Trang 1 trong tổng số 1 trang
Bài tập 41 - 45
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.
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.
Bài 44
- 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 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)
- 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ố
}
+ 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);
}
- 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);
}
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
Bài 45
- 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 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.
- Để 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;
}
- 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:
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
Bài 42
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
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|