Skocz do zawartości


Zdjęcie

[pascal] Imiona żeńskie a męskie


  • Zamknięty Temat jest zamknięty
5 odpowiedzi w tym temacie

#1 Radzik16_kg

Radzik16_kg

    Obserwator

  • 6 postów

Napisano 07 12 2008 - 02:52

Witam, mam problem. Mianowicie :

Napisz program, który wczyta imie, a nastepnie wyswietli informacje, czy jest
to imie żeńskie, czy meskie. Należy uwzglednic fakt, że imie może być
wpisane wyłacznie wielkimi literami.

Miałem taki pomysł, że wiadomo iż wszystkie imiona żeńskie kończą sie na literkę 'a', więc jeżeli ostatnia literka byłaby różna od 'a', bylo by to imię meskie ... Jednak kompletnie nie wiem, jak to zastosować w praktyce.

Będę wdzięczny za jakąś wskazówkę.

  • 0

#2 macko444

macko444

    Początkujący

  • 38 postów

Napisano 07 12 2008 - 22:33

Witam!
Trzeba użyć w tym programie instrukcji warunkowej (IF ... THEN ... ELSE ...).
Źródło programu podaję niżej: (w razie jakiś pytań pisz?)
PROGRAM plec;
		   VAR
			  imie : STRING;
   BEGIN
		WRITE ('Podaj imię: ');
				ReadLn (imie);
		IF UpCase (imie [Length (imie)]) = 'A' THEN
		   WriteLn ('Imię żeńskie')
		ELSE
			WriteLn ('Imię męskie');
		ReadLn;
   END.
Pozdrawiam :)

  • 0

#3 Radzik16_kg

Radzik16_kg

    Obserwator

  • 6 postów

Napisano 08 12 2008 - 00:02

Hehe, działa :) Dzięki wielkie.

Mam jeszcze jedną prośbę, mógłbyś mi wytłumaczyć jak to działa? Chodzi mi dokładnie o te linijkę:

if upcase(imie[Length(imie)]) = 'A'


To sprawdza ostatnią literkę czy jak?:) Bo funkcja length podaje nam ilośc znaków w łańcuchu, to wiem, i nie kminie jak działa ta linijka if upcase(imie[Length(imie)]) = 'A'


Aczkolwiek program działa idealnie:)

Dzięki za pomoc:-)
  • 0

#4 mgx8

mgx8

    Początkujący

  • 148 postów

Napisano 08 12 2008 - 00:25

Ja bym to tak napisał:

var
 I: String; // Zmienna w ktorej bedzie przechowywany tekst
begin
 Write('Podaj imie: '); // Wyswietlenie napisu "Podaj imie: "
 Read(I); "Wczytanie podanego imienia do zmiennej I

 if UpCase(I[Length(I)]) = 'A' then // UpCase zamienia znak na duzo litere.
 // Operacja: Jezeli DuzyZnak(I[OstatniaLitera]) = 'A' to wykonaj...
  WriteLn ('Imie zenskie') // Wypisz, ze to Imie zenskie
 else
  WriteLn ('Imie meskie'); // Jezeli warunek nie jest spelniony, wypisz ze to Imie meskie

end. // Koniec programu

Jak będziesz miał jeszcze jakieś problemy z Pascalem, to pisz do mnie na GG:8520852
  • 0

#5 macko444

macko444

    Początkujący

  • 38 postów

Napisano 08 12 2008 - 22:01

Mam jeszcze jedną prośbę, mógłbyś mi wytłumaczyć jak to działa? Chodzi mi dokładnie o te linijkę:

if upcase(imie[Length(imie)]) = 'A'


IF ... THEN ... ELSE ... [jeżeli {warunek} to {instrukcja_1} w przeciwnym razie {instrukcja_2}<-- to jest instrukcja warunkowa (to pewnie wiesz)Dołączona grafika

UpCase <-- zamienia znaki małe na duże, np. 'a' -> 'A', itd.

Length <-- zwraca długość zmiennej "imię"

A więc:
Jeżeli podany wyraz (przetworzony już przez program na duże litery funkcją UpCase) kończy się na dużą literę 'A' (dlatego jest ta instrukcja UpCase aby cały wyraz zamienić na duże litery) to pisz 'Imię żeńskie' w przeciwnym razie pisz 'Imię męskie'.

mgx8 bez urazy ale ten Twój program jest identyczny jak mój. Jest w nim tylko troche komentarzy tłumaczących poszczególne linijki.
  • 0

#6 Radzik16_kg

Radzik16_kg

    Obserwator

  • 6 postów

Napisano 08 12 2008 - 23:33

Dzięki:D Po prostu nie znałem jeszcze funkcji UpCase, ale teraz juz wszystko wiem:) dzieki.

  • 0

Zobacz więcej tematów z tagiem: Turbo Pascal



Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych