- Ebook Giải thuật và lập trình Lê Minh Hoàng
- Các thuật toán sắp xếp trong Pascal

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

var i,n: integer;
    S: real;
begin   
    S:=0; i:=1;
    repeat 
    S:=S+i; i:=i+1;
    until i>100;
    writeln('Tong = ',S);
    readln;
end.

Tổng hợp và biên tập



LyLd nói...

Mình thấy trong bài xét số nguyên tố của bạn lệnh for to do có thêm chữ trunc.
Xin cho mình hỏi nó có nghĩa gì nhỉ?


13:37 Ngày 23 tháng 08 năm 2012
Thư Ngô nói...

co ban nao biet pascal gioi thi lam cho minh btap nay nha:

Câu 1: Viết chương trình thực hiện cv sau: Nhập vào từ bàn phím n phần tử và các phần tử là số nguyên (5<= n <=1000)
- Hiển thị các ptu ra mà hình
- Cho biết trong dãy có bao nhiêu phần tử chia hết cho 7 và không chia hết cho 3? Nếu có thì cho biết vị trí?
- Trong dãy có bao nhiêu số hoàn hảo, nếu có tính trung bình cộng??
- Cho biết giá trị phần tử lớn thứ nhì trong dãy?
- Sắp xếp các phần tử theo thứ tự tăng dần, phần tử lẻ đứng đầu, chẵn đứng cuối.


08:59 Ngày 25 tháng 09 năm 2012
Thư Ngô nói...

cau 2: Câu 2: nhập vào từ bàn phím ma trận cấp (m*n) với 3<= m,n <= 10
- Hiển thị ra màn hình
- Cho biết trong ma trận có bao nhiêu phần tử: nguyên tố, hoàn hảo và vị trí của nó?
- Liệt kê phần tử lớn nhất trên dòng, nhỏ nhất trên cột?
- Săp xếp ptu tăng dần trên cột.
- sắp xếp phần tử tằng dần trên hàng.
- Thay thế tất cả các phần tử âm bằng 0;


09:00 Ngày 25 tháng 09 năm 2012
Thư Ngô nói...

cau 3: Câu 3: giả sử có file “thongbao.txt” ở ổ D.
- Hãy viết ct thực hiện cv sau: cho biết trong file đó có bn dòng? Bn cụm từ “HIV”? bn từ là từ đối xứng?
(từ đối xứng là từ có ký tự bắt đầu và kết thúc giống nhau, và cách với từ trước và sau bằng 1 dâu cách)
- Chuẩn hóa file, ký tự đầu tiền mỗi đoạn văn bản thụt vào 3 ký tự, giữa các từ cah nhau 1 dấu cách
Trước mỗi dấu . , ; ! ? ko dc có dấu cách và ký tự phía sau phải viết hoa.


09:01 Ngày 25 tháng 09 năm 2012
Thư Ngô nói...

Ai giỏi tin thì giúp mình nha


09:01 Ngày 25 tháng 09 năm 2012
LyLd nói...

Hình như admin đã bỏ Blog rồi!!!


12:35 Ngày 25 tháng 09 năm 2012
Nặc danh nói...

đánh nhau đi


08:28 Ngày 31 tháng 10 năm 2012
Nặc danh nói...

dkm ko ai giai ak


16:45 Ngày 07 tháng 11 năm 2012
Nặc danh nói...

GIAI CAU 2 CUA THU NGO DI


08:18 Ngày 11 tháng 11 năm 2012
Unknown nói...

cho mot day so x1,x2......xn cho biet vi tri nho nhat trong day gia tri do = ? va co bao nhieu gia tri nhu vay dung (while hoac for)+ if


09:48 Ngày 05 tháng 12 năm 2012
Unknown nói...


cho mot day so x1,x2......xn cho biet vi tri nho nhat trong day gia tri do = ? va co bao nhieu gia tri nhu vay dung (while hoac for)+ if
Cac anh chi giup minh ho di minh cam on truoc


09:51 Ngày 05 tháng 12 năm 2012
Nặc danh nói...

mai minh thi rui ,giup minh bai nay nha may ban oi,mai minh thi tin roi:
tinh tong S= -1+1/2-1/3+1/4-1/5......-1/9999+1/10000


21:03 Ngày 10 tháng 12 năm 2012
thanh dinh nói...

LyLd trunc là hàm làm tròn nhé


07:22 Ngày 26 tháng 12 năm 2012
Nặc danh nói...

Hey! Would you mind if I share your blog with my facebook group?
There's a lot of people that I think would really enjoy your content. Please let me know. Thank you

