dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

mana pirma proga

 
dev.gamez.lv Forum Index -> Iesācējiem
View previous topic :: View next topic  
Author Message
Raymix



Joined: 01 Feb 2006
Posts: 35
Location: Aluksne

PostPosted: Tue Apr 25, 2006 3:42 am    Post subject: mana pirma proga

esmu vel mazs un zals programeshana,, tapat panaksu jus dzeki! Cool

tatad. Proga ir kalkulators, ko es ta vieta lai vienkarsi dzenaatu cout ar hello world pa konsoli uzprogrameju sodien.
Darba bija riktigs fufelis tapec man bija gana laika lai izdomatu aptuveni kas kur buus jaliek. pec daudzam kludu juram man tomer izdevas uzcelt kautcik stabilus skaitam kocinjus

naku surp jo merkis man ir uztaisit speli,, pats esmu 3D modeletajs un izmantoju GameStudio A6 pro, bet ja gribu iekartoties kautcik sakariga spelu taisitaju barinja, nolemu, ka programeshana naks par labu... protams 3dgs ir celts uz C, bet nodomaju, ka iemacoties vispirms c++ bus vieglak iemacities pashu C. Ir nedaudz qbasic zinashanas, lietojot vecos labos zxspectrum, ja kads vel no jums tadus atceras ..hehehe
piemetinashu, ka neko sitik nopietnu nesmu nekad programejis, iznemot qbasicaa zimeeju lacishus un terminatorus, imitejot tos ka animacijas imantojot CLS Embarassed

te buus, gan latvieshu valoda gan anglu:
http://www.raymix.net/download/mycalc_lv.exe
http://www.raymix.net/download/mycalc_eng.exe

pats kods ari:

Microsoft Visual Studio .NET 2003

main.cpp
Code:
// practise

#include <iostream>
#include <conio.h>
#include "variables.h"
using namespace std;



// saskaitishana
void MatemPlus ()
{
   
   cout << "\nSaskaitishana" << endl;
   cout << "ievadi pirmo skaitli: ";
   cin >> plusnum1;
   cout << "ievadi otro skaitli: ";
   cin >> plusnum2;
   totalplus = plusnum1 + plusnum2;
   cout << plusnum1 << " + " << plusnum2 << " = " << totalplus << endl;
}

// atnemsana
void MatemMinus ()
{
   
   cout << "\nAtnemsana" << endl;
   cout << "ievadi pirmo skaitli: ";
   cin >> minusnum1;
   cout << "ievadi otro skaitli: ";
   cin >> minusnum2;
   totalminus = minusnum1 - minusnum2;
   cout << minusnum1 << " - " << minusnum2 << " = " << totalminus << endl;
}

// reizinashana
void MatemReiz ()
{
   
   cout << "\nReizinashana" << endl;
   cout << "ievadi pirmo skaitli: ";
   cin >> reiznum1;
   cout << "ievadi otro skaitli: ";
   cin >> reiznum2;
   totalreiz = reiznum1 * reiznum2;
   cout << reiznum1 <<" * " << reiznum2 << " = " << totalreiz << endl;
}

// Dalishana
void MatemDalits ()
{
   
   cout << "\nDalishana" << endl;
   cout << "ievadi pirmo skaitli: ";
   cin >> dalitsnum1;
   cout << "ievadi otro skaitli: ";
   cin >> dalitsnum2;
   totaldalits = dalitsnum1 / dalitsnum2;
   cout << dalitsnum1 << " / " << dalitsnum2 << " = " << totaldalits << endl;
}
// Procenti
void MatemProc ()
{
   
   cout << "\nProcentu Aprekinashana" << endl;
   cout << "ievadi pirmo skaitli: ";
   cin >> procnum1;
   cout << "ievadi otro skaitli: ";
   cin >> procnum2;
   totalproc = procnum1 * procnum2 / 100;
   cout << procnum1 << " procenti no " <<procnum2 << " = " << totalproc << endl;
}

