1. Trang chủ
  2. » Trung học cơ sở - phổ thông

slide 1 giáo viên hd thầy lê minh triết sinh viên th nguyễn hoàng anh kiểm tra bài cũ câu hỏi 1 định nghĩa mảng một chiều câu hỏi 2 cách khai báo mảng một chiều trong pascal bài

16 20 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 2,22 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giáo viên HD: thầy Lê Minh Triết.. Sinh viên TH: Nguyễn Hoàng Anh..[r]

Trang 1

Giáo viên HD: thầy Lê Minh Triết Sinh viên TH: Nguyễn Hoàng Anh.

Trang 2

Kiểm tra bài cũ:

Câu hỏi 1:

Định nghĩa mảng một chiều?

Câu hỏi 2:

Cách khai báo mảng một chiều trong pascal?

Trang 3

Bài Toán Số 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 quá 300 Tính tổng của 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.

YÊU CẦU

CỦA BÀI TOÁN LÀ GÌ?

Trang 4

Các yêu cầu của bài toán:

Yêu cầu 1: Tạo mảng và nhập vào mảng số

nguyên có n phần tử (n≤100) Mỗi phần tử có giá trị tuyệt đối không quá 300.

Yêu cầu 2: Tìm các số trong mảng là bội số của một số nguyên dương k cho trước Và tính tổng của chúng.

Trang 5

Với yêu cầu số I:

• Bước 1: Nhập vào số phần tử n.

• Bước 2: cho i chạy từ 1n

•Với mỗi i ta nhập vào giá trị cho a[i].

Với yêu cầu số I:

Thuật Toán- Cài Đặt Bằng Pascal.

-writeln('nhap vao so phan tu (n) cua mang: ');

readln(n);

for i:=1 to n do

begin

writeln('nhap vao phan tu thu ',i,': ');

readln(a[i]);

end;

Trang 6

-Với yêu cầu số II:

• Bước 1: Nhập vào số K.

• Bước 2: cho i chạy từ 1n

•Với mỗi i ta kiểm tra a[i] mod K=0?

•Nếu có thì cộng a[i] vào tổng.

Với yêu cầu số II:

Thuật Toán- Cài Đặt Bằng Pascal.

-writeln('nhap vao mot so nguyen K: ');

readln(k);

s:=0;

for i:=1 to n do

if a[i] mod k=0 then

s:=s+a[i];

writeln('tong cac phan tu la boi cua ',k,' la: ',s);

Trang 7

-Chương trình hoàn chỉnh:

Program Thuc_Hanh3;

uses crt;

type myarr=array [1 100] of integer;

var a:myarr;

var n,i,k,s:integer;

Begin

clrscr;

writeln('nhap vao so phan tu (n) cua mang: ');

readln(n);

for i:=1 to n do

begin

writeln('nhap vao phan tu thu ',i,': ');

readln(a[i]);

end;

for i:=1 to n do write(a[i],' - ');

writeln;

writeln('nhap vao mot so nguyen K: ');

readln(k);

s:=0;

for i:=1 to n do

if a[i] mod k=0 then s:=s+a[i];

writeln('tong cac phan tu la boi cua ',k,' la: ',s);

readln End

Chương trình của chúng ta đã hoàn thiện chưa? Nếu chưa

Các bạn hãy chỉ ra một trường hợp mà chương trình sẽ bị

lỗi? (gợi ý dùng các quy tắc toán học để dự đoán)

Trang 8

Bài Toán Số 2 :

Tìm phần tử lớn nhất mảng Nếu có trên hai phần tử có cùng giá trị lớn nhất thì đưa ra phần tử có chỉ

Trang 9

Yêu cầu của bài toán:

Yêu cầu: Tìm phần tử có giá trị lớn nhất trong mảng Nếu có trên 2

phần tử có gía trị lớn nhất thì chỉ

lấy phần tử có chỉ số nhỏ nhất.

Trang 10

Chúng ta giải quyết

như thế nào?

Trang 11

Mô Tả

• Bước 1: gán biến tạm max:=a[1]; maxpos:=1;

• Bước 2: cho i chạy từ 2n

•Với mỗi i ta kiểm tra a[i]>max?

•Nếu a[i]>max thì max:=a[i] và maxpos:=i;

Thuật Toán- Cài Đặt Bằng Pascal.

-max:=a[1];

maxpos:=1;

for i:=2 to n do

if a[i] > max then

begin

max:=a[i];

maxpos:=i;

end;

writeln('phan tu co gia tri lon nhat mang la: ',max);

writeln('xuat hien o vi tri dau tien la: ',maxpos);

Trang 12

-Chương trình hoàn chỉnh:

Program Thuc_Hanh3;

uses crt;

type myarr=array [1 100] of integer;

var a:myarr;

Var n,i,max,maxpos:integer;

begin

clrscr;

readln(n);

for i:=1 to n do

begin

writeln('nhap vao phan tu thu ',i,': ');

readln(a[i]);

end;

for i:=1 to n do write(a[i],' - ');

writeln;

max:=a[1];

maxpos:=1;

for i:=2 to n do

if a[i] > max then begin

max:=a[i];

maxpos:=i;

end;

writeln('phan tu co gia tri lon nhat mang la: ',max); writeln('xuat hien o vi tri dau tien la: ',maxpos);

readln end.

Nếu thay dòng lệnh: if a[i] > max then bằng dòng lệnh sau:

if a[i] >= max then thì bài toán của chúng ta sẽ thay đổi như

thế nào?

Trang 13

Trong bài toán trên với n nhỏ thì chúng ta có thể dễ dàng nhập giá trị cho từng phần tử Nhưng với những chương trình có lượng dữ liệu lớn

chẳng hạn n>=100 thì việc nhập giá trị cho từng phần tử gần như là việc rất khó khăn Vậy làm thế nào ta có thể kiểm tra chương trình với n lớn nhưng tiết kiệm được nhiều thời gian????

Trang 14

Hàm Random(n) là hàm dùng để tạo ra các giá trị ngẫu nhiên trong khoảng từ 1n-1 Dùng hàm Random(n) khi ta muốn tạo ra các giá trị ngẫu

nhiên để kiểm tra tính đúng đắn của chương trình và để tiết kiệm thời gian Lưu ý khi dùng hàm

Random(n) ta phải gọi thủ tục Randomize() để

khởi tạo cơ chế này.

Câu hỏi bổ sung: có thể dùng hàm random(n)

trong những chỗ nào trong bài thực hành trên

để tiết kiệm thời gian?

Trang 15

Viết chương trình thực hiện việc nhập vào 100 số nguyên có giá trị của mỗi số không quá 200 Từ các số đó hãy tính tổng các số là ước của 200?

Ngày đăng: 16/04/2021, 05:10

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w