1. Trang chủ
  2. » Công Nghệ Thông Tin

Chuong 8 pointer pascal

10 112 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 125,46 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ebook photoshop chương 8×cách tải chương trình turbo pascal lớp 8×chương trình turbo pascal lớp 8×viet chuong trinh turbo pascal lop 8×tải chương trình turbo pascal lớp 8ebook photoshop chương 8×cách tải chương trình turbo pascal lớp 8×chương trình turbo pascal lớp 8×viet chuong trinh turbo pascal lop 8×tải chương trình turbo pascal lớp 8

Trang 1

Chương 8:

CẤP PHÁT ĐỘNG BỘ NHỚ

Giáo viên: Tạ Thúc Nhu Khoa CNTT trường ĐH Lạc Hồng

NGÔN NGỮ C

Trang 2

I- Biến Tĩnh và Biến Động:

I- Biến Tĩnh và Biến Động:

1 Biến tĩnh:

Là các biến được khai báo trước bằng cú pháp khai báo biến vì chúng

được cấp phát vùng nhớ trước khi thực hiện các lệnh khác trong thân

chương trình và tồn tại trong suốt quá trình thực hiện

2 Biến động:

Là biến không tên , không khai báo trước như các biến tĩnh Biến động

được tạo (cấp phát vùng nhớ) hay xóa khi cần thiết bằng các hàm hoặc toán tử

Việc truy nhập dữ liệu của các biến động được tiến hành nhờ các biến

con trỏ (Pointer Variable)

Các biến con trỏ được định nghiã như các biến tĩnh (Có tên, khai báo

trong phần khai báo biến) và được dùng để chứa địa chỉ của các biến

động.

Trang 3

II- Tạo Biến Động

II- Tạo Biến Động

1 Bằng các hàm trong <ALLOC.H> hay <STDLIB.H>

void * malloc ( S ); Cấp phát vùng nhớ có kích thước S bytes và Trả về

địa chỉ của vùng nhớ đó Nếu không đủ bộ nhớ hàm trả về giá trị NULL.

void * calloc ( N, S ); Cấp phát mảng động có N phần tử, mỗi phần tử có

kích thước S bytes và Trả về địa chỉ của vùng nhớ đó.

void * realloc(void *ptr, S): Cấp lại vùng nhớ với kích thước S bytes cho biến con trỏ ptr, đồng thời chép dữ liệu vào vùng nhớ mới.

2 Bằng toán tử new : BiếnConTrỏ = new <KiểuDL>[Số_phần_tử];

Ví dụ: int *p1, *p2;

- Cấp động 1 biến kiểu int : p1 = (int *) malloc( sizeof(int) );

p1 = new int;

- Cấp động 1 mảng 10 phần tử: p2 = (int*) calloc(10, sizeof(int) );

Trang 4

III- Xóa Biến Động

III- Xóa Biến Động

Giải phóng vùng nhớ động đã cấp phát cho biến con trỏ:

Ví dụ:

delete p1;

Trang 5

IV- Cấp Phát Động Mảng 1 Chiều

IV- Cấp Phát Động Mảng 1 Chiều

KiểuPT *Biếncontrỏ;

vào biến con trỏ

như dùng tên mảng tĩnh.

Trang 6

Ví dụ: Viết chương trình nhập N số thực (N <= 100)

In lại các số thực đó ngược với thứ tự đã nhập.

Ví dụ: Viết chương trình nhập N số thực (N <= 100)

In lại các số thực đó ngược với thứ tự đã nhập.

#include <stdio.h>

void main()

{ int N;

float A [100];

printf("Cho biet so phan tu can nhap:"); scanf("%d", &N);

printf(“Nhap gia tri cho cac phan tu : \n “);

for( int i = 0; i < N ; i++) {

printf("Nhap gia tri phan tu %d : ", i );

scanf("%f", & A [ i ] );

} printf("\nCac so thuc da nhap: ");

for( i = N-1; i >= 0; i ) printf(" %f ", A [i] );

}

Trang 7

Ví dụ: Viết chương trình nhập N số thực (N <= 100)

In lại các số thực đó ngược với thứ tự đã nhập.

Ví dụ: Viết chương trình nhập N số thực (N <= 100)

In lại các số thực đó ngược với thứ tự đã nhập.

#include <stdio.h>

#include <Alloc.h>

void main()

{ int N;

float * A ; printf("Cho biet so phan tu can nhap:"); scanf("%d", &N);

A = (float *) calloc(N, sizeof(float));

printf(“Nhap gia tri cho cac phan tu : \n “);

for( int i = 0; i < N ; i++) { printf("Nhap gia tri phan tu %d : ", i );

scanf("%f", & A [ i ] );

} printf("\nCac so thuc da nhap: ");

for( i = N-1; i >= 0; i ) printf(" %f ", A [ i ] );

Trang 8

IV- Cấp Phát Động Mảng 2 Chiều

IV- Cấp Phát Động Mảng 2 Chiều

KiểuPT *Biếncontrỏ;

chỉ vào biến con trỏ

Biếncontrỏ = ( KiểuPT *) calloc ( M*N, sizeof( KiểuPT ) );

Trang 9

Ví dụ: Nhập và In mảng tĩnh 2 chiều

Ví dụ: Nhập và In mảng tĩnh 2 chiều

for ( d = 0; d < SD; d++) for (c = 0; c < SC; c++) {

printf(“PT[%d][%d]=“, c, d);

scanf(“%f”, &B[ d ][ c ] );

} printf("Bang so da nhap:\n");

for ( d = 0; d < SD; d++) {

for (c = 0; c < SC; c++) printf(“ %f “, B[d] [c]);

printf("\n");

} }

#include <stdio.h>

#include <conio.h>

void main()

{

float B[100][100];

int SD, SC;

int d, c;

printf("\nNhap So dong va so cot :");

scanf("%d %d", &SD, &SC);

printf("Nhap gia tri cac phan tu:\n");

Trang 10

Ví dụ: Nhập và In mảng động 2 chiều

Ví dụ: Nhập và In mảng động 2 chiều

for ( d = 0; d < SD; d++) for (c = 0; c < SC; c++) {

printf("PT[%d][%d]=", c, d);

canf("%f", B + d*SC+ c );

} printf("Bang so da nhap:\n");

for ( d = 0; d < SD; d++) {

for (c = 0; c < SC; c++)

printf(" %f ", *(B+d*SC+c ));

printf("\n");

}

delete B;

include <stdio.h>

#include <conio.h>

#include <Alloc.h>

void main()

{ float *B;

int SD, SC;

int d, c;

printf("\nNhap So dong va so cot :");

scanf("%d %d", &SD, &SC);

printf("Nhap gia tri cac phan tu:\n");

B= (float*)calloc(SD*SC, sizeof(float));

Ngày đăng: 04/11/2018, 10:33

TỪ KHÓA LIÊN QUAN

w