Diễn đàn Tin học
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.
Đăng Nhập

Quên mật khẩu

April 2024
MonTueWedThuFriSatSun
1234567
891011121314
15161718192021
22232425262728
2930     

Calendar Calendar

Thống Kê
Hiện có 1 người đang truy cập Diễn Đàn, gồm: 0 Thành viên, 0 Thành viên ẩn danh và 1 Khách viếng thăm

Không

[ View the whole list ]


Số người truy cập cùng lúc nhiều nhất là 48 người, vào ngày 2/8/2017, 00:32
Statistics
Diễn Đàn hiện có 74 thành viên
Chúng ta cùng chào mừng thành viên mới đăng ký: AlinaL92956302

Tổng số bài viết đã gửi vào diễn đàn là 107 in 53 subjects

Bài 7: Kiểu mảng(mảng 1 chiều)

Go down

Bài 7: Kiểu mảng(mảng 1 chiều) Empty Bài 7: Kiểu mảng(mảng 1 chiều)

Bài gửi by Admin 17/4/2014, 23:01

A. Lý thuyết

     - Khái niệm: Mảng(Array) là một kiểu dữ liệu có cấu trúc bao gồm các phần tử có cùng kiểu, có cùng tên chung. Các phần tử của mảng được truy xuất thông qua chỉ số của mảng
     - VD: 
  Mảng A có các phần tử:
 5  2  7  1  3 
     Khi đó: A[1] = 5, A[2] = 2, A[3] = 7, A[4] = 1, A[5] = 3
     - Công dụng: mảng thưởng dùng để lưu trữ một dãy các số cùng kiểu(số nguyên hoặc số thực), các kí tự, ... VD: Các điểm kiểm tra cảu học sinh, các kí tự được nhập từ bàn phím,...
     - Khai báo: 
             cú pháp:   (Tên mảng) : Array[(chỉ số đầu)..(chỉ số cuối)] Of (Kiểu phần tử)
             VD1:    a : Array[1..100] of Integer
                    + Mảng trên khai báo với tên mảng là a
                    + Số phần tử là 100(muốn tính số phần tử trong mảng: lấy giá trị cuối - giá trị đầu +1)
                    + Kiểu phần tử là số nguyên(Integer)
             VD2: a,b,c : Array[1..100] of Real
             VD3: chu : Array[1..20] of char
     - Chú ý:
         + Tên mảng đặt theo giống cách đặt tên của biến
         + Giá trị đầu phải nhỏ hơn giá trị cuối(nếu là kí tự thì theo thứ tự an-pha-B)
         + Ở giữa giá trị đầu và cuối phải có dấu hai chấm(..)
         + Khi truy xuất đến phần tử trong mảng cần có chỉ số của mảng và đặt chỉ số trong ngoặc vuông[]. VD A[1]; A[2]; ...
         + Mảng có thể chứa nhiều phần tử nhưng số phần tử luôn hữu hạn
         + Do số phần tử hữu hạn nên khi nhập phần tử trong mảng hoặc làm việc với mảng thường kết hợp với vòng lặp For(chỉ khi nào nhập số phần tử không biết trước thì có thể kết hợp với vòng lặp Repeat hoặc While)

B. Bài tập

Bài 1: Cho mảng a gồm có 5 phần tử thuộc kiểu số nguyên
Hãy in ra màn hình theo yêu cầu sau:
     - In phần tử thứ 2 của mảng
     - Tính tổng các phần tử thứ 2; 3 và 5
     - Tính tổng các phần tử trong mảng.
     - In ra các phần tử là số chẵn
     - Tính trung bình cộng các phần tử của mảng

Bài 2: Nhập từ bàn phím n phần tử của một mảng. In ra màn hình:
     - Phần tử lớn nhất của mảng
     - Các phần tử là số âm
     - Các số nguyên tô trong mảng
     Gợi ý:
        + Tìm phần tử lớn nhất:
                   Gán biến max=a[1]
                   So sánh max với các phần tử còn lại
                   Nếu max nhỏ hơn thì gán max bằng giá trị phần tử đó.

Bài 3: Nhập từ bàn phím m phần tử của một mảng, sắp xếp các phần tử của mảng theo thứ tự tăng dần và in ra màn hình.
     Gợi ý:
        + Dùng hai vòng lặp for: 
                   từ 1 đến m - 1
                   từ 2 đến m
