Czy jest w
Pascalu taka funkcja która jeśli mamy np liczbę 4-rocyfrową to rozdzieli ją przy wpisywaniu na 4 cyfry?Dziękuję
0
0
Wystarczy, że skonwertujesz liczbę do stringa, a będziesz mógł się odwoływać do poszczególnych cyfr jako do kolejnych elementów tablicy.
0
Albo również bez konwersji na stringa i zabawy znakami, po prostu arytmetyka:
function wezcyfre(wartosc:longint;nr,podst:byte):byte;
begin
while boolean(nr)do
begin
wartosc=wartosc div podst;
dec(nr)
end;
wezcyfre:=wartosc mod podst;
end;
function ustawcyfre(wartosc:longint;nr,podst,cyfra:byte):longint;
var i,j:longint;
begin
i:=1;
j:=wartosc;
while boolean(nr)do
begin
i:=i*podst;
j:=j div podst;
dec(nr)
end;
j:=j mod podst;
ustawcyfre:=wartosc+i*(cyfra-j)
end;
// poprawka
// można to zapisać zwięźlej...
function ustawcyfre(wartosc:longint;nr,podst,cyfra:byte):longint;
var i:longint;
begin
i:=1;
while boolean(nr)do
begin
i:=i*podst;
dec(nr)
end;
ustawcyfre:=wartosc+i*(cyfra-((wartosc div i)mod podst))
end;
begin
writeln(ustawcyfre(4,3,10,2)) // -> 2004 :)
end.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.