Feeds:
Posts
Comments

caulenhifelse

CÂU LỆNH IF-ELSE


I. Câu lệnh If
Cú pháp: if (điều kiện) then câu lệnh1
Ý nghĩa: Nếu điều kiện đúng thì sẽ thực hiện câu lệnh 1, ngược lại thì sẽ thực hiện các lệnh sau câu lệnh 1
Ví dụ: Nhập vào số n. Nếu n là số chẵn thì in ra thông báo “n là số chẵn”
null
II. Câu lệnh if – else
Cú pháp:
if (điều kiện) then câu lệnh 1
else
câu lệnh 2
Ý nghĩa: Nếu điều kiện đúng thì sẽ thực hiện câu lệnh 1, ngược lại thì sẽ thực hiện câu lệnh 2.
Ví dụ:Nhập vào số n. nếu n là số chẵn thì in ra câu thông báo “n là số chẵn”, ngược lại thì in ra “n là số lẻ”
null
Bài tập:
Bài 1: Nhập vào 3 số a,b,c. Tìm số lớn nhất
Ví dụ: a=4,b=5,c=7
So lon nhat: 7
B1: Nhập a
B2: Nhập b
B3: Nhập c
B4: Gán max:=a;
B5. Nếu max<b
Đúng: max:=b; qua B6
Sai: qua B6
B6: Nếu max<c
Đúng: max:=c; qua B7
Sai: qua B7
B7: In ra giá trị max
B8: Kết thúc chương trình
Bài 2: Nhập vào 3 số a,b,c. Tìm số lớn nhất, nhỏ nhất, lớn nhì
Ví dụ: a=4,b=5,c=7
So lon nhat: 7
So lon nhi: 5
So nho nhat: 4

Bài 3: Nhập vào 3 số a,b,c. Kiểm tra 3 số đó có thể tạo thành 3 cạnh của tam giác hay không?
Bài 4: Nhập vào số n và k. Kiểm tra số n chia hết cho k không? Nếu chia hết thì in ra n chia hết cho k. Ngược lại thông báo n không chia hết cho k. Và thông báo số dư của n và k
Ví dụ: n=5, k=2
5 khong chia het cho 2
so du cua 5 chia 2 la 1

Đã lúc nào đó bạn cảm thấy ghen tị với ai đó chưa? Đã có luc nào đó bạn cảm thấy những cố gắng của mình không được người khác công nhận như những nỗ lực của người khác và đã bao giờ bạn cảm thấy ấm ức khi một người thân hay bạn bè của bạn thành công hơn bạn, hạnh phúc và may mắn hơn bạn?

Chắc chắn chúng ta ai cũng có lẫn trãi qua cảm giác đó, cảm giác ghen tỵ với người khác, tôi đã từng ghen tị với em gái của mình bởi vì cô ấy xinh hơn tôi, cao hơn tôi! Mãi sau này, khi đủ chín chăn tôi mới nhận ra mình cũng đâu thua kém gì cô ấy đâu! Chỉ bởi một điều đơn giản: Chúng ta ai cũng khác biệt nhau!

Dường như sự ghen tị luôn có mặt trong cuộc sống, len lỏi vào tất cả các mối quan hệ và đôi lúc còn phá hỏng nó bằng những câu nói, những hành động khiến ai đó bị tổn thương! Vậy làm thế nào để đối phó với sự ghen tị?

Điều đầu tiên đó là : Hãy nhìn nhận những thành công, những may mắn đến với người khác từ sự nỗ lực của họ! Đó là thành quả họ đáng nhận được! Chỉ nghĩ như vậy, bạn mới xóa tan cảm giác tiêu cực trong lòng bạn! Đừng bao giờ tỏ ra ghen tị với thành công của người khác, bởi vì để có được nó họ đã dốc hết sức mình cho nó! Bạn hãy cổ vũ họ, khuyến khích và công nhận thành công của người khác! Như thế, bạn sẽ có thêm động lực để phấn đấu!

