Tải bản đầy đủ (.pdf) (97 trang)

giáo trình lập trình căn bản nghề tin học ứng dụng cao đẳng

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 (821.52 KB, 97 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

ĀY BAN NHÂN DÂN THÀNH PHà Hâ CHÍ MINH

<b>TR¯âNG CAO ĐÀNG BÁCH KHOA NAM SÀI GÒN </b>

<b>TR¯âNG CAO ĐÀNG BÁCH KHOA NAM SÀI GÒN </b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>LõI GII THIịU </b>

Mụn hc ny thuòc khái kiến thức chun mơn nghề trong chương trình đào t¿o ngành tin học ứng dÿng há cao đẳng. Lập trình căn bÁn là mơn học bắt bc trong chương trình ngành Tin học ứng dÿng trình đß cao đẳng.

Nßi dung giáo trình gãm 5 bài:

- Bài 1: Giái thiáu ngơn ngữ lập trình - Bài 2: Kiểu, toán tử, lánh IF, SWITCH - Bài 3: MÁng và lánh lặp

- Bài 4: Láp và đái tượng - Bài 5: Kế thừa

Trong q trình biên so¿n chúng tơi đã kết hợp kinh nghiám giÁng d¿y trong nhiều năm cāa nhóm tác giÁ vái mong muán có thể giúp cho học sinh – sinh viên dß dàng nắm bắt được nßi dung cāa môn học. Mặc dù, rất cá gắng trong quá trình biên so¿n, nhưng chắc chắn khơng thể tránh khßi những thiếu sót, vì vậy, nhóm tác giÁ chúng tơi rất mong nhận được ý kiến đóng góp cāa b¿n đọc để giáo trình ngày mßt hồn thián hơn.

Tp.HCM , ngày 31 tháng 08 năm 2022 Tham gia biên so¿n

1. Chā biên: ThS Bùi Thị Mai Châu 2. &&&&

3. &&&&. &&&&&

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

MỤC LỤC

LâI GIàI THIàU ... 3

Bài 1: Giái thiáu ngôn ngữ lập trình ... 6

1.1. Giái thiáu ngơn ngữ ... 6

1.2. Biến, toán tử, hàm toán học và lánh nhập xuất ... 8

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>GIÁO TRÌNH MƠN HàC/MƠ ĐUN </b>

<b>Tên mơn hác/mơ đun: L¾P TRÌNH WEB C¡ BÀN </b>

Tên mơn học: Lập trình căn bÁn Mã sá mơn học: MH09

Thãi gian môn học: 60 giã; (Lý thuyết: 30 giã, Thực hành, thí nghiám, bài tập, thÁo luận: 28 giã, Kiểm tra: 02 giã)

<b>Māc tiêu môn hác: </b>

1. Về kiến thức:

- Trình bày được các kiến thức cơ bÁn về ngơn ngữ lập trình;

- Phân biát các biến, cấu trúc dữ liáu, toán tử, biên dịch và thực thi chương trình, câu lánh, điều khiển;

- Áp dÿng các kiến thức cơ bÁn về lập trình trong viác giÁi quyết các bài toán đơn giÁn.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>Nßi dung cÿa mơn hác/mơ đun: Bài 1: Giái thißu ngơn ngữ l¿p trình </b>

1. Mÿc tiêu:

- Trình bày được khái niám về biến, tốn tử và các hàm toán học; -<b> Áp dÿng để viết mã và thi hành chương trình đơn giÁn. </b>

2. Nßi dung:

<b>1.1. Giái thißu ngơn ngữ </b>

Java là ngơn ngữ lập trình hưáng đái tượng (tựa C++) do Sun Microsystem đưa ra vào giữa thập niên 90.

Chương trình viết bằng ngơn ngữ lập trình java có thể ch¿y trên bất kỳ há tháng nào có cài máy Áo java (Java Virtual Machine).

Ngôn ngữ lập trình Java do James Gosling và các cơng sự cāa Công ty Sun Microsystem phát triển.

Đầu thập niên 90, Sun Microsystem tập hợp các nhà nghiên cứu thành lập nên nhóm đặt tên là Green Team. Nhóm Green Team có trách nhiám xây dựng cơng nghá mái cho ngành đián tử tiêu dùng. Để giÁi quyết vấn đề này nhóm nghiên cứu phát triển đã xây dựng mßt ngơn ngữ lập trình mái đặt tên là Oak tương tự như C++ nhưng lo¿i bß mßt sá tính năng nguy hiểm cāa C++ và có khÁ năng ch¿y trên nhiều nền phần cứng khác nhau. Cùng lúc đó world wide web bắt đầu phát triển và Sun đã thấy được tiềm năng cāa ngôn ngữ Oak nên đã đầu tư cÁi tiến và phát triển. Sau đó khơng lâu ngơn ngữ mái vái tên gọi là Java ra đãi và được giái thiáu năm 1995.

Java là tên gọi cāa mßt hịn đÁo å Indonexia, Đây là nơi nhóm nghiên cứu phát triển đã chọn để đặt tên cho ngơn ngữ lập trình Java trong mßt chuyến đi tham quan và làm viác trên hòn đÁo này. Hòn đÁo Java này là nơi rất nổi tiếng vái nhiều khu vưãn trãng cafe, đó chính là lý do chúng ta thưãng thấy biểu tượng ly café trong nhiều sÁn phẩm phần mềm, cơng cÿ lập trình Java cāa Sun cũng như mßt sá hãng phần mềm khác đưa ra.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Mßt sá đặc điểm nổi bậc cāa ngơn ngữ lập trình Java Máy Áo Java (JVM - Java Virtual Machine)

Tất cÁ các chương trình muán thực thi được thì phÁi được biên dịch ra mã máy. Mã máy cāa từng kiến trúc CPU cāa m̀i máy tính là khác nhau (tập lánh mã máy cāa CPU Intel, CPU Solarix, CPU Macintosh & là khác nhau), vì vậy trưác đây mßt chương trình sau khi được biên dịch xong chỉ có thể ch¿y được trên mßt kiến trúc CPU cÿ thể nào đó. Đái vái CPU Intel chúng ta có thể ch¿y các há điều hành như Microsoft Windows, Unix, Linux, OS/2, & Chương trình thực thi được trên Windows được biên dịch dưái d¿ng file có đi .EXE cịn trên Linux thì được biên dịch dưái d¿ng file có đi .ELF, vì vậy trưác đây mßt chương trình ch¿y được trên Windows muán ch¿y được trên há điều hành khác như Linux chẳng h¿n thì phÁi chỉnh sửa và biên dịch l¿i. Ngơn ngữ lập trình Java ra đãi, nhã vào máy Áo Java mà khó khăn nêu trên đã được khắc phÿc. Mßt chương trình viết bằng ngơn ngữ lập trình Java sẽ được biên dịch ra mã cāa máy Áo java (mã java bytecode). Sau đó máy Áo Java chịu trách nhiám chuyển mã java bytecode thành mã máy tương ứng. Sun Microsystem chịu trách nhiám phát triển các máy Áo Java ch¿y trên các há điều hành trên các kiến trúc CPU khác nhau.

Thơng dịch:

Java là mßt ngơn ngữ lập trình vừa biên dịch vừa thơng dịch. Chương trình ngn viết bằng ngơn ngữ lập trình Java có đi *.java đầu tiên được biên dịch thành tập tin có đi *.class và sau đó sẽ được trình thơng dịch thơng dịch thành mã máy.

Đßc lập nền:

Mßt chương trình viết bằng ngơn ngữ Java có thể ch¿y trên nhiều máy tính có há điều hành khác nhau (Windows, Unix, Linux, &) mißn sao å đó có cài đặt máy Áo java (Java Virtual Machine). Viết mßt lần ch¿y mọi nơi (write once run anywhere). Hưáng đái tượng:

Hưáng đái tượng trong Java tương tự như C++ nhưng Java là mßt ngơn ngữ lập trình hưáng đái tượng hồn tồn. Tất cÁ mọi thứ đề cập đến trong Java đều liên quan đến các đái tượng được định ngh椃̀a trưác, thậm chí hàm chính cāa mßt chương

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

trình viết bằng Java (đó là hàm main) cũng phÁi đặt bên trong mßt láp. Hưáng đái tượng trong Java khơng có tính đa kế thừa (multi inheritance) như trong C++ mà thay vào đó Java đưa ra khái niám interface để h̀ trợ tính đa kế thừa. Vấn đề này sẽ được bàn chi tiết trong chương 3.

Đa nhiám - đa luãng (MultiTasking - Multithreading):

Java h̀ trợ lập trình đa nhiám, đa luãng cho phép nhiều tiến trình, tiểu trình có thể ch¿y song song cùng mßt thãi điểm và tương tác vái nhau. KhÁ chuyển (portable):

Chương trình ứng dÿng viết bằng ngôn ngữ Java chỉ cần ch¿y được trên máy Áo Java là có thể ch¿y được trên bất kỳ máy tính, há điều hành nào có máy Áo Java. <Viết mßt lần, ch¿y mọi nơi= (Write Once, Run Anywhere).

H̀ trợ m¿nh cho viác phát triển ứng dÿng:

Công nghá Java phát triển m¿nh mẽ nhã vào <đ¿i gia Sun Microsystem= cung cấp nhiều cơng cÿ, thư vián lập trình phong phú h̀ trợ cho viác phát triển nhiều lo¿i hình ứng dÿng khác nhau cÿ thể như: J2SE (Java 2 Standard Edition) h̀ trợ phát triển những ứng dÿng đơn, ứng dÿng client-server; J2EE (Java 2 Enterprise Edition) h̀ trợ phát triển các ứng dÿng thương m¿i, J2ME (Java 2 Micro Edition) h̀ trợ phát triển các ứng dÿng trên các thiết bị di đßng, khơng dây, &

<b>1.2. Bi¿n, tốn tử, hàm tốn hác và lßnh nh¿p xuất 1.2.1. Bi¿n, quy tắc đặt tên. </b>

- Biến là vùng nhá dùng để lưu trữ các giá trị cāa chương trình. M̀i biến gắn liền vái mßt kiểu dữ liáu và mßt định danh duy nhất gọi là tên biến.

- Tên biến thơng thưãng là mßt chu̀i các ký tự (Unicode), ký sá. o Tên biến phÁi bắt đầu bằng mßt chữ cái, mßt dấu g¿ch dưái hay dấu dollar.

 Tên biến không được trùng vái các từ khóa (xem phÿ lÿc các từ khóa trong java).

 Tên biến khơng có khng trắng å giữa tên.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

- Trong java, biến có thể được khai báo å bất kỳ nơi đâu trong chương trình. Cách khai báo

Biến cÿc bß: là biến chỉ có thể truy xuất trong khái lánh nó khai báo.

Lưu ý: Trong ngơn ngữ lập trình java có phân biát chữ in hoa và in thưãng. Vì vậy chúng ta cần lưu ý khi đặt tên cho các đái tương dữ liáu cũng như các xử lý trong chương trình.

int z = x+y;

System.out.println("x = " + x); System.out.println("y = " + y);

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

System.out.println("z = x + y =" + z); System.out.println("So nho hon la so:" +

Math.min(x, y));

char c = 80;

System.out.println("ky tu c la: " + c); }

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

