Tin học Tin lớp 11 về pascal

Tram Phan

Học sinh
Thành viên
15 Tháng sáu 2019
105
24
36
Khánh Hòa
Trường THPT Nguyễn Văn Trỗi
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

  1. cho em hỏi khi nào dùng các câu lệnh như For - do, While - do, Repeat....until vậy ạ? cho em xin dạng bài của các câu lệnh trên ạ?
  2. BT : Viết chương trình nhập vào 1 phân số bất kì có tử bé hơn mẫu.Xuất ra màn hình phân số tối giản
  3. Nhập vào 2 số m,n (m<n); m,n là 2 số nguyên dương có giá trị <1000.Tính trung bình cộng của các số nằm (a,b) sao cho bình phương của số đó là bội của 5 và số đó là ước của 200
Ai giúp em với ạ :D
 

Kem Min

Học sinh chăm học
Thành viên
26 Tháng bảy 2016
91
177
144
22
1- For - do : khi ta sử dụng lệnh lặp có giới hạn số lần thì phải
- While - do, Repeat....until : lặp lại cho đến khi có đáp ứng được điều kiện ,vòng lặp này có thể là vô hạn dẫn đến chương trinhg bạn k chạy thành công.
ho em xin dạng bài của các câu lệnh trên ạ?
- trong bài nào ứng dụng đc vòng lặp thì dùng thôi -.-
BT : Viết chương trình nhập vào 1 phân số bất kì có tử bé hơn mẫu.Xuất ra màn hình phân số tối giản
- Ý tưởng : Lấy tử và mẫu chia cho Ư C L N của hai số đó nhé ;) . bạn mới học thì cứ begin ..... end. Còn học đến hàm rồi thì xài Function nhé
3.
sao cho bình phương của số đó là bội của 5 và số đó là ước của 200
chưa hiểu lắm , cần 1 vài ví dụ . Tức là tính trung bình cộng các số nằm trong khoảng a - b rồi sao ?
 
  • Like
Reactions: Tram Phan

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
241
19
Quảng Trị
Trường TH&THCS Hải Ba
  1. cho em hỏi khi nào dùng các câu lệnh như For - do, While - do, Repeat....until vậy ạ? cho em xin dạng bài của các câu lệnh trên ạ?
  2. BT : Viết chương trình nhập vào 1 phân số bất kì có tử bé hơn mẫu.Xuất ra màn hình phân số tối giản
  3. Nhập vào 2 số m,n (m<n); m,n là 2 số nguyên dương có giá trị <1000.Tính trung bình cộng của các số nằm (a,b) sao cho bình phương của số đó là bội của 5 và số đó là ước của 200
Ai giúp em với ạ :D
1. For-do là lặp voiw số lần biết trước. Với 1 lần lặp thì biến đếm taeng thêm 1 giá trị.
While - do, repeat-until là lặp với số lần không biết trước. Sau 1 lần lặp thì kiểm tra điều kiện:
+While - do:Nếu đk đúng thì làm tiếp, sai thì thoát khỏi vòng lặp.
+Repeat-until: Nếu đk thì dừng lại, sai thì làm tiếp.
Đối với 1 vài bài toán, while do có thể sẽ hữu dụng hơn for do, thường thì bài nào viết bằng for do nếu viết lại bằng while do đều được.
2.
Đề bài khá đơn giản nên em không sd đến CTC, nếu chị muốn thì chị có thể sd, và có thể dùng cả repeat để đặt đk ở phần nhập dữ liệu ^^
Mã:
Var
    a,b,c,d: integer;
Begin
    write('Nhap Tu so = '); readln(a);
    write('Nhap Mau so = '); readln(b);
    c:=a;
    d:=b;
    While c<>d do
         If c> d then c:=c-d else d:=d-c;
    If c<> 1 then
        begin
           a:=a div c;
           b:=b div c;
          write('Phan so toi gian: ',a,'/',b);
        end
   else write('Phan so da toi gian, ',a,'/',b);
readln
end.
3.
Mã:
Var
    M,n,t,d,i:integer;
Begin
   Readln(m):readln(n);
   T:=0;d:=n-m+1;
   For i:=m to n do
     If (i*i mod 5=0) and (200 mod i=0)
     Then t:=t+i;
   Writeln('TBC cac so thoa man dk la:',t/d:0:2);
   Readln
End.
 
  • Like
Reactions: Tram Phan

Hải Ham Học

Học sinh
Thành viên
24 Tháng sáu 2017
133
34
26
21
Bà Rịa - Vũng Tàu
thcs hòa hiệp
Trả lời cho câu 1:
Note : những cái in đậm là những từ ngữ bắt buộc phải có, còn in nghiêng mà thay thế bằng các biến hoặc giá trị tương ứng
- For...to...do... :
+ Cấu trúc : For <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh> ;
Trong đó :
<Biến đếm> là các giá trị đã Var (khai báo) nhưng thường là i , j , z .
<Giá trị đầu><giá trị cuối> hiểu đơn giản là cho <Biến đếm> "chạy" từ bao nhiêu đến bao nhiêu.. VD : for i:=1 to 10 do thì nó sẽ có 10 vòng lặp "chạy" lần lượt từ 1 đến 10 ..
+ Cách hoạt động : nó sẽ chạy lần lượt vòng lặp từ <giá trị đầu> đến <giá trị cuối> và thực hiện <câu lệnh> tương ứng với mỗi vòng lặp.
VD : For i:=1 to 5 do s:=s+5; vậy...nó sẽ chạy 5 vòng và lần lượt thực hiện lệnh s:=s+5; (tại sao mình không gán s:=0; vì nếu không cho nó giá trị gì nó sẽ mặc định bằng 0 )....cùng xét 5 vòng lặp nhé !!..
Vòng 1: s:=s+5=0+5=5;
Vòng 2: s:=s+5=5+5=10;
Vòng 3: s:=s+5=10+5=15;
Vòng 4: s:=s+5=15+5=20;
Vòng 5: s:=s+5=20+5=25;
=> khi xuất s sau khi thực hiện vòng For...to...do.. như trên thì s=25...
Bài tập For..to..do :
Bài 1 : Nhập n từ bàn phím. Tính tổng các số lẻ từ 1 đến n?
Bài 2 : Nhập n và m từ bán phím. Tính tổng các số lẻ từ n đến m ??
Bài 3 : Nhập n từ bàn phím. Tính tổng các số từ 1 đến n ??
- While...do .. :
+ Cấu trúc : While <điều kiện> do <câu lệnh> ;
Trong đó : <điều kiện> là các phép so sánh > , < , = , >= , <= VD : n>1 , m<=20 , i < n ,....Vân vân ....
<Câu lệnh>
giống như ở vòng For ..to..do... ....
+ Cách hoạt động : nó sẽ kiểm tra <câu lệnh> và nếu <câu lệnh> ĐÚNG thì nó mới thực hiện <câu lệnh> và tiếp tục kiểm tra <câu lệnh> nếu ĐÚNG thì thực hiện <câu lệnh> và cứ lặp lại như thế... còn KHÔNG ĐÚNG thì nó sẽ không thực hiện <câu lệnh> nữa và bỏ qua vòng While...do.. để thực hiện câu lệnh tiếp theo hay hiểu CAO SIÊU là break vòng lặp ...Cơ bản là từ vòng While..do.. chúng ta có thể chuyển sang vòng For ..to..do..NGƯỢC LẠI.
Ví dụ : từ vòng For i:=1 to 5 do s:=s+5; thì có thể viết lại vòng While...do nó sẽ thành :
i:=1; While (i<=5) do
begin
s:=s+5;
i:=i+1;
end;

Note : phải tăng biến đếm lên để nó còn break (bẻ gãy) vòng lặp nếu không sẽ thành vòng lặp vô hạn đấy !!!!
=> 2 vòng này khá giống nhau Nhưng vòng while...do... sẽ có nhiều tiện lời hơn...xem phần bài tập sẽ biết TIỆN chỗ nào nhé !!!
Bài tập While...do :
Bài 1 : Tính s=1+2+3+4..+n từ bán phím. Tìm số cuối cùng được cộng vào để tổng luôn nhỏ hơn 50,( là tính n đó !!! đầu tiên cho n:=0; sau đó cho tăng dần và đặt điều kiện s<50 cho vòng While ...do... vậy khi vòng While ...do kết thúc chúng tỏ s đã vượt quá 50 và xuất n ra là được)
Bài 2 : Nhập n từ bàn phím . Tính tổng từ 1 đến n (dùng vòng while...do)
- Repeat...until... :
+ Cấu trúc : Repeat <câu lệnh> until <điều kiện> ;
Trong đó :
<điều kiện><câu lệnh> giống y chang như 2 vòng lặp trên ...
+ Cách hoạt động : Nó sẽ thực hiện <câu lệnh> trước rồi mới kiểm tra <điều kiện> NHƯNG cái vòng lặp này nó ngược lại với While..do nếu <điều kiện> Đúng là nó sẽ bẻ gãy vòng lặp còn Sai thì sẽ quay lại thực hiện <câu lệnh> và cứ tiếp tục lặp lại như thế...
Ví dụ : từ vòng i:=1; While (i<=5) do begin s:=s+5; i:=i+1; end;chúng ta có thể chuyển sang repeat...do.. như sau :
i:=1;
repeat
begin
s:=s+5;
i:=i+1;
end;
until (i>5);
Bài tập Repeat..until :

Bài 1: Nhập n từ bàn phím . Tính tổng các số chẵn từ 1 đến n ??
Bài 2 : Nhập n từ bàn phím . Tính tích từ 1 đến n ??
---------------------------------------------------------------------------------------------------------------------------------------------------
---lời cuối cùng : nếu có gì thắc mắc hãy comment ở dưới, mình sẽ check thông báo thường xuyên, or nếu có facebook hay zalo có thể cho mình xin info chúng ta sẽ dễ dàng trao đổi hơn về vấn đề này---
Bài 2 3 Tối nhé, sắp đi học rồi =)))




 
  • Like
Reactions: Tram Phan
Top Bottom