4. Калькулятор
Простая "техническая" задача. Возможно решение с использованием case и одновременным формированием 3 строк. Использование подпрограммы существенно упрощает программу, так как для всех трех выводимых строк должны быть выполнены одни и те же действия.
var s:string;
procedure display(const s,v:string);
var i,k:integer;
begin
for i:=1 to length(s) do
begin
if s[i]='-' then k:=1
else k:=(ord(s[i])-ord('0'))*3+4;
if (k>0) and (k<length(v)) then
write(copy(v,k,3));
end;
writeln;
end;
begin
readln(s);
display(s,' _ _ _ _ _ _ _ _ ');
display(s,' _ | | | _| _||_||_ |_ ||_||_|');
display(s,' |_| ||_ _| | _||_| ||_| _|');
end.