Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/55: Рейтинг темы: голосов - 55, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 18.12.2015
Сообщений: 44
1

Нахождение максимального отрицательного элемента массива

23.12.2015, 16:55. Показов 10728. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
нахождение максимального отрицательного элемента массива
минимально положительные я нашел , помогите максимально отрицательные , и подскажите куда вставить код)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var a:array[-10..10] of integer;
  i,minplus,maxminus:integer;
begin
randomize;
  for i:=1 to 10 do begin
  a[i]:=random(30);
  Writeln (i,' ','Значение элемента массива - ',a[i]);
  end;
  minplus:=a[1];
  for i:=1 to 10 do begin 
  if a[i]<minplus then minplus:=a[i];
  end;
  writeln('minpluse=',minplus);
  readln;
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2015, 16:55
Ответы с готовыми решениями:

Нахождение максимального элемента массива
создать программу с прoцедyрой для ввoдa мaccивa из N вещеcтвенныx чиcел. Ввеcти двa мaccивa: ...

Нахождение номера максимального элемента массива
Помогите пожалуйста, до завтра надо сдать 3 индивидуальные работы, 1 я сделал, но вот эти две...

Заполнение массива и нахождение максимального и минимального элемента
Задача:заполнить массив случайными числами от -100 до 100. Найти максимальный и минимальный элемент...

Нахождение максимального элемента в массиве.
Решите задачку пожалуйста. Найдите максимальный элемент в массиве.

10
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
23.12.2015, 17:06 2
А как это максимально отрицательное? Может просто минимальное?
Ищется так же
Pascal
1
if a[i]<min then min:=a[i];
0
39 / 39 / 49
Регистрация: 18.12.2015
Сообщений: 127
23.12.2015, 21:27 3
Может так?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
program z1623223;
var a:array[-10..10] of integer;
  i,minplus,maxminus:integer;
begin
randomize;
  Writeln ('Массив:');
  for i:=-10 to 10 do begin
  a[i]:=random(30);
  Write (a[i],' ');
  end;
  writeln;
  minplus:=a[1];
  for i:=1 to 10 do begin
  if a[i]<minplus then minplus:=a[i];
  end;
  writeln('minpluse=',minplus);
  maxminus:=a[-1];
  for i:=-1 downto -10 do begin
  if a[i]>maxminus then maxminus:=a[i];
  end;
  writeln('maxminus=',maxminus);
end.
Добавлено через 7 минут
Если правильно понял.
0
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
23.12.2015, 21:38 4
Программа будет работать неверно.. Какой смысл делать массив [-10..10]? Если вы и так заполняете массив с помощю команды рандом.. Причем только положительние, а смысл искать максимально отрицательное число с положительных чисел?
0
39 / 39 / 49
Регистрация: 18.12.2015
Сообщений: 127
23.12.2015, 22:26 5
Добавлено решение для элементов имеющих положительные значения и отрицательные индексы.
0
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
23.12.2015, 22:53 6
schoolteacher, при чём тут индексы?
Если все числа положительные? Максимальное отрицательное число.. Почему вы думаете тут есть слово отрицательное? Надо найти не просто максимальное число т.е. найбольшее..

Добавлено через 21 минуту
Ищет максимальное отрицательное, т.е. это то число которое ближе всего находится к 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 z1623223;
var a:array[-10..10] of integer;
i,minplus,maxminus:integer;
begin
randomize;
Writeln ('Массив:');
for i:=-10 to 10 do begin
a[i]:=random(31)-12;
Write (a[i],' ');
end;
writeln;
{minplus:=a[1];
for i:=1 to 10 do begin
if a[i]<minplus then minplus:=a[i];
end;
writeln('minpluse=',minplus);}
maxminus:=-maxint;
for i:=-10 to 10 do begin
if (a[i]>maxminus) and (a[i]<0) then maxminus:=a[i];
end;
if maxminus=-maxint then writeln('error') else
writeln('maxminus=',maxminus);
end.
0
39 / 39 / 49
Регистрация: 18.12.2015
Сообщений: 127
23.12.2015, 23:07 7
Вполне соглашаюсь с Вашим мнением.
Поясню свои размышления:
Судя по тому, что элементы массива имеют положительные и отрицательные индексы:
Pascal
1
var a:array[-10..10] of integer;
И в первой части решения поиск minplus производится среди элементов, имеющих положительные индексы:
Pascal
1
2
3
4
5
minplus:=a[1];
for i:=1 to 10 do begin
if a[i]<minplus then minplus:=a[i];
end;
writeln('minpluse=',minplus);
то логично предположить, что (возможно) поиск maxminus нужно производить среди элементов, имеющих отрицательные индексы.
Задание изложено неоднозначно, поэтому возможны различные толкования.

Добавлено через 3 минуты
Если a[i]:=random(31)-12;
то возможно maxminus:=-13;

Добавлено через 4 минуты
В исходнике вообще нет отрицательных чисел:
a[i]:=random(30);
0
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
23.12.2015, 23:11 8
schoolteacher, смотря для что для кого значить максимальне отрицательное, скажу свою версию почему так, сто також максимальне число к поимеру 1,4,6,3,9 среди этих чисел макс будет 9, если делать для отрицательных то то что ближе к 0. Ведь среди -5,-7,-4,-1 максотриц. будет -1 ведь оно наибольшее среди отрицательных?

