báo cáo thực hành kỹ thuật lập trình
BÁO CÁO THỰC HÀNH KĨ THUẬT LẬP TRÌNH Sinh viên: Nguyễn Thị Dung MSSV: 201092228 Lớp: CN-CNTT3 Phần 1: Thứ tự thực phép toán C,C++ 1.1 Viết chương trình nhập tham số tương ứng tính giá trị biểu thức: Đoạn code #include #include void main() { int a,b,c,d; a=b=c++=d=10; printf("\na=%d\nb=%d\nc=%d\nd=%d",a,b,c,d); getch(); } Kết Chương trình báo lỗi dịng a=b=c++=d=10 #include #include void main() { int a,b,c,d; a=b=++c=d=10; printf("\na=%d\nb=%d\nc=%d\nd=%d",a,b,c,d); getch(); } #include #include void main() { int a,c,d,b; a=b=c++=d=10; printf("\na=%d\nb=%d\nc=%d\nd=%d",a,b,c,d); a=b=++c=d=10; printf("\na=%d\nb=%d\nc=%d\nd=%d",a,b,c,d); getch(); } a=10 b=10 c=10 d=10 Kết luận: Báo lỗi dịng lệnh có c++ Sau gán d=10, trả 10; c++trả tham trị nên gán giá trị 10 Còn ++c trả tham chiếu nên gán giá trị mà khơng bị lỗi 1.2 Viết chương trình nhập tham số tương ứng tính giá trị biểu thức Đoạn code #include #include void main() { int a,b; printf("\n a=");scanf("%d",&a); b= a++ + * a; printf("\na=%d,b=%d",a,b); b= ++a + * a; printf("\na=%d,b=%d",a,b); b= (2*a)+ ++a; printf("\na=%d,b=%d",a,b); b= (2*a)+ a++; printf("\na=%d,b=%d",a,b); b= ++a + (2*a); printf("\na=%d,b=%d",a,b); b= a++ + (2*a); printf("\n\n a=10\n"); a=10; printf(" \n a++,a = %d, %d",a++,a); a=10; printf(" \n ++a,a = %d, %d",++a,a); a=10; printf(" \n a,a++ = %d, %d",a,a++); a=10; printf(" \n a,++a = %d, %d",a,++a); getch(); } Kết Nhập a=5 a=6,b=15 a=7,b=21 a=8,b=22 a=9,b=24 a=10,b=30 a++,a=10,10 ++a,a=11,10 a,a++=11,10 a,++a=11,11 Kết luận: Trong C++ phép tốn ++ có mức độ ưu tiên cao phép tốn khác theo quy tắc khơng phải Truyền hàm C++ theo thứ tự từ phải sang trái Phần 2: Mảng C/C++ 2.1 Viết CT nhập vào xâu ký tự in số lần xuất ký tự xâu Nhập vào ký tự in xâu với ký tự thứ ( có) xâu thay ký tự thứ Viết chương trình nhập vào xâu in số lần xuất ký tự Input: nhập xâu Output: số lần xuất kí tự xâu nhập Giải pháp: so sánh kí tự với kí tự cịn lại chuỗi, dùng mảng mà phần tử tăng kí tự lặp lại Giả ngữ: char s[]; int t[]; for(i=0;i