Разработать схему алгоритма для подсчёта количества отрицательных чисел среди целых чисел а,в,с.протестировать алгоритм для всех возможных случаев (когда количество отрицательных чисел равно 0,1,2,3,) кто понимает))
299
337
Ответы на вопрос:
// pascalabc.net 3.0, сборка 1052 function kn(a,b,c: integer): byte; { функция возвращает количество отрицательных среди a,b,c} var n: byte; begin if a< 0 then n: =1 else n: =0; if b< 0 then inc(n); if c< 0 then inc(n); kn: =n end; function cond(c: char; v: integer): string; { функция формирует строку вида с> 0 или c< 0 в зависимости от знака v} begin if v< 0 then cond: =c+'< 0 ' else cond: =c+'> =0' end; procedure pv(a,b,c: integer; n: byte); { печать строки теста } var m: byte; begin m: =kn(a,b,c); write(cond('a',a),' ',cond('b',b),' ',cond('c',c),' '); write('отрицательных ',m); if n=m then write(' - тест прошел') else write(' - тестовое: ',n); writeln end; { тестовое решение } const t: array[1..8,1..3] of integer=((1,1,,1,-,-1,1), (1,-1,-,1,,1,-,-1,,-1,-1)); r: array[1..8] of byte=(0,1,1,2,1,2,2,3); var i: byte; begin for i: =1 to 8 do pv(t[i,1],t[i,2],t[i,3],r[i]) end. тестирование: a> =0 b> =0 c> =0 отрицательных 0 - тест прошел a> =0 b> =0 c< 0 отрицательных 1 - тест прошел a> =0 b< 0 c> =0 отрицательных 1 - тест прошел a> =0 b< 0 c< 0 отрицательных 2 - тест прошел a< 0 b> =0 c> =0 отрицательных 1 - тест прошел a< 0 b> =0 c< 0 отрицательных 2 - тест прошел a< 0 b< 0 c> =0 отрицательных 2 - тест прошел a< 0 b< 0 c< 0 отрицательных 3 - тест прошел
/* язык c++11. здесь решение вместе с юнит-тестами */ #include < iostream> #include < sstream> #include < string> int count_negatives(int a, int b, int c) { return (a< 0 ? 1: 0) + (b< 0 ? 1: 0) + (c< 0 ? 1: 0) } void solution(std: : istream & input = std: : cin, std: : ostream & output) { int a, b, c; input > > a > > b > > c; output < < count_negatives(a, b, c) < < std: : endl; } void checktest(std: : string input_data, std: : string correct_answer) { std: : istringstream input(input_data); std: : istringstream correct_answer_stream(correct_answer); std: : stringstream algorithm_answer_stream; int correct_value, algorithm_value; correct_answer_stream > > correct_value; solution(input, algorithm_answer_stream); algorithm_answer_stream > > algorithm_value; if (correct_value ! = algorithm_value) { std: : cerr < < "input: " < < input_data < < std: : endl; std: : cerr < < "correct: " < < correct_value < < std: : endl; std: : cerr < < "algorithm: " < < algorithm_value < < std: : endl; throw std: : runtime_error("test failed"); } } void runtests() { checktest("1 2 3", "0"); checktest("-1 2 3", "1"); checktest("1 -2 3", "1"); checktest("1 2 -3", "1"); checktest("-1 -2 3", "2"); checktest("-1 2 -3", "2"); checktest("1 -2 -3", "2"); checktest("-1 -2 -3", "3"); } #ifdef __debug int main(int argc, const char *argv[]) { runtests(); return 0; } #else int main(int argc, const char *argv[]) { solution(); return 0; } #endif
Отдел +; пер a: ряд 10 из цел; сч, произведение: цел; указ произведение : = 0; от сч : = 0 до размер(a) - 1 вып если a[сч] > 0 то произведение : = произведение * a[сч] кон кон кон .
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
ssamandrakova21.10.2021 09:07
-
Maowsk11.05.2021 04:15
-
akovlevavika44410.05.2022 04:10
-
nnejman24.04.2021 19:29
-
лев65219.11.2021 11:08
-
Veronika7256318.06.2021 15:56
-
Даша12Няшка04.11.2020 19:04
-
olenina05109.03.2022 06:26
-
помогитеяглупая15.02.2023 06:56
-
PomoGayka007.12.2022 16:33
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.