Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: Xin chỉ giùm bài tập dùng ngôn ngữ BorlandC

  1. #1
    Ngày gia nhập
    01 2008
    Bài viết
    0

    Mặc định Xin chỉ giùm bài tập dùng ngôn ngữ BorlandC

    xin viết giùm code của bài này:
    Cho 1 dãy n số nguyên a0,a1,a2...an-1. Hãy tìm dãy con liên tiếp có tổng lớn nhất.
    Ví dụ:
    Nhập dãy:4 -5 7 -6 1 -2 3 -4
    xuất:4 -5 7
    Hỏi thêm: Mình phải dùng hàm gì để nhập vào và tính toán với 1 dãy số âm lẫn dương như ở trên??

  2. #2
    Ngày gia nhập
    01 2008
    Bài viết
    4

    Sặc dãy con liên tiếp là dãy mà nó tăng dần đúng ko vậy sao ở đây lại có cả -5 thế? hay bạn định tính kiểu cứ số âm thì quy đổi ra dương để tính dãy tăng rồi mới trả về giá trị để tính tổng vậy? Bạn có thể nói rõ hơn được không?

  3. #3
    Ngày gia nhập
    01 2008
    Bài viết
    4

    Sặc dãy con liên tiếp là dãy mà nó tăng dần đúng ko vậy sao ở đây lại có cả -5 thế? hay bạn định tính kiểu cứ số âm thì quy đổi ra dương để tính dãy tăng rồi mới trả về giá trị để tính tổng vậy? Bạn có thể nói rõ hơn được không?
    À, bạn kô đọc kĩ câu bạn đó nói rồi --->"Hãy tìm dãy con liên tiếp có tổng lớn nhất."
    xin viết giùm code của bài này:
    Cho 1 dãy n số nguyên a0,a1,a2...an-1. Hãy tìm dãy con liên tiếp có tổng lớn nhất.
    Ví dụ:
    Nhập dãy:4 -5 7 -6 1 -2 3 -4
    xuất:4 -5 7
    Hỏi thêm: Mình phải dùng hàm gì để nhập vào và tính toán với 1 dãy số âm lẫn dương như ở trên??
    Cho mình hỏi "1 dãy" có thể là 1 số kô?
    __Nếu là 1 số thì kết quả của bài này sẽ in ra là 7
    __Còn nếu 2 số trở lên thì nó in ra là 4 -5 7

  4. #4
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Đây cậu boytran!! Không hiểu chỗ nào thì hỏi.
    PHP Code:
    #include <iostream>
    #include <ctime>
    #include <cstdlib>
    #include <limits>
    #include <vector>

    //function prototype
    void LargestSeriesSum(const std::vector<int> &);

    int main(){
      
      
    std::vector<intarrD;
      
    srand(static_cast<unsigned int>(time(0)));
      for(
    int x 010; ++x){
        
    int val rand()%10 5;
        
    arrD.push_back(val);
      }

      
    std::cout << "Array : \n";
      for(
    int x 0arrD.size(); ++x){
        
    std::cout << arrD[x] << ' ';
      }
      
    std::cout << "\n\n\n";
      
    LargestSeriesSum(arrD);
    }

    void LargestSeriesSum(const std::vector<int> &arrD){
      
      
    int pos 0,
      
    start 0,
      
    end 0,
      
    maxx = -INT_MAX;
      
      
    int sumation 0;
      for(
    int x 0arrD.size(); ++x){
        
    sumation sumation arrD[x];
        if(
    sumation maxx){
          
    maxx sumation;
          
    start pos;
          
    end x;
        }
        if(
    sumation 0){
          
    sumation 0;
          
    pos 1;
        }
      }
        
      for(
    int x start<= end; ++x){
        
    std::cout << arrD[x] << ' ';
      }
      
    std::cout << '\n';
      
    std::cout << "Its sum is : " << maxx;


  5. #5
    Ngày gia nhập
    01 2008
    Bài viết
    4

    Không kỹ là sao? Bạn có thể giải thích dùm mình việc tìm 1 dãy dài nhất không?Dãy tăng dài nhất ở đây là thế nào?Phải tìm dãy tăng rồi mới cộng chứ? nếu cứ cộng lại để tính dãy tăng có tổng max thì cộng hết cả mảng à?

  6. #6
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mặc định Xin chỉ giùm bài tập dùng ngôn ngữ BorlandC

    Không kỹ là sao? Bạn có thể giải thích dùm mình việc tìm 1 dãy dài nhất không?Dãy tăng dài nhất ở đây là thế nào?Phải tìm dãy tăng rồi mới cộng chứ? nếu cứ cộng lại để tính dãy tăng có tổng max thì cộng hết cả mảng à?
    Sai thì sữa, không có việc gì đâu mà cãi nhau, ai cũng có lúc nhầm, nhầm không là thường thôi, chẳng là gì hết !! Quan trọng là mình học được gì sau những sai lầm như vậy,
    Ví dụ :
    nếu dãy
    1 1 1 -1000 1 1 1 thì làm thế nào ? Cộng hết chăng ?
    Hãy tìm dãy con liên tiếp có tổng lớn nhất.
    Đề bài !!!

  7. #7
    Ngày gia nhập
    01 2008
    Bài viết
    4

    Không kỹ là sao? Bạn có thể giải thích dùm mình việc tìm 1 dãy dài nhất không?Dãy tăng dài nhất ở đây là thế nào?Phải tìm dãy tăng rồi mới cộng chứ? nếu cứ cộng lại để tính dãy tăng có tổng max thì cộng hết cả mảng à?
    Bạn có hiểu nhầm 1 tí là đề nó kô iu cầu tìm dãy tăng dài nhất gì cả, mà nó kêu tìm dãy con
    Ví dụ: cho mảng 1 2 3
    thì mảng con
    1
    12
    123
    2
    23
    3
    nhưng đề kiu liệt kê mảng con có tổng nhất 1 thì trong ví dụ này tổng max = 6---> 123 là mảng con lớn nhất


    Code:
    #include <stdio.h>
    #include <conio.h>
    
    void NhapMang (int A[100], int &n)
    {
    	printf("Nhap so phan tu: ");
    	scanf("%d", &n);
    
    	printf("\n");
    
    	for (int i = 0; i < n; i++)
    	{
    		printf("Nhap phan tu thu %d: ", i + 1);
    		scanf("%d", &A[i]);
    	}
    	
    	printf("\n");
    }
    
    void XuatMang (int A[100], int n)
    {
    	for (int i = 0; i < n; i++)
    	{
    		printf("%4d", A[i]);
    	}
    
    	printf("\n");
    }
    
    int TimTongMaxCuaDay (int A[100], int n)
    {
    	int max = A[0];
    
    	for (int i = 0; i < n; i++)
    	{
    		for (int d = 1; d <= n - i; d++)
    		{
    			int tong = 0;
    			
    			for (int j = 0; j < d; j++)
    			{
    				tong = tong + A[i + j];
    			}
    
    			if (tong > max)
    			{
    				max = tong;
    			}
    		}
    	}
    	return max;
    }
    
    void LietKeCacMangConCoTongBangMax(int A[100], int n)
    {
    	int max = TimTongMaxCuaDay (A, n);
    
    	for (int i = 0; i < n; i++)
    	{
    		for (int d = 1; d <= n - i; d++)
    		{
    			int tong = 0;
    			
    			for (int j  = 0; j < d; j++)
    			{
    				tong = tong + A[i + j];
    			}
    			
    			if (tong == max)
    			{
    				printf("\n");
    				
    				for (j = 0; j < d; j++)
    				{
    					printf("%4d ", A[i + j]);
    				}
    
    				printf("\n");
    			}
    		}
    	}
    }
    
    void main ()
    {
    	int A[100];
    	int n;
    
    	NhapMang (A, n);
    	printf("Xuat:  ");
    	XuatMang (A, n);
    	
    	printf("\nKQ:\n");
    	LietKeCacMangConCoTongBangMax (A, n);
    	printf("\n");
    	getch();
    }

  8. #8
    Ngày gia nhập
    01 2008
    Bài viết
    0

    hihi...Cám ơn bà con, cô chú đã nhiệt tình giúp đỡ. à. xin nhờ bà con nếu ai bít thì chỉ giùm tui có thể mua cuốn BÀI TẬP LẬP TRÌNH C++ TỪ A -> Z của tác giả Phạm Văn Ất ở đâu không???

  9. #9
    Ngày gia nhập
    01 2008
    Bài viết
    62

    Trích dẫn Nguyên bản được gửi bởi boytran Xem bài viết
    hihi...Cám ơn bà con, cô chú đã nhiệt tình giúp đỡ. à. xin nhờ bà con nếu ai bít thì chỉ giùm tui có thể mua cuốn BÀI TẬP LẬP TRÌNH C++ TỪ A -> Z của tác giả Phạm Văn Ất ở đâu không???
    bạn có thể mua ở thư quán gần trương đại học khoa học xã hội và nhân văn

Các đề tài tương tự

  1. Giải thích giùm cái code và cách dùng bool trong c++
    Gửi bởi Halo trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 31-03-2013, 05:31 PM
  2. Không thể sử dụng BORLANDC để biên dịch chương trình
    Gửi bởi hauhoc trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 26-02-2011, 09:53 AM
  3. Ebook dành cho người mới bắt đầu hoc BORLANDC C++?
    Gửi bởi jacki2006 trong diễn đàn Tài liệu, ebooks và công cụ
    Trả lời: 1
    Bài viết cuối: 20-08-2010, 12:55 PM
  4. Cho em hỏi về mở thư mục trong borlandC
    Gửi bởi ngoctrungpro trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 08-12-2007, 09:36 PM
  5. [C] thư viện dos.h trong BORLANDC 502
    Gửi bởi Paraside trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 28-04-2007, 08:37 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn