• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Symbole "sigma" i "pi" przy zadaniach z instrukcjami iteracyjnymi

VPS Starter Arubacloud
0 głosów
2,536 wizyt
pytanie zadane 28 lipca 2016 w C i C++ przez Fluskys Nowicjusz (230 p.)
zamknięte 28 lipca 2016 przez Fluskys

Witam,

Uczę się obecnie na wakacjach C++ od zera, kupiłem książkę przygotowującą pod maturę z informatyki. (wiem że programowania nie powinno się uczyć pod maturę, ale nie mam wyjścia bez fizyki w przedmiotach). Problem w tym, że niestety książka ta pozostawia wiele niewyjaśnionych kwestii. Mam za zadanie skonstruować algorytm iteracyjny na podstawie tych wzorów:

Oczywiście nigdzie w książce nie ma wytłumaczenia jak to odczytywać i przekształcać na kod. Proszę o wytłumaczenie mi w jaki sposób zapisywać "to coś" w c++.

komentarz zamknięcia: Problem rozwiązany

1 odpowiedź

0 głosów
odpowiedź 28 lipca 2016 przez Patrycjerz Mędrzec (192,320 p.)
A znasz podstawowe konstrukcje języka: pętle, operatory matematyczne?
komentarz 28 lipca 2016 przez Fluskys Nowicjusz (230 p.)
znam

Edit: doszedlem do tego że ma to jakiś zwiazek z "for" ale i tak nie wiem w którym miejscu ma być co.

Zapewne początek do obu jest taki: for(int i=1; i<=n;...)
komentarz 28 lipca 2016 przez Patrycjerz Mędrzec (192,320 p.)

Więc w czym problem? Zastosuj pętlę for, która będzie sumować te ułamki i to wszystko.

komentarz 28 lipca 2016 przez Fluskys Nowicjusz (230 p.)
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
main()
{
    float n, suma, n1;
    cin>>n;
    for (int i=1; i<=n; i++) 
    {
        suma+=n1;
        n1=1/(2*i);
    }
    cout<<suma;
    return(0);
}

Mogę prosić o jakiś komentarz do tego? Nie działa. Przekształcałem to na rozne sposoby i siedze nad tym jakiś czas. (przykład 1)

komentarz 28 lipca 2016 przez Patrycjerz Mędrzec (192,320 p.)

Wyzeruj zmienną suma i dodawaj wartości od razu do niej, bez pośredników w postaci n1.

komentarz 28 lipca 2016 przez Fluskys Nowicjusz (230 p.)
edycja 28 lipca 2016 przez Fluskys

Nie wiem czy dobrze zrozumiałem (dalej nie pokazuje dobrych wyników)

#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
main()
{
    float n, suma=0;
    cin>>n;
    for (int i=1; i<=n; i++) suma+=1/(2*i);
    cout<<suma;
    return(0);
}

Dla np. suma+=1 wynik się zgadza, tylko przy tym 1/(2*i) mam cały czas 0

komentarz 28 lipca 2016 przez Patrycjerz Mędrzec (192,320 p.)

Rzutuj wartości int na float:

suma += 1.0f / (2.0f * (float) i);

Lepiej i tak by było zastosować double (wtedy bez f na końcu).

komentarz 28 lipca 2016 przez Fluskys Nowicjusz (230 p.)
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
main()
{
    double n, suma=0;
    cin>>n;
    for (double i=1; i<=n; i++) suma+=1/(2*i);
    cout<<suma;
    return(0);
}

Jest okej, dziękuje wink

Podobne pytania

+1 głos
1 odpowiedź 1,224 wizyt
0 głosów
2 odpowiedzi 110 wizyt
pytanie zadane 29 stycznia 2020 w C# przez Mariusz M Obywatel (1,670 p.)
0 głosów
4 odpowiedzi 963 wizyt
pytanie zadane 15 października 2017 w C i C++ przez Corvette 653 Początkujący (400 p.)

92,843 zapytań

141,782 odpowiedzi

320,858 komentarzy

62,174 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...