algorytm- zadanie z matury

0

Mam takie zadanie: Wyszukaj w pliku anagram.txt wszystkie wiersze tekstu, w których wszystkie słowa
są anagramami pierwszego słowa w danym wierszu. Zapisz te wiersze w pliku
odp_4b.txt.

Niestety nie mam pomysłu na to zadanie:(. Prosiłbym o małą wskazówkę

0

ładujesz całe wyrazy i jeden znak po nich:

char s[20]; //przechowuje dany wyraz
char l; //przechowuje separator
scanf("%s%c", s, &l);

Dopóki l==32, nie przechodzi do następnej linijki

1

Na początek możesz odrzucić wszystkie wyrazy, które są innej długości niż pierwszy. A sprawdzenie anagramu możesz sprowadzić do porównania ilości danych liter w wyrazach. Jeżeli będą równe, to znaczy, że są anagramami. To ci wystarczy.

0

Rev.pl nie prawda!!!! anagram ma tyle samo liter i takie same!!! więc może być tak, że liter jest tyle samo,ale się różnią

0

"Ilości danych liter", a nie "ilość liter". Kojarzysz różnicę?

0

Razi91 - char[]? Serio? ;)

Rozbij zadanie na kawałki:

  1. Wyszukaj w pliku anagram.txt wszystkie wiersze tekstu,
  2. w których wszystkie słowa są anagramami pierwszego słowa w danym wierszu.
  3. Zapisz te wiersze w pliku odp_4b.txt.

Czyli na przykład:

  • otwórz do odczytu plik "anagram.txt"
  • otwórz do zapisu plik "odp_4b.txt"
  • wczytuj plik "anagram.txt" linia po linii
    • zmienna "wszystkie_anagramy" przyjmuje wartość prawdy
    • zamień wczytaną linię tekstu w strumień (stringstream)
    • wczytaj pierwsze słowo i posortuj je (zamiast "kolba" dostaniesz "abklo")
    • wczytuj kolejne słowa ze stringstream:
      • sortuj nowowczytane słowo (zamiast "bolak" dostaniesz "abklo")
      • jeżeli nowowczytane słowo i pierwsze nie są identyczne, to:
        • zmienna "wszystkie_anagramy" przyjmuje wartość fałszu
        • przerywamy pętlę
    • jeżeli zmienna "wszystkie_anagramy" ma wartość prawdy, to:
      • zapisz wczytaną linię do pliku "odp_4b.txt"

Potrzebne rzeczy: fstream, string, funkcja getline, stringstream, operator>>, algorytm sort, operator<<, dwie pętle while...

Teraz pora, żebyś to zapisał w kodzie C++. ;)

0

Wielkie dzięki Azrael_Valedhel. :)

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