Bài tập 1 Kiểu dữ liệu



tải về 14.22 Kb.
Chuyển đổi dữ liệu23.07.2016
Kích14.22 Kb.
#2559
    Điều hướng trang này:
  • Array2
Bài tập 1

Kiểu dữ liệu
Bài 1: Trên một ngôn ngữ lập trình mang tên MC, một khối lưu trữ 8 bit sẽ được dùng để biểu diễn một số nguyên có dấu theo mô tả như sau: Bit tận cùng bên phải sẽ được dùng làm bit dấu. Nếu bit dấu là 1, số biểu diễn sẽ là số dương và ngược lại. Nếu số biểu diễn là số dương, các bit biểu diễn giá trị của con số sẽ được tính từ trái qua phải và ngược lại (ví dụ: 00000011 là số 1, và 10000000 là số -1). Tính giá trị của các số nguyên được biểu diễn bởi các chuỗi nhị phân sau:

10101010

01010101


11110000

00001111


00110011

11001100







Bài 2: Trên ngôn ngữ MC, dựa theo các số liệu thống kê, người thiết kế ngôn ngữ đã quyết định lưu trữ một đối tượng dữ liệu thuộc kiểu dãy một chiều (vector) như sau: Nếu số phần tử của dãy nhỏ hơn 10, các phần tử của dãy sẽ được lưu trữ theo chỉ số tăng dần, ngược lại sẽ được lưu trữ theo chỉ số giảm dần (do số liệu thống kê cho thấy khi số phần tử của một dãy lớn hơn 10, chương trình thường có khuynh hướng truy xuất các phần tử cuối của dãy nhiều hơn các phần tử đầu tiên)

a. Vẽ khối lưu trữ 5 phần tử đầu của các dãy sau (các câu vẽ phải bao gồm đủ các thành phần)



a1: Array [-2..4] of real; a2: Array [-6..6] of integer;
b. Tính địa chỉ truy xuất phần tử A[I] của dãy sau:

A: Array[LB..UB] of integer.
Bài 3: Vẽ khối lưu trữ với năm phần tử đầu tiên và tính địa chỉ truy xuất phần tử A[I,J] của các dãy sau trong các trường hợp sử dụng phương pháp đánh thứ tự i) column- major; ii) row-major

a. A: Array [-2..1,3..5] of real

b. A: Array [-1..1,-2..0] of integer;

Bài 4: Cho khai báo một đối tượng dãy hai chiều như sau
A: Array1 [LB1..UB1] of Array2 [LB2..UB2] of integer
Array1 Array2 đều là cú pháp mô tả dãy một chiều, tuy nhiên Array1 đánh số các phần tử theo chỉ số tăng dần còn Array2 giảm dần.

Tính công thức tính địa chỉ của phần tử A[I,J].



Bài 5: Tính công thức tính địa chỉ tổng quát của một dãy ba chiều trong các trường hợp i) column- major; ii) row-major

Bài 6: Tính công thức tính địa chỉ tổng quát của một dãy n chiều trong các trường hợp i) column- major; ii) row-major

Bài 7: Generate the result tables for the corresponding programs

a)


int *p, *q, n, m;

n = 1; //1

m=2; //2

p = &m; //3

q = &n; //4

n--; //5


m++; //6

p = q; //7

q = &m; //8

b)


int *p, *q, n, m;

p = new int; //1

*p = 1; //2

q = p; //3

p = &m; //4

m = *q; //5

n = *p; //6

delete q; //7

m = *q+*p; //8


Bài 7:


  1. Giả sử kích thước của một đối tượng kiểu integer là 2, real là 4, boolean là 1 (theo đơn vị byte). Kiểu tập hợp lưu trữ dưới dạng chuỗi bit. Cho biết kích thước phần mô tả bằng 0, hãy tính (và giải thích) kích thước của một đối tượng dữ liệu có kiểu được định nghĩa như sau:

Record


A: set of 0..15;

B: boolean;

Case b of

True: (c:interger);

False: (e :real; f:integer; g: boolean);

End


  1. Vẽ khối lưu trữ với năm phần tử đầu tiên và tính địa chỉ truy xuất phần tử A[I, J, K] của dãy sau (cho biết công thức tổng quát và sau đó thay số cụ thể). Giả sử dãy được lưu trữ dùng phương pháp đánh thứ tự theo row-major.

A: array [2..4, -1..2, 4..6] of real;


tải về 14.22 Kb.

Chia sẻ với bạn bè của bạn:




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương