[Pascal] Wypisywanie od tyłu

lutnia
Użytkownik
Użytkownik
Posty: 33
Rejestracja: 6 lis 2011, o 11:35
Płeć: Kobieta
Lokalizacja: Szczecin
Podziękował: 3 razy

[Pascal] Wypisywanie od tyłu

Post autor: lutnia »

Kod: Zaznacz cały

program Miniszyfr;
uses Crt;
const n:20;
var dlugosc: byte;
napis: string[n];
i: integer;
begin
  ClrScr;
  Writeln('wpisz wyraz');
  Readln(napis);
  dlugosc:=lenght(napis);
  for i:=dlugosc downto 1 do Write (napis[i]);
  Readln;
end.

Mogłabym prosić o wyjaśnienie tego "write (napis)". Dlaczego napis i po co to "i"?.
Dzięki.
Ostatnio zmieniony 6 gru 2011, o 23:36 przez Afish, łącznie zmieniany 2 razy.
Powód: Listing programu otaczamy tagami [code][/code]
szw1710

[Pascal] Wypisywanie od tyłu

Post autor: szw1710 »

Jak masz napisać wyraz od tyłu, to musisz to robić po literce. napis oznacza i-tą literę słowa napis.

Włącz sobie debugowanie programu i zobacz, jak się wykonuje. Podejrzyj wartości zmiennych.

Jak to zadziała:

Mamy wyraz "rower". dlugosc=5.

napis[5]=r - piszemy r
napis[4]=e - piszemy e
napis[3]=w
napis[2]=o
napis[1]=r

Więc dostaniemy na wyjściu "rewor".

Downto oznacza odliczanie licznika pętli od końca do początku.
lutnia
Użytkownik
Użytkownik
Posty: 33
Rejestracja: 6 lis 2011, o 11:35
Płeć: Kobieta
Lokalizacja: Szczecin
Podziękował: 3 razy

[Pascal] Wypisywanie od tyłu

Post autor: lutnia »

A to, że on zapamiętuje kolejność znaków zawdzięczam funkcji lenght?
Dzięki wielkie.
Awatar użytkownika
ares41
Użytkownik
Użytkownik
Posty: 6499
Rejestracja: 19 sie 2010, o 08:07
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 142 razy
Pomógł: 922 razy

[Pascal] Wypisywanie od tyłu

Post autor: ares41 »

Funkcja lenght określa długość słowa.

Kolejność znaków jest zapisana w zmiennej typu string, którą możesz tutaj traktować jako jednowymiarową tablicę, której elementy stanowią zmienne typu char, czyli poszczególne litery.
ODPOWIEDZ