kla_sa

shantiii
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 25 kwie 2010, o 16:21
Płeć: Mężczyzna

kla_sa

Post autor: shantiii »

Napisz funkcję.
Ostatnio zmieniony 29 maja 2010, o 12:19 przez shantiii, łącznie zmieniany 2 razy.
infty
Użytkownik
Użytkownik
Posty: 44
Rejestracja: 16 sty 2010, o 01:06
Płeć: Kobieta
Lokalizacja: Wrocław
Pomógł: 14 razy

kla_sa

Post autor: infty »

Mała podpowiedź w pseudokodzie:

Kod: Zaznacz cały

int AlfabetycznieNaLitere(char litera, string skad, string dokad){
   string l=null; // zmienna pomocnicza
   string tablica[1000] // tablica wielkosci 1000, rozmiar wg potrzeb
   int n=1 // n - wynik funkcji, czyli liczba linijek w pliku dokad
   otworz plik skad
   while(nie czytamy konca pliku){
      kolejną linijkę pliku skad wczytaj i zapisz pod l
      jesli l zaczyna sie od litera to 
         tablica[n]=l
         n=n+1
      zamknij plik skad
      posortuj tablica
      otworz plik dokad
      for(int i=1; i<n; i++)
         wpisz tablica[i] jako kolejna linie w dokad
      zamknij dokad
      zwroc n
   }
}
Do zrozumienia w miare proste, ale nie będzie działać dla bardzo dużych plików (bo przetrzymuję wartości w tablicy, co jest tak na prawdę zbędne). Jeżeli to dopiero początki z c++, nie ma co się przejmować.

A w tytule pojawiło się słowo drzewo. Tablica może reprezentowac jakies drzewo uporzadkowane, np. kopiec, i do sortowania możemy użyć algorytmu heapsort. To tylko przykładowe rozwiązanie.
shantiii
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 25 kwie 2010, o 16:21
Płeć: Mężczyzna

kla_sa

Post autor: shantiii »

To jest zadanie w którym własnie trzeba użyc drzewa. Koles na cwiczeniach nie robił zadan z drzew, a kazał nam samemu zrobić, wiec nie mam pojecia jak to zrobic...-- 30 maja 2010, o 11:32 --jest problem od 14 do 18. z posortowaniem, i z 26

Kod: Zaznacz cały

#include <fstream>
#include <cstring>

int AlfabetycznieNaLitere (char litera, string skad, string dok)
{
   string l=null; // zmienna pomocnicza
   string tablica[1000] ;// tablica wielkosci 1000, rozmiar wg potrzeb
   int n=1; // n - wynik funkcji, czyli liczba linijek w pliku dokad
  fstream skad;
  plik.open("skad.txt",ios::in |ios::out);        //otworz plik skad
  if(!skad)
   cout<<"error";
  else

   while(nie czytamy konca pliku)
   {
      //kolejną linijkę pliku skad wczytaj i zapisz pod l
     if ( )//jesli l zaczyna sie od litera to
         tablica[n]=l;
         n=n+1;
     skad.close(); //zamknij plik skad
      //posortuj tablica
      fstream dok;
     void open("dok.txt", ios::in |ios::out) //otworz plik dokad
      for(int i=1; i<n; i++)
        // wpisz tablica[i] jako kolejna linie w dokad
      dok.close();//zamknij dokad
      return n; //zwroc n
   }
}
ODPOWIEDZ