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

Подпрограммы: разделить каждый из элементов массива на его максимальный отрицательный элемент

06.03.2009, 17:08. Показов 2841. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ввести одномерные массивы X1(n1), X2(n2) и X3(n3) . Разделить каждый из элементов на максимальный элемент среди отрицательных элементов соответствующего массива. Массивы вывести на экран до и после преобразования (или сообщение о невозможности преобразования). (При решении реализовать процедуры ввода и вывода массивов: Vvod1m(A,N,Name) и Vivod1m(A,N,Name); функцию MaxOtr(A,N):<тип массива> – максимум среди отрицательных, которая равна нулю если отрицательных нет; и процедуру Delenie(A,N,Chislo) – деление элементов массива на значением Chislo)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.03.2009, 17:08
Ответы с готовыми решениями:

В каждой из трех матриц найти максимальный элемент и разделить на него каждый отрицательный элемент матрицы
Задание:В каждой из трех матриц Х, Y и Z найти максимальный элемент и разделить на него каждый отрицательный элемент матрицы. Больше...

Разделить каждый из элементов на максимальный элемент среди отрицательных элементов соответствующего массива
Ввести одномерные массивы X1n1 X2n2 X3n3. Разделить каждый из элементов на максимальный элемент среди отрицательных элементов...

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

6
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,892
06.03.2009, 20:14
Вот
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
uses CRT;
 
const
  nmax = 10;
 
var
  i, n1, n2, n3      : integer;
  X1  : array[1..nmax] of integer;
  X2  : array[1..nmax] of integer;
  X3  : array[1..nmax] of integer;  
  
procedure Vvod1m(var a : array of integer; N: integer);
var  q : integer;
begin
  for q := 1 to N do
  begin
    Write('Введите ',q,'-й элемент массива : ');
    ReadLn(a[q]);
  end;
end;
 
procedure Vivod1m(a : array of integer; N: integer);
var  q : integer;
begin
  for q := 1 to N do
    Write(a[q]:3,' ');
  WriteLn;
end;
 
function MaxOtr(a : array of integer; N: integer) : integer;
var  q, max : integer;
begin
  Max := 0;
  for q := 1 to N do
    if a[q]<max then
      max := a[q];
 
  MaxOtr := max;
end;
 
procedure Delenie(var a : array of integer; N: integer; Chislo : integer);
var  q : integer;
begin
  if chislo = 0 then
  begin
    WriteLn('ОШИБКА : нельзя делить на ноль!');
    Exit;
  end;
 
  for q := 1 to N do
    a[q] := a[q] div chislo;
end;
 
begin
  ClrScr;
  
  {вводим массивы}
  Write('Введите количество элементов массива X1 (MAX=',nmax,') : '); ReadLn(n1); if n1>nmax then n1:=nmax;
  Vvod1m(x1,n1);
 
  Write('Введите количество элементов массива X2 (MAX=',nmax,') : '); ReadLn(n2); if n2>nmax then n2:=nmax;
  Vvod1m(x2,n2);
 
  Write('Введите количество элементов массива X3 (MAX=',nmax,') : '); ReadLn(n3); if n3>nmax then n3:=nmax;
  Vvod1m(x3,n3);
 
  ClrScr;
 
  WriteLn('МАССИВЫ ДО ПРЕОБРАЗОВАНИЯ');
  Vivod1m(x1,n1);
  Vivod1m(x2,n2);
  Vivod1m(x3,n3);
 
  Delenie(x1,n1, MaxOtr(x1,n1));
  Delenie(x2,n2, MaxOtr(x2,n2));
  Delenie(x3,n3, MaxOtr(x3,n3));
 
  WriteLn('МАССИВЫ ПОСЛЕ ПРЕОБРАЗОВАНИЯ');
  Vivod1m(x1,n1);
  Vivod1m(x2,n2);
  Vivod1m(x3,n3);
 
  WriteLn;
  WriteLn('Для продолжения нажмите любую клавишу...');
  ReadKey;
end.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
06.03.2009, 20:34
Вот здесь неверно.
Max := 0;
for q := 1 to N do
if a[q]<max then
max := a[q];
Так мы получим не максимальное отрицательное, а минимальное.

Добавлено через 8 минут 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
uses crt;
const nmax=100;
type Tmas=array[1..nmax]of real;
procedure Vvod1m(var a:Tmas;var n:byte;name:string);
var i:byte;
begin
write('Razmernost massiva ',name,': ');
readln(n);
for i:=1 to n do
a[i]:=20*random-9;
end;
procedure Vivod1m(var a:Tmas;n:byte;name:string);
var i:byte;
begin
writeln('Massiv ',name,':');
for i:=1 to n do
write(a[i]:6:2);
writeln;
end;
function MaxOtr(a:Tmas;n:byte):real;
var i,k:byte;
    max:real;
begin
max:=-100;k:=0;
for i:=1 to n do
if (a[i]<0)and(a[i]>max) then
   begin
     max:=a[i];
     k:=1;
   end;
if k=0 then max:=0;
MaxOtr:=max;
end;
procedure Delenie(var a:Tmas;n:byte;chislo:real);
var i:byte;
begin
for i:=1 to n do
a[i]:=a[i]/chislo;
end;
var x1,x2,x3:Tmas;
    n1,n2,n3:byte;
begin
clrscr;
randomize;
Vvod1m(x1,n1,'X1');
Vivod1m(x1,n1,'X1');
writeln('Max otr el=',MaxOtr(x1,n1):0:2);
if MaxOtr(x1,n1)=0 then writeln('Preobrazovanie nevozmozno!')
else
  begin
    Delenie(x1,n1,MaxOtr(x1,n1));
    Vivod1m(x1,n1,'X1');
  end;
Vvod1m(x2,n2,'X2');
Vivod1m(x2,n2,'X2');
writeln('Max otr el=',MaxOtr(x2,n2):0:2);
if MaxOtr(x2,n2)=0 then writeln('Preobrazovanie nevozmozno!')
else
  begin
    Delenie(x2,n2,MaxOtr(x2,n2));
    Vivod1m(x2,n1,'X2');
  end;
Vvod1m(x3,n3,'X3');
Vivod1m(x3,n3,'X3');
writeln('Max otr el=',MaxOtr(x3,n3):0:2);
if MaxOtr(x3,n3)=0 then writeln('Preobrazovanie nevozmozno!')
else
  begin
    Delenie(x3,n3,MaxOtr(x3,n3));
    Vivod1m(x3,n3,'X3');
  end;
readln
end.
1
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,892
06.03.2009, 21:08
Цитата Сообщение от Puporev Посмотреть сообщение
Вот здесь неверно.
Так мы получим не максимальное отрицательное, а минимальное.
Согласен... опять меня подвело желание скорее кодить, не дочитав задание до конца

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function MaxOtr(a:Tmas;n:byte):real;
var i,k:byte;
    max:real;
begin
max:=-100;k:=0;
for i:=1 to n do
if (a[i]<0)and(a[i]>max) then
   begin
     max:=a[i];
     k:=1;
   end;
if k=0 then max:=0;
MaxOtr:=max;
end;
Хочу развить Вашу мысль: данный алгоритм не найдет максимальное минимальное число менее -100. Вот как я предлагаю выкрутится: присвоить переменной max наименьшее из вообще возможных значений для Real переменных. Так же если использовать по активнее использовать встроенную локальную переменную, обозначающую возврат из функции, то мы спокойно можем избавиться от переменной-флага k.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function MaxOtr(a:Tmas; n:byte):real;
var i   : byte;
    max : real;
begin
  max    := 2.9e-39; {применяем самое минимальное из возможных REAL}
  MaxOtr := 0;       {это если ни одного минимального мы не обнаружим}
 
  for i:=1 to n do
    if (a[i]<0) and (a[i]>max) then
    begin
      max    := a[i]; {запоминаем макс из мин}
      MaxOtr := max;  {когда функция завершится ее результатом будет}
                      { самое последнее значение}
    end;  
end;
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
06.03.2009, 21:11
max := 2.9e-39; {применяем самое минимальное из возможных REAL}
Полностью согласен. Сходу забыл как писать, а посмотреть лень было. С целыми всегда так пишу
max:=-maxint-1;
0
2 / 1 / 1
Регистрация: 01.11.2024
Сообщений: 2
01.11.2024, 00:31
На пайтоне :
(Только названия функций другие)
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
def Vvod():
    X_int_list = []
    STR = input("Write number's for massive please: ")
    STR_list = STR.split()
    for i in STR_list:
         X_int_list.append(int(i))
    return X_int_list
def MaxOtr(a):
    X = []
    for i in a:
        if i < 0:
           X.append(i)
    if len(X) > 0:
        return max(X)
    if len(X) <= 0:
        return 0
def Delenie(a):
    XX = []
    if MaxOtr(a) < 0:
        for i in a:
            if MaxOtr(a) < 0:
               XX.append(i / MaxOtr(a))
        return XX
    if MaxOtr(a) == 0:
        return 'Devision by zero is False!'
def Vivod(a, b, c):
    print('Massive X1 = ', a, 'Transform X1 = ', Delenie(a))
    print('Massive X2 = ', b, 'Transform X2 = ', Delenie(b))
    print('Massive X3 = ', c, 'Transform X3 = ', Delenie(c))
print('X1.', end='')
X1 = Vvod()
print('X2.', end='')
X2 = Vvod()
print('X3.', end='')
X3 = Vvod()
print('____________________________________________')
print('Results: ')
Vivod(X1, X2, X3)
a, b, c = len(X1), len(X2), len(X3)
abc , ab = a + b + c, (a + b + c) - a + b
if abc - ab == c:
    import numpy
    F_m_m_m = X1, X2, X3
    Full_Multidimensional_massive = numpy.array(F_m_m_m)
    print('Multidimensional massive of one-dimensional: ____________________________')
    print(Full_Multidimensional_massive)
0
Модератор
10352 / 5638 / 3394
Регистрация: 17.08.2012
Сообщений: 17,202
01.11.2024, 10:17
Lalo Nobody, у Вас как с логикой? Кто в добром уме и светлой памяти полезет за Вашим питоном на паскалевскую ветку? И зачем Вы Вашим кодом подняли тему 15-летней давности? Уж если поднимаете старую тему, так пишите в неё что-то достойное поднятия темы из небытия, а не то же самое, что уже написано и без Вас, только на другом языке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.11.2024, 10:17
Помогаю со студенческими работами здесь

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

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

Каждый отрицательный элемент массива заменить на его абсолютную величину
Дан массив вещественных чисел. а) Каждый отрицательный элемент заменить на его абсолютную величину. 6) Все элементы с нечетными...

Каждый отрицательный элемент массива заменить на его абсолютную величину
Дан массив вещественных чисел x. Каждый отрицательный элемент заменить на его абсолютную величину.

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru