<< Chapter < Page Chapter >> Page >

Các giới hạn của đa năng hóa toán tử:

Chúng ta không thể định nghĩa các toán tử mới.

Hầu hết các toán tử của C++ đều có thể được đa năng hóa. Các toán tử sau không được đa năng hóa là :

Toán tử Ý nghĩa
:: Toán tử định phạm vi.
.* Truy cập đến con trỏ là trường của struct hay thành viên của class.
. Truy cập đến trường của struct hay thành viên của class.
?: Toán tử điều kiện
sizeof  

và chúng ta cũng không thể đa năng hóa bất kỳ ký hiệu tiền xử lý nào.

Chúng ta không thể thay đổi thứ tự ưu tiên của một toán tử hay không thể thay đổi số các toán hạng của nó.

Chúng ta không thể thay đổi ý nghĩa của các toán tử khi áp dụng cho các kiểu có sẵn.

Đa năng hóa các toán tử không thể có các tham số có giá trị mặc định.

Các toán tử có thể đa năng hoá:

+ - * / % ^
! = < > += -=
^= &= |= << >> <<=
<= >= && || ++ --
() [] new delete & |
~ *= /= %= >>= ==
!= , -> ->*    

Các toán tử được phân loại như sau :

Các toán tử một ngôi : *&~ ! ++ -- sizeof (data_type)

Các toán tử này được định nghĩa chỉ có một tham số và phải trả về một giá trị cùng kiểu với tham số của chúng. Đối với toán tử sizeof phải trả về một giá trị kiểu size_t (định nghĩa trong stddef.h)

Toán tử (data_type) được dùng để chuyển đổi kiểu, nó phải trả về một giá trị có kiểu là data_type.

Các toán tử hai ngôi: * / % + ->><<><

>=<= == !=&| ^&&||

Các toán tử này được định nghĩa có hai tham số.

Các phép gán: = += -= *= /= %=>>=<<= ^= |=

Các toán tử gán được định nghĩa chỉ có một tham số. Không có giới hạn về kiểu của tham số và kiểu trả về của phép gán.

Toán tử lấy thành viên : ->

Toán tử lấy phần tử theo chỉ số: []

Toán tử gọi hàm: ()

Bài tập

Bài 1: Hãy viết lại chương trình sau bằng cách sử dụng lại các dòng nhập/xuất trong C++.

/* Chương trình tìm mẫu chung nhỏ nhất */

#include<stdio.h>

int main()

{

int a,b,i,min;

printf("Nhap vao hai so:");

scanf("%d%d",&a,&b);

min=a>b?b:a;

for(i = 2;i<min;++i)

if (((a%i)==0)&&((b%i)==0)) break;

if(i==min) {

printf("Khong co mau chung nho nhat");

return 0;

}

printf("Mau chung nho nhat la %d\n",i);

return 0;

}

Bài 2: Viết chương trình nhập vào số nguyên dương h (2<h<23), sau đó in ra các tam giác có chiều cao là h như các hình sau:

 

Bài 3: Một tam giác vuông có thể có tất cả các cạnh là các số nguyên. Tập của ba số nguyên của các cạnh của một tam giác vuông được gọi là bộ ba Pitago. Đó là tổng bình phương của hai cạnh bằng bình phương của cạnh huyền, chẳng hạn bộ ba Pitago (3, 4, 5). Viết chương trình tìm tất cả các bộ ba Pitago như thế sao cho tất cả các cạnh không quá 500.

Bài 4: Viết chương trình in bảng của các số từ 1 đến 256 dưới dạng nhị phân, bát phân và thập lục phân tương ứng.

Bài 5: Viết chương trình nhập vào một số nguyên dương n. Kiểm tra xem số nguyên n có thuộc dãy Fibonacci không?

Bài 6: Viết chương trình nhân hai ma trân Amxn và Bnxp. Mỗi ma trận được cấp phát động và các giá trị của chúng phát sinh ngẫu nhiên (Với m, n và p nhập từ bàn phím).

Bài 7: Viết chương trình tạo một mảng một chiều động có kích thước là n (n nhập từ bàn phím). Các giá trị của mảng này được phát sinh ngẫu nhiên trên đoạn [a, b] với a và b đều nhập từ bàn phím. Hãy tìm số dương nhỏ nhất và số âm lớn nhất trong mảng; nếu không có số dương nhỏ nhất hoặc số âm lớn nhất thì xuất thông báo "không có số dương nhỏ nhất" hoặc "không có số âm lớn nhất".

Bài 8: Anh (chị) hãy viết một hàm tính bình phương của một số. Hàm sẽ trả về giá trị bình phương của tham số và có kiểu cùng kiểu với tham số.

Bài 9: Trong ngôn ngữ C, chúng ta có hàm chuyển đổi một chuỗi sang số, tùy thuộc vào dạng của chuỗi chúng ta có các hàm chuyển đổi sau :

int atoi(const char *s);

Chuyển đổi một chuỗi s thành số nguyên kiểu int.

long atol(const char *s);

Chuyển đổi một chuỗi s thành số nguyên kiểu long.

double atof(const char *s);

Chuyển đổi một chuỗi s thành số thực kiểu double.

Anh (chị) hãy viết một hàm có tên là aton (ascii to number) để chuyển đổi chuỗi sang các dạng số tương ứng.

Bài 10: Anh chị hãy viết các hàm sau:

Hàm ComputeCircle() để tính diện tích s và chu vi c của một đường tròn bán kính r. Hàm này có prototype như sau:

void ComputeCircle(float&s, float&c, float r = 1.0);

Hàm ComputeRectangle() để tính diện tích s và chu vi p của một hình chữ nhật có chiều cao h và chiều rộng w. Hàm này có prototype như sau:

void ComputeRectangle(float&s, float&p, float h = 1.0, float w = 1.0);

Hàm ComputeTriangle() để tính diện tích s và chu vi p của một tam giác có ba cạnh a,b và c. Hàm này có prototype như sau:

void ComputeTriangle(float&s, float&p, float a = 1.0, float b = 1.0, float c = 1.0);

Hàm ComputeSphere() để tính thể tích v và diện tích bề mặt s của một hình cầu có bán kính r. Hàm này có prototype như sau:

void ComputeSphere(float&v, float&s, float r = 1.0);

Hàm ComputeCylinder() để tính thể tích v và diện tích bề mặt s của một hình trụ có bán kính r và chiều cao h. Hàm này có prototype như sau:

void ComputeCylinder(float&v, float&s, float r = 1.0 , float h = 1.0);

Bài 11: Anh (chị) hãy viết thêm hai toán tử nhân và chia hai số phức ở ví dụ 2.18 của chương 2.

Bài 12: Một cấu trúc Date chứa ngày, tháng và năm như sau:

struct Date

{

int Day; //Có giá trị từ 1  31

int Month; //Có giá trị từ 1  12

int Year; //Biểu diễn bằng 4 chữ số.

};

Anh (chị) hãy viết các hàm định nghĩa các toán tử : + ->>=<<= == != trên cấu trúc Date này.

Bài 13: Một cấu trúc Point3D biểu diễn tọa độ của một điểm trong không gian ba chiều như sau:

struct Point3D

{

float X;

float Y;

float Z;

};

Anh (chị) hãy viết các hàm định nghĩa các toán tử : + - == != trên cấu trúc Point3D này.

Bài 14: Một cấu trúc Fraction dùng để chứa một phân số như sau:

struct Fraction

{

int Numerator; //Tử số

int Denominator; //Mẫu số

};

Anh (chị) hãy viết các hàm định nghĩa các toán tử :

+ - * />>=<<= == !=

trên cấu trúc Fraction này.

Questions & Answers

Being unemployed is a person who is able to work but not finding a job Being out of labor force is a person who isn't able to work
Elie Reply
Explain the differences between aggregate demand shocks and aggregate supply shocks
Swagger Reply
what are the measures being taken to reduce inflation in LDCs
Athumam Reply
increase level of production,reduce rates of tax charged
mashauri
What is economic growth!
Doris Reply
Microeconomics can simply be refers to as the study of a unit economy while macroeconomics can be regarded as a study of economy as a whole or aggregate economy of a country.
Hamzat Reply
Full employment price stability economic growth
Hamzat
using geometry, discuss the four interrelated flows in the circular flows of income
Ahmed Reply
who is there?
SHAHRUKH Reply
Demand refers to the quantity of a commodity that one can buy supported by the willingness and the ability to buy
Noor Reply
Which of the following are assets of the Federal Reserve? a. Treasury bills held by the Federal Reserve b. cash in circulation c. Loans made by commercial banks d. the reserves of commercial banks at the Federal Reserve
Julya Reply
D
Neeha
a
Sushovan
d
Roger
what are the four functions served by money
Michele Reply
It serves as a medium of exchange
Zaharaddeen
It serves as a store of value
Zaharaddeen
It serves as a unit of account
Umar
It also serves as a standard for Differed Payment.
Umar
Acts as a measure of value.
Humphrey
acceptability
GGPS
hi
Shaxboz
hello
Md
welcome
Shaxboz
Hey, I am a new member.
Abdul
Store of value
Bokwe
Hello i want your help if there is someone online
Athumam
hello
Prem
how are you doing
Athumam
what is balance of payment deficit
Athumam
A nation or region, which is deficit in exports, and Imports more goods and services and for the payment for imports, it must be borrowed from other states or Nations. mostly, between countries.
Prem
Pls Wat ar D Factors to Consedered To Saving
IBRAHIM
savings
BENJAMIN
Yah
IBRAHIM
Yes
IBRAHIM
Hello guys how are you doing
Tantoh
I will say a balance of payment deficit is when a country import more goods,services and capital than it export.The country most borrowed from other countries to pay for it imports.
Tantoh
income
Vivek
can anyone tell me that why in the income and consumption curve the income is on x axis?
bechar Reply
why inflation in double digit is not good for economy
Obaid Reply
what is mean by zero inflation
Obaid
some time it is good but some time it is not...
bechar
the condition of that economy tell you. is it good are bad?
bechar
the definition of the law of demand
Aley Reply
law of damand states all else remains constant or what we can say is ceteris peribus,quantity demanded for a commodity extends with fall in price and vice versa. law of demand explains inverse relationship between price and qua ntity demanded
Gaurav
What is demand and supply
Antwi Reply
Demand refers to how much of that product, item, commodity, or service consumers are willing and able to purchase at a particular price. In other words, supply refers to how much the producers of a product or service are willing to produce and can provide to the market with limited amount of resou
Husna
Hello dear
habibrahman
what is gdp per capital and why it is used for?
Era Reply
gross domestic product
prince
gdp per capita is the gross domestic product per person (GDP/population) and is a better indicator of economic health and living standards than GDP alone.
Gina
thank you so much 😘
Era
please explain shift in production possibility curve
Kobby
advances in technology can cause a shift in the ppf because output can increase with use of the same amount of resources (laborers can produce more efficiently, and suppliers are willing to sell more)
Gina
but equally natural shocks ie earthquakes or war can move the ppf inward so reducing production capicity
jax
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

Get the best Algebra and trigonometry course in your pocket!





Source:  OpenStax, Co nuoi. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10760/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Co nuoi' conversation and receive update notifications?

Ask