Język C/ maksimum możliwości

0

Witam,
zwracam się do Was z prośbą o pomoc w napisaniu programu w języku C. Nie jestem za bardzo obeznany w jego składni, dodatkowo piszę do dla koleżanki która nie za dokładnie wyjaśniła co w zasadzie ma ten program robić. Nie mogę się z nią skntaktować, więc liczę na Waszą dobrą wole i poświęcenie chwili czasu na pomoc :) (sami chyba rozumiecie że to "koleżanka").

Program ma za zadanie wyświetlić wszystkie 512 możliwości ułożenia praw dostępu/ bądź braku w systemie Unix.

Na razie domyśliłem się że chodzi zapewne o kombinację ułożenia liter drwx oraz symbolu myślnika "-" w maksymalnej ilości kombinacji. Jednak obliczając to, wyszło mi że maksymalna liczba "ustawień" tych 5 symboli jest mniejsza niż 512. I tu proszę o pomoc, o co dokladnie mogło chodzić autorowi zadania, tzn. o jakie kombinacje ? Nie pisał bym tego wątku gdyby nie to że zapewne większość z Was studentów informatyki spotkała się prawdopodobnie z takim zadaniem/ uprzedzam że skorzystałem już z pomocy wujka Google.

Jeśli ktoś już do tego dojdzie, chętnie zapoznałbym bym się z jakimiś wskazówkami którego pomogą mi napisać program wyświetlający wszystkie 512 możliwości. Na razie kombinuję coś z pętlą while, ale nie za bardzo mogę ruszyć z programem skoro nie znam dokładnie tych "kombinacji".

Za wszelką pomoc z góry dziękuję !

0

prawa dostępu w linuxie to ciąg dziewięciu znaków

rwx rwx rwx - na każdym miejscu może być odpowiednia litera albo myślnik. Więc 2^9=512

0

sprobuj napisac ten program na cyfrach a potem na literach. Na telefonie niestety nie moge Ci napisac pomocniczego kodu

0

rafal-prog- coś niesamowitego ;) Prawdziwy entuzjasta z Ciebie, dzięki wielkie.

Jako że nie jestem za dobry w C, chciałbym prosić o pomoc w napisaniu tego programu. Żeby nie było że czekam na gotowca, spróbowałem już coś naskrobać samodzielnie.

Wiem że sposobów na dotarcie do celu jest wiele, ale chciałbym obrać jak naprostszą drogę, chociaż jeśli ktoś ma jakiś bardziej zaawansowany pomysł na to zadanie to nie pogardzę.

Najpierw stworzył bym tablicę, z wszystkimi możliwymi kombinacjami (poprzedzielanymi myślnikiem) np. char[]= {rw-; r-x; itd}. Wydaje mi się że już gdzieś widziałem podobny program i tam w tablicy wrzucona była kombinacja 3 liter z myślnikami. A następnie wszystko było wrzucony w pętle while. Ale za bardzo nie wiem jak to ma wyglądać, wiem że to nie duży wkład własny, ale program chyba nie jest zbyt skomplikowany, a moja wiedza jest mniejsza niż chęć "zaimponowania koleżance" ;)

Jeśli ktoś podsunął by pomysł byłbym wdzięczny.

0

Ciągle próbuje coś wymyślić z tą petlą while i nie daje rady, oferuję pieniężną gratyfikację (równowartość 2 piw- możemy negocjować (-: ), za napisanie tego programu. Nie znalazłem nigdzie punktu w regulaminie który by tego zabraniał, więc... Niestety program potrzebuję na dziś, do godz. 21, ale jestem w stanie wysłać screen z potwierdzenia nadania pieniędzy na koncie internetowym dla uwierzytelnienia ;). Dalsze wiadomości na PW.

0

2 piwa - 6-7 zł, nie wiem czy komuś się ze chce odpalic kompilator za taką kasę ;)

2

:) pamiętajmy, że robi to dla jakiejś milusiej pupci - myśli że popipcy za 2 piwa xD

0
#include <iostream>
#include <sstream>
#include <algorithm>

std::string print(unsigned int num)
{
    std::ostringstream os;
    for (int i = 0; i < 9; i += 3)
    {
        os << (num & 1 ? "x" : "-");
        num >>= 1;
        os << (num & 1 ? "w" : "-");
        num >>= 1;
        os << (num & 1 ? "r" : "-");
        num >>= 1;
        os << " ";
    }
    std::string str(os.str());
    std::reverse(str.begin(), str.end());
    return str;
}

int main(int argc, char* argv[])
{
    for (unsigned int num = 0; num < 512; ++num)
        std::cout << print(num) << "\n";

    std::cin.get();
    return 0;
}

Masz za darmo, może Ci to wynagrodzi. :P

0

Serio? Czemu tuszujecie prawdę? Przecież będzie tak jak napisałem, chcecie chłopaka pocieszyć? Na programowanie się nie wyrywa...

1

Jeżeli ktoś miał matematykę w szkole to to się nazywa "wariacja z powtórzeniami". Teraz wystarczy wklepać nazwę algorytmu + "in C" w Google.

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