Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 315 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
315
Dung lượng
6,97 MB
Nội dung
LẬP TRÌNH C CĂN BẢN Phạm Thế Bảo Email: ptbao@hcmus.edu.vn http://www.math.hcmuns.edu.vn/ptbao/c_program Mục tiêu • Giải toán với chương trình máy tính • Các khái niệm, kiến thức lập trình • Các nguyên lý, kỹ thuật lập trình • Dùng ngôn ngữ lập trình C để viết • Cú pháp, ngữ nghĩa ngôn ngữ C/C++ Nội dung Ch1- Thuật toán Ch2- Các khái niệm Ch3- Biến Ch4- Phép toán biểu thức Ch5- Cấu trúc điều khiển rẽ nhánh, lặp Ch6- Hàm mảng chiều Tài liệu tham khảo Quách Tuấn Ngọc (1998), Ngôn ngữ lập trình C, NXB Giáo Dục Hoàng Kiếm (2001), Giải toán máy tính ?, tập 1, NXB Giáo Dục Brian W.Kernigan & Dennis M.Ritchie (2000), The C Programming Language H.M Deitel and P.J Deitel (1998), C++ How to program, 2nd Edition, Prentice Hall Đánh giá Bài tập lớp, BT nhà, kiểm tra, …, 10% KT kì: kiểm tra thực hành máy, 20% Thi cuối kì: kiểm tra viết giấy, 70% Chương THUẬT TOÁN Nội dung Vấn đề, toán Thuật toán Giải toán máy tính Vấn đề, toán Vấn đề ) Những vướng mắc, khó khăn sống mà ta cần giải Bài toán ) Một loại vấn đề mà để giải quyết, cần đến tính toán (phép toán số, luận lí, quan hệ) Giải vấn đề, toán • Bất kỳ vấn đề, toán đời chia thành trình tự nhiều công việc nhỏ • Trình tự công việc nhỏ gọi giải thuật giải công việc đời • Mỗi công việc nhỏ chia nhỏ phức tạp, • Vấn đề mấu chốt việc dùng máy tính giải công việc đời lập trình Thuật toán Thuật toán ) Là cách biểu diễn lời giải "bài toán“ rõ ràng, chi tiết để thực thi máy tính ) Là dãy hữu hạn bước nhằm xác định thao tác mà máy tính thực cho sau khoảng thời gian hữu hạn cho kết  Bài toán giải phương trình bậc (1 Nn) Vd3: Tìm xem giá trị x có mảng ? Ví dụ: a= [3 9], x= → x nằm vị trí mảng a x= n=7 a= k=2 a= x= n=7 k=-1 (khong co x mang) Vd07 Vd07b Vd4: Xóa phần tử x khỏi mảng (nếu có) Ví dụ: a= [6 8],n=7 x= → a= [6 8], n= x= → a= [6 8], n= x= n=7 n=6 a= k=2 Xóa phần tử x khỏi mảng (nếu có) Vd08a Xóa tất phần tử x khỏi mảng (nếu có) Vd08b Bài tập nhập môn lập trình Phần 1: Các tập không dùng cấu trúc điều khiển Viết chương trình nhập số In cho biết giá trị số lớn Viết chương trình nhập số nguyên N, in cho biết góc có số đo N0 thuộc cung phần tư số đường tròn lượng giác Biết: góc có số đo [0 90): cung phần tư số 1, [90 180): cung phần tư số 2, [180 270): cung phần tư số 3, [270 360): cung phần tư số Viết chương trình nhập số nguyên a, b In cho biết chu vi, diện tích hình chữ nhật có độ dài cạnh a, b Viết chương trình nhập vào ký tự, in ký tự in hoa tương ứng Viết chương trình nhập vào số nguyên, in ký tự tương ứng ngược lại, nhập ký tự, in mã ASCII ký tự Phần 2: Cấu trúc điều khiển: rẽ nhánh, lặp, hàm Viết chương trình nhập vào số a, b Giải biện luận phương trình bậc ax + b = Viết chương trình nhập vào số a, b, c Giải biện luận phương trình trùng phương ax4 + bx2 + c = Viết chương trình nhập vào số a, b, c Xác định xem a, b, c có phải độ dài cạnh tam giác hay không Nếu phải tam giác loại: tam giác vuông, tam giác tù, tam giác nhọn Viết chương trình nhập số nguyên không âm N (N < 1000) In cách đọc N tiếp Việt không dấu Viết chương trình nhập số nguyên d, m In cho biết ngày d/m/2004 ngày thứ tuần Biết ngày 1/1/2004 ngày thứ Nếu liệu nhập vào không hợp lệ, thông báo Viết chương trình nhập vào số nguyên không âm d, m, y In cho biết ngày d/m/y ngày thứ tuần Các liệu nhập vào hợp lệ, xét năm hạn 3000 (Nhắc lại: năm nhuận năm chia hết cho 400 chia hết cho không chia hết cho 100) Viết chương trình nhập số nguyên dương H Dùng ký tự * vẽ quạt cánh có tâm hình Mỗi cánh quạt tam giác vuông cân đặc có độ rộng cạnh góc vuông H Ví dụ với H = ta có cánh quạt sau hình * * * * * * * * * * * * * * * * * * * * * * * * Viết chương trình nhập số nguyên không âm N Hãy tính in giá trị các biểu thức sau: 1 a + + + + N 1 b + + + + 2! 3! N! N −1 ( 1 − 1) c − + + + 2! 3! N! d N! N%2!= ⎧1x3x5x xN e N!! Nhắc lại: N !!= ⎨ N%2 == ⎩2 x x6 x xN Viết chương trình nhập số nguyên N (kiểu char) In cho biết biểu diễn nhị phân N 10 Viết chương trình nhập số nguyên không âm N In dãy Fibonaci với số hạn F0, F1, …, FN 11 Viết chương trình nhập số nguyên dương N In hình cách phân tích N thành thừa số nguyên tố 12 Viết chương trình nhập số a, b, c, d Giải phương trình bậc 3: ax3 + bx2 + cx + d = phương pháp lặp nhị phân Sai số cho phép 0.0000001 13 Viết chương trình nhập số nguyên dương N (N ≤ tỉ), kiểm tra xem N có phải số đối xứng hay không (Số đối xứng số có giá trị không đổi đọc chữ số từ phải qua trái) 14 Viết chương trình nhập số nguyên không âm K, N (K ≤ N) Tính in ra: N! C NK = K !( N − K )! 15 Viết chương trình nhập số nguyên dương N (N≤1000) In N số nguyên tố a c Tính in phân số tổng dạng phân số tối 16 Viết chương trình nhập phân số b d giản 17 Viết chương trình nhập số nguyên dương N, kiểm tra xem N có phải số hạnh phúc hay không (Số hạnh phúc số có 2K chữ số tổng K chữ số tổng K chữ số cuối cùng) Phần 3: Mảng chiều - Chuỗi ký tự 18 Viết chương trình nhập số nguyên dương N (N ≤ 100) thực hiện: a Nhập N số nguyên vào dãy a0, a1, a2, b Xuất dãy vừa nhập hình c Đếm xem dãy vừa nhập có số nguyên tố, in số nguyên tố hình d Nhập số nguyên X, tìm vị trí xuất X dãy vừa nhập e Nhập số nguyên Y, xóa số có giá trị Y khỏi dãy vừa nhập f Nhập số nguyên Z, tìm vị trí xuất số dãy có giá trị gần với Z 19 Viết chương trình nhập số nguyên dương N (N ≤ 100) thực hiện: a Nhập N số nguyên vào dãy a0, a1, a2, b Xuất dãy vừa nhập hình c Kiểm tra xem dãy vừa nhập có phải dãy tăng dần hay không d Nếu dãy không tăng dần, xếp lại, xuất dãy hình e Nhập số nguyên X, chèn X vào dãy có cho dãy xếp tăng dần, xuất dãy kết hình 20 Viết chương trình nhập số nguyên dương N (N ≤ 100) thực hiện: a Nhập N số nguyên vào dãy a0, a1, a2, b Tìm vị trí số bé dãy c Tìm vị trí số âm lớn dãy d Tìm tất vị trí dãy mà số bé số kề bên Các số biên cần xét với số kề bên e Tìm tất ba số i, j, k thỏa ai, aj, ak số pitago 21 Viết chương trình nhập chuỗi ký S: a Đếm cho biết số lượng khoảng trắng, số lượng ký số, số lượng chữ latin, số lượng ký tự khác b Đếm cho biết số lượng từ chuỗi – từ cách khoảng trắng c Biến đổi chuỗi cho ký tự đầu từ ký tự in hoa, ký tự khác in thường 22 Viết chương trình nhập chuỗi ký S, đếm in cho biết số lượng chữ latin chuỗi (không phân biệt chữ in hoa chữ in thường) 23 Viết chương trình nhập chuỗi ký tự S, S1, S2 Hãy tìm chuỗi S tất lần xuất S1 thay S2 Phần 4: Struct 24 Viết chương trình nhập thông tin sinh viên, xuất thông tin sinh viên vừa nhập hình Thông tin sinh viên gồm: Mã sinh viên (chuỗi ký tự), họ tên sinh viên (chuỗi 30 ký tự), giới tính (nam/nữ), địa liên hệ (chuỗi 50 ký tự), điểm môn học 25 Viết chương trình quản lý lớp học gồm tối đa 150 sinh viên, sinh viên có thông tin trước Chương trình phải đảm bảo số tính năng: a Nhập danh sách sinh viên b Tìm sinh viên danh sách theo mã sinh viên c Thêm sinh viên vào danh sách d Hủy sinh viên khỏi danh sách e Xuất danh sách sinh viên hình f Xuất danh sách sinh viên nợ điểm (điểm < 5) môn học