Chương 1
Giới thiệu chung
1.1. Mở đầu
1.1.1. Cấu tạo chính của máy tính điện tử
Các máy tính điện tử nói chung có các bộ phận sau đây:
– Bộ điều khiển trung tâm CPU (Central Processing Unit) là bộ phận thực hiện các phép tính số học
và logic bằng việc phân tích chức năng của các lệnh.
– Bộ nhớ trong (Main Memory) là nơi chứa các chương trình và số liệu.
– Thiết bị vào (Input Device) là bộ phận đưa chương trình và dữ liệu vào máy.
– Thiết bị ra (Output Device) là bộ phận đưa kết quả từ bộ nhớ ra ngoài.
– Bộ nhớ phụ (Auxiliary Memory) được dùng để lưu trữ chương trình và số liệu như bộ nhớ chính
song dung lượng nhớ lớn hơn và truy cập chậm hơn.
51 trang |
Chia sẻ: phuongt97 | Lượt xem: 391 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Giáo trình Ngôn ngữ lập trình Pascal (Phần 1), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ện tích S=16.00000
Ta có thể nhập a,b,h bằng các lệnh sau:
Readln(a) ; Readln(b) ; Readln(h);
Ví dụ 8. Tính điểm trung bình cộng kết quả kiểm tra 3 học phần của lớp Tin học căn bản,
trong đó: DOS hệ số 2, WINDOWS hệ số 1 và ngôn ngữ lập trình PASCAL hệ số 3.
Thuật giải :
– Nhập điểm môn DOS, WINDOWS, PASCAL lần l−ợt vào 3 biến DOS, WIN, PAS.
– Nhập điểm trung bình vào biến TB.
– Xuất nội dung biến TB.
Văn bản ch−ơng trình :
Program Tinh_Diem;
Uses Crt;
Var
DOS,WIN,PAS:Byte;
TB: Real;
Begin
Clrscr;
Write(‘Diem mon DOS : ’); Readln(DOS);
33
Write(‘Diem mon WINDOWS : ’); Readln(WIN);
Write(‘Diem mon PAS: ’); Readln(PAS);
TB:=(DOS*2+WIN+PAS*3)/6;
Writeln(‘Trung bình cộng 3 môn : ‘,TB:1:1);
Readln
End.
Câu hỏi – Bài tập ch−ơng 4
1. Giải thích sự khác nhau giữa hai lệnh sau :
write(15+20); và write(‘15+20’);
2. Ch−ơng trình sau cho kết quả gì?
Begin
Writeln(false>true:6);
Writeln(‘1’>’2’);
End.
3. Cho biết kết quả và kiểu dữ liệu của các biểu thức sau:
a) 3+5.0.
b) 6/3+2 div 3.
c) (10*((45mod3)+12))/6.
d) (5<=3) and (not true and (12 div 3 <=1)).
4. Lập ch−ơng trình nhập các số thực a và x từ bàn phím sau đó tính :
x
y=a và z=loga(x) (L−u ý: a>0, a≠1, x>0).
5. Cho a, b, c là độ dài các cạnh của một tam giác đ−ợc nhập từ bàn phím. Tính chu vi, diện tích,
độ dài 3 đ−ờng cao, độ dài đ−ờng trung tuyến, các bán kính đ−ờng tròn ngoại tiếp và nội tiếp
của tam giác.
6. Viết ch−ơng trình tính diện tích mặt cầu và thể tích của hình cầu, Biết bán kính H nhập vào từ
bàn phím.
7. Viết ch−ơng trình in ra giá trị các hàm l−ợng giác của một góc từ 0 đến 360 độ đ−ợc nhập vào từ
bàn phím (góc có số đo theo số độ, số phút, số giây).
8. Viết ch−ơng trình tính tổng các chữ số của 1 số có 2 chữ số.
9. Viết ch−ơng trình tính tổng các chữ số của 1 số có 3 chữ số.
34
10. Viết ch−ơng trình nhập vào tên, đơn giá, số l−ợng của 2 mặt hàng và in ra hoá đơn tính tiền
theo mẫu sau:
HOA DON BAN HANG
STT Ten mat hang So luong Don gia Thanh tien
... ... ... ... ...
Tong cong :
Hue, ngay thang nam
Nguoi lap phieu
Nguoi nhan
11. Bài toán vay trả góp.
Một khách hàng đến ngân hàng vay một số tiền A và muốn đ−ợc trả món nợ trên trong thời
gian Y năm. Mỗi năm trả N lần. Biết rằng lãi suất mỗi năm là Rate.
Viết ch−ơng trình cho biết mỗi lần khách hàng trên phải trả bao nhiêu tiền. Trong đó A, Rate,
N và Y nhập vào từ bàn phím
H−ớng dẫn :
Đặt R=Rate/N.
Số tiền khách hàng phải trả cho ngân hàng mỗi kì là:
A.R
P=
1-(1 + R)NY
35
Ch−ơng 5
Lệnh có cấu trúc
5.1. Câu lệnh ghép (Compound Statement)
Lệnh ghép là một dãy câu lệnh đơn hoặc lệnh ghép khác đ−ợc đặt giữa hai từ khoá BEGIN và
END. Lệnh ghép đ−ợc thực hiện bằng cách thực hiện tuần tự các câu lệnh nằm giữa BEGIN và
END.
Dạng tổng quát :
BEGIN
;
;
...
;
END
trong đó (i=1,2,...,n) là các lệnh thực hiện – có thể là lệnh đơn và cũng có thể là một
lệnh ghép khác.
Ví dụ 1. Sau đây là một lệnh ghép
Begin
t:= x;
x:= y;
y:= t;
End;
Câu lệnh ghép này trao đổi giá trị hai biến x và y, dùng biến t nh− một chỗ cất trung gian.
5.2. Câu lệnh lựa chọn
5.2.1 Câu lệnh IF (Rẽ nhánh theo điều kiện)
Có hai dạng.
a. Dạng 1.
IF THEN ELSE ;
trong đó là biểu thức mà giá trị của nó thuộc kiểu Boolean, còn ,<lệnh
2> là các lệnh tuỳ ý có thể là đơn hoặc ghép.
36
Tác dụng của lệnh : Khi gặp lệnh này tuỳ theo kết quả của mà máy có thể
thực hiện hoặc . Nếu có giá trị True thì máy thực hiện
, nếu không thì máy thực hiện .
Ví dụ 2. Ch−ơng trình sau đây thực hiện việc đọc vào một giá trị x và cho in ra kết quả của
hàm :
⎧x+1 nếu x<0
f(x) = ⎨
⎩x-1 nếu x≥ 0
Program Tinh_f;
Uses Crt;
Var x, f: Real;
Begin
Clrscr;
Write(‘nhap vao gia trị x’);
Readln(x);
If x < 0 then f:= x + 1 else f:= x – 1;
Writeln(f:8:2);
End.
b. Dạng 2
IF THEN ;
trong đó là biểu thức mà giá trị của nó thuộc kiểu Boolean, còn là lệnh
tuỳ ý có thể là đơn hoặc ghép.
Khi gặp lệnh này nếu có giá trị True thì đ−ợc thực hiện nếu không thì
câu lệnh này đ−ợc bỏ qua để thực hiện lệnh tiếp theo.
Ví dụ 3. Ch−ơng trình sau đây nhập vào 3 số thực và cho in ra giá trị lớn nhất giữa chúng.
Program max3;
Var a,b,c:Real;
Begin
Writeln(‘............................................................’);
Write(‘nhap vao 3 so :’); Readln(a,b,c);
max:=a;
if max < b then max:= b;
if max < c then max:=c;
Writeln(‘so lon nhat là :’ , max);
37
Readln
End.
Chú ý . Trong câu lệnh if này có thể chứa câu lệnh if khác. Phát biểu if then if
then else t−ơng đ−ơng với phát biểu sau :
if then
begin if then
else
end;
Có nghĩa là else thuộc về câu lệnh if gần nó nhất.
Ví dụ 4. Ch−ơng trình sau đây thực hiện việc giải ph−ơng trình bậc nhất dạng ax + b = 0.
Program Pt_dang_bac_1;
Uses Crt;
Var a,b: Real;
Begin
Clrscr;
Writeln(‘Giai phuong trinh dang : ax + b = 0’);
Writeln(‘............................................................’);
Write(‘cho biet gia tri cac he so a, b:’) Readln(a,b);
If a 0 then
Writeln(‘pt co nghiem duy nhat : x = ‘,(–b/a):8:2);
else if b = 0 then
Writeln(‘moi gia tri cua x deu la nghiem’);
else write(‘ptrinh vo nghiem’);
Readln
End.
Ví dụ 5. Tính tiền thực lĩnh cho một nhân viên trong xí nghiệp theo công thức:
(L−ơng chính ì Số ngày công)
Thực lĩnh = + (Phụ cấp) – (Tạm ứng)
26
Với quy định :
– Nghỉ quá 5 ngày sẽ bị trừ 20% tổng thực lĩnh.
– Làm thêm quá 3 ngày đ−ợc tăng 10% tổng thực lĩnh.
Giải thuật :
38
– Nhập thông tin về l−ơng chính, ngày công, phụ cấp, tạm ứng vào các biến LC, NC, PC,
TU.
– Tính thực lĩnh vào biến TL theo công thức:
TL = (LC * NC)/26 + PC – TU.
+ Nếu NC < 21 thì TL:= TL * 0.8
+ Nếu NC > 29 thì TL:= TL *1.1
Văn bản ch−ơng trình:
Program Luong;
Uses Crt;
Var
NC:Byte;
PC,LC,TU,TL: Real;
Begin
Clrscr;
Write(‘luong chinh : ‘); Readln(LC);
Write(‘ngay cong : ‘); Readln(NC);
Write(‘phu cap : ‘); Readln(PC);
Write(‘tam ung : ‘); readln(TU);
Writeln(‘..........................’);
TL:= (LC*NC)/26 + PC – TU
If NC <21 then TL:= TL * 0.8;
If NC> 29 then TL:=TL* 1.1;
Writeln(‘tien thuc linh : ”, TL:10:2);
Readln;
End.
5.2.2. Câu lệnh CASE (Rẽ nhánh theo giá trị)
Câu lệnh IF ở trên chỉ rẽ theo một trong hai nhánh t−ơng ứng với giá trị của biểu thức logic.
Còn câu lệnh CASE sau đây cho phép lựa chọn để thực hiện một trong nhiều công việc.
39
a. Dạng câu lệnh
Dạng 1 Dạng 2
CASE OF CASE OF
: ; : ;
: ; : ;
.......................... ............ .......................... ............
: ; : ;
ELSE
END; END;
trong đó là một biểu thức mà giá trị của nó thuộc kiểu dữ liệu vô h−ớng đếm đ−ợc
(i=1,2,..., n) là một tập hữu hạn các hằng có cùng kiểu với kiểu của .
Sự thực hiện của lệnh CASE ... OF phụ thuộc vào giá trị của .
Nếu là một tập đầu tiên chứa giá trị trùng với giá trị của thì máy
thực hiện , sau đó thoát khỏi CASE ... OF.
Trong tr−ờng hợp không có nào chứa giá trị của thì :
– Nếu ở dạng 2 (không có ELSE) thì máy thoát ngay ra khỏi lệnh CASE ... OF.
– Nếu ở dạng 1 (có ELSE) thì máy thực hiện rồi mới thoát khỏi CASE ... OF.
Ví dụ 6. Ch−ơng trình sau đây thực hiện việc nhập vào 1 điểm kiểm tra từ bàn phím và xuất
kết quả xếp loại ra màn hình theo quy định:
– Các điểm <5 : Xếp loại yếu.
– Các điểm 5,6 : Xếp loại trung bình.
– Các điểm 7,8 : Xếp loại khá
– Các điểm 9,10 : Xếp loại giỏi
Văn bản ch−ơng trình:
Program Xep_Loai;
Uses Crt;
Var Diem:Byte;
Begin
Clrscr;
Write(‘Cho biet diem : ‘); Readln(Diem);
Case Diem Of
0,1,2,3,4 : Writeln(‘Xep loai yeu’);
40
5,6 : Writeln(‘Xep loai trung binh’);
7,8 : Writeln(‘Xep loai kha’);
9,10 : Writeln(‘Xep loai gioi’);
Else Writeln(‘Diem Nhap Vao Sai’);
End;
End.
Ví dụ 7. Viết ch−ơng trình cho biết số ngày của một tháng.
Program So_Ngay_Cua_Thang;
Uses Crt;
Var
So_Ngay,Thang:Byte;
Nam:Integer;
Begin
Clrscr;
Write(‘Dua vao thang (dang so) ‘); Readln(Thang);
Case Thang Of
4,6,9,11 : So_Ngay:=30
2 : Begin
Write(‘Cho biet nam:’);
Readln(Nam);
If Nam Mod 4=0 then So_ngay:=29
else So_Ngay:=28;
End;
Else So_Ngay:=31 ;
End; (Case)
Writeln(‘ ‘);
Write(‘Thang’,Thang,’nam’,Nam,’co’,So_Ngay,’ngay’)
Readln
End.
5.3. Câu lệnh lặp
Chúng ta th−ờng gặp nhiều tr−ờng hợp cần phải thực hiện một công việc lặp đi lặp lại theo
một quy luật nào đó. Số lần lặp có thể đã đ−ợc xác định ngay hoặc ch−a xác định. Trong Pascal có
ba câu lệnh lặp là FOR, REPEAT và WHILE.
41
FOR : là vòng lặp có số b−ớc lặp xác định.
REPEAT, WHILE : vòng lặp có số lần lặp không xác định.
5.3.1. Câu lệnh FOR
Có hai dạng lệnh :
* Dạng 1 :
FOR := TO DO ;
* Dạng 2 :
FOR := DOWNTO DO ;
trong đó là tên biến thuộc loại vô h−ớng đếm đ−ợc, gọi là biến điều khiển. <giá trị
đầu>, là các biểu thức cùng kiểu giá trị với .
* Sự hoạt động của FOR dạng 1 theo các b−ớc sau :
1. Đầu tiên nhận giá trị là .
2. Máy kiểm tra điều kiện ≤ ?
3. Nếu điều kiện trên là sai thì máy ra khỏi vòng lặp FOR để thực hiện lệnh ngay sau lệnh
FOR. Nếu điều kiện trên là đúng thì thực hiện sau đó biến đ−ợc tăng một giá trị
(=Succ()) và trở lại b−ớc 2.
* Sự hoạt động của FOR dạng 2 theo các b−ớc sau:
1. Đầu tiên lấy giá trị là .
2. Máy kiểm tra điều kiện ≥ ?
3. Nếu điều kiện trên là sai thì máy ra khỏi vòng lặp FOR để thực hiện lệnh ngay sau lệnh
FOR. Nếu điều kiện trên là đúng thì thực hiện sau đó biến đ−ợc giảm một giá trị
(=Pred()) và trở lại b−ớc 2.
Chú ý. Khi dùng câu lệnh FOR
– Không đ−ợc thay đổi trị của biến điều khiển bằng một lệnh trong vòng lặp vì ta sẽ không còn
chủ động kiểm soát đ−ợc biến điều khiển.
– Giá trị của biến điều khiển là không xác định khi thoát khỏi vòng lặp.
– Các vòng FOR có thể lồng nhau và nói chung sau từ khoá DO có thể là một câu lệnh
bất kì (có thể đơn hoặc ghép).
Ví dụ 8. Ch−ơng trình sau viết ra trên màn hình 20 lần dòng chữ: ‘World Cup 98’
Uses Crt;
Var
I:Byte;
42
Begin
Clrscr;
For I:=1 To 20 Do Writeln(‘World Cup 98’);
Readln;
End.
Ví dụ 9. Viết ch−ơng trình xuất lên màn hình 256 kí tự của bảng mã ASCII.
Program Ascii;
Use Crt;
Var I:Byte;
Begin
Clrscr;
For I:=0 To 255 Do
Begin
Writeln(I:3,’-’,Chr(I));
If (I+1) Mod 22=0 then
Begin
Write(‘Nhan de tiep tuc ...’)
Readln;
Clrscr;
End;
End;
Readln
End.
Ví dụ 10. Viết ch−ơng trình kiểm tra công thức sau :
1 + 2 + 3 + ... + N = N(N+1)/2.
Program Tong;
Uses Crt;
Var
I, N: Integer;
S1, S2:Word;
Begin
Clrscr;
Write(‘nhap so N : ’); Readln(N);
Writeln;
43
S1:=N*(N+1) Div 2;
S2:=0;
For I:=1 To N Do S2:=S2+I;
Writeln(‘Tinh bang chuoi s=’, s2);
Writeln(‘Tinh bang chuoi s=’, s1);
End.
Ví dụ 11. Viết ch−ơng trình nhập chiều dài, chiều rộng của hình chữ nhật và in hình chữ nhật
đó ra màn hình bằng các dấu * có dạng nh− sau:
* * * * *
* *
* * * * *
Program KHUNG_HCN;
Uses crt;
Const c= ‘*’;
Var i,dai,rong:byte;
Begin
Clrscr;
Write(‘nhap chieu dai:’); Readln(dai);
Write(‘nhap chieu rong:’); readln(rong);
Clrscr;
For i:=1 To dai Do write(c:3);
Writeln;
For i:=1 To rong –2 Do Writeln(c:3,c:(dai-1))
For i:=1 To dai Do Write(c:3);
Readln;
End.
5.3.2. Câu lệnh REPEAT
Lệnh lặp repeat dùng để lặp đi lặp lại một công việc cho đến khi một điều kiện đã cho đ−ợc
thoả mãn.
Dạng lệnh tổng quát.
REPEAT
44
;
;
...............
;
UNTIL ;
trong đó là biểu thức mà giá trị của nó thuộc kiểu Boolean còn
(i=1,2,...,n) là một câu lệnh thực hiện của Pascal (có thể lệnh đơn hoặc lệnh ghép).
Khi gặp lệnh này máy thực hiện dãy các lệnh , ,..., sau đó kiểm tra
biểu thức . Nếu có giá trị False thì lặp lại thực hiện dãy lệnh
trên. Nếu có giá trị True thì kết thúc thực hiện lệnh này để thực hiện lệnh tiếp
theo.
Ví dụ 12. Viết ch−ơng trình nhập một số nguyên d−ơng từ bàn phím và xuất ra màn hình số
chữ số của số vừa nhập. Ví dụ, nhập số 1562 và cho hiển thị câu “số vừa nhập có 4 chữ số”.
Program dem_ki_so;
Uses Crt;
Var n:longint;
dem:byte;
Begin
Clrscr;
Write(‘nhap mot so nguyen duong :’); Readln(n);
dem:=0;
Repeat
n:=n div 10;
dem:=dem+1 ;
Until n=0;
Write (‘so vua nhap co ’, dem , ‘ky tu.’);
Readln
End.
Ví dụ 13. Viết ch−ơng trình làm các việc sau:
a. Tính diện tích hình chữ nhật.
b. Tính diện tích hình tam giác.
c. Tính thể tích hình cầu.
45
Lựa chọn công việc đ−ợc thực hiện theo menu.
Uses Crt;
Var a, b, h, r: Real;
chon : Byte;
thoat : Boolean;
Begin
thoat:=false;
Repeat
Clrscr;
Writeln(‘* * * Tinh dien tich va the tich * * *;);
Writeln(‘1. Tinh dien tich hinh chu nhat’);
Writeln(‘2. Tinh dien tich hinh tam giac’);
Writeln(‘3. Tinh the tich hinh cau’);
Writeln(‘4. Ket thuc chuong trinh’);
Writeln;
Write(‘ban chon cong viec nao? (1 – 4): ’);
readln(chon);
Writeln;
Case chon Of
1: Begin
Write(‘nhap do dai 2 canh a, b cua hinh chu nhat: ’);
Readln(a,b);
Writeln(‘dien tich hinh chu nhat la: ‘,a*b:8:2);
Readln;
End;
2: Begin
Writeln(‘nhap do dai a cua day va chieu cao cua tam giac: ’);
Readln(a,h);
Writeln(‘dien tich tam giac la: ’,a*h/2:8:2);
readln;
46
End;
3: Begin
Write(‘nhap ban kinh của hinh cau: ’);
Readln(r);
Writeln(‘the tich hinh cau la: ’,4*pi*r*r*r/3:10:2);
Readln;
End;
4: thoat:=True;
Else
Begin
Write(‘vao sai, de nghi nhap lai!’);
Readln;
End;
End; {case}
Until thoat;
End.
Chú ý.
1. Vòng lặp REPEAT có thể sử dụng khi muốn thực hiện ch−ơng trình nhiều lần theo ý muốn.
Chẳng hạn, ta có thể thiết kế việc kết thúc ch−ơng trình bằng đối thoại nh− trong đoạn ch−ơng
trình sau:
Var ............
tieptuc: Char;
............
Begin
Repeat
... {các lệnh của ch−ơng trình}
Write(‘co tiep tuc hay khong (c/k)? ’);
Readln(tieptuc);
Until Upcase(tieptuc)=‘K’
End.
47
2. Để buộc ng−ời sử dụng đ−a vào một số nguyên đúng quy cách ta có thể sử dụng vòng lặp
Repeat nh− sau:
Uses Crt;
Var i: integer;
b: boolean;
Begin
Clrscr;
Write(‘nhap mot so nguyen: ‘);
Repeat
{$1-}
Readln(i);
{$1+}
b:=(ioresult=0);
If (not b) then write(‘ xin nhap lai’);
Until b;
Writeln(‘gia tri so vua nhap la: ‘,i);
Readln;
End.
5.3.3. Câu lệnh While
Dùng để lặp đi lặp lại một công việc trong khi một điều kiện còn đ−ợc thoả mãn.
Dạng lệnh:
WHILE DO ;
trong đó là biểu thức mà giá trị của nó thuộc kiểu Boolean còn là một
lệnh thực hiện của Pascal (có thể lệnh đơn hoặc lệnh ghép).
Khi gặp lệnh này máy lặp lại việc thực hiện nếu có giá trị true hoặc
kết thúc việc thực hiện nếu biểu thức logic có giá trị False.
Ví dụ 14. Viết ch−ơng trình tìm −ớc số chung lớn nhất của 2 số tự nhiên.
Uses Crt;
Var a,b: integer; tieptuc: char;
Begin
Repeat
48
Write(‘nhap hai so nguyen can tim uscln: ‘);
Readln(a,b);
While ab Do
If a > b Then a:=a-b Else b:=b-a;
Writeln(‘ket qua uscln la: ‘,a);
Write(‘thuc hien tiep khong? (c/k): ‘);
Readln(tieptuc);
Until upcase(tieptuc)=‘K’;
End.
Câu hỏi – Bài tập Ch−ơng 5
1. Viết ch−ơng trình nhập vào từ bàn phím giờ, phút, giây. Cộng thêm một số giây cũng đ−ợc
nhập vào từ bàn phím. Hãy in ra kết quả sau khi cộng xong.
2. Viết ch−ơng trình tìm Max, Min của 4 số : a, b, c, d.
3. Viết ch−ơng trình nhập vào ngày, tháng, năm. Máy sẽ hiện lên ngày, tháng, năm của ngày hôm
sau.
4. Viết ch−ơng trình nhập vào 2 số a, b sau đó hoán đổi giá trị của 2 số đó:
a) Cho phép dùng biến trung gian.
b) Không đ−ợc phép dùng biến trung gian.
5. Một thí sinh tham gia dự tuyển có điểm của 3 môn thi : điểm môn 1 (D1), điểm môn 2 (D2) và
điểm môn thi trắc nghiệm tổng hợp (D3). Điểm kết quả đ−ợc tính theo công thức sau
MAX(D1/3+D2/3+D3/3, D3). Điểm tối đa mỗi môn là 10. Viết ch−ơng trình xác định xem thí
sinh có trúng tuyển không. Biết rằng điều kiện đ−ợc tuyển là điểm kết quả ≥ 5.
6. Viết ch−ơng trình nhập từ bàn phím 3 số nguyên d−ơng a, b, c. Xác định xem a, b, c có thể là
độ dài 3 cạnh của tam giác không? Nếu phải thì kiểm tra xem đó là tam giác gì (vuông, cân
hay đều) và tính diện tích của tam giác đó.
7. Viết ch−ơng trình tính tiền tiêu thụ điện cho khách hàng với chỉ số mới và chỉ số cũ của công tơ
đ−ợc nhập từ bàn phím. Biết rằng : 150 số đầu tiên tính theo giá 450 đồng/KW, từ 151 đến 250
số tính theo giá 600 đồng/KW, từ số 251 trở lên tính theo giá 800 đồng/KW.
8. Viết ch−ơng trình giải ph−ơng trình bậc 2:
ax2 + bx + c = 0 (a≠0).
9. Viết ch−ơng trình giải ph−ơng trình bậc 2 trên tr−ờng số phức:
ax2 + bx + c = 0
49
10. Viết ch−ơng trình giải hệ ph−ơng trình:
⎧ax + by = c
⎨
⎩px+qy =r
với a, b, c, p, q, r đ−ợc nhập từ bàn phím.
11. Viết ch−ơng trình cho biết 1 ngày nào đó trong thế kỉ 20 này là ngày thứ mấy trong tuần.
Giải thuật.
B−ớc 1: Nhập ngày, tháng, năm vào các biến d,m,y.
B−ớc 2: Tính a = d + 2*m + 3*(m+1) div 5 + y + y div 4 + 1
Chú ý rằng : Tháng 1 năm này là tháng 13 năm cũ, tháng 2 năm này là tháng 14 năm cũ còn
các tháng khác hiểu nh− bình th−ờng. Chẳng hạn, 14/01/1965 phải đổi là 14/13/1964.
B−ớc 3: Lấy a chia cho 7
– D− 0 → in ra : Thứ bảy
– D− 1 → in ra : Chủ nhật
– D− 2 → in ra : Thứ hai
– ...
12. Viết ch−ơng trình nhập vào 3 số nguyên d−ơng từ bàn phím và xuất ra màn hình 3 số d−ơng
đó theo thứ tự tăng dần.
13. Viết ch−ơng trình nhập 1 ký tự từ bàn phím và xuất ra màn hình.
– số nếu nó là số.
– chữ hoa nếu nó là chữ th−ờng.
– chữ th−ờng nếu nó là chữ hoa.
– câu “Chào tạm biệt!’ nếu nó không phải là chữ hay số.
(Biết rằng mã ASCII của chữ th−ờng bằng mã chữ hoa t−ơng ứng cộng thêm 32).
14. Viết ch−ơng trình quyết định kiểu hợp đồng bảo hiểm mà khách hàng nên chọn. Ch−ơng trình
này sẽ hỏi một số chi tiết về khách hàng rồi tuỳ theo trả lời mà quyết định. Các câu hỏi cần đặt ra
cho khách hàng là nh− sau:
– Bạn có nhỏ hơn 30 tuổi không?
– Bạn có sức khoẻ tốt không?
– Bạn đã gặp tai nạn lần nào ch−a?
Logic là nh− sau: Nếu trả lời “không” thì cho 0 điểm, nếu trả lời “có” thì tuỳ theo từng câu mà
cho điểm: câu thứ nhất 1 điểm, câu thứ hai 2 điểm, câu thứ ba 3 điểm. Dựa trên tổng số điểm sẽ có
các quyết định t−ơng ứng nh− sau :
0, 1, 4 : nghiên cứu lại
2 : hợp đồng loại B
50
3 : hợp đồng loại A
5, 6 : từ chối.
15. Viết ch−ơng trình hiển thị lên màn hình các thông tin sau:
a) Các số có 2 chữ số trong đó chữ số hàng chục nhận giá trị từ 3 đến 8, chữ số hàng đơn vị
nhận giá trị 2 đến 9.
b) Tổng các số có 2 chữ số.
c) Tích các số chẵn có 1 chữ số.
16. Viết ch−ơng trình nhập số tự nhiên N từ bàn phím và tính:
e = 1 + 1/1! + 1/2! + ... + 1/N!
17. Viết ch−ơng trình nhập chiều cao và xuất ra màn hình tam giác bởi các dấu * có dạng nh− sau:
*
* *
* *
* * * * * * *
18. Viết ch−ơng trình nhập 1 số thực a từ bàn phím và tìm số tự nhiên n nhỏ nhất sao cho:
111 1
A = 1 + + + + ..... + > a
234 n
Với số n tìm đ−ợc hãy tính tổng vế trái.
19. Viết ch−ơng trình in ra bảng tính căn bậc 2, căn bậc 3, căn bậc 4 của 100 số nguyên d−ơng
đầu tiên.
20. Viết ch−ơng trình nhập vào một số tự nhiên từ bàn phím và xuất ra màn hình số các chữ số là
lẻ có mặt trong số đó. Chẳng hạn, nếu nhập vào số 3625 thì trả lời “ có 2 chữ số lẻ”.
21. Viết ch−ơng trình liệt kê và đếm các số nguyên tố từ 2 đến n, với n nhập từ bàn phím.
22. Viết ch−ơng trình nhập vào từ bàn phím lần l−ợt các số trong một dãy các số nguyên khác 0,
dấu hiệu chấm dứt là số 0. Tính giá trị trung bình của các số này.
23. Viết ch−ơng trình tính giá trị hàm ex theo công thức xấp xỉ :
ex= 1 + x/1! + x2/2! + ... + xn/n!.
Tổng trên chỉ giữ lại các số hạng thoả mãn ⎜xn/n! ⎜ > esp. Với x, esp nhập từ bàn phím và 0 <
esp < 1.
51
Các file đính kèm theo tài liệu này:
- giao_trinh_ngon_ngu_lap_trinh_pascal_phan_1.pdf