SGK Tin Học 11 - Bài tập và thực hành 3

  • Bài tập và thực hành 3 trang 1
  • Bài tập và thực hành 3 trang 2
Mục đích, yêu cầu
Nâng cao kĩ năng sử dụng một số câu lệnh và một số kiểu dữ liệu thông qua việc tìm hiểu, chạy thử các chương trình có'sẵn;
Biết giải một số bài toán tính toán, tìm kiếm đơn giản trên máy tính.
Nội dung
Bài 1. Tạo mảng A gồm n (n < 100) số nguyên, mỗi số có giá 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.
a) Hãy tìm hiểu và chạy thử chương trình sau đây: program Suml; uses crt; const nmax=100;
type MyArray=array[1..ranax] of integer; var A; MyArray;
s,n,i,k: integer;
begin
clrscr; randomize; . write('Nhap n = ');
readln(n); {Tao ngau nhien mang gom n so nguyên} for i':= 1 to n do A[i]:= random(301)- random(301); for i:= 1 to n do write(A[i]:5); {in ra mang vua tao} writeln;
write('Nhap k = '); readln(k); s: =Ó;
for i:=l to n do
if A[i] mod 'k = 0 then s:=s+A[i]; writeln('Tong can tinh la: ',s); readln
end.
Chú ý: Hàm chuẩn random(rí) cho giá trị là sô' nguyên ngẫu nhiên trong đoạn từ 0 đến n - 1, còn thủ tục randomize khởi tạo cơ chế sinh số ngẫu nhiên.
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; writeIn(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.
Hãy tìm hiểu chương trình sau đây:
program MaxElement; const Nmax= 100;
type MỵArray = 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:=l 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.
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.