Pascal Anagramy

Napisz program, który poprosi nas o podanie słowa. Potem poprosi o podawanie liter i napisze czy da się z danego stringa, ułożyć to słowo.

Co to są anagramy?

Anagram – nazwa wywodząca się od słów greckich: ana- (nad) oraz grámma (litera), oznacza wyraz, wyrażenie lub całe zdanie powstałe przez przestawienie liter bądź sylab innego wyrazu lub zdania, wykorzystujące wszystkie litery (głoski bądź sylaby) materiału wyjściowego. W czasopismach szaradziarskich pojawiają się zadania polegające na odgadnięciu wykreskowanego anagramu na podstawie wierszowanego komentarza, a także anagramy rysunkowe polegające na ułożeniu hasła z wszystkich liter właściwego określenia rysunku. Formami spokrewnionymi z anagramem są stenoanagram, egzoanagram i endoanagram.
Źródło wikipedia

Dlaczego pascal? Projekt do szkoły, niebyło możliwości wybrania języka.

Anagram NP.
słowo -> owłos – Podane słowo to anagram.
adam -> adam – Podane słowa są takie same
adam -> dama -Podane słowa są anagramami, z danego ciągu słowo można
ułożyć 2 razy.
interpersonalizacja -> Słowo jest za długie – Oczywiście możemy usunąć pętle zabezpieczającą i delikatnie zmodyfikować program.
Zasada działania:

  1. Podajemy słowo: adam
  2. Wpisujemy po kolei litery d,a,m,a.
  3. Program sprawdza każdą literkę w ciągu, a gdy trafi na odpowiednią, usuwa ją z obiegu – zabezpieczenie, gdyby go nie było można byłoby podać słowo adam->damo i wyświetliłoby się że to anagram.
  4. Program liczy liczbę kombinacji
  5. Wyświetla wynik działania i i pyta o ponowne użycie

Program bada również kombinacje. Sprawdza także czy słowo nie jest za długie.

Pascal Anagramy:

program Anagramy;
uses crt;
var cache:boolean;slowo,podane:string;x,m,i,j,c,rozmiar,licznik,ile:byte;wylacz:char;l_wyst:array[1..17]of byte;
begin
repeat
begin
licznik:=0;ile:=0;slowo:='';podane:='';rozmiar:=0;cache:=false;licznik:=0;ile:=0;
write('Podaj słˆowo: ');
readln(slowo);
rozmiar:=length(slowo);
while(rozmiar > 17) do
begin
  writeln('Sˆłowo nie może być dˆłuższe niż 17 znaków!');
  write('Powtórz hasłˆo: ');
  readln(slowo);
  rozmiar:=length(slowo);
end;
        for m:=1 to rozmiar do
         begin
          write('Podaj ',m,' literę: ');
          readln(podane[m]);
          end;
for i:=1 to rozmiar do
begin
for j:=1 to rozmiar do
begin
 cache:=(slowo[i]=podane[j]);
  if(l_wyst[j]=2) then cache:=false;
if(cache=true) then
        begin
        licznik:=licznik+1;
        l_wyst[i]:=l_wyst[j]+1;
        end;
if (licznik>i) then
        begin
        licznik:=i;
        ile:=ile+1;
        end;
end;
end;
for c:=1 to rozmiar do l_wyst:=0;
if(licznik=rozmiar) then writeln('Sˆłowo ',podane,' to anagram ',slowo)
else writeln('Sˆowo nie jest anagramem');
if(ile<>0) and (licznik=rozmiar) then writeln('Z danego ciągu słˆowo ',slowo,' można uˆożyć ',ile,' razy!');
         writeln('Wyłączyć? t/n');
         wylacz:=readkey;
         end;
    until wylacz='t';
end.

Ten kod jest bardzo ciekawy, ponieważ delikatnie go rozbudowując możemy wyszukiwać, porównywać w plikach anagramy. Bardzo łatwo jesteśmy w stanie dostosować go do swoich potrzeb.

Posiadam kilka wersji tego programu. Jeżeli by ktoś potrzebował innych proszę pisać w komentarzach.

Strona wyszukana na takie tagi:

  • interpersonalizacja
  • interpersonalizacja co to znaczy
  • interpersonalizacja co to jest