Kích thưác

(bytes)

mặc định

- Kiểu mặc định cāa các sá nguyên là kiểu int.

- Các sá nguyên kiểu byte và short rất ít khi được dùng.

- Trong java khơng có kiểu sá nguyên không dấu như trong ngôn ngữ C/C++.

Khai báo và khåi t¿o giá trị cho các biến kiểu nguyên: int x = 0;

long y = 100;

Mßt sá lưu ý đái vái các phép toán trên sá nguyên:

- Nếu hai tốn h¿ng kiểu long thì kết q là kiểu long. Mßt trong hai tốn h¿ng khơng phÁi kiểu long sẽ được chuyển thành kiểu long trưác khi thực hián phép toán.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

- Nếu hai tốn h¿ng đầu khơng phÁi kiểu long thì phép tính sẽ thực hián vái kiểu int.

- Các toán h¿ng kiểu byte hay short sẽ được chuyển sang kiểu int trưác khi thực hián phép toán.

- Trong java không thể chuyển biến kiểu int và kiểu boolean như trong ngôn ngữ C/C++.

Ví dÿ: có đo¿n chương trình như sau boolean b = false; if (b == 0) {

System.out.println("Xin chao"); }

Lúc biên dịch đo¿n chương trình trên trình dịch sẽ báo l̀i: khơng được phép so sánh biến kiểu boolean vái mßt giá trị kiểu int.

