Thứ Hai, 15 tháng 4, 2013

Thông tin nhóm


Nhóm gồm có 4 thành viên:

MSSV Họ và tên Chức vụ
1212112 Ô Tuấn Hải Thành viên
1212116 Hà Minh Hậu Thành viên
1212118 Nguyễn Văn Hậu Nhóm trưởng
1212124 Lê Thị Mỹ Hiếu Thành viên

Thứ Năm, 11 tháng 4, 2013

Qui trình tổ chức thi thuyết trình tiếng anh


CÁC BƯỚC TỔ CHỨC THI
“Thuyết trình tiếng anh”

I.       Lên kế hoạch ra thông báo
Trình bày theo mẫu sau: download tại đây.
1.      Xác định mục tiêu của cuộc thi là gì ?
2.      Xác định thời gian địa điểm để tổ chức
3.      Xác đinh đối tượng tham gia là ai ?
4.      Xác định các nội dung như:
a.       Cách thức tham gia như thế nào ?
b.      Hình thức tham gia ra sao ?
c.       Cách thức chấm điểm như thế nào ?
d.      Cơ cấu giải thưởng ra sao ?
5.      Thành phần ban tổ chức gồm những ai ?
II.    Ra thông báo
Upload thông báo lên trang web của ban tổ chức.
III. Tạo form đăng ký online
Cần xác định các thông tin cần biết từ thí sinh để tạo form đầy đủ các mục. Ở đây mình cần các thông tin như:
1.      Tên, MSSV, trường, lớp.
2.      Điện thoại liên lạc
3.      Email
4.      Lý do tham gia cuộc thi
5.      Tham gia cuộc thi với đề tài gì?
Hướng dẫn làm tại đây: http://youtu.be/FpcXSsulpbQ1

Thông báo cuộc thi thuyết trình tiếng anh


  
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN          CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
                  TP HỒ CHÍ MINH                                                       Độc lập – Tự do – Hạnh phúc
        Đoàn Khoa Công Nghệ Thông tin
                     Lớp 12CTT1


THÔNG BÁO
(Về cuộc thi thuyết trình tiếng anh)
I-Mục tiêu
·         Tạo điều kiện cho các bạn sinh viên có cơ hội trau dồi tiếng anh
·         Tạo môi trương giao lưu, học hỏi giữa các sinh viên
·         Giúp sinh viên có thêm kiến thức về các vùng miền khác nhau
II-Thời gian, địa điểm
1.       Thời gian
·         Ra thông báo ngày 1/4/2013
·         Bắt đầu nhận đang ký từ ngày 1/4/2013 đến 20 giờ ngày 15/4/2013
·         Gửi phản hồi đến thí sinh ngày 18/4/2013
·         Bắt đầu thuyết trình ngày 21/4 có thể kéo dài thêm tùy theo số lượng
·         Thông báo kết quả, điểm thi ngày 23/4/2013
2.       Địa điểm
·         Phòng 7.7 nhà điều hành ĐH KHTN.
III-Đối tượng tham gia
Tất cả sinh viên trong khối đại học quốc gia
IV-Nội dung
1.Hình thức tham gia
Đăng ký online tại đây.
2. Hình thức thi
Thi theo cá nhân, mỗi bạn sẽ lên trình bày trước ban giám khảo phần thuyết trình của mình đã đăng ký trước đó  trong thời gian 10 phút.
Ban giám khảo sẽ chọn ra 5 bạn có điểm cao nhất để trao giải.
3. Cách thức chấm điểm
·         Phần trình bày: 60% (tự giới thiệu 5%, trình bày nội dung 55%)
·         Phần trả lời câu hỏi: 30%
·         Những nội dung khác: 10%
4. Cơ cấu giải thưởng ( tùy theo cấp độ và quy mô tổ chức)
·         1 giải nhất: 200 000 đồng/giải
·         1 giải nhì: 150 000 đồng/giải
·         1 giải ba: 100 000 đồng/giải
·         2 giải khuyến khích: 50 000 đồng/giải
Các giải thưởng được trao kèm theo giấy khen và quà lưu niệm
V-Thành phần ban giám khảo
1.       Cô Nguyễn Thị A (Trưởng bộ môn ngoại ngữ của trường)
2.       Thầy  Lê Văn B (Phó bộ môn ngoại ngữ của trường)
3.       Thầy Trần Công C (Phó bộ môn ngoại ngữ của trường)


