Wątek przeniesiony 2016-11-21 19:30 z Delphi i Pascal przez furious programming.

Uzupełnianie typu rekordowego danymi losowymi

0
program Project1;

type tosoba = record
imie: string[20];
nazwisko: string[20];
rok_u: word;
id: word;

var

osoba.tosoba;

begin

osoba.imie:='imie'........;
osoba.nazwisko:='naz'........;
osoba.rok_u:=........;


end.

Witam,

Musze uzupełnić typy rekordowe.W miejscu kropek -.... nie wiem co wpisać.

W polu** imie** program ma wypisać** 'imie'** zakończone losową liczbą z przedziału od 0-100.

W polu nazwisko program ma wypisać naz zakończone losową liczbą z przedziału od 0-100.

Wykorzystać do tego funkcje str.

W polu roku_u program ma wypisać losową liczbe od 1900 do 2000.

0

I co gdzie tu pytanie?
Str to nie funkcja a procedura i dziwię się, że Twój nauczyciel (jak podejrzewam) tego nie wie. Tu masz przykład jej użycia http://www.freepascal.org/docs-html/rtl/system/str.html wiec powinieneś sobie poradzić.
Do generowania liczb losowych służy funkcja Randomale wcześniej tylko raz należy wywołać Randomize na początku programu jak w przykładzie http://www.freepascal.org/docs-html/rtl/system/random.html

0
 type
    TOsoba = record
    private
      FImie: string;
      function GetImie: string;
    public
      property imie: string read GetImie write FImie;
    end;

function TOsoba.GetImie: string;
var
  vRndInt: integer;
begin
    vRndInt := //tutaj to co Ci podał @kAzek
    Result := FImie + IntToStr(vRndInt);
end;

Na tej podstawie możesz sobie przygotować pozostałe property czyli nazwisko rok itd ...

0

W sumie to jeśli struktura danych ma posiadać metody i dane rozmieszczone w różnych sekcjach to lepszym rozwiązaniem będą stare obiekty; A jeśli już koniecznie chcemy użyć zaawansowanych rekordów i mowa o FPC to aby kod dało się skompilować, trzeba dodać poniższą dyrektywę:

{$MODESWITCH ADVANCEDRECORDS}

Bez tej dyrektywy dostaniemy błędy kompilacji.

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