Khai báo và khåi t¿o giá trị cho các biến kiểu dấu chấm đßng: float x =

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

Mßt sá lưu ý đái vái các phép toán trên sá dấu chấm đßng:

- Nếu m̀i tốn h¿ng đều có kiểu dấn chấm đßng thì phép tốn chuyển thành phép tốn dấu chấm đßng.

- Nếu có mßt tốn h¿ng là double thì các tốn h¿ng còn l¿i sẽ được chuyển thành kiểu double trưác khi thực hián phép toán.

- Biến kiểu float và double có thể ép chuyển sang kiểu dữ liáu khác trừ kiểu boolean.

<b>Kiểu ký tự (char): </b>

Kiểu ký tự trong ngôn ngữ lập trình java có kích thưác là 2 bytes và chỉ dùng để biểu dißn các ký tự trong bß mã Unicode. Như vậy kiểu char trong java có thể biểu dißn tất cÁ 216 = 65536 ký tự khác nhau.

Giá trị mặc định cho mßt biến kiểu char là null.

<b>Kiểu lu¿n lý (boolean): </b>

- Kiểu boolean chỉ nhận 1 trong 2 giá trị: true hoặc false.

- Trong java kiểu boolean không thể chuyển thành kiểu nguyên và ngược l¿i. - Giá trị mặc định cāa kiểu boolean là false.

