Pereiti prie turinio

Pagalba su C++


Rekomenduojami pranešimai

Galit kasnors papasakoti kaip įsirašyti (ir ką įsirašyti) norint programuoti C++ ?

 

parsisiunčiau Visual C++ 2005 Express Edition bet niekas man ten neišeina ...

 

net įvedus elementarų:

 

#include <stdio.h>

main ( ) /* paprasčiausia programa*/

{

int num;

num = 1;

printf (“ Aš paprasta”);

printf (“skaičiavimo mašina. \n”);

printf (“Mano mėgstamiausias skaičius %d, todėl, kad tai pirmas skaičius. \n”, num);

return 0;

}

 

nieko nesigauna ..

Nuoroda į pranešimą
Dalintis kituose puslapiuose

parsisiunčiau DEV-C ++

 

įrašiau:

 

#define DENSITY 1200 /*žmogaus kuno tankis*/

#include<stdio.h>

#include<conio.h>

#include<string.h>

 

main ( )

{

float weight, volume;

int size, letters;

char name[40];

 

printf("Labas! Koks Jusu vardas? \n");

scanf( "%s", name);

printf("%s, kokia Jusu mase?\n", name);

scanf("%f", &weight);

size = sizeof( name);

letters = strlen(name);

volume = weight/DENSITY;

printf("Nuostabu, %s, Jusu turis %2.2f kubiniai metrai.\n", name, volume);

printf("Be to, Jusu vardas sudarytas iš %d raidžiu, \n", letters);

printf("ir jis kompiuterio atmintyje užima %d baitu.\n", size);

getch( );

return 0;

}

 

paleido.

 

Kai įrašau

 

#include <stdio.h>

main ( ) /* paprasčiausia programa*/

{

int num;

num = 1;

printf (“ Aš paprasta”);

printf (“skaičiavimo mašina. \n”);

printf (“Mano mėgstamiausias skaičius %d, todėl, kad tai pirmas skaičius. \n”, num);

return 0;

}

 

staigiai atsiranda ir dingsta juodas langas, tai kas čia per?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Padariau taip:

 

#include <stdio.h>

#include<windows.h>

 

 

main ( ) /* paprasciausia programa*/

{

int num;

num = 1;

printf (" Aš paprasta");

printf ("skaiciavimo mašina. \n");

printf ("Mano megstamiausias skaicius %d, todel, kad tai pirmas skaicius. \n", num);

 

system("PAUSE");

return 0;

}

 

ir veikia !

 

tiesa system("PAUSE"); kiek supratau tai prieš return 0; reikia dėti nes kitu atveju neveikia.

 

 

 

Pabandžiau ir su getchar(); taip pat prieš return 0; ir veikia, tiesa neišmeta eilutės "press any key" ;)

 

 

Dekui labai, dabar labai įdomu pasidarė :D Pamenu kai PHP pradėjau toks pats jausmas :D

 

 

Bet dabar daugybė klausimų kyla :D :D

 

tarkim kodėl RETURN 0; ? ką jis reiškia. Ir tie visi

#include <stdio.h>

#include<windows.h>

 

ką jie duoda? Tipo bibliotekos?

Bet kada žinot kokią biblioteką rašyti?

Nuoroda į pranešimą
Dalintis kituose puslapiuose
tarkim kodėl RETURN 0; ? ką jis reiškia. Ir tie visi

#include <stdio.h>

#include<windows.h>

 

ką jie duoda? Tipo bibliotekos?

Bet kada žinot kokią biblioteką rašyti?

return grazina kazkokios funkcijos reiksme. Return 0 main funkcijoje reiskia, kad funkcija ivygdyta normaliai ir jokiu klaidu nebuvo. Stai kitas pvz:

int sudetis(int x, int y){
int result = x + y;
return result; //stai cia kai iskviesim ta f-cija, ji sudes du skaicius( x ir y) ir grazins ju rezultata(toliau pvz))
}
int skaicius = sudetis(6, 4); //cia kintamasis "skaicius" gaus reiksme 10

 

#include <stdio.h> ir <windows.h> tai, kai zinai, bibliotekos. O includinti kazkokia biblioteka reikia tada, kai tau prireikia joje uzdeklaruotu funkciju.

 

Beje, kazkas rase kad reikia rasyt "void main" - kompiliatorius klaidos gal ir nesignalizuos, bet pagal c++ standartus pagrindines main f-cijos grazinama reiksme yra tipo int.

Redagavo Paul
Nuoroda į pranešimą
Dalintis kituose puslapiuose
return grazina kazkokios funkcijos reiksme. Return 0 main funkcijoje reiskia, kad funkcija ivygdyta normaliai ir jokiu klaidu nebuvo. Stai kitas pvz:

int sudetis(int x, int y){
int result = x + y;
return result; //stai cia kai iskviesim ta f-cija, ji sudes du skaicius( x ir y) ir grazins ju rezultata(toliau pvz))
}
int skaicius = sudetis(6, 4); //cia kintamasis "skaicius" gaus reiksme 10

 

#include <stdio.h> ir <windows.h> tai, kai zinai, bibliotekos. O includinti kazkokia biblioteka reikia tada, kai tau prireikia joje uzdeklaruotu funkciju.

 

Beje, kazkas rase kad reikia rasyt "void main" - kompiliatorius klaidos gal ir nesignalizuos, bet pagal c++ standartus pagrindines main f-cijos grazinama reiksme yra tipo int.

tai pagal nutylejima gal ir int reiksme, bet tu gali keist ja kaip nori. o void tai rasoma tada, kai nenorima, kad funkcija grazintu kokia nors reiksme, norima tik atlikti tam tikrus veiksmus.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Padariau taip:

 

#include <stdio.h>

#include<windows.h>

 

 

main ( ) /* paprasciausia programa*/

{

int num;

num = 1;

printf (" Aš paprasta");

printf ("skaiciavimo mašina. \n");

printf ("Mano megstamiausias skaicius %d, todel, kad tai pirmas skaicius. \n", num);

 

system("PAUSE");

return 0;

}

 

ir veikia !

 

tiesa system("PAUSE"); kiek supratau tai prieš return 0; reikia dėti nes kitu atveju neveikia.

 

 

 

Pabandžiau ir su getchar(); taip pat prieš return 0; ir veikia, tiesa neišmeta eilutės "press any key" ;)

 

 

Dekui labai, dabar labai įdomu pasidarė :D Pamenu kai PHP pradėjau toks pats jausmas :D

 

 

Bet dabar daugybė klausimų kyla :D :D

 

tarkim kodėl RETURN 0; ? ką jis reiškia. Ir tie visi

#include <stdio.h>

#include<windows.h>

 

ką jie duoda? Tipo bibliotekos?

Bet kada žinot kokią biblioteką rašyti?

 

siaip noriu maza pastebejima pasakyt, kad jei tau neismeta jokiu klaidu, reiskia programa veikia, tiesiog ji suveikia ir issijungia, nes neprasai jokio ivedimo, ji parodo rezultata ir issijungia labai greit. jei per konsole leistum, matytum, kad puikiai veikia ir issijungia. todel ir naudojamas pabaigoje getchar(), kad ji sustotu laukdama ivedimo, o tu pamatytum jos veikima. ta pati tu padarei ir su "pause", sustabdei, kad pamatytum ka isvede i ekrana neissijungus.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
tai pagal nutylejima gal ir int reiksme, bet tu gali keist ja kaip nori. o void tai rasoma tada, kai nenorima, kad funkcija grazintu kokia nors reiksme, norima tik atlikti tam tikrus veiksmus.

na taip, bet atlikti tam tikrus veiksmus galima ir kai main funkcija yra int tipo. Tada ji grazina atrodo windowsui 0(ar kita skaiciu), o tai reiskia, kad viskas vyko gerai.

Bet tiesa pasakius nesu del to tikras, tiesiog pats buvau kazkuriame forume parases "void main", tai man padare pastebejima, kad, kaip jau ir sakiau, pagal C++ standartus main funkcija turi buti int tipo :D ;)

