Mam starszna prosbe...potrzebuje pomocy w sprawie zadania ktore mam wykonac w Turbo Pascalu. Nie mam zielonego pojecia jak sie za niego zabrac
Oto jego tresc : w pliku dane.txt znajduje sie pewna ilosc liczb calkowitych z zakresu od 0 do 2 miliardow.Trzeba napisac program, ktory do pliku wynik.txt zapisuje wszystkie liczby majace taka sama pierwsza i ostatnia cyfre w zapisie liczby.Jezeli liczba jest jednocyfrowa to zostaje pominieta.
Pliki dane.txt i wynik.txt maja byc zapisane na dysku...Jezli ktos zna sie na tym to bardzo prosze o pomoc
turbo pascal
Re: turbo pascal
masz do rozwiązania (na szybkie obliczenie) 3 problemy:
1. ustalenie par cyfr:
pierwsza i ostatnia
1-1, 1-2,1-3,1-4,1-5,1-6,1-7,1-8,1-9,1-0
..........
9-1,9-2,9-3......
takim sposobem masz 90 par wzorców do przeszukania
2. przeszukanie możliwie szybkie całego zbioru n-liczb z pliku dane.txt
dla i-tego wzorca,
przeszukujesz n liczb z dane.txt, wszystkie spełniające zapisujesz do wynik.txt
następnie bierzesz następny wzorzec powtarzasz operację dla całego zbioru dane.txt
3. po wczytaniu liczby z dane.txt zamieniasz ją na ciąg znakowy [plik wygląda na to, że powinien być plikiem z podziałem na rekordy - gdzie rekord będzie liczbą double], a następnie sprawdzasz czy 1-cyfra z wzorca jest na początku stringa, a druga na końcu - też trzeba konwertować na string - albo od razu trzymać wzorzec jako string.
powyższy algorytm jest 'do dupy' - znaczy nijak nie jest optymalny
wykonać musi krok 2 i zamknięty w nim krok 3, 10 razy po n liczb z dane.txt
- musisz obmyśleć:
algorytm odczytu pliku z danymi
poszukiwania wzorca wśród liczb
algorytm przeszukania n wartości na obecność wzorca
wskazówka: napisz program który zapisuje powiedzmy 100 liczb losowo wygenerowanych o wartościach od 1 tys. do 2 mln, a następnie podejrzyj w notatniku otrzymany plik - pewnie będziesz tam mieć 2.09876*E^10
do przemyślenia: - jak zapisane są liczby w pliku dane.txt - jeśli jako liczby masz (nieduży) problem z odczytem i konwersją do stringa. Jeśli to napis (po prostu 13212232131, 09830823081, 98082302 w osobnych wierszach), to krok 3 spradza się do sprawdzenia czy na początku łańcucha jest 1-sza cyfra, a na końcu druga.
zapis - to akurat jest proste, najpier jednak proponowałbym zapisać zbiory na dysku w TEMP-ie a potem gotowe, przepisać na folder docelowy.
1. ustalenie par cyfr:
pierwsza i ostatnia
1-1, 1-2,1-3,1-4,1-5,1-6,1-7,1-8,1-9,1-0
..........
9-1,9-2,9-3......
takim sposobem masz 90 par wzorców do przeszukania
2. przeszukanie możliwie szybkie całego zbioru n-liczb z pliku dane.txt
dla i-tego wzorca,
przeszukujesz n liczb z dane.txt, wszystkie spełniające zapisujesz do wynik.txt
następnie bierzesz następny wzorzec powtarzasz operację dla całego zbioru dane.txt
3. po wczytaniu liczby z dane.txt zamieniasz ją na ciąg znakowy [plik wygląda na to, że powinien być plikiem z podziałem na rekordy - gdzie rekord będzie liczbą double], a następnie sprawdzasz czy 1-cyfra z wzorca jest na początku stringa, a druga na końcu - też trzeba konwertować na string - albo od razu trzymać wzorzec jako string.
powyższy algorytm jest 'do dupy' - znaczy nijak nie jest optymalny
wykonać musi krok 2 i zamknięty w nim krok 3, 10 razy po n liczb z dane.txt
- musisz obmyśleć:
algorytm odczytu pliku z danymi
poszukiwania wzorca wśród liczb
algorytm przeszukania n wartości na obecność wzorca
wskazówka: napisz program który zapisuje powiedzmy 100 liczb losowo wygenerowanych o wartościach od 1 tys. do 2 mln, a następnie podejrzyj w notatniku otrzymany plik - pewnie będziesz tam mieć 2.09876*E^10
do przemyślenia: - jak zapisane są liczby w pliku dane.txt - jeśli jako liczby masz (nieduży) problem z odczytem i konwersją do stringa. Jeśli to napis (po prostu 13212232131, 09830823081, 98082302 w osobnych wierszach), to krok 3 spradza się do sprawdzenia czy na początku łańcucha jest 1-sza cyfra, a na końcu druga.
zapis - to akurat jest proste, najpier jednak proponowałbym zapisać zbiory na dysku w TEMP-ie a potem gotowe, przepisać na folder docelowy.
– To wódka? – słabym głosem zapytała Małgorzata.(...)
– Na litość boską, królowo – zachrypiał – czy ośmieliłbym się nalać damie wódki? To czysty spi
– Na litość boską, królowo – zachrypiał – czy ośmieliłbym się nalać damie wódki? To czysty spi