Предмет: Информатика, автор: prettysabrie

Разработать схему алгоритма для подсчёта количества отрицательных чисел среди целых чисел а,в,с.Протестировать алгоритм для всех возможных случаев (когда количество отрицательных чисел равно 0,1,2,3,)
Помогите кто понимает))

Ответы

Автор ответа: Аноним
0
// 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),(-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 - тест прошел

Похожие вопросы
Предмет: Русский язык, автор: dfds23213123gd
Предмет: Информатика, автор: иолантаи
Предмет: Математика, автор: Аноним