// Lielakais skaitlis
void MatemMAX ()
{
   
   cout << "\nLielakais Skaitlis" << endl;
   cout << "ievadi pirmo skaitli: ";
   cin >> maxnum1;
   cout << "ievadi otro skaitli: ";
   cin >> maxnum2;
   {
      if (maxnum1 > maxnum2)
         totalmax = maxnum1;
   }
   {
      if (maxnum1 < maxnum2)
         totalmax = maxnum2;
   }
   {
      if (maxnum1 == maxnum2)
         cout << "Abi skaitli ir vienadi";
   }
   
   cout << "Lielakais skaitlis = " << totalmax <<endl;
}


// Mazakais skaitlis
void MatemMIN ()
{
   
   cout << "\nMazakais Skaitlis" << endl;
   cout << "ievadi pirmo skaitli: ";
   cin >> minnum1;
   cout << "ievadi otro skaitli: ";
   cin >> minnum2;
   {
      if (minnum1 > minnum2)
         totalmin = minnum2;
   }
   {
      if (minnum1 < minnum2)
         totalmin = minnum1;
   }
   {
      if (minnum1 == minnum2)
         cout << "Abi skaitli ir vienadi";
   }
   
   cout << "Mazakais skaitlis = " << totalmin <<endl;
}

// Videjais
void MatemAV ()
{
   
   cout << "\nVidejais skaitlis" << endl;
   cout << "ievadi pirmo skaitli: ";
   cin >> avnum1;
   cout << "ievadi otro skaitli: ";
   cin >> avnum2;
   totalav = avnum1 + avnum2 / 2;
   cout << "Videjais skaitlis ir: " << totalav << endl;
}

////////////////////////////////////////////

// MENJUUUUUU :))))
void Menu ()
{
   cout << "\n \n1. Saskaitishana" << endl;
   cout << "2. Atnemsana" << endl;
   cout << "3. Reizinashana" << endl;
   cout << "4. Dalishana" << endl;
   cout << "5. Procentu Aprekinashana" << endl;
   cout << "6. Lielakais skaitlis" << endl;
   cout << "7. Mazakais skaitlis" << endl;
   cout << "8. Videjais skaitlis\n" << endl;

//ievade..

   cin >> MenuCin;
   {
      if (MenuCin == 1)
      MatemPlus ();
   }
   {
      if (MenuCin == 2)
      MatemMinus ();
   }
   {
      if (MenuCin == 3)
         MatemReiz ();
   }
   {
      if (MenuCin == 4)
         MatemDalits ();
   }

   {
      if (MenuCin == 5)
         MatemProc ();
   }
   {
      if (MenuCin == 6)
         MatemMAX ();
   }
   {
      if (MenuCin == 7)
         MatemMIN ();
   }
   {
      if (MenuCin == 8)
         MatemAV ();
   }

   // atgreizties menu sakumaa
   return Menu ();
}


// galvena funkcija
main ()
{   
   cout << "............................................................" << endl;
   cout << "............................................................" << endl;
   cout << ".......... Raimja Entertainment (haha) prezentee! .........." << endl;
   cout << ".................. == Da Calculator!!! == .................." << endl;
   cout << "............................................................" << endl;
   cout << "............................................................\n\n" << endl;

   cout << "Ludzu izvelaties vienu no iespejam un ierakstiet izveleto ciparu apaksha, \ntad nospiediet ENTER lai apstiprinatu \n\n";
   cout << "** Nekada gadijuma nerakstat BURTUS, tikai CIPARUS! **" << endl;
   cout << "** Jus DRIKSTAT izmantot decimalskaitlus,, es soreiz atlauju :) **";
   Menu ();
   getch ();
}



variables.h
Code:
// plus
double plusnum1;
double plusnum2;
double totalplus = 0;

