Pascal. дана строка типа '500 рублей' в которой первые несколько символов (цифровые) обозначают стоимость товара а затем после пробела идут символы (буквенные) обозначающие валюту перевести стоимость товаров в числовую форму и подсчитать их сумму
PascalABC.NET (только под этим компилятором, в программе есть функции, которых нет в стандартном наборе) Если под TurboPascal или Free то будет выглядеть иначе
const s = 10; var a : array of char; i,l : integer; r : real; begin SetLength (a,1); read (a[0]); i := 0; while a[i] <> ' ' do begin i := i +1; SetLength (a,i+1); read (a[i]); end; r := 0; l := i-1; for i := 0 to l do begin r := r + (ord(a[i]) - 48) * power (s,(l-i)); end; writeln (r); end.
uses crt,graph; type mas=array[1..500] of Pointtype; var gd,gm,i,j,k,n:integer; a:mas; begin randomize; gd:=0; initgraph(gd,gm,''); for i:=1 to 500 do begin a[i].x:=random(getmaxX); a[i].y:=random(getmaxY); circle(a[i].x,a[i].y,2); end; k:=0;n:=0; repeat k:=k+1; delay(200); setcolor(0); for i:=1 to 500 do circle(a[i].x,a[i].y,2); for i:=1 to 500 do begin if a[i].y>getmaxY-n-10 then a[i].y:=1 else a[i].y:=a[i].y+3; if a[i].x<0 then a[i].x:=getmaxX else a[i].x:=a[i].x-1; end; setcolor(15); for i:=1 to 500 do circle(a[i].x,a[i].y,2); if k mod 20=0 then begin n:=n+1; line(0,getmaxY-n,getmaxX,getmaxY-n); end; until keypressed; readln end.
В позиционной системе каждый разряд стоит на своей позиции. Например, в 10-ной системе, число 235 означает, что в нем 2 сотни, 3 десятка и 5 единиц. В 2-ной системе число 10010 означает, что в нем 1 число 2^4 = 16 и 1 число 2^1 = 2. Таким образом, эта запись означает число 16 + 1 = 18. В непозиционной системе разные единицы могут быть в разных местах, а их значение определяется взаимным расположением. Самая известная непозиционная система - это римские цифры. Запись IV означает 5 - 1 = 4, запись VI означает 5 + 1 = 6. Запись IX означает 10 - 1 = 9, запись XI означает 10 + 1 = 11. То есть значение значка I означает то +1, то -1, в зависимости от того, стоит он перед или после более старшего значка.
const
s = 10;
var
a : array of char;
i,l : integer;
r : real;
begin
SetLength (a,1);
read (a[0]);
i := 0;
while a[i] <> ' ' do
begin
i := i +1;
SetLength (a,i+1);
read (a[i]);
end;
r := 0;
l := i-1;
for i := 0 to l do begin
r := r + (ord(a[i]) - 48) * power (s,(l-i));
end;
writeln (r);
end.