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

Bài giảng Tin học đại cương Phần 2: Bài 7 - Nguyễn Thành Kiên

20 62 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 617,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

Đến với Bài giảng Tin học đại cương Phần 2: Bài 7 - Cấu trúc do Nguyễn Thành Kiên biên soạn các bạn sẽ được tìm hiểu về khái niệm cấu trúc; khai báo và sử dụng cấu trúc; xử lí dữ liệu cấu trúc; mảng cấu trúc. Hy vọng tài liệu là nguồn thông tin hữu ích cho quá trình học tập và nghiên cứu của các bạn.

Trang 1

TIN H C Đ I C Ọ Ạ ƯƠ NG

       Nguy n Thành Kiên ễ

      B  môn K  thu t máy tính ộ ỹ ậ          Khoa Công ngh  thông tin –  HBK HN ệ Đ

Trang 2

Bài 7. C U TRÚC Ấ

 7.3. X  lí d  li u c u trúc ử ữ ệ ấ

Trang 3

 7.3. X  lí d  li u c u trúc ử ữ ệ ấ

Trang 4

7.1. Khái ni m c u trúc ệ ấ

    Ki u c u trúc (Structure) là ki u d  li u bao  ể ấ ể ữ ệ

g m nhi u thành ph n, m i thành ph n có th   ồ ề ầ ỗ ầ ể

có ki u khác nhau, m i thành ph n đ ể ỗ ầ ượ c g i là  ọ

m t tr ộ ườ ng (field).

Trang 5

7.2. Khai báo và s  d ng c u trúc ử ụ ấ

 Khai báo ki u d  li u c u trúc  ể ữ ệ ấ

struct tên_c u_trúc ấ

{

  <khai báo các tr ườ ng d  li u>; ữ ệ }; struct sinh_vien

