Polskie Serwery Counter Strike Source i download Cs Source Non Steam
Nasze forum oraz serwery reklamuje niezawodny serwis ADVERTGAME.PL

O matko! Nie chce wgl wiedzieć jak działa programator pralki!  (Przeczytany 969 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

PrestoN

  • Gość
Nie wiem jak WY, ale ja chodząc do liceum (profil zarządzanie informacją) miałem już na informatyce naukę języka programowania C++. Jak ktoś tego się uczył to odpali tylko kompilator i raz, dwa to rozwiąże. A więc do dzieła!


Poniżej, kursywą jest podany kod żródłowy programu (mniejsza o biblioteki):


#include <iostream>
#include <cstdlib>
 
using namespace std;
 
unsigned int fib(int n)
{
    int x, y ;
    if(n == 0) return 0;
 
    x = 1; y = 2;
    for(int i=0; i < (n+1); i++)
    {
        swap(x, y);
        y += x;
    }
    return y;
}
 
int main()
{
    int n;
 
    cout << "Podaj wyraz ciagu fibonacciego do obliczenia:" << endl;
    cin >> n;
 
    cout << fib(n) << endl;
 
    system("PAUSE");
    return(0);
}


Oczywiście zmienne możemy nazywać sobie jak chcemy, logiczne. Ale program ma zwracać dowolną w kolejności liczbę z ciągu Fibonacciego. Np. wpisuję "5" i powinien nam zwrócić 5. liczbę z tego ciągu. Jednakże ten program tego nam nie zwróci, bo specjalnie, na potrzeby konkursu został on zmieniony...

Proszę poprawić błędy w kodzie, żeby działał jak należy. Proszę dokładnie wskazać błędy! Najlepiej skopiować kod, zmienić co należy i zaznaczyć to jakimś kolorem.


Nagroda: Już nie wiem co wymyślać... O wartości 100zł lub po poprostu przelew :)

Powodzenia!
« Ostatnia zmiana: Październik 31, 2016, 22:05:22 wysłana przez PrestoN »

PrestoN

  • Gość
Odp: O matko! Nie chce wgl wiedzieć jak działa programator pralki!
Odpowiedź #1 Październik 31, 2016, 22:53:07
Piszę nowy post, żeby nie było, że grzebię coś przy kodzie. Zapomniałem dodać: konkurs trwa do 5 listopada do godz. 15:00, a odpowiedź ma zawierać również rozpisanie kodu, co i jak działa, krok po kroku. To już chyba tyle :)

Offline Byniu

  • Admin Serwera CS:S
  • Maniak
  • *
  • Wiadomości: 315
  • Płeć: Mężczyzna
  • Kocham Tylko Jedną Kobiete
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 54.0.2840.71 Chrome 54.0.2840.71
    • Zobacz profil
  • Pseudonim z gry: 'hTa' Byniu
Jak dla mnie to powinno wygladac tak:

#include <iostream>
#include <cstdlib>
 
using namespace std;
 
unsigned int fib(int n)
{
    int x, y ;
    if(n == 0) return 0;
 
    x = 1; y = 2;
    for(int i=0; i < (n+1); i++)- w tym wyrażeniu powinno byc tak : for(int i=0; i < (n-3); i++) aby otrzymać ciąg Fibonacciego liczby 5 oczywiście jeśli chcemy inna liczbę to musimy wstawić w ciągu inne działanie aby wyszła nam dana liczba. np aby wyszło 2 w działaniu  muszę zapisać (n-2)
    {
        swap(x, y);
        y += x;
    }
    return y;
}
 
int main()
{
    int n;
 
    cout << "Podaj wyraz ciagu fibonacciego do obliczenia:" << endl;
    cin >> n;
 
    cout << fib(n) << endl;
 
    system("PAUSE");- to trzeba skasować ponieważ kompilacja się nie powiedzie. (przynajmniej tak u mnie jest na Code Blocks)
    return(0);
}
« Ostatnia zmiana: Listopad 01, 2016, 10:18:03 wysłana przez Byniu »
Podążając w Ciemności w Poszukiwaniu Światła Zbawienia

PrestoN

  • Gość
Niestety nie jest to prawidłowa odpowiedź.

Offline Byniu

  • Admin Serwera CS:S
  • Maniak
  • *
  • Wiadomości: 315
  • Płeć: Mężczyzna
  • Kocham Tylko Jedną Kobiete
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 54.0.2840.71 Chrome 54.0.2840.71
    • Zobacz profil
  • Pseudonim z gry: 'hTa' Byniu
ten kod działa poprawnie,  ale skoro mówisz, że źle to trudno. Watpie żeby ktoś jeszcze chciał to spróbować robić. Mnie nigdy C++ nie uczona na informatyce. Tylko profile informatyczne chyba to maja w liceum.
Podążając w Ciemności w Poszukiwaniu Światła Zbawienia

PrestoN

  • Gość
Nie działa. Jeśli nikt do wyznaczonego terminu nie poda rozwiązania to ja przedstawię krok po kroku rozwiązanie i przekonasz się, że Twoje rozwiązanie nie jest prawidłowe.

Offline Byniu

  • Admin Serwera CS:S
  • Maniak
  • *
  • Wiadomości: 315
  • Płeć: Mężczyzna
  • Kocham Tylko Jedną Kobiete
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 54.0.2840.71 Chrome 54.0.2840.71
    • Zobacz profil
  • Pseudonim z gry: 'hTa' Byniu
Podążając w Ciemności w Poszukiwaniu Światła Zbawienia

PrestoN

  • Gość
Napisałem Ci pw. Podaj mi rozwiązanie wg Twojego rozwiązania dla 1. i np. 19 wyrazu ciągu.

Offline CzaRnyyy

  • Admin Serwera CS:S
  • Maniak
  • *
  • Wiadomości: 354
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Firefox 49.0 Firefox 49.0
    • Zobacz profil
czyli mam zmienic kod na tyle że jeśli wpiszę 5 to ma zwrócić 5 ? czyli tą samą liczbę którą podam ?



PrestoN

  • Gość
Ma zwracać prawidłową wartość dla każdej liczby, którą wpiszesz... Myślałem, że jest to jasne. Wpisujesz 5 - podaje 5 wyraz ciągu... wpisujesz 99 wyświetla 99. wyraz ciągu.

Offline CzaRnyyy

  • Admin Serwera CS:S
  • Maniak
  • *
  • Wiadomości: 354
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Firefox 49.0 Firefox 49.0
    • Zobacz profil
Cytuj
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
unsigned int fib(int n)
{
    int x, y ;
    if(n == 0) return 0;
 
    x = 1; y = 2;
    for(int i=0; i < (n+1); i++)
    {
        swap(x, y);
        y += x;
    }
    return n;
}
 
int main()
{
    int n;
 
    cout << "Podaj wyraz ciagu fibonacciego do obliczenia:" << endl;
    cin >> n;
 
    cout << fib(n) << endl;
 
    system("PAUSE");
    return(0);
}


 Tak jest prawidłowo :)

PrestoN

  • Gość
Pudło. Może dam dobrą radę: ciąg Fibonacciego, pewnie każdy wie na czym polega, podstawy C++, można sobie ogarnąć w parę godzin. Więc może zróbcie to krok po kroku. Mówisz sobie co trzeba zrobić, żeby był spełniony warunek, żeby liczba należała do tego ciągu i zamieniasz to na kod. Nie będę czepiał się bibliotek, bo każdy program ma to inaczej, głównie to chodzi o to jak zadeklarować zmienne, głównie interesuje mnie fragment z pętlami, bo tam tkwi rozwiązanie.

//edit To może proste zadanie na rozruszanie szarych komórek: napisz mi program na sumowanie dwóch liczb
« Ostatnia zmiana: Listopad 02, 2016, 19:33:59 wysłana przez PrestoN »

Offline Gracz

  • Uzależniony
  • *
  • Wiadomości: 42
  • Płeć: Mężczyzna
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 49.0 Firefox 49.0
    • Zobacz profil
  • Pseudonim z gry: Linux`
unsigned int fib(int n)
{
    int x, y ;
    if(n == 0) return 0;
 
    x = 1; y = 2;
    for(int i=0; i < (n+1); i++)
    {
        swap(x, y);
        y += x;
    }
    return y;
}

zamienilbym na
unsigned int fib(int n)
{
    int x, y;
    if(n == 0) return 0;
 
    x = 0; y = 1; < x = 1 na x = 0, oraz y = 2 na y = 1
    for(int i=0; i < (n-1); i++) < i tu n+1 na n-1
    {
        swap(x, y);
        y += x;
    }
    return y;
}
« Ostatnia zmiana: Listopad 06, 2016, 15:53:51 wysłana przez Gracz »
Świadcze odpłatną pomoc z zakresu AMXMODX bądź SOURCEMOD.

https://steamcommunity.com/id/linux2006

PrestoN

  • Gość
Jest to prawidłowa odpowiedź, ale niestety padła po wyznaczonym terminie. W ramach pocieszenia, że się starałeś to mogę podarować Ci Vipa. Sory, ja wyznaję punktualność, dbałość o szczegóły i ogólnie o zasady. To byłoby nie fair wobec innych, gdybym przyznał Ci główną nagrodę, a nie zmieściłeś się w ramach regulaminu. Dbam o wiarygodność moich konkursów.

Offline Gracz

  • Uzależniony
  • *
  • Wiadomości: 42
  • Płeć: Mężczyzna
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 49.0 Firefox 49.0
    • Zobacz profil
  • Pseudonim z gry: Linux`
Przyznam szczerze, ze nawet nie zwrocilem uwagi do kiedy trwa konkurs. Za vipa podziekuje, napisalem odpowiedz poniewaz ja znalem a nie dla nagrody :)
Świadcze odpłatną pomoc z zakresu AMXMODX bądź SOURCEMOD.

https://steamcommunity.com/id/linux2006

Tagi wątku: