kashiukas
-
Pranešimai
508 -
Užsiregistravo
-
Lankėsi
-
Laimėta dienų
1 -
Atsiliepimai
0%
Turinio tipas
Forumas
Kalendorius
Parduotuvė
Akademija
Skelbimai
kashiukas Pranešimai
-
-
Ir kas nesigauna?
-
struct kazkas { int a; };
struct kitkas { struct kazkas b; };
-
Keletas pastebėjimų:
Jeigu skliausteliai nebūtini, dar nereiškia, kad jų neverta dėti – bent jau metodų apibrėžimuose (def) naudok skliaustelius:
def meth(arg)
def meth2(arg1, arg2).
Jeigu metodas neturi argumentų, () nerašyk. Kviesdamas metodus taip pat, geriau uždėk skliaustus – bent man, lengviau skaitosi, o ir chaininti metodus lengviau galėsi (nereikės prirašinėŧi skliaustų) – method1(arg1, arg2).method2(arg)
Class variable yra evil dalykas. Tavo atveju – nieko tokio, bet jei įsiveltų paveldėjimas, tai gali turėti problemų. Naudok class instance variables: http://stackoverflow.com/questions/3802540/difference-between-class-variables-and-class-instance-variables
Perskaityk kokį nors stiliaus gidą, keletą gali rasti čia: http://forum.vilniusrb.lt/index.php/15-kodo-tvarka-ir-geros-praktikos
Gal galėtum brūkštelti savo bandytą kodą, kai metodas nematė instance variable'o? Mestelk į kokį pastebin, jei nesunku – mažiau scrollinti šitoje temoje reikės. :-)
Red: šiek tiek pakrapščiau, tai lyg ir veikia: http://pastebin.com/yEayVSa7
Dar keletas pastebėjimų: kodėl visi accountai su vienodu pinu? Ne geriau padaryti, kad konstruktorius priimtų pin'ą ir saugotų jį instance variable? Kodo daug keisti nereikėtų – gali iš pin metodo returninti @pin (nors, aš geriau kodą pakeisčiau).
Taip pat, tavo duotame pavizdyje vietoje show_balance reikia kviesti display_balance. :-)
Sėkmės.
- Privatus Poilsis Trakuose sureagavo į tai
- 1
-
-
Dabar pas mane yra toks kodas (Dalis aišku):
for i := m to n do begin if ((i mod 400 = 0) OR (i mod 100 <> 0) AND (i mod 4 = 0)) then WriteLn('Keliamieji metai yra: ', i); end;
Ir kaip padaryt, kad atsakymą pateiktų taip?:
O ne:
?
WriteLn('Keliamieji metai yra: '); for i := m to n do begin if ((i mod 400 = 0) OR (i mod 100 <> 0) AND (i mod 4 = 0)) then Write(i, ' '); end;
Tik dabar bus problema, jeigu intervale nėra keliamųjų metų. Spręsčiau maždaug taip: turėčiau Boolean kintamąjį, kurio pradinė reikšmė būtų false. Jeigu metai keliamieji, tikrinčiau ar tas kintamasis false, jei false – printinčiau ('Keliamieji metai yra: ', i) ir nustatyčiau tą kintamąjį į true. Jeigu kintamasis true – printinčiau tik metus: Write(', ' i);
Jeigu baigus ciklą kintamasis išlieka false – printinčiau 'Intervale keliamųjų metų nėra'.
-
Ateityje žinosi, kad su productionu žaisti nėra gerai – turėk testinį serverį (gali tokį pasikurti kad ir ant savo kompo).
-
Mindf**k, reikia ieskot pavyzdziu internete, kad suprasciau.
Turi failą:
1 2 3
4 99
ir kodą:
ifstream f("failas.txt"); int a; f >> a; // a = 1; f.eof() = false f >> a; // a = 2; f.eof() = false ....... f >> a; // a = 99. f.eof() = true, nes pasiekta failo pabaiga.
Vietoj tų 5 eilučių (o ypač, jeigu nežinai kiek faile eilučių), galima naudoti while loopą, panaudojant f.eof() funkciją:
while(!f.eof()) { // kol f.eof() grąžina false f >> a; // šitas bus įvykdytas 5 kartus (jei f rodys į tą ankstesnį failą) }
-
Kol ne eof bitas nustatytas ant fd. Eof reiškia end of file. Kitaip tariant, kol nepasiekta failo pabaiga. Cikle būtinai turi padaryti, kad kadanors fd pasiektų failo pabaigą (galima readinti, seekinti), kitaip jis niekad nesibaigs.
-
Dėl stiliaus: naudok kintamųjų pavadinimus, kurie kažką reikštų, nes dabar kodas labai sunkiai skaitomas.
-
Const ant metodo (ret_type some_method(int something) const), jeigu jis neturi keisti objekto, užsidėti būtų pravartu – kompaileris neleis daryti nesąmonių.
-
-
Šiaip, reikėtų naudoti IMAP, o ne POP3. Iš esmės, tai per IMAP'ą parsitrauki visus savo laiškus (tai gali trukti netrumpai), o tada importuoji juos kur nori (žinoma, serveris turėtų palaikyti IMAP uploadą). Pvz., vienas variantas yra čia: http://imap-upload.sourceforge.net/
Kadangi, exportavimui tu naudosi paprastą imap downloadą (daugelis mail klientų gali pasiimti visus laiškus pasirinkus „make available offline“ ar kažką tokio), tai gmailas nieko neturėtų riboti.
-
Aham, bandžiau pasidaryt su tuom pow, bet nelabai gaunas. Jeigu nesunku, galbūt gali konkretų pavyzdį duot? Nes man reikia kad keltų laipsiu pagal kintamajį - periodai ( čia palūkanų skaičiuoklei).
#include <iostream> #include <cmath> int main(void) { double a = 15.0; double b = 3.0; std::cout << pow(a, b) << std::endl; // => 3375 std::cout << pow(3.0 * 2.5, b) << std::endl; // => 421.875 return 0; }
-
Čia cpp? Daugelyje kalbų ^ reiškia XOR.
Kelti laipsniu gali su pow(double x, double y), reikia includinti "cmath", gali tekti nurodyti -lm flagą kompiliatoriui (ant C reikia, nežinau kaip su C++).
Laipsnio kėlimo funkcija dažniausiai būna pow (gali būti Math namespace), arba ** operatorius ( x ** y ).
-
Taip as ir maniau, bet as negaliu taip padaryti, nes min yra int tipo, o au yra klases tipo objektas :)
Kodėl negali?
class A { private: int m_someint; public: A(int i) : m_someint(i) { } bool operator<(int other_int) { return m_someint < other_int; } }; int main(void) { A a = A(3); if(a < 4) cout << "3 < 4\n"; // <- true return 0; }
Šitas, kaip ir, veikia?
-
Sveiki, uzduotyje reikia realizuoti(ir greciausiai panaudoti) bool operatoriu <. Kur galima ji panaudoti jei as apsiejau ir be jo?
bool AutoDuomenys::operator < (const AutoDuomenys &kitas){ return co2 < kitas.co2; } string SurastiMaziausia(Automobiliai *A1){ int min = numeric_limits<int>::max(); // didziausia reiksme string model; for(A1->Pradzia(); A1->Yra(); A1->Kitas()){ AutoDuomenys au = A1->Imti(); if(au.ImtiCo2() < min && au.ImtiKategorija() == 5){ min = au.ImtiCo2(); model = au.ImtiModeli(); } } return model; }
taip pat jei apsirasau objektus dinamiskai ar leidzia "programavimo kultura" juos istrinti main'e?
Automobiliai *A1 = new Automobiliai(); Automobiliai *B1 = new Automobiliai(); delete A1; delete B1;
P.S sios uzduoties fragmente reiktu panaudoti bool operatoriu.
if(au.ImtiCo2() < min && au.ImtiKategorija() == 5){
Čia gali panaudoti bool operator<(int whatever):
if (au < min && something)
-
Fainas o ant kokio Ubuntu nesuvaziuos po to 500MB KDE softo?
O įsidiegus php nesuvažiuos wordpress? Qt nedependina ant kde. Jei turi skaipą, tai turi qt'ą, ko gero reikės tik kelių -dev libų ir IDE. :)
- Konkreciau sureagavo į tai
- 1
-
Berašydamas prisiminiau QT. Pakankamai lengvai GUI darėsi su juo. Verta pasižiūrėt manau
+1 Dėl Qt. Labai fainas cross platform frameworkas, turi bindingus aukštesnio lygio kalboms (ruby, python).
- Konkreciau sureagavo į tai
- 1
-
aš dar tik plaukioju paviršium su tais string ir char. o tai kaip tada sukeisti, kad imtų 2 simbolius ar daugiau vietoj vienos raidės ?
Naudok std::string (tiesiog string, jeigu turi „using namespace std;“). Jis turėtų turėti append ar panašų metodą, kur gali appendinti kiek nori simbolių (t.y., appendinti stringą). Šitoje užduotyje aš naudočiau papildomą stringą (pavadinkime jį result), į kurį vis appendinčiau atitinkamą (pagal Morzės alfabetą) stringą.
Maždaug šitaip:
std::string text = std::string("ABCD"); // Šitą versim į Morzę std::string result; for(int i = 0; i < text.length(); ++i) { string code = code_for(text[i]) // code_for yra tavo parašyta funkcija, kuri grąžina stringą su simbolio atvaizdavimu Morzės alfabete. Vietoje funkcijos gali naudoti map'ą (http://www.cplusplus.com/reference/map/) result.append(code); } std::cout << result << std::endl;
Atkreipk dėmesį, kad newline'as, tabas, tarpas irgi yra simboliai, pagalvok kaip juos koduosi: paliksi tą patį simbolį ar ignoruosi – spręsti tau.
Mano rule of thumb, programuojant cpp: jeigu įmanoma, nenaudoti C stringų (t.y., char masyvų), o vietoje jų naudoti std::string.
Red: tik dabar pamačiau, kad jau naudoji appendą, tik kita forma: +=. :-)
P.S., kodą dėk tarp [ code ] kodas [/ code ] tagų (be tarpų prieš/po [ ar ]).
-
c++ koduotė tokia nustatyta, o failas pas mane txt tipo. pabandžiau pakeisti į normalų tašką '.', tačiau jį vistiek ignoruoja. Duotas tekstas RYTO RASA rezultatas RYTO R-S-
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
#include <iomanip>
#include <sstream>
using namespace std;
void skaitymas(string &tekstas)
{
ifstream failas;
failas.open("Duomenys.txt");
string eilute;
while(!failas.eof())
{
getline(failas,eilute);
tekstas+=eilute;
}
failas.close();
}
void rasymas(string tekstas)
{
ofstream failasR;
failasR.open("Rezultatai.txt");
for(int i=0;i<tekstas.length();i++)
{
if(tekstas=='A' || tekstas=='a'){tekstas='.-';}
}
failasR<<tekstas;
failasR.close();
}
int main()
{
string tekstas;
skaitymas(tekstas);
rasymas(tekstas);
return 0;
}
Ar čia man vaidenasi, ar tu į vieną charą nori sukišti du? Ko gero, todėl ir dingsta vienas simbolis, nes į vieno simbolio vietą tu nori įdėti du simbolius.
-
Kadangi matau tavo kodą ir klaidos pranešimus, tai galiu išburti kas negerai... :-)
Taigi, duok kodą, klausk kodėl tas ar anas neveikia, o ne klausk „kaip parašyti visą programą“ (su mintim, kad kažkas nemokamai parašys?).
Beje, man pačiam C pointerius (jie nuo C++ nesiskiria, tik vietoj malloc() funkcijos, naudoji operatorių new, vietoj free() – delete) išmokti padėjo, berods, šis PDF'as: pdos.csail.mit.edu/6.828/2012/readings/pointers.pdf . Pasiskaityk, gal kažkiek aiškiau pasidarys. :-)
-
Na, aš manau, kad vistiek gyvename XXIa. kur technologijos sparčiai auga ir tobulėja, tad programuotojų reiks dar ilgą laiką, nebent būtų sukurta kokia sistema, kuri pati rašo kodą. :D
Na, tokias sistemas mes vadiname transliatoriais. Ką tu nori padaryti vis tiek reikia kažkaip užrašyti, nebent kalbi apie minčių skaitymą ar ką nors tokio. ;-)
-
Rezultatai.txt failas po programos įvykdymo:
9+3=12 9-3=6 9*3=27 9/3=3 ****************************** 6+3=9 6-3=3 6*3=18 6/3=2 ****************************** 8+4=12 8-4=4 8*4=32 8/4=2 ****************************** 10+5=15 10-5=5 10*5=50 10/5=2 ******************************
Ką reikia pakeisti, kad būtų taip, kaip pavyzdyje?
Ir dar tarpus tarp ženklų. :-P Jeigu nurodytas outputo formatas, tai ir daryk pagal jį. ;-)
-
Tai klausimas, ar apsimoka mokytis vieną iš šių programavimo kalbų - PHP ir HTML?
Lygini automobilį su medžiu. Trumpai tariant: HTML yra skirta atvaizduoti puslapį naršyklėje, o PHP sukasi serveryje ir generuoja HTML'ą (gali generuoti JSON, XML ar dar bala žino ką). Jeigu nori dirbti web'e, tai be HTML, greičiausiai, neapsieisi. O štai PHP galima keisti kokia nors kita programavimo kalba: jau minėtos ruby, python, etc. Taip pat, server-side gali naudoti tą patį C++ ir leisti jį per CGI, bet tai nėra pats geriausias sprendimas.
Fancybox / Nivo Slider
Programuotojų kampas
Atrašyta
Javascript consile. Pasigooglink kur ją rasti savo brauzeryje. Iš telefono, tingiu googl linkus pastinti. :-)