Thứ hai: Khi những ý nghĩ ghen tị xuất hiện, bạn hãy chuyển hướng những ý nghĩ tiêu cực sang một bên và hướng đến những điều mới mẻ khác! Ví như thay vì bực tức với người này người khác bạn hãy ra ngoài và tham gia những hoạt động công ích! Những tiếng cười sẽ giúp bạn xua đi cảm giác chán nản trong lòng! Bạn biết đấy, ghen tị là tính cách thường thấy của mỗi con người, nên chúng ta hoàn toàn có thể kiểm soát nó!

Thứ ba: Hãy xác định lại những giá trị cuộc sống đối với bạn, khi bạn đã có một đích ngắm bạn sẽ không bị phân tán bởi những đích ngắm của người khác! Chuyên tâm vào công việc và cuộc sống của mình sẽ giúp bạn nhận ra được những giá trị đích thực mà bạn cần cho cuộc sống! Đừng lãng phí thời gian ghen tị với những thứ không hợp với mình!

Thứ tư : Hãy yêu thương và trân trọng bản thân, khi bạn yêu thương bản thân mình bạn sẽ thấy không ai có thể bằng mình! Yêu bản thân chính là cách bạn đối phó hiệu quả nhất với sự ghen tị! Sự ghen tị chỉ mang lại cho bạn sự tự ti và chán nản! Đừng đem những cảm xúc đó đến với mình! Hãy cho mình cơ hội được tỏa sáng với chính khả năng và phẩm chất của mình!

Chúng ta thường để sự ghen tị lấn át đi những điều tốt đẹp khác, đừng bao giờ để những sai lầm đáng tiếc xảy ra bạn nhé! Hãy sống là chính mình để thấy rằng mình là vô giá!

STRING

.

XÂU KÝ TỰ (STRING)

I. KHAI BÁO KIỂU STRING
VAR Tên biến : STRING[Max];
Trong đó Max là số ký tự tối đa có thể chứa trong chuỗi (0<=Max<=255). Nếu không có khai báo [Max] thì số ký tự mặ mặc định trong chuỗi là 255.
Ví dụ:
Var Hoten:String[100]
St : String; {St có tối đa là 255 ký tự}

II. TRUY XUẤT DỮ LIỆU KIỂU STRING
- Có thể sử dụng các thủ tục xuất nhập Write, Writeln, Readln để truy xuất các biến kiểu String.
- Để truy xuất đến ký tự thứ k của xâu ký tự, ta sử dụng cú pháp sau: Tênbiến[k].
III. CÁC PHÉP TOÁN TRÊN XÂU KÝ TỰ
3.1. Phép nối xâu: +
3.2. Các phép toán quan hệ: =, , <, , >=.
Chú ý: Các phép toán quan hệ được so sánh theo thứ tự từ điển.

IV. CÁC THỦ TỤC VÀ HÀM VẾ XÂU KÝ TỰ
4.1. Hàm lấy chiều dài của xây ký tự
LENGTH(St : String):Integer;
4.2. Hàm COPY(St : String; Pos, Num: Byte): String;
Lấy ra một xâu con từ trong xâu St có độ dài Num ký tự bắt đầu từ vị trí Pos .
4.3. Hàm POS(SubSt, St :String):Byte;
Kiểm tra xâu con SubSt có nằm trong xâu St hay không? Nếu xâu SubSt nằm trong xâu St thì hàm trả về vị trí đầu tiên của xâu con SubSt trong xâu St, ngược lại hàm trả về giá trị 0.
4.4. Thủ tục DELETE(Var St:String; Pos, Num: Byte);
Xoá trong xâu St Num ký tự bắt đầu từ vị trí Pos.
4.5. Thủ tục INSERT(SubSt: String; Var St: String; Pos: Byte);
Chèn xâu SubSt vào xâu St bắt đầu tại vị trí Pos.
4.6. Thủ tục STR(Num; Var St:String);
Đổi số nguyên hay thực Num thành dạng xâu ký tự, kết quả lưu vào biến St.
4.7. Thủ tục VAL(St:String; Var Num; Var Code:Integer);
Đổi xâu số St thành số và gán kết quả lưu vào biến Num. Nếu việc chuyển đổi thành công thì biến Code có giá trị là 0, ngược lại biến Code có giá trị khác 0 (vị trí của lỗi).
V. Bài tập
5.1: Nhập vào một chuỗi. In ra màn hình chuỗi đã nhập
null
5.2 Nhập vào một chuỗi. Sau đó nhập một ký tự a. Đếm xem chuỗi đó có bao nhiêu chữ a
Ví dụ:
Chuỗi nhập vào: huynhngocduc
Nhap vao ky tu a: h
So chu h trong chuoi: 2