Xác nhận của Ban tổ chức

Thứ Sáu, 18 tháng 1, 2013

BÀI TẬP CNTT

Tất cả các bài tập từ đầu năm tới giờ môn công nghệ thông tin được nén trong file theo link này:

 http://www.mediafire.com/?22we76088hly86e

Thứ Bảy, 24 tháng 11, 2012

Tinh Fx

Bài 3: Tính F(x)
Cho hàm F(x), x ≥ 0 được định nghĩa như sau:
F(x) = x, nếu x ≤ 9
F(x) = F(S(x)), nếu x > 9
Trong đó S(x): tổng các chữ số của x.
Yêu cầu: Hãy viết chương trình tính F(n!), với 1 <= n <= 500.

Bài giải
I. Phân tích yêu cầu
   - Input: n
   - Output: F(n!)
II. Đi tìm lời giải
   Theo đề bài ta có: x = n!. Để tính được F(x), trước hết phải tính được x, tức là tính được n!.
Sau đó xét nếu x > 9 thì cho x = tổng các chữ số của x, cho đến khi x <= 9 thì xuất ra kết quả.
   Nhưng vấn đề mắc phải ở đây là làm sao tính được n! với 1 <= n <= 500, vì 500! có tới 1135 chữ số, trong khi số lớn nhất của kiểu double cũng chỉ đạt tới 309 con số thôi. Vậy chúng ta không thể dùng các kiểu giá trị để lưu kết quả giai thừa được. Thế thì dùng cái gì bây giờ? Câu trả lời đó chính là mảng. Mảng có thể dài như mình mong muốn, khi lưu chúng ta sẽ lưu mỗi chữ số cho một phần tử của mảng. 
   Ví dụ dùng mảng a tính 5!, thì ta sẽ làm như sau, ban đầu cho phần tử đầu tiên của mảng là 1.
Tính 1!: a[1] = 1
Tính 2!: Lấy 1 * 2, so sánh với 9, thấy nhỏ hơn, vậy a[1] = 2
Tính 3!: Lấy 2 * 3, so sánh với 9, thấy nhỏ hơn vậy a[1] = 6
Tính 4!: Lấy 6 * 4, so sanh với 9, thấy lớn hơn vậy a[1] = 4(24 mod 10), a[2] = 2(24 div 10)
Tính 5!: Tương tự, ta có a[1] = 0, a[2] = 2, a[3] = 1
Sau khi tính xong, ta in mảng a theo chiều ngược sẽ được kết quả. Nhưng ở đây ta cần tổng các chữ số của giai thừa nên chạy chiều nào cũng được.
   Từ đó ta rút ra qui tắc sau:1. Khởi đầu mảng là 1, i = 1, j = 1(chỉ số mảng), rem = 0(phần nhớ)
2. Chạy i từ 2 tới n:
    - Lấy các phần tử của mảng a nhân với i
      + Gọi biến kq = a[j] * i + rem(phần dư)
      + Nếu kq <= 9 , thì a[j] = kq và rem = 0(vì nhỏ hơn 9, dĩ nhiên không còn nhớ nữa)
      + Nếu kq > 9, thì a[j] = kq mod 10 và rem = kq div 10
   - Sau khi nhân hết các phần tử của mảng rồi, thì ta xét rem:
     + Nếu rem > 0, thì mỗi phần tử tiếp theo của mảng sẽ nhận một chữ số của rem(phần nhớ)


3. Cuối cùng là chạy từ đầu tới cuối cộng các phần tử mảng lại, ta sẽ có được tổng các chữ số của giai thừa.

III. Source
1. Khai báo
  2. Hàm Main
  3. Hàm nhập n
  4. Hàm tính giai thừa
  4. Hàm tính tổng số giai thừa
  5. Tổng Hợp Code
#include <stdio.h>
#include <vector>    // khai bao thu vien vector
using namespace std; // su dung thu vien std trong c++
// prototype
void nhapN(int &n);  // ham nhap n
void tinhGiaiThua(int n, vector<int> &Fac);     // ham tinh n!, luu vao mang vector
int tongChuSo(vector<int> Fac);   // tong cac chu so cua n!
void main()
{
       int n;
       vector<int> Fac;     // khai bao mang vector co ten la Fac(Factorial: giai thua)
       nhapN(n);
       tinhGiaiThua(n, Fac);
       printf("\nF(%d!) = %d\n\n", n, tongChuSo(Fac));
}
// definition
void nhapN(int &n)
{
       do
       {
              printf("\nInput n: ");
              scanf("%d", &n);
       }
       while (n < 1 || n > 500);
}
void tinhGiaiThua(int n, vector<int> &Fac)
{
       if (n < 2)    // voi n = 0, n = 1, ta cho n! = 1 nen
              Fac.push_back(1);// chen gia tri 1 vao vector, luc nay vector co do dai la 1
       else // n >= 2
       {
              Fac.push_back(1);// ban dau chen 1 vao mang, coi nhu day la 1!
              for (int count = 2; count <= n; count++) // bien count la bac giai thua
              {
                     int total = 0;// tong(so truoc * bac giai thua) va (phan du)
                     int rem = 0;  // remainder: phan du
                     int i = 0;           // bien chay
                     while (i < Fac.size())
                     {
                           // calculate total
                           total = Fac[i] * count + rem;
                          
                           if (total <= 9)// neu tong < 9:thi lưu vào mảng
                           {
                                  Fac[i] = total;
                                  rem = 0;
                                  i++;
                           }
                           else //neu tong > 9: lấy tổng chia du cho 10 roi luu vào mảng
                           {      // con phan (chia nguyen cho 10) se la phan du.
                                  // Vd: 12 --> phan tu thu i se la 2, phan du se la 1.
                                  Fac[i] = total % 10;
                                  rem = total / 10;
                                  i++;
                           }
                     }
                     while (rem > 0) // sau khi nhan xong het mang, neu van con phan du
                     { //tiep tuc cho moi phan tu nhan mot chu so cho den het thi thoi.
                           Fac.push_back(rem % 10);
                           rem = rem / 10;
                     }
              }      // end for
       }// end else
}// end void
int tongChuSo(vector<int> Fac)
{
       int sum = 0;
       // cho bien i chay tu dau den cuoi mang, cong don vao bien sum
       for (int i = 0; i < Fac.size(); i++)
              sum = sum + Fac[i];
      
       // neu bien sum > 9 thi sum = tong cac chu so cua sum
       while (sum > 9)
       {
              int temSum = sum; // su dung bien tam de luu giai tri sum hien tai
              sum = 0;      // cho sum tro ve 0, de chuan bi nhan gia tri moi
              while (temSum > 0)
              {
                     sum = sum + temSum % 10;   // sum = sum + hang don vi cua temSum
                     temSum = temSum / 10;      // giam temSum di mot so hang don vi
              }
       }
       return sum;
}
Chúc các bạn thành công!!!

Tinh Aver


Bài 2: Xem công thức tính sau đây (đề thi tuyển sinh cao học ngành KHMT, năm 2011):


