1. Trang chủ
  2. » Giáo án - Bài giảng

Bài tập Pascal : Số đơn điệu

1 4,9K 68
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Số Đơn Điệu
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài Tập
Năm xuất bản 2009
Thành phố Hồ Chí Minh
Định dạng
Số trang 1
Dung lượng 34 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ngày 8/3/2009 Bài tập Pascal Bài 1: Số đơn điệu Định nghĩa: Các số nguyên dương luân phiên tăng giảm hoặc giảm tăng được gọi là các số đơn điệu.. Dữ liệu: DuLieu.Vao Kết quả: KetQua.Ra V

Trang 1

Ngày 8/3/2009 Bài tập Pascal

Bài 1: Số đơn điệu

Định nghĩa: Các số nguyên dương luân phiên tăng giảm hoặc giảm tăng được gọi là các số đơn điệu.

Ví dụ: 4537 vì 4 < 5 > 3 < 7

Yêu cầu: Viết chương trình xác định số chữ số đầu tiên lớn nhất tạo thành số đơn điệu của một số cho trước.

Dữ liệu: DuLieu.Vao

Kết quả: KetQua.Ra

Ví dụ:

*Phân tích tìm thuật giải:

- Các dạng số đơn điệu: Có 2 dạng phụ thuộc vào hai chữ số đầu

- Dạng 1:

Chữ số thứ nhất lớn hơn chữ số thứ hai Ví dụ: 7564 Đặt: a1=7; a2=5; a3=6; a4=4 Ta có: a1 > a2; a2 < a3; a3 > a4 Gọi i là chữ số thứ i Khi đó:

If i mod 2 <> 0 then a[i] > a[i+1]

If i mod 2 = 0 then a[i] < a[i+1]

- Dạng 2:

Chữ số thứ hai lớn hơn chữ số thứ nhất Ví dụ: 5746 Đặt: a1=5; a2=7; a3=4; a4=6 Ta có: a1 < a2; a2 > a3; a3 < a4 Gọi i là chữ số thứ i Khi đó:

If i mod 2 <> 0 then a[i+1] > a[i]

If i mod 2 = 0 then a[i+1] < a[i]

*Từ đó ta có chương trình

Var

xau : string; i, n : integer;

kt : boolean;

so1, so2,x1,x2, z : integer;

St1 : Text; St2: Text;

begin

Assign(St1,”dulieu.Vao”); Reset(St1); if not eof(St1) then read(St1,xau); close(St1);

kt:=false; i:=1; n:=1;

if length(xau)>1 then

begin

repeat

i:=i+1;

if i=length(xau) then kt:=true;

if i<length(xau) then

val(xau[i],so1,z); val(xau[i+1],so2,z); val(xau[1],x1,z); val(xau[2],x2,z);

if x1>x2 then

if i mod 2 = 0 then if so2>so1 then n:=n+1 else begin n:=n+1; kt:=true; end;

if i mod 2 <> 0 then if so1>so2 then n:=n+1 else begin n:=n+1; kt:=true; end;

if x2>x1 then

if i mod 2 = 0 then if so1>so2 then n:=n+1 else begin n:=n+1; kt:=true; end;

if i mod 2 <> 0 then if so2>so1 then n:=n+1 else begin n:=n+1; kt:=true; end;

until KT;

write(n);

Assign(St2,”Ketqua.ra”); Rewrite(St2); Write(St2, n); Close(St2);

end;

readln

end

Ngày đăng: 26/07/2013, 01:25

TỪ KHÓA LIÊN QUAN

w