Součet hodnot. – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Součet hodnot. – C / C++ – Fórum – Programujte.comSoučet hodnot. – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Luckaa+2
Návštěvník
22. 8. 2012   #1
-
0
-

Zdravím. Chtěla bych se zeptat, Učím se teď na jednom příkladu jde o program kde uživatel zadá číselný kód a vyjede mu co ten kod znamená. Nejlepší příklad asi 1022 = chleba, 2033 = rohliky.  Můj dotaz zní jak udělat koncovej součet 

tzn. uživatel zadá (Q) a tim se vyjede seznam co vše namačkal ( Chleba,máslo,rohlíky atd-) + sečte cenu. 

Poradíte mi někdo ? :) Děkuji

Nahlásit jako SPAM
IP: 89.103.16.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
Luckaa+2
Návštěvník
22. 8. 2012   #2
-
0
-

Klidně stačí pod čím bych to měla hledat :)

Nahlásit jako SPAM
IP: 89.103.16.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
KIIV
~ Moderátor
+43
God of flame
22. 8. 2012   #3
-
0
-

v c++ asi map kontejner

v c pro studijni ucely bude stacit spojovy seznam polozek kod+cena+nazev+ kde je dalsi prvek? nebo pole struktur.. najit spravnou hodnotu a tak

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Luckaa+2
Návštěvník
22. 8. 2012   #4
-
0
-

#3 KIIV
Jedna se o C++ 

mno mrknu na to myslim že sem to viděla v Mistrovství C++

Nahlásit jako SPAM
IP: 89.103.16.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
KIIV
~ Moderátor
+43
God of flame
22. 8. 2012   #5
-
0
-

samozrejme u ty mapy to pak bude  cislo produktu jako klic a hodnota pak objekt s nazvem, cenou a treba metodou, ktery hodis pocet kusu a ona ti vyflusne celkovou cenu pro zbozi.. nebo treba predat pocet a sumu a zapise se to tam

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Luckaa+2
Návštěvník
22. 8. 2012   #6
-
0
-

#3 KIIV
měl si na mysli tohle ?  

#include <list>

#include <iostream>

using namespace std;



int main()

{

  list<int> myList;



  for (int i = 0; i < 10; i++)

    myList.push_back(i * i);	// 0, 1, 4, 9, 16, 25 ...



  for (list<int>::const_iterator it = myList.begin(); it != myList.end(); ++it)

    cout << *it << endl;



  return 0;

}

nebo toto

#include <map>

#include <iostream>

#include <string>

using namespace std;



int main()

{

  map<string, int> myMap;



  return 0;

}
Nahlásit jako SPAM
IP: 89.103.16.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
vitamin+8
Grafoman
22. 8. 2012   #7
-
0
-

#6 Luckaa
kľúč je prvý typ, takže:


map<int, string> myMap;
Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Luckaa+2
Návštěvník
22. 8. 2012   #8
-
0
-

#7 vitamin
A jak by měl teda vypadat konec /kód pro výpis zadaných hodnot ? 

Nahlásit jako SPAM
IP: 89.103.16.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
vitamin+8
Grafoman
22. 8. 2012   #9
-
+1
-
Zajímavé
Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Luckaa+2
Návštěvník
22. 8. 2012   #10
-
0
-

#9 vitamin
A super :) moc pomohlo děkuji :)

Nahlásit jako SPAM
IP: 89.103.16.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
Luckaa+2
Návštěvník
24. 8. 2012   #11
-
0
-

Zdravim ještě bych potřebovala pomoc. Program mám hotový ale na konci ve výpisu bych potřebovala poradit jak sečíst všechny hodnoty = Ceny 

zde je kod : 

#include <iostream>
#include <fstream>
using namespace std;
const unsigned char e1 = 130;
const unsigned char z1 = 167;
const unsigned char i1 = 161; 

void kody();
void chleb_1000();
void chleb_500();

int main()
{
   int i;
   int B=20;
   
   kody();
   int kod;
   cin >> kod;
   ofstream fout ("lucka.dat",ios::out |ios::app);
   
   while (kod != 5)
   {
      switch(kod)
      {
      for (kod=0 ; kod<1 ; kod++)
      {
      case 101:   
   for (c=0 ; c<1 ; c++)
   {
      cout << "Mno"<<z1<<"tv"<<i1 << ": " ;
      cin >> i;
      cout << i+0 << " X ";
           chleb_1000();
      cout << "\ncena : " << i*B << " kc\n";
         break;
         
      case 102: chleb_500();
         break;
         default : cout << "Neexistuje.\n";
            
      
           }}}

      kody();
      cin >> kod;
      fout << kod << i <<"";
 fout.close();  
   }


   cin.get();
   cin.get();
   
   return 0;
  }
  