- Hằng Boolean: java có 2 hằng boolean là true, false.

- Hằng ký tự: là mßt ký tự đơn nằm giữa nằm giữa 2 dấu ngoặc đơn.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

 Ví dÿ: 8a9: hằng ký tự a  Mßt sá hằng ký tự đặc biát

<b>Lßnh, khßi lßnh trong java : </b>

Giáng như trong ngôn ngữ C, các câu lánh trong java kết thúc bằng mßt dấu chấm phẩy (;).

Mßt khái lánh là đo¿n chương trình gãm hai lánh trå lên và được bắt đầu bằng dấu må ngoặc nhọn ({) và kết thúc bằng dấu đóng ngoặc nhọc (}).

Bên trong mßt khái lánh có thể chứa mßt hay nhiều lánh hoặc chứa các khái lánh khác.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

{ // khái 1

{ // khái 2 lánh 2.1 lánh 2.2 &

} // kết thúc khái lánh 2 lánh 1.1 lánh 1.2 &

} // kết thúc khái lánh 1 { // bắt đầu khái lánh 3

// Các lánh thußc khái lánh 3 // &

} // kết thúc thái lánh 3 1.2.3. Toán tử và biểu thức.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

-- GiÁm 1

<b>Toán tử trên bit: </b>

Toán tử

>>> Dịch phÁi và điền 0 vào bit tráng

<b>Tốn tử quan hß & logic: </b>

Toán tử

Ý ngh椃̀a

== So sánh bằng != So sánh khác > So sánh lán hơn < So sánh nhß hơn

>= So sánh lán hơn hay bằng <= So sánh nhß hơn hay bằng || OR (biểu thức logic) && AND (biểu thức logic) ! NOT (biểu thức logic)

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<i>int iCount = (int) fNum; // (iCount = 2) </i>

<b>Tốn tử điÁu kißn: </b>