Trong đó Max, Min lần lượt là giá trị lớn nhất, nhỏ nhất của n số thực (được nhập vào từ thiết bị nhập chuẩn) a0, a1, …, an-1.
Chỉ dùng duy nhất 1 vòng lặp (for hoặc while), đề xuất cách thức để nhập n số thực như trên và tính giá trị của biểu thức Aver, xuất kết quả tính ra thiết bị xuất chuẩn. Viết chương trình để minh họa đề xuất đó.
Lưu ý: Phần này sinh viên chưa học về mảng, như vậy vấn đề chính của bài toán này là không thể dùng mảng để lưu giá trị của n số thực nói trên. Như vậy phải đề xuất một giải pháp “thông minh” để nhập và tính toán mà không đưa trước các số thực này vào mảng.
Bài giải

I. Phân tích yêu cầu
   - Input: n số thực
   - Output: Aver


II. Đi tìm lời giải
   - Do yêu cầu đề bài là chỉ dùng một vòng lặp nên ta không thể tính trực tiếp bằng công thức mà đề bài đã cho được. Vì vậy chúng ta phải biến đổi công thức một xíu để thuận tiện tính toán hơn. Chúng ta biến đổi như sau:


    Bây giờ chúng ta có thể thấy được rằng với công thức này, ta sẽ tính tổng a^2 và tổng a trước, sau khi chúng ta tìm được max, min rồi thì chúng ta sẽ ráp vào công thức mà tính.

    Cụ thể ta sẽ làm các bước sau:
1. Dùng 1 vòng lặp nhập n số thực a:
    - Tính tổng các bình phương của a: sumSqrA
    - Tính tổng a: sumA
    - Tìm max: max
    - Tìm min: min
2. Sau đó chúng ta chỉ việc ráp theo công thức là đáp án hiện ra ngay.

III. Source
  1. Phần khai báo


  
  2. Hàm Main


  3. Hàm InputN

  4. Hàm InputData
  5. Hàm calculateAver

   6. Tổng Hợp Code
// Library Declaration
#include <stdio.h>
#define Max 1000000000

// Prototype
void nhapA(long &a);
long tichThuaSoNgto(long a, int &max);  // ham tinh tich cac thua so nguyen to va so mu cao nhat
int timN(long M, int max);

// Main body
void main()
{
        // variable declaration
        long a;
        int max = 0;    // bien luu so mu cao nhat
        int n;                  // n can tim

        // nhap vao a
        nhapA(a);

        // tinh tich thua so cac nguyen to luu vao bien M
        long M = tichThuaSoNgto(a, max);

        // tim n roi luu vao bien n
        n = timN(M, max);

        // xuat ra man hinh thong bao
        printf("\n%d la so nho nhat thoa: %d^%d chia het cho %ld\n\n", n, n, n, a);
}

// Function Definition
void nhapA(long &a)
{
        do
        {
                printf("\nNhap  0 < a <= 1000000000: ");
                scanf("%ld", &a);
        }
        while (a < 1 || a > Max);
}

long tichThuaSoNgto(long a, int &max)
{
        long p = 1; // tich cac thua so nguyen so cua a
        int i = 2;

        while (i <= a)
        {
                if (a % i == 0) // neu a chia het cho i, thi i la thua so nguyen to cua a.
                {
                        p = p * i;      // vi the ta lay p nhan voi i, roi luu lai cho bien p

                        int dem = 0;    // bien luu so mu cua thua so nguyen to i
                        while (a % i == 0)
                        {
                                dem++;
                                a = a / i;
                        }
                       
                        if (dem > max)  // neu so mu > max hien tai thi max = so mu do
                                max = dem;     
                }
                i++;
        }

        return p;
}

int timN(long M, int max)
{
        // chay i tu 1 toi khi ma bieu thuc: i * M >= max thoa.
        int i = 1;
        while (i * M < max)
                i++;

        return (i * M);
}

Cảm ơn các bạn đã giành thời gian đọc bài viết này. Mọi góp ý xin vui lòng để lai comment hoặc liên hệ trực tiếp mình qua: nguyenvanhauesmn@gmail.com
Rất mong nhận được sự đóng góp của các bạn.



Chúc các bạn vui vẻ!!!
Lên đầu trang
Xuống cuối trang