Слепl 828x232i 6;в С.С.
Препl 828x232i 6;даватель: Выборова Нина Евгеньевна
Заданы три целочисленных массива: A[15], B[20], C[10]. Определить, какой из массивов имеет максимальное значение минимального элемента.
na, nb, nc A, B, C |
0 < nx <= 20 Массивы целых чисел, |Ai| <= 99, |
XX (:2) XX (:2) |
|||
maxarr | |||||
i min1, min2, min3 maxmin |
0 < i <= 10 Минимальные значения элементов массивов, |min1| <= 99 |maxmin| <= 99 |
|
XX (:2) XX (:2) XX (:2) |
1. Ввести элементы массивов A[na], B[nb], C[nc].
2. Найти минимальные значения в массивах A, B, C.
3. Сравнить мин. значения min1, min2, min3 в массивах A, B, C, определить, в каком массиве такое значение наибольшее (maxarr).
4. Вывести значение maxarr на экран/в файл.
Пусть содержание массивов A, B, C будет следующим:
A[na]:
min1 = -92
B[nb]:
min2 = -64
C[nc]:
min3 = -65
Массив B[nb] имеет максимальное значение минимального элемента среди всех трех массивов(-64).
Нахождение минимального элемента массива будет происходить в цикле. Сначала установим min = X[1] (где X - текущий массив). Пусть i - индекс текущего элемента массива. Если X[i] < min, присваиваем min значение X[i]. В противном случае переходим к следующему элементу.
A[15]: B[20]: C[15]: |
'B' |
Массив B имеет максимальное значение минимального элемента |
|
A[15]: B[20]: C[15]: |
ABC | ||
A[15]: B[20]: C[15]: |
BC |
Текст программы на ЯВУ Pascal
Program arrays;
const MAX = 20;
type
ma = array[1..MAX] of integer;
var
na, nb, nc, min1, min2, min3:integer;
dat1, dat2, dat3, res:TextFile;
A, B, C:ma;
maxarr:string;
procedure finput(var n:integer;
var X:ma;
var dat:TextFile);
var i:integer;
begin
Reset(dat);
readln(dat, n);
for i := 1 to n do
read(dat, X[i]);
CloseFile(dat);
end;
procedure findmin(const n:integer;
var X:ma;
var min:integer);
var i:integer;
begin
min := X[1];
for i := 1 to n do
if(X[i] < min) then
min := X[i];
end;
procedure fmaxmin(const min1, min2, min3:integer;
var maxarr:string);
var maxmin:integer;
begin
maxmin := min1;
maxarr := 'A';
if((min1 = min2) and (min2 = min3)) then
maxarr := 'ABC'
else if((min2 > maxmin) and (min2 = min3)) then
maxarr := 'BС'
else if(min2 > maxmin) then
maxarr := 'B'
else if(maxmin = min2) then
maxarr := 'AB'
else if(maxmin = min3) then
maxarr := 'AC'
else if(min3 > maxmin) then
maxarr := 'C';
end;
BEGIN
AssignFile(dat1, ParamStr(1));
AssignFile(dat2, ParamStr(2));
AssignFile(dat3, ParamStr(3));
AssignFile(res, ParamStr(4));
finput(na, A, dat1);
finput(nb, B, dat2);
finput(nc, C, dat3);
findmin(na, A, min1);
findmin(nb, B, min2);
findmin(nc, C, min3);
fmaxmin(min1, min2, min3, maxarr);
Rewrite(res);
write(res, maxarr);
CloseFile(res);
END.
Program arrays;
const MAX = 20;
type
ma = array[1..MAX] of integer;
var
na, nb, nc, min1, min2, min3:integer;
dat1, dat2, dat3, res:TextFile;
A, B, C:ma;
procedure finput(var n:integer;
var X:ma;
var dat:TextFile);
var i:integer;
begin
Reset(dat);
readln(dat, n);
for i := 1 to n do
read(dat, X[i]);
CloseFile(dat);
end;
function findmin(const n:integer;
var X:ma):integer;
var i, min:integer;
begin
min := X[1];
for i := 1 to n do
if(X[i] < min) then
min := X[i];
findmin := min;
end;
function fmaxmin(const min1, min2, min3:integer):string;
var maxmin:integer;
maxarr:string;
begin
maxmin := min1;
maxarr := 'A';
if((min1 = min2) and (min2 = min3)) then
maxarr := 'ABC'
else if((min2 > maxmin) and (min2 = min3)) then
maxarr := 'BС'
else if(min2 > maxmin) then
maxarr := 'B'
else if(maxmin = min2) then
maxarr := 'AB'
else if(maxmin = min3) then
maxarr := 'AC'
else if(min3 > maxmin) then
maxarr := 'C';
fmaxmin := maxarr;
end;
BEGIN
AssignFile(dat1, ParamStr(1));
AssignFile(dat2, ParamStr(2));
AssignFile(dat3, ParamStr(3));
AssignFile(res, ParamStr(4));
finput(na, A, dat1);
finput(nb, B, dat2);
finput(nc, C, dat3);
min1 := findmin(na, A);
min2 := findmin(nb, B);
min3 := findmin(nc, C);
Rewrite(res);
write(res, fmaxmin(min1, min2, min3));
CloseFile(res);
END.
|