Cú pháp: <điều kián> ? <biểu thức 1> : < biểu thức 2> Nếu điều kián đúng thì có giá trị, hay thực hián <biểu thức 1>, còn ngược l¿i là <biểu thức 2>. <điều kián>: là mßt biểu thức logic

<biểu thức 1>, <biểu thức 2>: có thể là hai giá trị, hai biểu thức hoặc hai hành đßng.

<<

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

1.2.4. Lánh xuất ra màn hình và nhập từ bàn phím. Bài tập:

Câu 1. Kích thưác cāa 1 Char là bao nhiêu?

a. 4 bit b. 7 bit c. 8 bit d. 16 bit Câu 2. 1 class khơng thể được khai báo å chế đß

a. Static b. Private c. Default Câu 3. Kết quÁ sau khi biên dịch mã int a = 3.5

a. Compilation error b. Runtime error c. 3.5

d. 3

Câu 4. Kết quÁ khi biên dịch mã int a1 = 5; double a2 = (float)a1

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

b. Runtime error c. No error

Câu 5. Kết quÁ sau khi biên dịch mã int a = 9/0

a. Compilatinon error: Phép tính chia phÁi nằm trong cú pháp try b. Compilation error: DivideByZeroException

c. Runtime Exception d. No Error: kết quÁ là NaN

Câu 6. Kết quÁ sau khi biên dịch mã: float a = 9/0

a. Compilation error: Phép tính chia phÁi nằm trong cú pháp try b. Compilation error: DivideByZeroException

c. Runtime Exception

d. No Error: Kết quÁ là NaN

Câu 7: Đâu là câu SAI về ngôn ngữ Java?

a. Ngơn ngữ Java có phân biát chữ hoa – chữ thưãng b. Java là ngôn ngữ lập trình hưáng đái tượng

c. Dấu chấm phẩy được sử dÿng để kết thúc lánh trong java

d. Chương trình viết bằng Java chỉ có thể ch¿y trên há điều hành win Câu 8: Đâu khơng phÁi là mßt kiểu dữ liáu ngun thāy trong Java?

a. double b. int c. long d. long float

Câu 9: Trong câu lánh sau: public static void main(String[] agrs) thì phần tử agrs[0] chứa giá trị gì?

a. Tên cāa chương trình b. Sá lượng tham sá

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

c. Tham sá đầu tiên cāa danh sách tham sá d. Không câu nào đúng

Câu 10: Phương thức next() cāa láp Scanner dùng để làm gì? a. Nhập mßt sá nguyên

b. Nhập mßt ký tự c. Nhập mßt chu̀i

d. Khơng có phương thức này

Câu 11: Muán ch¿y được chương trình java, chỉ cần cài phần mền nào sau đây? a. Netbeans b. Eclipse c. JDK d. Java Platform

Câu 12: Gói nào trong java chứa láp Scanner dùng để nhập dữ liáu từ bàn phím? a. java.net b. java.io c. java.util d. java.awt

Câu 13: Phương thức nextLine() thußc láp nào ?

A. String B. Scanner C. Integer D. System Câu 14: Tên đầu tiên cāa Java là gì?

Câu 15: Đâu KHÔNG phÁi là thành phần trong cấu trúc cāa láp trong java. A. Tên láp B. Thc tính C. Phương thức D. Biến Câu 16: Đọc đo¿n mã lánh sau. Sau khi thực thi chương trình sẽ in ra kết quÁ gì ? public class Main {

public static void main(String[] args) { int x = -1;

String y = x + 3;

System.out.println("x = " + x + "y = " + y);

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

} }

A. x=-1 y=2

B. L̀i biên dịch: Uncompilable source code - incompatible types C. x=-1 y=-13

D. x=-1 y=4

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>Bài 2: Cấu trúc IF, SWITCH </b>

1. Mÿc tiêu:

-<b> Mô tÁ được các kiểu dữ liáu; </b>

-<b> Trình bày được lánh có cấu trúc IF, SWITCH; </b>

- Vận dÿng các kiểu dữ liáu, toán tử, lánh IF và SWITCH để giÁi các bài tốn liên

<b>quan. </b>

2. Nßi dung: 2.1. Lánh IF

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