5.3 Nhập vào một chuỗi, Đếm xem chuỗi đó có bao nhiêu từ
Ví dụ:
Hom nay troi nang =>4 từ
Hom     nay    toi   di   hoc =>5 từ
5.4 Nhập vào một chuỗi. Kiểm tra chuỗi đó có phải là chuỗi đối xứng không?
Ví dụ chuỗi đối xứng: abcba hoặc abccba

vttt

.

VAI TRÒ CỦA THUẬT TOÁN

Thuật toán là gì? Vì sao cần học thuật toán? Vai trò của thuật toán so với các lĩnh vực công nghệ khác sử dụng trong máy tính?
1.1. Thuật toán
Nói nôm na, thuật toán là bất kỳ một thủ tục tính toán nào nhận vào một tập dữ liệu, hay input, và sinh ra một tập kết quả, hay output. Thuật toán do đó là một chuỗi các bước tính toán để sinh ra kết quả từ dữ liệu đầu vào.
Ta cũng có thể xem thuật toán như một công cụ để giải các bài toán tính toán nhất định. Yêu cầu của bài toán chỉ ra mối quan hệ giữa dữ liệu đầu vào và kết quả mong muốn. Thuật toán sẽ mô tả một dãy các thủ tục tính toán để đạt được mối quan hệ đó.

Chẳng hạn ta cần sắp xếp một dãy các số theo thứ tự không giảm. Bài toán này nảy sinh thường xuyên trên thực tế và là một ví dụ tốt để giới thiệu các kỹ thuật thiết kế và phân tích thuật toán căn bản. Ta định nghĩa bài toán sắp xếp như sau:
Input: Một dãy gồm n số (a1, a2,…, an)
Output: Một hoán vị (a’1, a’2,…, a’n) của dãy đã cho sao cho a’1 ≤ a’2 ≤ … ≤ a’n
Ví dụ, cho dãy (31, 41, 59, 26, 41, 58), một thuật toán sắp xếp sẽ trả về dãy (26, 31, 41, 41, 58, 59). Một dãy đầu vào như vậy gọi là một trường hợp riêng của bài toán. Tổng quát, trường hợp riêng của một bài toán sẽ gồm dữ liệu vào thỏa mãn các điều kiện đề bài nêu, và cần để tính toán kết quả.

Sắp xếp là một thao tác cơ bản trong khoa học máy tính. Do đó, nhiều thuật toán hiệu quả cho bài toán sắp xếp đã được xây dựng. Thuật toán nào tốt nhất với một ứng dụng cụ thể phụ thuộc vào nhiều yếu tố, số phần tử cần sắp xếp, mức độ các phần tử đã được sắp xếp, các giới hạn về giá trị phần tử và loại thiết bị lưu trữ: bộ nhớ, đĩa cứng hay băng từ.