Here is my webpage; bankruptcy Laws in Florida


02:02 Ngày 16 tháng 03 năm 2013
Nặc danh nói...

I'm gone to convey my little brother, that he should also pay a quick visit this webpage on regular basis to obtain updated from most up-to-date news.

Visit my blog post ... friedrich nietzsche quotes


22:48 Ngày 26 tháng 03 năm 2013
Nặc danh nói...

Hey there, You have done a fantastic job. I'll definitely digg it and personally suggest to my friends. I am confident they will be benefited from this web site.

Here is my web-site :: douglas adams quotes


00:01 Ngày 27 tháng 03 năm 2013
Nặc danh nói...

This is a topic that is close to my heart... Take care!

Exactly where are your contact details though?

Feel free to visit my weblog - thanks quotes


02:39 Ngày 27 tháng 03 năm 2013
Nặc danh nói...

I am regular visitor, how are you everybody?
This piece of writing posted at this site is in fact pleasant.


my web site zayn malik quotes


21:00 Ngày 27 tháng 03 năm 2013
Nặc danh nói...

Thankfulness to my father who shared with me about this website, this blog
is in fact awesome.

Also visit my web-site; ignorance quotes


05:29 Ngày 03 tháng 04 năm 2013
Nặc danh nói...

I every time used to read post in news papers but now as I am a user of web therefore from
now I am using net for articles, thanks to web.

Also visit my page ... undertake


12:28 Ngày 12 tháng 06 năm 2013
Nặc danh nói...

Right here is the perfect blog for anybody who would like to find
out about this topic. You understand a whole
lot its almost hard to argue with you (not that I personally would want to…HaHa).
You certainly put a fresh spin on a subject that's been discussed for years. Excellent stuff, just great!

my blog post: reviewer


13:07 Ngày 12 tháng 06 năm 2013
Nặc danh nói...

We stumbled over here from a different website and
thought I might check things out. I like what I see so now i'm following you. Look forward to checking out your web page yet again.

my web site :: free Email Invitation templates


09:45 Ngày 13 tháng 06 năm 2013
Nặc danh nói...

I want to to thank you for this fantastic read!! I certainly enjoyed every
little bit of it. I have you book-marked to check out new things you post…

My weblog ... bmw lease deals


09:48 Ngày 13 tháng 06 năm 2013
Nặc danh nói...

I could not resist commenting. Perfectly written!

my blog Mouse Click the Next document **


23:01 Ngày 13 tháng 06 năm 2013
Nặc danh nói...

Hi there to all, the contents existing at this web page are truly remarkable for people experience, well, keep up the good work fellows.


my homepage ... email newsletter templates free :: ::


02:07 Ngày 14 tháng 06 năm 2013
Nặc danh nói...

Bonjouг, Мon nοm еst Aгlette.

Je suіs jeune de 23 anѕ .
Ce que je fais : іngénieur . Sі je suis parfoiѕ cоol,
ce n'est pas forcément un défaut ?

Here is my webpage avis reservation hotelliere ()


22:29 Ngày 15 tháng 06 năm 2013
Hán Long nói...

trunc là hàm làm tròn
VD một số là 5,2 thì hàm trunc(5,2)=5;
quy tắc làm tròn tùy thuộc vào các hàng thập phân
chúc bạn may mắn


09:47 Ngày 05 tháng 01 năm 2014
Nặc danh nói...

chi giup to bai viet c trinh nhap 1 so tinh trung binh cong so le bang lenh lap khong xac dinh








19:42 Ngày 24 tháng 01 năm 2014
Nặc danh nói...

giup to bai tinh trung binh cong cac so nguyen duong nhap tu ban phim bang lenh lap khong xac dinh


19:44 Ngày 24 tháng 01 năm 2014
Nặc danh nói...

Toàn ng hỏi mà chả có ai t.l....lại còn mấy đứa điên đi viết = english


16:32 Ngày 20 tháng 03 năm 2014
Tom Wilson nói...

có pn nào giảng cho mình nghe ko


20:57 Ngày 23 tháng 03 năm 2014
Nặc danh nói...

Mấy chú kém quá. Ví dụ ma các chú đưa la đủ hiểu các chú.

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;


16:42 Ngày 08 tháng 04 năm 2014

Đăng nhận xét

Thành viên Blog

Tổng số lượt xem trang

Translate

Return to top of page Copyright © 2012 | Theme by Hack Tutors. Cung cấp bởi Blogger.
Các code pascal trong blog được sưu tầm, lựa chọn sao cho tối ưu nhất. Cảm ơn các tác giả đã viết thuật toán.