Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 359 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
359
Dung lượng
7,23 MB
Nội dung
Ks Châu Vân Trung Cộng tác: Ts Nguyễn Phi Khứ - Quang Hùng G IÁ O chuyên ng ành T R Ì Í I H T I É H C A Í1 H • * Ị •* - ✓ x H i ễ= ị I NHÀ N / _ n _ S.Ệ -:Í B - ỉ « ? fị I M ‘ x u ấ t b ả n g ia o t h ô n g v ậ n t v f \ k G IÁ O T R ÌN H T IẾ N G A N H C H U YÊN NGÀNH KHOA HỌC M Á Y TÍN H Ks Châu Văn Trung C ộ n g tác: Ts N guyễn Phi K - Q uang H ùng GIÁO TRÌNH TIẾNG ANH C huyên ngành KHỠA HỌC MÁY TÍNH A course of Basic English for Computer Scienc« (D n h c h o s in h v iê n K h o a h ọ c T ự n h iê n K ỹ t h u ậ t - C ô n g n g h ệ th ô n g tin ) N H À XUẤT BẢN GIAO THÔNG VẬ N TẢI Lời nói đầu h ằ m đ áp ứ ng n hu cầu g iả n g dạy học tậ p sin h v iên ch u y ên n g n h công nghệ th ô n g tin k ỹ th u ậ t m áy tín h , chúng tơi b iên soạn x u ất b ả n "Giáo trình tiêng Anh Chuyên ngành Khoa học Máy tính" N S ách gồm chương, tr ìn h bày n h ữ n g v ấn đề că n b ả n n h ấ t ch uyên n g n h k h o a học m áy tín h như: k h i n iệ m m y tín h ,th iế t k ế hoạch đ ịn h cliưang trìn h , viết m ã chương tr ìn h lệ n h n h ậ p I x u ấ t đơn g iả n , cấu trú c đ iề u k h iể n vấ n đ ề viết chương trìn h ,c c h m thư ng trìn h con, m ả n g chuỗi, file d ữ liệu, lậ p tr ìn h h ng đối tượng cấu trú c d ữ liệu Bô cục m ỗi chương gồm p h ầ n m ục đích u cầu, tr ìn h b ày n ội dung b ài học th e o từ n g chủ đ iểm b ằ n g tiế n g A nh, th íc h từ vựng hư ng d ẫ n dịch, dọc h iể u nội dung qua tiế n g V iệt, sau b ài tậ p có lời g iả i, b ài tậ p bổ sung đ áp án T ín h đa d n g phong phú nội dung bô cục c h ặ t chẽ hợp lý, dễ học k h iế n cho giáo tr ìn h m a n g tín h sư p h m cao, giúp người đọc dễ d n g tiế p c ậ n với n h ữ n g v ấ n đề m nội dung n C h ú n g tô i h y v ọ n g r ằ n g giáo tr ìn h giúp ích n h iề u cho giáo v iê n s in h v iê n tro n g việc tiế p cận với n h ữ n g v ấn đề c ă n b ả n n h ấ t ch u y ên n g n h k h o a học m áy tín h N h ó m biên soạn Chương 1: Các khái niệm máy tính CHAPTER •| Basic Concepts ol Compulers L Cóc k h i niệm m áy tín h MỤC ĐÍCH U CẦU Sau học xong chương này, bạn nắm vững khái niệm máy tính, cụ thể với nội dung sau: ♦ C o m p u te r s tru c tu re s ♦ ♦ B us s tru c tu re ♦ C ấ u tr ú c B u s ♦ B a s ic o p e r a t io n o f t h e c o m p u te r ♦ H o t d ộ n g b ả n c ủ a m y t í n h ♦ R e p r e s e n t a t i o n o f d a t a in m e m o ry ♦ K iểu tr ìn h bày d ữ liệu troiig n h ♦ C o n v e r s io n b e t w e e n t h e b in a r y , o c ta l, a n d h e x a d e c im a l s y s t e m s « C h u y ể n d ổ i g iữ a cá c h ê n h ị p h ả n , b t p h â n v th ậ p lụ c ♦ R u le s fo r f o r m i n g n u m b e r s in a n y sy ste m ♦ C c q u y tắ c b iể u d i ễ n c c s ố tr o n g b ấ t h ệ th ố n g n o ♦ A r i t h m e t i c o p e r a t i o n in t h e b i n a r y , o c ta l, a n d h e x a d e c im a l s y s te m s ♦ C c p h é p to n s ố h ọ c tr o n g h ệ n h ị p h â n , th ậ p p h n v c th ậ p lụ c p h â n ♦ R e p r e s e n t i n g n u m b e r s in a c o m p u te r ♦ C ấ u tr ú c m y t í n h T r ì n h b y cá c s ố tr o n g m 1 m y tính Ngồi ra, cuối chương cịn có phần tập có lời giải, tập bổ sung phần đáp án nhằm giúp bạn thực hành áp dụng cách hiệu vào công việc thực tế GIỚI THIỆU C H U N G _ A computer is a device which, under the direction of a program, can process data, alter its own program instruction, and perform computations and logical operations without human intervention The term program refers to a specific set of instructions given to the computer to accomplish a specific task A pro grammer is a person or group of persons who write instructions to the computer Programs, in general, are referred to as "software" A computer can be considered at two different levels: its architecture and its im plem entation The architecture consists of the user-visible in ter face as seen by th e programmer That is, the structure and operation of the computer from the programmer’^ point of view The im plem entation of the computer is th e construction of th a t interface using specific hardw are (and possible software components) In ihis book we will refer to computer com ponents such as monitors, printers, keyboards, and some other of its elec tronics as "hardw are" Chapter 1: Basic Concepts o f Computers HỦ ĐIỂM 1.1 COMPUTER STRUCTURES C đ u ỈP Ú C m a i j t í n h Most computer systems generally consist of three basic structures or ibsystems: the high-speed memory unit, the central processing unit, and le peripheral devices th a t comprise the I/O subsystem (see Fig 1-1) Fig 1-1 Basic com puter structure / V _ _ keyboard I I In p u t a n d O u u t b u s ỵ I 1.1 The Memory Unit - Bộ nhớ The memory unit of the computer, also called m ain memory or physical lemory, stores all the in s tr u c tio n s a n d d a ta th a t the central processing nit can directly access and execute The memory of m ajority of computers onsists of chips made of metal oxide on silicon This type of memory is Iso called Random Access M em ory or RAM The memory of the computer is generally divided into logical units of he same size The most common unit is called a byte Each byte is made ip of consecutive b its or b in a ry d ig its (see Fig 1-2) Each individual bit an be magnetized to one of two different states, hence th e nam e of binary )ne state is said to represent 1; the other represents Som etim es these wo states are referred to as “On” and “Off” respectively Each byte has associated with it a unique address According to the :onvention used, addresses can increase from right to left or left to right see Fig 1-3) In th is book we will assume th a t addresses increase frorn •ight to left unless we specify otherwise The address space is th e set of all jnique addresses th a t a program can reference The num ber of biỉó Used to represent an address determ ines the size of the address space The size of Hiis snacp can be calculated by where N is the num ber of bits used t, 350 Chapter 5: Functions and Subroutinef Option Explicit Private Sub TxtVall_KeyPress(KeyAscii Dim Character As As Integer) string If KeyAscii=vbKeyReturn Then If IsNumeric(txtvall.Text) Then txtVal2.SetFocus Else MsgBox 'Enter a numeric v a l u e ’, vblnformation, ệInvalid Input* txtval1.SetFocus End I f End If End Sub Private Sub TxtVal2_KeyPress(KeyAscii Dim Character As Integer) As string If KeyAscii-vbKeyReturn Then If IsNumeric(txtVal2.Text) SwapValues Else MsgBox txtVall, Then txtVal2 ẽEncer a numeric v a l u e ’, vblnformation, "Invalid Input* txtVall.SetFocus End End If If Private Dim Sub SwapValues(iBoxl temp As As TextBox, iBox2 As TextBox) string temp= iBoxlễText iBoxl.Text=iBox2.Text i B o x Tex t = temp End Sub Quan sát cho thấy mã liên kết với texboxes kiểm nghiệm người dùng dã gõ nhập trị số bàng cách dùng hàm tạo sđn Vai Nếu giá trị người d ù n g gõ nhập số chương trình cảnh báo cho người dùng kiện bàng cách dùng hộp thông điệp tiêu điểm giữ lại textbox, chương trình giả sử ràng người dùng cẩn tiến hành theo cách thức th ủ tự không thử bát đầu gõ nhập texbox thứ hai 5.6 Có điều sai phần khai báo header c hay khôngĩ i n t f u n c t i o n _ h e a d e r ( i n t X, y , f l o a t z) Đây khai báo lỗi tham số cần phải khai báo riêng biệt, người dùng muốn khai báo hai tham sơ hình thức ngun, mồi tham số phải dược đ ặ t trước lượng từ in, dạng : int function_header(int X, y, float z Chương 5: Các hàm thường trình 351 5.7 Nếu Vall, Val2, Val3 biến ngun, có sai sót ví dụ hàm 5.1 dạng max_of_three vall, val2, val3? Bàng cách gọi hàm max_of_thre_integers định trẽn bạn tạo lỗi tham số cho hàm cần phải chuyển dấu ngoặc đơn 5.8 Có sai với hàm c sau đây? / / f u n c t i o n t o c a l c u l a t e t h e maxi mum o f t w o g i v e n i n t e g e r values i n t m a x i m u m _ o f _ t w o ( i n t x , i n t y) { i n t temp ; if ( x>y ) temp=x; if (y>x) temp=y; } Có hai kiểu lỗi hàm Thứ lỗi cú pháp hàm khơng trả giá trị Cho nên chỉnh sửa cách viết: return tem p trước đóng dấu móc ngoặc Trong hàm đặc biệt khơng cần phải sử dụng biến tạm thời bạn có th ề sử dụng return X return y đ ể đơn giản hóa mã Kiều lỗi thứ hai kiểu lỗi khó khám phá Lưu ý hàm khơng xem xét trường hạp hai biến đầu vào có giá trị giống nhau, nói cách khác giả sử hàm giả sử mặt cú pháp hàm trả giá trị cực đại hai biến đầu vào chi lúc biến khác Để chinh sửa lỗi này, hai điều kiện X cần phải thay đổi cho thử nghiệm dành cho giá trị “ lớn bằng” hàm viết sau: i n t maximum_of_two { if ( x>=y) r e t u r n X; if ( y>x> return y; ) (in t X, i n t y) 352 Chapter 5: Functions and Subroutines 5.9 Có lỗi phần khai báo hàm gọi hàm sau hay khơng? N ếu có th ể sửa chúng Sau sửa chương trình thừ chạy bàng cách sử dụng biên soạn c, có phần cảnh báo hay khơng? Nếu có chỉnh sửa //F unction prototypes f l o a t s q u a r e ( i n t x) ; flo a ttrip le _ it (inty); //F unction c a lls d v a l l =s q u a r e ( v a l u e l ) ; / / assume t h a t v a l u e l i s an i n t e g e r v a r i a b l e and d v a l l a d o u b l e v a r i a b l e d v a l =t r i p l e _ i t ( v a l u e l ) ; / / d v a l i s a d o u b l e v a r i a b l e //F unction d eclaratio n s v o i d s q u a r e ( i n t w) { r e t u r n w *w; } float tr ip le _ it (intx) { r e t u r n s q u a r e ( x) * x ; ) } H eader h m bậc hai kh a i báo với công cụ định lượng void kh i nguyên m ẫ u củ a khai báo d n g m ột float H ãy ch ỉn h sửa lỗi nà y bàng cách thay đổi tiê u đề h m sang float N ếu chạy chương trình sau chinh sửa Chúng ta thấy ràng trình biên soạn c tạo cảnh báo vể khả m ất liệu suốt trình biến đổi Điều ám đến kiện ràng tham số đầu vào sổ nguyên hàm trả dấu chấm động Đ ể chỉnh sửa diều rút ngắn thay đổi kiểu tham số đầu vào Ta dùng toán tử cast operator đ ể biến đổi kết phép tính trước trả giá trị cho chương trình gọi Để thực điều thay đổi câu lệnh trả chi định re tu rn w *w ; r e t u r n s q u a r e ( x ) * x; I % r e t u r n ( f l o a t ) w *w ; I - r e tu r n ( f l o a t ) s q u a r e ( x ) * x; Lưu ý hàm triple_it dùng hàm bậc hai y hệt có biến khác Chương 5: Các hàm thường trình 353 5.10 Giả sử phần khai báo sau đáy xuất chương trình C++ Có phải phần khai báo khơng hợp lý? Có th ể hai phần khai báo xuất chương trình hay khơng? int triple_it (int x); Các hàm khác với tên nhận dạng chương trình giống double triple.it (double x); Khơng Những khai báo không hợp lệ C++ cho phép khai báo hai nhiều hàm có tên giống chương trình giống cung cấp cho hàm có tập hợp tham số khác Điểu có nghĩa tham số tất có kiểu giống số tham số hai hàm phải khác Nếu hai hàm có số tham số giống trong số hai hàm, phải có tham số có kiểu khác Đây dược gọi tải hàm Đặc tính C++ vài ngơn ngữ khác cho phép người lập trình phải thao tác kiểu liệu khác cách sử dụng hàm với tên giống Tổ hạp tên hàm số tham số gọi chữ ký hàm Bàng cách sử dụng thuật ngữ bảo C++ cho phép tải hàm cung cấp đ ể chữ ký hàm khác 5.11 Hãy viết giao tliức hàm c đ ể kết hạp phần mơ tả sau (a) Một hàm có tên ValidateNumber có ba đối số Đối số thứ sô nguyên, đối số thứ hai số thập phân đối số thứ ba số gấp đôi Hàm trả số thập phân float (b) Một hàm có tên Validrangc hoạt động ba biến tổng th ể trả m ột giá trị động nằm m iền từ trường đến số nằm phạm vi (c) Một hàm PowerOfTwo chấp nhận đối số dấu chấm động trả kết nâng đối số lẽn lũy thừa bậc (a) Bởi hàm ValidateNumber trả giá trị động có ba đối sơ khung giống đây: f l o a t ValidateNumber ( x , y , z ) ; Thay th ế placeholders ứng, nguyên mẫu hàm X, y z với kiểu liệu tương f l o a t ValidateNumber ( i n t , f l o a t , d o u b l e ) ; Chúng ta có th ể viết nguyên mẫu dạng float ValidateNum ber (int X , float y double z) 354 Chapter 5: Functions and Subroutine (b) Bởi hàm ValidRange hoạt động ba biến tổng thể, khơng cần đối số cầ n biết ràng hàm trả giá trị động nguyên mẩu cùa dạng f l o a t ValidRange (void) S ự kiện hàm trả giá trị -1 khơng thể dược trình bày dạng pkần nguyên mẫu trách nhiệm nhà lập trình đ ể bảo đảm ràng chương trình đáp ứng yêu cầu (c) Bởi hàm PowerOfTwo trả giá trị động chấp nhận đối sơ đơn cho nèn khung float(x) thay th ế placeholder X với kiểu liệu với tham s ố nhập vào, nguyên mẫu kiểu hàm là: f l o a t PowerOfTwo ( f l o a t ) , - Nguyên mẫu hàm có th ể tương ứng dạng f l o a t PowerOfTwo ( X f l o a t ) ; 5.12 Viết header hàm Visual Basic đ ề kết hợp phần mô tả bảo đảm ràng tất hàm riêng tư (à) Một hàm có tên giai thừa chấp nhận m ột tham số nguyền trả giá trị nguyền (b) Một hàm có tên ValidRange chấp nhận m ột giá trị vào m ột giá trị double trả True False phụ thuộc trường hợp giá trị có nằm m iền cho hay khơng? (c) Một hàm có tên ConvertToNumeric chấp nhận dạng đầu vào chuỗi text biểu thị giá trị nguyên trả giá trị tương đương sơ (a) N h định trước kiểu liệu hàm biến, Visual Basic chi định bàng sử dụng mệnh để kiểu A s Data Theo điều header cùa hàm giai thừa đây: P r i v a t e F u n c t i o n F a c t o r i a l ( i v a l u e a s I n t e g e r ) As I n t eg e r (b) Bởi hàm ValidRange trở true false, nên kiểu liệu phải Boolean, header hàm giống đây: P r i v a t e F u n c t i o n V a l id R a n g e (đ V a l u e A s Double) As B o o l e a n (c) Hàm ConvertToNumeric chấp nhận đầu Llào cách trình bày text số nguyên trả cách trình bày số 355 Chương 5: Các hàm thường trình nó, dó tiêu đề hàm giống dãy: P r i v a t e F u n c t i o n ConvertToNumeric ( s t l n p u t v a l u e a s S t r i n g ) As I n t e g e r 5.13Hãy viết chương trình Visual Basic chấp nhận hai giá trị nguyên từ người dùng xác định cho biết giá trị nhập vào có phải số giá trị thứ hai hay không S dụng hàm có tên IsM ultiple đ ể trả true false cho phù hợp Chúng ta có th ể sử dụng form đơn giản có hai textbox đ ể nhập giá trị nhập người dùng Kết (True False) có th ể hiển thị form cách gán vào phần thích nhãn form Ngồi ra, ta có nút lệnh d ể thực phép tính nút khác d ể kết thúc chương trình Form có th ể có dạng sau: IsM ultiplle ■ Ft* vãếue • 1— " ' I l Stcond Value R~Jt r “ — p s g CafcJat, H a t Mã có liên quan vái nút Calculate m inh họa đây: P r i v a t e S u b C a l c u l a t e _ C l i c k () Dim i As I n t e g e r Dim j As I n t e g e r i= V al(txtV all) j = V a l (t x t v a l ) I f i s m u l t i p l e ( i , j ) Then l b l M u l t i p l e Caption=True Else l b l M u l t i p l e C aption=False En d I f En d S u b 356 Chapters: Functions and Subroutines Giá trị textbox ban đầu chuyền sang số tương đương cách sử dụng hàm tạo săn Val Mặc dù hàm IsM ultiple có th ề gọi sau: IsMultipleCVaHtxtVall), Val(textVal2ỳ), song tốt nên biến đổi nội dung textbox gọi hàm đ ể làm cho mã dễ đọc Mã liên quan với hàm Qt đơn giản ben chl có câu lệnh nhất, câu lệnh End Cáu lệnh kết thúc việc thực thi chương trinh P r i v a t e S u b Q u i t _ C l i c k () End End S ub H àm IsM ultiple sử dụng toán tử Mod d ể xác định xem đối số đẩu tiên có phải bội số đối số thứ hai khơng Tốn tử cho phần d phép chia: đối số thứ hai chia cho đối số thứ Lưu ý ràng so sánh kết toán tử Mod với số zero tốn học sơ' bội số số khác phần dư phép chia số thứ hai cho số thứ bàng zero P r i v a t e F u n c t i o n I s m u l t i p l e ( i v a l l As I n t e g e r , i v a l As I n t e g e r ) As B o o l e a n If (iV allM od iv al2)= 0T hen IsM ultiple= True E lse Ism ultiple= False End I f End F u n c t i o n 5.14Viết hàm dành cho tập trước c++ 5.15Hãy viết hàm Visual Basic d ể chấp nhận dạng giá trị nhập vào giá trị 100 trả mẫu tự theo thang tỉ lệ đây: 5.1 S dụng mơ hình chương trình dược m inh họa Hãy xác định phạm vi tất biến khai báo c 5.17Phạm vi biến sau dây mơ hình chương trình dược m inh họa đáy Hãy tìm biến tổng th ể tham chiếu phẩn hàm ĩ 5.18Trong ngơn ngữ lập trình họ c Value biến nguyên nghĩa dấu & valuel gì? 5.19H ãy viết câu lệnh c phù hạp tương ứng với tình sau đây: Chương 5: Các hàm thường trinh (a) (b) (c) (d) 357 iptr trỏ đến biến nguyên biến trỏ đến iptr số nguyên Biến trỏ đến cptr biến ký tự Biến số nguyên mà địa chi nằm giá trị _ptr 5.20Khảo sát tập hợp vị trí nhớ sau lệnh kiểu c Nội dung biến trỏ sau thực thi lệnh m inh họa theo nào? Giả sử tất biến có kiểu giống ràng biến Ptr trỏ trỏ đến kiểu biến 5.21 Hãy viết thủ tục C++ đ ể thực thi tập 5.15, viết thủ tục với hai tham số, tham số tham sô nhập vào sô cỡ font 100 Tham số thứ hai dùng đ ể trả cấp mẫu tự tương ứng Hãy truyền tham số thứ theo giá trị trường tham sô thứ hai theo tham chiếu 5.22Hãy viết thủ tục C++ đ ể chấp nhận dạng nhập vào số nickels, dim es quarters trả lượng dolla tương ứng Truyền biến tương ứng với lượng đô la bàng cách tham chiếu 5.23Hãy viết hàm Java đ ể trả giá trị gấp đôi số dặm gallon ứng với khoảng cách nguyên cho Các gallon nguyên dùng làm tham số 5.24Hãy viết phương pháp Java thực thi tập tập có lời giải 5.22 H àm chấp nhận số nickels, dim es quarters trả lượng đô la tương ứng Hãy nhớ Java có th ể trả giá trị trực tiếp cách sử dụng hàm trả 358 Chapter 5: Functions and Subroutines SUPPLEMENTARY PROBLEMS C c tập bể sung 5.25 5.26 5.27 5.28 5.29 5.30 The following narrative describes the task of a subprogram C an this task be accomplished by a single function? W hat tasks seem to be more appropriate for a subroutine than for a function? “The subprogram reads a sequence of characters and verifies that there are no duplicate words next to each other unless they are separated by a period If there are duplicate words the program deletes the second word In addition, the program should verify that the first word following a period begins w ith a capita] letter.” The following narrative describes the task of a subprogram Can this task be accomplished by a single function? “The subprogram receives as its input a pointer to a character string and returns the number of words in the string A word is any se quence of alphanumeric characters separated by at least one blank Some of the words are w ritten in uppercase le tte rs.” Example 5.15 swaps the values of two integer variables with the param eters being passed by reference Can this subprocedure swap the two input param eters if the param eters are passed by value instead? W rite the prototype for the following c functions: (a) Function name: Cubic Root Return data type: double Input data types: two input values of type double (b) Function name: Copy String Return data type: pointer to a character Input data type: pointer to character string, pointer to char acter string, integer value (c) Function name: Polynomial Return data type: none Input data type: pointer to character string, pointer to char acter strin g , p o in ter to ch a racter string, pointer to character string W hat is the difference between formal and actual parameters? W rite function headers for the following Visual Basic functions: ConvertToCharacter (a) Function name: Return data type: character Input data type: an integer value between and (b) Function name: TimeDifference Chương 5: Các hàm thưởng trình 5.31 5.32 5.33 5.34 5.35 359 Return data type: string of characters Input data type: a couple of strings of the form hh:min:secs If variables ptrl and ptr2 are both integer pointer variables, w hat is the difference, if any, between the statem ents p tr l = ptr2 and *ptrl = *ptr2? Is it true th a t for any variable x, the expression *&x can be consid ered synonymous? Write a Java method th a t implements the problem in So’ved Prob lem 5.13, a function th a t receives two integer values as param eters and determ ines w hether the first value is a multiple of the second Java supports the simple data type “boolean.” Write a Java function to implement the grade problem in Solved Problem 5.15 W hat does the M ystery function do? # i n c l u d e < s t d i o h> void M ystery ( i n t , i n t * ) ; v o i d m a i n () { i n t a , b; a = 12 ; b = l ; M y s t e r y ( a , &b) ; printf("\n% d% d\n",a,b); } v o i d M y s t e r y ( i n t x , i n t * y) { int z ; z=x; *y=*y+z; x =*Y; 5.36 } Mark the order of execution of the statement in the following program: «include v o i d f l ( i n t * , i n t *) ; v o i d m a i n () { in t v a i l ,val2 ; Chapter 5: Functions and Subroutines 360 printf f\n Write the order of execution*); // No. fl (&vall,Scval2) ; / / N o printf (*\nThe value read in are %4d and %4 d * , w l l , v a l ) ; // No. ) void fl (int * i int * j) < p r i n t f (*\nEnter the first integer number:*); // No. s c a n f (*%d*,i ) ; // No. p r i n t f (*\nEnter the second integer number:*); // No. s c a n f (*%d* ,j ) ; // No. * i * * i♦2 ; // No. // No. ) 5.37 5.38 W rite a C++ function th a t takes as param eters three integers, and returns the minimum of the three W rite a C function to calculate the power in w here i and n are both integers HƯỚNG DẪN ĐỌC Hiểu BÀI TẬP B ổ SUNG BÀ I TẬP B Ổ S U N G 5.25Phần trình bày đáy mơ tà tác vụ cửa chương trình Tác vụ hồn thành hàm đơn không? Các tác vụ dường phù hạp thường trình thay hàm phải vậy-không? 5.26Phẩn sau mô tả tác vụ chương trình Tác vụ hồn thành hàm hay khơng? 5.27 Ví dụ 5.15 cho giá trị hai biến nguyên với tham số tải theo tham chiếu Chương trình có th ể trao đổi hai tham số nhập vào tham sô truyền theo giá trị thay thê không? 28Hãy viết nguyên mẫu dành cho hàm c sau đáy: 5.29 Có khác biệt tham số hình thức tham số thự: tế? 5.39H ãy viết tiêu đề hàm (header hàm) hàm Visual Basic sau đây: 5.31 Nếu biến p tr l ptr2 hai biến trỏ ngun có khác biệt câu lệnh ptrl= ptr2 *ptrl=*ptr2 hay không? 5.32 Câu ph t biểu đáy có hay khơng ứng với biến X biểu thức *&x xem đồng nghĩa? Chương 5: Các hàm thường trình 361 S.33Hãy viết phương pháp Java đ ể thực thi tập tốn có lời giải 5.13 Một hàm nhận hai giá trị nguyên làm tham số xác định xem thử giá trị dầu tiên có phải bội số giá trị thứ hai hay không? Java hỗ trợ kiểu liệu đơn giản “boolean” 5.34Hãy viết hàm số Java đ ể thực thi toán cấp độ tập có lời giản 5.15 5.35Hàm Mystery thực chức gì? 5.36Hãy đánh dấu thứ tự thực thi cău lệnh chương trình sau đáy: 5.37Hãy viết hàm C++ nhận làm tham số ba số nguyên trả giá trị cực tiểu ba sô 5.38Hãy viết hàm c đ ể tính i", i n hai số nguyên 362 Chapters: Functions and Subroutines ANSWERS TO SUPPLEMENTARY PROBLEMS G i ả i đáp t i tgp t ể sung 5.25 No! A function should perform single tasks This narrative requires th a t multiple tasks be performed by a single function There should be at least two subroutines: one for reading the sequence of charac ters and one for deleting consecutive double words A function can be used to determ ine if two consecutive words are identical How ever, a subprocedure is more appropriate for th is task since the subprocedure may “return” a Yes/No indication th a t the words are duplicate and, if they are, a pointer to the word th a t needs to be elim inated 5.26 Yes! This subprogram performs a single task The function should return the number of words in the given string 5.27 No! When the param eters are passed by value the subprocedure operates on copies of the input param eters Therefore, any changes to the formal param eters will not be reflected on the actual param eters 5.28 (a) double CubicRoot (double, double); (b) char *CopyString (char *, char *, int); (c) void Polynomial ( char *, char *, char *, char *); 5.29 Formal param eters are used in the declaration of the function or subprocedure They are local to the subprogram in which they are defined Actual param eters are the values passed to the subpro gram 5.30 (a) Private Function ConvertToCharacter (iValue As Integer) As String (b) Private Function TimeDifTerence (stTunel As String, stTime2 As String) As String 5.31 These two sets of statem ents are totally different Assume that the content of variable p trl is 10FF The statem en t p tr l = ptr2 makes both variables point to the same location T hat is, th e content of both variables is 10FF The statem ent * p trl = *ptr2 copies the value of the memory location pointed to by ptr2 into the location pointed to by p tr l T hat is, assume th a t the content of the variable pointed to by ptr2 is 555 After this instruction is executed the variable pointed to by p tr l is also 555 5.32 True T he expression *&x always refers to th e c o n te n t of vari able X 363 Chương 5: Các hàm thường trình 5.33 public boolean IsMultiple(int x, int y) { i f (x%y= = 0) r e t u r n t r u e ; else return false; } 5.34 public char G etLetterG rade(int grade) //receives integer as param eter, returns char { char le tte rg d e = '', if ( g r a d e > = && g r a d e < = 0 ) l e t t e r g r a d e = ' A'; else if ( g r a d e < && g r a d e > = ) l e t t e r g r a d e = ' B'; else if ( g r a d e < && g r a d e > = ) l e t t e r g r a d e = ' C '; else if ( g r a d e > = && g r a d e < ) l e t t e r g r a d e = ' D'; else if ( g r a d e < && g r a d e > = ) l e t t e r g r a d e = ' F '; return letterg rad e; 535 The function Mystery adds the contents of variables a and b and assigns the sum to variable b 5.36 v o i d ma i n () in t v a i l ,val2 ; p r i n t f ( " \ n W r i t e t h e o r d e r o f e x e c u t i o n " ) ; / / No f ( &v a i l , & v a l ) ; / / No p r i n t f ("\nT he v alu e v a i l , v a l ) ; / / No read in are %4d a n d %4d", } void f (i n t * i , in t * j ) { p r i n t f ( " \ n E n t e r t h e f i r s t i n t e g e r n u m b e r : " ) ; / / No s c a n f ( " %d" , i ) ; / / N o p r i n t f ( ' \ n E n t e r t h e se c o n d i n t e g e r number ; " ) ; / / N o 364 Chapters: Functions and Subroutines s c a n f ( "Ad" , ) ; //N o j * i = * i +2 ; / / N o * j =* j +5 ; / / N o 5.37 i n t m in _ o f _ t h r e e _ i n te g e r s ( i n t a , i n t b, i n t c ) { i n t minimum; minimum=a; i f ( b < mi n i mu m) minimum=b; else i f ( c