• No results found

BT KTLT

N/A
N/A
Protected

Academic year: 2021

Share "BT KTLT"

Copied!
9
0
0

Loading.... (view fulltext now)

Full text

(1)

   

Autor : Vũ Đức Vượng    

Course Title: Programming Technique

Semester : 04

Product Code: IT3540

(2)

Semester: 4

Course Title: Programming Technique

Week: 5+6

st

Theme: 

Basics of C,C++

No.  Lý thuyết

Thực hành

1

Thứ tự thực

hiện các phép

toán trong C

1.1 Viết chương trình nhập các tham số tương ứng và tính giá trị các biểu thức sau : int a,b,c,d;

a=b=c++=d=10; in ra a,b,c,d a=b=++c=d=10; in ra a,b,c,d

Giữ nguyên đoạn code trên, sửa dòng khai báo thành int a,c,d,b; chạy chương trình và xem kết quả và đưa ra nhận xét

1.2 Viết chương trình nhập các tham số tương ứng và tính giá trị các biểu thức sau : Int a,b Nhập a b= a++ + 2 * a; in ra a,b b= ++a + 2 * a; in ra a,b b= (2*a)+ ++a; in ra a,b b= (2*a)+ a++; in ra a,b b= ++a + (2*a); in ra a,b b= a++ + (2*a); a=10;

printf(" \n a++,a = %d, %d",a++,a); a=10;

printf(" \n ++a,a = %d, %d",++a,a); a=10;

(3)

printf(" \n a,a++ = %d, %d",a,a++); a=10;

printf(" \n a,++a = %d, %d",a,++a);

Chạy chương trình trên TURBO C++, VC++ và GCC, xem kết quả và đưa ra nhận xét về thứ tự thực hiện các phép toán, cùng cơ chế truyền tham số cho hàm của C

2

Array 2.1 Viết CT nhập vào 1 xâu ký tự va in ra số lần xuất hiện của mỗi ký tự trong xâu. Nhập vào 2 ký tự rồi in ra xâu với ký tự thứ nhất ( nếu có) trong xâu được thay thế bằng ký tự thứ 2.Trình bày giải pháp 2.2 Viết chương trình tính tổng 2 ma trận

2.3 Viết chương trình tính tích 2 ma trận

3

Pointer 3.1 Chép chương trình sau, chạy, xem kết quả rồi tìm và chỉnh sửa lỗi :

#include <stdio.h> #include <conio.h> void main(){ int a,b,c; int *p=&c; c = 3; /* divide c by itself */ a = c/*p; b = c /* set b to 3 */ ; printf("a=%d, b=%d, c=%d\n", a,b,c); getch(); }

4

Functions XD hàm tính căn bậc ba của 1 số thực, rồi nhập dãy các số thực x1, x2, ..., xn và tính tổng :

(4)

5

Pointer   và  cấp phát bộ nhớ động

4.1 Viết lại chương trình 2.2,2.3 dùng cấp phát bộ nhớ động ( sử dụng mảng 1 chiều, và 2 chiều)

4.2 Viet CT nhap vao danh sach ho va ten sv cua 1 lop, roi in ra ds theo thu tu kieu vietnam, voi yeu cau tiet kiem bo nho toi da

Semester: 4

Course Title: Programming Technique

Week: 7+8+ 9+10

nd

Theme: Advanced C,C++

No.  Lý thuyết

Thực hành

6

Overloading Operator

6.1 Xây dựng cấu trúc phân số , hàm tiện ích xác lập phân số ( setpPS(int,int), hàm tối giản phân số, và đa năng hóa các toán tử +,-,*,/,

++,--6.2 áp dụng cấu trúc phân số cung các hàm va toán tử trên, viết chương trình nhập các phân số p1,p2,p3 và số nguyên a,b rồi tính và in ra giá trị các biểu thức sau :

b= a++ + 2 * a; b= ++a + 2 * a; b= (2*a)+ ++a; b= (2*a)+ a++; b= ++a + (2*a); p2= p1++ + (2*p1);

(5)

p2= p1++ + 2 * p1; p2= ++p1 + 2 * p1; p2= (2*p1)+ ++p1; p2= (2*p1)+ p1++; p2= ++p1 + (2*p1); p2= p1++ + (2*p1);

Chạy chương trình trên TURBO C++, xem kết quả và đưa ra nhận xét cách thực hiện phép toán ++, -- của trình dịch, và so sánh với cách thức thức hiện của toán tử ++,-- do ta định nghĩa ! ( De de dang so sanh ket qua, hay nhap a=1 va p1=(1/1) . Sv can lien he voi bang thu tu thuc hien cac phep toan, va dua ra nhan xet ve cach thuc cai dat bieu thuc cua trinh dich tuong ung !!!)

(Liên hệ với bài 1.2 !!!)

6.3 Xay dungcau truc Time va da nang hoa cac toan tu can thiet

7

Array + overloading operator 7.1 xây dựng cấu trúc matrix với các trường kiểu nguyên R và C để xác định số hàng và số cột của ma trận, trường float ** data để cấp phát bộ nhớ động dùng mảng hai chiều. Và dịnh nghĩa các phép toán +, * để cộng và nhân 2 ma trận

** sau khi cài đặt xong các phép toán, hãy khai báo các matran a,b,c,d tương ứng và thực hiện biểu thức a=b+c; in ra a, d=b*c; in ra d;

Sau do cho a=b+c; và d=b*c; 2000 lần ( lặp); rồi in kết quả a,d và so sánh với các kết quả ở trên !! ( về nguyên tắc thì a và d phải không đổi, vì b,c không đổi thì chạy bao nhiêu lần, kết quả vẫn không thay đổi, nhưng thực tế ???, hãy tìm hiểu nguyên nhân tại sao !!! )

8

Array and Pointer 8.1 Chép chương trình sau, chạy, xem kết quả và giải thích những điểm bất thường trong chương trình : #include <stdio.h> #include <conio.h> #include <string.h> void main(){ int i,m[5]; char x1[10],x2[10];

(6)

char *s1,*s2;

for (i=1; i<7;i++) i[m] =i*2;

for (i=1;i<7;i++) printf(“\n m[%d] = %d”,i,m[i]); s1= new char[10];

s2= new char[10]; strcpy(s2,” xau 2”);

strcpy(s1,”Dai hoc bach khoa ha noi”); printf(“\n s1= %s”,s1);

printf(“\n s2= %s”,s2); strcpy(x2,” xau x2”);

strcpy(x1,”Dai hoc bach khoa ha noi”); printf(“\n x1= %s”,x1);

printf(“\n x2= %s”,x2); getch();

}

( Luu y ve pham vi cua mang, cach su dung i[m]=…, giai thich tai sao ket qua doi voi mang m van dung va chi ra duoc nguy co tiem an. So sanh s1,s2 voi x1,x2, giai thich co che thuc hien !)

9

Recursive – De qui 9.1 Viết hàm đệ qui

tính tổng các chữ số chẵn( lẻ) của số nguyê n dương n

9.2 Viết Hàm đệ qui đổi 1 số nguyên dạng thập phân sang 1 cơ số bất kỳ (2,8,16)

9.3Tính S(n) = s qrt(1 + s qrt(2 + sqrt (3 + ...s qrt (n-1 + sqrt (n)))))

9.4 Tính S(n) = 1/2 + 3/4 + 5/6 + 7/8 +9/10 + ...

9.5* Cho hai dãy số X và Y với :

X ={ 1, 4, 12,56, 880, .... }

Y ={ 1, 2, 16,384,

43008, ….}

Hãy viết cac ham đệ qui tính X,Y roi tinh tổng :

S(n) = X(1)+X(2) + ……X(n) +Y(1)+Y(2)+ ….. + Y(n)

9.6 * Cho hai dãy số X và Y với :

X ={ 1,2, 3,6, 11,20,37, .... }

Y ={ 1,2, -1,0,9,57

,183, ….}

Hãy viết cac ham đệ qui tính X,Y roi tinh tổng :

S(n) = X(1)+X(2) + ……X(n) +Y(1)+Y(2)+ ….. + Y(n)

(7)

nhung sai sot, khi thuc hien cac bai tap nay, sv can chi ra nhung diem sai sot trong cacgiai thuat do !

11

Programming Style 11.1 Ap dung cac ky thuat phan tich, thiet ke va cai dat cung phong cach lap trinh trong vi 

du “Text formatting”. Tien hanh phan tich thiet ke va cai dat bai toan sau : Cho mot xau ky tu gom day cac so co 3 chu so co dang nhu sau :  “101,102,103,104,201,202,205,206,207,208,209,210,212,215,301,302,303,304,305,401,403….”  ( do dai tuy y) Hay to chuc lai de in ra ket qua tren nhieu dong, moi dong khong qua 30 ky tu. Noi dung  moi dong co dang nhu sau :      101­104,201,202,205­210,212,215      301­305,401,403 …. (tuc la neu day cac so lien tuc gom nhieu hon 3 so thi dua ve dang somin­somax) Tu nay ve sau : cac bai tap (ke ca bai thi­kiem tra) phai tien hanh theo trinh tu : +Dua ra bai toan +Phan tich cac yeu cau +Thiet ke so bo (pseudocode) +Cai dat ( dua ra Ct nguon cuoi cung, cac buoc phan tich,trien khai chi tiet step by  step co the bo qua) – Dong thoi phai ap dung moi ky thuat, phong cach nhu da hoc  trong chuong III

• 11.2 Mở rộng BT trên : Bài toán tính tiền phòng ks  :Để tính tiền phòng cho 1 đoàn khách tại khách sạn, từ thực tế sử dụng phòng của khách người ta đã trích rút từ CSDL

(8)

ra các thông tin cần thiết và lưu vào mảng với các thông tin như sau :

Từ kết quả dạng như trên, ngươi ta phải đưa ra kết quả dưới dạng sau :

Thời gian Diễn giải Thành tiền

01/01/2007 – 05/01/2007 105-107,109,(1K),101,102,(2K) : 45 usd x 4 D x 6 R 205-208,(2K) : 55 usd x 4 D x 4 R 900 880 07/01/2007 – 09/01/2207 104,(1K) : 45 usd x 2 D x 1 R 304 (2K) : 55 usd x 2 D x 1 R 11090 07/01/2007 – 10/01/2007 105-107,(1K) 45 usd x 3 D x 3 R 405

Thời gian Số người Số phòng Giá tiền Số ngày

01/01/2007 – 05/01/2007 1 105 45 4 01/01/2007 – 05/01/2007 1 106 45 4 01/01/2007 – 05/01/2007 1 107 45 4 01/01/2007 – 05/01/2007 1 109 45 4 01/01/2007 – 05/01/2007 2 101 45 4 01/01/2007 – 05/01/2007 2 302 45 4 01/01/2007 – 05/01/2007 2 205 55 4 01/01/2007 – 05/01/2007 2 206 55 4 01/01/2007 – 05/01/2007 2 207 55 4 01/01/2007 – 05/01/2007 2 208 55 4 07/01/2007 – 09/01/2007 1 104 45 2 07/01/2007 – 09/01/2007 2 304 55 2 07/01/2007 – 10/01/2007 1 105 45 3 07/01/2007 – 10/01/2007 1 106 45 3 07/01/2007 – 10/01/2007 1 107 45 3 07/01/2007 – 10/01/2007 2 305 55 3 07/01/2007 – 10/01/2007 2 306 55 3 07/01/2007 – 10/01/2007 2 307 55 3 07/01/2007 – 10/01/2007 2 308 55 3 07/01/2007 – 10/01/2007 2 401 55 3 09/01/2007 – 10/01/2007 1 201 45 1 09/01/2007 – 10/01/2007 2 406 55 1

(9)

305-308,401,(2K) 55 usd x 3 D x 5 R 825 09/01/2007 – 10/01/2007 201,(1K) : 45 usd x 1 D x 1 R

406,(2K) : 55 usd x 1 D x 1 R 4555

Tong cong 3310

(Ghi chú : K = số lượng Khách mỗi phòng, D = số ngày, R = Số Phòng)

Hãy viết chương trình thực hiện việc trên ( mảng 1 được khởi tạo khi khai báo, viết ct để tạo mảng 2 )

References

Related documents

Stvaranje inkluzijskih kompleksa utječe na brzinu oslobađanja lijekova iz mikročestica, a uslijed toga rastu koncentracije lorazepama i risperidona raspoložive za difuziju..

This paper will help you understand these conundrums and how the TokenEx Cloud Security Platform, alongside EMV, can assist you in protecting your payment data while lowering costs

Here we have shown that the presence of temporal correlations between the layers of a social multiplex networks can affect both the patterns of social contacts and the behavior

In P2P networks, the exchange of data is done with a direct link from one computer to the other. The intermediate computers used to setup a connection between these two computers

This dissertation research focuses on public elementary school teachers and addresses two specific aspects of instruction: (a) the attitude of general education teachers toward

The book provides an introduction to the principles, operation and maintenance of aircraft communications and navigation systems.. The aim has been to make the

3 Predatory trading predicts large depth imbalances in the same direction as the order submission; when large depth imbalances build up on the bid side, predatory traders

Designed for high density environments, AP460i/e is powerful enough and smart enough to provide the highest level of client services without compromising security monitoring..