You are on page 1of 2

Võ Thị Anh Thư – B2207502 – stt 66

Bài tập 1: Viết chương trình thực hiện các yêu cầu sau:
1. Viết chương trình nhập vào một danh sách n số thực bằng con trỏ. In dãy đã nhập ra
màn hình. Sắp xếp dãy số theo thứ tự giảm dần. In kết quả ra màn hình. Sau đó nhập
vào một số thực mới chèn số mới vào dãy đã cho sao cho vẫn đảm bảo đúng thứ tự
giảm dần. In dãy kết quả sau khi chèn số mới vào.
Ví dụ:
Dãy số được nhập: -2 3.5 6.3 -9.25 7
Dãy đã sắp thứ tự giảm: 7 6.3 3.5 -2 -9.25
Nhập số cần chèn: 5
Dãy số kết quả: 7 6.3 5 3.5 -2 -9.25

2. Viết hàm:
void SaoChep (char ChuoiNguon[], char ChuoiDich[], int ViTri, int SoKyTu)
Hàm cho phép sao chép dữ liệu từ chuỗi nguồn (ChuoiNguon) sang chuỗi đích
(ChuoiDich) bắt đầu từ vị trí chép (ViTri) và số ký tự cần sao chép là SoKyTu sử dụng chuỗi
dưới dạng mảng ký tự.
Ví dụ:
ChuoiNguon = “Chao Cac Ban Nhe”
Gọi hàm: SaoChep (ChuoiNguon, ChuoiDich, 6, 7);
Kết quả ChuoiDich = “Cac Ban”
Gọi hàm: SaoChep (ChuoiNguon, ChuoiDich, 6, 15);
Kết quả ChuoiDich = “Cac Ban Nhe”
3. Sử dụng kiểu cấu trúc (struct) để viết đoạn chương trình lưu trữ độ dài 3 cạnh của một
tam giác. Sau đó thực hiện nhập vào độ dài 3 cạnh a, b, c của tam giác (sử dụng biến
cấu trúc con trỏ) và tính diện tích, chu vi của tam giác và in kết quả ra màn hình.

4. Trình bày thuật toán cho câu 2 bằng mã giả (pesudo code).

void SaoChep(char ChuoiNguon[], char ChuoiDich[], int ViTri, int SoKyTu)


n = strlen(ChuoiNguon);
If (ViTri<0) or (ViTri>=n) or (SoKyTu<0) then
printf “Gia tri nhap khong hop le”;
else
If (SoKyTu>n – ViTri) then
SoKyTu = n – ViTri;
end if;
i=0;
For (i < SoKyTu+1) do
If (ViTri==0) then
ChuoiDich[i] =ChuoiNguon[i];
else
ChuoiDich[i] = ChuoiNguon[ViTri+i-1];
end if;
i=i+1;
end for;
ChuoiDich[SoKyTu+1]=’\0’;
end if;
end function;

You might also like