Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2012, 17:50   #1
veronik0095
 
Регистрация: 17.10.2012
Сообщений: 8
По умолчанию задача массив

помогите пожалуйста:'( очень нужно решить задачу в паскале:

Дан одномерный целочисленный массив, состоящий из k элементов(5<k<100). Необходимо поменять местами минимальный и максимальный элементы массива.
Входный файл: 4 7 1 23 56 29
Выходный файл: 4 7 56 23 1 29

Заранее благодарна!!!
veronik0095 вне форума Ответить с цитированием
Старый 17.10.2012, 17:59   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Цитата:
Как найти максимальный элемент:
Для этого необходимо использовать метод пузырька (другое название - метод коробочки). В чем он заключается? Проще простого:
Код:
1. Берем первый элемент и кладем его в коробку.
2.Берем следующий элемент и если он больше того, что лежит в коробке - опустошаем коробку и положим туда данный элемент.
3. Идите на шаг 2, пока не закончатся элементы.
4. В коробке - максимальный элемент.
вот только берем две коробочки... и во вторую помещаем номер элемента...
аналогично и с минимальным...

обмен местами... I_max и I_min те самые "коробочки" в которых индексы максимального и минимального элементов мссива...
Код:
buf := mas[I_max];
mas[I_max] := mas[I_min];
mas[I_min] := buf;
p.s. справка
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 17.10.2012, 18:04   #3
veronik0095
 
Регистрация: 17.10.2012
Сообщений: 8
По умолчанию

оооох а бы решение????3й час сижу чушь получается какая-то(
veronik0095 вне форума Ответить с цитированием
Старый 17.10.2012, 18:07   #4
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Код:

I_max := 1;
I_min := 1;
for i:=2 to k do
  begin
    if mas[i] > mas[i_max] then
      i_max := i;
    if mas[i] < mas[i_min] then
      i_min := i;
  end;
buf := mas[I_max];
mas[I_max] := mas[I_min];
mas[I_min] := buf;
ввод и вывод сами сделаете...
p.s. пример чтения/записи файла
пишу код не только за печеньки

Последний раз редактировалось VIK_aka_TOR; 17.10.2012 в 18:15.
VIK_aka_TOR вне форума Ответить с цитированием
Старый 17.10.2012, 18:10   #5
veronik0095
 
Регистрация: 17.10.2012
Сообщений: 8
По умолчанию

спасиииибочки большое сейчас попробую
veronik0095 вне форума Ответить с цитированием
Старый 17.10.2012, 18:17   #6
veronik0095
 
Регистрация: 17.10.2012
Сообщений: 8
По умолчанию

а так тоже не получается(((((
veronik0095 вне форума Ответить с цитированием
Старый 17.10.2012, 18:21   #7
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Цитата:
Сообщение от veronik0095 Посмотреть сообщение
а так тоже не получается(((((
в четвертом посте добавил ссылку на пример работы с файлами...
учитесь делать что-либо сами... так намного интереснее...

или же выкладывайте свою "чушь", будем разбираться...
p.s. при оформлении кода используйте кнопку # (решетка)
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 17.10.2012, 19:00   #8
veronik0095
 
Регистрация: 17.10.2012
Сообщений: 8
По умолчанию

с учителем начинали решать а дальше все
Program massiv;
var k: array [5..100] of integer;
min, max, i: integer;
Begin
randomize;
for i:=5 to 100 do begin
k[i]:=random(30);
writeln('k[',i,']=;k[i]);
readln(k[i]);
end;
max:=5; min:=5;
for i:=6 to 100 do begin
if k[i]<min then min :=k[i];
if k[i]>max then max :=k[i];
end;
i:=k[max];
k[max]:=k[min];
k[min]:=i;
writeln('vvedite k');
end.
veronik0095 вне форума Ответить с цитированием
Старый 17.10.2012, 22:07   #9
veronik0095
 
Регистрация: 17.10.2012
Сообщений: 8
По умолчанию

не поможете??
veronik0095 вне форума Ответить с цитированием
Старый 17.10.2012, 22:26   #10
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

а если так?
Код:
var
mas: array [1..100] of integer;
k,min, max, i, buf: integer;
Begin
randomize;
writeln('vvedite k');
readln(k);
// первоначальный массив
for i:=1 to k do
  begin
    mas[i]:=random(30);
    writeln('a[',i,']= ',mas[i]);
  end;
  
// ищем минимум и максимум
min := 1;
max := 1;
for i:=2 to k do 
  begin
   if mas[i] < mas[min] then 
      min :=i;
   if mas[i]> mas[max] then 
      max :=i;
  end;
// меняем местами мин и мах 
buf := mas[min];
mas[min] := mas[max];
mas[max] := buf; 
writeln;
// выводим преобразованный массив
for i:=1 to k do
  writeln('a[', i,']=', mas[i]);
readln;  
end.
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на массив валери Помощь студентам 2 30.06.2012 10:49
Задача на массив Начинающий програм Помощь студентам 3 23.11.2011 20:00
Задача на массив Влад. Паскаль, Turbo Pascal, PascalABC.NET 10 24.10.2011 20:38
Задача на массив Huk.To Общие вопросы C/C++ 0 22.10.2011 23:19
задача на массив кира1005 Паскаль, Turbo Pascal, PascalABC.NET 1 25.06.2011 19:33