Добавлено через 2 минуты
schoolteacher, и у нас в отрицательном индексе массива лежало положительное число, ведь массив задан рандомно, пока я не задал границы
0
39 / 39 / 49
Регистрация: 18.12.2015
Сообщений: 127
24.12.2015, 10:05 9
С алгоритмом и реализацией в Паскале знаком, согласен, спасибо.
Один из возможных вариантов полной программы:

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
program z1623223;
var a:array[-10..10] of integer;
i,minplus,maxminus:integer;
begin
randomize;
Writeln ('Массив:');
for i:=-10 to 10 do begin
a[i]:=random(101)-50;
Write (a[i],' ');
end;
writeln;
minplus:=50;
for i:=-10 to 10 do begin
if (a[i]<minplus) and (a[i]>0) then minplus:=a[i];
end;
writeln('minpluse=',minplus);
maxminus:=-50;
for i:=-10 to 10 do begin
if (a[i]>maxminus) and (a[i]<0) then maxminus:=a[i];
end;
if maxminus=-maxint then writeln('error') else
writeln('maxminus=',maxminus);
readln;
end.
0
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
24.12.2015, 10:20 10
schoolteacher, я бы сделал так, зачем такие огромные числа?
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
program z1623223;
var a:array[-10..10] of integer;
i,minplus,maxminus:integer;
begin
randomize;
Writeln ('Массив:');
for i:=-10 to 10 do begin
a[i]:=random(19)-10;
Write (a[i],' ');
end;
writeln;
minplus:=maxint;
for i:=-10 to 10 do begin
if (a[i]<minplus) and (a[i]>0) then minplus:=a[i];
end;
writeln('minpluse=',minplus);
maxminus:=-maxint;
for i:=-10 to 10 do begin
if (a[i]>maxminus) and (a[i]<0) then maxminus:=a[i];
end;
if maxminus=-maxint then writeln('error') else
writeln('maxminus=',maxminus);
readln;
end.
Добавлено через 10 минут
Вот, так получше будет (работает только на ABC.net)
Pascal
1
a[i]:=random(-10,10);
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7792 / 4616 / 2829
Регистрация: 22.11.2013
Сообщений: 13,112
Записей в блоге: 1
24.12.2015, 11:09 11
Лучший ответ Сообщение было отмечено BlueZa как решение

Решение

Если исходное задание звучит так:
в массиве a[-10..10] найти минимальное значение из элементов с положительными индексами и максимальное из элементов с отрицательными, то
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
  a: array [-10..10] of Integer;
  i, pm, nm: Integer;
begin
  Randomize;
  Write('A =');
  for i:=Low(a) to High(a) do begin
    a[i]:=-10+Random(21); Write(a[i]:4);
  end; WriteLn;
  nm:=a[-1]; pm:=a[1];
  for i:=Low(a) to -2 do if nm<a[i] then nm:=a[i];
  for i:=2 to High(a) do if pm>a[i] then nm:=a[i];
  WriteLn('max(negind): ',nm,' min(posind): ',pm);
end.
Если же исходное задание звучит так:
в массиве A из N элементов [-10..10] найти минимальный положительный и максимальный отрицательный элементы, то
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var
  a: array [1..10] of Integer;
  i, pm, nm: Integer;
begin
  Randomize;
  Write('A ='); pm:=MaxInt; nm:=-MaxInt-1;
  for i:=Low(a) to High(a) do begin
    a[i]:=-10+Random(21); Write(a[i]:4);
    if (a[i]<0) and (nm<a[i]) then nm:=a[i];
    if (a[i]>0) and (pm>a[i]) then pm:=a[i];
  end; WriteLn;
  WriteLn('max(neg): ',nm,' min(pos): ',pm);
end.
Добавлено через 5 минут
или с проверкой существования искомого:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
  a: array [1..10] of Integer;
  i, pm, nm: Integer;
begin
  Randomize;
  Write('A ='); pm:=MaxInt; nm:=-MaxInt-1;
  for i:=Low(a) to High(a) do begin
    a[i]:=-10+Random(21); Write(a[i]:4);
    if (a[i]<0) and (nm<a[i]) then nm:=a[i];
    if (a[i]>0) and (pm>a[i]) then pm:=a[i];
  end; WriteLn;
  Write('max(neg): '); if nm=-MaxInt-1 then Write('no') else Write(nm);
  Write(' min(pos): '); if pm=MaxInt then WriteLn('no') else WriteLn(pm);
end.
1
24.12.2015, 11:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2015, 11:09
Помогаю со студенческими работами здесь

Рекурсия: нахождение максимального элемента последовательности
Дана последовательность, состоящая из n действительных чисел, найти максимальное по величине число.

Рекурсия: нахождение максимального элемента последовательности действительных чисел
Выполнить необходимую обработку, при этом описать рекурсивную проц едуру или функцию, исходя из...

Найти среднее арифметическое до минимального элемента и после максимального элемента массива
Дан массив F(11). найти среднее арифметическое до минимального элемента и после максимального...

Вставить два элемента: первый — после максимального элемента, второй — перед максимальным элементом массива
вставить два элемента: первый- после максимального элемента, второй- перед максимальным элементом...


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

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