Bài tập về mảng 2 chiều trong pascal
Uploaded byahuyahihi4 Show
0% found this document useful (0 votes) 0 views 1 page Copyright© © All Rights Reserved Share this documentDid you find this document useful?Is this content inappropriate?0% found this document useful (0 votes) 0 views1 page BÀI TẬP MẢNG 2 CHIỀUUploaded byahuyahihi4 Jump to Page You are on page 1of 1 Search inside document Reward Your CuriosityEverything you want to read. Anytime. Anywhere. Any device. No Commitment. Cancel anytime.
100% found this document useful (4 votes) 7K views 12 pages Copyright© Attribution Non-Commercial (BY-NC) Available FormatsDOC, PDF, TXT or read online from Scribd Share this documentDid you find this document useful?100% found this document useful (4 votes) 7K views12 pages Tìm phần tử nhỏ nhất và lớn nhất của mảng 2 chiềuJump to Page You are on page 1of 12 Ví dụ 1 . Tìm phần tử nhỏ nhất và lớn nhất của mảng 2 chiều và đổi chỗ chúng chonhau : procedure exchange;var i,j,i1,j1,i2,j2,tg : integer; begini1 := 1; j1 := 1; {i1,j1 là vị trí phần tửmin}i2 := 1; j2 := 1; {i2,j2 là vị trí phần tửmax}for i := 1 to m dofor j := 1 to n do beginif a[i1,j1] > a[i,j] then begin {so sánh tìm min}i1 := i; j1 := j;{ghi nhận vị trí min mới}end;if a[i2,j2] < a[i,j] then begin {so sánh tìm max}i2 := i; j2 := j;{ghi nhận vị trí max mới}end;end;tg := a[i1,j1]; a[i1,j1] := a[i2,j2];a[i2,j2] := tg; {đổi chỗ}end;Tìm max cũng tương tự, chỉ thay dấu so sánh. procedure timmax;var i, k : integer; begink := 1;for i := 2 to n doif a[k] < a[i] then k := i;writeln('Phan tu lon nhat laa[',k,']=',a[k]);end; BÀI TẬP 2Tìm phần tử nhỏ nhất, lớn nhất của một mảng (cần chỉ ra cả vị trí của phần tử). procedure timmin;var i, k : integer; begink := 1;for i := 2 to n doif a[k] > a[i] then k := i;writeln('Phan tu nho nhat laa[',k,']=',a[k]);end; procedure timmax;var i, k : integer; begink := 1;for i := 2 to n doif a[k] < a[i] then k := i;writeln('Phan tu lon nhat laa[',k,']=',a[k]);end; BÀI TẬP 1Nhập vào một số n (5<=n<=10) và n phần tử của dãy a, 1 i <100 (có kiểm tra dữliệu khi nhập).a)In ra các phần tử là số nguyên tố của dãy.b)Tính ước chung lớn nhất của tất cả các phần tử của dãy.c)Tính biểu thức sau: nn a....aaS ++\= 2211 d)Sắp xếp dãy tăng dần và in ra dãy sau sắp xếp. Khai báo dữ liệu: uses crt;var n : integer;a : array[1..10] of integer; {n<=10 nên mảng có tối đa 10 phần tử} procedure nhap;var i : integer; beginclrscr;write('NHAP VAO SO PHAN TU N\= ');repeatreadln(n);if (5<=n) and (n<=10) then break; {nếu thoã mãn thì dừng vòng lặp}writeln('Khong hop le(5<=n<=10). Nhap lai!!!'); {ngược lại thì báo lỗi}until false;writeln('NHAP VAO N PHAN TU(1 i là nguyên tốthì in ra}end;function UCLN(a,b: integer): integer;var r : integer; beginwhile b<>0 do beginr := a mod b;a := b; b := r;end;UCLN := a;end; Thủ tục in các số nguyên tố của một mảng procedure TinhUC;var i,u : integer; begin function ngto(n : integer): boolean; {hàmkiểm tra nguyên tố, xem giải thích ở phầntrên}var i : integer; beginngto := false;if n < 2 then exit;for i := 2 to round(sqrt(n)) doif n mod i = 0 then exit;ngto := true;end; Thủ tục nhập dữ liệu, có kiểm tra khi nhập . procedure tong;var s : real; i : integer; {s phải khai báo là sốthực để tránh tràn số} begins := 0;for i := 1 to n do s := s +hammu(a[i],i); {s := s + (a i ) i }writeln('Tong can tinh:',s:10:0);end; Thủ tục tính tổng các phần tử có lấy mũ: Chương trình chính: lần lượt gọi từng thủtục BEGINnhap;inngto;tinhuc;tong;sxep;END.u := a[1];{u là UCLN của các phần tử từ 1 đếni}for i := 2 to n do u := UCLN(u,a[i]);{là UCLN của các phần tử từ 1 đến i-1 và a i }writeln('UCLN cua ca day la:',u);end;function hammu(a : real; n : integer): real;{hàm mũ tính a n }var s : real; i : integer; begins := 1;for i := 1 to n do s := s * a;hammu := s;end; Thủ tục tính UCLN của các phần tử của một mảng procedure sxep;var i,j,tg : integer; beginfor i := 1 to n-1 dofor j := i + 1 to n doif a[i] \> a[j] then begintg :\= a[i];a[i] := a[j]; a[j] := tg;end;writeln('DAY SAU KHI SAP XEPTANG DAN:');for i := 1 to n do writeln(a[i]);end; Thủ tục sắp xếp tăng dần các phần tử củamột mảng: Ví dụ 3 . Sắp xếp giảm dần cột thứ k. procedure sapxep(k: integer); Reward Your CuriosityEverything you want to read. Anytime. Anywhere. Any device. No Commitment. Cancel anytime. Mảng 2 chiều trong Pascal là gì?Mảng hai chiều là một dãy hữu hạn của hữu hạn của phần tử. Mảng được đặt tên và một phần tử có kiểu dữ liệu là mảng và gồm nhiều phần tử con. Mỗi phần tử con cùng kiểu dữ liệu. Array trong Pascal là gì?Như đã biết trong các giáo trình Pascal, mảng (Array) là một kiểu dữ liệu có cấu trúc lưu trữ các phần tử cùng kiểu và truy cập theo chỉ số (index). Có hai loại mảng: mảng tĩnh và mảng động. |