Mẹo Có nhân xét gì về chỉ số đầu và chỉ số cuối trong khai báo mảng một chiều
Thủ Thuật về Có nhân xét gì về chỉ số đầu và chỉ số cuối trong khai báo mảng một chiều Chi Tiết
Hoàng Duy Minh đang tìm kiếm từ khóa Có nhân xét gì về chỉ số đầu và chỉ số cuối trong khai báo mảng một chiều được Update vào lúc : 2022-09-09 07:26:01 . Với phương châm chia sẻ Kinh Nghiệm Hướng dẫn trong nội dung bài viết một cách Chi Tiết Mới Nhất. Nếu sau khi Read tài liệu vẫn ko hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Ad lý giải và hướng dẫn lại nha.
Ta xét chương trình có sử dụng mảng một chiều setup một số trong những thuật toán giải những bài toán tìm kiếm và sắp xếp.
Bài tập 1. Tìm phần tử lớn số 1 của dãy số nguyên- Xác định bài toán:
- Input: Số nguyên dương N (N(leq)250) và dãy N số nguyên dương a1, a2 ,..., aN, mỗi số đều không vượt quá 500. Output: Chỉ số và giá trị của phần tử lớn số 1 trong dãy số đã cho (nếu có nhiều phần tử lớn số 1 chỉ việc đưa ra một trong số chúng).
- Bước 1. Nhập N và dãy a1,..., aN; Bước 2. Max (leftarrow) a1, i (leftarrow) 2; Bước 3. Nếu i > N thì đưa ra giá trị Max rồi kết thúc; Bước 4.
- Bước 4.1. Nếu ai > Max thì Max (leftarrow) ai; Bước 4.2. i (leftarrow) i + 1 rồi quay lại bước 3;
program TimMax;
uses crt;
const
Nmax = 250;
type
ArrInt = array[1..Nmax] of integer;
var
N,i, Max, csmax: integer;
A: ArrInt;
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;
Max:= A[1]; csmax:=1;
for i:=2 to N do
if A[i]> Max then
begin
Max:= A[i];
csmax:= i;
end;
writeln('Gia tri cua phan tu Max: ', Max);
writeln('Chi so cua phan tu Max: ', csmax);
readln
end.
Bài tập 2. Sắp xếp dãy số nguyên bằng thuật toán tráo đổi- Xác định bài toán:
- Input: Số nguyên dương N (N(leq)250) và dãy A gồm N số nguyên dương a1, a2,..., aN, mỗi số đều không vượt quá 500. Output: Dãy số A đã được sắp xếp thành dãy không giảm.
program sapxep;
uses CRT;
const Nmax = 250;
type
ArrInt = array[1..Nmax] of integer;
var
N,i,j,t: integer;
A: ArrInt;
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;
for j:=N downto 2 do
begin
for i:=1 to j-1 do
if A[i]> A[i+1] then
begin (*Trao doi A[i] va A[i+1]*)
t:= A[i];
A[i]:= A[i+1];
A[i+1]:= t
end;
end;
writeln('Day so duoc sap xep la: ');
for i:=1 to N do write(A[i]: 4);
readln
end.
Bài tập 3. Tìm kiếm nhị phân- Xác định bài toán:
- Input: Dãy A là dãy tăng gồm N (N (leq) 250) số nguyên dương a1, a2,..., aN và số nguyên k. Output: Chỉ số i mà ai = k hoặc thông báo "Khong tim thay" nếu không còn số hạng nào của dãy A có mức giá trị bằng k.
program TK_nhiphan;
uses crt;
const
Nmax = 250;
type
ArrInt = array[1..Nmax] of integer;
var
N, i, k: integer;
Dau, Cuoi, Giua: integer;
A: Arrint;
Tim_Thay: boolean;
begin
clrscr;
write('Nhap so luong phan tu cua day so, N = ');
readln(N);
writeln('Nhap cac phan tu cua day so tang: ');
for i:=1 to N do
begin
write('Phan tu thu ',i,' = ');
readln(A[i]);
end;
write('Nhap gia tri k = ');
readln(k);
Dau:= 1; Cuoi:=N; Tim_thay:= false;
while (Dau <= Cuoi) and not (Tim_Thay) do
begin
Giua:= (Dau+Cuoi) div 2;
if A[Giua] = k then
Tim_thay:= true
else
if A[Giua]>k then Cuoi:= Giua-1
else Dau:= Giua+1;
end;
if Tim_thay then writeln('Chi so tim duoc la: ', Giua)
else writeln('Khong tim thay');
readln
end.
Dạng 2. Một số bài tập vận dụng về mảng hai chiều
Bài tập 4. Chương trình sau tính và đưa ra màn hình hiển thị bảng cửu chương.program BangCuuChuong;
uses crt;
var
B: array[1..9,1..10] of integer;
B: bien mang hai chieu luu bang cuu chuong
i, j: integer;
begin
clrscr;
for i:=1 to 9 do
for j:= 1 to 10 do
B[i,j]:= i*j;
for i:=1 to 9 do
begin
for j:=1 to 10 do write(B[i,j]:4);
writeln;
end;
readln
end.
Bài tập 5. Chương trình sau nhập vào từ bàn phím những phần tử của mảng hai chiều B gồm 5 dòng, 7 cột với những phần tử là những số nguyên và số nguyên k. Sau đó, đưa ra màn hình hiển thị những phần tử của mảng có mức giá trị nhỏ hơn k.program MangHaiChieu;
uses crt;
var b: array[1..5, 1..7] of integer;
d, i, j, k: integer;
begin
clrscr;
writeln('Nhap cac phan tu cua mang theo dong: ');
for i:= 1 to 5 do
begin
for j:= 1 to 7 do
begin
read(b[i,j]);
write(' ');
end;
writeln;
end;
write('Nhap vao gia tri k = '); readln(k);
d:= 0;
writeln('DS cac phan tu mang nho hon ',k,':');
for i:= 1 to 5 do
for j:= 1 to 7 do
if b[i, j] < k then begin
write(b[i, j], ' ');
d:= d+1;
end;
if d = 0 then writeln(’Khong co phan tu nao nho hon ’,k);
readln
end.
Tải thêm tài liệu liên quan đến nội dung bài viết Có nhân xét gì về chỉ số đầu và chỉ số cuối trong khai báo mảng một chiều
Post a Comment