Дата публикации:
Помогите решить задачу pascal. В предвыборной кампании проводится регистрация кандидатов в депутаты.
Помогите решить задачу pascal. В предвыборной кампании проводится регистрация кандидатов в депутаты.
Для решения данной задачи необходимо иметь информацию о количестве кандидатов в каждом округе, их возрасте и профессии. После этого можно вычислить средний возраст кандидатов в каждом округе.
Пример решения на языке Pascal:
program ElectionCampaign;
const
MAX_CANDIDATES = 100; // максимальное количество кандидатов
MAX_DISTRICTS = 10; // максимальное количество округов
type
Candidate = record
district: Integer; // номер округа
party: string; // наименование партии
age: Integer; // возраст
profession: string; // профессия
end;
var
candidates: array[1..MAX_CANDIDATES] of Candidate; // массив кандидатов
districtCount: array[1..MAX_DISTRICTS] of Integer; // массив количества кандидатов в каждом округе
districtAvgAge: array[1..MAX_DISTRICTS] of Real; // массив среднего возраста кандидатов в каждом округе
i, j, n: Integer; // счетчики и переменная для количества кандидатов
begin
// Ввод количества кандидатов
writeln('Введите количество кандидатов:');
readln(n);
// Ввод информации о кандидатах
writeln('Введите информацию о кандидатах:');
for i := 1 to n do
begin
writeln('Кандидат ', i);
writeln('Номер округа:');
readln(candidates[i].district);
writeln('Наименование партии:');
readln(candidates[i].party);
writeln('Возраст:');
readln(candidates[i].age);
writeln('Профессия:');
readln(candidates[i].profession);
// Увеличение счетчика кандидатов в соответствующем округе
districtCount[candidates[i].district] := districtCount[candidates[i].district] + 1;
end;
// Вычисление среднего возраста кандидатов в каждом округе
for i := 1 to MAX_DISTRICTS do
begin
if districtCount[i] > 0 then
districtAvgAge[i] := 0
else
districtAvgAge[i] := -1; // значение -1 для округов без кандидатов
for j := 1 to n do
begin
if candidates[j].district = i then
districtAvgAge[i] := districtAvgAge[i] + candidates[j].age;
end;
if districtCount[i] > 0 then
districtAvgAge[i] := districtAvgAge[i] / districtCount[i];
end;
// Вывод среднего возраста кандидатов в каждом округе
writeln('Средний возраст кандидатов в каждом округе:');
for i := 1 to MAX_DISTRICTS do
begin
if districtAvgAge[i] >= 0 then
writeln('Округ ', i, ': ', districtAvgAge[i]:0:2)
else
writeln('Округ ', i, ': нет кандидатов');
end;
readln;
end.
Программа запрашивает количество кандидатов, а затем запрашивает информацию о каждом кандидате (номер округа, наименование партии, возраст и профессию). Затем программа вычисляет средний возраст кандидатов в каждом округе и выводит результат на экран. Если в округе нет кандидатов, выводится сообщение "нет кандидатов".