Treść zadania

~tomek

Witam, otóż dostałem takie zadanie od kumpla, nie wiem o co dokładnie chodzi. no więc problem polega na tym że zadanie polega na tym że muszę ten program napisać w drugą stronę, nie bardzo wiem jak się do tego zabrać
#include
int main(void)
{
short wejscie;
short mod[3];
short i;
printf("Wpisz MOD w postaci 777: ");
scanf("%hd", &wejscie);
for (i = 2; i > -1; i--){
mod = wejscie % 10;
wejscie /= 10;
}
printf("\nPrawa: ");
for(i = 0; i < 3; i++){
switch(mod){
case 0:
printf("---");
break;
case 1:
printf("--x");
break;
case 2:
printf("-w-");
break;
case 3:
printf("-wx");
break;
case 4:
printf("r--");
break;
case 5:
printf("r-x");
break;
case 6:
printf("rw-");
break;
case 7:
printf("rwx");
break;
}
}
return 0;
}

Zadanie jest zamknięte. Autor zadania wybrał już najlepsze rozwiązanie lub straciło ono ważność.

Rozwiązania

  • antekL1

    Program zamienia atrybuty pliku (Linux) w postaci "ósemkowej" na postać literową.
    r - można czytać, odpowiada ósemkowej liczbie 4
    w - można pisać, odpowiada ósemkowej liczbie 2
    x - można wykonywać i przeglądać, odpowiada ósemkowej liczbie 1
    czyli 7 to 4 + 2 + 1 czyli rwx; 5 to 4 + 1 czyli r-x itd.

    Program kumpla NIE uwzględnia jeszcze określenia rodzaju pliku (zwykły plik, katalog, etc). Jest to opisywane przez liczbę na początku sekwencji, np. katalog to 'd', zwykły plik to '-'.
    0777 odpowiada -rwxrwxrwx

    Ale Twoim zadaniem jest tylko (?) przerobienie rwx na liczbę.
    Czyli pierwszy znak z 10-literowego stringu odrzucasz (a jak masz 9 liter to nic nie robisz) i pozostałe 9 liter grupujesz po 3.

    uuugggsss gdzie u = użytownik, g = grupa, s = świat.

    Robisz 3 razy pętlę, zajmijmy się dla przykładu częścią "uuu"
    W miejsce "u" może stać: minus, r, w lub x.
    Deklarujesz jakąś zmienną "mod", typu "short" i zerujesz ją w każdym obrocie pętli.
    Jeżeli "r" jest w stringu "uuu" dodajesz 4 do mod.
    Jeżeli "w" jest w stringu "uuu" dodajesz 2 do mod.
    Jeżeli "x" jest w stringu "uuu" dodajesz 1 do mod
    Wypisujesz przez printf("%d", mod); wynik, trzy obroty pętli dają ci 3 cyfry.

    Programik można napisać na wiele sposobów, pytałeś o wskazówki, nie o program :)

    PS: Jeszcze pamiętaj, że w "uuu" na pierwszym miejscu od lewej jest albo r albo -, na drugim w lub - , na trzecim x lub -, co ułatwia kodowanie programu.

    • dobra dobra i profesjonalna wypowiedź, program można napisać w ,,odwrotną" stronę??

Podobne materiały

Przydatność 80% Czy wiem co jem?

CZY WIEM CO JEM? MLODZIEŻ I ZDROWA ŻYWNOŚĆ Od pewnego czasu człowiek współczesny coraz intensywniej szuka ochrony przed szkodliwym wpływem stworzonej przez siebie cywilizacji. Pragnie pozbyć się całego balastu zanieczyszczeń zagrażających jego zdrowiu i życiu. Dużo więcej uwagi poświęca temu co spożywa. Jest zrozumiałe, że ta ogólna tendencja nie ujawnia się z...

Przydatność 60% Analiza wiersza "Nie wiem".

„Nie wiem” Kiedyś myślałam że życie jest piękne. Kiedyś myślałam że muszę tak myśleć Kiedyś myślałam że jestem szczęśliwa że jest mi dobrze. Kiedyś ... Ale teraz zrozumiałam że nie muszę być szczęśliwa Jeśli nie chce. Nie wiem co mam myśleć. Nie wiem co mam czuć Nie wiem co...

Przydatność 70% Co wiem o filozofii?

Jest to bardzo trudne pytanie, na które brak jest jednoznacznej odpowiedzi. Sam termin stanowił i dalej stanowi zagwozdkę dla wielu myślicieli. Pytanie to jest samo w sobie bardzo filozoficzne. Udzielając odpowiedzi zaczerpniętej ze słownika, że filozofia jest to nauka o świecie otaczającym nas, myślę że, nie wyczerpujemy w pełni pojęcia tego słowa. Filozofia, którą...

Przydatność 55% Analiza Finansowa- zadanie

praca w załącznikach

Przydatność 80% Zadanie z fizy

1.46 Z ciała o masie m1= 11000kg następuje strzał w kierunku poziomym. Masa pocisku wynosi m2= 54kg. Oblicz prędkość, z jaką działo zostaje odrzucone wstecz, jeśli prędkość pocisku wynosi v2= 900 m/s. m1= 11000 kg m2= 54 kg v1 = ? v2 = 900 m/s Po = Pk Po=(m1+m2)* V V= 0 – na początku działo jest w spoczynku 0=m2*v2 – m1*v1 m1*v1 = m2*v2 v1=...

0 odpowiada - 0 ogląda - 1 rozwiązań

Dodaj zadanie

Zobacz więcej opcji