void kody()
  {
            cout << "\n Kod zbozi \n";
            }
      
 void chleb_1000()
 {
      cout << " Chl"<<e1<<"b 1000g \n" ;
      }
 
 void chleb_500()
 {
      cout << " Chl"<<e1<<"b 500g" ;
      }
Nahlásit jako SPAM
IP: 89.102.76.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
Luckaa+2
Návštěvník
24. 8. 2012   #12
-
0
-

#11 Luckaa
PARDON ŠPATNÝ KOD ZDE JE NOVÝ 


#include <iostream>

using namespace std;

// ČEŠTINA 
const unsigned char e1 = 130;
const unsigned char z1 = 167;
const unsigned char i1 = 161; 
const unsigned char o1 = 162;
const unsigned char c1 = 159;
const unsigned char r1 = 253;
const unsigned char y1 = 236;
const unsigned char a1 = 160;
// KONEC ČESTINA

void chleb_1000();
void chleb_500();

struct Databaze
{
int cislo_kodu;

int pocet;

};

int main()

{
    // CENY
int a1 = 20;
int a2 = 15;
// KONEC CENY
int pocet_kodu = 60; // MAXIMÁLNÍ POČET KODU
char ano_ne;
  
cout << "Zadejte K" << o1 << "d";
Databaze zbozi[pocet_kodu];
for(int i=0; i<pocet_kodu ; i++)

{
//////////////// HLAVIČKA PRO ZADÁVÁNÍ //////////////////////////
cout << "\nChcete p"<<r1<<"idat nov"<<y1<<" k"<<o1<<"d ? (A/N) \n";  
cin >> ano_ne;
cin.get();

if(ano_ne == 'A' || ano_ne == 'a'){

cout << "\nK" << o1 << "d: \n"; 
cin >> (zbozi[i].cislo_kodu); // ZADÁNÍ KODU

cout << "\nPo"<<c1<<"et: \n";
cin >> zbozi[i].pocet; // POČET ZBOŽÍ

cin.get();
//////////////////// KONEC HLAVIČKY PRO ZADÁVÁNÍ///////////////////
}
else pocet_kodu = i; // POKUD JE POČET KODU 60 NEBO PO STISKNUTI 'N'
}
cout << "\n\nK" << o1 << "dy(" << pocet_kodu << ") " << ":\n\n";
for(int i=0; i< pocet_kodu; i++)
{
        switch (zbozi[i].cislo_kodu) // KÓDY
{
        case 101:
             cout << zbozi[i].pocet << " X ";
             chleb_1000();
             cout << " Cena : " << zbozi[i].pocet * a1 << "\n";
         
         break;
         
        case 102:
             cout << zbozi[i].pocet << " X ";
             chleb_500();
             cout << " Cena : " << zbozi[i].pocet * a2  << "\n";
         break;
         default : cout << "K"<<o1<<"d nezn"<<a1<<"m.\n";
         cout << "Soucet " << i+  zbozi[i].pocet << ""; 
         break;
       
         
         }// KONEC KÓDY

// VYPÍŠE ČÍSLO KODU A POČET

cin.get();
}}

 void chleb_500()
 {
 cout << " Chl"<<e1<<"b 500g \n";
      }
 void chleb_1000()
 {
cout << " Chl"<<e1<<"b 1000g \n";
      }
Nahlásit jako SPAM
IP: 89.102.76.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
Atheo+4
Stálý člen
24. 8. 2012   #13
-
0
-

Udělej to přes pole ... vlastně zásobník pokud víš co to je ... pochybuji o tom takže stručně

Udělej si pole na počet hodnot třeba 1-50 kde bude 50 kódů a k těm kódům přiřadíš libovolej prvek třeba ten rohlik = 1; a když uživatel zadá 1 tak bude chtít rohlik fajn a když budes chtít vypsat všechny co uživatel vybral tak jednoduše vykreslíš pole které bylo vybráno třeba přiklad :

pokud si zadal kód tak se do toho pole přidá nějaka proměnná a při vykreslování.. pokud tam ta proměnná bude tak se vykreslí.. pokud ne nevykreslí se nic a tim zjistíš co vše uživatel zadal 

TIP : tohle je databáze a ta se v C/C++ nedělá na to je SQL

Tomáš

Nahlásit jako SPAM
IP: 188.175.140.–
Atheo+4
Stálý člen
24. 8. 2012   #14
-
0
-

#12 Luckaa
btw dělat funkce na každý prvek zvlášť je pěkná kravina napiš mi na email winitrixx@gmail.com mrknem se na to já ti pomůžu se zdrojákem takové "how to make"

Nahlásit jako SPAM
IP: 188.175.140.–
Atheo+4
Stálý člen
24. 8. 2012   #15
-
0
-

#12 Luckaa
jednak "děláš zásobník " a takhle se rozhodně nedělá :)

Nahlásit jako SPAM
IP: 188.175.140.–
Luckaa+2
Návštěvník
24. 8. 2012   #16
-
0
-

#13 Atheo
Takže pokud sem pochopila pokud neznám SQL tak tento program nedokončím ? Myslela sem, to tak že cena chleba 1000g je 20kč když uživatel zadá 4x chleba = 80  pak zada třeba 2x 500g chleba cena 15kč = 30 

součet = 110 kč ... někde to udělat ? ... Jinak k zásobníkům sem se ještě nedostala. 

Nahlásit jako SPAM
IP: 89.102.76.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
Luckaa+2
Návštěvník
24. 8. 2012   #17
-
0
-

#15 Atheo
Zkouším a učím se :)

Nahlásit jako SPAM
IP: 89.102.76.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
Atheo+4
Stálý člen
24. 8. 2012   #18
-
0
-

#16 Luckaa
ne! Databáze se dělaj v SQL tohle je jen takový náhraška databáze pujde to co by ne... klasicky  

algoritmus :

vstup : 1,1,1,1,1

1= chleba 20kc;

a to se rovna chleba+chleba+chleba+chleba+chleba =  chleba_vysledek;

tisk : chleba_vysledek

Nahlásit jako SPAM
IP: 188.175.140.–
Luckaa+2
Návštěvník
24. 8. 2012   #19
-
0
-

#18 Atheo
napsala sem ti na email

Nahlásit jako SPAM
IP: 89.102.76.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
vitamin+8
Grafoman
24. 8. 2012   #20
-
0
-

#16 Luckaa
sprav si ďalšiu premennú: 'celkova_cena', nastav ju na hodnotu 0 a v tom switch-y ktorí tam máš keď narazíš na chleba tak k do premennej 'celkova_cena' pridáš cenu toho chleba (počet*cena). Na konci tú cenu vypíšeš.

ps: premennú 'celkova_cena' deklaruj pred cyklus v ktorom je ten switch.

Skús to písať bez diakritiky, nielen že ten kód vyzerá strašne, ešte aj v termináli mam samé otázniky :)

Prípadne použi UTF-8/16

Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
TheOndrap+2
Super člen
24. 8. 2012   #21
-
0
-

Jaj co v tom pořád hledáš za složitosti? Atheo se ti snaží říct, že bys měla udělat jakýsi nákupní košík = pole do něhož budeš postupně ukládat zakoupené věci respektive číselné kódy .. uživatel zadá 1022, ty to projedeš nějaký switch-case, zjistíš že je to chleba a vypíšeš cenu za chleba (půlka chleba a celej chleba budou mít jiný kody) .. do pole na index i zadáš 1022, zvedneš i a vyzveš uživatele k další volbe .. pokud uživatel zadá Q, projedeš cyklem pole zase a vypíšeš, co má v košíku + kolik to stojí a přičteš to k nějakému total_souctu.

Rozumíš?

Jinak až pronikneš do OOP poznáš jak je to všechno jednoduchý :)

Nahlásit jako SPAM
IP: 88.102.250.–
ZČU v Plzni je mnohem víc, než jenom právnická fakulta !!
Fakulta aplikovaných věd www.fav.zcu.cz
"Když nedokážete říci věci jednoduše, pak jim dostatečně nerozumíte"
Atheo+4
Stálý člen
24. 8. 2012   #22
-
0
-

#21 TheOndrap
přesně tak nevím co je na tom složitého , nebo-li k nepochopení :)

Nahlásit jako SPAM
IP: 188.175.140.–
Atheo+4
Stálý člen
24. 8. 2012   #23
-
0
-

