Bezpośrednie użycie funkcji Str do budowy łańcucha wartości

0
Program egefe8;
type
toosoba = record
  imie:string;
  nazwisko:string[20];
  rok_u,mies_u,dzien_u:word;
  id:word;
end;

Var S,czy : String;
  osoba:toosoba;

Function IntToStr (I : Longint) : String;


begin
 Str (I,S);
 IntToStr:=S;
end;

begin
  repeat

  Randomize;
  osoba.imie :='imie'+IntToStr(random(100)+0);
  osoba.nazwisko :='naz'+IntToStr(random(100)+0);
  osoba.rok_u:=random(2000-1900)+1900;
  osoba.mies_u:=random(13)+1;
  osoba.dzien_u:=random(32)+1;
  osoba.id:=random(100)+1;


 writeln(osoba.imie,' ',osoba.nazwisko,' ',osoba.rok_u,' ',osoba.mies_u,' ',osoba.dzien_u,' ',osoba.id);

writeln('Jezeli chcesz wykonac jeszcze raz wpisz dowolny znak lub kliknij enter.');
writeln('Jezeli chcesz zakonczyc wpisz "nie"');
readln(czy);

  until czy='nie';



end.                                          

Witam,czy jest ktoś w stanie mi zmienić powyższy kod aby program działał tak samo lecz bez tworzenia funkcji czyli Inttostr tylko dodając zmienną var s:string a później w zmiennej losując liczbe randomem + wywołując - str(liczba,s);

a chodzi mi o te podpunkty programu -

osoba.imie :='imie'+IntToStr(random(100)+0);
osoba.nazwisko :='naz'+IntToStr(random(100)+0);
2

W jednym ciągu instrukcji (w jednej linii) tego nie zrobisz, bo Str to procedura; Tak więc najpierw musisz wywołać samo Str aby wrzucić do pomocniczej zmiennej wylosowaną liczbę i przekonwertowaną na łańcuch znaków, a następnie ten łańcuch możesz już użyć podczas nadawania wartości dla pola rekordu; Czyli coś w tym stylu:

Str(Random(100), S);
Osoba.Imie := 'imie' + S;

Czytelniej było by skorzystać z funkcji Format:

Osoba.Imie := Format('imie%d', [Random(100)]);

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