Bài tập về mảng 2 chiều trong pascal

Uploaded by

ahuyahihi4

0% found this document useful (0 votes)

0 views

1 page

Copyright

© © All Rights Reserved

Share this document

Did 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ỀU

Uploaded by

ahuyahihi4

Jump to Page

You are on page 1of 1

Search inside document

Reward Your Curiosity

Everything you want to read.

Anytime. Anywhere. Any device.

No Commitment. Cancel anytime.

Bài tập về mảng 2 chiều trong pascal

  • What is Scribd?
  • Documents(selected)
  • Explore Documents

    Categories

    • Academic Papers
    • Business Templates
    • Court Filings
    • All documents
    • Sports & Recreation
      • Bodybuilding & Weight Training
      • Boxing
      • Martial Arts
    • Religion & Spirituality
      • Christianity
      • Judaism
      • New Age & Spirituality
      • Buddhism
      • Islam
    • Art
      • Music
      • Performing Arts
    • Wellness
      • Body, Mind, & Spirit
      • Weight Loss
    • Self-Improvement
    • Technology & Engineering
    • Politics
      • Political Science All categories

100% found this document useful (4 votes)

7K views

12 pages

Copyright

© Attribution Non-Commercial (BY-NC)

Available Formats

DOC, PDF, TXT or read online from Scribd

Share this document

Did 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ều

Jump 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 về mảng 2 chiều trong pascal
Bài tập về mảng 2 chiều trong pascal

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);

Bài tập về mảng 2 chiều trong pascal
Bài tập về mảng 2 chiều trong pascal

Reward Your Curiosity

Everything you want to read.

Anytime. Anywhere. Any device.

No Commitment. Cancel anytime.

Bài tập về mảng 2 chiều trong pascal

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.