Форум программистов, компьютерный форум, киберфорум
Наши страницы
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
lionbak
0 / 0 / 0
Регистрация: 28.09.2017
Сообщений: 1
1

Из двух массивов первым на печать вывести массив, содержащий наибольшее значение

28.09.2017, 20:36. Просмотров 352. Ответов 9
Метки нет (Все метки)

Заданы два массива А(N) и В(M). Первым на печать вывести массив, содержащий наибольшее значение. Напечатать также это значение и его индекс.

лаба , мне завтра сдавать , помогите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2017, 20:36
Ответы с готовыми решениями:

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

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

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

Какой из двух массивов содержит наибольшее простое число
Здравствуйте помогите написать программу на паскале Даны 2 массива целых...

Сформировать массив записей, содержащий описание двух кругов, двух прямоугольников, трех квадратов
Помогите решить такую задачку. Опишите запись с вариантами. Каждая запись...

9
Zwelenewskiy
119 / 119 / 105
Регистрация: 09.01.2017
Сообщений: 1,238
Завершенные тесты: 1
28.09.2017, 22:48 2
Думаю, так должны принять.

Кликните здесь для просмотра всего текста
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
type
  mas = array of real;
 
function MaxMas(x: mas; n: word): real;// n - размерность массива
begin
  result := x[0];
  for var i := 0 to n - 1 do// с нуля, т.к. массив динамический
    if x[i] > result
      then result := x[i];
end;
 
procedure WriteMas(x: mas; n: word);
begin
  for var i := 0 to n - 1 do
    write(x[i], ' ');
  writeln;
end;
 
procedure InsertMas(x: mas; n: word; c: char);
begin
  for var i := 0 to n - 1 do
    x[i] := readlnreal('Введите ' + (i + 1) + '-й элемент массива ' + c + ':');
end;
 
var
  a, b: mas;
 
begin
  var n := readlninteger('Введите размер первого массива: '); 
  var m := readlninteger('Введите размер второго массива: ');
  
  setlength(a, n);//создание динамического массива А размерностью n
  setlength(b, m);//создание динамического массива В размерностью m
  
  writeln;  
  InsertMas(a, n, 'A');
  writeln;
  InsertMas(b, m, 'B');
  
  var max := 0.0;
  
  writeln;
  if MaxMas(a, n) > MaxMas(b, m)
  then begin
    writeln('Массив A с максимальным элементом:  ');
    writemas(a, n);
    max := MaxMas(a, n);
    writeln('Максимальный элемент массива: ', max);
  end   
  else begin
    writeln('Массив B с максимальным элементом:  ');
    writemas(b, m);
    max := MaxMas(b, m);
    writeln;
    write('Максимальный элемент массива: ', max);
  end;
  
end.


Добавлено через 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
type
  mas = array of real;
 
function MaxMas(x: mas; n: word; id: word): real;// n - размерность массива
begin
  result := x[0];
  for var i := 0 to n - 1 do// с нуля, т.к. массив динамический
    if x[i] > result
    then begin
      result := x[i];
      id := i;
    end;
end;
 
procedure WriteMas(x: mas; n: word);
begin
  for var i := 0 to n - 1 do
    write(x[i], ' ');
  writeln;
end;
 
procedure InsertMas(x: mas; n: word; c: char);
begin
  for var i := 0 to n - 1 do
    x[i] := readlnreal('Введите ' + (i + 1) + '-й элемент массива ' + c + ':');
end;
 
var
  a, b: mas;
 
