Tải bản đầy đủ (.doc) (11 trang)

on tap HKII (1)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (291.87 KB, 11 trang )

KIỂU MẢNG VÀ BIẾN CÓ CHỈ SỐ
Chúng ta chỉ xét hai kiểu mảng thông dụng với nhiều ngôn ngữ lập trình
là kiểu mảng một chiều và kiểu mảng hai chiều.
1. Kiểu mảng một chiều
Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu. Mảng được
đặt tên và mỗi phần tử của nó có một chỉ số. Để mô tả mảng một chiều
cần xác định kiểu của các phần tử và cách đánh số các phần tử của nó.



Một số ví dụ
Tìm phần tử lớn nhất của mảng một chiều và chỉ số của phần tử lớn
nhất đó.
#include <iostream>
ptln=a[0];
#define max 100
csmax=0;
using namespace std;
for(i=1;iint main()
if(a[i]>ptln)
{
{
int a[max];
ptln=a[i];
int ptln,n,i,csmax;
csmax=i;
cout<<"nhap so phan tu: ";
}
cin>>n;
cout<<"\nPhan tu lon nhat la


for(i=0;i"<{
cout<<"\nChi so cua phan tu
cout<<"nhap gia tri phan tu
lon nhat la "<thu "<return 0;
cin>>a[i];
}
}
4. Kiểu mảng hai chiều
Xét bài toán tính và đưa ra màn hình bảng cửu chương.
1
2
3
4
5
6
7
8
9

2
4
6
8
10
12
14

16
18

3
6
9
12
15
18
21
24
27

4
8
12
16
20
24
28
32
36

5
10
15
20
25
30
35

40
45

6
12
18
24
30
36
42
48
54

7
14
21
28
35
42
49
56
63

8
16
24
32
40
48
56

64
72

9
18
27
36
45
54
63
72
81

10
20
30
40
50
60
70
80
90

Bảng cửu chương
Ta thấy bảng cửu chương có dạng bảng gồm các giá trị cùng kiểu. Ta
có thể biểu diễn bảng cửu chương bằng kiểu dữ liệu mảng hai chiều.
Mảng hai chiều là bảng các phần tử cùng kiểu.
a) Khai báo
Tổng quát, khai báo biến mảng hai chiều trong CodeBlocks như sau:
<kiểu dữ liệu> <tên biến mảng>[chỉ số hàng][chỉ số cột];

Ví dụ. Các khai báo sau đây là hợp lệ:
int a[100][100];
float b[100][100];
Tham chiếu tới phần tử của mảng hai chiều được xác định bởi tên
mảng cùng với hai chỉ số được cách nhau bởi dấu phẩy và viết trong cặp
ngoặc [ và ].


Ví dụ.

Hình 13. Minh hoạ mảng hai chiều
b) Một số ví dụ
Chương trình sau tính và đưa ra màn hình bảng cửu chương.
#include <iostream>
using namespace std;
int main()
{
int a[9][9];
int i,j;
//nhap du lieu
for(i=0;i<9;i++)
for(j=0;j<9;j++)
a[i][j]=(i+1)*(j+1);
//xuat du lieu
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
cout<cout<}

return 0;
}


Bài tập:
Tính nhiệt độ trung bình của n ngày trong tuần và đếm xem có bao nhiêu
ngày có nhiệt độ lớn hơn nhiệt độ trung bình.
#include <iostream>
using namespace std;
int main()
{
float nhietdo[366], tb,n;
int dem;
cout<<"nhap vao so ngay : ";
cin>>n;
for(int i =0;i{
cout<<"nhap vao ngay thu "<< i+1<<": ";
cin>>nhietdo[i];
}
tb=0;
for(int i =0;i{
tb=tb+nhietdo[i];
}
tb=tb/n;
dem = 0;
for(int i =0;i{
if(nhietdo[i] > tb)

dem++;
}
cout<<"nhiet do trung binh cua "<cout<<"\nso ngay co nhiet do lon hon nhiet do TB : "<return 0;
}


KIỂU DỮ LIỆU XÂU
Dữ liệu trong các bài toán không chỉ thuộc kiểu số mà cả kiểu phi số dạng kí tự. Dữ liệu kiểu xâu là dãy các kí tự.
Ví dụ. Các xâu kí tự đơn giản:
“Bach khoa”
“KI SU”
“2007 la nam Dinh Hoi”
Xâu là dãy các kí tự trong bảng mã ASCII, mỗi kí tự được gọi là một
phần tử của xâu. Số lượng kí tự trong một xâu được gọi là độ dài của xâu.
Xâu có độ dài bằng 0 gọi là xâu rỗng.
1. Khai báo
Khi khai báo biến xâu cần sử dụng thư viện string
Để khai báo kiểu dữ liệu xâu sử dụng tên dành riêng string tiếp theo
là độ dài lớn nhất của xâu được ghi trong cặp ngoặc [ và ].
Biến kiểu xâu có thể khai báo như sau:
string <tên biến xâu>[độ đài lớn nhất]
Ví dụ
string hoten[50];
Trong mô tả xâu có thể bỏ qua phần khai báo độ dài, chẳng hạn:
string diachi;
Chú ý: khi sử dụng kiể string ta phải khai báo thư viện như sau:
#include <string>



Bài tập:
#include <iostream>

getline(cin,st);

#include <string>

dem1= 0;

using namespace std;

for(i=0;i
int main()

{

{

if(st[i]=='a')
string st;

dem1++;

int demskt[256];
char a;
int i,dem1;

}

cout<<"so ky tu a trong xau la
: "<}


Kiểu dữ liệu tệp và thao tác với tệp


CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI

BIẾN VÀ THAM SỐ
Biến toàn cục và biến cục bộ
Dưới đây là một ví dụ về việc khai báo biến toàn cục
int x; // biến toàn cục
int main()
{
int y; // biến cục bộ
y=5
}// ra khỏi hàm main() thì y sẻ bị hủy bỏ.


Tham biến và tham trị
Xét hại trường hợp sau
Trường hợp A
#include <stdio.h>
#include <conio.h>
void tanggiatri(int x)
{
x++;
}

int main()
{
int a = 5;
cout<<"Value before : “<tanggiatri(a);
cout<<"Value after : “<return 0;
}
Trường hợp B
#include <stdio.h>
#include <conio.h>
void tanggiatri(int &x)
{
x++;
}
int main(){
int main(){
int a = 5;
cout<<"Value before : “<tanggiatri(a);
cout<<"Value after : “<return 0;
}
Chúng ta cùng nhìn kết quả nhé
Trường hợp A

Trường hợp B


Tham trị: đối với trường hợp A gọi là truyền theo tham trị. Khi bạn truyền

vào hàm theo kiểu tham trị (pass by value ), thì trình biên dịch sẽ tạo ra 1
bản sao mới, sau đó copy giá trị của tham số bạn truyền vào cho bản sao
đó, và làm việc trên bản sao này. Khi hàm kết thúc thì bản sao này cũng bị
thu hồi
Tham biến: trường hợp B là truyền theo kiểu tham biến. Khi bạn truyền
theo cách này, thì sẽ là truyền địa chỉ của biến đó , các thao tác với tham
số của bạn truyền vào sẽ hoạt động trên vùng địa chỉ này. Nếu như biến
đó thay đổi thì ở ngoài cũng thay đổi theo, nó làm việc trên vùng nhớ của
biến.



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×