Redagavo Paul
Nuoroda į pranešimą
Dalintis kituose puslapiuose

na va aiškiau pasidarė ;)

 

dar norėjau paklausti dėl kintamajam tekstinės reikšmės priskyrimo.

 

kiek suprantu tai kintamasis su tekstine reiksme nebus INT a; a=tekstas; tarkim.

 

atspauzdinant %s man rodos reikia rašyti? ir atvaizduoja iš kitos pusės - reikia dėti ?

 

ir ką reiškia tas scanf( "%s", &name); , kodėl jo reikia?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Pirma. Čia C kalbos source'ai kur pateikei.

Antra. Patarčiau geriau C++ pasimokyt. Man asmeniškai kažkaip ji labiau suprantamesnė buvo.

Trečia. Manau būtų paprasčiau persiskaityt viską tutorial'e, nes juk ir pačiam būtų geriau. Čia parašai, tai kol dar atrašo... Tokiu tempu labai ilgai reiks mokytis. (Jei tingi skaityt, tai jau kitas reikalas)

Ketvirta. Geriau būtų rašyt: int a = 0; o ne int a; a = 0; Juk paprasčiausiai trumpiau. Jei jau apie tas tavo tekstines reikšmes (kaip suprantu apie string), na tai C++ kalboj tarkim būtų: string zodis = "lol"; cout << zodis;

Penkta. Nepanašu, kad būtum PHP mokesis. Ypač turint galvoj tai, kad PHP ir buvo sukurta daugiausiai C pagrindu, taigi paveldėjo labai daug panašumų, nors tai ir visiškai skirtingos kalbos.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
dar norėjau paklausti dėl kintamajam tekstinės reikšmės priskyrimo.

 

kiek suprantu tai kintamasis su tekstine reiksme nebus INT a; a=tekstas; tarkim.

 

C kalboj (kitaip nei skriptinej tokioj kaip PhP) kintamasis turi apibrezta tipa, ir jo keisti negalima. Taigi, jei turi kintamaji A, kurio tipas INT, tai jokiu kitu reiksmiu kaip tik sveikuosius skaicius jam ir tegali priskirti. Tekstui saugoti naudojamas CHAR tipas, arba ivairios STL teikiamos klases, kaip kad string ir t.t.

 

atspauzdinant %s man rodos reikia rašyti? ir atvaizduoja iš kitos pusės - reikia dėti ?

 

1. taip, 2. tokios galimybes C kalboj ner (jei teisingai supratau tai, ko nori)

 

ir ką reiškia tas scanf( "%s", &name); , kodėl jo reikia?

 

1. scanf yra komanda skaityti duomenis is STDIN (standart input, t.y. klaviaturos ar kito nurodyto ivesties irenginio).

2. Sveikas atvykes i tiesioginio atminties valdymo pasauli. & "grazina" kintamojo adresa atmintyje - jo reikalauja scanf funkcija, kad zinotu kur irasyti nuskaitytus duomenis is STDIN.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
patikėk manim mokiausi :)

 

supranti sintaksę reikia perprasti.

labai paprasta parasyti

<?php $bla="reiksme"; echo $bla; ?> arba echo"bla"; o cia neiseina

 

perprasiu sintakse, o paskui lengviau mokintis :|

Nu, o čia neišeina parašyt to pačio ką parašei su PHP? :|

 

#include <iostream>

#include <conio.h>

 

using namespace std;

 

main (){

string bla = "reiksme";

cout << bla;

getch();

}

Redagavo Friday
Nuoroda į pranešimą
Dalintis kituose puslapiuose

#include <iostream>

#include <conio.h>

 

using namespace std;

 

main (){

 

int a=10,b=4;

int c=a-b;

int d;

 

 

if(c<0)

string d = "c maziau uz 0";

else

string d = "c daugiau uz 0";

 

cout << d;

 

 

 

 

 

getch();

}

 

 

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

 

ne nu vienos problemos su tekstu.

