Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Taulukkoon tiedot

ikoneto [06.11.2007 18:05:17]

#

Hello
tässä harjoittelen C++ ja tehnyt tuollaisen lainanlyhennys jutun. Nyt tarkoitus olisi että tuo tulostus menisi taulukkoon.
Ongelmana on että ei hajuakaan noista taulukon luomisista tai siitä miten halutut tiedot niihin laitetaan.
Tuossa on osa koodista:

cout << " PAAOMA - KORKO-OSUUS - PAAOMA-LYHENNYS - YHT \n";
// lasketaan ja tulostetaan loppuajan lyhennys tiedot
for (int kk = 2; kk <= la; kk = kk + 1) {
		korko_osuus = vk/12 *p* mv/100;
		korko_kum = korko_kum + korko_osuus;
			summa=plyh+korko_osuus;
cout << " " << kk << " " << p << " " << plyh << " "<< korko_osuus << " " << summa <<"\n";
p = p - plyh;
}

Tarkoitus olisi siis että nuo tulosteet tulostuisi hienosti taulukkoon. Jatkossa tarkoitus olisi että saisin litanian tulostettua vaikka txt-tiedostoon

Kiitti jo etukäteen avusta

Antti Laaksonen [06.11.2007 21:45:12]

#

Taulukko on kuin muuttuja, mutta yhteen taulukkoon mahtuu monta tietoa.

C-oppaassa on kerrottu taulukon käytössä, ja samat asiat pätevät C++:ssa:

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=cohj_2#taulukko

Tuossa koodissa voisit tehdä vaikka niin, että määritetään kolme taulukkoa, joihin silmukan joka kierroksella tallennetaan muuttujien p, korko_osuus ja summa arvot. Silmukkamuuttuja kk kelpaa taulukon indeksiksi, eli sen avulla kerrotaan, mihin taulukon kohtaan tieto tallennetaan.

TsaTsaTsaa [06.11.2007 22:15:11]

#

Tämmöstä tulosteen muotoilua:

#include <iomanip>
Tulostusasun muokkaus
 ostream << left          Tulostus kentän vasempaan laitaan.
 ostream << right         Tulostus kentän oikeaan laitaan.
 ostream << setw( int ) Tulostuskentän leveydeksi int.
 ostream << setfill( char ) Tulostuskentän mahdollinen ylimääräinen tila
                         täytetään merkillä char.
 ostream << setprecision( int ) Reaalilukujen tulostustarkkuudeksi int.
 ostream << fixed          setprecision( int ) -ohjeessa int tulkitaan
                         desimaalien lukumääräksi.

Esim.

#include <iostream>
#include <iomanip>

using namespace std;

int main() {
   cout << setw(8) << right << "hö\n" << left << "hä\n";
   return 0;
}

ikoneto [07.11.2007 08:45:57]

#

Ok, kiitti vinkeistä, ei auta kun alkaa pähkäilee ja jos vaikka avautuisi.

Toinen ongelma on se että piten saan pyöristettyä float/duble luvun siten että siinä vain kaksi desimaalia.
Nyt jos vastaus tulee olemaan 213,1223, niin miten saisin sen muotoon 213,12

Tuota en oikein ymmärtän, olisi se mahdollista jotenkin noilla:
ostream << setprecision( int ) Reaalilukujen tulostustarkkuudeksi int.
ostream << fixed setprecision( int ) -ohjeessa int tulkitaan
desimaalien lukumääräksi.


Kiitos jälleen

Blaze [07.11.2007 10:42:51]

#

Joo

cout << fixed << setprecision(2) << 213.1223 << endl;

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta