Program sumujący liczby w C++

bazilazi
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 13 cze 2010, o 10:49
Płeć: Mężczyzna
Podziękował: 7 razy

Program sumujący liczby w C++

Post autor: bazilazi »

Mam problem z napisaniem programu do zadania

"Napisz program sumujcy liczby zadawane przez użytkownika tak długo, aż suma liczb dodatnich nie będzie równa wartości bezwzględnej z sumy liczb ujemnych."

Domyślam się, że należałoby użyć pętli. Próbowałem podchodzić do tego zad. kilkukrotnie ale bezskutecznie.
Proszę o (może nie odrazu gotowy kod ale) jakas podpowiedź
nerdzio
Użytkownik
Użytkownik
Posty: 29
Rejestracja: 1 kwie 2008, o 16:46
Płeć: Mężczyzna
Lokalizacja: St-ce
Podziękował: 3 razy
Pomógł: 1 raz

Program sumujący liczby w C++

Post autor: nerdzio »

Robisz sobie dwie zmienne oznaczające sumy liczb dodatnich i ujemnych. Teraz w pętli przyjmujesz liczby tak długo aż te zmienne będą równe, żeby zrobić wartość bezwzględną użyj abs() z cmath. W pętli oczywiście sprawdzasz czy liczba jest dodatnia czy ujemna i odpowiednio ją dodajesz do którejś z wcześniej wspomnianych zmiennych. powodzenia
bazilazi
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 13 cze 2010, o 10:49
Płeć: Mężczyzna
Podziękował: 7 razy

Program sumujący liczby w C++

Post autor: bazilazi »

Niestety dalej nie mogę sobie poradzić z problemem.
Mógłbym prosić jednak o podpowiedź w postaci kodu?
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

Program sumujący liczby w C++

Post autor: soku11 »

To już nie będzie podpowiedź, tylko rozwiązanie. Liczysz na gotowca? Trochę inicjatywy, bo ten program tak na oko będzie miał z 30 linii kodu max...

Pozdrawiam.
bazilazi
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 13 cze 2010, o 10:49
Płeć: Mężczyzna
Podziękował: 7 razy

Program sumujący liczby w C++

Post autor: bazilazi »

Od kilku dni staram się znaleźć rozwiązanie.
Rozumiem, że potrzebuję dwóch zmiennych np.

Kod: Zaznacz cały

int a, b;

oraz, że muszę napisać warunek (coś w stylu)

Kod: Zaznacz cały

if (a > 0) // jeżeli liczba jest większa od zera, to dodaj ją do dodatnich
{
 ... 
}
else // jeżeli nie, to do ujemnych
{
 ...
}
W którymś miejscu musiałbym także porównać obie zmienne

Kod: Zaznacz cały

a = b
// lub
a + b == 0
Nie mam innej koncepcji na napisanie tego programu. Może źle do tego podchodzę i dlatego sprawia mi to tyle trudności.
Proszę o jakieś wskazówki.
Awatar użytkownika
Althorion
Użytkownik
Użytkownik
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

Program sumujący liczby w C++

Post autor: Althorion »

Program w Pythonie. Spróbuj zrozumieć i przepisać do C:
Awatar użytkownika
kadiii
Użytkownik
Użytkownik
Posty: 642
Rejestracja: 20 gru 2005, o 21:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 130 razy

Program sumujący liczby w C++

Post autor: kadiii »

bazilazi pisze:Może źle do tego podchodzę i dlatego sprawia mi to tyle trudności.
Trafiłeś w sedno. Nie znasz podstaw składni a chcesz pisac programy. NIe tędy droga. najpierw przerób jakiś krótki kurs programowania a potem dopiero programuj. To tak jakbyś miał do zrobienia program Hello world i powiedział: no wiem mniej więcej jak to ma być, gdzies musi być miejsce gdzie napiszę Hello world. Podstawy, podstawy, podstawy....
bazilazi
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 13 cze 2010, o 10:49
Płeć: Mężczyzna
Podziękował: 7 razy

Program sumujący liczby w C++

Post autor: bazilazi »

Znam podstawy składni.
Nie potrafiłem ich jednak w odpowiedni sposób wykorzystać.

Kod: Zaznacz cały

#include <iostream>

using namespace std;

int main ()
{
	int dodatnia = 0, ujemna = 0, liczba = 0;

	cout << "Program sumujacy liczby zadawane przez uzytkownika tak dlugo, " << endl;
	cout << "az suma liczb dodatnich nie bedzie rowna wartosci bezwzglednej ";
	cout << "z sumy liczb ujemnych.
" << endl;

	cout << "Podaj liczbe (dodatnia lub ujemna): ";
		cin >> liczba;
	
	if(liczba > 0)
	{
		dodatnia = dodatnia + liczba;
	}
	else
	{
		ujemna = ujemna + liczba;
	}

	while(dodatnia != ujemna * -1)
	{
		cout << "Podaj liczbe (dodatnia lub ujemna) ponownie: ";
			cin >> liczba;
		
		if(liczba > 0)
		{
			dodatnia = dodatnia + liczba;
		}
		else
		{
			ujemna = ujemna + liczba;
		}
			
			if(dodatnia == ujemna * -1)
			{
				cout << dodatnia << " = " << ujemna * -1 << endl;
			}
			else
			{
				cout << dodatnia << " != " << ujemna * -1 << endl;
			}
	}

	cout << "Wcisnij dowolny klawisz i ENTER aby zamknac. 
";
	
char koniecProgramu;
cin >> koniecProgramu;
return 0;
}
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

Program sumujący liczby w C++

Post autor: soku11 »

Kod: Zaznacz cały

#include <iostream>
#include <cstdlib>
using namespace std;


int main()
{
  int sumaDodatnich=0;
  int sumaUjemnych=0;

  int liczba=0;
  do
  {
    cout<<"Podaj liczbe: ";
    cin>>liczba;
    if(liczba%2==0)
      sumaDodatnich+=liczba;
    else
      sumaUjemnych+=liczba;
  }
  while(sumaDodatnich!=abs(sumaUjemnych));

  return EXIT_SUCCESS;
}

Rzeczywiście strasznie trudne...
Pozdrawiam.
nerdzio
Użytkownik
Użytkownik
Posty: 29
Rejestracja: 1 kwie 2008, o 16:46
Płeć: Mężczyzna
Lokalizacja: St-ce
Podziękował: 3 razy
Pomógł: 1 raz

Program sumujący liczby w C++

Post autor: nerdzio »

soku11 w ifie chyba powinno być >0, bo tego modulo to nie rozumiem , ale pewnie ci się tak machnęło z rozpędu
bazilazi
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 13 cze 2010, o 10:49
Płeć: Mężczyzna
Podziękował: 7 razy

Program sumujący liczby w C++

Post autor: bazilazi »

Rzeczywiście strasznie trudne...
Jestem początkującym, każdy od czegoś zaczynał.
Nie rozumiem skąd to wywyższanie się.
Znam podstawową składnię C++ ale nie potrafiłem przełożyć treści zadania na kod.
(Jestem nowy na tym forum i może dlatego dziwi mnie takie podejście.)

Mimo wszystko wielkie dzięki za pomoc.
Awatar użytkownika
kadiii
Użytkownik
Użytkownik
Posty: 642
Rejestracja: 20 gru 2005, o 21:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 130 razy

Program sumujący liczby w C++

Post autor: kadiii »

NIe ma sie co dąsać czy obrażać - nikt raczej nie ma tu takiego zamiaru. Jeżeli masz takie problemy a znasz składnie to proponuję wykonywać zawsze na kartce kroki swojego programu - kolejne wartości daej zmiennej w danym obiegu. Będziesz widział czy twój program zmierza do poprawnego wyniku czy moze niekoniecznie. Gwarantuję, że jak troche poćwiczysz i nabierzesz wprawy to nie będziesz miał problemu z takimi zadaniami. Sam sie będziesz śmiał i mówił : Ale to było strasznie łatwe". Pozdrawiam i życzę owocnej pracy(i zabawy) z programowaniem.
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

Program sumujący liczby w C++

Post autor: soku11 »

Rzeczywiście powinno być:

Kod: Zaznacz cały

    if(liczba>0)
      sumaDodatnich+=liczba;
    else
      sumaUjemnych+=liczba;
Jak pisałem jakimś cudem ubzdurałem sobie, że liczba ma być parzysta i nieparzysta (mimo poprawnego nazwania zmiennych - dziwne). Dzięki za poprawkę

Nie chciałem się wywyższać. Po prostu gdybyś sobie to rozpisał, to byś otrzymał taki sam kod bez pytania na forum (no ewentualnie oprócz pytania o jakąś funkcję do liczenia modułu - chociaż ją też można napisać samemu).

Pozdrawiam.
Laurearel

Program sumujący liczby w C++

Post autor: Laurearel »

"Napisz program sumujcy liczby zadawane przez użytkownika tak długo, aż suma liczb dodatnich nie będzie równa wartości bezwzględnej z sumy liczb ujemnych."

1. stwórz zmienne i zainicjuj : sum_dod = 0 ,sum_uj = 0
2. Rób :
{
3. wczytaj a
4. sprawdź czy a jest większe od zera, jeśli jest to sum_dod = sum_dod +a , w przeciwnym razie sum_uj = sum_uj + a
} dopóki sum_dod różne od abs(sum_uj) , gdzie abs jest funkcją zwrającą wartość bezwzględną (to jest chyba banalne)

A kod napisz se sam ; ]
ODPOWIEDZ