Напишите "функцию голосования" 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д