На входе программы подается 8-разрядное двоичное число, необходимо найти количество единиц и нулей составляющих это число

[email protected] в категроии Информатика, вопрос открыт 18.05.2017 в 15:44

ПАСКАЛЬ

2 ответа

MariYADA , ответ добавлен 18.05.2017 в 16:00

var 
x: string;

begin 
readln(x); 
write('Единиц '); 
writeln(x.Where(x -> x = '1').Count); 
write('Нулей ');   
writeln(8 - x.Where(x -> x = '1').Count);  
end.

Пример
00011111
5
3

 0   

[email protected] , ответ добавлен 18.05.2017 в 15:49

1. Современный вариант
// PascalABC.NET 3.2, сборка 1439 от 09.05.2017
// Внимание! Если программа не работает, обновите версию!

begin
  ReadlnString.GroupBy(c->c).Select(x->(x.Key,x.Count)).OrderBy(x->x[0])
    .Select(x->Format('"{0}" - {1}',x[0],x[1])).Println(NewLine)
end.

Пример
10101110
"0" - 3
"1" - 5

2. Школьный вариант в стиле Pascal ABC, Free Pascal

var
  s:string;
  i,k0,k1:integer;
begin
  Readln(s);
  k0:=0; k1:=0;
  for i:=1 to Length(s) do
    if s[i]='0' then Inc(k0) else Inc(k1);
  Writeln('"0" - ',k0);
  Writeln('"1" - ',k1)
end.

Вывод результатов точно такой же, как и выше.

 0   

Оставлять ответы могут только авторизированные пользователи.
Зарегистрируйтесь или  авторизируйтесь на сайте чтобы оставить ответ на вопрос.