- 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



Luat Hoang 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ỉ?


lúc 13:37 23 tháng 8, 2012
Unknown 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.


lúc 08:59 25 tháng 9, 2012
Unknown 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;


lúc 09:00 25 tháng 9, 2012
Unknown 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.


lúc 09:01 25 tháng 9, 2012
Unknown nói...

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


lúc 09:01 25 tháng 9, 2012
Luat Hoang nói...

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


lúc 12:35 25 tháng 9, 2012
Nặc danh nói...

đánh nhau đi


lúc 08:28 31 tháng 10, 2012
Nặc danh nói...

dkm ko ai giai ak


lúc 16:45 7 tháng 11, 2012
Nặc danh nói...

GIAI CAU 2 CUA THU NGO DI


lúc 08:18 11 tháng 11, 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


lúc 09:48 5 tháng 12, 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


lúc 09:51 5 tháng 12, 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


lúc 21:03 10 tháng 12, 2012
Unknown nói...

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


lúc 07:22 26 tháng 12, 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


lúc 02:02 16 tháng 3, 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


lúc 22:48 26 tháng 3, 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


lúc 00:01 27 tháng 3, 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


lúc 02:39 27 tháng 3, 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


lúc 21:00 27 tháng 3, 2013
Nặc danh nói...

kjkj


lúc 16:56 31 tháng 3, 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


lúc 05:29 3 tháng 4, 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


lúc 12:28 12 tháng 6, 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


lúc 13:07 12 tháng 6, 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


lúc 09:45 13 tháng 6, 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


lúc 09:48 13 tháng 6, 2013
Nặc danh nói...

I could not resist commenting. Perfectly written!

my blog Mouse Click the Next document **


lúc 23:01 13 tháng 6, 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 :: ::


lúc 02:07 14 tháng 6, 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 ()


lúc 22:29 15 tháng 6, 2013
Unknown 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


lúc 09:47 5 tháng 1, 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








lúc 19:42 24 tháng 1, 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


lúc 19:44 24 tháng 1, 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


lúc 16:32 20 tháng 3, 2014
Hoàng Tùng nói...

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


lúc 20:57 23 tháng 3, 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;


lúc 16:42 8 tháng 4, 2014
Unknown nói...

Ai giai giup minh bai nay voi:

Cho số n (n được nhập từ bàn phím). Viết chương trình tính tổng nghịch đảo các số nguyên tố nhỏ hơn hoặc bằng n


lúc 08:51 28 tháng 6, 2014
Nặc danh nói...
Nhận xét này đã bị tác giả xóa.
Nặc danh nói...

có cách nào phân biệt tổng quát for, while với repeat k m.n?


lúc 14:53 11 tháng 8, 2015
Unknown nói...

có j k bt hỏi a len face a bày cho


lúc 20:42 27 tháng 1, 2016
Unknown nói...

Giup em bai nay vs:
Lap trinh tinh tong :
A:= 1 + 1/2 + 1/3 + ... + 1/n
Với n được nhập từ bàn phím và sử dụng lệnh While


lúc 20:17 24 tháng 11, 2016
Unknown nói...

câu điều kiện case of đâu


lúc 21:02 28 tháng 11, 2016
Unknown nói...

câu điều kiện case of đâu


lúc 21:03 28 tháng 11, 2016
Unknown nói...

Trunc có ngĩa lak giá trị nguyên ạ
Ví dụ : trunc(2,5) thì lấy 2


lúc 21:04 9 tháng 1, 2017
18+ nói...

Lập trình để giải bài toán cổ sau:
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ó bao nhiu con mỗi loại?. Mấy bn chỉ mik với. Mai mik kiểm tra r. Mik xin cảm ơn


lúc 19:52 18 tháng 1, 2017
Nặc danh nói...

như cc


lúc 20:04 8 tháng 3, 2017
Unknown nói...

bài đó trong sách lớp 8


lúc 17:18 13 tháng 3, 2017
Nặc danh nói...

Tính tổng các số nhập từ bàn phím cho đến khi nhập 0 thì dừng lại.
Ai giỏi tin giúp mình nha!!!


lúc 20:26 24 tháng 3, 2017
Unknown nói...

Có ai biết chỉ m bài này vs nhập mảng 100 giá trị và xuất giá trị cuối


lúc 23:35 6 tháng 4, 2017
Unknown nói...

program tinhtongtubanphim;
var i,s : real;
//s:=0;
begin
repeat
write("nhap so tu ban phim: ");
readln(i);
s:=s+i;
until(i=0);
writeln('Tong = ',s);
readln;
end.


lúc 10:03 5 tháng 5, 2017
Nặc danh nói...

Ahaahahaha ccccc


lúc 07:59 26 tháng 5, 2017
Nặc danh nói...

anh giup em coi code nay voi:

uses crt;
type mang=array[1..100] of byte;
var x,y,tamx,tamy:mang;
j,k,a,n,i:byte;ch:char;
begin
n:=1;j:=random(79);k:=random(25);x[1]:=39;y[1]:=7;
while a<>1 do
begin
randomize;
clrscr;
if keypressed then ch:=readkey;
if ch='a' then dec(x[1],1);
if ch='d' then inc(x[1],1);
if ch='w' then dec(y[1],1);
if ch='s' then inc(y[1],1);
for i:=1 to n do
begin
x[i+1]:=tamx[i];
y[i+1]:=tamy[i];
end;
gotoxy(j,k);textcolor(red);writeln('*');
if x[1]=j and y[1]=k then
begin
n:=n+1;
j:=random(79);k:=random(25);
end;
for i:=1 to n do
begin
gotoxy(x[i],y[i]);textcolor(yellow);writeln('o');
end;
for i:=1 to n do
begin
tamx[i]:=x[i];
tamy[i]:=y[i];
end;
delay(100);
end;
readln;
end.


lúc 15:21 8 tháng 9, 2017
Mai Phương nói...

có bạn nào nói tinh tong xong gap so 0 thì dừng lại đây là bài:

program tknhtongtubanphim;
uses crt;
var a,s:integer;
begin
s:=0;
clrscr;
writeln('Nhap 1 so bat ki');
readln(a);
clrscr;
repeat
begin
s:=a+s;
writeln(s);
delay(500);
writeln('Nhap 1 so bat ki');
readln(a);
clrscr;
end;
until a=0;
delay(1000);
end.


lúc 10:08 28 tháng 12, 2017
Nặc danh nói...

ai giúp em làm bài viết chuong tình tính tổng trung bình cộng khi muốn kết thúc nhập để tính trung bình thì nhấn phím 0 làm bằng while do với ạ


lúc 22:01 15 tháng 1, 2018
Unknown nói...

Tính tổng liên tiếp từ 1 đến 100, câu lệnh lặp của vòng lặp for phải là S := S + i.


lúc 11:20 3 tháng 6, 2018
Unknown nói...

Đau đầu quá các bạn ơi


lúc 09:53 26 tháng 9, 2018
Nặc danh nói...

đm tao cân cả


lúc 20:17 3 tháng 10, 2018
Nặc danh nói...

bọn mày chả là gì cả tao là vua


lúc 20:20 3 tháng 10, 2018
Unknown nói...

Viết ct in ra bảng nhân n y|c sử dụng lệnh lặp for...to...do


lúc 12:50 25 tháng 3, 2019
Kimhuythanh nói...

hoc may cai nay lam gi, lam cai khac suong hon nhieu


lúc 23:18 10 tháng 6, 2019
Unknown nói...

Tính tổng các số tự nhiên liên tiếp từ 1 đến 100 ở ví dụ vòng lặp for do ad ghi nhầm đoạn:
for i:=1 to 100 do s:=s+1 phải là s:=s+i nhé mn


lúc 00:39 9 tháng 8, 2019
Unknown nói...

#include "iostream"
using namespace std;
void Tong(int n)
{
int TC = 0;
int T = 0;
for(int i = 1; i <= n; i++)
{
T += i;
if(i%2 == 0)
{
TC += i;
}
}
cout << "Tong Tu 1->n la: " << T;
cout << "\nTong Cac So Chan La: " << TC;
}
int main()
{
int n;
cout << "nhap so chan > 0: ";
cin >> n;
if((n % 2)!= 0)
{
cout << "error: so nhap vao la so le: ";
return 0;
}
Tong(n);
return 0;
}


lúc 10:20 3 tháng 11, 2019
Lập trình viên cấp cao nói...

Làm sao đây. ngày mai mình thi rồi, bạn giúp mình làm bài pascal này với
Viết chương trìn nhập n phần tử và k phần tử khác nhau và tạo điều kiện để dãy số n và k là một cấp số cộng, cấp số nhân, cấp cứu, cấp bách ạ!


lúc 15:18 30 tháng 12, 2019
Lập trình viên cấp cao nói...

Thật cám ơn những bài giảng của blog mình hi vọng sẽ học giỏi


lúc 15:21 30 tháng 12, 2019

Đă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.