Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 11 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
11
Dung lượng
403,53 KB
Nội dung
Trường Đại Học Sư Phạm TP.HCM Nhóm: 25 Khoa: Công Nghệ Thông Tin Hoàng Văn Triều MSSV: 36103081 Lớp: SP Tin 1 Nguyễn Thành Nam MSSV:36103041 Trang 1 BÀI BÁO CÁO WEEK 03 I. Sự chuyển đổi từ dữ liệu của bài toán thành dữ liệu của chương trình? Dữ liệu của bài toán sẽ được biểu diễn lại dưới dạng các biến của chương trình thông qua các quy tắc xác định của ngôn ngữ lập trình (NNLT) cụ thể. Mọi vấn đề bài toán nào, dù rất đơn giản, đều ít nhiều dùng đến dữ liệu. Không những thế, dữ liệu bài toán thường phong phú và đề cập đến nhiều loại đối tượng khác nhau trong thế giới thực. Còn đối với chương trình máy tính , mọi dữ liệu của chương trình đếu nằm ở các biến. Như vậy, so với cách biểu diễn dữ liệu ở thế giới thực, cách biểu diễn dữ liệu của máy tính hạn chế hơn rất nhiều nên khi giải bài toán trên máy tính người ta thường biến đổi lại dữ liệu của bài toán để phù hợp với cách biểu diễn trong máy tính. 1. Biến (Variable) a. Khái niệm Biến là nơi lưu trữ giá trị-số nguyên, số thực, kí tự,… Một biến chỉ có thể lưu được một loại giá trị nhất định kiểu dữ liệu của biến. Giá trị mà biến đang lưu trữ có thể bị thay đổi nhiều lần trong quá trình chương trình thi hành. Một biến bất kì trong máy tính có 3 thuộc tính: Tên biến (được đặt tên do người lập trình – gọi là định danh – indentifier). Kiểu dữ liệu của biến. Gía trị hiện tại mà biến đang lưu trữ. Biến cần phải được khai báo (định nghĩa) trước khi sử dụng. Lưu ý: Ý nghĩa của biến chỉ được hiểu bởi con người, không có ý nghĩa với PC; Tên biến cần gợi nhớ và thống nhất; Tên biến phải hợp lệ - tuân thủ theo quy ước của NNLT. b. Khai báo biến Mọi biến trong chương trình cần được khai báo trước khi sử dụng. Khai báo biến là dặt tên cho biến và xác định kiểu biến. Cú pháp khai báo: Pascal: <tên1>[,<tên2>,…,<tênN>]: <kiểu>; C: <kiểu> <tên1>[,<tên2>,…,<tênN>]; Trong đó: <tên1>,<tên2>,…,<tênN> là tên các biến cần khai báo. <kiểu> là kiểu cảu các biến cần khai báo. Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Trường Đại Học Sư Phạm TP.HCM Nhóm: 25 Khoa: Công Nghệ Thông Tin Hoàng Văn Triều MSSV: 36103081 Lớp: SP Tin 1 Nguyễn Thành Nam MSSV:36103041 Trang 2 Lưu ý: Ngôn ngữ C phân biệt cữ hoa chữ thường còn Pascal thì không có đặt tính này. Nghĩa là, với Pascal khi khai báo 3 biến Var1, VAR1, VAr1 thì sẽ bị lỗi vì tên biến trùng nhau; Còn với C, Var1, VAR1, VAr1 là 3 biến hoàn toàn khác nhau. 2. Kiểu dữ liệu (Data type) Trong NNLT, loại giá trị mà biếu lưu trữ được phân thành những kiểu dữ liệu khác nhau. Thông thường, trong NNLT có các kiểu dữ liệu sau: Kiểu dữ liệu số: gồm 2 loại o Kiểu dữ liệu số nguyên. o Kiểu dữ liệu số thực. Kiểu luận lý (logic) Kiểu kí tự Kiểu chuổi kí tự Mỗi kiểu có một miền giá tri khác nhau. a. Kiểu số nguyên Có nhiều kiểu số nguyên Tùy thuộc vào độ lớn của miền giá trị, có: o Số nguyên 8 bit (1 byte) Loại có dấu: -128 127 Loại không dấu: 0 255 o Số nguyên 16 bit (2 byte) Loại có dấu: -32,768 32,767 Loại không dấu: 0 65,535 o Số nguyên 32 bit (4 byte) Loại có dấu: -2,147,483,648 2,147,483,647 Loại không dấu: 0 4,2944,969,295 Một số NNLT còn hỗ trợ kiểu số nguyên 64 bit, 128 bit. Kiểu số nguyên k bit sẽ chiếm k bit dữ liệu. b. Kiểu số thực Có 2 dạng thường gặp Số thực 32 bit (4 byte) Số thực 64 bit ( 8 byte) Một số NNLT cón hỗ trợ số thực 80 bit (10 byte) c. Các kiểu dữ liệu khác Kiểu luận lý (logic): chỉ nhận 1 trong 2 giá trị - True (1) hoặc False (0) Kiểu kí tự: dùng để lưu trữ dữ liệu ở dạng một kí tự - là một trong các kí hiệu của bảng mã ASCII, chiếm 1 byte bộ nhớ (một số NNLT cho phép lưu trữ kí tự mã Unicode chiếm 2 byte bộ nhớ). Kiểu chuỗi kí tự: dùng để lưu trữ 1 chuỗi kí tự. Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Trường Đại Học Sư Phạm TP.HCM Nhóm: 25 Khoa: Công Nghệ Thông Tin Hoàng Văn Triều MSSV: 36103081 Lớp: SP Tin 1 Nguyễn Thành Nam MSSV:36103041 Trang 3 Lo ạ i Pasc al Mi ề n giá tr ị C Mi ề n giá tr ị Logic Booleean True/False int 1/0 Kí t ự Char 256 kí t ự char 256 kí t ự Chu ỗ i String[n] n kí t ự , m ỗ i kí t ự 1 byte char[n] n kí t ự , m ỗ i kí t ự 1 byte Lưu ý: Mọi kiểu dữ liệu dạng số đều hữu hạn và rời rạc. Hiểu biết cách biểu diễn số nguyên, số thực trongv máy tính. Chọn lựa kiểu dữ liệu niến sao co phù hợp. 3. Hằng (constant)_ phương tiện làm rõ chương trình Hằng trong chương trình là một loại giá trị không đổi trong suốt quá trình thi hành Mục đích của hằng là giúp cho chương trình dễ hiểu hơn, hoặc điều chỉnh chương trình dễ dàng hơn. Hắng phải được khai báo trước khi sử dụng. Hắng gồm hai thành phần: tên hằng và giá trị gán cho hằng. Có các loại hằng sau: Hằng số: hằng nguyên, hằng thực- Vd: 2, -8, 30, 2.5, -2.0, 1E-3,… Hằng bool: có hai gí trị là True v1 False Hằng kí tự: có hai dạng biểu diễn sau: Đặt kí tự trong dấu nháy đơn Dùng mã ASCII Hằng chuỗi kí tự: Pascal , đặt chỗi kí tự trong dấu nháy đơn C, đặt chuỗi kí tự trong dấu nháy kép 4. Lệnh gán (Assignment)-phương tiện làm thay đổi giá trị của biến Lệnh gán dùng để thay đổi gí trị hiện thời của biến. Lện gán không phải là phép so sánh giữa hai biểu thức, mà là thao tác tính kết quả biểu thức phía bên phải lệnh gán, sau đó đặt kết quả này vào phía bên trái lệnh gán. Lệnh gán làm thay đổi giá trị hiện thời biến và không thể nào lấy lại được giá trị này. Biểu diễn bằng lưu đồ: A B Ý nghĩa: đưa giá trị biểu thức bên phải (B) gán vào cho biến ở vế trái (A) Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Trường Đại Học Sư Phạm TP.HCM Nhóm: 25 Khoa: Công Nghệ Thông Tin Hoàng Văn Triều MSSV: 36103081 Lớp: SP Tin 1 Nguyễn Thành Nam MSSV:36103041 Trang 4 Cú pháp: Pascal <indentifier> := <expression>; C <indentifier> = <expression>; 5. Câu lệnh xuất / nhập PASCAL: Readln(arg1,arg2,…,argn); Read(arg1,arg2,…,argn); Lệnh Readln sau khi gán xong cho tất cả các biến trong danh sách, con trỏ sẽ chyển sang đấu dòng kế tiếp. Còn lệnh Read thì không chuyển. Lệnh Read không tham số dùng để chờ người dùng nhấn phím enter. Writeln(arg1,arg2,…,argn); Write(arg1,arg2,…,argn); Sau khi thực hiện lệnh Writeln,con trỏ sẽ được chuyển sang đầu dòng kế tiếp. Lệnh Write thì không chuyển. Lệnh Writeln không tham số dùng để chuyển con trỏ sang dòng kế tiếp. C: scanf(control string,arg1,arg2,…,argn); printf(control string, arg1,arg2,…,argn); 6. Chương trình ở gốc độ người lập trình và gốc độ người sử dụng Gốc độ người lập trình thì hiểu biến là vùng bộ nhớ có cấu trúc được mô tả bởi một kiểu dữ liệu. kiểu dữ liệu là cấu trúc dữ liệu được định nghĩa. Gốc độ người sử dụng thì chỉ hiểu được cách biểu diễn thông tin trong thế giới thực và kiểu dữ liệu là cách biểu diễn loại thông tin trong thế gới thực. II. Thủ tục / hàm dựng sẵn trong NNLT có mục đích gì? Thủ tục và hàm trong NNLT có mục đích giúp cho người lập trình dễ dàng hơn khi thực hiện viết một chương trình nào đó. Nhờ có thủ tục và hàm dựng sẵn nên các chương trình có một tính thống nhất chung về cú pháp nên dễ dàng trao đôi thông tin qua lại. III. Bài tập thực hành handout02 phần nâng cao 1. Bài 1: Nhập vào hai số nguyên a và b có đủ 3 chữ số. Trình bày phép nhân a x b ra màn hình. Bước 1: Xác định bài toán: Input: Hai số nguyên a và b có 3 chữ số. Output: Trình bày phép nhân a x b ra màn hình. Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Trường Đại Học Sư Phạm TP.HCM Nhóm: 25 Khoa: Công Nghệ Thông Tin Hoàng Văn Triều MSSV: 36103081 Lớp: SP Tin 1 Nguyễn Thành Nam MSSV:36103041 Trang 5 Bước 2: Phân tích: Thành phần dữ liệu: a,b: số nguyên; Thành phần sử lý: b chia 100, lấy phần dư. Lấy phần dư chia cho 10; Bước 3: Thiết kế: Đơn vị dữ liệu: a,b:int; Đơn vị xử lý: B1: nhập hai số a và b; B2: Phân tích số b thành 3 số riêng biệt: c←b/100; t←b%100; d←t/10; e←t%10; B3: thực hiện phép nhân: g←e*a; h←d*a; j←c*a; k←a*b; B4: xuất ra phép axb,kết thúc. Thuật toán: Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Trường Đại Học Sư Phạm TP.HCM Nhóm: 25 Khoa: Công Nghệ Thông Tin Hoàng Văn Triều MSSV: 36103081 Lớp: SP Tin 1 Nguyễn Thành Nam MSSV:36103041 Trang 6 Bước 4: Cài đặt: Viết chương trình bằng ngôn ngữ C. #include “stdio.h” #include “conio.h” #include “math.h” void main() { long a,b,c,t,d,e,g,h,j,k; printf(“nhap vao hai so a va b co du 3 chu so: “); scanf(“%ld%ld”,&a,&b); c←b/100; t←b%100; d←t/10; e←t%10; g←e*a; h←d*a; j←c*a; k←a*b; printf(“thuc hien phep nhan a va b”); printf(“%8ld\n”,a); printf(“*\n”); printf(“%8ld\n”,b); printf(“ _ _ _ _ _ _\n”): printf(“%8ld\n”,g); printf(“%7ld\n”,h); printf(“%6ld\n”,j); printf(“_ _ _ _ _ _ _ _\n”); printf(“%8ld”,k); getch(); } Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Trường Đại Học Sư Phạm TP.HCM Nhóm: 25 Khoa: Công Nghệ Thông Tin Hoàng Văn Triều MSSV: 36103081 Lớp: SP Tin 1 Nguyễn Thành Nam MSSV:36103041 Trang 7 2. Bài 2: Nhập vào số nguyên x và xuất ra màn hình kết quả 1 + 1 + 1 + Bước 1: Xác định bài toán: Input: số nguyên x Output: Kết quả biểu thức trên Bước 2: Phân tích: Thành phần dữ liệu: x:số nguyên; ketqua:số thực; Thành phần xử lý: viết biểu thức Bước 3: thiết kế Đơn vị dữ liệu: x:int; ketqua: float; Thuật toán: B1: nhập số nguyên x B2: ketqua←x*x/(1+(x*x/(1+(x*x/(1+x*x))))) B3: xuất ketqua và kết thúc. Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Trường Đại Học Sư Phạm TP.HCM Nhóm: 25 Khoa: Công Nghệ Thông Tin Hoàng Văn Triều MSSV: 36103081 Lớp: SP Tin 1 Nguyễn Thành Nam MSSV:36103041 Trang 8 Bước 4: Cài đặt: chương trình được việt bằng ngôn ngữ C #include “stdio.h” #include “conio.h” #include “math.h” void main() { float x,ketqua; printf(“nhap vao so nguyen x: “); scanf(“%d”,&x); ketqua=pow(x)/(1+(pow(x)/(1+(pow(x)/(1+pow(x)))))); printf(“ket qua bieu thuc la: %.4f”,ketqua); getch(); } Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Trường Đại Học Sư Phạm TP.HCM Nhóm: 25 Khoa: Công Nghệ Thông Tin Hoàng Văn Triều MSSV: 36103081 Lớp: SP Tin 1 Nguyễn Thành Nam MSSV:36103041 Trang 9 3. Bài 3: Nhập vào hai số nguyên x và y. Xuất ra màn hình kết qua sau: 1 + + 3 + ( + ) Bước 1: Xác định bài toán: Input: Hai số nguyên a và b Output: Xuất ra kết quả biểu thức trên Bước 2: Phân tích Thành phần dữ liệu: x,y:int; ketqua:double; Thành phẩn xử lý: viết biểu thức Bước 3: Thiết kế: Đơn vị dữ liệu: x,y, ketqua:double; Thuật toán: B1: nhập vào hai số nguyên x và y; B2: ketqua←sqrt((1+x*x+y*y))/(3+(x+y)*(x+y)); B3: xuất ra ketqua; kết thúc; Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Trường Đại Học Sư Phạm TP.HCM Nhóm: 25 Khoa: Công Nghệ Thông Tin Hoàng Văn Triều MSSV: 36103081 Lớp: SP Tin 1 Nguyễn Thành Nam MSSV:36103041 Trang 10 Bước 4: Cài đặt: Chương trình được viết bằng ngôn ngữ C; #include “stdio.h” #include “conio.h” #include “math.h” void main() { double x,y,ketqua; printf(“nhap vao hai so nguyen x va y: “); scanf(“%%lf%lf”,&x,&y); ketqua=sqrt(1+pow(x,2)+pow(y,2))/(3+pow((x+y),2)); printf(“ket qua cua bieu thuc la: %lf “,ketqua); getch(); } Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) . qua lại. III. Bài tập thực hành handout02 phần nâng cao 1. Bài 1: Nhập vào hai số nguyên a và b có đủ 3 chữ số. Trình bày phép nhân a x b ra màn hình. Bước 1: Xác định bài toán: Input:. Thành Nam MSSV:36103041 Trang 1 BÀI BÁO CÁO WEEK 03 I. Sự chuyển đổi từ dữ liệu của bài toán thành dữ liệu của chương trình? Dữ liệu của bài toán sẽ được biểu diễn lại dưới dạng. biểu diễn dữ liệu của máy tính hạn chế hơn rất nhiều nên khi giải bài toán trên máy tính người ta thường biến đổi lại dữ liệu của bài toán để phù hợp với cách biểu diễn trong máy tính. 1. Biến