Cú pháp:

if (condition1) {

// khái lánh này được thực thi // nếu condition1 là true } else if (condition2) {

// khái lánh này được thực thi // nếu condition2 là true } else if (condition3) {

// khái lánh này được thực thi // nếu condition3 là true }

... else {

// khái lánh này được thực thi

// nếu tất cÁ những điều kián trên là false

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

case <giátrị_1>: <khái_lánh_1>;

break;

&. case <giátrị_n>: <khái_lánh_n>;

break; default: <khái lánh default>;

Scanner scan = new Scanner(System.in);

System.out.println("Nhập vào năm b¿n cần kiểm tra:"); year = scan.nextInt();

scan.close();

boolean isLeap = false;

if(year % 4 == 0)//chia hết cho 4 là năm nhuận {

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

isLeap = false; }

if(isLeap==true)

System.out.println(year + " là năm nhuận."); else

System.out.println(year + " không phÁi là năm nhuận.");

3. Tìm phần nguyên và phần dư trong java

Scanner scanner = new Scanner(System.in); System.out.println("Nhập vào sá thứ nhất: "); int num1 = scanner.nextInt();

System.out.println("Nhập vào sá thứ hai: "); int num2 = scanner.nextInt();

int phanNg = num1 / num2; int phanDu = num1 % num2;

System.out.println("Phần nguyên là: " + phanNg); System.out.println("Phần dư là: " + phanDu);

4. T¿o máy tính bằng Switch Case trong Java

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<small>doublenum1, num2;</small>

<small> Scanner scanner = new Scanner(System.in); System.out.print("Nhập số thứ nhất: "); num1 = scanner.nextDouble();</small>

<small> System.out.print("Nhập số thứ hai: "); num2 = scanner.nextDouble();</small>

<small> System.out.print("Chọn phép tính (+, -, *, /): "); charoperator = scanner.next().charAt(0);</small>

<small> scanner.close(); doubleoutput; switch(operator) {</small>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<b>Bài 3: MÁng và lßnh lặp </b>

1. Mÿc tiêu:

- Trình bày được cấu trúc lặp, ngắt vòng và mÁng;

- Áp dÿng các cấu trúc lặp, ngắt vòng và mÁng để giÁi quyết các bài tốn liên quan.

2. Nßi dung:

<b>3.1. Lßnh lặp D¿ng 1: while(&) </b>

Cơng dÿng.

Vịng lặp while là cấu trúc điều khiển lặp được dùng để thực hián mßt lánh hay mßt khái lánh vái sá lần lặp chưa xác định trưác. Vái cấu trúc này điều kián lặp được kiểm tra trưác khi thực hián thân cāa vòng lặp.

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

- Như vậy, những lánh nằm trong thân vòng lặp sẽ lần lượt được làm đi làm l¿i nhiều lần trong khi biểu thức điều_kián_lặp cịn có giá trị đúng. Nếu đến mßt lúc nào đó biểu thức điều_kián_lặp có giá trị sai (false) thì các lánh trong thân vịng lặp sẽ khơng được thực hián và vịng lặp while sẽ kết thúc.

<b>D¿ng 2: do { & } while; </b>

Cơng dÿng:

Vịng lặp do - while là cấu trúc điều khiển lặp được dùng để thực hián mßt lánh hay mßt khái lánh vái sá lần lặp chưa xác định trưác nhưng khác vái while, cấu trúc do - while chỉ kiểm tra điều kián lặp sau khi thân vịng lặp đã được thực hián mßt lần.

Cú pháp. do

khái_lánh; <b>} while (điều_kián); </b>

<b>D¿ng 3: for (&) </b>

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

Cơng dÿng:

Vịng lặp for là cấu trúc điều khiển lặp được dùng để thực hián mßt lánh hay mßt khái lánh vái sá lần lặp được xác định trưác. Vì vậy, cấu trúc lặp này rất m¿nh và có thể sử dÿng rất linh đßng trong nhiều tình huáng khi viết chương trình. Cú pháp:

- Các lánh là lánh thực hián trong thân cāa vòng lặp for. Cách ho¿t đßng:

- Bưác 1: Các lánh å biểu_thức_1 được thực hián trưác tiên. Trong biểu thức này có thể có nhiều biểu thức đơn và viết ngăn cách nhau båi dấu phẩy.

- Bưác 2: Kiểm tra giá trị cāa biểu_thức_2 (điều kián lặp). Nếu biểu thức này có giá trị đúng (true) thì chuyển sang Bưác 3, ngược l¿i thì chuyển đến Bưác 6.

- Bưác 3: Lần lượt thực hián các lánh trong thân vòng lặp.

- Bưác 4: Thực hián các lánh trong biểu_thức_3. Trong biểu thức này có thể có nhiều biểu thức đơn và viết ngăn cách nhau båi dấu phẩy.

- Bưác 5: Quay l¿i Bưác 2.

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

- Bưác 6: Thực hián các lánh bên ngồi vịng lặp for.

<b>Cấu trúc lßnh nhÁy (jump) </b>

<b>Lßnh break: trong cấu trúc switch chúng ta dùng câu lánh break để thốt </b>

thßi cấu trúc switch trong cùng chứa nó. Tương tự như vậy, trong cấu trúc lặp, câu lánh break dùng để thóat khßi cấu trúc lặp trong cùng chứa nó.

<b>Lßnh continue: dùng để tiếp tÿc vòng lặp trong cùng chứa nó (ngược vái </b>

break).

<b>Nhãn (label): </b>

Khơng giáng như C/C++, Java không h̀ trợ lánh goto để nhÁy đến 1 vị trí

<b>nào đó cāa chương trình. Java dùng k¿t hÿp nhãn (label) vái từ khóa break và continue để thay thế cho lánh goto. Ví dụ: label: for (…) </b>

Lánh <label:= xác định vị trí cāa nhãn và xem như tên cāa vịng lặp ngồi. Nếu <biểu

<i>thức điều kiện> đúng thì lánh break label sẽ thực hián viác nhÁy ra khßi vịng lặp có nhãn là <label=, ngược l¿i sẽ tiếp tÿc vòng lặp có nhãn <label= (khác vái break và continue</i> thơng thưãng chỉ thốt khßi hay tiếp tÿc vịng lặp trong cùng chứa nó.).

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

ä đây chúng ta sẽ tìm hiểu mßt sá vấn đề cơ bÁn liên quan đền kiểu mÁng. Kiểu láp(class) và giao tiếp(interface) chúng ta sẽ tìm hiểu chi tiết trong chương 3 và các chương sau.

<i><b>Ví dụ: </b></i>

int arrInt[]; hoặc int[] arrInt;

int[] arrInt1, arrInt2, arrInt3;

<b>Cấp phát bß nhá cho mÁng: </b>

Khơng giáng như trong C, C++ kích thưác cāa mÁng được xác định khi khai báo. Chẳng h¿n như:

<i>int arrInt[100]; // Khai báo náy trong Java sẽ bị báo lỗi. - Để cấp phát bß </i>

nhá cho mÁng trong Java ta cần dùng từ khóa new. (Tất cÁ trong Java đều thông qua các đái tượng). Chẳng h¿n để cấp phát vùng nhá cho mÁng trong Java ta làm như sau:

<i><b>int arrInt = new int[100]; </b></i>

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<i>char arrChar[] = {8a9, 8b9, 8c9}; </i>

<i>String arrStrng[] = {<ABC=, <EFG=, 8GHI9}; </i>

<b>Truy c¿p mÁng: </b>

Chỉ sá mÁng trong Java bắt đầu tư 0. Vì vậy phần tử đầu tiên có chỉ sá là 0, và phần tử thứ n có chỉ sá là n-1. Các phần tử cāa mÁng được truy xuất thơng qua chỉ sá cāa nó đặt giữa cặp dấu ngoặc vng ([]).

<i><b>Ví dụ: </b></i>

<i> int arrInt[] = {1, 2, 3}; int x = arrInt[0]; // x sẽ có giá trị là 1. int y = arrInt[1]; // y sẽ có giá trị là 2. </i>

<i>int z = arrInt[2]; // z sẽ có giá trị là 3. </i>

<b>L°u ý: Trong nhưng ngơn ngữ lập trình khác (C chẳng h¿n), mßt chu̀i được xem </b>

như mßt mÁng các ký tự. Trong java thì khác, java cung cấp mßt láp String để làm viác vái đái tượng dữ liáu chu̀i cùng khác thao tác trên đái tượng dữ liáu này.

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<i> System.out.println(<Nhập lỗi!=); } </i>

<i>System.out.println(<Ky tu vua nhap:= + ch); } </i>

<i>} </i>

<i><b> Ví dụ 2: Nhập dữ liáu sá import java.io.*; class inputNum </b></i>

<i>{ public static void main(String[] args) { int n=0; </i>

<i>new BufferedReader( new InputStreamReader( </i>

<i>} </i>

<i>System.out.println(<Bạn vừa nhập số:= + n); } </i>

<i>} </i>

<i><b>Ví dụ 3: Nhập và xuất giá trị các phần tử cāa mßt mÁng các sá nguyên. </b></i>

<i>class ArrayDemo { </i>

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<i> public static void main(String args[]) </i>

<i>{ public static void main(String args[]) </i>

<i> { int nums[] = new int[10]; int min, max; </i>

<i> for(int i=1; i < 10; i++) </i>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

<i> if(nums[i] < min) min = nums[i]; if(nums[i] > max) max = nums[i]; </i>

<i>int min, max; min = max = nums[0]; for(int i=1; i < 10; i++) </i>

<i><b>Ví dụ 5: chương trình minh họa mßt l̀i tham chiếu đến phần tử bên ngồi (vuợt </b></i>

<i>q) kích thưác mÁng. class ArrayErr { public static void main(String args[]) </i>

<i>{ int sample[] = new int[10]; int i; </i>

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

<i>for(i = 0; i < 100; i = i+1) sample[i] = i; } </i>

<i>class BubbleSort </i>

<i>{ public static void main(String args[]) </i>

<i> { int nums[] = { 99, -10, 100123, 18, -978, </i>

<i> int a, b, t; int size; </i>

<i> size = 10; // number of elements to sort // display original array System.out.print("Original array is:"); </i>

<i>for(int i=0; i < size; i++) System.out.print(" " + nums[i]); </i>

<i> System.out.println(); // This is the Bubble sort. for(a=1; a < size; a++) for(b=size-1; b >= a; b--) { if(nums[b-1] > nums[b]) </i>

<i> { // if out of order // exchange elements t = nums[b-1]; </i>

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

<i> // display sorted array </i>

<i> System.out.print("Sorted array is:"); for(int i=0; i < size; i++) System.out.print(" " + nums[i]); </i>

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

<i>}</i>

<i><b>Ví dụ 9: Minh họa mßt sá thao tác cơ bÁn trên chu̀i // Chuong trinh minh </b></i>

<i>hoa cac thao tac tren chuoi ky tu class StrOps { </i>

<i> public static void main(String args[]) </i>

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

<i> // Hien thi chuoi str1, moi lan mot ky tu. </i>

<i>System.out.println(); for(int i=0; i < str1.length(); i++) </i>

<i> System.out.println(); if(str1.equals(str2)) System.out.println("str1 == str2"); </i>

<i> System.out.println("str4:" + str4); </i>

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

<i>System.out.println("Vi tri xuat hien dau tien cua chuoi con 'Mot' trong str4: " + idx); </i>

<i><b>Ví dụ 10: chương trình nhập vào mßt chu̀i và in ra chu̀i nghịch đÁo cāa chu̀i </b></i>

nhập. import java.lang.String; import java.io.*; public class InverstString

<i>{ public static void main(String arg[]) </i>

<i>{ System.out.println("\n *** CHUONG TRINH IN CHUOI NGUOC *** "); </i>

<i>// Doc 1 dong tu BufferReadered ket thuc bang dau ket thuc dong. </i>

</div>

×