(Nhằm mục đích so sánh hai phần tử liền nhau, tức a[1] va a[2], a[2] và a[3],...)
        + Cách sắp xếp 2 số theo thứ tự tăng dần
           VD: a[1] = 5 và a[2] = 3 cần sắp xếp lại là: a[1] = 3 và a[2] = 5 ta thực hiện như sau(dùng 1 biến trung gian x):  Nếu a[1]>a[2] thì gán: x:=a[1]; a[1]:=a[2]; a[2]:=x
        + Với cách sắp xếp trên khi kết hợp với 2 vòng lặp for sẽ sắp xếp được hết các phần tử trong mảng.
        + VD: mảng a: 5 3 2 -6 1
                 Sắp xếp: -6 1 2 3 5

Bài 4: Cho hai mảng số A và B. Hãy trộn hai mảng đó lại với nhau để được mảng C. Hãy sắp xếp mảng C theo thứ tự tăng dần.
     Gợi ý:
        + Nhập mảng A
        + Nhập mảng B
        + Nối mảng C(gán mảng C = mảng A, sau đó nối các phần tử của mảng B vào cuối mảng C)
        + Sắp xếp lại mảng C(làm giống bài tập 3)
     VD:             Mảng A: 5 2 4
                       Mảng B: -2 3
                       Mảng C: 5 2 4 -2 3
           Sắp xếp mảng C: -2 2 3 4 5

Bài 5: Viết chương trình nhập vào một dãy n số nguyên. Hãy in ra màn hình:
      - Các giá trị khác nhau của dãy số(những số trùng nhau, in ra 1 lần)
      - Các giá trị không trùng nhau trong dãy số(chỉ in giá trị không trùng nhau
     VD: dãy số:   5 2 6 -1 2 5
        Yêu cầu 1: 5 2 6 -1
        Yêu cầu 2: 6 -1
     Gợi ý:
        Yêu cầu 1: 
             + Nhập mảng a
             + In giá trị a[1]
             + so sánh các giá trị tiếp theo với các giá trị trước của dãy số. Nếu không trùng với giá trị nào ở trước thì in.
        Yêu cầu 2:     
             + đếm số phần tử xuất hiện trong mảng(từ phần tử đầu đến phần tử cuối)
             + Nếu phần tử chỉ xuất hiện 1 lần thì in ra màn hình

Bài 6: Tìm tất cả các số có 3 chữ số sao cho tổng các lập phương của các chữ số(số hàng trăm, hàng chục, hàng đơn vị) bằng chính nó.
     VD: số 153 vì 1^3+5^3+3^3 = 153
     Gợi ý:
        - Dùng vòng lặp For kết hợp với câu lệnh điều kiện If
        - Tìm các số hàng trăm, hàng chục, hàng đơn vị(dùng từ khóa mod và div)
    Kết quả: 153  370  371  407
Bài 7: Viết chương trình in ra màn hình các chữ cái theo quy cách sau:
        - Mỗi chữ cách nhau 2 ô trống
        - Các chữ hoa từ 'A' đến 'Z' và hiển thị trên 2 dòng
        - Dòng trống
        - Các chữ thường từ 'z' đến 'a' cũng hiển thị trên 2 dòng
     Gợi ý: Dùng vòng lặp For to do, For downto do và lệnh in hoa Upcase
     Kết quả:
           A  B  C ..... 
                        ........  X  Y  Z


           a  b  c ..... 
                        ........  x  y  z
Bài 8: Viết chương trình nhập vào hai số nguyên m,n. Tính:
     - Trung bình cộng các số nguyên từ m đến n
     - Trung bình cộng bình phương các số nguyên từ m đến n
Bài 9: Dãy số sau được gọi là dãy Fibonaci:
         a[1] = 1
         a[2] = 1
         a[3] = 2
         a[4] = 3
         a[5] = 5
         a[6] = 8
         ................
         a[n] = a[n-1]+a[n-2]
(từ số thứ 3 trở đi sẽ xác định bằng cách cộng 2 số liền trước nó. VD a[8]=a[6]+a[7])
Hãy in ra màn hình:
     - Đưa kết quả 20 số Fibonaci đó vào một mảng 20 phần tử
     - In mảng số đó
     - Tính trung bình 20 số Fibonaci đó.


Được sửa bởi Admin ngày 16/1/2015, 17:25; sửa lần 4.

Admin
Admin

Tổng số bài gửi : 59
Points : 171
Reputation : 3
Join date : 06/10/2013
Age : 41
Đến từ : Cà Mau

https://phamhoe.forumvi.com

Về Đầu Trang Go down

Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết