1. Trang chủ
  2. » Cao đẳng - Đại học

Bai 1 May tinh va chuong trinh may tinh

4 8 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Nếu điều kiện không đợc thỏa mãn, câu lệnh đợc tiếp tục thùc hiÖn; ngîc l¹i, chuyÓn sang c©u lÖnh tiÕp theo trong ch¬ng tr×nh.. Tuy cã vßng lÆp 1000 lÇn, nhng ch¬ng tr×nh Pascal nãi trªn[r]

(1)Bµi Em hãy nêu vài ví dụ các hoạt động ngày phụ thuộc vào ®iÒu kiÖn Sau mçi c©u lÖnh sau ®©y a) if (45 mod 3)=0 then X:=X+1; b) if X>10 then X:=X+1; giá trị biến X là bao nhiêu, trớc đó giá trị X 5? Có thể nêu nhiều vài ví dụ các hoạt động ngày phụ thuộc vào ®iÒu kiÖn Díi ®©y lµ mét sè vÝ dô: a) Nếu không đợc cắm điện, máy tính để bàn em không hoạt động đợc a) Vì 45 chia hết cho 3, điều kiện đợc thỏa mãn nên giá trị X đợc tăng lên 1, tức 6; b) Điều kiện không đợc thỏa mãn nên câu lệnh không đợc thực hiện, tức X giữ nguyên giá trị Bµi H·y cho biÕt t¸c dông cña c©u lÖnh lÆp! thực các hoạt động lặp, kiểm tra điều kiện Với lệnh lặp for <biến đếm> := <giá trị đầu> to <giá trị cuối> <câu lÖnh>; cña Pascal, ®iÒu kiÖn cÇn ph¶i kiÓm tra lµ g×? Chơng trình Pascal sau đây thực hoạt động nào? var i: integer; begin for i:=1 to 1000 do; end Hãy mô tả thuật toán để tính tổng sau đây (n là số tự nhiên đợc nhập vào từ bµn phÝm): A= 1 1 + + + 1.3 2.4 3.5 n (n+1) Câu lệnh lặp có tác dụng làm đơn giản và giảm nhẹ công sức ngời viết chơng trình! Chúng ta nói thực các hoạt động lặp, chơng trình kiểm tra ®iÒu kiÖn Víi lÖnh lÆp for <biến đếm> := <giá trị đầu> to <giá trị cuối> <câu lÖnh>; Pascal, điều kiện cần phải kiểm tra chính là giá trị biến đếm lớn giá trị cuối Nếu điều kiện không đợc thỏa mãn, câu lệnh đợc tiếp tục thùc hiÖn; ngîc l¹i, chuyÓn sang c©u lÖnh tiÕp theo ch¬ng tr×nh Tuy cã vßng lÆp 1000 lÇn, nhng ch¬ng tr×nh Pascal nãi trªn kh«ng thùc hiÖn bất kì hoạt động nào Tuy nhiên đây là câu lệnh hợp lệ ThuËt to¸n tÝnh tæng A = 1 1 + + + 1.3 2.4 3.5 n (n+1) (2) Bíc G¸n A  0, i  1 Bíc A  i(i  2) Bíc i  i + Bíc NÕu i ≤ n, quay l¹i bíc Bíc Ghi kÕt qu¶ A vµ kÕt thóc thuËt to¸n Bµi Nêu vài ví dụ hoạt động lặp với số lần cha biết trớc! H·y t×m hiÓu c¸c thuËt to¸n sau ®©y vµ cho biÕt thùc hiÖn thuËt to¸n, m¸y tÝnh sÏ bao nhiªu vßng lÆp? Khi kÕt thóc, gi¸ trÞ cña S b»ng bao nhiêu? Viết chơng trình Pascal thể các thuật toán đó! a) ThuËt to¸n Bíc S  10, x  0.5 Bíc NÕu S  5.2, chuyÓn tíi bíc Bíc S  S  x vµ quay l¹i bíc Bíc Th«ng b¸o S vµ kÕt thóc thuËt to¸n b) ThuËt to¸n Bíc S  10, n  Bíc NÕu S ≥ 10, chuyÓn tíi bíc Bíc n  n + 3, S  S  n quay l¹i bíc Bíc Th«ng b¸o S vµ kÕt thóc thuËt to¸n Cho nhËn xÐt cña em! Hãy tìm hiểu các cụm câu lệnh sau đây và cho biết với các câu lệnh đó ch¬ng tr×nh thùc hiÖn bao nhiªu vßng lÆp? H·y rót nhËn xÐt cña em! a)S:=0; n:=0; while S<=10 begin n:=n+1; S:=S+n end; b)S:=0; n:=0; while S<=10 n:=n+1; S:=S+n; H·y chØ lçi c¸c c©u lÖnh sau ®©y: a)X:=10; while X:=10 X:=X+5; b)X:=10; while X=10 X=X+5; c)S:=0; n:=0; while S<=10 n:=n+1; S:=S+n; Có thể nêu nhiều vài ví dụ các hoạt động lặp với số lần lặp cha biết tríc Díi ®©y lµ mét sè vÝ dô: a) Tìm từ định bị gõ sai chính tả văn và sửa lại cho đúng Số từ cần phải sửa cha đợc biết trớc M« t¶ thuËt to¸n: Bớc Đặt S  R (S là bán kính đờng tròn vẽ), n  0, x  0.5 Bíc NÕu S < 1.2, chuyÓn tíi bíc Bớc Vẽ đờng tròn bán kính S, S  S  x và quay lại bớc Bíc KÕt thóc thuËt to¸n (3) a) Thuật toán 1: 10 vòng lặp đợc thực Khi kết thúc thuật toán S = 5.0 §o¹n ch¬ng tr×nh Pascal t¬ng øng: S:=10; x:=0.5; while S>5.2 S:=S-x; writeln(S); b) Thuật toán 2: Không vòng lặp nào đợc thực vì từ đầu điều kiện đã không đợc thỏa mãn nên các bớc và bị bỏ qua S = 10 kết thóc thuËt to¸n §o¹n ch¬ng tr×nh Pascal t¬ng øng: S:=10; n:=0; while S<10 begin n:=n+3; S:=S-n end; writeln(S); Nhận xét: Trong các thuật toán và chơng trình trên, điều kiện đợc kiểm tra trớc các bớc lặp đợc thực Do đó điều kiện không đợc thỏa mãn từ đầu, các bớc lặp bị bỏ qua Điều này đặc biệt đúng c©u lÖnh lÆp while a) Chơng trình thực vòng lặp b) Vòng lặp chơng trình đợc thùc hiÖn v« tËn v× sau c©u lÖnh n:=n+1; c©u lÖnh lÆp kÕt thóc nªn ®iÒu kiện S=0 luôn luôn đợc thỏa mãn Nhận xét: Trong câu lệnh thực hiện, điều kiện cần phải đợc thay đổi để sớm hay muộn chuyển sang trạng thái không thỏa mãn Khi đó vòng lặp đợc kết thúc sau hữu hạn bớc Để làm đợc điều này, câu lệnh câu lệnh lÆp while thêng lµ c©u lÖnh ghÐp Bµi H·y nªu c¸c lîi Ých cña viÖc sö dông biÕn m¶ng ch¬ng tr×nh Các khai báo biến mảng sau đây Pascal đúng hay sai: a) var X: Array[10,13] Of Integer; b) var X: Array[5 10.5] Of Real; c) var X: Array[3.4 4.8] Of Integer; d) var X: Array[10 1] Of Integer; e) var X: Array[4 10] Of Real; Câu lệnh khai báo mảng sau đây có đợc máy tính thực không? var N: integer; A: array[1 N] of real; Viết chơng trình Pascal sử dụng mảng để nhập từ bàn phím các phần tử dãy số Độ dài dãy đợc nhập từ bàn phím Lîi Ých chÝnh cña viÖc sö dông biÕn m¶ng lµ rót gän viÖc viÕt ch¬ng tr×nh, có thể sử dụng câu lệnh lặp để thay nhiều câu lệnh Ngoài chúng ta còn có thể lu trữ và xử lí nhiều liệu có nội dung liên quan đến c¸ch hiÖu qu¶ §¸p ¸n a) Sai Ph¶i thay dÊu ph¶y b»ng hai dÊu chÊm; b) vµ c) Sai, v× gi¸ trÞ nhá nhÊt vµ lín nhÊt cña chØ sè m¶ng ph¶i lµ sè nguyªn; d) Sai, v× gi¸ trÞ ®©u cña chØ sè m¶ng ph¶i nhá h¬n hoÆc b»ng chØ sè cuèi; e) §óng (4) Không Giá trị nhỏ và lớn số mảng phải đợc xác định phÇn khai b¸o ch¬ng tr×nh Ch¬ng tr×nh cã thÓ nh sau: uses crt; var N, i: integer; A: array[1 100] of real; begin clrscr; write(’Nhap so phan tu cua mang, n= ’); readln(n); for i:=1 to n begin write(’Nhap gia tri ’,i,’cua mang, a[’,i,’]= ’); read(a[i]) end; end (5)

Ngày đăng: 28/09/2021, 02:55

Xem thêm:

w