Chương 4: Kiểu dữ liệu có cấu trúc

Xem toàn bộ tài liệu Lớp 11: tại đây

Giải Bài Tập Tin Học 11 – Bài tập và thực hành 3 giúp HS giải bài tập, giúp cho các em hình thành và phát triển năng lực sử dụng công nghệ thông tin và truyền thông:

    1. 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.

    2. Nội dung

    Bài 1 (trang 63 sgk Tin 11): 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 (trang 64 sgk Tin 11): 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) 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 giải này có hữu ích với bạn không?

    Bấm vào một ngôi sao để đánh giá!

    Đánh giá trung bình 4 / 5. Số lượt đánh giá: 935

    Chưa có ai đánh giá! Hãy là người đầu tiên đánh giá bài này.

    --Chọn Bài--

    Tài liệu trên trang là MIỄN PHÍ, các bạn vui lòng KHÔNG trả phí dưới BẤT KỲ hình thức nào!

    Tải xuống