Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

lekcja 17 zad 4 dziwna akcja

Ostatnio zmodyfikowano 2013-02-25 11:44
Autor Wiadomość
melon
Temat założony przez niniejszego użytkownika
lekcja 17 zad 4 dziwna akcja
» 2013-02-24 17:40:55
Witam

Mam pewne pytanie dotyczace poprawnie dzialajacego kodu, niestety temat w ktorym on sie znajduje zostal juz zamkniety przez co nie moge zadac tam tego pytania.
Chodzi mi o linijke znajdujaca sie w fukncji "wylosuj": stop=start-stop+1.

Jest mi ona niezrozumiala. stop=górna granica czyli np 20. start=dolna granica czyli np 10.wiec
stop=10-20+1,wiec liczba ujemna.
Wyrzucajac ta linijke widze roznice jaka nastepuje, mozna by to wykuc na pamiec by osiagnac taki efekt ale wolal bym zroumiec to i sam tworzyc takie argumenty.

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
int wylosuj( int start, int stop )
{
    stop = start - stop + 1;
    return( rand() % stop ) + start;
}
int main()
{
    srand( time( NULL ) );
    int start;
    int stop;
    std::cin >> start;
    std::cin >> stop;
    int ile = 5;
    do
    {
        std::cout << wylosuj( start, stop ) << std::endl;
        ile--;
    } while( ile > 0 );
   
    return 0;
}
P-76901
Monika90
» 2013-02-24 18:55:24
Chyba miało być:
C/C++
int wylosuj( int start, int stop )
{
    stop = stop - start + 1;
    return( rand() % stop ) + start;
}
P-76904
melon
Temat założony przez niniejszego użytkownika
re Monika
» 2013-02-24 22:08:17
Monika...jesli masz racje ...to i tak dziala tak samo jak stop jest na miejscu startu, no ale czekam na wytlumaczenie ocb.Po Twojej zmianie liczba nie bedzie juz ujemna ale nie wiem co oznaczac ma ,20 - 10 +1
P-76921
Monika90
» 2013-02-24 22:36:31
nie wiem co oznaczac ma 20 - 10 + 1
Jest to ilość liczb w przedziale (domkniętym) od 10 do 20,
czyli od 10 do 20 (włącznie) masz 11 liczb.
P-76922
melon
Temat założony przez niniejszego użytkownika
» 2013-02-25 11:44:37
No o to chodzi, na poczatku podalem taki przyklad ze gorna granica to 20 a poczatek zbioru to 10, no wiec teraz jest juz to zrozumiale,a roznica polega na tym ze: bez tej linijki podajac 10 i 20 beda to liczby od 10 do 30. Natomiast z ta linijka o ktora pytalem bedzie to przedzial od 10 do 20.
No to dzieki Monika!!
P-76928
« 1 »
  Strona 1 z 1