Помощь - Поиск - Пользователи - Календарь
Полная версия: задачи на массив и матрицу
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
medievil90
1.дан массив R(N) N<=50. Переставить максимальный и минимальный элементы массива.
2.Дана целочисленная прямоугольная матрица.Определить минимальное из чисел,встречающихся в заданной матрице более одного раза.(оформить в виде функции).
Ozzя
medievil90
1. !-й элемент массива считаешь максимальным (минимальным) и в далее в цикле сравниваешь его с элементами массива. Ежелт больше (меньше), то соотвественно он и есть макс. (мин.).
Далее, меняешь их местами.
Yevgeny
 
Program Massiv;
{Uses max_crt;}
Const k=10; {2<=k<=50 вводи что хочешь...}
Type
t=array[1..k] of integer;
Var
x:t; i,max,min,Imax,Imin,tmp:integer;
Begin
{clrscr;}
for i:=1 to k do read(x[i]);
readln;
max:=x[1];
min:=x[2];
For i:=1 to k do
Begin
if max < x[i] then begin
max:=x[i];
Imax:=i;
end;
if min > x[i] then begin
min:=x[i];
Imin:=i;
end;
end;
tmp:=x[Imin];
x[Imin]:=x[Imax];
x[Imax]:=tmp;
For i:=1 to k do write(x[i]:3);
End.



тока вот не знаю как быть когда в массиве один элемент unsure.gif
но, тебе наверняка это и не надо будет...
Client
А ты уверен за свой код??
Yevgeny
Спасибо, Client, теперь уже нет...

Добавлено через 3 мин.

max:=x[1];
min:=x[k];



теперь вроде бы правильно работает!!!
Client
Цитата
теперь вроде бы правильно работает!!!
Вот именно что
Цитата
вроде
Yevgeny
 
Program Massiv;
{Uses max_crt;}
Const k=10; {k<=50 вводи что хочешь...}
Type
t=array[1..k] of integer;
Var
x:t; i,max,min,Imax,Imin,tmp:integer;
Begin
{clrscr;}
readln;
for i:=1 to k do read(x[i]);
readln;

Imax:=1;
max:=x[Imax];
Imin:=k;
min:=x[Imin];
if max < min then begin
Imax:=k;
max:=x[Imax];
Imin:=1;
min:=x[Imin];
end;
For i:=1 to k do
Begin
if max < x[i] then begin
max:=x[i];
Imax:=i;
end;
end;
For i:=1 to k do
Begin
if min > x[i] then begin
min:=x[i];
Imin:=i;
end;
end;
tmp:=x[Imin];
x[Imin]:=x[Imax];
x[Imax]:=tmp;
For i:=1 to k do write(x[i]:3);
End.



unsure.gif unsure.gif unsure.gif
ещё раз спасибо, Client...
volvo
Yevgeny, а теперь расскажи, зачем тебе непонятные условия и море циклов вместо того, чтобы просто:
imax := 1; imin := 1;
for i := 2 to k do begin
if x[imax] < x[i] then imax := i;
if x[imin] > x[i] then imin := i;
end;
{ и менять x[imin] <-> x[imax] }
?
Или программа теперь тем лучше, чем больше непонятных действий делает?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.