{     char ma_so_sv[10];

    char ho_va_ten[30]; 

    float diem_TinDC; 

struct point_3D {

      float x;

      float y;

      float z;

}

Trang 6

7.2. Khai báo và s  d ng c u trúc ử ụ ấ

 Khai báo bi n c u trúc ế ấ

C1: struct  tên_c u_trúc  tên_bi n;  ấ ế

struct sinh_vien a, b, c;

C2:   k t h p đ ng th i v a khai báo ki u d  li u  ế ợ ồ ờ ừ ể ữ ệ

c u trúc v a khai báo bi n: ấ ừ ế

struct [tên_c u_trúc] ấ {

<khai báo các tr ườ ng>;

} tên_bi n_c u_trúc; ế ấ  

Trang 7

struct diem_thi

{

float diem_Toan;

float diem_Ly;

float diem_Hoa;

}

struct thi_sinh

{

char SBD[10];

char ho_va_ten[30];

struct diem_thi ket_qua;

} thi_sinh_1, thi_sinh_2;

các c u trúc có th  l ng nhau  ấ ể ồ

m c đ  l ng là không h n ch    ứ ộ ồ ạ ế

Trang 8

7.2. Khai báo và s  d ng c u trúc ử ụ ấ

 Ngôn ng  C còn cho phép khai báo tr c ti p  ữ ự ế

tr ườ ng d  li u là c u trúc bên trong c u trúc  ữ ệ ấ ấ

ch a nó  ứ

struct thi_sinh {

char SBD[10];

char ho_va_ten[30];

struct diem_thi {

       float diem_Toan;

float diem_Ly;

float diem_Hoa;

}ket_qua;

} thi_sinh_1, thi_sinh_2;

Trang 9

7.2. Khai báo và s  d ng c u trúc ử ụ ấ

 Đ nh nghĩa ki u DL c u trúc v i typedef ị ể ấ ớ

 Khai báo bi n c u trúc ph i b t đ u b ng  ế ấ ả ắ ầ ằ

t  khóa struct, sau đó đ n tên c u trúc r i  ừ ế ấ ồ

m i đ n tên bi n => quên t  khóa struct ớ ế ế ừ

 => đ t tên m i cho ki u d  li u c u trúc  ặ ớ ể ữ ệ ấ

b ng câu l nh  ằ ệ typedef 

typedef  struct  tên_cũ  tên_m i;  ớ

typedef struct [tên_cũ]

{

<khai báo các tr ườ ng>;

}danh_sách_các_tên_m i;  ớ

L u ý ư : Đ ượ c phép đ t tên_m i trùng v i tên_cũ.  ặ ớ ớ

Trang 10

7.2. Khai báo và s  d ng c u trúc ử ụ ấ

 Ví d : ụ

   

typedef struct point_2D {

float x, y;

}point_2D, diem_2_chieu, ten_bat_ki; point_2D X;

diem_2_chieu Y;

ten_bat_ki Z;

struct point_3D

{

float x, y, z;

} P;

struct point_3D M;

typedef struct point_3D point_3D;

point_3D N;

Trang 11

 7.3. X  lí d  li u c u trúc ử ữ ệ ấ

Trang 12

7.3. X  lí d  li u c u trúc ử ữ ệ ấ

 Truy nh p các tr ậ ườ ng  DL c a c u trúc ủ ấ  

tên_bi n_c u_trúc.tên_tr ế ấ ườ ng  

 ta có th  “đ i x ” ể ố ử  v i ớ  

tên_bi n_c u_trúc.tên_tr ế ấ ườ ng  gi ng  ố

nh  m t bi n thông th ư ộ ế ườ ng có ki u d  li u  ể ữ ệ

là ki u d  li u c a tên_tr ể ữ ệ ủ ườ ng  

Trang 13

Ví dụ cách sử dụng

biến cấu trúc

#include <stdio.h>

#include <conio.h>

void main()

{

struct point_2D

{

char ten_diem;

struct {

float x, y;

} toa_do;

} p;

float temp_float;

char temp_char;

printf( “\n Hay nhap thong tin ve mot diem”);

printf( “\n Ten cua diem: “); fflush(stdin); scanf(“%c”,&temp_char);

p.ten_diem = temp_char;

printf( “\n nhap vao hoanh do cua diem: “); scanf(“%f”,&temp_float);

p.toa_do.x = temp_float;

// giả sử điểm đang x ét nằm trên đường thẳng y = 3x + 2;

p.toa_do.y = 3*p.toa_do.x + 2;

printf( “\n %c = (%5.2f,%5.2f)”,p.ten_diem, p.toa_do.x, p.toa_do.y);

getch();

}

Trang 14

 Có th  th c hi n phép gán bi n c u trúc ể ự ệ ế ấ

struct s {

char ho_ten[20];

float diem;

}a, b, c;

float temp_f;

printf("\na.ho_ten: ");fflush(stdin); gets(a.ho_ten);

printf("\na.diem = ");scanf("%f",&temp_f);

a.diem = temp_f;

strcpy(c.ho_ten, a.ho_ten);

c.diem = a.diem;

Trang 15

 Con tr  c u trúc ỏ ấ  

 Con tr  c u trúc ỏ ấ  ch a đ a ch  c a m t c u  ứ ị ỉ ủ ộ ấ trúc.

 Cú pháp khai báo 

struct <tên c u trúc> * <tên bi n con tr >; ấ ế ỏ  

 Truy nh p vào tr ậ ườ ng  DL c a c u trúc t   ủ ấ ừ

bi n con tr  c u trúc ế ỏ ấ :

(*<tên bi n con tr  c u trúc>).<tên tr ế ỏ ấ ườ ng  DL>

<tên bi n con tr  c u trúc>­><tên tr ế ỏ ấ ườ ng  DL> 

Trang 16

 7.1. Khái ni m c u trúc ệ ấ

 7.3. X  lí d  li u c u trúc ử ữ ệ ấ

Trang 17

struct <tên c u trúc> <tên m ng c u trúc> [s  ph n t ]; ấ ả ấ ố ầ ử  

 Ví d : ụ struct sinh_vien {

char ho_ten[20];

float diem_thi;

};

struct sinh_vien lop_CNTT[50];

Trang 18

Ví dụ về cách sử dụng

mảng cấu trúc

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

{

struct sinh_vien

{

char ma_sv[10];

char ho_ten[20];

float diem_thi;

};

struct sinh_vien sv[3];

int i;

clrscr();

for(i=0;i<3;i++)

{

char str[20]; float diem;

printf(“\n Nhap thong tin cho sinh vien thu %d”,i+1);

printf(“\n Ma so sinh vien:”); fflush(stdin); gets(str); strcpy(sv[i].ma_sv,str);

printf(“\n Ho va ten: “); fflush(stdin); gets(str); strcp(sv[i].ho_ten,str);

printf(“\n Diem thi: “); scanf(“%f”,&diem); sv[i].diem_thi = diem;

}

printf(“\n Thong tin ve cac sinh vien”);

for(i=0;i<3;i++)

{

printf(“\n Sinh vien thu %d ”,i+1);

printf(“%-10s %-20s %-3.1f”,sv[i].ma_sv, sv[i].ho_ten, sv[i].diem_thi);

}

getch();

Trang 19

 Vi t 1 chế ương trình th c hi n nh ng công vi c sau:ự ệ ữ ệ

Yêu c u ngầ ười dùng nh p vào m t s  nguyên dậ ộ ố ương n v i 5 ớ ≤ 

n ≤ 20 (có ki m tra tính h p l ).ể ợ ệ

 Yêu c u ngầ ười dùng nh p vào thông tin c a n sinh viên g m:ậ ủ ồ

 H  và tên: có ki u d  li u là xâu kí t  g m không quá 30 kí t ọ ể ữ ệ ự ồ ự

 L p: xâu kí t  có đ  dài không quá 5 kí t ớ ự ộ ự

 Đi m thi Tin đ i c ể ạ ươ ng: là m t s  nguyên có giá tr  t  0 đ n 10 ộ ố ị ừ ế

 Đi m thi Toán ể

 Đ a ra màn hình danh sách các sinh viên cùng thông tin c a h  ư ủ ọ

mà người dùng v a nh p vàoừ ậ

 Hi n th  danh sách các sinh viên thi qua môn Tin.ể ị

 Hi n th  danh sách sinh viên để ị ược s p x p theo chi u gi m ắ ế ề ả

d n c a đi m thi Tin đ i cầ ủ ể ạ ương

 Đ a ra màn hình danh sách sinh viên v i h  và tên đư ớ ọ ược s p ắ

x p theo chi u c a b ng ch  cái.ế ề ủ ả ữ

Trang 20

Bài t p 2 ậ

Vi t 1 chế ương trình th c hi n nh ng công vi c sau:ự ệ ữ ệ

Yêu c u ngầ ười dùng nh p vào m t s  nguyên dậ ộ ố ương n v i 10 ớ  n 

 20 (có ki m tra tính h p l )ể ợ ệ

Yêu c u ngầ ười dùng nh p vào thông tin c a n m t hàng g m:ậ ủ ặ ồ

Tên m t hàng: có ki u d  li u là xâu kí t  g m không quá 30 kí t ặ ể ữ ệ ự ồ ự

S  l ố ượ ng: là m t s  nguyên d ộ ố ươ ng.

Đ n giá: là m t s  th c d ơ ộ ố ự ươ ng.

Đ a ra màn hình danh sách các m t hàng cùng các thông tin liên ư ặ

quan (s  lố ượng và đ n giá).ơ

Tìm và đ a ra màn hình danh sách các m t hàng có s  lư ặ ố ượng nh  ỏ

h n m t s  nguyên nh p t  bàn phím. M u hi n th  là:ơ ộ ố ậ ừ ẫ ể ị

Tên mặt hàng Số lượng

Tìm và đ a ra màn hình nh ng m t hàng có giá tr  l n h n m t s  ư ữ ặ ị ớ ơ ộ ố

th c đự ược nh p t  bàn phím, bi t r ng giá tr  c a m t lo i ậ ừ ế ằ ị ủ ộ ạ

m t hàng tính b ng s  lặ ằ ố ượng m t hàng đó nhân v i đ n giá ặ ớ ơ

c a nó. M u đ a ra màn hình làủ ẫ ư

Ngày đăng: 30/01/2020, 13:50

🧩 Sản phẩm bạn có thể quan tâm