Trang 2 trên tổng số 2 Đầu tiênĐầu tiên 12
Từ 11 tới 14 trên tổng số 14 kết quả

Đề tài: CTDL & Giải thuật dùng để làm gì ?

  1. #11
    Ngày gia nhập
    08 2017
    Bài viết
    2,228

    Mặc định CTDL & Giải thuật dùng để làm gì ?

    Topic chỉ nhằm so sánh đệ quy với lặp, nó cũng có liên kết cải tiến thuật toán trên để giảm bớt số lần hoán đổi hai vị trí phần tử

    C Code:
    1.        void selectionSort(int a[], int n) {
    2.                 //Mảng a[m] có độ dài n
    3.                 for (int i = 0; i < n - 1; i++) {
    4.                         int max = i;
    5.  
    6.                         for (int j = i + 1; j < n; j++)
    7.                                 if (a[max] > a[j])
    8.                                         max = j;
    9.                         if (max != i) {
    10.                                 a[max] ^= a[i];
    11.                                 a[i] ^= a[max];
    12.                                 a[max] ^= a[i];
    13.                         }
    14.                 }
    15.         }

    Tiếng Việt:
    Sắp xếp chọn

  2. #12
    Ngày gia nhập
    08 2017
    Bài viết
    2,228

    Khi bỏ qua cảnh báo biên dịch, dòng 13 / 14:

    C Code:
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. //..
    4. char Menu(){
    5.     system("cls");
    6.     printf("\n\n\t==================== CHUONG TRINH QUAN LY SINH VIEN ====================\n\n\n");
    7.     printf("\t\t\t\t1. Them Moi Ho So\n\n");
    8.     printf("\t\t\t\t2. In Danh Sach\n\n");
    9.     printf("\t\t\t\t3. Sap Xep\n\n");
    10.     printf("\t\t\t\t4. Tim kiem\n\n");
    11.     printf("\t\t\t\t5. Thong Ke\n\n");
    12.     printf("\t\t\t\t6. Thoat\n\n");
    13.     //return /*warning*/
    14.     getchar();
    15. }
    16.  
    17. int main (){
    18.     char mn = 0;
    19.     do{
    20.         mn = Menu();
    21.         switch(mn){
    22.             case '1':  
    23.                 printf("NhapHoSo(sv, &n);"); //NhapHoSo(sv, &n);
    24.                 break;
    25.             case '2':  
    26.                 printf("InDanhSach(sv, n);"); //InDanhSach(sv, n);
    27.                 break;
    28.             case '3':  
    29.                 printf("SapXep(sv, n);"); //SapXep(sv, n);
    30.                 break;
    31.             case '4':  
    32.                 printf("TimKiem();"); //TimKiem();
    33.                 break;
    34.             case '5':  
    35.                 printf("ThongKe();"); //ThongKe();
    36.                 break;
    37.             case '6':  
    38.                 printf("exit(0);"); exit(0);
    39.                 break;
    40.             default:
    41.                 printf("menu is %c!\n", mn);
    42.                 printf("NHAP SAI! MOI NHAP LAI!");
    43.         }
    44.         printf("\nPress any key to continue . . .");
    45.         system("pause>nul");
    46.     }
    47.     while(mn != '6');
    48.     //...
    49.     return 0;
    50. }
    các chức năng (mới là khung tạm) có được gọi không !

  3. #13
    Ngày gia nhập
    08 2017
    Bài viết
    2,228

    Nguồn Ma Trận Xoắn Ốc
    http://diendan.congdongcviet.com/threads/t410288::ma-tran-xoan-oc-so-nguyen-to.cpp
    Visual C# Code:
    1. using System;
    2.  
    3. class Matrix{
    4.     static void Spiral(int[,] a, int ofs, int sz, ref int t){
    5.         int i = ofs, j = ofs;
    6.         while (j < sz) //Top: Left to Right
    7.             a[i, j++] = t++;
    8.         while (i < sz) //Right: Top to Bottom
    9.             a[i++, j] = t++;
    10.         while (j > ofs) //Bottom: Right to Left
    11.             a[i, j--] = t++;
    12.         while (i > ofs) //Left: Bottom to Top
    13.             a[i--, j] = t++;
    14.     }
    15.     static void Main(){
    16.         int m, i, j;
    17.        
    18.         Console.Write("Input Matrix M x M:\n");
    19.         Console.Write(" M: "); m = int.Parse(Console.ReadLine());
    20.  
    21.         int[,] a = new int[m, m];      
    22.  
    23.         int t = 1, siz = m * m, ofs = 0, max = m - 1;
    24.         while(t < siz){
    25.             Spiral(a, ofs, max, ref t);
    26.             ofs++; max--;
    27.         }
    28.         if (t == siz) a[ofs, ofs] = t;
    29.         //output
    30.         for(i = 0; i < m; i++){
    31.             for(j = 0; j < m; j++) Console.Write("{0,8} ", a[i, j]);
    32.             Console.WriteLine();
    33.         }
    34.     }  
    35. }

    Còn với Ma Trận Xoắn Ốc Số Nguyên Tố không cần tính lại có thể đọc file tính sẵn:
    Table of n, prime(n) for n = 1..10000
    Table of n, prime(n) for n = 1..100000
    ở đâu đó, ví dụ:
    https://oeis.org/A000040

  4. #14
    Ngày gia nhập
    08 2017
    Bài viết
    2,228

    .. thuật toán giải phương trình bậc hai với ba hệ số a, b, c cần tính đại lượng d( delta, Δ). Tùy thuộc đối tượng thực hiện mà việc tính d có thể được mô tả chi tiết khác nhau, chẳng hạn:
    * Với đối tượng biết tính công thức tính d thì chỉ cần mô tả một bước là: Tính d;
    * Với đối tượng không biết tính công thức tính d thì cần mô tả chi tiết hơn, chẳng hạn:
    Bước 1. Tính b^2;
    Bước 2. Tính 4ac;
    Bước 3. Tính giá trị d là kết quả của bước 1 trừ đi kết quả của bước 2.

    Dù đối tượng thực hiện không hề biết khài niệm d là gì nhưng thực hiện theo các bước nêu trên thì vẫn nhận được giá trị d cần tính.

    §4. Bài toán và thuật toán (Tin học 10, NXB: GD VN, tái bản lần thứ 11)

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