isveda kazkokius skaicius,

 

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

 

padariau:

 

 

 

 

#include <iostream>

#include <conio.h>

 

using namespace std;

 

main (){

 

int a=10,b=4;

int c=a-b;

 

 

 

if(c<0)

printf("%d maziau uz 0",c);

else

printf("%d daugiau uz 0",c);

 

 

 

 

 

 

 

getch();

}

 

 

neiseidavo nes vietoje %d rasydavau %s. O c tipas juk skaiciai .....

 

 

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

 

 

 

bet gerai, tarkim man nereikia atspauzdinti, tiesiog man reikia sulyginti, kad ateityje galeciau panaudoti ta kintamaji (d). Kaip tada man rasyti? (cia pirmu mano pateiktu atveju).

 

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

 

 

Ir dar klausimas. PHP tarkim if salyga "ireminta" i { } if() {} else {}, o tai leidzia if() { if() { $f="reiksme"; } } else { $d="reiksme"; }.

 

Cia kaip nors eina taip padaryti (na aisku, kad eina man tik cia neaisku :) ).

Redagavo orionas
Nuoroda į pranešimą
Dalintis kituose puslapiuose
#include <iostream>

#include <conio.h>

 

using namespace std;

 

main (){

 

int a=10,b=4;

int c=a-b;

int d; - pakeisk int i string

 

 

if(c<0)

string d = "c maziau uz 0";

else

string d = "c daugiau uz 0";

 

cout << d;

 

getch();

}

 

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

 

ne nu vienos problemos su tekstu.

isveda kazkokius skaicius,

Beje, su stringais jau seniai nedirbau, todel neprisimenu kokios bibliotekos reikia, kad juos nauduoti(string.h ar cstring.h). Paieskok internete.

 

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

 

padariau:

 

#include <iostream>

#include <conio.h>

 

using namespace std;

 

main (){

 

int a=10,b=4;

int c=a-b;

 

if(c<0)

printf("%d maziau uz 0",c);

else

printf("%d daugiau uz 0",c);

getch();

}

 

 

neiseidavo nes vietoje %d rasydavau %s. O c tipas juk skaiciai .....

%s - tekstas, %d arba %i - sveikieji skaiciai: http://www.cplusplus.com/reference/clibrar...dio/printf.html

 

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

 

 

Ir dar klausimas. PHP tarkim if salyga "ireminta" i { } if() {} else {}, o tai leidzia if() { if() { $f="reiksme"; } } else { $d="reiksme"; }.

 

Cia kaip nors eina taip padaryti (na aisku, kad eina man tik cia neaisku :) ).

C++ kalboje su tais blokais yra taip pat kaip ir php. Jei po if'o rasai tik viena instrukcija, gali {} skliausteliu nerasyti, jei daugiau tada reikia rasyt

Redagavo Paul
Nuoroda į pranešimą
Dalintis kituose puslapiuose

#include <iostream>

#include <conio.h>

#include<string.h>

 

using namespace std;

 

main (){

 

int b,i;

string a;

string c;

 

cout<<"Ivesk savo varda\n";

cin >> a;

cout << "Ivesk savo amziu\n";

cin >> b;

cout << "Ivesk savo gyvenamaji adresa\n";

cin >> c;

 

for(i = 0; i < 4; i ++)

{

cout << "\n";

}

 

printf("------------------------------------\n");

printf("DUOMENYS APIE TAVE:\n");

printf("------------------------------------\n");

cout << "Vardas:" << a << "\n";

cout << "Amzius:" << b << "\n";

cout << "Adresas" << c << "\n";

printf("------------------------------------\n");

 

 

getch();

}

 

 

 

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

Taigi ivedus adresa su tarpu atspauzdinamas zodis tik iki tarpo,

kodel taip yra?

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

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Daryk tarkim taip:

 

string vardas, pavarde;

cout << "Ivesk savo varda ir pavarde";

cin >> vardas >> pavarde;

cout << "Tavo vardas: " << vardas << " tavo pavarde: " << pavarde;

 

Jei dėsi tarpą, tai reikšmė įvesta po tarpo bus priskirta kitam kintamajam. Šiuo atveju kintamajam pavarde.

Galima rašyt nors ir:

 

string vardas, pavarde;

int amzius, telefonas;

cout << "Ivesk atskirta tarpais savo varda, pavarde, amziu ir telefona.";

cin >> vardas >> pavarde >> amzius >> telefonas;

cout << "Tavo vardas: " << vardas << " tavo pavarde: " << pavarde << " tavo amzius: " << amzius << " tavo telefonas: " << telefonas;

 

Gali prie cin kiek nori kintamųjų prirašyt. Supratai ką norėjau pasakyt?

 

O jei tarkim su adresu, tai tada reikėtų nurodyt formatą. Tarkim:

 

string gatve;

int namo_nr, buto_nr;

cout << "Ivesk adresa tokiu formatu [gatve namo_nr buto_nr]";

cin >> gatve >> namo_nr >> buto_nr;

cout << "Tavo adresas: " << gatve << " " << namo_nr << " - " << buto_nr;

Redagavo Friday
Nuoroda į pranešimą
Dalintis kituose puslapiuose

cia kaip pavyzdys su ta gatve, bet tarkim bus:

"tavo aprasymas:"

 

tai kiekvieno zodzio vis kitam kintamajam tai nepateiksiu :|

 

 

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

 

padarau

 

int a;

string b;

 

kai darau if() {} su a veikia, o su b ne :)

 

if(a == NULL) || (b == NULL) { }

 

cia tipas netinka ar kaip? :|

 

 

 

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

 

 

#include <iostream.h>

#include <string.h>

#include <conio.h>

#include <stdio.h>

 

using namespace std;

 

 

main( )

{

 

int n, a, i;

 

string v,pavarde, gatve, pastas;

 

 

cout << "vardas:\n";

cin >> v;

cout << "pavarde:\n";

cin >> pavarde;

cout << "amzius:\n";

cin >> a;

cout << "gatve:\n";

cin >> gatve;

cout << "namo numeris:\n";

cin >> n;

cout << "el.pastas:\n";

cin >> pastas;

 

for(i = 0; i < 4; i ++)

{

cout << "\n";

}

 

cout << "--------------------------------\n";

cout << "TAVO DUOMENYS:\n";

cout << "--------------------------------\n";

cout << "vardas:" << v << "\n";

cout << "pavarde:" << pavarde << "\n";

cout << "amzius:" << a << "\n";

cout << "adresas:" << gatve << n << "\n";

cout << "el.pastas:" << pastas << "\n";

cout << "--------------------------------\n";

 

 

FILE *fi;

fi=fopen("test.dat","a");

fprintf(fi,"%d", a);

fclose(fi);

 

 

getch();

}

 

 

 

kodel neleidzia irasyti teksto?

 

padarau %s pavarde ir klaida ismeta.

Redagavo orionas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Žmogau, tu išvis susipainiojai... Pusė tavo source'o su C kalba, pusė su C++... ;) O jei kaip sakei dėl to aprašymo, tai pagalvok pirma, niekas nedarys rimtos programos kurioj reikės aprašymo konsolėj. Kai darai programos dizainą ten visai kitaip. Ten jau nebereikia tų cin ir cout. Aišku manau ir konsolėj galima kažkaip, bet tingiu galvot. Ir šiaip, šitų kalbų žinios pas mane nedidelės. Tutorial'us paskaitinėjau tik, kad įgaut bendrų žinių apie šias kalbas.

 

#include <iostream.h>

#include <stdio.h>

 

Tiesiog juokinga. :) Viena biblioteka C++ kalbos pagrindinė, kita C kalbos pagrindinė. :) :) Pasirink pagaliau ką mokaisi, C ar C++, nes tai dvi skirtingos kalbos. Nors kaip vienas rimtas programuotojas pasakė: "išmok vieną iš šitų kalbų, perprask skirtumą tarp tos, kurią išmokai ir kitos, ir mokėsi abi".

Redagavo Friday
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...