Как найти максимальный по модулю элемент массива

Перейти к содержанию

Найти максимальный по модулю элемент в массиве с уникальными по модулю значениями

Просмотров 5к. Обновлено 26 октября 2021

Абсолютное значение каждого нового числа перед помещением в массив надо сравнить с абсолютными значениями всех чисел, которые уже были добавлены в массив. Если хотя бы в одном сравнении числа совпадут, то новое число не следует добавлять в массив. Если же совпадений не было, то число добавляется массив по текущему индексу, после чего индекс увеличивается на 1.

Поиск же максимума по модулю отличается от обычного лишь тем, что сравниваются абсолютные значения элементов массива.

Pascal


const N = 15;
var
arr: array[1..N] of integer;
i, j: byte;
m: integer;
flag: boolean;
begin
randomize;
arr[1] := random(40) - 20;
i := 2;
while i <= N do begin
m := random(40) - 20;
flag := true;
for j:=1 to i-1 do
if abs(arr[j]) = abs(m) then begin
flag := false;
break;
end;
if flag = true then begin
arr[i] := m;
i := i + 1;
end;
end;

j := 1;
for i:=1 to N do begin
write(arr[i]:4);
if abs(arr[i]) > abs(arr[j]) then
j := i;
end;
writeln;
writeln('Максимальный по модулю ', j, '-й элемент равен ', arr[j]);
end.



-1 6 -17 -2 5 -12 -16 -8 -18 9 7 -4 -13 -19 14
Максимальный по модулю 14-й элемент равен -19

Язык Си


#include
#define N 15
main() {
int arr[N], m;
char i,j,f;
srand(time(NULL));
arr[0] = rand()%40 - 20;
i = 1;
while (i < N) {
m = rand()%40 - 20;
f = 1;
for (j=0; j < i; j++)
if (abs(arr[j]) == abs(m)) {
f = 0;
break;
}
if (f == 1) {
arr[i] = m;
i += 1;
}
}
j = 0;
for (i=0; i < N; i++) {
printf("%d ", arr[i]);
if (abs(arr[i]) > abs(arr[j]))
j = i;
}
printf("n");
printf("Максимальный по модулю %d-й элемент равен %dn", j, arr[j]);
}



-2 17 -15 -11 -19 -5 -4 12 13 -3 0 7 -18 -20 8
Максимальный по модулю 13-й элемент равен -20

Python


from random import random
N = 15
m = int(random() * 40) - 20
arr = [m]
i = 1
while i < N:
m = int(random() * 40) - 20
f = 1
for j in arr:
if abs(j) == abs(m):
f = 0
break
if f == 1:
arr.append(m)
i += 1
print(arr)
j = 0
for i in range(1, 15):
if abs(arr[i]) > abs(arr[j]):
j = i
print('Максимальный по модулю %d-й элемент равен %d' % (j,arr[j]))



[-20, 5, 8, -1, -19, -2, -14, 16, 4, 10, -9, 13, -11, 7, -6]
Максимальный по модулю 0-й элемент равен -20

КуМир


алг максимальный уникальный
нач
цел N = 15
цел таб arr[1:N]
цел i,j,m,f
arr[1] := int(rand(0,40)) - 20
i := 2
нц пока i <= N
m := int(rand(0,40)) - 20
f := 1
нц для j от 1 до i-1
если abs(arr[j]) = abs(m) то
f := 0
выход
все
кц
если f = 1 то
arr[i] := m
i := i + 1
все
кц

j := 1;
нц для i от 1 до N
вывод arr[i], " "
если abs(arr[i]) > abs(arr[j]) то
j := i
все
кц
вывод нс, "Максимальные по модулю ", j, "-й элемент равен ", arr[j]
кон



17 14 -18 13 5 10 7 -9 -1 -6 -12 2 4 -3 0
Максимальные по модулю 3-й элемент равен -18

Basic-256


N = 15
dim arr(N)
arr[0] = int(rand*40) - 20
i = 1
while i < N
m = int(rand*40) - 20
f = 1
for j=0 to i-1
if abs(arr[j]) = abs(m) then
f = 0
endif
next j
if f = 1 then
arr[i] = m
i = i + 1
endif
endwhile
j = 0
for i=0 to N-1
print arr[i] + " ";
if abs(arr[i]) > abs(arr[j]) then
j = i
endif
next i
print
print "Максимальный по модулю " + j + "-й элемент равен " + arr[j]



-17 15 -1 -4 16 12 -3 11 -9 -14 -6 0 -19 -8 10
Максимальный по модулю 12-й элемент равен -19

0 / 0 / 0

Регистрация: 04.04.2017

Сообщений: 4

1

Найти максимальный по модулю элемент массива

