Tin học đại cương - Chương 4: Lập trình cho máy tính
Viết chương trình nhập vào số nguyên N. Hãy in
ra màn hình biểu diễn của nó ở dạng nhị phân
(Binary)
2. Viết chương trình tìm phần tử ñầu tiên trong dãy
a1, a2, ,an thỏa mãn: bằng tổng các phần tử
đứng trước nó.
3. Viết lại chương trình kiểm tra xem số N có
nguyên tố hay không bằng cách sử dụng
do while
4. Chuyển đoạn mã lệnh dạng do while thành
dạng while
39 trang |
Chia sẻ: nguyenlam99 | Lượt xem: 1288 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Tin học đại cương - Chương 4: Lập trình cho máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
bangtqh@utc2.edu.vn
TIN HỌC ðẠI CƯƠNG
Chương 4: Lập trình cho máy tính
Tin học đại cương - Chương 4 2bangtqh@utc2.edu.vn
Nội dung
q Khái niệm.
q Giới thiệu ngôn ngữ lập trình C.
q Các khái niệm cơ bản trong C.
q Các lệnh nhập/xuất dữ liệu.
q Cấu trúc điều khiển rẽ nhánh.
q Cấu trúc điều khiển lặp.
q Bài tập.
Tin học đại cương - Chương 4 3bangtqh@utc2.edu.vn
Khái niệm lập trình cho máy tính
Tin học đại cương - Chương 4 4bangtqh@utc2.edu.vn
Giới thiệu ngôn ngữ lập trình C
q Ngôn ngữ C ra ñời năm 1972
q Phát triển thành C++ vào năm 1983
q Là ngôn ngữ ñược sử dụng rất phổ biến
q Có nhiều trình biên dịch C khác nhau
– Turbo C, Borland C
– ANSI C, IBM C, ISO C
– GCC
– v.v.
q Chúng ta sẽ sử dụng:
Borland C 5.02 (bộ cài 85MB)
Tin học đại cương - Chương 4 5bangtqh@utc2.edu.vn
IDE Borland C++ 5.02
q Chạy file Setup.exe trong thư mục Bc502
q Một số phím soạn thảo
Xóa các kí tự từ vị trí con trỏ ñến cuối dòngCtrl + Q + Y
Xóa dòng kí tự chứa con trỏCtrl + Y
Xóa kí tự ngay trước vị trí con trỏBack space
Xóa kí tự ngay sau vị trí con trỏDelete
Chuyển đổi chế ñộ chèn/đèInsert
Xuống dòngEnter
Chức năngPhím
Tin học đại cương - Chương 4 6bangtqh@utc2.edu.vn
IDE Borland C++ 5.02
Một số phím soạn thảo (tiếp theo)
Lặp lại Ctrl + Q + F hoặc Ctrl + Q + A cuối cùngCtrl + Q + L
Tìm kiếm cụm từ và sau ñó thay thế bằng cụm từ khácCtrl + Q + A
Tìm kiếm một cụm từCtrl + Q + F
Dịch chuyển con trỏ về cuối khốiCtrl + Q + K
Dịch chuyển con trỏ về ñầu khốiCtrl + Q + B
Đọc một khối từ một tệp trên đĩaCtrl + K + R
Ghi một khối vào một tệp trên đĩaCtrl + K + W
Xóa cả khốiCtrl + K + Y
Chuyển khối tới vị trí mới của con trỏCtrl + K + V
Chép khối tới vị trí mới của con trỏCtrl + K + C
Chức năngPhím
Tin học đại cương - Chương 4 7bangtqh@utc2.edu.vn
Chương trình “Hello world”
chỉ thị tiền xử lý
Hàm chính của chương trình
Dấu bắt đầu và kết thúc của
định nghĩa hàm
Kết quả thu ñược khi biên dịch
và chạy chương trình trên
Tin học đại cương - Chương 4 8bangtqh@utc2.edu.vn
Từ khóa (Key word)
q Là các từ dành riêng của ngôn ngữ C
q Từ khóa phải được sử dụng đúng cú pháp
q Một số từ khóa thông dụng
auto break case char continue default
do double else extern float for
goto if int long register return
short sizeof static struct switch typedef
union unsigned void volatile while
Trong IDE
Borland C++ 5.02
từ khóa in đậm
và có màu blue
Tin học đại cương - Chương 4 9bangtqh@utc2.edu.vn
Tên (định danh)
q Dùng để ñịnh danh các thành phần của chương trình
q Tên biến, tên hàm, tên hằng, file, cấu trúc
q Gồm chữ, số, dấu gạch nối “_”
q Độ dài tối đa 32
q Lưu ý:
– không đuợc chứa kí tự trống (space),
– không được bắt đầu bằng một chữ số,
– không được trùng với từ khóa
q Nên đặt tên một cách gợi nhớ, có ý nghĩa.
q Tên chuẩn: một số tên có sẵn của trình biên dịch.
Vd: x, hoten, a1, number_of_var, delta, TEN,
q C là ngôn ngữ phân biệt viết hoa, viết thường chính xác đến từng ký tự
Tin học đại cương - Chương 4 10bangtqh@utc2.edu.vn
Hằng, Biến, Biểu thức
q Hằng:
– Là ñại lượng có giá trị không thay ñổi được
– Ví dụ:
• 124 Là một hằng số
• ‘D’ Là một hằng ký tự
• “Lap trinh” Là một hằng chuỗi ký tự
q Biến
– Là ñại lượng có thể thay ñổi được giá trị (gán giá trị mới)
q Biểu thức
– Là công thức tính toán để có 1 giá trị theo quy tắc toán học
– Gồm các toán hạng và các phép toán (toán tử)
• Toán hạng: hằng, biến, hàm hoặc biểu thức khác.
• Phép toán: Số học, luận lý, gán, ñiều kiện, lấy địa chỉ, tăng giảm
Tin học đại cương - Chương 4 11bangtqh@utc2.edu.vn
Các phép toán C hỗ trợ
q Số học: + , - , * , / , %
q Luận lý: ==, !=, >, =, <=, &&, ||, !
q Gán giá trị: =
q Lấy kích cỡ theo số byte: sizeof(đốitượng)
q Điều kiện: ĐK ? E1 : E2
q Lấy địa chỉ: &(biến)
q Tăng giảm: x++, ++x, x--, --x
tong+=i; tich*=i;
/=, %=, -=, &=, |=, ^=
Tin học đại cương - Chương 4 12bangtqh@utc2.edu.vn
Câu lệnh, Chú thích
q Câu lệnh: Là một chỉ thị yêu cầu máy tính thực thi một tác vụ nào đó.
Một câu lệnh phải kết thúc bởi một dấu chấm phẩy “;”
q Chú thích:
– Trên 1 dòng: // Chú thích trên một dòng
– Trên nhiều dòng: /*
Chú thích trên nhiều dòng.
*/
q Các chỉ thị tiền biên dịch:
#define #undefine #include
#if #elif #else #endif
#ifdef#else #endif
#ifndef #else #endif
#error
Tin học đại cương - Chương 4 13bangtqh@utc2.edu.vn
Các kiểu dữ liệu chuẩn
3.4e-4932 1.1e493210 bytelong double
1.7e-308 1.7e3088 bytedouble
3.4e-38 3.4e384 bytefloat
- 231 232 - 14 byteunsigned long
- 231 231 - 14 bytelong
0 655352 byteshort
0 655352 byteunsigned int
-32768 327672 byteint
0 2551 byteunsigned char
-128 1271 bytechar
Phạm viĐộ lớnTên kiểuKiểu số
Tin học đại cương - Chương 4 14bangtqh@utc2.edu.vn
Kiểu ký tự
Ví dụ:
– Ký tự ’A’ có mã 65
– Ký tự ’0’ có mã 48
Các ký tự ñặc biệt:
’\0’ ký tự Null (có mã = 0)
’\n’ ký tự xuống dòng (new line)
’\t’ ký tự Tab
Các kiểu dữ liệu chuẩn
Gồm 256 ký tự có mã từ 0 255 (
xem Bảng mã ASCII )
1 bytechar
Phạm viĐộ lớnTên kiểu
Tin học đại cương - Chương 4 15bangtqh@utc2.edu.vn
Ép kiểu
Cú pháp:
(kiểu_mới) biểu thức hoặc kiểu_mới (biểu thức)
Ví dụ:
Tin học đại cương - Chương 4 16bangtqh@utc2.edu.vn
Khai báo hằng
Cú pháp
#define TÊNHẰNG giátrị
hoặc
const kiểudữliệu TÊNHẰNG = giátrị;
Ví dụ
#define MAX 100
const int SOPT = 100;
Lưu ý: hằng phải được khai báo trước khi sử dụng
Tin học đại cương - Chương 4 17bangtqh@utc2.edu.vn
Khai báo biến
Cú pháp
kiểudữliệu TÊNBIẾN; hoặc
kiểudữliệu Biến1, Biến2,... ; hoặc
kiểudữliệu TÊNBIẾN = giátrịbanđầu;
Ví dụ
int sole;
float tbc, tongam;
char Enter = ’\n’;
Lưu ý: Biến có thể khai báo bất kỳ ñâu trong chương trình miễn
làn trước khi sử dụng.
Kết thúc bằng dấu chấm phẩy
Tin học đại cương - Chương 4 18bangtqh@utc2.edu.vn
Cấu trúc chương trình C
Chỉ thị tiền biên dịch
Khai báo các hằng, biến
Khai báo các hàm tự XD
Thân chương trình chính
Cài đặt các hàm đã khai
báo ở trên
Tin học đại cương - Chương 4 19bangtqh@utc2.edu.vn
Phép gán giá trị
Cú pháp
Ví dụ:
int x, y, z;
x = 10;
10 = x; //sai
x = 10 + y;
10 + y = x; //sai
z = x + y;
x + y = z; //sai
TênBiến = Biểu thức giá trị ;
Tại sao sai ?
Tin học đại cương - Chương 4 20bangtqh@utc2.edu.vn
Các hàm toán học thông dụng
Chỉ thị tiền biên dịch:
#include
sqrt(x) lấy căn bậc 2
exp(x) lấy ex
log(x) lấy logex
abs(x) lấy |x| (kết quả là số nguyên)
fabs(x) lấy |x| (kết quả là số thực)
pow(x, y) lấy xy
ceil(x) lấy số nguyên gần x nhất
floor(x) lấy số nguyên lớn nhất ≤ x
Các biểu thức phức tạp phải sử dụng biến đổi toán học ñể có ñược biểu diễn
tương ứng trong C
Tin học đại cương - Chương 4 21bangtqh@utc2.edu.vn
Một số quy tắc viết chương trình
q Đặt tên biến, hằng, hàm, một cách gợi nhớ
q Khi sử dụng biến, hằng cần kiểm tra lại xem biến hằng đó ñã ñược
khai báo trước đó hay chưa ?
q C là ngôn ngữ phân biệt hoa/thường phải kiểm tra kỹ từng ký tự
khi viết
q Loại bỏ các chỉ thị #include không cần thiết (để lại sẽ làm
chậm quá trình biên dịch và tăng kích thước file *.exe sau biên dịch)
q Viết chương trình theo cấu trúc khối (phân cấp thụt đầu dòng)
q Chương trình viết xong chưa thể biết được đúng hay sai phải
chạy thử với các bộ số liệu khác nhau (nên test thử với các bộ số
liệu đặc biệt)
Tin học đại cương - Chương 4 22bangtqh@utc2.edu.vn
Tin học đại cương - Chương 4 23bangtqh@utc2.edu.vn
Xuất dữ liệu, hàm: printf
q Thuộc thư viện “stdio.h”
q Cú pháp:
q Ví dụ:
printf(“Xâu điều khiển”,[danh sách tham số]);
Tin học đại cương - Chương 4 24bangtqh@utc2.edu.vn
Hàm printf
q Xâu ñiều khiển bao gồm 3 loại kí tự
– Các kí tự ñiều khiển
• \n sang dòng mới
• \f sang trang mới
• \b xóa kí tự bên trái
• \t dấu Tab
– Các kí tự ñể ñưa ra màn hình
– Các kí tự ñịnh dạng và khuôn in
• Công thức định dạng: %[-][w][.p]Kt
• w = wide(độ rộng); p = precise(độ chính xác); Kt = Ký
tự chuyển dạng (dạng hiển thị). Dấu trừ sẽ quy ñịnh
canh lề trái thay vì canh lề phải
• Ví dụ: %.2f %8d %s %-5c
Tin học đại cương - Chương 4 25bangtqh@utc2.edu.vn
Hàm printf
q Các ký tự chuyển dạng thường dùng
In ra ở dạng số thực (bỏ các số 0 vô nghĩa)g, G
In ra rở dạng khoa học e, E
In ra ở dạng số nguyên hệ 8o
In ra ở dạng số nguyên hệ 16 (hecxa)x
In ra ở dạng xâu ký tựs
In ra ở dạng số thực floatf
In ra ở dạng số nguyên unsigned longlu
In ra ở dạng số nguyên longld
In ra ở dạng số nguyên unsigned intu
In ra ở dạng số nguyên intd
In ra ở dạng ký tự charc
Ý nghĩaKý tự
Tin học đại cương - Chương 4 26bangtqh@utc2.edu.vn
Hàm printf
q Ví dụ
Tin học đại cương - Chương 4 27bangtqh@utc2.edu.vn
Hàm printf
q In các ký tự ñặc biệt
q Công thức định dạng
%[-][w][.p]Kt
– W: wide (độ rộng)
– P: precse (độ chính xác)
– Kt: Ký tự chuyển dạng
q Giá trị của w
– Nhỏ hơn hoặc bằng độ rộng thực tế in bình thường
– Lớn hơn độ rộng thực tế (chèn thêm khoảng trống cho đủ ñộ
rộng là w (nếu có dấu trừ chèn bên phải, ngược lại chèn bên
trái)
q Giá trị p: quy ñịnh làm tròn đến bao nhiêu chữ số ñằng sau
chấm thập phân.
In xuống dòng mới\n
In lùi 1 vị trí\b
In ký tự Tab\t
In ký tự backslash (\)\\
In ký tự dấu nháy kép (“)\”
In ký tự dấu nháy đơn (‘)\’
Ý nghĩaViết
Tin học đại cương - Chương 4 28bangtqh@utc2.edu.vn
Hàm puts
q Thư viện: “conio.h”
q Công dụng: in ra màn hình 1 xâu ký tự
q Ví dụ:
Tin học đại cương - Chương 4 29bangtqh@utc2.edu.vn
Hàm sprintf
q Thư viện: “stdio.h”
q Công dụng: giống printf, chỉ khác ở ñiểm kết quả không
xuất ra màn hình mà ñưa vào 1 biến xâu.
q Ví dụ:
Tin học đại cương - Chương 4 30bangtqh@utc2.edu.vn
Nhập dữ liệu, hàm: scanf
q Thuộc thư viện “stdio.h”
q Cú pháp:
– Xâu điều khiển: Cho phép định dạng dữ liệu nhập vào
– Danh sách tham số: Là ñịa chỉ các biến cần nhập liệu
q Sử dụng toán tử & ñể xác định địa chỉ các biến
q Ví dụ:
scanf(“%d%f%c”, &x, &y, &z);
scanf(“%s”, &hoten);
scanf(“Xâu điều khiển”,[DS tham số]);
Tin học đại cương - Chương 4 31bangtqh@utc2.edu.vn
q Không thông báo cho
người dùng biết giá trị cần
nhập là giá trị gì? phải
kết hợp với lệnh xuất dữ
liệu
q Không nhận được xâu có
dấu cách trống
q Không xóa ký tự thừa
trong bộ ñệm ảnh
hưởng tới lện nhập phía
sau.
Hàm scanf
Tin học đại cương - Chương 4 32bangtqh@utc2.edu.vn
Sử dụng fflush sau scanf
Công dng:
xóa những ký tự thừa
còn dư lại trong bộ
đệm của scanf
Tin học đại cương - Chương 4 33bangtqh@utc2.edu.vn
Kết hợp nhập và xuất dữ liệu
Kết quả
chương
trình ?
Tin học đại cương - Chương 4 34bangtqh@utc2.edu.vn
Hàm gets
q Thư viện: “conio.h”
q Công dụng: nhập vào 1 xâu ký tự
q Ví dụ:
Liệu có dùng
gets nhập 1 số
không?
Tin học đại cương - Chương 4 35bangtqh@utc2.edu.vn
Tin học đại cương - Chương 4 36bangtqh@utc2.edu.vn
Một số hàm nhập/xuất dữ liệu khác
chuyển tới vị trí (cột x, hàng y)gotoxy(x, y)
Giống printf nhưng có màu sắccprintf()
Kiểm tra xem có 1 phím bị nhấn không?int kbhit()
In ra màn hình 1 ký tựint putch()
giống getch() nhưng hiển thị ở màn hìnhint getche()
đợi nhập 1 ký tự từ bàn phím (không hiển thị ở màn hình)int getch()
Ý nghĩaHàm
Tin học đại cương - Chương 4 37bangtqh@utc2.edu.vn
Màu sắc khi xuất dữ liệu
q Đặt màu nền
textbackground(màu nền)
q Đặt màu chữ textcolor(màu
chữ)
Đỏ4RED
7
6
5
3
2
1
0
Giá trị
XámLIGHTGRAY
NâuBROWN
TímMAGENTA
Xanh ngọcCYAN
Xanh láGREEN
Xanh dươngBLUE
ĐenBLACK
ý nghĩaHằng màu
Tin học đại cương - Chương 4 38bangtqh@utc2.edu.vn
Bài tập - Nhập/xuất dữ liệu
1. Viết chương trình cho nhập các hệ số của phương trình bậc nhất 1 ẩn
ax+b=0 (với a≠0) hãy in ra màn hình nghiệm của phương trình đã
cho.
2. Viết chương trình hiển thị ra màn hình số tiền phải trả cho 1 cuộc gọi
điện thoại N giây. Biết rằng cước gọi tính theo mỗi block là xñ, và 1
block bằng 6 giây. Các giá trị x, N nhập từ bàn phím.
3. Viết chương trình nhập tọa độ của 3 ñiểm A, B, C trên mặt phẳng.
Tính và in ra màn hình chu vi, diện tích của tam giác ABC.
4. Viết chương trình nhập họ tên, hệ số lương của 1 nhân viên. Tính và
in ra màn hình lương còn lĩnh của nhân viên đó sau khi trừ ñi các
khoản: BHYT 1.5%, BH thất nghiệp 1% và ðảng phí 1%
5. Viết chương trình hiện ra màn hình thể tích của tứ diện ABCD biết
rằng A, B, C có tọa độ nhập từ bàn phím (XA, YA) (XB, YB) (XC, YC) và
chiều cao từ ñỉnh D xuống mặt phẳng ABC là h
Tin học đại cương - Chương 4 39bangtqh@utc2.edu.vn
Tin học đại cương - Chương 4 40bangtqh@utc2.edu.vn
q Cú pháp:
if ( điều kiện)
;
if ( điều kiện)
;
else
;
q Công dụng:
- Thực hiện 1 trong 2 lệnh tùy thuộc vào điều kiện đúng/sai.
- Nếu thực nhiện nhiều hơn 1 lệnh phải để trong cặp dấu { }
Rẽ nhánh if
Tin học đại cương - Chương 4 41bangtqh@utc2.edu.vn
Rẽ nhánh if - ví dụ1
q Tìm min của 2 số a, b nhập từ bàn phím
Tin học đại cương - Chương 4 42bangtqh@utc2.edu.vn
!NOT
||OR
&&AND
Ký hiệuToán tử
FALSETRUEFALSE
FALSE
FALSE
TRUE
B
FALSEFALSE
FALSETRUE
TRUETRUE
A && BA
TRUETRUEFALSE
FALSE
FALSE
TRUE
B
FALSEFALSE
TRUETRUE
TRUETRUE
A || BA
q Sử dụng các toán tử luận lý để xây dựng các điều kiện phức
tạp hơn
TRUEFALSE
FALSETRUE
! AA
Tin học đại cương - Chương 4 43bangtqh@utc2.edu.vn
Viết chương trình nhập vào tọa độ của 3 ñiểm A, B, C trên mặt phẳng. Kiểm tra
xem tam giác ABC có là tam giác đều không?
Tin học đại cương - Chương 4 44bangtqh@utc2.edu.vn
Tính cước cuộc gọi điện thoại N giây biết rằng đơn giá 1 block
là x ñồng, 1 block = 6 giây
Tin học đại cương - Chương 4 45bangtqh@utc2.edu.vn
Viết chương trình cho phép giải và biện luận phương trình bậc
2 ax2 + bx + c = 0
Tin học đại cương - Chương 4 46bangtqh@utc2.edu.vn
Rẽ nhánh if
q Lưu ý:
– Nếu sau if hoặc else tác động lên nhiều hơn 1 lệnh thì phải sử dụng
cặp dấu { }
– Nếu sau if có dấu ; thì ñiều kiện không còn tác động đến lệnh phía sau
kết quả ?
Tin học đại cương - Chương 4 47bangtqh@utc2.edu.vn
Rẽ nhánh if
q Lưu ý:
– Giá trị số cũng được coi là ñiều kiện (số = 0: điều kiện
sai; số ≠ 0: điều kiện đúng)
if(delta=0)
Tin học đại cương - Chương 4 48bangtqh@utc2.edu.vn
Sử dụng else if
q Khi muốn chọn 1 trong n quyết định thì sử dụng
else if như sau:
Tin học đại cương - Chương 4 49bangtqh@utc2.edu.vn
Viết chương trình xếp loại học lực theo điểm trung bình học
tập.
Tin học đại cương - Chương 4 50bangtqh@utc2.edu.vn
Sử dụng toán tử ? thay if
q Cú pháp:
(điều kiện) ? lệnh 1 : lệnh 2 ;
q Công dụng:
– Lệnh 1 ñược thực hiện nếu điều kiện đúng
– Lệnh 2 ñược thực hiên nếu điều kiện sai
q Ví dụ:
(a > b) ? max = a : max = b;
Tin học đại cương - Chương 4 51bangtqh@utc2.edu.vn
Rẽ nhánh switch case
q Rẽ nhánh if chỉ cho phép chọn một trong hai phương án
q Rẽ nhánh switch case cho phép chọn một trong nhiều phương án.
q Cú pháp:
switch (biểu thức nguyên) {
case n1:
Các câu lệnh;
case n2:
Các câu lệnh;
...
case nk:
Các câu lệnh;
[default: Các câu lệnh;]
}
Tin học đại cương - Chương 4 52bangtqh@utc2.edu.vn
Rẽ nhánh switch case
q Công dụng
– Nếu biểu thức nguyên có giá trị bằng nhãn ni thì máy sẽ nhảy
đến thực hiện các lệnh của nhãn đó, nếu không thì máy sẽ nhảy
đến thực hiện các lệnh trong thành phần tùy chọn default
– Máy sẽ ra khỏi toán tử switch khi nó gặp câu lệnh break, return
hoặc nó gặp dấu “}” của câu lệnh switch
– Chú ý, khi máy nhảy tới nhãn ni, nếu kết thúc dãy lệnh trong
nhãn này không có câu lệnh break hoặc return thì máy sẽ tiếp
tục thực hiện các lệnh trong nhãn ni+1
– Thường cuối mỗi dãy lệnh của một nhãn có một lệnh break
Tin học đại cương - Chương 4 53bangtqh@utc2.edu.vn
Rẽ nhánh switch case
Tin học đại cương - Chương 4 54bangtqh@utc2.edu.vn
Tin học đại cương - Chương 4 55bangtqh@utc2.edu.vn
Bài tập – cấu trúc rẽ nhánh
1. Viết chương trình tìm giao điểm của đường trong tâm O (x0, y0)
bán kính R với đường thẳng y = ax + b
2. Viết chương trình tính giá trị căn bậc N của số nguyên X (N và X
đều nhập từ bàn phím)
3. Viết chương trình cho phép giải hệ phương trình bậc nhất 2 ẩn x,
y
4. Viết chương trình nhập số nguyên x ≤ 9999 sau ñó in ra màn hình
cách đọc số nguyên x theo phiên âm tiếng việt (ví dụ: 2010 – hai
nghìn không trăm mười)
5. Viết chương trình cho phép nhập tọa độ 3 điểm A, B, C trên mặt
phẳng. Hãy cho biết tam giác ABC có là tam giác cân hay không?
Chu vi và diện tích của tam giác?
Tin học đại cương - Chương 4 56bangtqh@utc2.edu.vn
Khái niệm cấu trúc lặp
q Một công việc nào đó ñược thực hiện lặp đi lặp
lại nhiều lần
q Ví dụ
– In ra màn hình các số từ 1 đến 10, mỗi số trên
một dòng
• Giải pháp đơn giản
– printf(“1\n”);
– printf(“2\n”);
–
– printf(“10\n”);
• Giải pháp tổng quát
– Lặp i chạy từ 1 tới 10
printf(“%d\n”, i);
Tin học đại cương - Chương 4 57bangtqh@utc2.edu.vn
Lặp dạng for
– Cú pháp
for([B.Thức 1]; [B.thức 2]; [B.Thức 3])
;
• Các phần trong cặp dấu “[” và “]” là không bắt buộc
• Các dấu “;” và cặp ngoặc “(” và “)” bắt buộc phải có
– Ví dụ:
Tin học đại cương - Chương 4 58bangtqh@utc2.edu.vn
Lặp dạng for
Các bước hoạt động:
1.Tính B.Thức 1.
2.Tính B.Thức 2.
• Nếu sai thoát vòng lặp.
• Nếu đúng ñi vào thực hiện
việc cần lặp
3.Tính B.Thức 3, sau đó quay
trở lại bước 2 ñể bắt đầu các
bước lặp mới.
FALSE
TRUE
Tin học đại cương - Chương 4 59bangtqh@utc2.edu.vn
Lặp dạng for
q Biểu thức 1: Thường là 1 phép gán để khởi tạo giá trị ban ñầu cho biến điều
khiển
q Biểu thức 2: Thường là 1 biểu thức điều kiện
q Biểu thức 3: Cũng là 1 phép gán để thay ñổi giá trị biến điều khiển
Tin học đại cương - Chương 4 60bangtqh@utc2.edu.vn
Tin học đại cương - Chương 4 61bangtqh@utc2.edu.vn
NSTính 3...963 ++++=
Vòng lặp chạy
ngược từ N trở
về 1
Tin học đại cương - Chương 4 62bangtqh@utc2.edu.vn
Lặp dạng for
q Nhận xét
– Biểu thức 1 chỉ ñược tính một lần
– Biểu thức 2, biểu thức 3 và khối lệnh trong thân
lệnh for ñược lặp đi lặp lại nhiều lần
– Dựa các giá trị khởi tạo biến điều khiển, ñiều kiện
lặp và biểu thức 3 có thể tính được số lần lặp.
q Khi biểu thức 2 vắng mặt thì nó ñược xem là ñúng
(vòng lặp vô hạn).
– Để thoát khỏi lệnh for trong trường hợp này phải
dùng lệnh break hoặc return
q Có thể sử dụng các lệnh for lồng nhau.
Tin học đại cương - Chương 4 63bangtqh@utc2.edu.vn
Lặp dạng for
1. Tính TBC các số lẻ ≤ N
2. Tìm ước số chung lớn nhất (UCLN) của 2 số a, b
3. Kiểm tra xem số N có phải là số nguyên tố
không?
4. Số tiền nhiều nhất 1 người tham gia “Đấu trường
100” có thể ñạt được là bao nhiêu ?
5. Hiển thị tất cả các số nguyên tố ≤ N
6. In ra màn hình tam giác cân độ cao N gồm toàn
các dấu ‘*’ có dạng bên
Tin học đại cương - Chương 4 64bangtqh@utc2.edu.vn
Kiểu array – mảng
q Mảng là một kiểu dữ liệu có cấu trúc do người lập
trình định nghĩa
q Dùng biểu diễn các đối tượng dữ liệu ở dạng một
dãy các thành phần có cùng kiểu với nhau (kiểu cơ
sở)
q NNLT C luôn chỉ ñịnh một khối nhớ liên tục cho một
biến kiểu mảng
q Kích thước của mảng ñược xác định ngay khi khai
báo và không bao giờ thay ñổi
Tin học đại cương - Chương 4 65bangtqh@utc2.edu.vn
Khai báo array trong C
kiểucơsở TênBiến[Sốphầntử];
kiểu của mỗi thành phần hằng số, số thành phần
tối đa của mảng
Do lập trình viên đặt tên
int a[100];
//a là mảng biểu diễn dãy gồm 100 số nguyên int
Tin học đại cương - Chương 4 66bangtqh@utc2.edu.vn
Kiểu array – ví dụ
#defineSIZE 10
int a[5]; // a dãy gồm 5 số nguyên
long int big[100]; // big: chiếm 400 bytes!
double d[100]; // d: chiếm 800 bytes!
long double v[SIZE]; // v:10 long doubles
int a[5] = { 10, 20, 30, 40, 50};
double d[100] = { 1.5, 2.7};
short primes[] = { 1, 2, 3, 5, 7, 11, 13};
long b[50] = { 0 };
cách nhanh nhất để khởi tạo
tất cả các thành phần bằng 0
Trình biên dịch xác định kích
thước gồm 7 thành phần
int i = 7;
const int c = 5;
int a[i];
double d[c];
short primes[];
2 thành phần đầu tiên
được khởi tạo, phần
còn lại: 0
Tin học đại cương - Chương 4 67bangtqh@utc2.edu.vn
Kiểu array – Lưu ý
q Các thành phần của mảng được truy xuất thông qua chỉ số của
chúng 0..n-1
q Thao tác truy xuất không kiểm tra giới hạn của chỉ số
int main()
{
int a[6];
int i = 7;
a[0] = 59;
a[5] = -10;
a[i/2] = 2;
a[6] = 0;
a[-1] = 5;
return 0;
}
int main()
{
int a[6];
int i = 7;
a[0] = 59;
a[5] = -10;
a[i/2] = 2;
a[6] = 0;
a[-1] = 5;
return 0;
}
0
a
1
2
3
4
5
59
-10
2
Tin học đại cương - Chương 4 68bangtqh@utc2.edu.vn
Kiểu array – Thao tác cơ sở
Giới hạn chỉ
số mảng ?
Tin học đại cương - Chương 4 69bangtqh@utc2.edu.vn
Lặp dạng for – Bài tập
1. Tính TBC các số lẻ trong dãy số a1, a2,,aN
2. Tìm giá trị min/max trong dãy a1, a2,,aN
3. Đếm xem trong dãy a1, a2,,aN có bao nhiêu số
nguyên tố ?
4. Cho dãy điểm M1(x1, y1), M2(x2, y2),,Mn(xn,
yn) trên mặt phẳng. Hãy:
• Tìm độ dài đường gấp khúc M1M2..Mn
• Tìm đoạn MiMj (i≠j) có ñộ dài lớn nhất
• Đếm xem có bao nhiêu ñoạn cắt trục 0y
• Có bao nhiêu ñiểm thuộc góc phần tư thứ nhất.
Tin học đại cương - Chương 4 70bangtqh@utc2.edu.vn
Lặp dạng while
q Lệnh lặp while
– Cú pháp
while (biểu thức)
khối lệnh cần lặp;
– Ý nghĩa
• Trong khi biểu thức có giá trị ñúng (khác 0) thì còn phải
thực hiện khối lệnh. Việc lặp dừng lại khi biểu thức có
giá trị sai (bằng 0).
• Lặp while kiểm tra điều kiện trước khi thực hiện khối
lệnh.
– Hãy vẽ sơ ñồ khối biểu diễn lệnh while
Tin học đại cương - Chương 4 71bangtqh@utc2.edu.vn
Lặp dạng while – Ví d
Tin học đại cương - Chương 4 72bangtqh@utc2.edu.vn
Lặp dạng while – Lu ý
q Nhận xét
– Biểu thức điều kiện luôn dược đặt trong cặp dấu “(”
và “)”
– Biểu thức điều kiện sẽ ñược tính toán đầu tiên nên
phải có giá trị xác định
q Câu lệnh sau làm gì ?
while(0) printf(“nothing\n”);
q Hãy chuyển lệnh for dạng tổng quát thành lệnh
while
Tin học đại cương - Chương 4 73bangtqh@utc2.edu.vn
Lặp dạng dowhile
q Cú pháp
do
khối lệnh;
while (biểu thức);
q Ý nghĩa
– Thực hiện khối lệnh trong khi biểu thức có giá trị ñúng (khác 0)
– Thực hiện khối lệnh trước khi kiểm tra biểu thức điều kiện
– Khối lệnh được thực hiện ít nhất 1 lần
q Hãy vẽ sơ ñồ khối biểu diễn lệnh do while
Tin học đại cương - Chương 4 74bangtqh@utc2.edu.vn
Lặp dowhile - ví dụ
Tin học đại cương - Chương 4 75bangtqh@utc2.edu.vn
Lặp while và dowhile – Bài tập
1. Viết chương trình nhập vào số nguyên N. Hãy in
ra màn hình biểu diễn của nó ở dạng nhị phân
(Binary)
2. Viết chương trình tìm phần tử ñầu tiên trong dãy
a1, a2,,an thỏa mãn: bằng tổng các phần tử
đứng trước nó.
3. Viết lại chương trình kiểm tra xem số N có
nguyên tố hay không bằng cách sử dụng
dowhile
4. Chuyển đoạn mã lệnh dạng dowhile thành
dạng while
Tin học đại cương - Chương 4 76bangtqh@utc2.edu.vn
break và continue
q Lệnh break thường được sử dụng kết hợp lệnh lặp
– Dùng để thoát khỏi vòng lặp một cách bất thường
(không quan tâm tới điều kiện lặp)
– Nếu có nhiều lệnh lặp lồng nhau thì lệnh break chỉ
thoat vòng lặp trực tiếp chứa nó
q Lệnh continue
– Dùng để quay trở lại từ ñầu vòng lặp
– Thực hiện lần lặp mới mà không ñi hết các lệnh còn
lại trong thân vòng lặp
Tin học đại cương - Chương 4 77bangtqh@utc2.edu.vn
Các file đính kèm theo tài liệu này:
- tran_quang_hai_bangtindc_ch4_8183.pdf