Một số bài tập pascal

Chia sẻ bởi Nguyễn Văn Vinh | Ngày 14/10/2018 | 27

Chia sẻ tài liệu: một số bài tập pascal thuộc Tư liệu tham khảo

Nội dung tài liệu:

1. Mô hình máy tính của Von-Neuman như sau:



2. Đổi các hệ số: 101110112 = BB16 ; 7128= 10210= 11001102
3. Trình biên dịch, còn gọi là phần mềm biên dịch, compiler hay gọi tắt là trình dịch, là một chương trình máy tính làm công việc dịch một chuỗi các câu lệnh được viết bằng một ngôn ngữ lập trình (gọi là ngôn ngữ nguồn hay mã nguồn), thành một chương trình tương đương nhưng ở dưới dạng một ngôn ngữ máy tính mới (gọi là ngôn ngữ đích) và thường là ngôn ngữ ở cấp thấp hơn, như ngôn ngữ máy. Chương trình mới được dịch này gọi mã đối tượng.Thông dịch là quá trình dịch thuật từ văn bản trong ngôn ngữ nguồn (nguyên bản) thành văn bản trong ngôn ngữ đích (bản dịch) thực hiện bởi các chuyên gia thông thạo cả hai ngôn ngữ, gồm hai bước thông và dịch. Nhiều người còn phân chia các ngôn ngữ lập trình cấp cao thành các ngôn ngữ biên dịch và các ngôn ngữ thông dịch. Mặc dù vậy, rất hiếm khi một ngôn ngữ lại đòi hỏi là loại biên dịch hay loại thông dịch. Các trình biên dịch và các phần mềm thông dịch là các sự thực hiện của các ngôn ngữ chứ không phải bản thân ngôn ngữ.Việc phân chia này chỉ phản ánh thực trạng phổ biến của sự thực hiện của các ngôn ngữ chẳng hạn như BASIC được nhiều người cho là một ngôn ngữ thông dịch và C thì lại được xem là ngôn ngữ biên dịch nhưng thực tế ra vẩn tồn tại các trình biên dịch cho BASIC và các phần mềm thông dịch cho C.
4.
5. Trình bày ngắn gọn về cấu trúc một chương trình pascal:
I) Phần tiêu đề: Bắt đầu bởi từ khoá Program. Ví dụ Program Giai PTB2; (phần này có hoặc không, không bắt buộc phải có)
II) Phần khai báo: bao gồm các kiểu khai báo sau:
+ Khai báo nhãn: label….
+Khai báo hằng: const …
+ Khai báo kiểu: Type …
+Khai báo biến: Var ….
+ Khai báo thủ tục Procedure ….
+ Khai báo hàm fucntion …
III) Phần thân chương trình: Bao gồm các lệnh và chúng phải được đặt trong vòng Begin và end.
Để thực hiện được trong một chương trình pascal thì yêu cầu kết thúc câu lệnh phải “;”. . nếu bên trong cấu trúc điều khiển có từ 2 lệnh trở lên phải đặt chúng trong nằmg giữa phần begin và end; trước lệnh Else không có dấu chấm phẩy(;).

6. Trước và sau khi thực hiện chương trình con:
Program chuongtrinh2;
Var x,y,z: integer;
Procedure CTC(var m:integer);
Begin
m:=m+n;
x:=x+m;
z:=z+1;
End;
Begin
x:=1;
y:=2;
z:=3;
CTC(x,y);
End.
* Đây là một chương trình có lỗi, chương trình không thể thực hiện được. vì trong chương trình con có sử dụng công thức m:=m+n; nhưng thật ra biến n chưa khai báo. Trong chương trình chính ta gọi chương trình con CTC(x,y) , nhưng ở chương trình con CTC(var m:integer) một biến số nên chương trình con không thể thực hiện được.

7. Cho biết các lỗi sai trong đoạn chương trình sau:
Program chuongtrinh 1; ( program chuongtrinh1
Var s,t,i: integer; ( var t,i:integer; s:real;
a:array[1,10] of integer; ( a:array[1..10]of integer;
Begin
For i:=1 to 10 do readln(a[i]);
t:=0 (t:=0;
for i:=1 to 10 do t:=t+a[i];
s:=t/10;
writeln(‘trung binh cong la:’,s);
readln;
end.
8. Trình bày cơ chế gọi hàm và truyền tham số trong Pascal.
Trong chương trình mẹ phải có lời gọi đến các chương trình con. Hàm thì được gọi như một hàm chuẩn đã biết ( xem như một toán hạng dùng trong biểu thức, còn thủ tục thì được gọi như một lệnh (ví dụ: Clrscr;). Các tham biến ghi sau tên hàm, tên thủ tục được gọi là những tham biến hình thức, các tham biến này được liệt kê cách nhau bởi dấu phẩy. những tham biến này được khai báo bởi 1 trong 2 dạng sau đây:
+ Tham biến 1, tham biến 2, …., tham biến n: kiểu
+ Var tham biến 1, tham biến 2 ,…, tham biến n: kiểu
Những tham biến khai báo không có var được gọi là tham biến trị, những tham biên khai báo có var được gọi là tham biến biến.
Trong đó tham biến trị khi sử dụng biến sẽ được truyền theo giá trị và vì vậy giá trị của biến thật sự tương ứng không thể thay đổi sau khi thực hiện chương trình con.
Tham biến biến : khi sử dụng nó sẽ được thay thế bằng địa chỉ tương ứng vì vậy khi giá trị của chúng sẽ bị thay đổi sau khi thực hiện chương trình con. Trong ngôn ngữ pascal có thể cho phép các hàm được gọi lồng nhau đây là một thế mạnh của ngôn ngữ này.

9. Một chương trình pascal viết tốt là một chương trình biết tận dụng khả năng lập trình của ngôn: Đó là biết sử dụng chương trình con, biết tổng hợp các kỹ năng có sẵn, từ thuật toán có cấu trúc làm cách nào để chuyển được sang ngôn ngưc lập trình Pascal.
PASCAL được thiết kế chủ yếu dùng để dạy lập trình, tuy nhiên nó đã trở nên phổ biến bên ngoài lớp học. Pascal yêu cầu tính cấu trúc khá nghiêm ngặt. Có các công cụ thương mại và miễn phí cho DOS, Windows, Mac, OS/2 và các HĐH họ Unix. Trình soạn thảo website BBEdit được viết bằng Pascal.



10.Những khó khăn khi viết trong chương trình pascal đòi hỏi phải hiểu về thuật toán và xác định được giá trị gắn cho biến, hàm và thủ tục. Thực sự, khó có thể nói NNLT nào tốt hơn. Với bất kỳ NN nào cũng đều có những chương trình được viết rất tốt hay dở tệ. Chất lượng của chương trình chịu ảnh hưởng bởi chất lượng của lập trình viên nhiều hơn là chất lượng của NN. NNLT khó nhất chính là NN đầu tiên mà bạn học. Có một số NN có thể giúp cho việc viết chương trình dễ hơn đối với một số dạng ứng dụng, và ngược lại. Ví dụ Pascal rất mạnh về lập trình có cấu trúc. nhưng nếu dùng để viết ứng dụng quản lý dữ liệu thì bạn sẽ phải vất vả xây dựng những thứ đã có sẵn trong dBase hay Foxpro. Việc xác định các yêu cầu và mục đích sẽ giúp bạn chọn được NN thích hợp. Hãy chọn NN phù hợp với công việc, hay tốt hơn, chọn cả hai. Nếu bạn định viết ứng dụng có yêu cầu xử lý giao diện, nên chọn NN có hỗ trợ đồ họa, như Visual Basic chẳng hạn. Bạn có thể đặt câu hỏi `NN nào thực hiện việc này dễ hơn?“ thay vì `Làm thế nào để thực hiện việc này với Pascal     Ý kiến của em Một cái áo không bắt buộc dùng chỉ một màu. Trong lập trình cũng vậy, không nhất thiết phải dùng một NN cho toàn bộ chương trình. Có các cách thức cho phép bạn `nhúng“ gần như bất kỳ NN nào vào một NN khác. Cách này giúp cho bạn khai thác ưu điểm của từng NN. Và một điều nên lưu ý: Không hẳn các NN mới hơn luôn là lựa chọn tốt hơn. Vì sao trong nhà trường lớp học vẫn còn phải sử dụng ngôn ngữ lập trình pascal vì ngôn ngữ này nhỏ gọn và dể sử dụng với người mớl làm quen vói ngôn ngữ lập trình. Giúp cho các em hình dung được sự lập trình có cấu trúc.     Trở lại câu hỏi ban đầu, `Nên học hay dùng ngôn ngữ lập trình nào?“, có thể bạn tìm thấy lời giải với vấn đề được đặt ngược lại: `Để làm gì?“. 11. Tính(5) ( Tính: = -5+Tính(4)(4+tính(3)(-3+tính(2)(2+Tính(1)(-1+tính(0)(0

13. program sucmanh;
Uses crt;
Type HT=record
Hten:string;
Smanh:integer;
Tt: integer;
Tb:real;
End;
Var tcuop:array[1..50] of HT;
n,I,max,tong: integer;
Begin
Clrscr;
Write(‘ cho biet so ten cuop co trong nha’);
Readln(n);
Begin
For i:=1 to n do
Begin
Writeln(‘ nhap ten cuop thu ‘,i)
With tcuop[i] do
Begin
Write(‘so thu tu:’); readln(tt);
Write(‘nhap ten’); readln(hten);
Write(‘ cho biet suc manh:’); readln(smanh);
End;
End;
End;
Max:= 0; tong:=0
For i:=1 to n do
Begin
With tcuop[i] do
If max tong:= tong+smanh;

If smanh=10 then
Begin
Begin
Writeln(tt);
Writeln(hten);
Writeln(smanh);
End;
End;
End;
Writeln(‘lon nhat : ‘,max, ‘ suc manh trung binh:’, tong/n:8:2);
Readln;
End.

14. Kết quả khi thực hiện chương sẽ cho ra như sau: 4 3 4 4 1 2 2 5

Program kiemtra;
Uses crt;
Var dayso: array[1..100] of integer;
Dem,I a:integer; t:boolean;
Procedure daytang;
Begin
For i:=1 to n do
For j:=i+1 to n do
If dayso[i]=a < dayso[j] then begin write(dayso[i]:5) ; writeln(‘dung’); end
Else
t:=false; writeln(‘ day khong tang dan’);
End;
Begin
Clrscr;
Write(‘ cho biet so phan tu cua day so’);
Readln(n);
Writeln(‘ nhap so phan tu cua day’);
Begin
For i:=1 to n do
Begin
Write(‘nhap phan tu thu a[‘,I,’]=’);
Readln(a[i]);
End;
Daytang;





Readln;
End.
50. Các lỗi sai trong đoạn chương trình sau:
Program chuong trinh 1 ( (tên chương trinh co khoảng cách)
Var s,a,b:integer;
Begin
Write(‘nhap a,b:’);
Readln(a,b);
s:= a/b; ( (sai vì khai báo s là số nguyên, nên không thể gắn s:=a/b được);
Writeln(‘ket qua la’,s);
End.



51. Program chuongtrinh2;
Var x,y,z: integer;
Procedure CTC(var m:integer; n:integer);
Begin
m:=m+n;
x:=x+m;
z:=z+1;
End;
Begin
x:=1;
y:=2;
z:=3;
CTC(x,y);
End.
(Trước chương trình giá trị cua x =1; y=2; z=3; sau khi thực hiện chương trình con giá trị x:=5; y=2; z=4.
Tính y = -1+1/22-1/32+……+ (-1)n/N2
Program tinhY;
Uses crt;
Var dau,n,i:integer; y:real;
Begin
Clrscr;
Write(‘ cho biet n=’); readln(n);
Dau=-1; y:=0;
For i:=1 to n do
Begin
Y:=y+dau/i*i;
Dau:=(-1)*dau ;
End;
Writeln( ‘ ket qua cua y la: y:8:2);
Readln;
End.

55. giải phương trình bạc hai ax2+bx+c=0
Program PTB2;
Uses crt;
Var a,b, c:integer; deta,x1,x2:real;
Begin
Clrscr;
Write(‘cho biet cac h so a,b va c:’);
Readln(a,b,c);
Begin
Deta:=b*b- 4*a*c;
If deta=0 then
Writeln(‘PT co 1 nghiem kep:’,-b/(2*a):10:2)
If deta > 0 then
Begin
X1:= (-b+sqrt(deta))/2*a;
X2:= (-b-sqrt(
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Nguyễn Văn Vinh
Dung lượng: 18,74KB| Lượt tài: 0
Loại file: rar
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)