Home » » Mảng trong C

Mảng trong C

Written By nguyen ngoc hieu on Thứ Sáu, 13 tháng 12, 2013 | 23:07

I. Mảng ( array ):
Là tập hợp gồm các phần tử, mỗi phần tử thì có chỉ số riêng để xác định vị trí của phần tử đó . Chỉ số phần tử là số tự nhiên  ( N), chỉ số đầu tiên là 0 .
Mảng có 2 loại :
 . Mảng một chiều : biểu diễn tập hợp ,có 1 chỉ số ( một dòng ) :0-> n, n là số tự nhiên.
 VD : a[0]= 11. a[1]= 1 , ...
 . Mảng nhiều chiều : biểu diễn tập hợp, có 2 chỉ số ( dòng, cột) : 0 ->n, n là số tự nhiên .
 VD: a[0][0] =2, a[1][2]= 5, ...
Cách khai báo mảng:
Mảng một chiều : kiểu_dữ_liệu  tên_mảng[số_phần_tử];
VD: khai báo mảng số nguyên a có 10 phần tử : int a[10]; và phần tử thứ 5 có giá trị bằng 67 : a[4]=67 ( vì phần tử thứ nhất có chỉ số bằng 0, nên phần tử thứ 5 có chỉ số bằng 4 ).
Mảng nhiều chiều : kiểu_dữ_liệu  tên_mảng[số_phần_tử_cột][số_phần_tử_dòng];
VD: khai báo mảng số nguyên a có 5 phần tử cột ( 5 cột ), 4 phần tử ở dòng ( 4 dòng) : int a[5][4]; và phần tử thứ 5 có giá trị bằng 67 : a[4][0]=67 ( vì phần tử thứ nhất có chỉ số cột bằng 0 chỉ số dòng bằng 0 : a[0][0] , nên phần tử thứ 5 có chỉ số bằng [4][0] ).
   *Mảng một chiều là biểu diễn tập hợp trong Toán học.
   *Mảng nhiều chiều là biểu diễn ma trận trong Toán học.

II. Hàm (function):
Hàm là một khối lệnh được thực hiện khi nó được gọi từ một điểm khác của chương trình. Dạng thức của nó như sau:
type name ( argument1 , argument2 , ...) statement
trong đó:type là kiểu dữ liệu được trả về của hàm name là tên gọi của hàm.arguments là các tham số (có nhiều bao nhiêu cũng được tuỳ theo nhu cầu). Một tham số bao gồm tên kiểu dữ liệu sau đó là tên của tham số giống như khi khai báo biến (ví dụ int x) và đóng vai trò bên trong hàm như bất kì biến nào khác. Chúng dùng để truyền tham số cho hàm khi nó được gọi. Các tham số khác nhau được ngăn cách bởi các dấu phẩy.statement là thân của hàm. Nó có thể là một lệnh đơn hay một khối lệnh..
VD : hàm cộng hai số nguyên
int cong_hai_so_nguyen( int a, int b)
{
int S; // tong hai so nguyen
S=a+b;
return(S);
}
* Bất kỳ chương trình nào dù nhỏ hay lớn đều có  một hàm là "void main () ".

III. Bài tập áp dụng :

Bài tập 1:  Viết chương trình nhập xuất mảng một chiều, thêm, xóa, sửa phần tử ( dùng hàm ).
code :
// mang_mot_chieu.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <windows.h>
#define size 50
//HAM NHAP MANG
void NhapMang(int arr[], int n)
{
for (int i = 0; i<n; i++)
{
printf("\n Nhap phan tu : arr[%d] = ", i);
scanf_s("%d", &arr[i]);
}
}
//HAM XUAT MANG
void XuatMang(int arr[], int n)
{
for (int i = 0; i<n; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
//HAM THEM 1 PHAN TU VAO MANG
void Them(int arr[], int &n)
{
int vitri, giatri;
do
{
printf("\n Nhap vi tri can them: \n");
scanf_s("%d", &vitri);
} while (vitri<1 || vitri>n);
printf("\n Nhap phan tu can them : arr[%d] = ", vitri);
scanf_s("%d", &giatri);
for (int i = n; i>vitri; i--)
{
arr[i] = arr[i - 1];
}
arr[vitri] = giatri;
n++;
}
//HAM XOA 1 PHAN TU KHOI MANG
void Xoa(int arr[], int &n)
{
int vitri;
do
{
printf("\n Nhap vi tri muon xoa: ");
scanf_s("%d", &vitri);
} while (vitri<1 || vitri>n);
for (int i = vitri; i<n - 1; i++)
{
arr[i] = arr[i + 1];
}
n--;
}
//HAM SUA 1 PHAN TU TRONG MANG
void Sua(int arr[], int n)
{
int vitri;
do
{
printf("\n Nhap vi tri muon sua: ");
scanf_s("%d", &vitri);
} while (vitri<1 || vitri>n);
printf("\n Nhap phan tu can sua : arr[%d] = ", vitri);
scanf_s("%d", &arr[vitri - 1]);
}
void main()
{
printf("\t Bai tap Mang 1 chieu \n");
printf("\t -------------------- \n");
//Khai bao
int arr[size];
int n, dem = 0, tong = 0;
//Nhap du lieu
do
{
printf("\n Nhap so phan tu cua mang: ");
scanf_s("%d", &n);
} while (n <= 0 || n>size);
NhapMang(arr, n);
//Xu ly & xuat du lieu
printf("\n Mang nhap vao la:");
XuatMang(arr, n);
printf("\n Cac phan tu co gia tri chan:");
for (int i = 0; i<n; i++)
{
if (arr[i] % 2 == 0)
{
printf("%d ", arr[i]);
dem++;
tong += arr[i];
}
}
printf("\n");
printf("\n  Co %d phan tu chan trong mang\n", dem);
printf("\n Tong cac phan tu chan la: %d\n", tong);
Them(arr, n);
printf("\n Mang sau khi them vao la: \n");
XuatMang(arr, n);
Xoa(arr, n);
printf("\n Mang sau khi xoa la: \n");
XuatMang(arr, n);
Sua(arr, n);
printf("\n Mang sau khi sua la: \n");
XuatMang(arr, n);
printf("\t--------------------\n");
_getch();
}







0 nhận xét:

Đăng nhận xét