

Program na počítání úrokové míry - test na nervy [C#]
Zdravím,
mám menší porblém. V C# jsem napsal program na počítání úrokové míry. Je to celkem test na nervy a na chápání kódu. Kód je následovný:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PocitaniUrokoveMiry
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Vítá vás kalkulačka pro počítání úrokové míry verze 1.0, vytvořená by Ondřej Búřil"); //konzolový komentář pro user interface
Console.WriteLine("Zadejte počáteční vloženou částku:"); //konzolový komentář pro user interface
float VlozenaCastka = float.Parse(Console.ReadLine()); //uložení proměnné VlozenaCastka do RAM
Console.WriteLine("Nyní zadejte úrok (v procentech bez procentového znaménka):"); //konzolový komentář pro user interface
float Urok = float.Parse(Console.ReadLine()); //uložení proměnné Urok do RAM
Console.WriteLine("Nyní zadejte daň (v procentech bez procentového znaménka) :"); //konzolový komentář pro user interface
float Dan = float.Parse(Console.ReadLine()); //uložení proměnné Dan do RAM
Console.WriteLine("Nyní zadejte počet měsíců, po které bude částka uložena:"); //konzolový komentář pro user interface
int PocetMesicu = int.Parse(Console.ReadLine()); //uložení proměnné PocetMesicu do RAM
float VyslednaCastka;
float a = VlozenaCastka / 100; //Jedno procento z vložené částky
float b = a * Urok; //Úrok z vložené částky
float c = b / 100; //Jedno procento z úroku
float d = c * Dan; //Daň z úroku
float e = Urok - d; //Úrok mínus daň z úroku - co dostaneme na úrocích
float f = VlozenaCastka + e; //Výsledná částka
string vystup = "Úroková míra je:" + f;
Console.WriteLine(vystup);
Console.ReadKey();
}
}
}
Program ale má v sobě nějakého zakopaného psa, kterého jsem nedokázal najít. Počítá špatně. Když daním jenom úrok, tak se mi musí celková částka jenom přičítat, ne odečítat. Např. při vložené částce 10000, úroku 2%, dani 15% a počtu měsíců (ještě jsem nějak nerozlouskl jak ten výpočet zapsat do kódu, prakticky nefunkční) 0 mi háže celkovou částku 9972. Co mám špatně?
Díky, SteveXtreme.
P.S.: Kdyby byl někdo schopný můj kód opravit a přidat na funkčnosti počtu měsíců kde se celá věc podstatně komplikuje, byl bych vděčný <3
Lock na přání autora dotazu. (karel)
Vymazané odpovede mimo témy. (los)
Ale proč tak složitě?
funguje program po tomhle? Zkracováním kódu jsem ještě neprošel, jde mi hlavně o funkčnost. Každopádně dík.
Edit: co mám nahradit v kódu za tohle?
Nerozumím otázce.
1.) Co mám nahradit v mém kódu za tvůj kód
2.) Program po nahrazení mého za tvůj kód funguje?
Já ti nevím, jak se to celé počítá.
Ale třebas s PocetMesicu vůbec ve výsledku nepočítáš.
TO jsem právě zmiňoval. Tím se celý kód vcelku komplikuje a já jsem ještě nerozlouskl, jak to zapsat v C#pu.
Edit:
Zkrátka to berte jako by tam float PocetMesicu vubec nebyl.
1) Horní kód nahrazuje jeden konkrétní řádek, je snad jasné jaký. Dolní kód je celý výpočet, ale byla v něm malá chybka:
Díky moc, už to jede. Kde byla chyba? Ještě budu dělat program na procentuální počítání počtu výher, proher a opuštěných zápasů do Doty. Já jen abych ji neudělal znova.
Snad dokážeš ty dva řádky porovnat, abys poznal, co se tam změnilo.
Celkem dotst - proto to nechápu.
ne. ale takto:
Pouzivas dementne nazvy premennych, a potom nevies co je co a scitavas dokopy nezmysly. Normalne mas mat premenne napr. UrokovaMieraZaMesiac, DanVPercentachZaMesiac. Aby bolo uplne jasne ze to je za mesiac alebo za rok alebo za kolko to tam vlastne mas, a ze to je miera a ne suma. Btw. to sa v CR meraju uroky a dane mesacne? Dan sa snad rata len rocne (?)
Nacitas ich zo vstupu. potom urobis napr.:
P.S. a ked ti nefunguje program tak si ho odkrokujes v debuggeri a pozeras premenne, a vidis za 3sekundy co tam je blbo.
Mohl bys prosím tvůj a Wikianův kód zakompilovat do mého v jednom souboru? Nějak nwm jak xD... teda Wikianův už jsem tam dostal, ten tvůj nechápu.
wikanov sposob by bol takto:
ma tam ale chybu. Spravne to ma byt takto
už se opravil
takže tohle bych měl dát místo floatu e? tenhle kod?
P.S. a este tusim je nutne urobit zaokruhlovanie podla zakona, neni to az tak uplne jedno, zaokruhlovat sa da roznymi sposobmi. A zaokruhluje sa asi po kazdom obdobi, t.j. vnutri cyklu.
to neresim, to nemam na komercni ucely xD ale dobra poznamka, zkusim to do kodu nejak dat.
Tu chybu už jsem opravil.
Spíš bych to viděl takhle:
Za předpokladu, že úroky se připisují úroková míra je roční, úroky se připisují měsíčně a neřešíme zaokrouhlování.
Ja si myslim ze danovy urad treba zrusit a potom nebude treba taketo kraviny ;))
P.S. ano ak to je rocna miera tak s tym musi nakladat inac, preto som do svojich nazvov cpal aj to obdobie. Vo vacsom programe je v tom potom bordel a kazdy potom chaosi dve na tri.
No to mi povídej, teď jsem počítal daň z nemovitosti...
Takže nějaký definitivní kód, jak bych měl celý program napsat? Omlouvám se, že všechno chci tak polopatě, ale tohle mi fakt motá hlavu.
definitivny kod je ten 1 riadok od wikana 3prispevky vyssie. To je cely program.
Ale je to bez zaokruhlovania (to neni na domace ucely nutne)
To záleží na tom, jak to potřebuješ. Úroková sazba je měsíční nebo roční? Úroky se počítají měsíčně nebo ročně? Daň se nějak zaokrouhluje? Jak?
1.) Nic nezaokrouhlovat
2.) Úroková sazba je měsíční, závislá na (ani nevím proč floatu) PocetMesicu. To potrebuju nejakym cyklem zakomponovat do kodu, aby to pocitalo i s tim poctem mesicu za predpokladu ze se tvuj kod pocita jednou za cyklus na kazdy mesic a pak se pricte k vysledku. To nevim jak napsat.
Tak to potrebuju. S tvym radkem kodu to funguje, ale potrebuju ten kus kodu na pocitani s PocetMesicu, aby program byl skutecne funkcni.
V tom riadku uz ma aj pocet mesicu.
Pow je mocnina. Nepotrebujes potom cykly. To je snad matematika zakl.skoly.
Pokud je úroková sazba měsíční, tak stačí v tom kódu změnit 1200 na 100.
*vzdych*
Nechci být nevděčný, ale to stále neodpovídá na otázku, jak zfunkčnit PocetMesicu.
to je cely program. Co ti na tom nefunguje?
P.S. inac len tak mimochodm nepouzivaj float, ale double. Vzdy. Dovod je silna nepresnost floatu.
Řekněme, že "nevím", co na tom nefunguje. (P.S.: chybovy vypis, omlouvam se za tu bílou část, špatný ctrl c a ctrl v)
P.S.: tvoje poznámka o double se bere na vědomí, pak to opravím.
Chyba tam jedna zatvorka hned za Pow (alebo zmaz predposlednu zatvorku)
P.S. pripadne ak mu potom bude vadit este aj to "var" tak zmen var na double.
Daň se počítá v okamžiku připsání úroků. Pokud se počítají měsíčně, tak i daň se počítá měsíčně.
Tak nějak... myslím... ja nwm tak sme se to učili ve FIGu.