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. Chinese_Fireball

    Chinese_Fireball Mega Man

    Tham gia ngày:
    26/8/07
    Bài viết:
    3,415
    Nơi ở:
    Lappeenranta, Finland
    Cho hỏi cách giải 1 bài tập Đệ quy Pascal chút xíu:
    Lập trình tính tổng n số dương lẻ đầu tiên (n nhập từ bàn phím)
     
  2. The Greek Warrior

    The Greek Warrior T.E.T.Я.I.S

    Tham gia ngày:
    28/4/02
    Bài viết:
    561
    Nơi ở:
    Caldeum
    Mã:
    function Tong(n:integer):integer
    begin
        if(n mod 2 =0) then
            n:=n-1;
        if(n=1)    then
            Tong:=1
        else    
            Tong:=n+Tong(n-2);
    end
    
     
  3. ricky_martin

    ricky_martin Lão Làng Lão Làng GVN

    Tham gia ngày:
    30/12/05
    Bài viết:
    453
    Đề là tìm số lớn nhất trong 3 số nhập vào:

    Mã:
    #include <stdio.h>
    #include <conio.h>
    main()
    {
          int a,b,c,max;
          printf ("nhap vao 3 so tuy y :");
          scanf ("%d%d%d",&a,&b,&c);
          max=a;
          if (max<b) max=b;
          if (max<c) max=c;
          printf ("so lon nhat la %d",max);
          getch();
          }
    
    Bạn nào có thể giải thích giúp mình đc ko
    Mình ko hỉu từ cái chỗ max=a;
    khai biến ở trên thì max với a đều là biến
    vậy biến có thể gán cho biến đc ạh ?
    Nếu đc thì ở phần if (max<b) tại sao ko là if (a<b) mà fai gán max=a rồi cho vào lệnh if ?
    Thks nhìu hen
     
  4. JackySparrow

    JackySparrow Donkey Kong

    Tham gia ngày:
    4/6/07
    Bài viết:
    493
    Nơi ở:
    Caribbean
    Ai có bài tập về "đồ thị" về tìm kiếm, tính liên thông .... thì post cho em :)
     
  5. HieuNM

    HieuNM Mayor of SimCity

    Tham gia ngày:
    3/3/07
    Bài viết:
    4,078
    Nơi ở:
    H.U.S.T
    a ở đây đã có giá trị trước rồi, vì thế max được hiểu là gán cho 1 số
    bạn không hiểu rõ bản chất của bài toán tìm max n (ở đây n=3) số rồi
    là thế này:
    đầu tiên gán max cho 1 số bất kỳ nào đó trong n (=3) số, ở đây là a (nghĩa là giả sử a là số lớn nhất)
    sau đó so sánh số đó (a) với 1 số bất kỳ trong các số còn lại, ở đây là b
    nếu a<b thì cập nhật cho max giá trị là b, a bây giờ không còn là max nữa
    còn nếu a>b thì a vẫn là số lớn nhất (do đã giả sử ở lúc đầu), giá trị của max lúc này vẫn là a
    cứ tiếp tụ như thế cho đến số cuối cùng
     
  6. Wii

    Wii Garçon à la Pipe

    Tham gia ngày:
    21/1/06
    Bài viết:
    676
    Nơi ở:
    Hà Nội
    Cho em hỏi 1 chút , em dùng phần mềm fraps 2.9.2 để làm một đoạn film minh họa cho skill trong Warcraft , nhưng sau khi cắt thì nó lại là video full screen , có phần mềm nào giúp cắt bớt các phần thừa trong video không ??? em chỉ muốn lấy phần hero thôi :|
     
  7. ricky_martin

    ricky_martin Lão Làng Lão Làng GVN

    Tham gia ngày:
    30/12/05
    Bài viết:
    453
    Mấy anh cho em hỏi câu này:
    Đề bài : nhập vào 1 số kiểm tra xem nó có fai là số nguyên tố hay ko ?
    Mã:
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <math.h>
    main()
    {
          int i,n,x,f;
          printf ("nhap vao so can kiem tra :");
          scanf ("%d",&n);
          x=sqrt(n);
          for (i=2;i<=x;i=i+1)
          if (n%i==0) f=0;
          if (f==0) printf ("ko la so nguyen to");
          else printf (" la so nguyen to");
          
          getch();
          
          }
    
    Ở đoạn :
    Mã:
    for (i=2;i<=x;i=i+1)
          if (n%i==0) f=0;
    
    Theo em học thì cấu trúc for là : for (bt1;bt2;bt3) <khối lệnh> ( nếu có 2 lệnh trở lên thì đặt trong dấu {...} )
    Vậy ở cái khúc nhỏ trên
    Mã:
    if (n%i==0) f=0;
    
    là lệnh của for hay chỉ if thôi ạh, nếu chỉ if là lệnh thì theo cấu trúc nó thiếu dấu ; .Còn nếu cả if (...) và f=0 là khối lệnh thì nó lại thiếu dấu {....}
    Ai giải thích dùm em chỗ này với.
     
  8. toi5

    toi5 Try Hard Moderator Lão Làng GVN

    Tham gia ngày:
    27/5/03
    Bài viết:
    6,866
    lệnh ấy là của lệnh if
    nếu sau if chỉ có 1 lệnh thì không cần cho vào {...} tương tự với for , else.....nói chung câu lệnh cấu trúc điều khiển sau đó chỉ muốn làm 1 lệnh thì không cần cho vào dấu {....}
     
  9. ricky_martin

    ricky_martin Lão Làng Lão Làng GVN

    Tham gia ngày:
    30/12/05
    Bài viết:
    453
    hic
    cái ấy anh nói là lý thuyết mà em đã nói phía trên rồi mà
    em muốn đc giải thích ấy
     
  10. blaster6220119

    blaster6220119 Donkey Kong

    Tham gia ngày:
    14/3/06
    Bài viết:
    430
    Nơi ở:
    :-"
    Mã:
    for (i=2;i<=x;i=i+1)
          if (n%i==0) f=0;
    tương đương
    Mã:
    for (i=2;i<=x;i=i+1)
    {
          if (n%i==0)
          {
                f=0;
          }
    }
    if(...)f=0; được tính là 1 câu lệnh trong scope của vòng lặp for, f=0 được tính là 1 lệnh trong scope của if(...)

    edit: vd viết như thế này cũng là hợp lệ
    Mã:
    for(.....)
          if(...)
          {
                //câu lệnh 1;
                //...
                //câu lệnh n;
          }
     
  11. The Greek Warrior

    The Greek Warrior T.E.T.Я.I.S

    Tham gia ngày:
    28/4/02
    Bài viết:
    561
    Nơi ở:
    Caldeum
    Cấu trúc mà bạn đề cập tất nhiên là áp dụng cho khối lệnh, 1 lệnh sau for(hay if) thì không cần {...}. Theo như trên chỗ tôi đánh dấu có nghĩa là lệnh for chỉ lặp trên 1 lệnh if (không cần {...} cho lệnh for), lệnh if chỉ có 1 dòng gán f=0; nên cũng không cần {...}. Thân
     
  12. thaitrung

    thaitrung Legend of Zelda

    Tham gia ngày:
    30/5/06
    Bài viết:
    926
    Nơi ở:
    CastleVania
    sao đa số người ta chỉ hỏi c++ ko vậy ta, tôi thì muốn xin 1 đoạn code bằng c# dùng để mở file notepad apllycation exe. lúc trước có thằng bạn cùng lớp nó gửi tôi 1 file exe mở lên thì nó mở hàng loạt file notepad lên, dc 1 lút sau thì treo máy, hỏi nó thì nó nói viết bằng c# chỉ với vài dòng lệnh chứ ko phải do virus, tui ngồi làm hoài mà vẫn ko làm dc như nó ai biết xin chỉ giùm cám ơn nhiều thanks
     
  13. blaster6220119

    blaster6220119 Donkey Kong

    Tham gia ngày:
    14/3/06
    Bài viết:
    430
    Nơi ở:
    :-"
    using System.Diagnostics;

    string str = @"C:\windows\system32\notepad.exe;
    Process process = new Process();
    process.StartInfo.FileName = str;
    process.Start();

    -> chạy vòng lặp vô hạn thì :D
    edit: cái này viết = notepad cũng được chứ ko cần viết = c#, máy victim ko có .net framework thì ...
     
  14. Thanh_Nguyen_BKV

    Thanh_Nguyen_BKV Dragon Quest

    Tham gia ngày:
    4/3/05
    Bài viết:
    1,268
    Nơi ở:
    HCM
    ai chỉ mình cái hướng để viết hàm chia 2 đa thức với ::(
    đa thức a : a1x + a2x^2 + a3x^3 +...
    đa thức b : b1x + b2x^2 +b2x^3 + ....
    chỉ mình cái hướng đi với :-ss
     
  15. dhl012

    dhl012 C O N T R A

    Tham gia ngày:
    21/1/07
    Bài viết:
    1,755
    Nơi ở:
    vô tỉnh
    lấy anx^n chia cho bmx^m, kết quả ra là a/bx^(n-m), cập nhật nó vào chuỗi đa thức kết quả d.
    lấy a/bx^(n-m) nhân cho bmx^m, ra một chuỗi đa thức, cụ thể cnx^n+c(n-1)x^(n-1)+.... Lấy chuỗi đa thức a trừ cho chuỗi đa thức c theo dạng (an-cn)x^n+(a(n-1)-c(n-1))x^(n-1)+...+(a1-c1)x. cập nhật đa thức này trở thành đa thức a ban đầu và lặp lại công việc trên cho đến khi n<m; lúc này đa thức d là đa thức thương, đa thức a cuối cùng là đa thức dư.



    Ai biết C# chỉ giùm mình cách tính thời gian thực hiện 1 bài toán với, cụ thể là khoảng thời gian lúc bắt đầu chương trình tới lúc kết thúc.
    C# quá nhiều hàm mình không hiểu ::(
     
  16. blaster6220119

    blaster6220119 Donkey Kong

    Tham gia ngày:
    14/3/06
    Bài viết:
    430
    Nơi ở:
    :-"
    Lúc Form_Load cậu gán DateTime.Now(); cho 1 biến Start, lúc kết thúc (Form_Closed) cậu gán nó cho biến End, ghi vào file log (End - Start) là biết được
     
  17. Thanh_Nguyen_BKV

    Thanh_Nguyen_BKV Dragon Quest

    Tham gia ngày:
    4/3/05
    Bài viết:
    1,268
    Nơi ở:
    HCM
    bạn có code của phần đó ko cho mình xin với :|
     
  18. dhl012

    dhl012 C O N T R A

    Tham gia ngày:
    21/1/07
    Bài viết:
    1,755
    Nơi ở:
    vô tỉnh
    Error 1 'System.DateTime.Now' is a 'property' but is used like a 'method'

    Mình xài thì bị lỗi như vầy
     
  19. blaster6220119

    blaster6220119 Donkey Kong

    Tham gia ngày:
    14/3/06
    Bài viết:
    430
    Nơi ở:
    :-"
  20. DHBL

    DHBL Youtube Master Race

    Tham gia ngày:
    7/11/08
    Bài viết:
    58
    kì lạ nhĩ có phần không hiểu:
    Giả sử để tính thời gian thực hiện bài toán tính giai thừa của 1 số đi bằng hàm tính GiaiThua().Lúc form load gán biến Start=DataTime.Now(), lúc đóng form gán tiếp End=DataTime.Now();
    Một số trường hợp sau đây không hiểu:
    1>Hàm GiaiThua() được gọi ờ biến cố nào. Form_Load hay Form_Closed
    1.1>Nếu ờ F_L thì nó khi load form lên nó đâu có tính đúng thời gian lúc chạy cái hàm vì nó còn làm nhiều việc khác như khời động chế độ đồ họa đễ vẽ form và một chục cái hàm khác sau đó mới gọi cái datatime rùi cái hàm giai thừa cần tính là gọi sau cùng, sau đó trả lại tài nguyên rùi thực hiện hàm đóng from. Vậy thời gian tính ra lúc này sẽ là:
    Mã:
    Thời Gian=Thời gian lấy kết quả trả về hàm DataTime gán cho Start + Thời gian dời stack để gọi hàm GiaiThua() + thời gian trả tài nguyên + thời gian lấy giá trị trả về DataTime gán lại cho End.
    
    1.2>Lập luận tuơng tự cho phần hàm GiaiThua gọi ờ Form_Close < tức nhiên Start và end nó bọc cái hàm giai thừa ờ giữa va cùng ờ trong F_C
    1.3>1 cái hàm khi chạy còn nhiều yêu tố khác, gần như việc kiểm thử là ko chính xác.
    2> còn nếu bài toán là yêu cầu tính thời gian sử dụng cái form đến lúcn ó bị đóng thì đúng như bạn nói ờ trên
    .
    ___________Auto Merge________________

    .
    cần thay cái @"C:\windows\system32\notepad.exe" bằng @"%systemroot%\%system32\notepad.exe"
     

Chia sẻ trang này