// Minus
double minusnum1;
double minusnum2;
double totalminus = 0;

//Reizinashana
double reiznum1;
double reiznum2;
double totalreiz = 0;

//Dalishana
double dalitsnum1;
double dalitsnum2;
double totaldalits = 0;

//Procenti
double procnum1;
double procnum2;
double totalproc = 0;

// MAX
double maxnum1;
double maxnum2;
double totalmax = 0;
double totalmaxvienads;

// MIN
double minnum1;
double minnum2;
double totalmin = 0;

// AVERAGE
double avnum1;
double avnum2;
double totalav = 0;

// Menu
int MenuCin;


_________________
Back to top
View user's profile
GiGa
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 25 Sep 2003
Posts: 887

PostPosted: Tue Apr 25, 2006 6:07 am    Post subject:

Ok, kur sākt Question :)

1. Kāpēc tev vajadzīgi visi tie mainīgie iekš variables.h ? Kāpēc tu tos neliec kā lokālos mainīgos attiecīgajās funkcijās? Ļoti nejauki tā rīkoties :)

2. Kāpēc tev funkcija Menu() ir rekursīva? Te ne tikai bez rekursijas var iztikt, bet tai totāli te nav vietas! Aizvieto ar vienkāršu ciklu.

3. Vēl iesaku inputu labāk nolasīt kā stringu, un tad, ja tur nav nepareizu simbolu, pārvērst par int'u - tas tā, lai nenotiktu dīvainas lietas, kad ieraksta kādus burtus nevis skaitli. Šitik primitīvā piemērā, protams, maznozīmīgi, bet labāk lieku reizi izdarīt pareizi nevis pierast pie pretējā.

4. Kāpēc Menu() funkcijā tik daudz figūriekavu? Tās tur neko nemaina...

5. Kāpēc Menu() funkcijā tik daudz if'u ? Aizvieto ar switch'u!

Tas tā - pāris lietas, ko derētu pamainīt Wink
Back to top
View user's profile Send e-mail
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Tue Apr 25, 2006 8:18 am    Post subject:

6. Nevajag izgudrot divriteni no jauna. C++'ā ir standartbibliotēka STL, failā <algorithm> ir definētās operācijas std::min(a, b) un std::max(a, b). Tās darbojas ar jebkādiem datutipiem (protams abiem a un b jābut vienādam datu tipam), ka tikai tam ir definēta < operācija.
Back to top
View user's profile Send e-mail
Raymix



Joined: 01 Feb 2006
Posts: 35
Location: Aluksne

PostPosted: Tue Apr 25, 2006 8:21 pm    Post subject:

forshi forshi, beidzot kads ari nokritizeja.

nu, atbilde ir vienkarsa,, es pat tiktal nebiju iemacijies to c++ bet aptuveni izspiredu ar daudziem warnings, ka uztaisit shito padarishanu. Gan jau kamer macos talak, tur bus viss teikts tieshi ta ka just to abi pasniedzat, bet man prieks to zinat jau ieprieksh.

par string biju dzirdejis, bet nezinaju ko tads dara. Un par swich,,, izklausas interesanti, paskatishos z kadu gatavu kodu kur tas tiek izmantots lai nav tas garais penteris atkal jaraksta

Tencinu! Wink
_________________
Back to top
View user's profile
Muntis



Joined: 04 Feb 2006
Posts: 23
Location: Riga

PostPosted: Tue Apr 25, 2006 10:35 pm    Post subject:

Nice Smile
qbasicaa jau bija iespeeja proceduuras parakstiit, tad nu arii ar to vareetu saakt
Shito te, kas Tev dubleejaas N vietaas. varam izcelt kaa atsevishkju funkciju kurai kaa parametrs ir strings (tas ir tas kas peedinjaas Wink ) bet rezultaats ir ievadiitais skaitlis
Code:

   cout << "ievadi pirmo skaitli: ";
   cin >> reiznum1;