18.05.2017, 21:16. Показов 24133. Ответов 3


Студворк — интернет-сервис помощи студентам

в одномерном массиве ,состоящем из n вещественных элементов вычислить:
1) максимальный по модулю элемент массива



0



Модератор

Эксперт С++

13111 / 10381 / 6209

Регистрация: 18.12.2011

Сообщений: 27,764

18.05.2017, 21:36

2

См. ссылки внизу страницы



0



GeFacle

Рэмбо комнатный

103 / 103 / 99

Регистрация: 05.03.2017

Сообщений: 511

18.05.2017, 22:16

3

Лучший ответ Сообщение было отмечено grizzly_312 как решение

Решение

C++
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
#include "stdafx.h"
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    srand(unsigned int(NULL));
    int n,max=-1;
    cin >> n;
    float *arr = new float[n];
    for (int i = 0; i < n; i++)
    {
        cin >> arr[i];
        cout << arr[i] << " ";
    }
    for (int i = 0; i < n; i++)
    {
        if (abs(arr[i]) > max)
        {
            max = arr[i];
        }
    }
    cout << endl << max;
    delete[] arr;
    system("pause");
    return 0;
}



0



AlexKOR5

50 / 14 / 3

Регистрация: 15.02.2019

Сообщений: 514

01.04.2019, 17:41

4

C++
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
43
44
45
46
#include<iostream>
#include<conio.h>
#include<cstdlib>
#include<math.h>
 
using namespace std;
 
int main()
{
    float a[10];
    float n,max;
    int i;
    cout<<"Write down n=";
    cin>>n;
    if(n<=7)
    {
    
    for(i=0;i<n;i++)
    {
        cout<<"["<<i<<"]";
        cin>>a[i];
    }
    for(i=max=0;i<n;i++)
    {
        if(a[i]>=0)
        {
        
        if(max<a[i])
        {
            max=a[i];
        }
    }
    else if (a[i]<0)
    {
        a[i]=fabs(a[i]);
        if(max<a[i])
        {
            max=a[i];
        }
    }
}
    cout<<"Massif`s MAX elemet="<<max;
}   
    _getch();
    return 0;
}



0



Задача: Найти максимальный/минимальный по модулю элемент массива.
Нагуглил только Math.abs, но не понял как применить, подскажите. Еще очень хочу услышать критику кода от опытных программистов.

function mission(){
var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 200, -210, -10000, -9, -8, -7, -6, -5, -4, -3, -2, -1, -100];

var numbersPositive = numbers.filter(function findPositive(numbers){return numbers >= 0});
var maxValue = Math.max.apply(Math,numbersPositive); // Максимальное число 

var numbersNegative = numbers.filter(function findNegative(numbers){return numbers < 0});
var minValue = Math.min.apply(Math,numbersNegative); // Минимальное число 


document.getElementById('text').value = 'Массив чисел: ' + numbers + 'n' + 'n' + 
'Числа с положительным значением из массива: ' + numbersPositive + ' ' +  'Всего: ' + numbersPositive.length + 'n' + 
'Числа с отрицательным значением из массива: ' + numbersNegative + ' ' +  'Всего: ' + numbersNegative.length + 'n' + 'n' + 
'Максимальное число в массиве: ' + maxValue + 'n' + 'Минимальное число: ' + minValue;
}   

Оглавление:

  • 1 Задача — Найти максимальный по модулю элемент в массиве с уникальными по модулю значениями
    — программирование на Pascal, Си, Кумир, Basic-256, Python

    • 1.1 Pascal
    • 1.2 Язык Си
    • 1.3 Python
    • 1.4 КуМир
    • 1.5 Basic-256

Задача — Найти максимальный по модулю элемент в массиве с уникальными по модулю значениями
— программирование на Pascal, Си, Кумир, Basic-256, Python

Заполнить массив случайными положительными и отрицательными числами таким образом, чтобы все числа по модулю были разными. Это значит, что в массиве не может быть ни только двух равных чисел, но не может быть двух равных по модулю. В полученном массиве найти наибольшее по модулю число.

Абсолютное значение каждого нового числа перед помещением в массив надо сравнить с абсолютными значениями всех чисел, которые уже были добавлены в массив. Если хотя бы в одном сравнении числа совпадут, то новое число не следует добавлять в массив. Если же совпадений не было, то число добавляется массив по текущему индексу, после чего индекс увеличивается на 1.

Поиск же максимума по модулю отличается от обычного лишь тем, что сравниваются абсолютные значения элементов массива.

Pascal

