Lập chương trình nhập mảng 2 chiều m hàng n côt. tính và in ra màn hình tổng các phần tử có chỉ số hàng chẵn, chỉ số cột lẹ M, N được nhập từ bàn phím.
Tìm hiểu các giải thuật sắp xếp cơ bản trên cấu trúc dữ liệu mảng Tìm hiểu các giải thuật tìm kiếm cơ bản trên cấu trúc dữ liệu mảng Đánh giá ...GiaiThuat.Com
Thứ Sáu, 24 tháng 2, 2012
Đảo ngược mảng 1 chiều
Dãy Tribonacci
Dãy Tribonacci là dãy 1 , 1 , 2 , 3 , 7 , 13 , 24... dãy này được sinh ra bới công thức đệ qui sau :
Tr(1) = 1 , Tr(2) = 1 , Tr(3) = 2 , Tr(k) = Tr(k-1)+Tr(k-2)+Tr(k-3) ... với 3< k <37
Mọi số tự nhiên N đều có thể biểu diễn duy nhất dưới dạng tổng của một số số trong dãy Tribonacci.
VD: 17 = 13 + 4; 30 = 24 + 4 + 2;
Cho trước số tự nhiên N nhập từ bàn phím. Viết chương trình tìm biểu diễn Tribonacci của số N.
Ý tưởng: Xây dựng 1 mảng số Tribonacci từ 1 tới 37 (đến 37 vì theo đề bài ...), rồi duyệt từng phần tử của dãy Tribonacci, nếu n> Tribonacci[i] thì in ra Tribonacci[i] và giảm n tới khi n<0 thì thôi.
Uses crt;
Const
max=37;
Var
a:array[1..max] of longint;
n,i:longint;
BEGIN
Clrscr;
a[1]:=1; a[2]:=1; a[3]:=2;
For i:=4 to max do
a[i]:=a[i-1]+a[i-2]+a[i-3];
Write('Nhap so n:'); readln(n);
i:=max;
While a[i]>n do i:=i-1;
Write(n,'=',a[i]);
n:=n-a[i];
While n>0 do
Begin
i:=i-1;
If n>=a[i] then
Begin
Write('+',a[i]);
n:=n-a[i];
End;
End;
Readln;
END.
Tr(1) = 1 , Tr(2) = 1 , Tr(3) = 2 , Tr(k) = Tr(k-1)+Tr(k-2)+Tr(k-3) ... với 3< k <37
Mọi số tự nhiên N đều có thể biểu diễn duy nhất dưới dạng tổng của một số số trong dãy Tribonacci.
VD: 17 = 13 + 4; 30 = 24 + 4 + 2;
Cho trước số tự nhiên N nhập từ bàn phím. Viết chương trình tìm biểu diễn Tribonacci của số N.
Ý tưởng: Xây dựng 1 mảng số Tribonacci từ 1 tới 37 (đến 37 vì theo đề bài ...), rồi duyệt từng phần tử của dãy Tribonacci, nếu n> Tribonacci[i] thì in ra Tribonacci[i] và giảm n tới khi n<0 thì thôi.
Uses crt;
Const
max=37;
Var
a:array[1..max] of longint;
n,i:longint;
BEGIN
Clrscr;
a[1]:=1; a[2]:=1; a[3]:=2;
For i:=4 to max do
a[i]:=a[i-1]+a[i-2]+a[i-3];
Write('Nhap so n:'); readln(n);
i:=max;
While a[i]>n do i:=i-1;
Write(n,'=',a[i]);
n:=n-a[i];
While n>0 do
Begin
i:=i-1;
If n>=a[i] then
Begin
Write('+',a[i]);
n:=n-a[i];
End;
End;
Readln;
END.
Số hoàn thiện
Một số có tỗng các ước nhỏ hơn nó bằng chính nó dc gọi là số hoàn chỉnh.VD 6 có ước nhỏ hơn nó là 1,2,3. Tổng là 1+2+3=6.Viết chương trình xét xem một số n dược nhập từ bàn phím có phải là số hoàn chỉnh không.
PROGRAM hoanthien;
VAR n:INTEGER;
FUNCTION kiemtra(x:INTEGER):BOOLEAN;
VAR tam,i:INTEGER;
BEGIN
tam:=0; kiemtra:=FALSE;
FOR i:= 1 TO (x DIV 2) DO
IF x MOD i = 0 THEN tam:=tam+i;
IF tam = x THEN kiemtra:=TRUE;
END;
BEGIN
writeln('Nhap so can kiem tra ');
readln(n);
IF kiemtra(n) THEN writeln('So ',n,' la so hoan thien')
ELSE
writeln('So ',n,' khong phai la so hoan thien');
readln;
END.
PROGRAM hoanthien;
VAR n:INTEGER;
FUNCTION kiemtra(x:INTEGER):BOOLEAN;
VAR tam,i:INTEGER;
BEGIN
tam:=0; kiemtra:=FALSE;
FOR i:= 1 TO (x DIV 2) DO
IF x MOD i = 0 THEN tam:=tam+i;
IF tam = x THEN kiemtra:=TRUE;
END;
BEGIN
writeln('Nhap so can kiem tra ');
readln(n);
IF kiemtra(n) THEN writeln('So ',n,' la so hoan thien')
ELSE
writeln('So ',n,' khong phai la so hoan thien');
readln;
END.
Đếm số nguyên tổ trong mảng 1 chiều
Trong bài viết trước, Code Pascal đã giới thiệu cách xác định tính nguyên tố của 1 số được nhập vào từ bàn phím. Mở rộng đề bài ra thành đếm số nguyên tố trong dãy số N được nhập vào từ bàn phím cũng không quá khó.
Có rất nhiều cách để giải bài toán này, cách dưới đây tuy không bám sát vào cách làm trong bài viết Kiểm tra số nguyên tổ trong pascal nhưng cũng khá dễ hiểu.
Có rất nhiều cách để giải bài toán này, cách dưới đây tuy không bám sát vào cách làm trong bài viết Kiểm tra số nguyên tổ trong pascal nhưng cũng khá dễ hiểu.
var i,j,n:Integer;
A:array[1..50] of Integer;
begin
write('nhap n:');
readln(n);
for i:=1 to n do
begin
write('nhap a[',i,'] ');
readln(a[i]);
end;
j:=1;
for i:=1 to n do
if a[i]>1 then
begin
repeat
inc(j);
until (a[i] mod j=0);
if j>(a[i] div 2) then inc(d);
j:=1;
end;
write('Co ',d,' so ngto trog day');
readln;
end.
Kiểm tra số nguyên tổ trong pascal
Nhập vào 1 số. Xác định xem số đó có phải số nguyên tố hay không.
Đây là một bài toán rất căn bản trong Pascal. Ý tưởng: Số nguyên tố là số chia cho 1 và chính nó. Giả sử số vừa nhập vào là n, ta cho i chạy từ 2 đến n-1, nếu n chia hết cho i trong bất cứ lần lặp nào thì có nghĩa là n không nguyên tố, nếu không chia hết cho bất cứ lần lặp nào là nguyên tố. Về nguyên tắc là như vậy, nhưng người ta đã chứng minh được rằng chỉ cần xét từ 1 đến phần nguyên căn 2 của N. Như thế thuật toán sẽ tối ưu hơn.
program kiem_tra_nguyen_to;
uses crt;
var n,i:integer; bl:boolean;
begin
clrscr;
bl:=true;
write('nhap vao so can kiem tra tinh nguyen to: '); readln(n);
if n<=1 then bl:=false;
for i:=2 to trunc(sqrt(n)) then
if n mod i=0 then bl:=false;
if bl=true then write('so vua nhap nguyen to.')
else write('so vua nhap khong nguyen to.');
readln;
end.
Bouns: Chứng minh: Chỉ cần xét từ 1 đến phần nguyên căn 2 của N thay vì xét đến N:
Đây là một bài toán rất căn bản trong Pascal. Ý tưởng: Số nguyên tố là số chia cho 1 và chính nó. Giả sử số vừa nhập vào là n, ta cho i chạy từ 2 đến n-1, nếu n chia hết cho i trong bất cứ lần lặp nào thì có nghĩa là n không nguyên tố, nếu không chia hết cho bất cứ lần lặp nào là nguyên tố. Về nguyên tắc là như vậy, nhưng người ta đã chứng minh được rằng chỉ cần xét từ 1 đến phần nguyên căn 2 của N. Như thế thuật toán sẽ tối ưu hơn.
program kiem_tra_nguyen_to;
uses crt;
var n,i:integer; bl:boolean;
begin
clrscr;
bl:=true;
write('nhap vao so can kiem tra tinh nguyen to: '); readln(n);
if n<=1 then bl:=false;
for i:=2 to trunc(sqrt(n)) then
if n mod i=0 then bl:=false;
if bl=true then write('so vua nhap nguyen to.')
else write('so vua nhap khong nguyen to.');
readln;
end.
Bouns: Chứng minh: Chỉ cần xét từ 1 đến phần nguyên căn 2 của N thay vì xét đến N:
Lấy ví dụ số không nguyên tố:
9=3*3
12=3*4
18=2*9=3*6
20=4*5=2*10
trong các ví dụ trên, các số không nguyên tố được phân tích thành tích các cặp ước của chúng, trong mỗi cặp số nhỏ đứng trước, số lớn đứng sau. Trong mỗi cặp, ta có thể thấy rõ một điều: số đứng trước (nhỏ hơn) luôn luôn nhỏ hơn hoặc bằng căn bậc hai của số cần xét. Ví dụ ta thấy 20=4*5, rõ ràng 4 nhỏ hơn căn bậc hai của 20. Bạn tự xét các ví dụ khác nhé. Có thể chứng minh được điều này bằng toán học như sau:
Chứng minh: Gọi số cần xét là n, căn bậc hai của nó là x, hai ước tương ứng có tích bằng n của nó là a và b(a<>b), ta cần chứng minh a<x hoặc b<x. Vì a và b có vai trò tương đương, nên ta giả sử a<b.
Giả sử a>x và b>x, ta có a*b>x*x=n => trái với giải thiết. Vậy trong hai số a và b, phải có một số nhỏ hơn x.
12=3*4
18=2*9=3*6
20=4*5=2*10
trong các ví dụ trên, các số không nguyên tố được phân tích thành tích các cặp ước của chúng, trong mỗi cặp số nhỏ đứng trước, số lớn đứng sau. Trong mỗi cặp, ta có thể thấy rõ một điều: số đứng trước (nhỏ hơn) luôn luôn nhỏ hơn hoặc bằng căn bậc hai của số cần xét. Ví dụ ta thấy 20=4*5, rõ ràng 4 nhỏ hơn căn bậc hai của 20. Bạn tự xét các ví dụ khác nhé. Có thể chứng minh được điều này bằng toán học như sau:
Chứng minh: Gọi số cần xét là n, căn bậc hai của nó là x, hai ước tương ứng có tích bằng n của nó là a và b(a<>b), ta cần chứng minh a<x hoặc b<x. Vì a và b có vai trò tương đương, nên ta giả sử a<b.
Giả sử a>x và b>x, ta có a*b>x*x=n => trái với giải thiết. Vậy trong hai số a và b, phải có một số nhỏ hơn x.
Dựa vào đặc điểm trên, ta sẽ giới hạn phạm vi của i là 2->n-1 thành 2->sqrt(n). Tuy nhiên, sqrt(n) với n không chính phương sẽ ra số vô tỉ, trong khi i là số nguyên, vậy cần làm tròn sqrt(n). Phạm vi mới sẽ là 2->trunc(sqrt(n)).
Thứ Năm, 23 tháng 2, 2012
In bảng cửu chương
Dãy số Fibonaci
Phân loại lứa tuổi
Nhập họ tên và năm sinh của người và cho biết người này thuộc lứa tuổi nào: sơ sinh, nhi đồng, thiếu niên, thanh niên, trung niên, người lớn tuổi. Biết rằng:
+ Sơ sinh tuổi từ 0->0
+ Nhi đồng tuổi từ 2->9
+ Thiếu niên tuổi từ 10->15
+ Thanh niên tuổi 16->32
+ Trung niên tuổi từ 33 -> 50
+ Người già tuổi từ 50 trở lên
uses crt;var
a:array[1..100] of longint;
i,n:longint;
begin
clrscr;
write('nhap so nguoi:');
readln(n);
for i:=1 to n do
begin
write('nhap tuoi cua nguoi thu ',i,':');
readln(a[i]);
end;
for i:=1 to n do
begin
write('nguoi thu',i,':');
case a[i] of
0:writeln('tre so sinh');
2..9:writeln('nhi dong');
10..5:writeln('thieu nien');
16..32:writeln('thanh nien');
33..50:writeln('trung nien');
Else writeln('nguoi gia');
end;
end;
readln;
end.
+ Sơ sinh tuổi từ 0->0
+ Nhi đồng tuổi từ 2->9
+ Thiếu niên tuổi từ 10->15
+ Thanh niên tuổi 16->32
+ Trung niên tuổi từ 33 -> 50
+ Người già tuổi từ 50 trở lên
uses crt;var
a:array[1..100] of longint;
i,n:longint;
begin
clrscr;
write('nhap so nguoi:');
readln(n);
for i:=1 to n do
begin
write('nhap tuoi cua nguoi thu ',i,':');
readln(a[i]);
end;
for i:=1 to n do
begin
write('nguoi thu',i,':');
case a[i] of
0:writeln('tre so sinh');
2..9:writeln('nhi dong');
10..5:writeln('thieu nien');
16..32:writeln('thanh nien');
33..50:writeln('trung nien');
Else writeln('nguoi gia');
end;
end;
readln;
end.
Phân loại lao động của công nhân
1 xí nghiệp tính tiền thưởng hàng tháng cho công nhân theo công thức: tiền thưởng bằng hệ số * 200, trong đó hệ số được tính dựa vào kết quả bình chọn phân loại a, b, c và nơi làm việc cơ sở 1 hay 2 của mỗi người trong tháng cụ thể trong bảng sau:
|Loại 1|___|CS1|___|CS2|
|A|_______|2.0|___ |2.5|
|B|_______|1.5|___ |1.8|
|C|_______|1.0|___ |1.0|
Viết chương trình nhập họ tên, phân loại lao động và nơi làm việc của công nhân. Tính tiền thưởng cho người đó.
var ten, cs: string;
loai: char;
i,n: integer;
hs,tien: real;
begin
write('Nhap so cong nhan: ');
readln(n);
for i:=1 to n do
begin
write('Nhap ten cong nhan thu ',i,': ');readln(ten);
write('Nhap phan loai lao dong (a/b/c): ');readln(loai);
write('Nhap noi lam viec (cs1/cs2): ');readln(cs);
Case loai of
'a' : if cs='cs1' then hs:=2.0
else hs:=2.5;
'b' : if cs='cs1' then hs:=1.5
else hs:=1.8;
'c' : hs:=1.0 ;
end;
tien:=hs*200;
writeln('So tien thuong cua cong nhan ',ten,' la: ',tien:0:2);
end;
readln;
end.
|Loại 1|___|CS1|___|CS2|
|A|_______|2.0|___ |2.5|
|B|_______|1.5|___ |1.8|
|C|_______|1.0|___ |1.0|
Viết chương trình nhập họ tên, phân loại lao động và nơi làm việc của công nhân. Tính tiền thưởng cho người đó.
var ten, cs: string;
loai: char;
i,n: integer;
hs,tien: real;
begin
write('Nhap so cong nhan: ');
readln(n);
for i:=1 to n do
begin
write('Nhap ten cong nhan thu ',i,': ');readln(ten);
write('Nhap phan loai lao dong (a/b/c): ');readln(loai);
write('Nhap noi lam viec (cs1/cs2): ');readln(cs);
Case loai of
'a' : if cs='cs1' then hs:=2.0
else hs:=2.5;
'b' : if cs='cs1' then hs:=1.5
else hs:=1.8;
'c' : hs:=1.0 ;
end;
tien:=hs*200;
writeln('So tien thuong cua cong nhan ',ten,' la: ',tien:0:2);
end;
readln;
end.
Kiểm tra đồng thời tính chẵn lẽ của 2 số
Bài toán gà chó
Vừa gà vừa chó, bó lại cho tròn, ba mươi sáu con, một trăm chân chẵn. Hỏi có bảo nhiêu chó gà?
Thì số chó là 36 - x
Số chân gà là 2x, số chân chó là 4 (36 - x)
Tổng số chân là 100 nên theo bài ra ta có phương trình:
2x + 4(36 - x ) = 100
+ Giải phương trình trên :
2x + 4( 36 - x) = 100
=> x = 22
uses crt;
var g,c: integer;
begin
clrscr;
for c:=1 to 25 do
begin
g:=36-c;
if 4*c+2*g=100 then
write('So ga: ',g,' So cho: ',c);
end;
readln;
end.
Bài giải
+ Gọi số gà là x ( Điều kiện x nguyên dương, x< 36)Thì số chó là 36 - x
Số chân gà là 2x, số chân chó là 4 (36 - x)
Tổng số chân là 100 nên theo bài ra ta có phương trình:
2x + 4(36 - x ) = 100
+ Giải phương trình trên :
2x + 4( 36 - x) = 100
=> x = 22
Lập trình trong Pascal
uses crt;
var g,c: integer;
begin
clrscr;
for c:=1 to 25 do
begin
g:=36-c;
if 4*c+2*g=100 then
write('So ga: ',g,' So cho: ',c);
end;
readln;
end.
Nhập số thực hỏi phép tính
Viết chuơng trình nhập 2 số thực, sau đó hỏi phép tính cần thực hiện.
uses crt;
var a,b,kq: real;
pt: char;
begin
clrscr;
write('Nhap 2 so a, b: ');
readln(a,b);
writeln ('Nhap phep tinh can thuc hien: ');
readln(pt);
case pt of
'+' : kq:=a+b;
'-' : kq:=a-b;
'*' : kq:=a*b;
'/' : kq:=a/b;
end;
write('Ket qua: ',kq:0:2);
readln ;
end.
uses crt;
var a,b,kq: real;
pt: char;
begin
clrscr;
write('Nhap 2 so a, b: ');
readln(a,b);
writeln ('Nhap phep tinh can thuc hien: ');
readln(pt);
case pt of
'+' : kq:=a+b;
'-' : kq:=a-b;
'*' : kq:=a*b;
'/' : kq:=a/b;
end;
write('Ket qua: ',kq:0:2);
readln ;
end.
Kiểm tra tam giác
Nhập 3 số thực, kiểm tra xem chúng có phải là độ dài của 3 cạnh tam giác không, nếu có thì nó là tam giác gì (tam giác cân, tam giác đều, tam giác vuông)?
uses crt;
var a,b,c: real;
begin
clrscr;
write('Nhap 3 so a, b, c: ');readln(a,b,c);
if (a+b>c)and(a+c>b)and(b+c>a) then
begin
write('3 canh vua nhap la tam giac');
if (a=b)or(b=c)or(a=c) then
begin
if(a=b)and(b=c) then
write(' deu')
else
write(' can');
end;
if (a*a=b*b+c*c)or(b*b=a*a+c*c)or(c*c=a*a+b*b) then
write(' vuong');
end
else
write('3 canh vua nhap ko phai la tam giac');
readln;
end.
uses crt;
var a,b,c: real;
begin
clrscr;
write('Nhap 3 so a, b, c: ');readln(a,b,c);
if (a+b>c)and(a+c>b)and(b+c>a) then
begin
write('3 canh vua nhap la tam giac');
if (a=b)or(b=c)or(a=c) then
begin
if(a=b)and(b=c) then
write(' deu')
else
write(' can');
end;
if (a*a=b*b+c*c)or(b*b=a*a+c*c)or(c*c=a*a+b*b) then
write(' vuong');
end
else
write('3 canh vua nhap ko phai la tam giac');
readln;
end.
Thứ Tư, 22 tháng 2, 2012
Sắp xếp mảng 1 chiều
Viết chương trình nhập vào một mảng gồm N số nguyên. Sắp xếp lại mảng theo thứ tự tăng dần và in kết quả ra màn hình.
Ý tưởng:
Cho biến i chạy từ 1 đến N-1, đồng thời cho biến j chạy từ i+1 đến N: Nếu A[i]>A[j] thì đổi chổ A[i], A[j].
Dưới đây là thuật toán sắp xếp mảng 1 chiều:
Ý tưởng:
Cho biến i chạy từ 1 đến N-1, đồng thời cho biến j chạy từ i+1 đến N: Nếu A[i]>A[j] thì đổi chổ A[i], A[j].
Dưới đây là thuật toán sắp xếp mảng 1 chiều:
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var A:Mang;
N,i,j,Tam:Integer;
Begin
{Nhập mảng}
Write('Nhap N='); Readln(N);
For i:=1 To N Do
Begin
Write('A[',i,']='); Readln(A[i]);
End;
{Sắp xếp}
For i:=1 To N-1 Do
For j:=i+1 To N Do
If A[i]>A[j] Then
Begin
Tam:=A[i]; A[i]:=A[j]; A[j]:=Tam;
End;
{In kết quả ra màn hình}
Writeln('Ket qua sau khi sap xep:');
For i:=1 To N Do Write(A[i]:5);
Readln;
End.
Tìm giá trị lớn nhất mảng 1 chiều
Đề bài: Viết chương trình tìm giá trị lớn nhất của một mảng chứa các số nguyên gồm N phần tử.
Ý tưởng:
- Cho số lớn nhất là số đầu tiên: Max:=a[1].
- Duyệt qua các phần tử a[i], với i chạy từ 2 tới N: Nếu a[i]>Max thì thay Max:=a[i];
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var A:Mang;
N,i,Max:Integer;
Begin
Write('Nhap N='); Readln(N);
For i:=1 To N Do
Begin
Write('A[',i,']='); Readln(A[i]);
End;
Max:=A[1];
For i:=2 To N Do
If Max<A[i] Then Max:=A[i];
Writeln('Phan tu lon nhat cua mang:', Max);
Readln;
End.
Ý tưởng:
- Cho số lớn nhất là số đầu tiên: Max:=a[1].
- Duyệt qua các phần tử a[i], với i chạy từ 2 tới N: Nếu a[i]>Max thì thay Max:=a[i];
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var A:Mang;
N,i,Max:Integer;
Begin
Write('Nhap N='); Readln(N);
For i:=1 To N Do
Begin
Write('A[',i,']='); Readln(A[i]);
End;
Max:=A[1];
For i:=2 To N Do
If Max<A[i] Then Max:=A[i];
Writeln('Phan tu lon nhat cua mang:', Max);
Readln;
End.
Thứ Năm, 16 tháng 2, 2012
Tính trung bình cộng các số dương, âm nhập vào từ mảng 1 chiều trong Pascal
Viết chương trình nhập số nguyên N (0 < N ≤ 10 000) và mảng a gồm N số nguyên. Tính và in ra trung bình cộng của các số âm, số dương trong a. Không tính số 0.
Ví dụ : a[] = {1, -6, 0, 3, -1}. Trung bình cộng là -0.75
PROGRAM tbc_am_duong_mang;
USES crt;
VAR a:ARRAY[1..100] OF REAL;
i,n,x,y:INTEGER;
tongam,tongduong,tba,tbd:REAL;
BEGIN
clrscr;
write('So phan tu cua day n= ');readln(n);
FOR i:=1 TO n DO
BEGIN
write('Nhap phan tu a[',i,']: ');
readln(a[i]);
END;
tongam:=0; x:=0;
FOR i:=1 TO n DO
IF a[i]<0 THEN
BEGIN tongam:=tongam+a[i];
x:=x+1;
END;
tba:=tongam/x;
write('TB cong cac so am la: ',tba:5:1);
writeln;
tongduong:=0; y:=0;
FOR i:=1 TO n DO
IF a[i]>0 THEN
BEGIN tongduong:=tongduong+a[i];
y:=y+1;
END;
tbd:=tongduong/y;
write('TB cong cac so duong la: ',tbd:5:1);
readln;
END.
Ví dụ : a[] = {1, -6, 0, 3, -1}. Trung bình cộng là -0.75
PROGRAM tbc_am_duong_mang;
USES crt;
VAR a:ARRAY[1..100] OF REAL;
i,n,x,y:INTEGER;
tongam,tongduong,tba,tbd:REAL;
BEGIN
clrscr;
write('So phan tu cua day n= ');readln(n);
FOR i:=1 TO n DO
BEGIN
write('Nhap phan tu a[',i,']: ');
readln(a[i]);
END;
tongam:=0; x:=0;
FOR i:=1 TO n DO
IF a[i]<0 THEN
BEGIN tongam:=tongam+a[i];
x:=x+1;
END;
tba:=tongam/x;
write('TB cong cac so am la: ',tba:5:1);
writeln;
tongduong:=0; y:=0;
FOR i:=1 TO n DO
IF a[i]>0 THEN
BEGIN tongduong:=tongduong+a[i];
y:=y+1;
END;
tbd:=tongduong/y;
write('TB cong cac so duong la: ',tbd:5:1);
readln;
END.
Thứ Tư, 15 tháng 2, 2012
Giải phương trình bậc hai bằng Pascal
Ý tưởng: Để giải phương trình bậc 2 bằng Pascal, chúng ta sẽ tính del-ta như khi giải phương trình bậc 2 bình thường.
PROGRAM ptb2;
USES crt;
VAR a,b,c,x1,x2,d:REAL;
BEGIN
clrscr;
REPEAT
write('Nhap cac he so a, b, c: ');
readln(a,b,c);
UNTIL a<>0;
d:=sqr(b)-4*a*c;
IF d<0 THEN write('Phuong trinh vo nghiem!')
ELSE
BEGIN
x1:=(-b-sqrt(d))/(2*a);
x2:=(-b+sqrt(d))/(2*a);
IF d=0 THEN writeln('Phuong trinh co nghiem kep x = ',x1:5:1)
ELSE writeln('Phuong trinh co 2 nghiem phan biet: ',x1:5:1,x2:5:1);
END;
readln;
END.
PROGRAM ptb2;
USES crt;
VAR a,b,c,x1,x2,d:REAL;
BEGIN
clrscr;
REPEAT
write('Nhap cac he so a, b, c: ');
readln(a,b,c);
UNTIL a<>0;
d:=sqr(b)-4*a*c;
IF d<0 THEN write('Phuong trinh vo nghiem!')
ELSE
BEGIN
x1:=(-b-sqrt(d))/(2*a);
x2:=(-b+sqrt(d))/(2*a);
IF d=0 THEN writeln('Phuong trinh co nghiem kep x = ',x1:5:1)
ELSE writeln('Phuong trinh co 2 nghiem phan biet: ',x1:5:1,x2:5:1);
END;
readln;
END.
Chủ Nhật, 12 tháng 2, 2012
Bài 4: Mảng trong Pascal
1. Mảng 1 chiều:
- Có thể hiểu nôm na: Mảng 1 chiều là dãy số hữu hạn.
vd: nhiệt độ mỗi ngày trong tuần (tháng/năm), cấp số cộng, cấp số nhân...
- Chỉ số của mảng:
vd: Xét mảng: 10 20 30 5 6 7
là một dãy các số tự nhiên bất kì có 6 phần tử mà
phần tử thứ 1 là 10
phần tử thứ 2 là 20
phần tử thứ 3 là 30
phần tử thứ 4 là 5
phần tử thứ 5 là 6
phần tử thứ 6 là 7
cũng được coi là mảng 1 chiều, trong đó:
- Cách tham chiếu đến mảng: A[i] với i là chỉ số phân tử trong mảng.
vd: Vẫn xét mảng 10 20 30 5 6 7
A[1]=10; A[2]=20; A[3]=30; A[4]=50; A[5]=6; A[7]=7
- Cách khai báo mảng: Có 2 cách khai báo:
vd:
vd:
type mang=array[1..100] of integer;
var a,b,c:mang;
- Cách nhập/xuất mảng 1 chiều:
2. Mảng 2 chiều:
- Khái niệm: Nếu mảng 1 chiều là dãy thì mảng 2 chiều là bảng các phần tử cùng kiểu (bảng các số).
- Tham chiếu: Vì mảng 2 chiều là bảng nên sẽ cần chỉ số hàng và chỉ số cột: A[i,j] với i là chỉ số hàng, j là chỉ số cột.
- Khai báo: Tương tự như mảng 1 chiều nhưng thêm chỉ số cột.
- Cách nhập/xuất mảng 2 chiều:
- Có thể hiểu nôm na: Mảng 1 chiều là dãy số hữu hạn.
vd: nhiệt độ mỗi ngày trong tuần (tháng/năm), cấp số cộng, cấp số nhân...
- Chỉ số của mảng:
vd: Xét mảng: 10 20 30 5 6 7
là một dãy các số tự nhiên bất kì có 6 phần tử mà
phần tử thứ 1 là 10
phần tử thứ 2 là 20
phần tử thứ 3 là 30
phần tử thứ 4 là 5
phần tử thứ 5 là 6
phần tử thứ 6 là 7
Lưu ý!
Xét dãy: Ti Suu Dan Mao Thin Ti Ngo Mui Than Dau Tuat Hoicũng được coi là mảng 1 chiều, trong đó:
- Phần tử 1 là Ti
- Phần tử 2 là Suu
- Phần tử 3 là Dan
- Phần tử 4 là Mao
- Phần tử 5 là Thin ...
- Cách tham chiếu đến mảng: A[i] với i là chỉ số phân tử trong mảng.
vd: Vẫn xét mảng 10 20 30 5 6 7
A[1]=10; A[2]=20; A[3]=30; A[4]=50; A[5]=6; A[7]=7
- Cách khai báo mảng: Có 2 cách khai báo:
- Khai báo trực tiếp: Thường thì cách khai báo trực tiếp được dùng nhiều hơn vì nó ngắn gọn.
var <tên mảng>:array[kiểu chỉ số] of <kiểu phần tử>;
vd:
a:array[1..100] of integer;
b,c:array[1..250] of integer;
b,c:array[1..250] of integer;
- Khai báo gián tiếp:
type <tên kiểu mảng>=array[kiểu phần tử] of <kiểu chỉ số>;
var <tên mảng>:<tên kiểu mảng>;
vd:
type mang=array[1..100] of integer;
var a,b,c:mang;
- Cách nhập/xuất mảng 1 chiều:
var a:array[1..100] of integer;
n,i:integer;
begin
{Nhập số phần tử mảng}
writeln('Nhap so phan tu cua mang:'); readln(n);
{Nhập mảng}
for i:=1 to n do
begin
write('A[',i,']='); readln(A[i]);
end;
write('A[',i,']='); readln(A[i]);
end;
{Xuất mảng}
for i:=1 to n do
writeln(A[i]);
end.writeln(A[i]);
2. Mảng 2 chiều:
- Khái niệm: Nếu mảng 1 chiều là dãy thì mảng 2 chiều là bảng các phần tử cùng kiểu (bảng các số).
- Tham chiếu: Vì mảng 2 chiều là bảng nên sẽ cần chỉ số hàng và chỉ số cột: A[i,j] với i là chỉ số hàng, j là chỉ số cột.
- Khai báo: Tương tự như mảng 1 chiều nhưng thêm chỉ số cột.
- Cách nhập/xuất mảng 2 chiều:
var A:array[1..50,1..50] of Integer;
i,j,N,Max,k,c,M:Integer;
begin
write('So hang cot:');readln(N,M);Max:=0;
i,j,N,Max,k,c,M:Integer;
begin
write('So hang cot:');readln(N,M);Max:=0;
for i:=1 to N do
for j:=1 to M do
begin
write('A[',i,',',j,']=');readln(A[i,j]);
end;
for j:=1 to M do
begin
write('A[',i,',',j,']=');readln(A[i,j]);
end;
for i:=1 to N do
begin
for j:=1 to M do
for j:=1 to M do
write(A[i,j]);
end;
end.Tổng hợp và biên tập
Thứ Năm, 9 tháng 2, 2012
Bài 3: Câu lệnh vòng lặp trong Pascal (for, while, repeat)
- Đánh răng mỗi ngày hai lần, học Tin học mỗi tuần 2 tiết, mỗi ngày tắm một lần...
- Học cho đến khi thuộc bài, rửa tách trà cho đến khi sạch...
Trong cuộc sống, những hành động trên được gọi là lặp đi lặp lặp lại nhiều. Trong Pascal, cách mô tả công việc (hoạt động) được lặp lại nhiều lần gọi là cấu trúc lặp. Có 3 loại cấu trúc vòng lặp như sau:
1. Vòng lặp for
- Đây là vòng lặp căn bản và được sử dụng nhiều nhất trong kiến thức phổ thông. Vòng lặp for dùng để lặp với số lần định trước, có cấu trúc như sau:
for <biến đếm>:= <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
Dạng khác (giảm dần biến đếm của vòng lặp for):
for <biến đếm>:= <giá trị cuối> downto 1 do <câu lệnh>;
vd: Tính tổng các số liên tiếp từ 1 đến 100
program Tinh_tong;
var i,S:integer;
begin
S:=0;
for i:=1 to 100 do S:=S+1;
write('Tổng là:',S);
readln;
end.
2. Vòng lặp while
- Cú pháp:
while <điều kiện> do <câu lệnh>
- Câu lệnh sẽ được lặp lại nhiều lần cho đến khi nào điều kiện còn đúng (nếu điều kiện sai thì các lệnh này sẽ không thực hiện nữa). Đối với lệnh này điều kiện sẽ được kiểm tra trước khi thực hiện lệnh nên nên điều kiện sai thì không có lệnh nào được thực hiện.
vd: Tính tổng các số liên tiếp từ 1 đến 100
var i: byte;
S: longint;
begin
S:= 0;
i:= 1;
while i <= 100 do
begin
S:= S + i;
i:= i +1;
end;
write('Tong tu 1 den 100 la:',S);
readln;
end.
3. Vòng lặp repeat
- Cú pháp:
repeat
<câu lệnh>;
until <điều kiện>;
- Câu lệnh giữa repeat và until sẽ được lặp lại nhiều lần khi nào điều kiện sai, nếu điều kiện đúng thì ngưng (ngược với vòng lặp while). Đối với lệnh này điều kiện sẽ được kiểm tra sau khi thực hiện các lệnh giữa repeat và until nên ít nhất các lệnh sẽ được thực hiện trước 1 lần rồi mới kiểm tra điều kiện đúng hay sai (nếu sai thì thực hiện tiếp vòng lặp, đúng thì ngưng).
vd: Tính tổng các số liên tiếp từ 1 đến 100
- Học cho đến khi thuộc bài, rửa tách trà cho đến khi sạch...
Trong cuộc sống, những hành động trên được gọi là lặp đi lặp lặp lại nhiều. Trong Pascal, cách mô tả công việc (hoạt động) được lặp lại nhiều lần gọi là cấu trúc lặp. Có 3 loại cấu trúc vòng lặp như sau:
1. Vòng lặp for
- Đây là vòng lặp căn bản và được sử dụng nhiều nhất trong kiến thức phổ thông. Vòng lặp for dùng để lặp với số lần định trước, có cấu trúc như sau:
for <biến đếm>:= <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
Dạng khác (giảm dần biến đếm của vòng lặp for):
for <biến đếm>:= <giá trị cuối> downto 1 do <câu lệnh>;
vd: Tính tổng các số liên tiếp từ 1 đến 100
program Tinh_tong;
var i,S:integer;
begin
S:=0;
for i:=1 to 100 do S:=S+1;
write('Tổng là:',S);
readln;
end.
2. Vòng lặp while
- Cú pháp:
while <điều kiện> do <câu lệnh>
- Câu lệnh sẽ được lặp lại nhiều lần cho đến khi nào điều kiện còn đúng (nếu điều kiện sai thì các lệnh này sẽ không thực hiện nữa). Đối với lệnh này điều kiện sẽ được kiểm tra trước khi thực hiện lệnh nên nên điều kiện sai thì không có lệnh nào được thực hiện.
vd: Tính tổng các số liên tiếp từ 1 đến 100
var i: byte;
S: longint;
begin
S:= 0;
i:= 1;
while i <= 100 do
begin
S:= S + i;
i:= i +1;
end;
write('Tong tu 1 den 100 la:',S);
readln;
end.
3. Vòng lặp repeat
- Cú pháp:
repeat
<câu lệnh>;
until <điều kiện>;
- Câu lệnh giữa repeat và until sẽ được lặp lại nhiều lần khi nào điều kiện sai, nếu điều kiện đúng thì ngưng (ngược với vòng lặp while). Đối với lệnh này điều kiện sẽ được kiểm tra sau khi thực hiện các lệnh giữa repeat và until nên ít nhất các lệnh sẽ được thực hiện trước 1 lần rồi mới kiểm tra điều kiện đúng hay sai (nếu sai thì thực hiện tiếp vòng lặp, đúng thì ngưng).
vd: Tính tổng các số liên tiếp từ 1 đến 100
var i,n: integer;
S: real;
begin
S:=0; i:=1;
repeat
begin
S:=0; i:=1;
repeat
S:=S+i; i:=i+1;
until i>100;
writeln('Tong = ',S);
readln;
end.
until i>100;
writeln('Tong = ',S);
readln;
end.
Tổng hợp và biên tập
Bài 2: Câu lệnh điều kiện (If then)
Trong cuộc sống, có những hoạt động chỉ được thực hiện khi một điều kiện cụ thể được xảy ra. Điều kiện thường là một sự kiện được mô tả sau từ “Nếu”. Vd: Nếu em bị ốm, em sẽ không tập thể dục buổi sáng... Trong Pascal cũng như vậy.
Trước khi bắt đầu về câu lệnh điều kiện, chúng ta sẽ tìm hiểu tính đúng/sai, phép so sánh và cấu trục rẽ nhánh.
1. Tính đúng hoặc sai của các điều kiện
Khi kết quả kiểm tra là đúng, ta nói điều kiện được thỏa mãn, còn khi kết quả kiểm tra là sai, ta nói điều kiện không thỏa mãn.
vd: Nếu x mod 2=0, thì x là số chẵn; ngược lại x là số lẻ.
Nếu nhấn phím Enter, thì sẽ đưa con trỏ soạn thảo xuống dòng.
2. Điều kiện và phép so sánh
Các phép so sánh có vai trò rất quan trọng trong việc mô tả thuật toán và lập trình. Chúng thường được sử dụng để biểu diễn các điều kiện.
vd: Tìm số lớn nhất: Nếu a > b, thì a là số lớn nhất; ngược lại b là số lớn nhất.
vd: Tìm số lớn nhất: Nếu a > b, thì a là số lớn nhất; ngược lại b là số lớn nhất.
3. Cấu trúc rẽ nhánh
Cấu trúc rẽ nhánh được sử dụng để chỉ thị cho máy tính thực hiện các hoạt động khác nhau tùy theo một điều kiện cụ thể có được thỏa mãn hay không. Cấu trúc rẽ nhánh có 2 dạng: Dạng thiếu và dạng đầy đủ. vd. Nếu chăm chỉ học tập, An sẽ được mẹ mua cho một cái máy vi tính; (dạng thiếu).
Nếu chăm chỉ học tập, An sẽ được mẹ mua cho một cái máy vi tính; ngược lại, An sẽ bị cô giáo phàn nàn và An sẽ không được mẹ mua cho một cái máy vi tính (dạng đủ).
4. Câu lệnh điều kiện
* Trong Pascal, câu lệnh điều kiện được viết như sau:
+ Dạng thiếu:
If <điều kiện> then <câu lệnh>;
vd: if (x mod 2)=0 then writeln(x,' la so chan');
+ Dạng đầy đủ:
If <điều kiện> then <câu lệnh 1> else <câu lệnh 2>;
vd: if (x mod 2) =0 then writeln(x,' la so chan')
else writeln(x,' la so le');
If <điều kiện> then <câu lệnh>;
vd: if (x mod 2)=0 then writeln(x,' la so chan');
+ Dạng đầy đủ:
If <điều kiện> then <câu lệnh 1> else <câu lệnh 2>;
vd: if (x mod 2) =0 then writeln(x,' la so chan')
else writeln(x,' la so le');
Sưu tầm và biên tập
Thứ Hai, 6 tháng 2, 2012
Bài 1: Cấu trúc chương trình Pascal
Điều đầu tiên chúng ta quan tâm sẽ là cấu trúc của chương trình. Hầu như chương trình nào cũng đi theo quy tắc:
Trước khi bắt đầu, chúng ta sẽ nhắc lại một số khái niệm cơ bản:
Có 2 loại chương trình, một là có chương trình con, 2 là không có chương trình con. Thực ra 2 loại này cũng tương tự như nhau. Nhưng loại có chương trình con sẽ gọi
1. Chương trình không có chương trình con:
Dưới đây là cụ thể. Lời chú giải từng phần được đặt trong (* *) hoặc { }
Ví dụ: Chương trình tính diện tích hình tròn:
- Lệnh clrscr; để xóa những gì đang có trên màn hình. Ở phần khai báo phải có uses crt; thì lệnh mới hoạt động.
- Ngoài những lệnh khai báo trên ta còn có label (khai báo nhãn)... Tuy nhiên 4 lệnh khai báo trên là sử dụng nhiều nhất.
2. Khai báo có chương trình con:
[<phần khai báo>]Trong đó phần khai báo có thể có hoặc không.
<phần thân chương trình>
Trước khi bắt đầu, chúng ta sẽ nhắc lại một số khái niệm cơ bản:
- Khái niệm:
- Câu lệnh gán: <tên biến>:=<tên biểu thức>;
Vd: Tong:=5;
Có thể hiểu nôm na rằng sau câu lẹnh, giá trị của Tong là 5.
- Tên: Mọi đối tượng đều phải có tên. Bao gồm tên dành riêng (program, ver, begin, end...) & tên chuẩn (integer, real...).
- Hằng: Là đại lượng có giá trị thay đổi. Người ta thường khai báo hằng khi phải lặp lại giá trị hằng nhiều lần.
- Biến: Là đại lượng lưu trữ giá trị, có thể thay đổi.
- Lệnh write giúp hiện một dòng chữ ra màn hình. Vd khi viết write('Hello word'); sẽ hiện ra màn hình chương trình dòng chữ Hello word.
- Read đọc giá trị được khi vào. Vd khi viêt read(a); (a là 1 biến) sẽ hiện ra màn hình vị trí nhập giá trị vào.
- Câu lệnh gán: <tên biến>:=<tên biểu thức>;
Vd: Tong:=5;
Có thể hiểu nôm na rằng sau câu lẹnh, giá trị của Tong là 5.
Có 2 loại chương trình, một là có chương trình con, 2 là không có chương trình con. Thực ra 2 loại này cũng tương tự như nhau. Nhưng loại có chương trình con sẽ gọi
1. Chương trình không có chương trình con:
Dưới đây là cụ thể. Lời chú giải từng phần được đặt trong (* *) hoặc { }
(* Phần khai báo dữ liệu *)
Program ...; {Khai báo tên chương trình. Tên chương trình được đặt theo quy tắc đặt tên. Đây là phần khai báo không bắt buộc}
Const …; {Khai báo hằng: Sử dụng cho những giá trị hằng số xuất hiện nhiều lần trong chương trình}
Users ...; {Khai báo thư viện: Cung cấp các chương trình có sẵn}
Var …; {Khai báo biến}
(* Thân chương trình chính *)
Begin
… {Các lệnh được viết ở đây}
End.
Ví dụ: Chương trình tính diện tích hình tròn:
Program Dien_tich_HT;Chú ý:
const pi=3.14;
uses crt;
var R,S: Integer;
begin
clrscr;
writeln('Nhập bán kính:');readln(r);
S:=R*R*pi;
write('Dien tich hinh tron la: ',S:8:3,'m2');
readln
end.
- Lệnh clrscr; để xóa những gì đang có trên màn hình. Ở phần khai báo phải có uses crt; thì lệnh mới hoạt động.
- Ngoài những lệnh khai báo trên ta còn có label (khai báo nhãn)... Tuy nhiên 4 lệnh khai báo trên là sử dụng nhiều nhất.
2. Khai báo có chương trình con:
Chủ Nhật, 5 tháng 2, 2012
Tổng hợp các Giáo trình học Pascal
Pascal là kiến thức bắt buộc trong chương trình phổ thông và đại học. Tuy nhiên, nếu bạn chưa đến tuổi học Pascal nhưng lại muốn tìm hiểu, hay đơn giản là muốn mở rộng thêm kiến thức ngoài sách giáo khoa, hoặc muốn những dòng lý thuyết khô khan được trình bày sinh động, dễ hiểu nhất, thì những Giáo trình tự học Pascal sau đây chắc chắn giúp ích cho bạn.
CD-Room giáo trình Pascal toàn tập |
1. CD-Room giáo trình Pascal toàn tập:
Đây là 1 phần mềm - 1 sản phẩm của nhóm SSDG™ - Nhóm phát triển phần mềm sinh viên học sinh.
Chương trình có các phần thư giãn giải trí sau khi học là nghe nhạc hoặc chơi các game như xếp hình. Giáo trình có 2 dạng bài tập cơ bản và nâng cao để bạn tham khảo, nếu thích bạn vào để lấy bài tập mẫu đó ra X>SSDG>Thu vien (X là ổ đĩa khi cài SSDG Pascal).
Chương trình có các phần thư giãn giải trí sau khi học là nghe nhạc hoặc chơi các game như xếp hình. Giáo trình có 2 dạng bài tập cơ bản và nâng cao để bạn tham khảo, nếu thích bạn vào để lấy bài tập mẫu đó ra X>SSDG>Thu vien (X là ổ đĩa khi cài SSDG Pascal).
- Phụ lục:
PHẦN 1 : LÝ THUYẾT- Download:
Chương 1 : Khái Niệm Ngôn Ngữ Lập Trình
Chương 2 : Thuật Toán
Chương 3 : Giới Thiệu Ngôn Ngữ Lập Trình Pascal
Chương 4 : Kiểu Dữ Liệu Trong Pascal
Chương 5 : Hằng – Biến – Biểu Thức
Chương 6 : Cấu Trúc Điều Khiển
Chương 7 : Cấu Trúc Điều Khiển (Tiếp Theo)
Chương 8 : Mảng
Chương 9 : Kiểu Chuỗi Ký Tự
Chương 10 : Hàm - Thủ Tục
Chương 11 : Tham Số Trị – Tham Số Biến
Chương 12 : Kiểu Bản Ghi Chương 1 : Kiểu Tập Hợp
PHẦN 2 : BÀI TẬP
Bài tập cơ bản
Bài tập nâng cao
PHẦN 3 : THƯ VIỆN
PHẦN 4 : THƯ GIÃN
- http://www.mediafire.com/?mc0hijwa1og
- http://www.mediafire.com/?4dvoznlhhdy
- http://www.mediafire.com/?y4g42nwddjy
2. Pascal Study 1.00
- Dung lượng: 20MBPascal Study được viết nhằm mục đích giới thiệu cách viết chương trình bằng ngôn ngữ Pascal, giúp các bạn làm quen hoặc nâng cao kiến thức của mình về ngôn ngữ này. Phần mềm phục vụ cho các đối tượng là học sinh, sinh viên đang bắt đầu tiếp cận với lập trình máy tính. Phần mềm có nội dung dễ hiểu và rất rộng, chắc chắn sẽ đáp ứng được phần lớn nhu cầu của người sử dụng. Phần mềm có các phần như Lý thuyết và Bài tập, ngoài ra còn bổ sung thêm các phần mở rộng như Phụ lục và Ứng dụng - Trò chơi. Do đó, ngoài việc học lý thuyết cơ bản của Pascal, bạn còn được tiếp cận với các kỹ thuật nâng cao như đồ họa, viết game, viết ứng dụng... Nội dung của mỗi phần đều rất rộng. Phải thừa nhận phần nội dung chính là thế mạnh của phần mềm. Nội dung phần mềm được tổng hợp từ rất nhiều nguồn tài liệu. Pascal Study là phần mềm đầu tay của Nguyễn Anh Tú.
- Download:
3. EPascal - phần mềm hỗ trợ học Pascal tiếng việt
- Dung lượng: ~ 3MBPhần mềm ePascal là một phần mềm do nhóm BK02 viết.
- Phần mềm gồm:
- 10 bài học lí thuyết (10 chương)- Download:
- 200 câu hỏi trắc nghiệm (10 chương)
- Hơn 100 bài tập (10 chương)- Các trò chơi giải trí tăng cường kiến thức
- Giả lập môi trường Pascal
- Làm bài tập theo các cấp độ khác nhau
- Biên dịch và báo lỗi bằng tiếng Việt
- Trợ giúp về chương trình, thủ tục hàm hoàn toàn bằng tiếng Việt
- 10 chương trình mẫu kèm hướng dẫn chi tiết, source code đầy đủ
- Trắc nghiệm tổng hợp
- Giải ô chữ
- Chiếc nón kì diệu
- 3 phần mềm mẫu viết bằng Pascal
- Từ điển về các hàm, thủ tục Pascal bằng tiếng Việt
- Ngoài ra còn có: Bộ sách em học Pascal, Trang web học Pascal, Bộ việt hóa Pascal.
4. Giáo trình Pascal online:
Nếu bạn chỉ đơn thuần muốn tìm đọc lý thuyết về Pascal thì đây sẽ là lựa chọn hợp lý. Không cần phải download rắc rối mà các bạn có thể xem online tại đây.
Tổng hợp và Biên tập
Chú thích!
Trên CodePascal.blogspot.com cũng sẽ cung cấp những kiến thức cơ bản về Pascal. Tuy nhiên chỉ là sự nhắc lại và đòi hỏi bạn (ít nhất) phải định hình được về Pascal. Bởi vậy bên cạnh những bài viết trên blog, CodePascal.blogspot.com cũng giới thiệu những giáo trình học Pascal trên đây. Để có được kiến thức chắc chắn nhất, bạn nên kết hợp cả giáo trình lẫn những bài viết trên CodePascal.blogspot.com.
Tuy nhiên, nếu bạn đã/đang học về Pascal thì có lẽ, chỉ cần những bài hướng dẫn trên CodePascal.blogspot.com là đủ.
Tuy nhiên, nếu bạn đã/đang học về Pascal thì có lẽ, chỉ cần những bài hướng dẫn trên CodePascal.blogspot.com là đủ.
Download TurboPascal 7.0 Full (Borland Pascal with Objects v7.0)
Turbo Pascal 7.0 |
Các phiên bản của Turbo Pascal:
- Phiên bản 2.0: So với Pascal chuẩn, Turbo Pascal Version 2.0 có những mở rộng về các biến động, các biến địa chỉ tuyệt đối, Các phép toán trên bit và byte, các phép toán logic trên số nguyên, Kết nối các chương trình với các biến chung,...
- Phiên bản 3.0: là một hệ thống phát triển gồm những đặc điểm của version 2.0 và có nhiều mở rộng quan trọng như: Bổ sung nhiề thủ tục và hàm chuẩn. Bổ sung một vài dạng đặc biệt mới cho phép tính toán các số thực với độ chính xác lớn,... So với version 2.0 thì version 3.0 có tốc độ dịch gấp đôi.
- Phiên bản 4.0: có đặc điểm là có thêm một số dữ liệu mới, thực hiện các biểu thức logic nhanh hơn, có nhiều thủ tục và hàm chuẩn về xử lí đồ họa đồ thị màu sắc hình khối cửa sổ,...
- Phiên bản 5.0 và 5.5: Năm 1989, hãng Borland đưa ra thị trường phiên bản Turbo Pascal Version 5.0 để giới thiệu các thủ tục và hàm tiện nghi. Tiếp đó chưa đầy nửa năm họ đưa ra version 5.5 có thêm cấu trúc hoàn toàn mới, đó là lập trình đối tượng.
- Phiên bản 6.0: Đặc điểm nổi bậc của version này là giới thiệu thành phần của Turbo vision, một thư viện chương trình cụ thể, định hình có các cửa sổ tiện ích để đối chiếu với nhau.
- Phiên bản 7.0: Cuối năm 1992, hãng Borland lại đưa ra version 7.0 để chạy trong nhiều hệ điều hành kể cả Windows.
Theo wikipedia
- Dung lượng: ~ 1,8 MB.
Download:
- Link download của sources.ru (never die): Gồm 13 part, các bạn download và giải nén
1 2 3 4 5 6 7 8 9 10 11 12 13
- Link MF: Update sau...
Pascal (ngôn ngữ lập trình)
Blaise Pascal - Cha đẻ của Pascal |
- Đặc điểm: ngữ pháp đơn giản, cấu trúc ngữ nghĩa rõ ràng, dễ hiểu…
- Thành tựu: Ban đầu Pascal được dùng trong giảng dạy lập trình có cấu trúc, là tiền đề cho nhiều thế hệ sinh viên vào nghề lập trình. Hiện nay, tuy không phổ biến bằng trước đây, nhưng Pascal vẫn là ngôn ngữ khá phổ biến trong giảng dạy và viết phần mềm (vd: HĐH Macintosh, hệ sắp chữ TeX...).
Pascal là ngôn ngữ lập trình cơ bản, là kiến thức bắt buộc trong chương trình phổ thông và đại học ở Việt Nam cũng như một số nước trên thế giới.
- Chương trình sử dụng: có nhiều chương trình dùng để lập trình Pascal như Borland Pascal, Free Pascal, Quick Pascal, UCSD Pascal… nhưng trong đó TURBO Pascal tỏ ra mạnh mẽ nhất. Các bạn có thể tải về tại đây.
Tổng hợp & Lược bỏ
Đăng ký:
Bài đăng (Atom)
Bài đăng phổ biến
-
Cách Boot USB đối với Main Gigabyte Để boot từ main gigabye bạn xem main của bạn có hỗ trợ không: nhấn ESC, DEL, F12...tùy từng máy bạn nên ...
-
Cách Sửa lỗi Font AOE khó chịu bằng một số thủ thuật khá đơn giản Copy Font vào mục Font của Windows : http://www.mediafire.com/download/mdd...
-
Viết chương trình tính Log(a)x với a,x là hai số thực nhập vào từ bàn phím, và x>0, a>0, a!=1 Hướng dẫn: sử dụng công thức: Log(a)x=Ln...
-
Hướng dẫn mở UEFI cho Dell N4110 và Vostro 3750 Tình cờ hôm nay ghé sang 1 số diễn đàn của Nga và Bios Mod mình đã tìm được cách Unlocked UE...
-
BritainTourist .Com PhumyGroup.com SonhaiGroup.com LiaoningGroup .Com S haanxiGroup .com EchinaTourist.com T echnologyJewelry ....
-
Vacationnews.Xyz Vacationsnews.Xyz Vacationsworld.Xyz Vantagecreditunion.Xyz Venturenews.Xyz Ventureworld.Xyz Vermontattorney.Xyz Vermontho...
-
Ugandatravel.Xyz Ukattorney.Xyz Ukhotel.Xyz Uklawyers.Xyz Uklawyer.Xyz Ukonline.Xyz Ukrainehome.Xyz Ukrainehotel.Xyz Ukraineinsurance.Xyz U...
-
SacomGold.com mnTourist.com Anbaoco.com SacomFinance.com VinaElectronics.com LatviaNet.com NationalAirway.com SacomInsurance.com SacomHome.c...
-
Walmartscholarship.Xyz Wapnews.Xyz Waponline.Xyz Wapworld.Xyz Washingtonattorney.Xyz Washingtonhome.Xyz Washingtoninsurance.Xyz Washingtonl...
-
AirlineDomains.com Make Offer TouristDomains.com Make Offer MinhphuGroup.com Make Offer TurkeyDomain.com Make Offer TouristDomain.com Make O...