Program/skrypt do sprawdzenia kolejności szeregu liczb

Jakkolwiek głupi tytuł, to jest mi niezbędna wyżej wymieniona rzecz.

Załóżmy - mam 50.000 liczb - od 0 do 50.000. Jest tego w cholerę dużo, a mogą się pojawić błędy w postaci braku jakiejś liczby, przykład:

55

56

58

59

60

Jak widać brak tam 57. Czy jest jakakolwiek możliwość automatycznego sprawdzenia poprzez program czy w danym szeregu brakuje jakiejś liczby?

Nie pytajcie lepiej po co mi to…

Napisałeś mało konkretów - czy pojawiające się liczby są zawsze w kolejności rosnącej (to wtedy łatwo jest kontrolować bieżącą wartość), bo jeśli w losowej, to trzeba to trzymać w tablicy (trochę miejsca zajmie, nawet jak się użyje mapowania bitowego), czy mamy te brakujące liczby (jedna czy może być ich więcej?) wypisywać na końcu? No i nie podałeś, w jakim języku masz to napisać (czy może chodzi tylko o algorytm)?

O coś takiego ci chodziło?

floyd , programy antywirusowe identyfikują plik do którego linka podałeś jako wirusa.

Przecież nie o to chodzi, czy plik jest spakowany, czy nie, bo po jego pobraniu i próbie wypakowania i tak pojawi się alert antywirusa.

Podaj kod źródłowy programu, a nie jego plik wykonywalny!

Przyjąłem że ostrzeżenie pojawiło się przy próbie ściągania pliku, a nie w trakcie jego uruchamiania i dlatego go dodatkowo spakowałem choć też miałem wątpliwości czy to ma sens, ale tak dla świętego spokoju. Z tymi antywirusami to różnie bywa, ale formalnie masz oczywiście rację, że nie powinno mieć żadnego znaczenia czy plik jest spakowany czy nie.

Dla świętego spokoju przeskanowałem też jeszcze plik Avastem i komunikat mówi wyraźnie: “Nie znaleziono zagrożenia”.

Umieszczanie tu jakichkolwiek plików źródłowych jest pozbawione sensu bo gdybym chciał umieścić w programie jakieś szkodliwe fragmenty, to w pliku źródłowym bym ich tu nie zaprezentował. Nie mówiąc o tym że takie sprawdzanie jest dla mnie trochę obraźliwe w przypadku gdy informuję, że jest to programik napisany przeze mnie i że jest czysty.

Jedyne co mogę zrobić, to nie umieszczać tutaj linku do pliku, a co najwyżej link do mojej strony lub innej na której zainteresowany będzie mógł sobie plik ściągnąć lub zrezygnować.

Ależ ja wcale nie sugerowałem, że Ty wrzuciłeś zawirusowany program. Mnie chodziło tylko o to, żeby autor wątku miał możliwość zapoznać się z algorytmem działania tego programu i ewentualnie sam go sobie przerobić i skomplilować (bo nie podał informacji, skąd się biorą liczby z ciągu - w klawiatury/stdin są czytane, czy może są w jakimś pliku).

No, to się ubawiłem stwierdzeniem: “program trochę prymitywny…poprawności działania nie sprawdzałem.”

Ciekawe czym u Ciebie program może sobie zasłużyć na genialność bez sprawdzania poprawności działania, ale trochę się domyślam.

Programik był napisany na szybko na konkretne zapotrzebowanie i nawet nie wiem czy spełnia życzenia zainteresowanego dlatego nawet się nie siliłem na jakieś opisy takich lub innych czynności użytkownika czy sugestii postępowania, co prawdopodobnie uznałeś za brak odporności na błędy, ale można i tak.

Mnie ten programik nie jest do niczego potrzebny i jeżeli zainteresowanemu nie o to chodziło, to najzwyczajniej go skasuje.

W każdym bądź razie dziękuję za zainteresowanie, tylko szkoda, że Twoje uwagi bardzo ogólnikowe.

Dodane 10.02.2013 (N) 13:15

Masz rację, tym niemniej w takim przypadku też powstaje wiele pytań typu: Czy pytający programuje i w jakim języku?

Problem był na tyle banalny, że nawet początkujący przynajmniej próbował by go rozwiązać.

Sam algorytm w opisie słownym sprowadza się np. do:

Wczytania danych do pliku i utworzenia z niego tablicy.

Utworzenia pętli “for” której najmniejszym indeksem jest pierwszy element tablicy, a ostatnim ostatni element tablicy.

Umieszczenie w pętli “for” instrukcji “if” sprawdzającej czy kolejne indeksy pętli są kolejnymi elementami tablicy i jeżeli nie, to dołączamy je do nowego zbioru brakujących elementów który na końcu prezentujemy i wszystko.

Algorytm świetnie nadaje się do przećwiczenia w dowolnym języku programowania, a także w arkuszach kalkulacyjnych tworząc odpowiednie makro.

Ciekawszym dla mnie okazał się problem z tym rzekomym złośliwym kodem w pliku, na co zwrócił uwagę Areh.

Sprawdziłem jeszcze na stronie VirusTotal

i rzeczywiście niektóre antywirusy wskazywały na istnienie jakoby złośliwego kodu. :frowning:

Ponieważ program był bardzo krotki i nie było za bardzo co w nim zmieniać więc zmieniłem dołączaną do pliku grafikę (ikonę) i…problem zniknął. Oczywiście sprawdziłem też te pliki graficzne na istnienie złośliwego kodu z rezultatem negatywnym.

Dla mnie to dość pouczając doświadczenie.