#21 TheOndrap
už jsem to snad srozumitelně vysvětlil teď na mail tak snad už v pořádku :)

Nahlásit jako SPAM
IP: 188.175.140.–
Luckaa+2
Návštěvník
24. 8. 2012   #24
-
0
-

#21 TheOndrap
Dobře :) mějte semnou přeci jen trošku  trpělivost já se učím a mé znalosti nesahají tak daleko..mám  zájem se to naučit  a proto se ptám :) ... mno problém bude v tom že nevím jak udělat tu další poměnou a vložit ji do toho :(

Nahlásit jako SPAM
IP: 89.102.76.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
Atheo+4
Stálý člen
24. 8. 2012   #25
-
0
-

#24 Luckaa
tak tu pořád nemel a koukni se na ten mail :D teď jsem ti to napsal!:D

Nahlásit jako SPAM
IP: 188.175.140.–
TheOndrap+2
Super člen
24. 8. 2012   #26
-
0
-

#24 Luckaa
Dyk tě nikdo "nekárá" .. ale já mám pořád pocit, že točíme dokola to samé .. formuluj dotazy a my se budeme snažit ti na ně odpovědět. Případně koukni do toho maila, který ti Atheo-Mirror's Edge :P poslal

Nahlásit jako SPAM
IP: 88.102.250.–
ZČU v Plzni je mnohem víc, než jenom právnická fakulta !!
Fakulta aplikovaných věd www.fav.zcu.cz
"Když nedokážete říci věci jednoduše, pak jim dostatečně nerozumíte"
Luckaa+2
Návštěvník
24. 8. 2012   #27
-
0
-

#26 TheOndrap
jj už sem koukala :)

Nahlásit jako SPAM
IP: 89.102.76.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
vitamin+8
Grafoman
24. 8. 2012   #28
-
0
-

Keď budeš odsadzovať bloky tak nemusíš všade vypisovať kde začínajú a kde končia:

#include <iostream>
using namespace std;

struct Databaze{
	unsigned cislo_kodu;
	unsigned pocet;
};

#define MAX_POCET_KODOV 	60

#define CENA_1000G_CHLEBA 	20
#define CENA_500G_CHLEBA 	15

#define KOD_CHLEBA_1000G 	101
#define KOD_CHLEBA_500G 	102

int main(){
	  
	cout << "Zadejte Kod";
	Databaze zbozi[MAX_POCET_KODOV];
	
	unsigned pocet_kodu;
	
	for(pocet_kodu = 0; pocet_kodu < MAX_POCET_KODOV; pocet_kodu++){
		char ano_ne = 0;
		
		cout << endl << "Chcete pridat novy kod ? (A/N)" << endl;
		while(toupper(ano_ne) != 'A' && toupper(ano_ne) != 'N'){
			cout << ": ";
			cin >> ano_ne;
		}

		if(toupper(ano_ne) == 'A'){
			cout << "\nKod: \n"; 
			cin >> (zbozi[pocet_kodu].cislo_kodu); 

			cout << "\nPocet: \n";
			cin >> zbozi[pocet_kodu].pocet; 

			cin.get();
		}
		else break;
	}
	
	unsigned celkova_cena = 0;
	
	cout << endl << endl << "Kody(" << pocet_kodu << ") :" << endl << endl;
	for(unsigned i = 0; i < pocet_kodu; i++){
		switch (zbozi[i].cislo_kodu){ 
			
			case KOD_CHLEBA_1000G:
				cout << zbozi[i].pocet << " x  Chleb 1000g = " << zbozi[i].pocet * CENA_1000G_CHLEBA << ",-"  << endl;
				celkova_cena += zbozi[i].pocet * CENA_1000G_CHLEBA;
				break; 
				
			case KOD_CHLEBA_500G:
				 cout << zbozi[i].pocet << " x  Chleb  500g = " << zbozi[i].pocet * CENA_500G_CHLEBA << ",-"  << endl;
				 celkova_cena += zbozi[i].pocet * CENA_500G_CHLEBA;
				break;
				
			default : 
				cout << zbozi[i].pocet << "x neznam kod" << endl;
				break;
		 }
	}
	
	cout << "Celkova cena: " << celkova_cena << ",-"  << endl;
	cin.get();
	
	return EXIT_SUCCESS;
}
Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Podobná vlákna

Součet hodnot — založil baryman

MySQL - součet hodnot — založil Kouky27

Součet některých hodnot pole — založil anakondatra

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý