szukam funkcji

0

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

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1