Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 13.03.2021
Сообщений: 16

Определить максимальное значение среди ненулевых первой половины массива

04.05.2021, 10:26. Показов 2533. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можете помочь с кодом
Python
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
import random
#import array
#import math
#import numpy
 
n = 36
#V = []
#a = 0
#count = 0
#                               PART1
#for i in range(0, n):
    #f = random.randint(-9, 7)
    #V.append(f)
V = [random.randint(-9,7) for _ in range(n)]
print('************* Part 1 -> {0}'.format(V))
#                               PART2
k = n // 3
tmp = [i for i in V[-k:] if i%2]
 
# для контроля. При сдаче кода нужно убрать
print(V[-k:])
print(tmp)
########
 
Sa = sum(tmp) / len(tmp)
#for i in range(0, int(n/2)):
    #if V[i] % 2 != 0:
        #count = count + 1
        #a = a + (V[i])
#Sa = numpy.mean(a)
 
print('************* Part 2 -> {0:5.3f} **************'.format(Sa))
это код 2 частей 3 часть запрашивает (Определить максимальное значение среди ненулевых первой половины массива(найти положение (индекс) и значение Помогите плиз, кто шарит
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.05.2021, 10:26
Ответы с готовыми решениями:

Определить минимальное значение среди первой половины массива
создать массив m определить минимальное значение среди первой половины массива. Максимальное значение заменить на найденное минимальное.

Найти максимум среди элементов первой половины массива и минимум среди второй половины массива, которые поменять местами
Люди... Как составить прогу для PascalABC? Не могу разбить массив на две половины... Ввести одномерный массив , вывести его. Найти...

Найти минимум среди элементов первой половины массива и максимум среди второй половины
Ввести одномерный массив А , вывести его. Найти минимум среди элементов первой половины массива и максимум среди второй половины. Вычислить...

9
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
04.05.2021, 10:58
fakereal66,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
#Part 3
max_1half = ind = None
for i in range(n//2):
    if V[i] != 0 and max_1half == None:
        max_1half = V[i]
        ind = i 
    elif max_1half and V[i] > max_1half:
        ind = i 
        max_1half = V[i]
if ind:
    print(ind, max_1half)
else:
    print('В первой половине нет ненулевых элементов')
1
0 / 0 / 0
Регистрация: 13.03.2021
Сообщений: 16
05.05.2021, 11:30  [ТС]
Кто сможет помогите и проверьте первые 3 части вс ели норм
1) Часть1(вычислить значения 36 элементов в интервале(-9:7), с исппользованием генератора случ чисел)
2)часть2 (вычислить среднеарифметическое значение нечетных по значению элементов второй трети массива)
3)Часть 3(вычислить максимальное значение среди ненулевых элементов первой половины массива)
4)Часть4( Упорядочить каждые третьи элементы первой четверти массива по вохрастанию обратных)
Python
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
import random
import array
import math
import numpy
 
n = 36
V = []
a = 0
count = 0
#                               PART1
for i in range(0, n):
    f = random.randint(-9, 7)
    V.append(f)
V = [random.randint(-9,7) for _ in range(n)]
print('************* Part 1 -> {0}'.format(V))
#                               PART2
k = n // 3
tmp = [i for i in V[-k:] if i%2]
 
# для контроля. При сдаче кода нужно убрать
print(V[-k:])
print(tmp)
########
 
Sa = sum(tmp) / len(tmp)
#for i in range(0, int(n/2)):
    #if V[i] % 2 != 0:
        #count = count + 1
        #a = a + (V[i])
#Sa = numpy.mean(a)
 
