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

Найти максимальный элемент в каждом столбце

05.05.2017, 21:37. Показов 4279. Ответов 25

Студворк — интернет-сервис помощи студентам
Найти максимальный эл-т в каждом столбце.Получить новый массив, умножив искомый эл-т на среднее арифметическое эл-ов столбца, в котором расположен этот эл-т.
Весь день уже пытаюсь, никак не пойму что не так.То "Нельзя преобразовать тип Real к Integer", то нахожу максимальный эл-т во всем массиве.Еще вопрос, нужно 3 знака после запятой оставить

Вот формула:

Y[i,j]:=cos(exp(ln(x)*0.25)-0.5*exp(ln(x)*0.5)+0.25*exp(ln(x)*0.75)) ;

помогите плез.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.05.2017, 21:37
Ответы с готовыми решениями:

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

Найти минимальный элемент в каждом столбце матрицы
Дан двумерный массив a, разме¬ром (n*m). Найти минимальный элемент в каждом столбце матрицы. Затем каждую строку матрицы разделить на...

Найти максимальный элемент во втором столбце матрицы
Найти максимальный элемент во втором столбце матрицы.

25
 Аватар для Zwelenewskiy
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651
05.05.2017, 23:10
Насчет 3-х знаков: когда выводишь элемент массива пиши,например:
Pascal
1
write(Y[i,j]:3)
Добавлено через 59 секунд
Покажи свой код. Поможем найти ошибки
1
0 / 0 / 0
Регистрация: 05.05.2017
Сообщений: 13
06.05.2017, 10:40  [ТС]
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
program q;
var max,i,j: integer;x:real;
Y:array [1..10,1..10] of integer;
begin
x:= 5.2;
for i:=1 to 10 do
for j:=1 to 10 do
begin
Y[i,j]:=cos(exp(ln(x)*0.25)-0.5*exp(ln(x)*0.5)+0.25*exp(ln(x)*0.75));
x:=x+0.75;
end;
for i:=1 to 10 do
begin
for j:=1 to 10 do
write('Исходный массив ',Y[i,j]);
writeln;
end;
for j:=1 to 10 do
begin
max:=Y[i,i];
for i:=1 to 10 do
for j:=1 to 10 do
if Y[i,j]>max then max:=Y[i,j];
writeln('Максимальный в столбце ',j:2,'=',max);
end;
readln;
end.
0
 Аватар для Zwelenewskiy
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651
06.05.2017, 13:22
Если каждый элемент массива вычисляется через такую функцию,то,разумеется, все элементы будут дробными. Поэтому и типы массива и переменной,отвечающей за максимальный элемент, должны быть соответствующими
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
program q;
 
const
  n = 10;
 
var
  i, j, mem_j: integer;
  x, max: real;
  Y: array [1..n, 1..n] of real;
 
begin
  x := 5.2;
  for i := 1 to n do
    for j := 1 to n do
    begin
      Y[i, j] := cos(exp(ln(x) * 0.25) - 0.5 * exp(ln(x) * 0.5) + 0.25 * exp(ln(x) * 0.75));
      x += 0.75;
    end;
  
  writeln('Исходный массив: ');
  
  for i := 1 to n do
  begin
    for j := 1 to n do
      write(Y[i, j]:1:2, '   ');
    writeln;
  end;
  
  mem_j := 0;
  max := Y[1, 1];
  j := 1;
  for i := 1 to n do
  begin
    if Y[i, j] > max 
      then max := Y[i, j];
    mem_j := j;
    inc(j);
  end;
  
  writeln('Максимальный элемент в столбце ', mem_j, ' = ', max);
  
end.
1
0 / 0 / 0
Регистрация: 05.05.2017
Сообщений: 13
07.05.2017, 20:09  [ТС]
А как тогда сделать для каждого столбца??
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
07.05.2017, 20:56
Pascal
1
2
3
4
begin
  var a := MatrRandom(4, 4, 0, 100);a.Print;
  write(a.Cols.Select((v, i) -> Format('{0} столбец - {1}', i + 1, v.Max)).JoinIntoString(NewLine));
end.
1
0 / 0 / 0
Регистрация: 05.05.2017
Сообщений: 13
07.05.2017, 21:23  [ТС]
что т не работает,хотя как вставить
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
07.05.2017, 21:25
Всё работает:

81 49 28 88
53 6 24 59
19 74 55 12
18 70 93 26
1 столбец - 81
2 столбец - 74
3 столбец - 93
4 столбец - 88
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
08.05.2017, 10:44
Вот с заполнением матрицы по формуле:
Pascal
1
2
3
4
5
6
7
8
begin
  var x := 5.2;
  var m := MatrGen(4, 4, (p, q) -> begin
                                        result := cos(exp(ln(x)*0.25)-0.5*exp(ln(x)*0.5)+0.25*exp(ln(x)*0.75));
                                        x := x + 0.75;
                                      end).Println(21, 15);
  m.Cols.Select((v, i) -> Format('{0} столбец - {1}', i + 1, v.Max)).Println(NewLine);
end.
Code
1
2
3
4
5
6
7
8
    0.333495476391250    0.272697194199350    0.213390219224816    0.155441490364629
    0.098774420205709    0.043348436747607   -0.010853387171773   -0.063832163962681
   -0.115578336170549   -0.166075163602608   -0.215301149301762   -0.263231764940996
   -0.309840701147417   -0.355100788036387   -0.398984682008696   -0.441465383786659
1 столбец - 0.33349547639125
2 столбец - 0.27269719419935
3 столбец - 0.213390219224816
4 столбец - 0.155441490364629
1
0 / 0 / 0
Регистрация: 05.05.2017
Сообщений: 13
09.05.2017, 10:14  [ТС]
Так столбцов же 10. А среднее арифметическое как посчитать??

Добавлено через 10 часов 49 минут
столбцов же 10
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
09.05.2017, 10:31
Цитата Сообщение от Kirill_help Посмотреть сообщение
столбцов же 10
Ну 10 - так 10, два числа изменить всего. Вот так будет сразу вычисляться произведение максимума на среднее арифметическое каждого столбца:

Pascal
1
2
3
4
5
6
7
8
begin
  var x := 5.2;
  var m := MatrGen(10, 10, (p, q) -> begin
                                        result := cos(exp(ln(x)*0.25)-0.5*exp(ln(x)*0.5)+0.25*exp(ln(x)*0.75));
                                        x := x + 0.75;
                                      end).Println(8, 3);
  m.Cols.Select((v, i) -> Format('{0,2} столбец: {1:0.000}', i + 1, v.Max * v.Average)).Println(NewLine);
end.
Вот результат:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
   0.333   0.273   0.213   0.155   0.099   0.043  -0.011  -0.064  -0.116  -0.166
  -0.215  -0.263  -0.310  -0.355  -0.399  -0.441  -0.483  -0.522  -0.560  -0.597
  -0.632  -0.665  -0.697  -0.728  -0.757  -0.784  -0.810  -0.834  -0.856  -0.877
  -0.896  -0.913  -0.929  -0.943  -0.956  -0.967  -0.976  -0.984  -0.990  -0.995
  -0.998  -1.000  -1.000  -0.998  -0.995  -0.991  -0.985  -0.978  -0.969  -0.959
  -0.948  -0.936  -0.922  -0.907  -0.890  -0.873  -0.854  -0.835  -0.814  -0.792
  -0.770  -0.746  -0.721  -0.696  -0.670  -0.643  -0.615  -0.587  -0.557  -0.528
  -0.497  -0.466  -0.435  -0.403  -0.371  -0.338  -0.305  -0.272  -0.239  -0.205
  -0.171  -0.137  -0.103  -0.069  -0.035  -0.001   0.033   0.067   0.101   0.135
   0.168   0.201   0.234   0.266   0.298   0.330   0.361   0.392   0.422   0.452
 1 столбец: -0.154
 2 столбец: -0.127
 3 столбец: -0.109
 4 столбец: -0.125
 5 столбец: -0.140
 6 столбец: -0.154
 7 столбец: -0.168
 8 столбец: -0.181
 9 столбец: -0.193
10 столбец: -0.205
1
0 / 0 / 0
Регистрация: 05.05.2017
Сообщений: 13
10.05.2017, 09:30  [ТС]
Вообще за все спасибо большое, а теперь можно это в 1 программу вывести??
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
10.05.2017, 10:46
Куда вывести? Это вообще-то и есть вся программа, что еще нужно? Написать ее в стиле Турбо-Паскаля? Этим бредом я не занимаюсь, для этого есть раздел по Турбо-Паскалю.
0
0 / 0 / 0
Регистрация: 05.05.2017
Сообщений: 13
10.05.2017, 18:32  [ТС]
Я имел ввиду , чтобы было сообразимо с моим первым кодом, потому что решение в 4 строчки не примут
0
 Аватар для Zwelenewskiy
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651
10.05.2017, 18:37
volvo, объясни пожалуйста, как правильно называется это самое "сокращенный" вариант Паскаля?=)
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
10.05.2017, 19:06
Zwelenewskiy, PascalABC.Net, если речь об этом
0
 Аватар для Zwelenewskiy
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651
10.05.2017, 19:12
Hitoku, ну,я как бы в курсе,что это PascalABC.Net))) Хочется узнать, как называются сокращения,которые использует, например, Volvo) Я знаком только с "классическим" Паскалем
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
10.05.2017, 19:33
Zwelenewskiy, в C# это называется методы расширения, если ты говоришь о Select'ах, Where'ах и прочем
0
 Аватар для Zwelenewskiy
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651
10.05.2017, 19:37
Hitoku, где по ним можно найти что-то вроде справочника (в Паскале,конечно же)?)
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
10.05.2017, 19:42
Zwelenewskiy, в справке к IDE или на MSDN. Только на MSDN примеры для C#, но не трудно переписать их на Pascal

Добавлено через 55 секунд
Ну или просто самостоятельно разбирать коды из этого раздела
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.05.2017, 19:42
Помогаю со студенческими работами здесь

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

Поменять местами в каждом столбце матрицы минимальный и максимальный элементы
Дана целочисленная прямоугольная таблица размером m×n. Поменять местами в каждом столбце минимальный и максимальный элементы.

В каждом столбце матрицы найти максимальный элемент
Дана матрица размера M x N. В каждом столбце матрицы найти максимальный элемент.

Найти в каждом столбце матрицы максимальный положительный элемент
Задан массив размерностью 10х10 элементов. Присвоить элементам массива значение функции Y=cos(x0,25-0,5x0,5+0,25x0,75) при...

В каждом столбце матрицы поменять местами последний и максимальный элемент
найти миннемальный среди максимальных элементов строк


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru