Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 23.12.2010, 23:45   #1 (permalink)
dima112
Новичок
 
Регистрация: 20.12.2010
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Нужна помощь, массивы. Первый курс.

Паскаль:
Дан массив из n чисел. Поменять в массиве наибольшие и наименьшие элементы. Не могу разобраться как их поменять. С помощью другой переменной? Подскажите знающие люди. Заранее спасибо
dima112 вне форума   Ответить с цитированием

Старый 23.12.2010, 23:45
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Могу так же посоветовать вам прочитать данные темы

Нужна помощь в PHP
Массивы. Нужна помощь в доработке программы.
Нужна помощь

Старый 24.12.2010, 09:51   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от dima112 Посмотреть сообщение
Паскаль:
Дан массив из n чисел. Поменять в массиве наибольшие и наименьшие элементы. Не могу разобраться как их поменять. С помощью другой переменной? Подскажите знающие люди. Заранее спасибо
Конечно. Пусть, например, минимальным элементом массива A оказался A[7], а максимальным - A[2]. Вводите служебную переменную того же типа, что и компоненты массива (назовем ее Dummy). Далее пишем:
Код:
Dummy:=A[7];
A[7]:=A[2];
A[2]:=Dummy;
И всего делов-то!
Vladimir_S вне форума   Ответить с цитированием
Старый 26.12.2010, 01:33   #3 (permalink)
dima112
Новичок
 
Регистрация: 20.12.2010
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

А откуда мы узнали что именно a[7] - минимальный элемент? Числа то вводятся рандомно.
Ну вот написал как вы сказали, посмотрите тут ошибку..


program qq;
uses crt;
var
a:array [1..10] of integer;
i:byte;
m,h,b: integer;
begin
randomize;
m:=0;
h:=10;
for i:= 1 to 10 do
begin
a[i]:= random(11);
write(a[i]:3);
if a[i]>m then m:=a[i];
if a[i]<h then h:=a[i];
end;
b:=a[m];
a[m]:=a[h];
a[h]:=b;
writeln('');
writeln(' Максимальное число : ', m);
writeln(' Минимальное число: ', h);
end.
dima112 вне форума   Ответить с цитированием
Старый 26.12.2010, 01:35   #4 (permalink)
dima112
Новичок
 
Регистрация: 20.12.2010
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Понятно когда первый и последние элементы массива поменять.. там они выглядят так: a[1] и a[10], а когда максимальный и минимальный, мы ведь не знаем под каким индексом стоит это максимальное число..
dima112 вне форума   Ответить с цитированием
Старый 26.12.2010, 08:05   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

А Вы введите номера Im и Ih и чуть видоизмените цикл. Вместо
Цитата:
if a[i]>m then m:=a[i];
if a[i]<h then h:=a[i];
следует написать:
Код:
if a[i]>m then 
 begin
   m:=a[i];
   Im:=i;
 end;
if a[i]<h then 
 begin
  h:=a[i];
  Ih:=i;
 end;
Вот Ва и зафиксировали как величины, так и номера максимального и минимального элементов. Теперь осталось переставить a[Im] и a[Ih].
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 12:04.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.