Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
175 / 172 / 40
Регистрация: 14.11.2009
Сообщений: 507
1

2 минимума массива

17.11.2009, 01:50. Показов 6014. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые программисты!,помогите, пожалуйста, з задачей,срочно нужно...я уже просил об этом в предыдущей теме ,но никто так и робочего кода не выложил.
Задача такая : найти 2 минимума в массиве А с N элементов.(Пример в массиве А(-1,4,0,3,12,6) - это будут -1 и 0)
вот мой код :

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
program n20;
var
a:array[1..100] of integer;
i,min1,min2,n:integer;
begin
writeln('vvedit rozmir massiva');
readln(n);
randomize;
writeln('massiv');
for i:=1 to n do begin
a[i]:=random(100)-50;
write(a[i],' ');
end;
writeln;
min1:=a[1];
for i:=n downto 2 do
if (min1>a[i]) xor (min1=min2) then begin
min2:=min1;
min1:=a[i];
end;
writeln('1 minimalnyj element ',min1);
writeln('2 minimalnyj element ',min2);
end.
но цикл обработывает только те элементы,которые правее 1 максимуму,то есть если 2 максимум по индексу левее 1 максимума,оно эго не выводит
помогите переделать алгоритм ,или если ошибки критичны сделать иный,буду очень признателен.

Добавлено через 2 минуты
п.с если цикл for i:=n downto do 1 заменить на for i:=1 to n do ,то цикл будет проходить только элементы до 1 максимума
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2009, 01:50
Ответы с готовыми решениями:

Найти среднее арифметическое Sr максимума и минимума массива.
Ввести одномерный массив А , вывести его. Найти среднее арифметическое Sr максимума и минимума...

Найти сумму максимума среди чётных и минимума среди нечётных элементов массива
1. Дан одномерный массив. Найти сумму максимума среди чётных и минимума среди нечётных. 2. Дана...

Поиск минимума
1. Пользователь вводит число целое неотрицательное число n (не превосходящее 100), а затем он...

Определение минимума функции
Составить подпрограмму определения минимума функции y=f(x), заданной в дискретных точках отрезка с...

13
localhost
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
17.11.2009, 02:07 2
М.б. так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
var a:array[1..100] of integer;
    i,min1,min2,n:integer;
 
begin
 
  writeln('vvedit rozmir massiva');
  readln(n);
  randomize;
  writeln('massiv');
  for i:=1 to n do
   begin
     a[i]:=random(100)-50;
     write(a[i],' ');
   end;
 
  writeln;
  min2:=0;
  for i:=1 to n do
   begin
    if a[i]>min2 then
     min2:=a[i];
   end;
  for i:=1 to n do
   begin
    if a[i]<min1 then
     begin
      min1:=a[i];
     end;
    if (a[i]<min2) and (a[i]>0) then
     min2:=a[i];
   end;
   
writeln('1 минимальное  отрицательное ',min1);
  writeln('2 минимальное положительное ',min2);
end.
1
175 / 172 / 40
Регистрация: 14.11.2009
Сообщений: 507
17.11.2009, 02:10  [ТС] 3
нет (
vvedit rozmir massiva
10
massiv
-21 0 -7 46 25 11 -30 -10 -12 -25
1 minimalnyj element -30
2 minimalnyj element 11

у меня хоть выводило 2 максимум правильно в определенном условии,но всёравно спасибо !
0
localhost
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
17.11.2009, 02:12 4
я навер не правильно понял,привиди еще 1 пример как должно быть !
на это:
vvedit rozmir massiva
10
massiv
-21 0 -7 46 25 11 -30 -10 -12 -25
1 minimalnyj element -30
2 minimalnyj element 11
1
175 / 172 / 40
Регистрация: 14.11.2009
Сообщений: 507
17.11.2009, 02:17  [ТС] 5
-5 19 -10 13 31 39 11 -3 21 39
1 minimalnyj element -10
2 minimalnyj element 11

так всмысле 1 элемент правильно ищет,а второй в этом случае должен быть -5

Добавлено через 2 минуты
а должно быть
-5 19 -10 13 31 39 11 -3 21 39
1 minimalnyj element -10
2 minimalnyj element -5 !!!!!!!!!!!!!!!!!!!!!!!!!!!

))
0
localhost
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
17.11.2009, 02:37 6
Перенести его на a:[1],и следующий цикл for начать с i:=2...

Добавлено через 23 секунды
шас попробую сделать

Добавлено через 13 минут
Так: ?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
var a:array[1..100] of integer;
    i,min1,min2,n,k:integer;
 
begin
 
  writeln('vvedit rozmir massiva');
  readln(n);
  randomize;
  writeln('massiv');
  for i:=1 to n do
   begin
     a[i]:=random(100)-50;
     write(a[i],' ');
   end;
 
  writeln;
  min2:=0;
  for i:=1 to n do
   begin
    if a[i]>min2 then
     min2:=a[i];
   end;
  for i:=1 to n do
   begin
    if a[i]<min1 then
     begin
      min1:=a[i];
 
     k:=a[1]; a[1]:=min1; a[i]:=k;
     end;
    end;
    
     for i:=2 to n do
      begin
       if a[i]<min2 then
       min2:=a[i];
      end;
       
 
writeln('1 минимальный ',min1);
  writeln('2 минимальный ',min2);
end.
1
175 / 172 / 40
Регистрация: 14.11.2009
Сообщений: 507
17.11.2009, 02:48  [ТС] 7
о спасиба тебе большое именно так просто и понятно а теперь смотри как я сделал,конечно алгоритм кривой но я сам его сделал )))

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
program n20;
var
a:array[1..100] of integer;
i,min1,c,d,min2,n:integer;
begin
writeln('vvedit rozmir massiva');
readln(n);
randomize;
writeln('massiv');
for i:=1 to n do begin
a[i]:=random(100)-40;
write(a[i],' ');
end;
writeln;
min1:=a[1];
for i:=1 to n do
if min1>a[i] then min1:=a[i];
min2:=min1;
for i:=1 to n do
if (min2>a[i]) xor (min2=min1) then min2:=a[i];
c:=min2;
for i:=n downto 1 do
if (min2>a[i]) xor (min2=min1) then min2:=a[i];
d:=min2;
writeln('1 minimalnyj element ',min1);
if c<d then
writeln('2 minimalnyj element ',c);
if d<c then
writeln('2 minimalnyj element ',d);
end.
0
localhost
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
17.11.2009, 02:52 8
pikusfikus, Главное результат
1
175 / 172 / 40
Регистрация: 14.11.2009
Сообщений: 507
17.11.2009, 02:54  [ТС] 9
только объясни,пожалуйста, зачем ты ввел переменною k ?ти же ее нигде не использовал
0
localhost
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
17.11.2009, 02:54 10
Цитата Сообщение от Wassago Посмотреть сообщение
k:=a[1]; a[1]:=min1; a[i]:=k;
для замены
0
175 / 172 / 40
Регистрация: 14.11.2009
Сообщений: 507
17.11.2009, 02:57  [ТС] 11
аахах ну да главное,только не тогда когда задачае превишет 64кб

Добавлено через 1 минуту
Цитата Сообщение от Wassago Посмотреть сообщение
для замены
о дейстивтельно )я просто с массивами розбираюся толька 3 дня,еше толком не понял ))а ведь это только сегодня читал

Добавлено через 39 секунд
еше раз тебе большое спасибо)
0
localhost
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
17.11.2009, 03:00 12
Цитата Сообщение от pikusfikus Посмотреть сообщение
аахах ну да главное,только не тогда когда задачае превишет 64кб
pikusfikus, я ее для примера втык,можешь ее так:
k:byte;
много меньше будет весит)
1
175 / 172 / 40
Регистрация: 14.11.2009
Сообщений: 507
17.11.2009, 03:02  [ТС] 13
ахаха да это уже формальность ))
0
0 / 0 / 0
Регистрация: 15.03.2021
Сообщений: 2
14.11.2022, 11:40 14
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
program zadacha1;
const n = 6;
var a: array[1..n] of integer; 
i, min, min1:integer;
begin
for i:=1 to n do begin
  readln(a[i]);
  end;
  
  min := a[1];
  min1 := a[1];
  
  for i := 2 to n do begin
  if min > a[i] then min := a[i];
  if (min1 <= min) and (a[i] > min) then min1 := a[i]; 
  end;
  
    writeln; writeln('Мин.элемент массива №1: ', min);
    writeln('Мин.элемент массива №2: ', min1)
end.
0
14.11.2022, 11:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2022, 11:40
Помогаю со студенческими работами здесь

нахождение максимума и минимума.
здравствуйте!помогите пожалуйста найти ошибку в решении задачи. дан файл,содержащий числа.Найти в...

Поиск минимума/максимума и их индексов:
var a:arrayof integer; N,i,min,max:integer; begin write('N -&gt; '); readln(N); {считываем...

Смена максимума и минимума в массиве
Здравствуйте!!! Задан массив, найти максимум и минимум и поменять их местами. Код программы......

Сортировка по возрастанию методом выбора минимума
Помогите сделать. Сортировка по возрастанию методом выбора минимума. Сортируемый фрагмент...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru