Typ rekordowy.

0

Do pola imie wpisać łańcuch ‘imie’ zakończony losową liczbą należącą do przedziału [0,100)

Co robię źle, że nie chce mi to zadziałać ?

 
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
type
toosoba = record
  imie:string;
  nazwisko:string[20];
  rok_u,mies_u,dzien_u:word;
  id:word;
end;
var
 osoba:toosoba;
begin
 randomize;
 osoba.imie := random(100);
 writeln('imie',osoba.imie);
 readln;
end.
2

Czytaj treść błędów kompilatora. Random zwraca liczbę (integer bodajże), a Ty masz w polu imie string.
W zadaniu masz podane, że masz do pola przypisać łańcuch "imie" zakończony losową liczbą, nie robisz tego, wypisujesz coś (wypisywanie nie jest treścią zadania) a w pole imie usiłujesz wepchnąć liczbę losową.
Ponadto dość oryginalnym pomysłem wydaje się tablica na 20 nazwisk (jednej osoby!) przy jednoczesnym jednym polu na imię.

1

Co do pytania, to użyj IntToStr. Bo nie możesz do stringu przypisać od tak integera. A i nie wiem gdzie @ŁF widzisz tablicę na 20 nazwisk. To jest tylko ograniczenie typu string do 20 znaków. Zrobił to pewnie na przyszłość po to żeby później łatwiej zapisać dane do pliku rekordowego.

2

Najprościej skorzystać z funkcji Format z modułu SysUtils i nie bawić się w konkatenację:

uses
  SysUtils;

type
  TOsoba = record
    Imie: String[20];
  end;

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

  Write('Imie: "', Osoba.Imie, '"');
  ReadLn();
end.

Przykładowe wyjście:

Imie: "imie23"

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