Bài tập và thực hành 3

Chia sẻ bởi Hua Thanh Van | Ngày 10/05/2019 | 151

Chia sẻ tài liệu: Bài tập và thực hành 3 thuộc Tin học 11

Nội dung tài liệu:

CHƯƠNG IV
KIỂU DỮ LIỆU CÓ CẤU TRÚC
BÀI TẬP VÀ THỰC HÀNH 3
GV: HỨA THANH VÂN, THPTBC TX GÒ CÔNG
Bài 1: Tạo mảng A gồm n (n<=100) số nguyên, mỗi số có trị tuyệt đối không vượt quá 300. Tính tổng các phần tử của mảng là bội số của một số nguyên dương k cho trước.
1a) Hãy tìm hiểu và chạy thử chương trình sau đây….
Program Sum1 ; (1)
uses crt ; (2)
const nmax = 100 ; (3)
type MyArray = array [1..nmax] of integer ; (4)
var A : MyArray ; (5)
s,n,i,k : integer ; (6)
Begin (7)
clrscr ; randomize ; (8)
write(`nhap n= `) ; readln(n) ; (9)
for i:=1 to n do A[i] := random(300) - random(300) ; (10)
for i:=1 to n do write(A[i]:5) ; (11)
writeln ; (12)
write(`nhap k= `) ; readln(k) ; (13)
s:=0 ; (14)
for i:=1 to n do (15)
if A[i] mod k =0 then s := s+A[i] ; (16)
writeln(`tong can tim la: `,s) ; (17)
readln (18)
end. (19)
Câu hỏi:
MyArray là tên của kiểu dữ liệu hay tên biến?
Vai trò của nmax và n khác nhau thế nào? Có thể bỏ khai báo hằng nmax và viết n thay cho nmax trong khai báo kiểu mảng được không? Ví sao?
Những dòng lệnh nào tạo ra mảng A?
Lệnh gán A[i] := random(300) – random(300) ; (dòng 10) có ý nghĩa gì?
Câu lệnh s := s+A[i] (dòng 16) thực hiện bao nhiêu lần?

1b) Hãy đưa các câu lệnh sau đây vào những vị trí cần thiết nhầm sửa đổi chương trình trong câu a) để có được chương trình đưa ra số các số dương và số các số âm trong mảng.
Posi, neg: integer ;
Posi := 0 ; neg := 0 ;
if A[i] > 0 then posi := posi + 1 ;
else if A[i] , 0 then neg := neg +1 ;
Write (posi :4, neg :4) ;
Bài 2: viết chương trình tìm phần tử có giá trị lớn nhất của mảng và đưa ra màn hình chỉ số và giá trị của phần tử tìm được. Nếu có nhiều phần tử có cùng giá trị lớn nhất thì đưa ra phần tử có chỉ số nhỏ nhất
2a) Hãy tìm hiểu và chạy thử chương trình sau đây….
program MaxElement;
const Nmax=100;
type MyArray=array[1..Nmax] of integer;
var A:MyArray;
n,i,j: integer;
begin
write (`nhap so luong phan tu cua day so, n= `);
readln(n);
for i:=1 to n do
begin
write(`phan tu thu `,i,` = `);
readln(A[i]);
end;
j:=1;
for i:=2 to n do
if A[i]>a[j] then j:=i;
write(`chi so: `,j,` gia tri: `,A[j]:4);
readln
end.
2b) Chỉnh sửa chương trình trên để đưa ra chỉ số của các phần tử có cùng giá trị lớn nhất?
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Hua Thanh Van
Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)