1. Trang chủ
  2. » Giáo án - Bài giảng

CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT

783 97 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • CHNG 1

  • QUI TC CNG

  • QUI TC NHN

  • Vớ d 1

  • Vớ d 2

  • Vớ d 3

  • Vớ d 4

  • GII THUT TNH GI TR TRUNG BèNH

  • Vớ d 1

    • BEGIN

  • Cõu hi chng 2

  • Câu hỏi chương 2

  • Cấu trúc dữ liệu danh sách

    • 1 - Tìm kiếm một phần tử trong danh sách

    • 2 - Bổ xung phần tử vào danh sách

      • Chú ý : Các phần tử đi sau phần tử thêm vào sẽ bị thay đổi vị trí sau khi thực hiện phép thêm vào

      • 3 - Loại bỏ một phần tử khỏi danh sách

      • 4 - Thay thế một phần tử của danh sách bởi một phần tử khác

      • 5 - Tách một danh sách thành nhiều danh sách

      • 6 - Ghép nhiều danh sách thành một danh sách

      • Kết quả của phép ghép là tạo ra một danh sách mới có số lượng các phần tử bằng tổng các phần tử của các danh sách thành phần . Danh sách thứ nhất gồm hai ngành :

      • 7 - Trộn nhiều danh sách thành một danh sách mới

      • Khi trộn nhiều danh sách chúng ta phải dựa vào một qui tắc nào đó . Chẳng hạn , trộn hai danh sách có cùng thứ tự ( tăng dần hay giảm dần ) để tạo ra một danh sách có cùng thứ tự đó .

      • Kết quả trộn là danh sách sau đây :

      • 8 - Sắp xếp thứ tự một danh sách

        • Khi sắp xếp ta phải dựa vào một khoá nào đó . Việc sắp xếp sẽ làm thay đổi vị trí của các phần tử trong danh sách theo trình tự của khoá . Ví dụ : Sắp xếp danh sách sau đây theo trình tự A,B,C của tên ngành học :

        • Giải thuật tạo lập Stack

    • Giải thuật tạo lập Queue

    • Giải thuật kiểm tra Queue rỗng

    • Giải thuật chèn vào Queue

    • Giải thuật loại khỏi Queue

      • Bài toán 1

        • Chương 4

        • Bài toán 2

          • Giải thuật tạo lập

          • Giải thuật ghép nối hai danh sách

          • Giải thuật tách danh sách

          • Giải thuật ghép danh sách liên kết đối xứng

          • Giải thuật tách danh sách liên kết đối xứng

        • Trường hợp 1

        • Trường hợp 2

          • Bài toán 1

          • Bài toán 2

          • Bài toán 3

          • Bài toán 4

    • Câu hỏi ôn tập chương 5

  • Bài 2

  • Giải thuật tìm theo chiều sâu

    • Dùng ma trận kề

  • Dùng danh sách kề

  • Dùng danh sách các cạnh

  • Sắp sếp - SORTING

    • Số hiệu hoá đơn

  • Procedure Comparison - Counting;

  • Phân tích phương pháp đếm

    • Giải thuật như sau :

  • Procedure Straight - Selection - Sort

  • Phân tích phương pháp chọn trực tiếp

    • Ví dụ

    • Phân tích phương pháp Bubblesort và Shakersort

    • Procedure Shell _ Sort

    • Procedure Partition ;

    • Procedure Quick Sort ;

    • Procedure Merge _ Sort ;

    • Phân tích giải thuật tìm kiếm tuần tự [8]

      • X = 73 < K6

    • Giá trị khoá Địa chỉ

    • Giá trị khóa Địa chỉ

      • 8.4.3 các phương pháp Khắc phục đụng độ

        • Hình 8.2

    • Câu hỏi ôn tập chương 8

  • 1.2.Sự ra đời và phát triển của PASCAL

  • 1.3.Giới thiệu Turbo PASCAL

  • 2.1.Bộ chữ viết dùng trong PASCAL

  • a. Các chữ cái của bảng chữ cái tiếng Anh

  • b. Các chữ số

  • 2.3.Tên (Define)

  • Một số tên chuẩn thường được dùng trong Turbo PASCAL

  • 3.1.Phần tên chương trình

  • PROGRAM SAPXEP;

  • PROGRAM TAOTEPSN;

  • PROGRAM GiaiPhuongTrinhBac2;

  • 3.2.Phần khai báo

  • a.Khái niệm hằng và biến

  • b.Khai báo hằng

  • CONST

  • GIOIHAN = 255; TOIDA = 1024;

  • VAR

  • I, J : Integer ;

  • Traloi: Boolean;

  • Tong : Real;

  • 3.3.Phần thân chương trình

  • Program Loichao;

  • Begin

  • Writeln('Chao ban Phan Thi Phuong Thanh ');

  • End.

  • Chao ban Phan Thi Phuong Thanh!

  • 4.1.Khởi động Turbo PASCAL

  • TURBO

  • 4.2.Bảng chọn lệnh

  • 4.3.Dịch chương trình

  • 4.4.Thực hiện chương trình

  • 4.5.Thoát khỏi Turbo PASCAL

  • 5.1.Khái niệm kiểu dữ liệu

  • 1. Kiểu vô hướng (còn gọi là kiểu đơn giản).

  • 1.2 + Kiểu vô hướng do người lập trình tự định nghĩa.

  • 1.2.2 _ Kiểu liệt kê (ENUMERATED).

  • 2. Kiểu dữ liệu có cấu trúc (STRUCTURED TYPE).

  • 3. Kiểu dãy ký tự (STRING TYPE).

  • 4. Kiểu con trỏ (POINTER TYPE).

  • 5.2.Kiểu dữ liệu lô gic (Boolean)

  • a.Khái niệm kiểu dữ liệu lô gic

  • b.Các phép toán đối với dữ liệu kiểu lô gic

  • VAR

  • GioiTinh,DangVien: Boolean;

  • 5.3.Kiểu dữ liệu số nguyên (Integer)

  • a.Khái niệm kiểu dữ liệu số nguyên

  • VAR

  • I,J: Integer;

  • b.Các phép toán số học đối với dữ liệu kiểu nguyên

  • 5.4.Kiểu dữ liệu số thực (Real)

  • a.Khái niệm kiểu dữ liệu số thực

  • b.Số thực dấu phẩy tĩnh

  • c.Số thực dấu phẩy động

  • VAR

  • S,Tong: Real;

  • d.Các phép toán số học và quan hệ đối với kiểu dữ liệu số thực

  • 5.5.Các hàm chuẩn cho dữ liệu kiểu nguyên và thực

  • 5.6.Kiểu dữ liệu ký tự (Character)

  • a.Khái niệm kiểu dữ liệu ký tự

  • VAR

  • Traloi: char ;

  • b.Các hàm chuẩn dùng cho các dữ liệu kiểu ký tự

  • 5.7.Kiểu dữ liệu dãy ký tự (String)

  • a.Khái niệm kiểu dữ liệu dãy ký tự

  • VAR

  • HOVATEN: String[25];

  • LOP:String[25];

  • HOVATEN:= 'BUI DIEU LINH';

  • LOP:= 'Tai chinh B khoa 39 - Ngan hang';

  • b.Phép toán đối với dữ liệu kiểu dãy ký tự

  • 'TURBO'+' PASCAL' = 'TURBO PASCAL'.

  • c.So sánh hai dãy kí tự

  • 6.1.Khái niệm biểu thức

  • 6.2.Các phép toán (Operator)

  • 6.3.Thứ tự thực hiện phép toán trong biểu thức

  • 7.1.Thủ tục xuất dữ liệu ra màn hình (Write)

  • WRITE(<Biểu thức 1, Biểu thức 2,..., Biểu thức n>);

  • VAR

  • I:Integer;

  • T:Real;

  • Begin

  • I:= 1;

  • T:= 51.124;

  • Write(I,T);

  • End.

  • 7.2.Thủ tục xuất dữ liệu ra màn hình (Writeln)

  • WRITELN(<Biểu thức 1, Biểu thức 2,..., Biểu thức n>);

  • WRITELN;

  • 7.3.Đưa ra màn hình có qui cách

  • <Biểu thức kiểu St>:n

  • Var

  • Ten1, Ten2: String[25];

  • Begin

  • Writeln('1234567890123456789012345');

  • End.

  • <Biểu thức kiểu BL>:n

  • Var

  • OK: Boolean;

  • Begin

  • Writeln('12345678901234567890');

  • OK:= 3 < 5;

  • End.

  • <Biểu thức kiểu IN>:n

  • Var

  • I, J: Integer;

  • Begin

  • Writeln('12345678901234567890');

  • I:=123;

  • End.

  • <Biểu thức kiểu RE>:n

  • <Biểu thức kiểu RE>:n:m

  • Var

  • R: Real;

  • Begin

  • Writeln('12345678901234567890');

  • R:= 123.456;

  • End.

  • 7.4.Đưa ra máy in

  • Uses Printer;

  • .

  • .

  • Writeln(Lst,I:5,R:12:5);

  • 7.5.Thủ tục trình bầy màn hình

  • a.Thủ tục GoToXY(X,Y)

  • b.Thủ tục ClrScr (Clear Screen)

  • c.Thủ tục ClrEol (Clear End Of Line)

  • d.Thủ tục TextColor (Color)

  • e.Thủ tục TextBackGround (Color)

  • Program Cac_Lenh_Man_Hinh;

  • Uses

  • Crt;

  • Var

  • X, Y: Integer;

  • Begin

  • ClrScr;

  • X:= 10;Y:= 2;

  • GoToXY(X,Y);TextColor(Red);

  • Write('PASCAL');

  • GoToXY(X-6,Y+1);TextColor(Green);

  • Write('PASCAL');

  • GoToXY(X+6,Y+2);TextColor(Blue);

  • Write('PASCAL');

  • GoToXY(X,Y+3);TextColor(0);

  • Write('PASCAL');

  • Readln;

  • End.

  • f.Các thủ tục LowVideo và NormVideo

  • NormVideo;Write('P');

  • LowVideo;Write('ASCA');

  • NormVideo;Write('L');

  • g.Hàm WhereX và hàm WhereY

  • 7.6.Thủ tục vào dữ liệu (Read)

  • Var

  • Luong,no: Real;

  • Begin

  • Write('Nhap vao hai gia tri luong, no');

  • Read(Luong,No);

  • End.

  • 7.7.Thủ tục vào dữ liệu (Readln)

  • READLN;

  • Program ViDuVeQuiCach;

  • MaCB: Integer;

  • MLuong,Tamung:Real;

  • Begin

  • Write('Nhap vao Ma can bo, Muc luong va tam ung');

  • Readln(MaCB,MLuong,Tamung);

  • Write(MaCB:4,MLuong:8:2,Tamung:8:2);

  • Writeln(Mluong - Tamung:8:2);

  • Readln;

  • End.

  • 8.1. Lệnh gán (Assignment)

  • <Tên biến>:= <Biểu thức>;

  • I:=1;

  • TB:=(Toan+Ly+Hoa)/3;

  • J:=J+1;

  • 8.2. Câu lệnh ghép (Compound Statement)

  • IF A1>A2 Then

  • Begin

  • End;

  • 8.3. Một số ví dụ

  • Program Tinh_Diem_Trung_Binh;

  • Var

  • TenSV:String[25];

  • Toan,Ly,Hoa,TB:Real;

  • Begin

  • Write('Nhap ten Sinh Vien ');Readln(TenSV);

  • Write('Nhap diem toan ly, hoa ');

  • Readln(Toan, Ly, Hoa);

  • TB:= (Toan+Ly+Hoa)/3;

  • Writeln(Ten sinh vien;TenSV:25,Diem TB;TB:5:2);

  • Readln;

  • End.

  • Program Tinh_Luong;

  • Var

  • TenCN:String[25];

  • TL,TT,TNO,TDL:Real;

  • Begin

  • Write('Nhap ten cong nhan ');

  • Readln(TenCN);

  • Write('Nhap luong,Thuong,No ');

  • Readln(TL,TT,TNO);

  • TDL:=(TL+TT-TNO);

  • Writeln(TenCN:25, TDL:10:2);

  • Readln;

  • End.

  • 9.1. Câu lệnh rẽ hai nhánh (If..Then..)

  • Program Tinh_Tien_Thuong;

  • Var

  • TenCN:String[25];

  • SLSP,DM,TT:Real;

  • Begin

  • Write ('Nhap ten cong nhan ');

  • Readln(TenCN);

  • Write('Nhap So Luong san pham ');

  • Readln(SLSP)

  • Write('Nhap Dinh muc san pham ');

  • Readln(DM);

  • If SLSP > DM Then

  • TT:=(SLSP-DM)*5000

  • Else

  • TT:=0;

  • Writeln(TenCN,TT);

  • End.

  • Progam Giai_Phuong_Trinh_Bac_Hai;

  • VAR

  • A,B,C,X1,X2,Delta:Real;

  • Begin

  • Write('nhap 3 so A,B,C');Readln(A,B,C);

  • Delta:=B*B-4*A*C;

  • If Delta < 0 Then

  • Writeln('Phuong trinh vo nghiem')

  • Else

  • Begin

  • X1:= (-B + SQRT(Delta))/(2*A);

  • X2:= (-B - SQRT(Delta))/(2*A);

  • Writeln('X1 = ',X1,'X2 = ',X2);

  • End;

  • End.

  • 9.2.Câu lệnh chuyển vô điều kiện (Goto) và khai báo nhãn (Label)

  • GOTO <Nhãn>;

  • 9.4.Câu lệnh rẽ nhiều nhánh (Case ... Of)

  • Câu lệnh CASE có 2 qui cách

  • CASE <Biểu thức> OF

  • END;

  • END;

  • 10.1.Khái niệm chương trình có chu trình

  • 10.2.Các lệnh chu trình của PASCAL

  • a. Câu lệnh chu trình số học (FOR ... DO)

  • b. Câu lệnh chu trình lô gic WHILE... DO

  • c. Câu lệnh chu trình lô gic REPEAT... UNTIL

  • 11.1.Khái niệm dữ liệu kiểu mảng

  • 11.2.Khai báo dữ liệu kiểu mảng

  • Chương trình này cho ta kết quả

  • I = 512 thi Str(I:5,St) sẽ cho kết quả là St = ' 512'.còn

  • Tệp rỗng có thể gán cho mọi biến kiểu tập hợp khác nhau.

  • A := [3..5]; B := [4..6,10,123];

  • C := A*B; ( thì C sẽ là [4,5]).

  • GRAPH.TPU

  • USES GRAPH;

  • CGA.BGI

  • EGAVGA.BGI

  • Qui cách:

  • Qui cách:

  • Qui cách:

  • Qui cách:

  • Qui cách:

  • Qui cách:

  • Qui cách:

  • Qui cách:

  • Qui cách1:

  • Qui cách 2:

  • Qui cách:

  • Tiền được lĩnh = Tiền lương + Tiền thưởng - Tiền nợ

Nội dung

Quá trình giải quyết một bài toán trên máy tính bao gồm nhiều công đoạn . Bước thứ nhất là xác lập mô hình của bài toán,tức là xác định cấu trúc toán học của bài toán đặt ra. Thực tế cho thấy ,đối với các cơ sở thực tiễn người ta chỉ phác hoạ ra các yêu cầu cần giải quyết một cách hình thức dưới dạng các yêu cầu, mong muốn. Nhiệm vụ của phân tích viên hệ thống là phải chuyển các yêu cầu rất hình thức đó thành các cấu trúc chặt chẽ dưới dạng một mô hình toán học . Mô hình này là cơ sở để thiết kế các bước tiếp theo giải quyết bài toán bắt đầu từ việc thiết kế cấu trúc dữ liệu, thiết kế giải thuật, lựa chọn ngôn ngữ diễn đạt giải thuật, đến việc thử nghiệm chương trình và phân tích kết quả của chương trình nhằm đánh giá chất lượng của chương trình.

Ngày đăng: 06/04/2018, 14:41

TỪ KHÓA LIÊN QUAN

w