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

Napisz program, który obliczy sumę wyrazów ciągu arytmetycznego

42 Warsaw Coding Academy
0 głosów
2,507 wizyt
pytanie zadane 26 listopada 2020 w C i C++ przez Maslo165 Nowicjusz (160 p.)
Hej.

Mam napisać program obliczający sumę wyrazów ciągu arytmetycznego postaci: 1, 4, 7, 10, ... , 31. (Wynik to 176).

Do tego mam zrobić menu za pomocą instrukcji switch case z którego użytkownik wybiera, której funkcji użyć (for / while / do while).

Nie mam zielonego pojęcia jak się za to zabrać. Nie umiem znaleźć w internecie pomocy jak mógłbym to zrobić.

Może tutaj dostanę jakieś wskazówki?

Z góry wielkie dzięki za pomoc.
komentarz 26 listopada 2020 przez tangarr Mędrzec (155,180 p.)
Zacznij od napisania programu proszącego użytkownika o wybór opcji i wróć z kodem.

2 odpowiedzi

0 głosów
odpowiedź 26 listopada 2020 przez Wiciorny Ekspert (280,970 p.)

Zaimplementuj wzór na ciąg arytmetyczny :) 
Suma jest prosta 

public int sum(int[] numbers) {
    if (numbers == null || numbers.length == 0) {
        return 0;
    }
    return (numbers[0] + numbers[numbers.length - 1]) * numbers.length / 2;
}

przykład to jest dla jawy- tak wygląda algorytm teraz przeanalizuj go 

0 głosów
odpowiedź 26 listopada 2020 przez Maslo165 Nowicjusz (160 p.)

Więc napisałem trzy osobne programy dla każdej z pętli. Jak zrobić to menu za pomocą switch case gdzie użytkownik wybiera jakiej funkcji użyć?

 

#include <iostream>
#include <conio.h>

using namespace std;
int main (){
int a;
int suma=0;
for( a=1; a<=31 ; a+=3){
suma=suma+a;
}
cout<<"Suma wyrazow ciagu geometrycznego wynosi "<<suma<<"."<<endl;
getch();
return(0);
}
#include <iostream>
#include <conio.h>
using namespace std;
int main (){
int a=1;
int suma=0;
while(a<=31){
suma=suma+a;
a=a+3;
}
cout<<"Suma wyrazow ciagu geometrycznego wynosi "<<suma<<"."<<endl;
getch();
return(0);
}
#include <iostream>
#include <conio.h>
using namespace std;
int main (){
int a=1;
int suma=0;
do{
suma=suma+a;
a=a+3;
}while(a<=31);
cout<<"Suma wyrazow ciagu geometrycznego wynosi "<<suma<<"."<<endl;
getch();
return(0);
}

 

komentarz 26 listopada 2020 przez Wiciorny Ekspert (280,970 p.)
to nie jest poprawne. Dlaczego dodajesz za każdym raz  3?
wzór jest nie co inny więc to co napisałeś nie jest poprawne
komentarz 26 listopada 2020 przez Maslo165 Nowicjusz (160 p.)
Jak to zrobić w takim razie?
komentarz 26 listopada 2020 przez Wiciorny Ekspert (280,970 p.)

Najlepiej po przepracowaniu materiału.
 

suma=suma+a;
a=a+3; 

wzór na ciąg jest zgoła inny, tzn tutaj zakładasz że masz stałą różnice 3, można zrobić tak, że dane podawane  będą różne 

// znalezienie sumy  d- różnica w ciągu a, wyraz poczatkowy, 
    static float sumOfAP(float a, float d,  
                                  int n) 
    { 
        float sum = 0; 
        for (int i = 0; i < n; i++) 
        { 
            sum = sum + a; 
            a = a + d; 
        } 
        return sum; 
    } 

// w tym przykladzie np
Input : a = 1
        d = 2
        n = 4
Output : 16
1 + 3 + 5 + 7 = 16

Podobne pytania

0 głosów
1 odpowiedź 4,801 wizyt
pytanie zadane 13 października 2016 w C i C++ przez Arek Użytkownik (510 p.)
0 głosów
1 odpowiedź 172 wizyt
pytanie zadane 17 grudnia 2018 w C i C++ przez wojtas_21 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 282 wizyt

93,398 zapytań

142,390 odpowiedzi

322,576 komentarzy

62,756 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...