Một thuật toán là đúng đắn nếu, với mọi trường hợp riêng,thuật toán dừng với kết quả đúng. Ta nói một thuật toán đúng đắn giải quyết được một bài toán tính toán. Một thuật toán không đúng đắn có thể không dừng lại hoặc cho ra kết quả sai với một trường hợp riêng nào đó. Trái với những gì ta nghĩ, đôi khi những thuật toán không đúng đắn có thể mang lại hiệu quả, nếu có thể điều khiển được hiệu suất lỗi.
Một thuật toán có thể được chỉ ra bằng tiếng Anh, tiếng Việt, một chương trình máy tính hoặc thậm chí một thiết kế phần cứng. Điều ràng buộc duy nhất là phải nêu rõ ràng, chính xác các bước tính toán cần thiết.
Thuật toán có thể giải những loại bài toán nào?
Sắp xếp chắc chắn không phải là bài toán duy nhất đã được xây dựng về thuật toán. Các ứng dụng thực tiễn của thuật toán có mặt ở khắp mọi nơi, bao gồm các ví dụ sau:
• Dự án bản đồ Genes người với mục tiêu xác định tất cả 100000 genes trong DNA của loài người, xác định dãy 3 tỷ các cặp hóa chất cơ bản cấu tạo nên DNA của loài người, lưu trữ vào cơ sở dữ liệu, và thiết kế các công cụ phân tích dữ liệu. Mỗi bước đều đòi hỏi các thuật toán phức tạp. Mặc dù lời giải nằm ngoài phạm vi của quyển sách nhưng những ý tưởng trong nhiều chương của quyển sách này được áp dụng vào lời giải của các bài toán sinh học, giúp các nhà khoa học đạt được mục tiêu bằng cách sử dụng hiệu quả dữ liệu. Chúng giúp tiết kiệm về thời gian, của cả người và máy, và tiền bạc, vì nhiều thông tin hơn giờ đây có thể thu được từ các phương pháp thí nghiệm.
• Internet giúp mọi người trên thế giới nhanh chóng truy cập và đón nhận một khối lượng thông tin khổng lồ. Để làm được điều đó, các thuật toán thông minh đã được sử dụng để quản lý khối lượng dữ liệu này. Các bài toán phải giải chẳng hạn như tìm hành trình tốt nhất cho dữ liệu di chuyển, dùng một máy tìm kiếm để nhanh chóng tìm các trang web chứa thông tin cần thiết,…

dulieukieufile

Dữ liệu kiểu File

Lúc trước chúng ta học là dữ liệu được nhập từ bàn phím. Bài học Dữ liệu kiểu File tức là dữ liệu được lưu trong một file. Chúng ta đọc dữ liệu từ file để xử lý

I. KHAI BÁO

Var Tên biến file:Kiểu File ;

Ví dụ: var f:Text

II. CÁC THỦ TỤC VÀ HÀM CHUẨN

2.1. Các thủ tục chuẩn

2.1.1. Gán tên file

Cú pháp: Assign(F, Filename);

Chức năng: Gán một file trên đĩa có tên là Filename cho biến file F, mọi truy xuất trên file cụ thể được thực hiện thông qua biến file này.

Chú ý:

Filename bao gồm cả tên ổ đĩa và đường dẫn nếu file không nằm trong ổ đĩa, thư mục hiện thời.

2.1.2. Mở file mới

Cú pháp: Rewrite(F);

Chức năng: Tạo file mới có tên đã gán cho biến file F. Nếu file đã có trên đĩa thì mọi dữ liệu trên đó sẽ bị xoá và con trỏ file trỏ ở vị trí đầu tiên của file.

2.1.3. Mở file đã có trên đĩa

Cú pháp: Reset(F);

Chức năng: Mở file có tên đã gán cho biến file F. Nếu file chưa có trên đĩa thì chương trình sẽ dừng vì gặp lỗi xuất/nhập.

2.1.4. Đọc dữ liệu từ file

Cú pháp: Read(F, x);

Chức năng: Đọc một phần tử dữ liệu từ file F ở vị trí con trỏ file và gán cho các biến x.

2.1.5. Ghi dữ liệu lên file

Cú pháp: Write(F, Value);

Chức năng: Ghi giá trị Value vào file F tại vị trí hiện thời của con trỏ file.

