Lập Trình Pascal Bài tập thực hành về Kiểu mảng 1

Đăng: AdamWilling
770 Lượt Xem
Thời Gian: 20/01/2019 lúc 08:50:27

Bài tập thực hành về Kiểu mảng 1

Bài 1 : Tạo mảng A gồn 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) Tìm hiểu và chạy thử chương trình sau đây:

program sum1;
uses crt;
const nmax=100;
type MyArray=array[1..nmax] of integer;
var A:MyArray;
    s,n,i,k:integer;
begin
	clrscr;
	randomize;
	write('Nhap N=');
	readln(n);
	for i:=1 to n do A[i]:=random(301)-random(301);
	for i:=1 to n do write(A[i]:5);
	writeln;
	write('Nhap k=');
	readln(k);
	s:=0;
	for i:=1 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(n) 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.

b) 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.

program sum1;
uses crt;
const nmax=100;
type MyArray=array[1..nmax] of integer;
var A:MyArray;
    s,n,i,k,posi,neg:integer;
begin
	clrscr;
	randomize;
	write('Nhap N=');
	readln(n);
	for i:=1 to n do A[i]:=random(301)-random(301);
	for i:=1 to n do write(A[i]:5);
	writeln;
	s:=0;
	posi:=0;neg:=0;
	for i:=1 to n do
		if A[i] > 0 then posi:=posi+1
		else
		neg:=neg+1;
	writeln(posi:4,neg:4);
	readln
end.

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.

a) Hãy tìm hiểu chương trình sau đây:

program MaxElement;
uses crt;
const nmax=100;
type MyArray=array[1..nmax] of integer;
var A:MyArray;
    n,i,j:integer;
begin
	clrscr;
	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.

Kết quả:

Bài Tập Thực Hành Về Kiểu Mảng 1 | ChiaSe24h

b) 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.

program MaxElement;
uses crt;
const nmax=100;
type MyArray=array[1..nmax] of integer;
var A:MyArray;
    n,i,j:integer;
begin
	clrscr;
	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;
	for i:=1 to n do
		if A[i]=A[j]
		then write(i:4);
	readln
end.

Kết quả:

Đưa ra chỉ số của các phần tử có cùng giá trị lớn nhất.

Bài Tập Thực Hành Về Kiểu Mảng 1 | ChiaSe24h
Giới Thiệu

AdamWilling

Hạnh phúc lớn nhất là sống hài lòng từng chút một.
Bình Luận Bài Viết
Chia Sẻ Bài Viết
Link:
BBCode:
HTML:
Cùng Chuyên Mục
Đề Xuất
Tiện Ích Online
Fanpage Facebook