const N = 15;
var
arr: array[1..N] of integer;
i, j: byte;
m: integer;
flag: boolean;
begin
randomize;
arr[1] := random(40) — 20;
i := 2;
while i <= N do begin
m := random(40) — 20;
flag := true;
for j:=1 to i-1 do
if abs(arr[j]) = abs(m) then begin
flag := false;
break;
end;
if flag = true then begin
arr[i] := m;
i := i + 1;
end;
end;

j := 1;
for i:=1 to N do begin
write(arr[i]:4);
if abs(arr[i]) > abs(arr[j]) then
j := i;
end;
writeln;
writeln(‘Максимальный по модулю ‘, j, ‘-й элемент равен ‘, arr[j]);
end.   -1   6 -17  -2   5 -12 -16  -8 -18   9   7  -4 -13 -19  14
Максимальный по модулю 14-й элемент равен -19

Язык Си

#include <stdio.h>
#define N 15
main() {
int arr[N], m;
char i,j,f;
srand(time(NULL));
arr[0] = rand()%40 — 20;
i = 1;
while (i < N) {
m = rand()%40 — 20;
f = 1;
for (j=0; j < i; j++)
if (abs(arr[j]) == abs(m)) {
f = 0;
break;
}
if (f == 1) {
arr[i] = m;
i += 1;
}
}
j = 0;
for (i=0; i < N; i++) {
printf(«%d «, arr[i]);
if (abs(arr[i]) > abs(arr[j]))
j = i;
}
printf(«n»);
printf(«Максимальный по модулю %d-й элемент равен %dn», j, arr[j]);
} -2 17 -15 -11 -19 -5 -4 12 13 -3 0 7 -18 -20 8
Максимальный по модулю 13-й элемент равен -20

Python

from random import random
N = 15
m = int(random() * 40) — 20
arr = [m]
i = 1
while i < N:
m = int(random() * 40) — 20
f = 1
for j in arr:
if abs(j) == abs(m):
f = 0
break
if f == 1:
arr.append(m)
i += 1
print(arr)
j = 0
for i in range(1, 15):
if abs(arr[i]) > abs(arr[j]):
j = i
print(‘Максимальный по модулю %d-й элемент равен %d’ % (j,arr[j])) [-20, 5, 8, -1, -19, -2, -14, 16, 4, 10, -9, 13, -11, 7, -6]
Максимальный по модулю 0-й элемент равен -20

КуМир

алг максимальный уникальный
нач
цел N = 15
цел таб arr[1:N]
цел i,j,m,f
arr[1] := int(rand(0,40)) — 20
i := 2
нц пока i <= N
m := int(rand(0,40)) — 20
f := 1
нц для j от 1 до i-1
если abs(arr[j]) = abs(m) то
f := 0
выход
все
кц
если f = 1 то
arr[i] := m
i := i + 1
все
кц

j := 1;
нц для i от 1 до N
вывод arr[i], » »
если abs(arr[i]) > abs(arr[j]) то
j := i
все
кц
вывод нс, «Максимальные по модулю «, j, «-й элемент равен «, arr[j]
кон 17 14 -18 13 5 10 7 -9 -1 -6 -12 2 4 -3 0
Максимальные по модулю 3-й элемент равен -18

Basic-256

N = 15
dim arr(N)
arr[0] = int(rand*40) — 20
i = 1
while i < N
m = int(rand*40) — 20
f = 1
for j=0 to i-1
if abs(arr[j]) = abs(m) then
f = 0
endif
next j
if f = 1 then
arr[i] = m
i = i + 1
endif
endwhile
j = 0
for i=0 to N-1
print arr[i] + » «;
if abs(arr[i]) > abs(arr[j]) then
j = i
endif
next i
print
print «Максимальный по модулю » + j + «-й элемент равен » + arr[j] -17 15 -1 -4 16 12 -3 11 -9 -14 -6 0 -19 -8 10
Максимальный по модулю 12-й элемент равен -19

Did you find apk for android? You can find new Free Android Games and apps.

Var
  a: Array [1..10,1..10] of Integer;
  i,n,m,max,j: Integer;
BEGIN
Write('Введите кол-во строк: ');
Readln(n);
Write('Введите кол-во столбцов: ');
Readln(m);
max:=0;
For i:=1 to n do
begin
  For j:=1 to m do
  begin
    a[i,j]:=Random(1001)-500;
    Write(a[i,j]:5);
    If Abs(a[i,j])>Abs(max) Then
    max:=a[i,j];
  end;
  Writeln
end;
Writeln('Максимальный по модулю = ',max);
END.

Понравилась статья? Поделить с друзьями:
  • Как составить кроссворд по географии пятый класс
  • Как исправить в больничном листе стаж работы
  • Как найти тезисы конференций
  • Как решить такой пример найти значения выражения
  • Как составить отношение сходственных сторон подобных треугольников