2.1.6. Đóng file

Cú pháp: Close(F);

Chức năng: Cập nhật mọi sửa đổi trên file F và kết thúc mọi thao tác trên file này.

2.1.7. Hàm kiểm tra cuối file

Cú pháp: EOF(F);

Chức năng: Hàm trả về giá trị True nếu con trỏ file đang ở cuối file, ngược lại hàm trả về giá trị False.

2.1.8. Hàm trả về kích thước của file

Cú pháp: FileSize(F);

Chức năng: Hàm trả về số lượng phần tử có trong file.
Ví dụ: Cho file text chứa số n. Viết chương trình đọc file text đó ra màn hình số n.
Input: file dulieu.inp chứa số nguyên n

Bài tập:
1. Cho số n. Viết chương trình kiểm tra số n có phải là số nguyên tố không
Input: Dữ liệu đọc từ File dulieu.inp.(File dulieu.inp chứa số nguyên n)
Output: Kết quả được ghi ra file ketqua.out. Nếu n là số nguyên tố thì ghi 1, ngược lại ghi 0.

2. Cho một dãy n số nguyên. Tính tổng các số nguyên tố có trong dãy số
Dữ liệu vào là dulieu.inp bao gồm:
- Dòng đầu tiên ghi số n
- Dòng thứ hai ghi n số nguyên mỗi số cách nhau một dấu cách
Kết quả ghi ra file dlra.out là tổng của các số nguyên tố

Ví dụ:
DULIEU.INP
6
10 31 15 17 20 19
DLRA.OUT
67


3. Cho một dãy số nguyên. Yêu cầu tạo ra các số nguyên tố từ dãy số đã cho theo chiều tăng dần
Dữ liệu: Vào từ file văn bản DULIEU.INP gồm
- Dòng đầu tiên chứa số nguyên n (n<=200)
- Dòng thứ hai chứa n số nguyên
Kết quả: Ghi ra file NGUYENTO.OUT
- Các số nguyên tố theo chiều tăng dần
Ví dụ:
DULIEU.INP
6
10 31 15 17 20 19
NGUYENTO.OUT
17 19 31

ttdq

.

THUẬT TOÁN ĐỆ QUY

Định nghĩa: một đối tượng gọi là đệ quy nếu bao gồm chính nó hay nó được định nghĩa bởi chính nó.
Một khái niệm X được định nghĩa theo đệ quy nếu trong định nghĩa X có sử dụng ngay chính khái niệm X.
• Ví dụ 1: Định nghĩa số tự nhiên
- 0 là một số tự nhiên.
- n là số tự nhiên nếu n – 1 là số tự nhiên.
• Ví dụ 2: Định nghĩa Hàm giai thừa n!
- 0! = 1
- Nếu n > 0 thì n! = n(n – 1)!
Trong lập trình một chương trình con (hàm, thủ tục) được gọi là đệ qui nếu trong quá trình thực hiện nó có phần phải gọi đến chính nó.

Cấu trúc chính
Một chương trình con đệ qui căn bản gồm hai phần.
• Phần cơ sở: chứa các tác động của hàm hoặc thủ tục với một số giá trị cụ thể ban đầu của tham số.
• Phần đệ qui: định nghĩa tác động cần được thực hiện cho giá trị hiện thời của các tham số bằng các tác động đã được định nghĩa trước đây với kích thước tham số nhỏ hơn.
Ví dụ: Hàm tính giai thừa của một số tự nhiên n (tính n!) (Đoạn mã sau được viết bằng ngôn ngữ Pascal)

Qui trình thực hiện
Trong ví dụ trên, qui trình thực hiện như sau:
• Khi có lệnh gọi hàm, chẳng hạn:
x := gt(3);
• thì máy sẽ ghi nhớ là:
gt(3) := 3 * gt(2);
và đi tính gt(2)
• kế tiếp máy lại ghi nhớ:
gt(2) := 2 * gt(1);
và đi tính gt(1)
• Theo định nghĩa của hàm thì:
gt(1) := 1;
• Máy sẽ quay ngược lại:
gt(2) := 2 * 1;
cho kết quả là 2
• Tiếp tục:
gt(3) := 3 * 2;
cho kết quả là 6
• Như vậy kết quả cuối cùng trả về là 6. Ta có: 3! = 6.
Bài tập:
1. Viết chương trình tính 1+2+…+n với n được nhập từ bàn phím bằng thuật toán đệ quy
2. Nhập vào số n. Tính tổng các chữ số của n bằng thuật toán đệ quy

baitap

Bài 1: Nhập từ bàn phím số nguyên dương N (N<100000) và in ra số k(k<N) có tổng các ước của nó là lớn nhất



Bài 2: Số N nguyên tố được gọi là số Mersen nếu có dạng 2p-1 trong đó p cũng là số nguyên tố
Viết chương trình nhập vào số nguyên dương N (N<10000) in ra tất cả các số Mersen nhỏ hơn hay bằng N



Bài 3: Nhập vào một dãy số nguyên a[1],a[2],…a[n]. Viết chương trình in ra các phần tử khác nhau của dãy và sắp xếp tăng dần.
Ví dụ:
Dãy nhập vào: 1, 7, 2, 7, 1, 5, -3, 1, -3
Dãy in ra: -3, 1, 2, 5, 7

Bài 4:
Với mỗi số tự nhiên N ( 1 <= N <= 1000). Tìm các số tự nhiên M <= N thoả mãn:
+/ M là một số nguyên tố.
+/ Tổng các chữ số của M cũng là một số nguyên tố.
Yêu cầu: Nhập số tự nhiên N (1 <= N <= 1000). Thông báo số lượng các số tự nhiên M thỏa mãn các yêu cầu trên, đó là các số nào?
Dữ liệu vào Số tự nhiên N
Dữ liệu ra Dòng 1: Ghi các số M thỏa mãn yêu cầu
Dòng 2: Số lượng các số tự nhiên M thỏa mãn
Ví dụ: Dữ liệu vào 10
Dữ liệu ra
2 3 5 7
4



Bài 5: Năm 1973, nhà Toán học Neil Sloan đưa ra khái niệm độ bền của một số nguyên không âm N như sau:
- Nếu N có một chữ số thì độ bền của N bằng 0.
- Nếu N có từ 2 chữ số trở lên thì độ bền của N bằng độ bền của số nguyên là tích các chữ số của N cộng 1.
Yêu cầu: Cho N, tính độ bền của N.
Ví dụ
N=99
Doben=2
Giải thích Doben(99)=Doben(81)+1=Doben(8)+1+1=0+1+1=2


Bài 6: Nhập vào số n. Kiểm tra xem số n có thể là tổng của 3 số nào
Ví dụ: n=10
1 2 7
1 3 6
1 4 5
(rất nhiều trường hợp)
Bài 7:Nhập vào số n. Kiểm tra xem số n có thể là tổng của 3 số nguyên tố nào

array

DỮ LIỆU KIỂU MẢNG (ARRAY)
Mảng: Tập hợp các phần tử cùng kiểu dữ liệu
I. KHAI BÁO MẢNG
Cú pháp:
TYPE Kiểu mảng = ARRAY [chỉ số đầu..chỉ số cuối] OF Kiểu dữ liệu;
VAR Biến mảng:Kiểu mảng;
hoặc khai báo trực tiếp:
VAR Biến mảng : ARRAY [chỉ số đầu..chỉ số cuối] OF Kiểu dữ liệu;
Ví dụ:
Tập hợp 100 phần tử mảng A kiểu số nguyên
var a:array[1..100] of integer;

