IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> задачи на массив и матрицу, тока начал изучать паскаль,очень хочется узнать как делаются эти задач
сообщение
Сообщение #1


Гость






1.дан массив R(N) N<=50. Переставить максимальный и минимальный элементы массива.
2.Дана целочисленная прямоугольная матрица.Определить минимальное из чисел,встречающихся в заданной матрице более одного раза.(оформить в виде функции).
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


medievil90
1. !-й элемент массива считаешь максимальным (минимальным) и в далее в цикле сравниваешь его с элементами массива. Ежелт больше (меньше), то соотвественно он и есть макс. (мин.).
Далее, меняешь их местами.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


The matrix has me!!!
**

Группа: Пользователи
Сообщений: 74
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


 
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
но, тебе наверняка это и не надо будет...


--------------------
"Брать производную можно научить даже обезьяну" - мой препод по матану! :-)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


А ты уверен за свой код??


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


The matrix has me!!!
**

Группа: Пользователи
Сообщений: 74
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Спасибо, Client, теперь уже нет...

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

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



теперь вроде бы правильно работает!!!


--------------------
"Брать производную можно научить даже обезьяну" - мой препод по матану! :-)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Цитата
теперь вроде бы правильно работает!!!
Вот именно что
Цитата
вроде


Сообщение отредактировано: Client -


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


The matrix has me!!!
**

Группа: Пользователи
Сообщений: 74
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


 
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...


--------------------
"Брать производную можно научить даже обезьяну" - мой препод по матану! :-)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






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] }
?
Или программа теперь тем лучше, чем больше непонятных действий делает?
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 3:36
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name