babubabu napisał(a)
procedure TForm1.Button1Click(Sender: TObject);
var
imie : string;
a : integer;
begin
imie := Edit1.Text;
a := length(imie);
if imie = 'barnaba' then
showmessage('mezczyzna')
else if imie = 'kuba' then
showmessage('mezczyzna')
else if (imie[a] = 'a') then
showmessage('kobieta')
else
showmessage('mezczyzna');
end.
A co, jeśli wyjątków będzie np. 30
? Nie dość, że tworzy się śliczną drabinkę if
'ów, to jeszcze aby zmodyfikować zawartość listy wyjątków trzeba ingerować w kod; Już lepszym rozwiązaniem byłoby utworzyć dwie listy typu TStrings
(osobno dla mężczyzn, osobno dla kobiet) i istnienie danego imienia na liście sprawdzać metodą IndexOf
; Taką listę można łatwo modyfikować bez dodawania kolejnych if
'ów;
unikalna_nazwa napisał(a)
btw - jest pełno popularnych imion żeńskich obcego pochodzenia nie kończących się na "a" - przykładowo Noemi
takie wykrywanie płci nie ma w dzisiejszych czasach za bardzo sensu - lepiej się o płeć po prostu spytać
Dokładnie tak, teraz jest moda na zagraniczne imiona (ot po drodze - Nikol), dzięki czemu z czasem lista wyjątków będzie się powiększać; Trzeba brać pod uwagę wszystkie możliwości i odpowiednio na nie zwracać uwagę, jednak nic nie zastąpi wymienionego wyżej pytania o płeć;
babubabu napisał(a)
Fakt string w case nie zadziała
Zależy jakiego środowiska się używa, np. w TP7
dopuszczalne były łańcuchy w instrukcji wyboru :]