begin
  var n := readlninteger('Введите размер первого массива: '); 
  var m := readlninteger('Введите размер второго массива: ');
  
  setlength(a, n);//создание динамического массива А размерностью n
  setlength(b, m);//создание динамического массива В размерностью m
  
  writeln;  
  InsertMas(a, n, 'A');
  writeln;
  InsertMas(b, m, 'B');
  
  var max := 0.0;
  var id := 0;
  
  writeln;
  if MaxMas(a, n, id) > MaxMas(b, m, id)
  then begin
    writeln('Массив A с максимальным элементом:  ');
    writemas(a, n);
    max := MaxMas(a, n, id);
    writeln('Максимальный элемент массива: ', max, '; его индекс: ', id);
  end   
  else begin
    writeln('Массив B с максимальным элементом:  ');
    writemas(b, m);
    max := MaxMas(b, m, id);
    writeln;
    write('Максимальный элемент массива: ', max, '; его индекс: ', id);
  end;
  
end.
0
Соколиный глаз
C#
224 / 164 / 113
Регистрация: 25.07.2014
Сообщений: 3,106
Записей в блоге: 10
Завершенные тесты: 2
29.09.2017, 00:43 3
Это в одну строку решается...
0
Zwelenewskiy
119 / 119 / 105
Регистрация: 09.01.2017
Сообщений: 1,238
Завершенные тесты: 1
29.09.2017, 00:56 4
Volobuev Ilya, да-да-да,методы расширения. Но это лаба в техе или инсте - алло))))
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26340 / 17671 / 6998
Регистрация: 22.10.2011
Сообщений: 31,095
Записей в блоге: 6
29.09.2017, 10:41 5
Цитата Сообщение от Zwelenewskiy Посмотреть сообщение
Но это лаба в техе или инсте
И что? Мы что теперь, должны писать программы так, чтобы понравилось чьему-то преподавателю?

Тогда объясни мне, почему вот в этом фрагменте:
Цитата Сообщение от Zwelenewskiy Посмотреть сообщение
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  if MaxMas(a, n, id) > MaxMas(b, m, id)
  then begin
    writeln('Массив A с максимальным элементом:  ');
    writemas(a, n);
    max := MaxMas(a, n, id);
    writeln('Максимальный элемент массива: ', max, '; его индекс: ', id);
  end   
  else begin
    writeln('Массив B с максимальным элементом:  ');
    writemas(b, m);
    max := MaxMas(b, m, id);
    writeln;
    write('Максимальный элемент массива: ', max, '; его индекс: ', id);
  end;
MaxMas вызывается 4 раза, хотя достаточно двух? Лично мне, будь я преподавателем, это бы совсем не понравилось.

И еще:
Цитата Сообщение от Zwelenewskiy Посмотреть сообщение
function MaxMas(x: mas; n: word; id: word): real;// n - размерность массива
Ты действительно считаешь, что это вернет индекс максимального элемента в вызывающую программу? Это не так.
1
Соколиный глаз
C#
224 / 164 / 113
Регистрация: 25.07.2014
Сообщений: 3,106
Записей в блоге: 10
Завершенные тесты: 2
29.09.2017, 14:40 6
Pascal
1
2
3
begin
  Arr(Arr(1, 2, 3), Arr(4, 5, 6)).MaxBy(x -> x.Max()).Println();
end.
Добавлено через 24 минуты
Печать с максимумом:
Pascal
1
2
3
begin
  Writeln(Arr(Arr(1, 2, 10), Arr(4, 5, 6)).MaxBy(x -> x.Max()).Println().Max());
end.
Добавлено через 6 минут
В общем, решение:
Pascal
1
2
3
4
5
begin
  var &Array := Arr(Arr(1, 2, 10), Arr(4, 5, 6)).MaxBy(x -> x.Max());
  Writeln(&Array);
  WritelnFormat('Индекс максимального элемента {0} равен {1}.', &Array.Max(), &Array.IndexMax(0));
end.
Добавлено через 14 минут
Pascal
1
mas = array of real;
Объявление типа массива не обязательно.
Pascal
1
2
3
4
5
6
procedure WriteMas(x: mas; n: word);
begin
  for var i := 0 to n - 1 do
    write(x[i], ' ');
  writeln;
end;
Это тоже - уже есть функция Print для динамических массивов.

