Напишите "функцию голосования" function Election - Pascal ABC
Формулировка задачи:
Доброго времени суток . Напишите "функцию голосования" function Election (x, y, z:boolean): boolean (Pascal), возвращающую то значение (true или false), которое среди значений ее аргументов x, y, z встречается чаще.
Входные данные
Вводится 3 числа - x, y и z (x, y и z равны 0 или 1, 0 соответствует значению false, 1 соответствует значению true).
Выходные данные
Необходимо вывести значение функции от x, y и z.
Примеры
входные данные
0 0 1
выходные данные
0
я только начал функции и процедуры , прошу подробно расписать заранее спасибо
Решение задачи: «Напишите "функцию голосования" function Election»
textual
Листинг программы
- program zr;
- function bool(a:byte):boolean;{Функция преобразования целочисленного значения в логическое}
- begin
- if a = 1 then bool := true{Если введенное значение равно единицы, то возвращаем true}
- else bool := false;{Если введенное значение равно нулю, то возвращаем false}
- end;
- function Election(x,y,z:boolean):boolean;{Собственно сама функция "Голосования"}
- var k:byte;{Счетчик значений true}
- begin
- k := 0;
- if (x) then k := k + 1;
- if (y) then k := k + 1;
- if (z) then k := k + 1;
- if (k >= 2) then Election := true{Если значение true(1) больше или равно 2, то возвращаем true(1)}
- else Election := false;{В противном случае возвращаем значение false(0)}
- end;
- var a:byte;
- x,y,z:boolean;
- begin
- repeat
- Write('Введите x: ');
- Readln(a);
- until (a = 0) or (a = 1);
- x := bool(a);
- repeat
- Write('Введите y: ');
- Readln(a);
- until (a = 0) or (a = 1);
- y := bool(a);
- repeat
- Write('Введите z: ');
- Readln(a);
- until (a = 0) or (a = 1);
- z := bool(a);
- if (Election(x,y,z)) then Writeln('1')
- else Writeln('0');
- Readln;
- end.
Объяснение кода листинга программы
- Функция
bool(a:byte)
принимает целочисленное значениеa
и возвращает логическое значениеtrue
илиfalse
в зависимости от того, равно ли введенное значение единице или нулю. - Функция
Election(x,y,z:boolean)
принимает три логических значенияx
,y
иz
и возвращает логическое значениеtrue
илиfalse
. - Переменная
k
инициализируется значением 0. - Если значение
x
равноtrue
, то значениеk
увеличивается на 1. - Если значение
y
равноtrue
, то значениеk
увеличивается на 1. - Если значение
z
равноtrue
, то значениеk
увеличивается на 1. - Если значение
k
больше или равно 2, то функция возвращаетtrue
. - В противном случае функция возвращает
false
. - Переменные
a
,x
,y
иz
инициализируются значениями, введенными пользователем. - Цикл повторяется до тех пор, пока введенное значение не будет равно 0 или 1.
- Значение
x
преобразуется в логическое значение. - Цикл повторяется до тех пор, пока введенное значение не будет равно 0 или 1.
- Значение
y
преобразуется в логическое значение. - Цикл повторяется до тех пор, пока введенное значение не будет равно 0 или 1.
- Значение
z
преобразуется в логическое значение. - Вызывается функция
Election(x,y,z)
. - Если результат функции
Election(x,y,z)
равенtrue
, то выводится число 1. - Иначе выводится число 0.
- Программа завершается вызовом функции
Readln()
. - Цикл повторяется до тех пор, пока введенное значение не будет равно 0 или 1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д