Chương 3: Các toán tử
điều khiển và hàm
nhập xuất
Biên soạn: Trương Vĩnh Trường Duy (
[email protected])
Từ tài liệu trên Internet và các nguồn khác
CƠ SỞ KỸ THUẬT LẬP TRÌNH
Nội dung
Câu lệnh và khối lệnh
Toán tử if
Toán tử switch
Toán tử while và do…while
Toán tử for
Các hàm nhập xuất trong stdio.h và
conio.h
Câu lệnh – khối lệnh
Mỗi câu lệnh thực hiện một chức năng
nào đó được kết thúc bằng dấu ;
Dãy các câu lệnh được đặt trong cặp dấu
{ và } được gọi là một khối lệnh và
được xem như một câu lệnh riêng lẻ
Những câu lệnh của một hàm, những câu
expression
statement(s)
Next statement
True False
Toán tử if
if (<dieu kien>)
{
/* cac lenh thuc hien neu dieu kien dung */
}
else
{
/* cac lenh thuc hien neu dieu kien sai */
}
…
expression
statement1
Next statement
True False
statement2
Toán tử if
#include <stdio.h>
int main() {
int b;
printf("Enter a value:");
scanf("%d", &b);
if (b < 0)
printf("The value \
is negative\n");
return 0;
}
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void)
{
int n;
int n_even = n_odd = n_zero = 0;
randomize();
for(int i=0; i<1000; i++)
{
n = random(1000);
switch (n%10) {
case 2:
case 4:
case 6:
case 8:
n_even++; break;
Toán tử switch
case 1:
case 3:
case 5:
case 7:
n_odd++; break;
case 0:
n_zero++; break;
}
}
// print out the summary
printf(“ Number of even_eding number: %d\n”\
Number of odd_ending number: %d\n”\
statement(s)
Next statement
True
False
Toán tử while và do…while
do
{statement(s)}
while (expression) ;
Thực hiện lệnh (statement). Kiểm tra biểu thức
điều kiện (expression). Nếu (expression) bằng 0,
dừng. Nếu không, thực hiện (statement)
Lệnh do while thực hiện (statement) ít nhất một
lần
expression
statement(s)
Next statement
True
False
Toán tử while và do…while
Toán tử while và do…while
Khi gặp câu lệnh continue bên trong
thân của while hoặc do while, máy sẽ
chuyển đến xác định giá trị biểu thức
sau từ khóa while, và sau đó tiến hành
kiểm tra điều kiện kết thúc chu trình
Trường hợp gặp câu lệnh break, máy sẽ
clrscr(); // xoa man hinh
printf(“ Chuong trinh giai phuong trinh\
bac thap \n”);
Toán tử while và do…while
printf(“ 1. Giai phuong trinh bac 1: \
ax + b = 0 \n”);
printf(“ 2. Giai phuong trinh bac 2 : \
ax^2 + bx + c = 0
\n”);
printf(“ 3. Thoat chuong trinh \n\n”);
printf(“ Chon muc so (1/2/3) ? “);
scanf(“%d”, &i);
if(i == PTB1)
printf(“Giai phuong trinh bac 1: \
hien chua co\n”);
else if(i == PTB2)
printf(“Giai phuong trinh bac 2: \
chua cai dat\n\n”);
} while (i != STOP);
return 0;
}
Toán tử while và do…while
Toán tử for
for (biểu_thức_1;biểu_thức_2;biểu_thức_3)
khối_lệnh_1;
1. Tính giá trị biểu thức 1
2. Tính giá trị biểu thức 2
3. Nếu biểu thức 2 khác 0 thì cho thực hiện
các lệnh của vòng lặp, ngược lại cho thoát
float a;
int i;
a = 0;
for(i=0; i<=100; i+=10) {
printf("%6.2f degrees F = %6.2f degrees C\n",
a, (a - 32.0) * 5.0 / 9.0);
a = a + 10;
}
return 0;
}
Toán tử for
Toán tử goto
goto nhan;
Khi gặp toán tử này máy sẽ nhảy tới
thực hiện câu lệnh viết sau từ khóa
goto
Nhãn có cùng dạng như tên biến và có
dấu : đứng sau. Nhãn có thể được gán
cho bất kỳ câu lệnh nào trong chương
trình. Ví dụ: t:s+=a;
int s=1,a=3; goto t; ++a; t: s+=a
Không cho phép dùng toán tử goto nhảy
từ ngoài vào trong một khối lệnh, tuy
nhiên nhảy từ trong ra ngoài khối lệnh
là hoàn toàn hợp lệ
Hàm nhập xuất trong stdio.h
Các đặc tả được dùng trong hàm scanf
Hàm nhập xuất trong stdio.h
gets(Tên của mảng ký tự);
Hàm này cho phép nhận một chuỗi từ bàn phím
cho đến khi gặp ký tự \n (cho phép nhập khoảng
trắng giữa các từ)
VD: gets(a);
getchar(void)
Nhận một ký tự từ bàn phím và trả về ký tự
nhận được
VD: j=getchar();
Nếu trong chương trình có sử dụng các
lệnh scanf, getchar thì các lệnh sử dụng
sau sẽ bị trôi (không có tác dụng) do mã
phím \n còn lại trong stdin của lệnh
scanf hoặc getchar trước đó, do đó phải
khử ký tự \n còn trong stdin bằng lệnh
fflush(stdin) sau lệnh scanf