Par rekursiju (tas ir tad ka pie kaut kaadiem nosacijumiem funkcija izsauc pati sevi) jau piemineeja - shaadi ten riikojoties aatri vien ieguusi Stack Overflow.

Ja jau ir veelme OOP pamaaciities, tad jau pie reizes arii shajaa piemeerinjaa var nedaudz ko pamainiit. Rakstiishu pseido kodu, jo C++ nepaarzinu.

Defineejam interfeisu:
Code:

Operation{
  double process(double x1, double x2);
}

Taalaak varam izveidot implementaaciju katrai operaacijai:
Code:

Summ :Operation{
  double process(double x1, double x2){
    return x1 + x2;
  }
}

Taalaak galvenajaa metodee vai klasee defineejam masiivu ar operaacijaam:
Code:

Operation[] operations = new Operation[]{ new Summ(), new Minus() utt...
}

Un shajaa gadijumaa mums nevaig ne if ne switch, lietotaajs ir ievadijis operaacijas indexu un mees varam atrast pareizo operaaciju, paluugt ievadiit divus skailtjus un atgriest rezultaatu:
Code:

menu()"{
  printMenu();
  cin >> choise;
  Operation choosedOpertion = operations[choise];
  int x1 = promptForInt("ievadi pirmo skaitli: ");
  int x2 = promptForInt("ievadi otro skaitli: ");
  cout << "operaacijas rezultaats ir: " << choosedOpertion.process(x1, x2);
}

p.s. C++ zinaataaji neesat bargi pret mani, peedeejo reizi kaut ko rakstiju C++ pirms gadiem 2iem.
Back to top
View user's profile Send e-mail Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Tue Apr 25, 2006 10:49 pm    Post subject:

Ja jau tik advancēti grib, tad jau STLā ir visi šitie plus, minus, divide definēti jau. Nevajag pašam neko rakstīt :)
http://www.sgi.com/tech/stl/functors.html
Back to top
View user's profile Send e-mail
Muntis



Joined: 04 Feb 2006
Posts: 23
Location: Riga

PostPosted: Tue Apr 25, 2006 10:57 pm    Post subject:

bubu wrote:
Ja jau tik advancēti grib, tad jau STLā ir visi šitie plus, minus, divide definēti jau. Nevajag pašam neko rakstīt Smile
http://www.sgi.com/tech/stl/functors.html


Patiesiibaa jau pasaulee esot viss uzprogrameets, vaig tik maaceet atarst un salikt kopaa Wink
Bet shis cik noprotu bij vairaak taa kaa pashizgliitiibai domaats, tad jau ir veerts arii kaut ko pasham sacereet.
Back to top
View user's profile Send e-mail Visit poster's website
Raymix



Joined: 01 Feb 2006
Posts: 35
Location: Aluksne

PostPosted: Mon May 01, 2006 10:57 pm    Post subject:

nu man te viss paslaik pashizglitoshanas cela ietas. Nav pilnigi nekadu iespeju iet skola, jastrada :-)

programeshana ir interesejusi jau loti ilgi, bet likas parak sarezgita kamer vot nepieseds un nesaku zubrit,, tiri interesanta padarishana.

Tas kalcis ko sakuma uzmetu ir panemts ne nokuriences citurienes ka tik pasha izdomas un loti minimalajam zinashanam. Ar tik daudziem erroriem izkavos, ka vemt gribas, bet rezultatu tomer panacu.

Protams tagad jau pateicoties paris cilvekiem apkart iemacijos jau tadas lietas ka swich, for, while, void un pat bool :-)

bubu man palidzeja daudz! :-)

nezinu kur dzive shito ka modeletajs izmantoshu, bet loti noderes portfolio,,, ka neka labak zinat kautko neka galigi neko, vai ne?
_________________
Back to top
View user's profile
Display posts from previous:   
dev.gamez.lv Forum Index -> Iesācējiem All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group