[Algorytmy] Obliczanie numeru słowa na stronie

instalowanie
Użytkownik
Użytkownik
Posty: 8
Rejestracja: 14 gru 2015, o 08:01
Płeć: Mężczyzna
Lokalizacja: Wrocław

[Algorytmy] Obliczanie numeru słowa na stronie

Post autor: instalowanie »

Cześć.

Zadanie niby proste.

Na jednej stronie zeszytu mieści się 128 słów.
Na każdej stronie numeracja sów zaczyna się od 1 a kończy na 128.
Gdy liczba słów na danej stronie przekroczy 128 kolejne słowo zostanie zapisane na następnej stronie.
Należy odpowiedzieć na której stronie znajdzie się słowo o zadanym numerze, i który to będzie wyraz na tej stronie (1...128).

Założyłem arkusz, w którym jest to wyliczane:

... sp=sharing

Obliczenia są poprawne dla wyrazów z zakresu: 1...256

Przykładowo:

- wpisanie numeru (wyrazu) 128 poprawnie wskaże, że jest to wyraz nr 128 na pierwszej stronie.
- wpisanie numeru (wyrazu) 129 poprawnie wskaże, że jest to wyraz nr 1 na drugiej stronie.

Niestety:

- wpisanie numeru (wyrazu) 257 wskaże, że jest to wyraz nr 129 na drugiej stronie (a strona ma pojemność tylko 128 wyrazów).

Najwyraźniej funkcja INT(B3/(B5+1)+1) nie sprawdza się w roli wyznaczenia numeru strony.

Jakieś pomysły?
Ostatnio zmieniony 14 gru 2015, o 08:52 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
szw1710

[Algorytmy] Obliczanie numeru słowa na stronie

Post autor: szw1710 »

Dzielenie całkowite (numer strony) i reszta modulo (numer wyrazu). Nie do końca dokładnie tak, ale o to chodzi.
instalowanie
Użytkownik
Użytkownik
Posty: 8
Rejestracja: 14 gru 2015, o 08:01
Płeć: Mężczyzna
Lokalizacja: Wrocław

[Algorytmy] Obliczanie numeru słowa na stronie

Post autor: instalowanie »

Nie bardzo rozwiązuje to problem, gdyż wtedy zarówno strony jak i wyrazy liczone są od zera, a próba korekty tego rozwala ideę.

Wprowadzenie 128 albo 256 i tak dalej zwraca zero (bo musi) a nie o to chodzi.

... 09yL0/edit
athame
Użytkownik
Użytkownik
Posty: 576
Rejestracja: 2 lut 2012, o 21:42
Płeć: Mężczyzna
Lokalizacja: Radom
Podziękował: 1 raz
Pomógł: 64 razy

[Algorytmy] Obliczanie numeru słowa na stronie

Post autor: athame »

W Libre Office rozwiązanie to wstawienie do komórki D5 formuły

Kod: Zaznacz cały

=JEŻELI(MOD(B3;B5)=0;B5;MOD(B3;B5))
W innych programach ta sama metoda, tylko instrukcje (i składnia) mogę być inne (IF).
instalowanie
Użytkownik
Użytkownik
Posty: 8
Rejestracja: 14 gru 2015, o 08:01
Płeć: Mężczyzna
Lokalizacja: Wrocław

[Algorytmy] Obliczanie numeru słowa na stronie

Post autor: instalowanie »

... sp=sharing

Teraz strony są liczone od 1 do n oraz wyrazy również od 1 do n.

Sukces po zastosowaniu

w komórce D24 (obliczenie numeru słowa na stronie)

Kod: Zaznacz cały

=IF(MOD(D22;B24)=0;B24;MOD(D22;B24))
w komórce F24 (obliczenie strony)

Kod: Zaznacz cały

=IF(MOD(D22;B24)=0;INT(D22/B24);INT(D22/B24)+1)
Ponieważ interesowało mnie liczenie startujące od 1 (nie od zera), należało modul-a obwarować ifami.


Poprawność działania formularza można sprawdzić z tym co wygeneruje kod:

Kod: Zaznacz cały

#include <iostream>
#include <iomanip>

using namespace std;

int adres;
int slowo;

int main()
{
    for (int strona=1; strona<=256; strona++)
     {
             for (int slowo_na_stronie=1; slowo_na_stronie<=128; slowo_na_stronie++)
                {
                    slowo++;
                    cout << "Adres: " << hex << adres << dec << " Slowo: " << slowo << " Strona: " << strona << " Slowo_na_stronie: " << slowo_na_stronie << endl;
                    adres+=2;
                }
     }
    return 0;
}
ODPOWIEDZ