[C++] Program sprawdzający kiedy oproznimy konto

Majka99
Użytkownik
Użytkownik
Posty: 152
Rejestracja: 20 paź 2012, o 12:54
Płeć: Kobieta
Lokalizacja: zgierz
Podziękował: 15 razy

[C++] Program sprawdzający kiedy oproznimy konto

Post autor: Majka99 »

Napisz program proszacy o podanie kwoty poczatkowej \(\displaystyle{ k}\), oprocentowania rocznego \(\displaystyle{ p}\) (z miesieczna kapitalizacja) oraz kwoty wypłacanej co miesiac \(\displaystyle{ m}\) (zaraz po kapitalizacji
odsetek) i sprawdzajacy kiedy opróznimy konto (o ile nastapi to przed upływem 10 lat)
lub obliczajacy stan konta po 10 latach.

Mam cos takiego :

Kod: Zaznacz cały

#include <iostream>

using namespace std;


int main(int argc, char** argv) {
	int k;
	cout<<"Podaj stan początkowy konta"<<endl;
	cin>>k;
	int p;
	cout<<"Podaj oprocentowanie roczne"<<endl;
	cin>>p;
	int m;
	cout<<"jaka kwota wyplacasz co miesiąc ?"<<endl;
	cin>>m;
	int l;
	cout<<"Przez ile miesiecy bedziesz wyplacac pieniadze ?"<<endl;
	cin>>l;
	if(l<10)
	while(k!=0)
	{
		k=k-(k*p);
		k=k-m;

	}
	
cout<<"Konto jest puste"<<endl;

	
	return 0;
}
Jaki tutaj mam blad,jezeli nie konczy mi dzialania programu i czy mozna to tak napisac bez uzywania funkcji innej niz main ?
Ostatnio zmieniony 4 sie 2013, o 22:33 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
lemoid
Użytkownik
Użytkownik
Posty: 199
Rejestracja: 24 maja 2012, o 23:36
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 5 razy
Pomógł: 30 razy

[C++] Program sprawdzający kiedy oproznimy konto

Post autor: lemoid »

kod nie ma prawa się zakończyc z kilku powodów:

Kod: Zaznacz cały

   while([b]k!=0[/b])
   {
      k=k-(k*p);
      k=k-m;

   }
Pętla wykonuje się póki k nie jest zerowe. Czy k musi być na końcu zerowe?

Kod: Zaznacz cały

   cout<<"Przez ile miesiecy bedziesz wyplacac pieniadze ?"<<endl;
   cin>>l;
   if(l<10)
   while(k!=0)
   {
      k=k-(k*p);
      k=k-m;

   }
mamy zdeklarowane l ale nie wystepuje dalej w kodzie i nie ulega dekrementacji.


Ten kod to bubel na bublu. Podajemy oprocentowanie i przyjmując k = 1000 i p = 10 już w pierwszym wykonaniu pętli ( k = k-(k*p) ) otrzymujemy k = 1000 - 10000
Majka99
Użytkownik
Użytkownik
Posty: 152
Rejestracja: 20 paź 2012, o 12:54
Płeć: Kobieta
Lokalizacja: zgierz
Podziękował: 15 razy

[C++] Program sprawdzający kiedy oproznimy konto

Post autor: Majka99 »

Kod: Zaznacz cały

#include <iostream>

using namespace std;
int main(int argc, char** argv) {
	 int k;
   cout<<"Podaj stan początkowy konta"<<endl;
   cin>>k;
   int p;
   cout<<"Podaj oprocentowanie roczne"<<endl;
   cin>>p;
   int m;
   cout<<"jaka kwota wyplacasz co miesiąc ?"<<endl;
   cin>>m;
   int l;
   
   while(k!=0)
   {
      k=k-(k*(p/100));
      k=k-m;

   }
   
cout<<"Konto jest puste"<<endl;

	return 0;
}
Poprawoiony kod jezeli chodzi o oprocentowanie,moj glupi blad.Jezeli chodzi o druga rzecz,to w poleceniu mam że program ma mi powiedziec po jakim czasie skonczy mi sie gotowka na koncie,czyli dopoki bd to rozne od 0 to petla bd sie wykonywac,a jezeli juz to zajdzie to ma wypisac,że konto puste,i po jakim czasie to nastapilo,stad ta moja petla,tylko nie wiem czy poprawna,jezeli nie,to jak to inaczej zapisac ?
witekkq
Użytkownik
Użytkownik
Posty: 145
Rejestracja: 16 lis 2007, o 09:06
Płeć: Mężczyzna
Lokalizacja: Gniezno
Podziękował: 2 razy
Pomógł: 27 razy

[C++] Program sprawdzający kiedy oproznimy konto

Post autor: witekkq »

Gdzie masz kapitalizacje miesięczną?
stan konta, czy sprawdzenie czy minęło 10 lat możesz dać instrukcją

Kod: Zaznacz cały

if(warunek) break;
co spowoduje wyskoczenie z Twojej pętli while.

zliczanie miesięcy to potrzebujesz iterator zwiększający wartość w każdym kroku.

Taka mała uwaga, skoro nie korzystasz z int argc, char** argv to po co je deklarować? :]
Majka99
Użytkownik
Użytkownik
Posty: 152
Rejestracja: 20 paź 2012, o 12:54
Płeć: Kobieta
Lokalizacja: zgierz
Podziękował: 15 razy

[C++] Program sprawdzający kiedy oproznimy konto

Post autor: Majka99 »

Ok,pomysle nad tym,mam nadzieje ze mi sie uda.Mam pytanie do takiej kwesti:Nie chce zakladac stalej kwoty wplacanej co miesiac,tylko zeby uzytkownik podawal ze np w 1 miesiacu wplacil tyle itd,na poczatku poda przez ile miesiecy,a potem po kolei wpisuje sumy.Kombinowalam i mam cos takiego :

Kod: Zaznacz cały

int m;
   cout<<"Przez ile miesiecy"<<endl;
   cin>>m;
   int l;
  for(int i=1;i<m+1;i++) 
  
  cout<<"Ile wyplaciles w : "<<i<<"miesiacu z konta ?"<<endl;
  cin>>l;
Lecz nie moge wpisywac po kolei wplacanych sum.co musze dodac w takim razie ?:>
witekkq
Użytkownik
Użytkownik
Posty: 145
Rejestracja: 16 lis 2007, o 09:06
Płeć: Mężczyzna
Lokalizacja: Gniezno
Podziękował: 2 razy
Pomógł: 27 razy

[C++] Program sprawdzający kiedy oproznimy konto

Post autor: witekkq »

Tutaj będziesz potrzebowała tablicy do przechowywania kolejnych wartości.

dodatkowo po pętli for użyj znaku gdyż bez klamer wykonuję się tylko jedno polecenie pod pętlą.


Inną możliwością jest pobieranie danych w Twojej pętli while i wykonywanie obliczeń miesiąc po miesiącu.
ODPOWIEDZ