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.
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
// 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.
Вывод результатов точно такой же, как и выше.