Matura 2009 - zadanie 5b

Odpowiedz Nowy wątek
2015-01-08 15:40
0

Witam! mam problem z zadaniem z zakresu programowania z matury rozszerzonej z 2009 roku, a dokładniej z zadaniem 5B. Tutaj treść zadania: http://www.cke.edu.pl/images/[...]jne/2009/informatyka/PR_2.pdf

Ma wyjść 35 takich par. Nie potrafię zaimplementować tego w programie. W załączniku przesyłam plik z danymi. Jeśli ktoś mógłby mi pomóc to bardzo dziękuję :)

Pozostało 580 znaków

2015-01-08 15:58
0

Walnij najprostszy brute force.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2015-01-08 16:19
0
while(!data.eof()){
    data >> a >> b;
    if(a.find(b) != std::string::npos) ++w;
}

Pokaż pozostałe 5 komentarzy
Czyli nie z\rozumiałeś zadania. - _13th_Dragon 2015-01-08 18:28
No to w takim razie jak byś je zinterpretował? - ujemny 2015-01-08 18:32
Proponuję również zobaczyć plik z danymi wejściowymi, poza tym pisałem tą maturę xD - ujemny 2015-01-08 18:34
No tak, zwracam honor, to ja czytałem nie to zadanie - 5D - _13th_Dragon 2015-01-08 18:47

Pozostało 580 znaków

2015-01-08 20:15
0
ujemny napisał(a):
while(!data.eof()){
data >> a >> b;
if(a.find(b) != std::string::npos) ++w;
}

Dzięki za to! Co prawda to jest gotowiec, a chciałbym wiedzieć, czy mogę do tego wykorzystać taki kod ?

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
    ifstream file;
    ofstream file1;
    file.open("dane.txt");
    file1.open("4b.txt");
    string n1,n2;
    bool fragment = false;
    int pom = 0;
    while (file.good())
    {
        file >> n1 >> n2;

        fragment = false;
        for (int i = 0; i <= n1.size() - n2.size(); i++)
        {
            if (n1[i] == n2[0]) 
            {   
                fragment = true; 
                pom = 1; 
                for (int j = i + 1; j < n2.size(); j++)
                {
                    if (n1[j] != n2[pom++]){ fragment= false; break; }
                }
            }
        }
        if (fragment) licznik++;
    }
    file1 << licznik;
    file.close();
    file1.close();
    return 0;

} 

sugerowałem się algorytmem wyszukiwania wzorca w tekście. Zaznaczam z góry, że jest coś nie tak. Przykładowo wyświetla mi wartości: 00101101 i 1000

edytowany 2x, ostatnio: ikcyzrbmaz, 2015-01-08 20:24

Pozostało 580 znaków

2015-01-08 22:05
0

Zadanie możesz rozwiązać jak Ci się tylko podoba, ale od tego też zależy liczba punktów jaką dostaniesz, najlepiej jak byś zrobił taką metodą której nie ma w kluczu.


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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