Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
2,93 MB
Nội dung
1 Bài thực hành số 4 Giáo viên hớng dẫn : Thầy Trần Doãn Vinh Sinh viên thực tập : Phạm Thị Minh Thùy Lớp K56A_Khoa CNTT_ĐHSP Hà Nội 2 I_Bài 1: a) Hãy tìm hiểu và chạy thử chơng trình thực hiện thuật toán sắp xếp dãy số nguyên bằng thuật toán tráo đổi với các giá trị khác nhau của n dới đây.Qua đó nhận xét về thời gian chạy của chơng trình ? 3 I_Bµi 1: Uses Crt ; Const Nmax=250 ; Type ArrInt = array[1 Nmax] of integer ; Var n , i , j , t : integer ; A : ArrInt ; BEGIN ClrScr; Randomize ; Write (‘Nhap n = ‘) ; Readln(n); For i :=1 to n do A[i] :=random(300)- random(300); For i:=1 to n do write (A[i] :5) ; Writeln ; 4 I_Bµi 1: For j := N downto 2 do For i :=1 to j – 1 do If A[i] > A[i+1] then Begin t :=A[i]; A[i] := A[i+1]; A[i+1] := t ; End ; Writeln (‘ Day so duoc sap xep : ‘) ; For i := 1 to n do Write (A[i] :7 ); Writeln ; Readln END. 5 I_Bài 1: b) Khai báo thêm biến nguyên Dem và bổ sung vào chơng trình những câu lệnh cần thiết để biến Dem tính số lần thực hiện tráo đổi trong thuật toán .Đa kết quả tìm đợc ra màn hình . 6 I_Bµi 1: + Khai b¸o : n , i , j ,t , d :integer ; + Bæ sung ch¬ng tr×nh : d :=0 ; For j:= N downto 2 do For i:=1 to j – 1 do If A[i] > A[i+1] then Begin d:= d+1 ; t := A[i] ; A[i] := A[i+1] A[i+1] := t ; End ; Writeln (‘ So lan thuc hien thuat toan :’,d,’’); Writeln (‘ Day so duoc sap xep: ‘); For i:=1 to n do Write (A[i] : 7); Write (d); Writeln; Readln End. 7 II_Bài 2: Hãy đọc và tìm hiểu những phân tích để viết chơng trình giải bài toán : Cho mảng A gồm n phần tử . Hãy viết chơng trình tạo mảng B[1 n], trong đó B[i] là tổng của i phần tử đầu tiên của A. 8 II_Bµi 2: Program SubSum1; Const max=100; Type MyArray=array[1 max] of integer; Var A , B : MyArray; n , i , j : integer ; Begin Radomize; Write (‘ Nhap n =’); Readln(n) ; For i :=1 to n do A[i] := random(300) – random(300) ; For i :=1 to n do write(A[i] :5); Writeln ; 9 II_Bài 2: For i :=1 to n do Begin B[i]:=0; For j :=1 to i do B[i]:=B[i]+A[j]; End ; For i :=1 to n do write (B[i] :6); Readln End. Ta tạo các phần tử thứ i của mảng B bằng cách cho vòng For chạy từ 1 đến i , sau đó cộng dần các A[i] lại với nhau : For i :=1 to n do Begin B[i] :=0 ; For j := 1 to i do B[i] := B[i]+A[j] ; 10 II_Bài 2: Ta có hệ thức sau : B[1]:=A[1] ; B[i]:=B[i-1]+A[i] , 1<i =< n . Do đó có đoạn chơng trình khác là : B[1]:=A[1] ; For i :=2 to n do B[i]:=B[i-1]+A[i] ; Với 2 lệnh này máy chỉ phải thực hiện n-1 phép cộng . [...].. .Bài tập về nhà : -Viết chơng trình tìm phần tử có giá trị lớn nhất của mảng và đa ra màn hình chỉ số và giá trị của phần tử tìm đợc Nếu có nhiều phần tử có cùng giá trị lớn nhất thì đa ra phần tử có chỉ số nhỏ nhất ? - Hớng dẫn qua : + Xác định dữ liệu vào , dữ liệu ra ? + Sử dụng biến j để lu giá trị . 1 Bài thực hành số 4 Giáo viên hớng dẫn : Thầy Trần Doãn Vinh Sinh viên thực tập : Phạm Thị Minh Thùy Lớp K56A_Khoa CNTT_ĐHSP Hà Nội 2 I _Bài 1: a) Hãy tìm hiểu. ); Writeln ; Readln END. 5 I _Bài 1: b) Khai báo thêm biến nguyên Dem và bổ sung vào chơng trình những câu lệnh cần thiết để biến Dem tính số lần thực hiện tráo đổi trong thuật toán. Với 2 lệnh này máy chỉ phải thực hiện n-1 phép cộng . 11 Bài tập về nhà : -Viết chơng trình tìm phần tử có giá trị lớn nhất của mảng và đa ra màn hình chỉ số và giá trị của phần tử tìm