Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на записи
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Merlin
Даны итоги выборов в Думу города. По "К" округам известно число голосовавших за представителей "М" партий. Считая, что от каждого округа в Думу проходит по одному представителю, составить алгоритм и программу, которые определяют, какая партия провела наибольшее число своих кандидатов (предполагая, что все кандидаты набрали разное число голосов).

Никак не могу понять что найти нужно и как это сделать.

М
Заголовок темы должен быть информативным, в следующий раз будет предупреждение
klem4

volvo
Цитата
Никак не могу понять что найти нужно и как это сделать.

Твоя задача состоит в следующем: у тебя есть 2-х мерный массив (матрица) размером K строк на M столбцов (Results), в которой записаны результаты голосований, и массив (Party) из M элементов, для хранения данных о каждой партии.

Что нужно сделать? Для каждого округа (строки) матрицы Results находишь позицию, в которой находится максимальный элемент. Допустим, это PosMax... Значит, кандидат от этой партии избран. Тогда в массиве увеличиваешь элемент Party[PosMax] на единицу... Когда перебрал все строки, просто находишь макс. элемент в Party, его индекс и будет ответом на задачу...
Merlin
Можешь показать на примере, я массивы ещё не проходил ?
volvo
Могу, конечно, но вообще-то такие задачи без знания массивов решить трудно... wink.gif
const
K = 5;
M = 4;

Results: array[1 .. K, 1 .. M] of integer =
(
(2, 5, 3, 4),
(7, 6, 5, 2),
(4, 7, 2, 5),
(1, 3, 5, 7),
(2, 8, 6, 3)
);



var
Party: array[1 .. M] of integer;
i, j: integer;
maxParty, PosMax: integer;
begin
for i := 1 to K do begin

PosMax := 1;
for j := 2 to M do
if Results[i, j] > Results[i, PosMax]
then PosMax := j;
Inc(Party[PosMax]);

end;
maxParty := 1;
for i := 2 to M do
if Party[i] > Party[maxParty]
then maxParty := i;

WriteLn('Party #', maxParty);
end.
Merlin
1.А можнно задать массив через randomize в этой задаче ?

2. Или вот так : matrix = array[1..NN] of array[1..MM] of integer ?
volvo
To: Merlin
Ну, делай как тебе нравится, что же ты тогда помочь-то тебе просишь? dry.gif Ты уже тогда все требования пиши: массив задается через Randomize + пользоваться только формой
Array[ .. ] of Array [ .. ] of ;
+ все остальное. Тебе не угодишь...
Merlin
А что нужно подписать в программе, чтобы результат видно было ?
Atos
Подпиши в конце программы
Код
readln;
. Тогда после вывода результата на экран программы будет ждать нажатия Enter для завершения работы
klem4
или после завершения работы прораммы нажми alt+F5 ...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.