print('************* Part 2 -> {0:5.3f} **************'.format(Sa))
#Part 3
max_1half = ind = None
for i in range(n//2):
    if V[i] != 0 and max_1half == None:
        max_1half = V[i]
        ind = i 
    elif max_1half and V[i] > max_1half:
        ind = i 
        max_1half = V[i]
if ind:
    print(ind, max_1half)
else:
    print('В первой половине нет ненулевых элементов')
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
05.05.2021, 14:24
fakereal66, исправил
Python
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
import random
 
n = 36
V = []
a = 0
count = 0
 
#PART1
for i in range(0, n):
    f = random.randint(-9, 7)
    V.append(f)
V = [random.randint(-9,7) for _ in range(n)]
print('****** Part 1 *******\n {0}'.format(V))
 
#PART2
k = n // 3
tmp = [i for i in V[k:-k] if i%2]
# для контроля. При сдаче кода нужно убрать
#print(V[k:-k])
#print(tmp)
########
Sa = sum(tmp) / len(tmp)
print('****** Part 2 *******\n {0:5.3f} '.format(Sa))
 
#Part 3
max_1half = ind = None
for i in range(n//2):
    if V[i] != 0 and max_1half == None:
        max_1half = V[i]
        ind = i 
    elif max_1half != None and V[i] > max_1half:
        ind = i 
        max_1half = V[i]
print('****** Part 3 *******')
if max_1half :
    print(ind+1, 'элемент =',max_1half)
else:
    print('В первой половине нет ненулевых элементов')
 
#Part 4
Что значит "обратных"?
0
0 / 0 / 0
Регистрация: 13.03.2021
Сообщений: 16
05.05.2021, 14:38  [ТС]
я узнала обратный это тип 2 обратный к двум это 1/2 или 2^-1 и упорядочить по возрастанию
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
05.05.2021, 15:11
fakereal66, а если 0 попадется?

Добавлено через 14 минут
fakereal66,
Python
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
import random
 
n = 36
V = []
a = 0
count = 0
 
#PART1
for i in range(0, n):
    f = random.randint(-9, 7)
    V.append(f)
V = [random.randint(-9,7) for _ in range(n)]
print('****** Part 1 *******\n {0}'.format(V))
 
#PART2
k = n // 3
tmp = [i for i in V[k:-k] if i%2]
# для контроля. При сдаче кода нужно убрать
#print(V[k:-k])
#print(tmp)
########
Sa = sum(tmp) / len(tmp)
print('****** Part 2 *******\n {0:5.3f} '.format(Sa))
 
#Part 3
max_1half = ind = None
for i in range(n//2):
    if V[i] != 0 and max_1half == None:
        max_1half = V[i]
        ind = i 
    elif max_1half != None and V[i] > max_1half:
        ind = i 
        max_1half = V[i]
print('****** Part 3 *******')
if max_1half :
    print(ind+1, 'элемент =',max_1half)
else:
    print('В первой половине нет ненулевых элементов')
 
#Part 4
print('****** Part 4 *******')
f = lambda x: 1/x if x else 2
V[2:n//4:3] = sorted(V[2:n//4:3], key = lambda x: f(x))
print(V)
0
0 / 0 / 0
Регистрация: 13.03.2021
Сообщений: 16
06.05.2021, 16:17  [ТС]
сможешь комментарии напистаь парт 3 и 4 чтобы лучше понять?
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
06.05.2021, 16:46
Лучший ответ Сообщение было отмечено КулХацкеръ как решение

Решение

fakereal66,
Python
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import random
 
n = 36
V = []
a = 0
count = 0
 
#PART1
for i in range(0, n):
    f = random.randint(-9, 7)
    V.append(f)
V = [random.randint(-9,7) for _ in range(n)]
print('****** Part 1 *******\n {0}'.format(V))
 
#PART2
k = n // 3
tmp = [i for i in V[k:-k] if i%2]
# для контроля. При сдаче кода нужно убрать
#print(V[k:-k])
#print(tmp)
########
Sa = sum(tmp) / len(tmp)
print('****** Part 2 *******\n {0:5.3f} '.format(Sa))
 
#Part 3
max_1half = ind = None
 
# проход по первой половине списка
for i in range(n//2):
 
    # нужно задать начальное значение максимума
    # т.к. в задании нужно найти максимум среди 
    # "ненулевых элементов", то -> "если элемент
    # не равен 0 и max_1half не определен"
    if V[i] != 0 and max_1half == None:
 
        # начальный максимум равен этому элементу
        # и его индекс = i
        max_1half = V[i]
        ind = i 
 
    # если существует максимум и он меньше
    # очередного элемента,
    elif max_1half != None and V[i] > max_1half:
 
       # то максимум и его индекс равны элементу и его индексу
        ind = i 
        max_1half = V[i]
print('****** Part 3 *******')
 
# если максимум существует, то "печать максимума"
if max_1half :
    print(ind+1, 'элемент =',max_1half)
 
# иначе:
else:
    print('В первой половине нет ненулевых элементов')
 
#Part 4
print('****** Part 4 *******')
 
# функция - возвращает "обратное значение"
# элемента = 1/х ; если x равен нулю, то возвращает 2
# Т.к. по условию все x целые числа, то по модулю
# их обратное значение < 1. Если х=0, то его 
# обратное значение = бесконечности и оно больше
# любого обратного x не равного 0.
# Поэтому в задаче, если х=0, можно его обратное
# значение приравнять любому числу, большему 1
f = lambda x: 1/x if x else 2
 
# сортировка с элемента №2 (третий по порядку) 
# до последнего элемента первой четверти №8 (n//4 = 9)
# с шагом 3 по ключу (условию)
# остальные элементы "остаются на своих местах"
V[2:n//4:3] = sorted(V[2:n//4:3], key = lambda x: f(x))
print(V)
0
0 / 0 / 0
Регистрация: 13.03.2021
Сообщений: 16
12.05.2021, 14:36  [ТС]
сможешь жокументацию сделать к проекту я начала, но дальше хз как писать не за бесплатно, там нужно условия доделать и блок-схэмы
0
0 / 0 / 0
Регистрация: 13.03.2021
Сообщений: 16
18.05.2021, 07:27  [ТС]
Gdez, 2. Предусмотреть возможность выполнения 3 вариантов расчёта. Введём вспомогательную переменную Vr для управления вариантом расчёта: если Vr
=0 – тестовый расчёт, Vr = 1 – без Randomize, любое другое значение Vr – расчёт с Randomize.
3. Модули должны быть относительно независимы: обязательно иметь имя, свои входные, выходные и промежуточные данные, не использовать глобальные переменные, ввод и вывод данных в модуле может быть только в случае необходимости.
там короче есть условие тип вводишь цифру Vr и если тип без рандомайзера то свои данные массивав коде пишешь не рандомно) можешь помочь с кодом?

Добавлено через 53 секунды
вот пример кода на паскале Program Work_4;
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
{Работа №4, вариант №572, гр.БАГ-20-01, Зимин Н.А.}
 Type vector=array[1..100] of integer;
 var Vr, n, i, a, b: integer;
 W: vector;
 Sg: real;
 
Procedure Part_1 (Vr,n,a,b:integer; var W:vector);
 var i:integer;
Begin
If Vr<>1 then randomize;
for i:=1 to n do w[i]:=a+Round((b-a)*Random(100)/100);
end;
Procedure Part_2 (n:integer; W:vector; var Sg:real);
 var i,k:integer;
 P:real;
Begin
 P:=1;
 k:=0;
 For i:=n div 3 +1 to 2*n div 3 do
 If w[i] mod 2 =1 then
 begin
 P:=P*w[i];
 k:=k+1;
 end;
 If k>0 then
 If P>0 then Sg:=power(P,1/k)
 else
 If k mod 2 =1 then Sg:= power(P,1/k)
 else Sg:=0
 else Sg:=0
 
end;
Procedure Part_3 (n,a,b:integer; W:vector);
 var i,M,k:integer;
Begin
 M:=maxint;
 k:=0;
 For i:=n div 2 + 1 to n do
 If (w[i]<>0) and (M >w[i]) then
 begin
 M:=w[i];
 k:=i;
 end;
 If k>0 then
 begin
 writeln ('Наименьшее ненулевое значение M = ',M:3);
 write('имеют W[',k:2,'] = ',w[k]:2);
 For i:=1+k to n do
 If w[i]=M then
 write(' W[',i:2,'] = ',w[i]:2);
 writeln( );
 end
 else writeln('Нет нужных элементов);
 end;
 
Procedure Part_4 (n:integer; var W:vector);
var i,k,j,buf:integer;
 Begin
 For i:= 1 to n div 4 do
 If (w[i]>=a/2.0) and (w[i]<=b/2.0) then
 begin
 k:=i;
 For j:=i+1 to n div 4 do
 If (w[i]>=a/2.0) and (w[i]<=b/2.0) then
 If 1/(w[j]+0.1e-30) < 1/(w[k]+0.1e-30) then k:=j;
 buf:=w[i];
 w[i]:=w[k];
 w[k]:=buf;
 end;
 end;
 
 Begin
 write('введите вариант расчета Vr => ');
 readln(Vr);
 if Vr=0 then
 begin
 n:=18; a:=-7; b:=9;
 w[1] := 1; w[2] := 0; w[3] :=-3; w[4] := 2; w[5] := 0;
 w[6] :=-3; w[7] := 4; w[8] := 3; w[9] := 2; w[10]:= 1;
 w[11]:= 9; w[12]:= 4; w[13]:= 0; w[14]:=-2; w[15]:=-1;
 w[16]:=9; w[17]:= 1; w[18]:=3;
 end;
 else
 if Vr=2 then
 begin
 writeln('Введите n => ');
 readln(n);
 For i:=1 to n do
 begin
 write('Введите элемент w[',i,'] => ');
 read(w[i]);
 end;
 end
 else
 If Vr=1 then
 begin
 Write('Введите n,a,b => '); readln(n,a,b);
 Part_1 (Vr,n,a,b,W);
 end;
 writeln('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
 writeln('Исходный массив:');
 For i:=1 to n do
 begin
 write(w[i]:3);
 if i = n div 2 then writeln( );
 end;
 writeln( );
 writeln('++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
 part_2(n,w,Sg);
 writeln(' Среднегеометрическое значение Sg=',Sg:7:4);
 writeln('+++++++++++++++++++++++++++++++++0++++++++++++++++++++++');
 part_3(n,a,b,w);
 writeln('++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
 part_4(n,W);
 writeln('Упорядоченный массив);
 for i:=1 to n do
 begin
 write(w[i]:3);
 if i = n div 2 then writeln( );
 end;
 writeln( );
 writeln('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2021, 07:27
Помогаю со студенческими работами здесь

Найти минимум среди элементов первой половины массива и максимум среди второй половины
Ввести одномерный массив A, вывести его. Найти минимум среди элементов первой половины массива и максимум среди второй половины. Вычислить...

Процедуры и функции: определить минимальное значение первой половины массива
Помогите пожалуйсто решить задачу через процедуры и функции: В одномерных массивах D и C определить минимальное значение первой...

Вычислить минимальное значение попарных произведений элементов первой половины массива на элементы второй половины
Даны действительные числа x1, …, x20. Вычислить: min(x1x11,x2x12, …, x10x20). С++ массив

Операции над массивами. Определить максимальное значение среди нечетных элементов массива и минимальное среди четных элементов массива
Дан одномерный массив А размерностью 16. Определить максимальное значение среди нечетных элементов массива и минимальное среди четных...

Определить минимальное значение среди четных элементов массива и максимальное среди нечетных элементов массива
Дан одномерный массив А размерностью 16. Определить минимальное значение среди четных элементов массива и максимальное среди нечетных...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru