Десять раз генерировать ряд случайных чисел от 0 до 99.
Каждый ряд также должен иметь произвольную длину.
В каждом ряде следует найти максимальное число.
Сохранить только максимальные числа и вывести их на экран.
arrmax – обычный массив, где будут сохраняться максимальные значения рядов;
row – динамический массив для текущего ряда чисел;
n – длина текущего ряда чисел.
Переменной j будет играть роль индекса элементов массива arrmax. В конце цикла for, который сделает 10 итераций, j будет увеличиваться на единицу, что будет означать переход к следующей ячейке массива.
Длина очередного ряда чисел случайна. Получив значение n, выделяем память под динамический массив с помощью процедуры getmem.
Заполняем динамический массив случайными числами.
Записываем в очередную ячейку массива arrmax первое значение динамического массива. Если какое-либо последующее значение массива, на который указывает row, будет больше arrmax[j], то производится перезапись значения.
После нахождения максимума память можно освободить (freemem).
type arrdinamic = array[1..50] of integer; var arrmax: array[1..10] of integer; row: ^arrdinamic; n, i, j, k: integer; begin randomize; j := 1; for i := 1 to 10 do begin n := random(50) + 1; getmem(row,n*sizeof(integer)); for k := 1 to n do row^[k] := random(100); arrmax[j] := row^[1]; for k := 1 to n do if row^[k] > arrmax[j] then arrmax[j] := row^[k]; freemem(row,n*sizeof(integer)); j := j + 1 end; for i := 1 to 10 do write(arrmax[i], ' '); readln end.
Комментарии
freemem(row,n*sizeof(integer)
freemem(row,n*sizeof(integer)); - ошибка, должно быть freemem(row);
И произвольный массив - это не до 50, а любое число, включая числа больше 50
А зачем здесь вообще массив
А зачем здесь вообще массив row? Ведь можно срзу сравнивать случайные числа с максималными в данной итерации.
getmem(row,n*sizeof(integer));
Каким образом getmem(row,n*sizeof(integer)) выделяет память?
n - количество элементов
n - количество элементов массива
sizeof(integer) - размер одного элемента
row - ссылка на область памяти, куда записываются данные
Помогите . пожалуйста решить задачу.
Помогите . пожалуйста решить задачу.
заданы код, количество и цена каждого вида товара, находящихся на складе. определить общую стоимость товара, а также код товара с наибольшей стоимостью.
ПОМОГИТЕ РЕШИТЬ ЗАДАЧУ!!!!
Определить сумму и количество отрицательных элементов, находящихся под главной диагональю матрицы.
Число столбцов = 7
Число рядков = 7
базовый тип REAL
не могу никак решить!!!
помогите, умоляю, а то у меня уже голова не соображает как эту задачу решить....:(
Решение:
вроде как работает (проверял только на целых числах)
Добрый день,помогите пожалуиста с решением данной задачи.
Вы посетили магазин и купили 10 видов товара. В таблицу T[1:10] вы записали количество купленного товара каждого вида. В таблицу C[1:10] записали цены единиц каждого вида товара соответственно. Составьте на Паскале программу вычисления общей стоимости всех покупок.
Прошу,пожалуйста,умоляю
//блок обьявления переменных,
Разве для решения такой
Разве для решения такой задачи должны использоваться динамические массивы?
Таблицы - это одномерные массивы типа [1..10]? И их элементы нужно перемножить между собой? Или имеется ввиду что-то другое?