Thứ năm, 16 Tháng mười 2003, 18:12 GMT+7

Cách lập trình C hoặc C++ (5)

Xin các cao thủ làm ơn chỉ giùm: Trong C hàm nào có thể tính căn bậc 3 trở đi của một số và cú pháp như thế nào, hoặc là luỹ thừa của một số hữu tỉ (ví dụ: 12 luỹ thừa 1/23). Tôi có biết một hàm là POW(A,B) nhưng tham số A có thể biểu diễn dưới dạng một biến nhưng B thì không, nó bắt buộc phải là một hằng số và hằng số đó là số nguyên, không thể biểu diễn với số hữu tỉ (ví dụ POW(26,1/3) là không được nó báo lỗi, nhưng POW(26,0.3333333) thì được. Tôi đã thử như thế này cũng không được - (float g=1/3, pow(26,g) - hoặc pow(thamso,g)) đều không được. Ai biết làm ơn chỉ giùm. Tôi chờ sự giúp đỡ của các bạn.

Trong Nhon

Hồi âm:

Toi khong co hoc C, nhung ben C++, cach giai quyet cho can bac 3 la bien "mau" hoac "tu" tro thanh float hoac double bang cach them decimal point phia sau con so. Chang han nhu 1/3 thi chuyen thanh 1./3 hoac 1/3. Tu nhien ham pow se su dung duoc pow ( n, 1./3)

Ban thu trong C xem co duoc khong nha.

Andrie Phan

Bạn Trong Nhon thân mến,

Trong C hay C++ không có hàm tính lũy thừa với số mũ thực hay hữu tỉ. Tuy nhiên vẫn có cách tính hàm này rất dễ dàng bằng cách sử dụng hàm log() và exp() và một ít kiến thức toán học. Theo toán học log(x^y) = y*log(x) {x,y là số thực dương} <=> exp (log(x^y)) = exp(y*log(x)) <=> x^y = exp (y*log(x)). Vậy bạn có thể tính lũy thừa của số dương với số mũ dương bất kỳ, kể cả hữu tỉ, có thể tính căn bậc tùy ý. canbacN(x) = exp(log(x) / N). Chúc thành công. Có gì thắc mắc cứ việc liên hệ Địa chỉ email này đang được bảo vệ khỏi chương trình thư rác, bạn cần bật Javascript để xem nó

NDT

1/3 la toan integer va se bang 0. Ban hay thu
float g = 1.0/3;
double x = pow(26,g);

Than men.

Nguyen Hung

Bạn Trong Nhon mến:

Đọc qua email của bạn, Kevin có viết một program nhỏ để tính luỹ thừa của một số hữu tỉ cho bạn tham khảo và kèm theo một số function prototypes của C và C++. Kevin đã chạy thử nó và có kèm theo kết quả bên dưới. Nếu vì một lý do gì đó mà phần mền của bạn không compile được function pow(), bạn thử sử dụng công thức này để tự viết cho mình một function tính lũy thừa nhé mà không phải dùng pow().

e^(ln(x^(a/b)) => e^((a/b)ln(x))

Nếu có giúp gì được thêm bạn có thể reply lại cho Kevin. Bạn có thể vào ( http://www.hungtan.us/ ) và vào phần Study để tham khảo thêm về C & C++ hoặc một số ngôn ngữ lập trình khác.

Chúc may mắn,

/*

double pow(double x, double y);

float pow(float x, float y); [C++ only]

long double pow(long double x, long double y); [C++

only]

double pow(double x, int y); [C++ only]

float pow(float x, int y); [C++ only]

long double pow(long double x, int y); [C++ only]

*/

#include

#include

void testDrive();

int main(){

double base, exp, result;

base = 12.0;

exp = (1.0/23.0);

result = pow(base, exp);

printf("pow(%f, %f) = %f ", base, exp, result);

testDrive();

return 0;

}

void testDrive(){

double base, exp, result;

char quit = "n";

while( quit != "y" ){

printf("Enter base: ");

scanf("%le", &base);

printf("Enter exponent: ");

scanf("%le", &exp);

result = pow(base, exp);

printf("pow(%f, %f) = %f ", base, exp, result);

printf("quit (y/n): ");

scanf(" %c", &quit);

}

}

/*

pow(12.000000, 0.043478) = 1.114092

Enter base: 36

Enter exponent: .5

pow(36.000000, 0.500000) = 6.000000

quit (y/n): n

Enter base: 81

Enter exponent: .2

pow(81.000000, 0.200000) = 2.408225

quit (y/n): n

Enter base: 81

Enter exponent: .25

pow(81.000000, 0.250000) = 3.000000

quit (y/n): n

Enter base: 1024

Enter exponent: .1

pow(1024.000000, 0.100000) = 2.000000

quit (y/n): y

*/

Kevin Truong

ban co the viet nhu sau:
#include
#include

void main( void )
{
double x = 2.0, y = 3.0, z;

z = pow( x, y );
printf( "%.1f to the power of %.1f is %.1f ", x, y, z );
}

Le Hong Lam

Việt Báo

Nhận xét tin Cách lập trình C hoặc C++ (5)

Ý kiến bạn đọc

Viết phản hồi

Bạn có thể gửi nhận xét, góp ý hay liên hệ về bài viết Cách lập trình C hoặc C++ (5) bằng cách gửi thư điện tử tới Lien He Bao Viet Nam. Xin bao gồm tên bài viết Cach lap trinh C hoac C 5 ở dạng tiếng Việt không dấu. Hoặc Cách lập trình C hoặc C++ (5) ở dạng có dấu. Bài viết trong chuyên đề Kinh Nghiệm của chuyên mục Công Nghệ.

The C Programming or C + + (5)
In C, rational numbers, help, how, must, can, some, not, power, of a, the constant, x, C + +, EXP, you

please the higher the please just gium: In the C function that can calculate the square root of 3 onwards and syntax some how, or exponentiation of rational numbers (eg exponentiation 12 1/23). I that is a function POW (A, B) but the parameter A can be expressed as ...

CÓ THỂ BẠN QUAN TÂM


  • Thoi su 24h2511 Ung ho phuong an nghi Tet 9 ngay
    Thời sự 24h(25/11): Ủng hộ phương án nghỉ Tết 9 ngày

    Chi tiền triệu mua tin về tham nhũng; “Mất điện tại sân bay do UPS hỏng là nói sai!”; Ủng hộ phương án nghỉ Tết 9 ngày; Phó giám đốc bệnh viện E trung ương bị bắt tại nhà nghỉ; Bị dồn ép, cước taxi, vận tải giảm tới trên 30%; Cha ruột giết con gái đang mang thai... là những thông tin thời sự nổi bật trong ngày 25/11.

  • Thoi su trong ngay Danh ghen tren may bay
    Thời sự trong ngày: Đánh ghen trên máy bay

    Bến Tre, TPHCM thu hồi đất, dỡ nhà ông Trần Văn Truyền; Bộ trưởng Thăng: Sự cố mất điện có phải phá hoại?; SGK tiếng Anh: "Làm ầm ĩ là...không biết gì"; "Hố tử thần" sụt lún trở lại; "2 bà, 1 ông" đánh nhau trên máy bay...

  • Thoi su 24h2111 Thu hoi nha dat cua ong Tran Van Truyen
    Thời sự 24h(21/11): Thu hồi nhà đất của ông Trần Văn Truyền

    Thu hồi nhà, đất của ông Trần Văn Truyền; Gói quà 20/11 phát nổ, 1 phụ nữ tử vong; VTV xin lỗi vụ phát sóng "Nhặt xương cho thầy"; Hà Hồ bật khóc, nêu lời giải cho quan hệ với Cường đô la; Từ 1/1/2015 tăng mức phạt xe quá tải... là những thông tin thời sự nổi bật trong ngày 21/11.

  • Thoi su 24h2010 2 may bay suyt dam nhau tai SG
    Thời sự 24h(20/10): 2 máy bay suýt đâm nhau tại SG

    Đổi chứng minh thư thành thẻ căn cước công dân;Hai máy bay suýt đụng nhau trên không;Thuê người giả mạo Thứ trưởng Y tế để lừa tiền tỷ; Sát hại con tin để quỵt nợ 50 triệu đồng; "100 nghìn/cô" - cuộc định giá đau xót trong ngày 20/11?... là những thông tin thời sự nổi bật trong ngày 20/11.

  • Thoi su 24h1911 Chang trai dam cuoi co tich qua doi
    Thời sự 24h(19/11): Chàng trai "đám cưới cổ tích" qua đời

    Phạt 252 triệu đồng NXB in hình Công Lý cởi trần; Chơi ngông Tàng "Keangnam": Mời ca sỹ ngoại về đãi cả bản; Nữ phượt thủ 9x tử nạn trên cung đường Hà Giang; Chàng trai trong "đám cưới cố tích" đột ngột qua đời...

  • Ban tin suc khoe tuan tu 162211
    Bản tin sức khỏe tuần (từ 16-22/11)

    Hà Tĩnh: Mổ đẻ, BS "quên" kim trong bụng bệnh nhân 9 năm; Bình Dương: Một phụ nữ chết tức tưởi sau khi chích thuốc tại phòng khám tư nhân; Trứng gà thật - giả, phân biệt thế nào?; 83% đàn ông "thả rông" trong lần quan hệ đầu tiên; Mẹo chăm sóc da cho trẻ vào mùa đông; Lý do không ngờ khiến mẹ chậm mang thai; Người hay lo lắng dễ bị mất trí nhớ; Cách giảm cân hiệu quả trong 1 tuần... là những tin sức khỏe nổi bật tuần qua.

  • Nghin le chuyen tuan qua 1611 2211
    Nghìn lẻ chuyện tuần qua (16/11 - 22/11)

    Nghị trường QH nóng chuyện chạy chức, chạy quyền; Ước vọng của Hai lúa được phong Đại tướng quân; Sách Luật in hình nghệ sỹ Công Lý: Luật pháp không phải trò hề; Làm khu nghỉ dưỡng trên núi Hải Vân: Quá nhạy cảm quốc phòng!; Phát phim phản cảm,VTV nên có lời với các thầy cô giáo ... là những tin tức nổi bật được dư luận quan tâm trong tuần qua.

  • Toan canh Showbiz tuan 1611 2211
    Toàn cảnh Showbiz tuần (16/11 – 22/11)

    Mỹ Tâm được vinh danh giải thưởng 'Huyền thoại âm nhạc', Hình nghệ sĩ Công Lý bị xuất hiện phản cảm trên bìa sách luật, Tranh cãi số lượng khán giả trong live concert Heartbeat của Mỹ Tâm,

  • Tin An ninh Phap luat tuan qua 1611 2211
    Tin An ninh - Pháp luật tuần qua (16/11 - 22/11)

    "Tội phạm axit" và câu chuyện về quản lý; Kết cục thảm của những mối tình đồng tính nữ lệch lạc; Điểm tựa hoàn lương của 9X sát hại người yêu; 14 năm tù cho cơn ghen tuông mù quáng; Vụ TMV Cát Tường: Tội danh của bị cáo Tường và Khánh sẽ thay đổi?; Cảnh giác với chiêu lừa đảo tinh vi qua điện thoại;.......là những tin đáng chú ý trong tuần.

  • Tin Bong daThe thao noi bat tuan qua 16112211
    Tin Bóng đá-Thể thao nổi bật tuần qua (16/11-22/11)

    Tổng hợp diễn biến vụ nghi ngờ Công Phượng gian lận tuổi; Tổng hợp thông tin trước thềm AFF Cup của ĐT Việt Nam và các đội bóng cùng bảng; Tổng hợp các trận cầu hay cuối tuần... là những tin tức sẽ có trong bản tin Bóng đá cuối tuần của Việt Báo.

1