II. XUẤT NHẬP TRÊN DỮ LIỆU KIỂU MẢNG
- Để truy cập đến phần tử thứ k trong mảng một chiều A, ta sử dụng cú pháp: A[k].
Ví dụ: a[9]: truy cập vào phần tử thứ 9 của mảng A. (write(a[9]);
III.Bài tập
Bài 1. Nhập vào số n.Sau đó nhập n phần tử kiểu số nguyên. In ra màn hình các số nguyên đó
var a:array[1..100] of integer;
begin
write(‘nhap so n:’);readln(n);
for i:=1 to n do
begin
write(‘a[',i,']:’);readln(a[i]);
end;

write(‘cac phan tu trong mang:’);
for i:=1 to n do
write(a[i],’ ‘);
readln;
end.
==============================================
Bài 2: Nhập vào số n.Sau đó nhập n phần tử kiểu số nguyên.
1. In ra màn hình các số nguyên đó
2. Tính tổng các phần tử dương có trong mảng
3. Nhập vào số x. Kiểm tra xem có bao nhiêu phần tử bằng x
4. Tìm số lớn nhất có trong dãy
5. Đổi chỗ phần tử đầu tiên và phần tử cuối cùng
var a:array[1..100] of integer;
n,i,nhapmang,tong,max,tongduong,x,dem,t:integer;
procedure nhap_mang;
begin
write(‘nhap so n:’);readln(n);
for i:=1 to n do
begin
write(‘a[',i,']:’);readln(a[i]);
end;
end;

procedure in_mang;
begin
write(‘cac phan tu trong mang:’);
for i:=1 to n do
write(a[i],’ ‘);
end;

procedure tinh_tong;
begin
tong:=0;
for i:=1 to n do
tong:=tong+a[i];
write(‘tong la:’,tong);
end;

procedure tong_duong;
begin
tongduong:=0;
for i:=1 to n do
begin
if a[i]>0 then
tongduong:=tongduong+a[i];
end;
write(‘tong so duong la:’,tongduong);
end;

procedure kiemtra;
begin
write(‘nhap vao x:’);readln(x);
dem:=0;
for i:=1 to n do
begin
if a[i]=x then
dem:=dem+1;
end;
write(‘so phan tu bang x:’,dem);
end;

procedure tim_max;
begin
max:=a[1];
for i:=2 to n do
begin
if max<a[i] then
max:=a[i];
end;
write(‘phan tu lon nhat :’,max);
end;

procedure doi_cho;
begin
t:=a[1];
a[1]:=a[n];
a[n]:=t;
write(‘sau khi doi cho:’);
in_mang;
end;

begin
nhap_mang;
in_mang;
tinh_tong;
tong_duong;
kiemtra;
tim_max;
doi_cho;
readln;
end.
Bài tập:
Nhập n. Sau đó nhập n số nguyên vào mảng a
1. Tính xem trong mảng có bao nhiêu số nguyên tố, in ra các số nguyên tố đó và nêu ra vị trí của nó và tính tổng các nguyên tố đó
Loi giai cua Sang Quy
function nguyento(k:integer):boolean;
var kt:boolean;
begin
kt:=true;
for i:=2 to k-1 do
if (k mod i=0) then
begin
kt:=false;
break;
end;
nguyento:=kt;
end;
procedure insonguyento;
var i,dem,tong:integer;
begin
writeln(‘cac phan tu nguyen to trong mang la: ‘);
tong:=0;
dem:=0;
for i:=1 to n do
begin
if (nguyento(a[i])=true)then
begin
write(a[i],’ ‘);
tong:=tong+(a[i]);
dem:=dem+1;
end;
end;
writeln(‘tong la’, tong);
writeln(‘so cac so nguyen to:’ ,dem);
end;

procedure sapxep;
var i,j,jmin,tg:integer;
begin
for i:=1 to n-1 do
begin
jmin:=i;
for j:=i+1 to n do
begin
if (a[j]<a[jmin]) then
jmin:=j;
end;
if (i<>jmin) then
begin
tg:=a[i];
a[i]:=a[jmin];
a[jmin]:=tg;
end;
end;
write(‘Mang sau khi sap xep la:’);
for i:=1 to n do
write(a[i],’ ‘); 2. Sắp xếp mảng tăng dần. Tham khảo cách làm tại đây
3. Tìm số lớn nhì
Ví dụ:
n=7.
3 50 7 11 12 45 41
Co 4 so nguyen to
Cac so nguyen to do la: 3 7 11 41
Vi tri: 1 3 4 7
Tong cac so nguyen to: 62
Mang sau khi sap xep la: 3 7 11 12 41 45 50
So lon nhi: 45

Thuật toán sắp xếp

query

Giả sử các bảng có mối quan hệ như sau

1. Tạo query gồm các trường (cột) MANV, Ho, Ten, GioiTinh, NgaySinh, MaCV, MAPB, HsLuong của các nhân viên có hệ số lương >2 và có giới tính là Nữ

Trước khi làm chúng ta phải đọc đề bài để xác định rằng các cột mà đề yêu cầu nằm trong Bảng (Table) nào.
Chúng ta thấy rằng tất cả các cột mà đề bài yêu cầu nằm trong bảng NHANVIEN
Khi tạo query thì chúng ta chỉ chọn bảng NHANVIEN
Đề yêu cầu Cột nào thì chúng ta chọn Cột đó bằng cách Click 2 lần vào cột trong Bảng

Trong Đề bài trên thì đề yêu cầu là cho ra nhân viên có hệ số lương >2 và có giới tính là Nữ
- Ngay tại cột hệ số lương và dòng Criterial bấm giá trị >2 vào

- Điều kiện tiếp theo là GioiTinh là Nữ: Cột GioiTinh có DataType (Kiểu dữ liệu) Yes/No có nghĩa là Yes: Nam, No: Nữ, cho nên tại Cột GioiTinh dòng Criterial chúng ta cho giá trị No

Sau đó lưu lại
2. Tạo query để liệt kê: MaNV, HoVaTen, Phai (Thể hiện Nam/Nữ), NgaySinh, TenPB, TenCV, HsLuong
Trong đó HoVaTen là kết hợp giữa cột Ho và Ten
- Xác định các cột ở mỗi bảng: MaNV, NgaySinh, HsLuong nằm trong bảng NhanVien. TenPB nằm trong bảng PHONGBAN, TenCV nằm trong bảng CHUCVU
HoVaTen, Phai không nằm trong bảng nào cho nên chúng ta phải tạo ra các cột đó với yêu cầu của đề
Hoten: Ho& ” ” &Ten
Phai: iif(Gioitinh=Yes,”Nam”,”Nữ”)

Bài tập

Nhập vào số n. yêu cầu: Viết hàm (thủ tục) để thực hiện các yêu cầu sau:

  1. Tính tổng từ 1 -> n
  2. Tính tổng các số chẵn từ 1 đến n
  3. Đếm xem số n có bao nhiêu ước số
  4. Tính tổng các ước số của n.
  5. Tính tổng các chữ số của n. (Ví dụ: n=123. Tổng là 6)
  6. Kiểm tra xem số n có phải là số nguyên tố không
  7. Đếm từ 1->n có bao nhiêu số nguyên tố
  8. Tính tổng các số nguyên tố từ 1 ->n
  9. Nhập vào số a. Tính a mũ n
  10. Tính 1+1/2+1/3+….+1/n (làm tròn đến 2 chữ số thập phân)

Có thể làm mỗi câu riêng ra thành 10 bài tập
Ví dụ:
var n:integer;

procedure nhap_so_n;
begin
  write(‘Nhap vao so n:’);readln(n);
end;

function tong(var n:integer):integer;
var i,s:integer;
begin
  s:=n*(n+1) div 2;
tong:=s;
end;

begin
nhap_so_n;
write(‘Tong tu 1 den ‘, n ,’ la ‘,tong(n));
readln;
end.

Older Posts »

Follow

Get every new post delivered to your Inbox.