Hỏi & đáp lập trình

Thảo luận trong 'Lập trình & Đồ hoạ' bắt đầu bởi canh en buon, 23/5/07.

  1. binh4tito

    binh4tito Youtube Master Race

    Tham gia ngày:
    30/4/05
    Bài viết:
    67
    Mình có 1 bài C++ về xử lý xâu
    Nhập vào 1 xâu kí tự là 1 số thực
    VD: "-1.548", "53.25",...
    Đề bài: in ra màn hình xâu là một số thực với các chữ số có nghia
    VD:
    "-1.2340000" thì in ra "-1.234" (bỏ hết số 0 ở cuối)
    ".2546" thì in ra "0.2546" (nếu có dấu chấm ở đầu thì thêm số 0 đằng trước nó)
    "-.2546" thì in ra "-0.2546"
    "0024623" thì in ra "24623" (bỏ hết mấy số 0 ở đầu đi)
    .
    ___________Auto Merge________________

    .
    Mình vướng mắc mấy cái phần khai báo biến kiểu char nên không làm được
    Bạn nào làm giúp mình với, hoặc gợi ý cái thuật toán cũng được :D
    Cám ơn trước :D
     
  2. Dream Theater

    Dream Theater Youth Gone Wild

    Tham gia ngày:
    8/5/04
    Bài viết:
    890
    Nơi ở:
    ...........
    Nếu thế thì chỉ đơn giản vậy thôi :|
    Mã:
    string giaTri = comboBox1.SelectedItem.ToString();
    Nếu giá trị là dạng số thì ép kiểu thành Integer hay Double gì đó rồi xử lí tiếp.

    Bạn có thể down cái file đính kèm để xem thử demo: chọn 1 giá trị từ combobox, click button thì nó hiện giá trị đã chọn ở dưới.

    Mình dùng MS Studio 2005, viết bằng C# trên WinForm.
     

    Các file đính kèm:

  3. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    undefined
    Ép xâu về số rồi ép số ra xâu, thế là nó tự động chuẩn hóa số :))
     
  4. CTKhuyen

    CTKhuyen

    Tham gia ngày:
    11/11/05
    Bài viết:
    2,542
    Nơi ở:
    Giang Hồ
    Mình làm giúp demo cái "-.2546" thì in ra "-0.2546" thôi,còn lại bạn có thể tự xử lý vì cũng tương tự.

    Mã:
    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    void XuLy(char **a,int n)
    {
    	*(*a + n + 1) = '\0';
    	if(**a == '-'&& *(*a + 1) == '.' )
    	{
    		while(n > 1)
    		{
    			*(*a + n) = *(*a + n - 1);
    			n--;
    		}
    				*(*a + 1) = '0';
    	}
    }
    void main()
    {
    	char *str;
    	str = new char[10];
    	cin>>str;
    	int n = strlen(str);
    	XuLy(&str,n);
    	cout<<str;
    	getch();
    }
     
  5. binh4tito

    binh4tito Youtube Master Race

    Tham gia ngày:
    30/4/05
    Bài viết:
    67
    Mình chỉ xử lý thêm được cái ".2546" thì in ra "0.2546" thôi =((
    Cái này là thêm số 0 vào thì mình còn từa tựa làm theo được
    Còn mấy cái còn lại là bớt số 0 đi thì mình không làm được :(
    Căn bản là bạn không chú thích cái thuật toán nên mình chả hiểu 1 số đoạn nó thực hiện thao tác gì luôn :(
    Phiền bạn làm giúp thêm 1 trong 2 đoạn còn thiếu để mình còn từa tựa được không :D
    Có gì chú thích rõ hơn hộ mình nhá :D
     
  6. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    Chả phải mình gợi ý rồi hay sao
    Dùng stringstream để chuyển số và xâu, nhanh hơn việc thêm từng kí tự 1 rất nhiều
     
  7. binh4tito

    binh4tito Youtube Master Race

    Tham gia ngày:
    30/4/05
    Bài viết:
    67
    Chuyển xâu ra số: "1.23000000" -> số = 1.23
    Chuyển số ra xâu: 1.23 -> xâu "1.23" /*bước này có phần hỏi có bao nhiêu chữ sau dấu phẩy khi chuyển sang xâu cơ mà :-/*/
    VD: 1.23 in ra 5 chữ số sau dấu phẩy thì số sẽ là 1.23000 -> sau khi chuyển sang xâu sẽ là "1.23000"
    Nếu không nói gì nó sẽ in tất -> công chuyển đổi bằng mo à :|
     
  8. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    Sai rồi, chuyển số ra xâu thì xâu là số đã được chuẩn hóa
     
  9. binh4tito

    binh4tito Youtube Master Race

    Tham gia ngày:
    30/4/05
    Bài viết:
    67
    vậy hàm chuyển từ số sang xâu là gì :-/
    Mình chỉ biết mỗi hàm chuyển từ xâu sang số thôi =((
    PHP:
    atof(char *xau);
     
  10. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    :-s, khi dùng C++ thì ko nên dùng atoi và itoa.
    Dùng C++ thì cậu có thể dùng lexical_cast ( nếu cậu am hiểu vể boost ) hoặc dùng stringstream.
    PHP:
    stringstream ss;
    ss << "-.123"// Nhập số vào stream
    double temp;
    ss >> temp// Chuyển thành số
    cast để lấy string từ stream là ss.str();
     
  11. dark_dragons

    dark_dragons Hyperion Captain ‍ ⚚ Mystic Mage ⚚ Moderator Lão Làng GVN

    Tham gia ngày:
    9/6/08
    Bài viết:
    22,070
    Nơi ở:
    TP. HCM
    Các bạn cho mình hỏi tí! :D
    Mình mới tập lập trình trên Visual Basic, vậy có cách nào cố định độ phân giải của màn hình khi chạy phần mềm hay không? Tớ đã thử, nhưng cái code tớ xài thì dùng cho màn hình này được, sang đến cái khác thì mọi thứ lại nhảy lung tung; nghĩa là chạy trên PC để bàn thì khác, màn hình Laptop khác, của projector cũng khác. Làm cách nào để cố định được như vậy? :x
     
  12. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    Mình ko học VB nhưng đã viết windows App thì cứ rờ vào winAPI ấy.
    Mà thực ra rất ghét các phần mềm force độ phân giải màn hình =))
     
  13. dark_dragons

    dark_dragons Hyperion Captain ‍ ⚚ Mystic Mage ⚚ Moderator Lão Làng GVN

    Tham gia ngày:
    9/6/08
    Bài viết:
    22,070
    Nơi ở:
    TP. HCM
    Cụ thể là làm ntn ạh? Làm sao mà khi đóng gói ra phần mềm thì nó cố định luôn ấy! :'>
    Mặc dù khó chịu tí nhưng đành chịu, not any other resolution :D
     
  14. o0olangtuo0o

    o0olangtuo0o Mr & Ms Pac-Man

    Tham gia ngày:
    22/3/08
    Bài viết:
    178
    Nơi ở:
    vinhlong
    mấy anh chỉ dùm em cái code gì mà viết cái code đó ra cả dàn máy điều tắt hết
    thanks:D
     
  15. binh4tito

    binh4tito Youtube Master Race

    Tham gia ngày:
    30/4/05
    Bài viết:
    67
    Bạn nào giúp mình cái thuật toán tìm hạng của ma trận kích thước m x n với
    Thuật toán thôi, nếu code được thì càng tốt
    Cảm ơn trước :-*
     
  16. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    Tìm hạng thì áp dụng cái phương pháp khử :-? gì đó quên tên rồi, nói chung là biến đổi về ma trận tam giác rồi đếm, ko có thuật toán gì ở đây cả.
    Cứ trừ từng hàng cho nhau
     
  17. binh4tito

    binh4tito Youtube Master Race

    Tham gia ngày:
    30/4/05
    Bài viết:
    67
    Gauss Jordan
    Thế còn thuật toán tính định thức của ma trận vuông cấp n:(
     
  18. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    Định thức thì làm y hệt như trừ từng hàng của cái tính hạng, nhưng ta thực hiện 2 lần, 1 lần xuôi 1 lần ngược để được 1 hàng chéo
     
  19. binh4tito

    binh4tito Youtube Master Race

    Tham gia ngày:
    30/4/05
    Bài viết:
    67
    2 cách làm kia mình đều nghĩ ra trước khi lên đây hỏi rồi nhưng chưa có ý tưởng triển khai cho nó thế nào.
    Thế nó mới đau chứ =((
     
  20. binh4tito

    binh4tito Youtube Master Race

    Tham gia ngày:
    30/4/05
    Bài viết:
    67
    vậy còn cách nào gán 2 ma trận có cùng kích thước cho nhau không?
    để đỡ khỏi dùng 2 vòng for lồng nhau ý
    PHP:
    float a[4][4],b[4][4];
    b=a;//ma trận a đã cho trước
     

Chia sẻ trang này