Добавлено через 1 минуту
А вообще - List<real> лучше использовать...
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26340 / 17671 / 6998
Регистрация: 22.10.2011
Сообщений: 31,095
Записей в блоге: 6
29.09.2017, 14:41 7
По-моему, кто-то не хочет читать задание.

Ясно же написано:
Цитата Сообщение от lionbak Посмотреть сообщение
Первым на печать вывести массив, содержащий наибольшее значение.
, то есть, выводить - то надо всегда оба массива, но вот тот, где максимум - первым.

Как вариант:
Pascal
1
2
3
4
5
begin
  var title := Arr('A', 'B');
  var arrs := Range(0, 1).Select(i -> (title[i], ReadArrInteger(title[i] + ' -> ', ReadlnInteger(Format('Размер массива {0} = ', title[i]))))).OrderByDescending(v -> v[1].Max).
    Select((v, i) -> i = 0 ? Format('Массив {0} : {1}, максимум = {2}, индекс = {3}', v[0], v[1].JoinIntoString, v[1].Max, v[1].IndexMax) : Format('Массив {0} : {1}', v[0], v[1].JoinIntoString)).Println(NewLine);
end.
1
Соколиный глаз
C#
224 / 164 / 113
Регистрация: 25.07.2014
Сообщений: 3,106
Записей в блоге: 10
Завершенные тесты: 2
29.09.2017, 14:55 8
Можно так:
Pascal
1
2
3
4
5
begin
  var &Array := Arr(Arr(1, 2, 10), Arr(4, 5, 6)).OrderByDescending(x -> x.Max()).Println().ToList();
  WritelnFormat('Индекс максимального элемента {0} первого массива равен {1}.', &Array[0].Max(), &Array[0].IndexMax(0));
  WritelnFormat('Индекс максимального элемента {0} второго массива равен {1}.', &Array[1].Max(), &Array[1].IndexMax(0));
end.
Добавлено через 4 минуты
Pascal
1
2
3
4
5
begin
  var title := Arr('A', 'B');
  var arrs := Range(0, 1).Select(i -> (title[i], ReadArrInteger(title[i] + ' -> ', ReadlnInteger(Format('Размер массива {0} = ', title[i]))))).OrderByDescending(v -> v[1].Max).
    Select((v, i) -> i = 0 ? Format('Массив {0} : {1}, максимум = {2}, индекс = {3}', v[0], v[1].JoinIntoString, v[1].Max, v[1].IndexMax) : Format('Массив {0} : {1}', v[0], v[1].JoinIntoString)).Println(NewLine);
end.
Твое решение мне сложно прочитать из-за множества скобок...

Добавлено через 19 секунд
Тем более среда глючит - скобки не подсвечивает.
0
volvo
29.09.2017, 15:06
  #9

Не по теме:

Цитата Сообщение от Volobuev Ilya Посмотреть сообщение
Тем более среда глючит - скобки не подсвечивает.
Среда не нужна, когда хочешь посмотреть решение:

Из двух массивов первым на печать вывести массив, содержащий наибольшее значение

1
Zwelenewskiy
119 / 119 / 105
Регистрация: 09.01.2017
Сообщений: 1,238
Завершенные тесты: 1
29.09.2017, 15:39 10
Цитата Сообщение от volvo Посмотреть сообщение
Ты действительно считаешь, что это вернет индекс максимального элемента в вызывающую программу? Это не так.
Почему не так? Прогонял - работало
0
29.09.2017, 15:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2017, 15:39

Вывести на печать номер и элементы строки, имеющей наибольшее количество элементов, попадающих в интервал
найти и вывести на печать номер и элементы строки, имеющей наибольшее...

Первым на печать вывести массив, содержащий наибольшее значение
Заданы два массива A(N),B(M).Первый на печать вывести массив,содержащий...

Заданы два массива А(5) и И(4). Первым на печать вывести массив, содержащий наибольшее значение. Напечатать также это значение и его порядковый номер
Помогите пожалуйста решить задачу!! Срочно нужна помощь! Общая постановка...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru