Pereiti prie turinio

C++ programavimo uzdaviniai


Rekomenduojami pranešimai

using System;

namespace Patiekalai
{
   class Program
   {
       static void Main(string[] args)
       {
           int t1, n = 0, t, k, time=0;
           t1 = int.Parse(Console.ReadLine());
           k = int.Parse(Console.ReadLine());
           t = int.Parse(Console.ReadLine());

           while (t > time+k*n)
           {
               time += t1 + n * k;
               n++;
           }


           Console.WriteLine(n);

       }
   }
}

 

kazkas tokio

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kaip reiketu atlikti sia uzduoti? Pats esu padares tiek ir nieko gero man neisveda...

 

#include <iostream>

using namespace std;

int main(){
int t1, t, k, n = 0;
cout << "Kiek laiko mama gamino pirmaji patiekala: "; cin >> t1;
cout << "Iveskite kiek ilgiau gamins kitus patiekalus: "; cin >> k;
cout << "Po kiek minuciu grys vaikai: "; cin >> t;

while(t1 < t){
  n++;
  t = t - t1;
  t1 = t1 + k;
}
cout << "Mama suspes pagaminti " << n << " patiekalus" << endl;

}

 

Mano parašyta programa veikia kaip turi veikti.

Skaicius n yra neįvedamas, bet suskaičiuojamas. Pamiršai padaryti įvestį kintamajam k(visame kode jis neturejo reikšmes. Taip pat while ciklo skyrybos nemokejai.

 

Beje norėjau paklausti kur mokais programavimo?

Redagavo apap555
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Is karto kitas klasimas. Nelabai suprantu C++ kalboje masyvu. Suvokiu, kad masyvas savyje talpina kazkoki kieki skaiciu. Bet kuriuo atveju uzduotis tokia:

Pats esu padares tiek ir man meta klaida (suprantu, kad kazkas negerai su sintakse, internete ieskojau, gavojau, kad kokios nors bibliotekos neivedziau, bet jokiu kitu biblioteku neradau...) kas gali buti blogai? Gal visai " ne i tema" darau? :/

post-80785-0-68355500-1370694433_thumb.jpg

post-80785-0-70303900-1370694442_thumb.jpg

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Pradziai tai reiketu ta "viso" apsibrezti ir kazkokia reiksme priskirti. Taip pat naudoti kintamojo dydzio masyvus, kas yra bloga praktika. Toliau issiaiskink ar for naudoji ar while, nes tas hibridas tai irgi klaida generuoja.

Redagavo Torafter
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Po ilgu klajoniu internete padariau toki dalyka. Torafter, nemaciau, kad parasei, aciu. Kaip suprasti prisiskirti kazkokia reiksme? Kiek suprantu tas 999 tai paprasciausiai padaro 999 vietas skaiciamas masyve ar taip? Ir kas toliau negerai pas mene? Ar galima su klaviatura "ivesti masyva" kaip as padairiau 12 eiluteje? Aciu uz atsakymus.

post-80785-0-00037300-1370697401_thumb.jpg

Redagavo mendinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nu gerai, truputi paaiskinsiu:

 

  • Vietoje to "const Cviso = 999" geriau pasirašyk prie po include "#define Cviso 999"
  • "cin >> A[Cviso]" į masyvą nuskaito narį su indeksu Cviso (nu tai šiuo atvėju 999), ištikrųjų tu ten nori nuskaityti n, kad žinotum kiek karto suksi ciklą.
  • pascalyje masyvai idexuojasi nuo [1;n], visoje c šeimynoje indexuojama yra nuo 0, t.y. [0;n-1]. Todėl tu norėtum for daryti tokiu principu :
    for(int i = 0;i<n;i++);


  • Dabar, kai žinai kiek kartų suksi ciklą, ir turi jau normalų ciklą pasirašęs, nuskaitymą daryk jo viduje (
    for(;;){cin>>A[i]}


 

Jeigu norėsi kad programą kas parašytų, tai parašyk.

Redagavo Torafter
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nu gerai, truputi paaiskinsiu:

 

  • Vietoje to "const Cviso = 999" geriau pasirašyk prie po include "#define Cviso 999"
  • "cin >> A[Cviso]" į masyvą nuskaito narį su indeksu Cviso (nu tai šiuo atvėju 999), ištikrųjų tu ten nori nuskaityti n, kad žinotum kiek karto suksi ciklą.
  • pascalyje masyvai idexuojasi nuo [1;n], visoje c šeimynoje indexuojama yra nuo 0, t.y. [0;n-1]. Todėl tu norėtum for daryti tokiu principu :
    for(int i = 0;i<n;i++);


  • Dabar, kai žinai kiek kartų suksi ciklą, ir turi jau normalų ciklą pasirašęs, nuskaitymą daryk jo viduje (
    for(;;){cin>>A[i]}


 

Jeigu norėsi kad programą kas parašytų, tai parašyk.

 

Labai aciu. Noriu paklausti tas "#define Cviso 999" ta cia kaip MAX reiksme masyve taip? (masyvo numeriai yra nuo 0 iki 999) Dar del to nusiskaitymo cin>>A[Cviso] cikle kaip tai suprasti? I savo koda parasiau klaidos nemeta, bet kaip man ivesti duomenis su klaviatura?

12 eilutej as bandau nusiskaityti pagautu zuveliu skaiciu (kiek kartu reiks sukti cikla) o kaip tai padaryti for cikle? Juk negalima rasyti tiesiog cout << ".....";

Redagavo mendinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nu istikruju tai masyvo cia net nereik

#include <iostream>
using namespace std;

int main() {
int n, skani, kiekis = 0;
double svoris = 0, tmp;
cin >> n;
for(int i=0;i<n;i++) 
{
	cin >> tmp;
	cin >> skani;
	if((tmp>=1) && (skani==1))
	{
		svoris+=tmp;
		kiekis++;
	}
}

}

 

Jeigu vistik nori su masyvu, tai:

 

#include <iostream>
#define max 100
using namespace std;


int main() {
int n,  kiekis = 0;
       double svoris = 0;
double zuvys[max][2];
cin >> n;

//nusiskaitai zuvis
for(int i=0;i<n;i++) 
{
	cin >> zuvys[i][0];
	cin >> zuvys[i][1];
}

//praiteruoji masyva ieskodamas ko tau reikia
for(int i=0;i<n;i++) 
{
	if((zuvys[i][0]>=1)&&(zuvys[i][1]==1)) 
	{
		kiekis++;
		svoris+=zuvys[i][0];
	}
}


}

 

nu bet su masyvu ilgiau ir siaip, prasciau.

Redagavo Torafter
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aciu, bet yra klausimu.

cin >> zuvys[i][0];
cin >> zuvys[i][1];

nelabai suprantu, kodel zuvys [0] ir zuvys [1]? kodel masyvas eina ne iki 6? pvz zuvys [6]? Ir dar bradzioje

double zuvys[max][2];

kaip cia suprasti?

Redagavo mendinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aciu, bet yra klausimu.

cin >> zuvys[i][0];
cin >> zuvys[i][1];

nelabai suprantu, kodel zuvys [0] ir zuvys [1]? kodel masyvas eina ne iki 6? pvz zuvys [6]? Ir dar bradzioje

double zuvys[max][2];

kaip cia suprasti?

 

int zuvys[pirma dimensija][antra dimensija]. Taip sakant cia yra dvimatis masyvas.

 

Gali isivaizduoti kaip Nx2 matrica. I pirma stulpeli sudedami svoriai, o i antra stulpeli tas skonio faktorius. Aisku galima ir per 2 masyvus butu daryti, bet taip paprasciau.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

int zuvys[pirma dimensija][antra dimensija]. Taip sakant cia yra dvimatis masyvas.

 

Gali isivaizduoti kaip Nx2 matrica. I pirma stulpeli sudedami svoriai, o i antra stulpeli tas skonio faktorius. Aisku galima ir per 2 masyvus butu daryti, bet taip paprasciau.

Oho super! Labai Tau aciu! P.S. Gal Tu pats programuotojas? ;)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

na taip

Aisku, o klaidos nepadarei paskutineje eiluteje? Kur

svoris+=zuvys[i][0];

, neturetu buti

svoris+=zuvys[i][1];

? Beje dar paklausiu, kur

double zuvys[max][2];

gal gali paaiskinti kodel cia ne integer o double kintamasisi? Taip pat kodel [2]? Ir dar (nenoriu su programuotoju gincytis, bet kur

for(int i=0;i<n;i++) 
       cin >> zuvys[i][0];
       cin >> zuvys[i][1];

, tai i iraso ne eiles numeri? pvz 1,2,3,4,.....? Kazkaip su tais svoriais neaiskiai cia man. Ir dar nelabai aisku, kodel

if((zuvys[i][0]>=1)

skaiciuojasi prie bendros sumos ar neturetu buti

if((zuvys[i][1]>=1) &&((zuvys[i][1]==1)

, nes salyga sako, kad jis ima tik skanias (vadinasi zuvys[0] mums netinka ir kuriu svoris yra daugiau uz 1).

Redagavo mendinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aisku, o klaidos nepadarei paskutineje eiluteje? Kur

svoris+=zuvys[i][0];

, neturetu buti

svoris+=zuvys[i][1];

?

stulepliai ten atrodo taip

 

X0 1

0

1

2

3

4

5

6

...

 

Tai pirmame stulpelyje (indexas jo yra 0) yra saugomas svoris, o antrajame (indexas 1) yra saugomas jos skanumas, tai viskas lyg ir tvarkoj cia.

 

Beje dar paklausiu, kur
double zuvys[max][2];

gal gali paaiskinti kodel cia ne integer o double kintamasisi?

int kaip pavyzdi paroziau. Konkreciai siuo atveju tai taip, ten double turetu buti.
Taip pat kodel [2]?

Nes masyve reikia saugoti 2 reiksmes, t.y. svori ir skanuma, todel kai yra [2], "kiekvienas indexiukas saugo 2 skaicius", zuyvs[x][0] ir zuvys[x][1].

Ir dar (nenoriu su programuotoju gincytis, bet kur

for(int i=0;i<n;i++) 
       cin >> zuvys[i][0];
       cin >> zuvys[i][1];

, tai i iraso ne eiles numeri? pvz 1,2,3,4,.....?

Nu cia dvi dimensijos, tai cia labai poziurio reikalas kaip tu i tai paziuresi, gali tai matyti kaip:

 

X0 1

0

1

2

3

4

5

6

 

arba

 

X0 1 2 3 4 5 6

0

1

Kazkaip su tais svoriais neaiskiai cia man. Ir dar nelabai aisku, kodel
if((zuvys[i][0]>=1)

skaiciuojasi prie bendros sumos ar neturetu buti

if((zuvys[i][1]>=1) &&((zuvys[i][1]==1)

, nes salyga sako, kad jis ima tik skanias (vadinasi zuvys[0] mums netinka ir kuriu svoris yra daugiau uz 1).

 

Viska apibendrinant, tai duomenu matrica "zuvys" su pateiktu pavyzdiu adrodo taip:

 


   0     1
0  1.5    1 
1  2.1    1
2  0.5    0
3  3.5    1 
4  0.5    1
5  4.12   0

 

Tai pazydziui kreipdamiesi zuvys[3][1] , mes imame reiksme esancioje eiluteje su indexu 3 ir stulpelyje su indexu 1, tai gauname "1";

pvz2 imadmi zuvys[4][0], mes paimame reiksme esancia eiluteje indexu 4, stulpelyje indexu 0, ir tai yra "0.5"

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nereikia jam sukti galvos su dvimačiais masyvais ir visokiomis matricomis :D . Ir iš vis, tai turbūt nėra mokyklinės programos dalis. Tad geriau būtų sukurti du atskirus masyvus. Arba geriausia jų nenaudoti iš vis :D .

 

Kad man atrodo dvimaciai dar mokyklinei daliai priskiriami.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jau pirma dalis uzdavinio kliuna. Nezinau kodo nerasykit kazkaip pats turiu sugalvoti, bet kurioj vietoj cia blogai? Buvau padares, kad tuos du if tikrintu virs cout, bet taip blogai, nes tada 6 atsakymus meta (juk pats ciklas pereina ir per juos).

post-80785-0-50325200-1370722950_thumb.jpg

Redagavo mendinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jau pirma dalis uzdavinio kliuna. Nezinau kodo nerasykit kazkaip pats turiu sugalvoti, bet kurioj vietoj cia blogai?

 

Pirma karta i yra deklaruojamas isoriniame cikle. Tada antra karta jis yra "perdeklaruojamas" (re-declared) vidiniame for. Po jo perdeklaravimo, isorinis i jau nebeegzistuoja, o vidinio i galiojimo riba, kadangi jis buvo declaruotas for inicialiazacijos statemente, yra tik to vidinio for veikimo riba. Viso to pasekoje po vidinio for, tokio kintamojo kaip i nebeturi.

 

Moralas - nenaudok tokiu paciu kintamuju vardu keliu lygiu ciklam sukti.

 

Ir siaip, kai turi suki for fore, tai istikruju tu darai n^2 iteraciju, o tau realiai reikia n*2. Edit: taip islygiuota kad nesupratau.

 

Tu ta "i" referencini uz jo galiojimo ribu. Jis buvo inicializuotas for inicializacijoje, tai jo galiojimo riba yra tik tas for.

Redagavo Torafter
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Pirma karta i yra deklaruojamas isoriniame cikle. Tada antra karta jis yra "perdeklaruojamas" (re-declared) vidiniame for. Po jo perdeklaravimo, isorinis i jau nebeegzistuoja, o vidinio i galiojimo riba, kadangi jis buvo declaruotas for inicialiazacijos statemente, yra tik to vidinio for veikimo riba. Viso to pasekoje po vidinio for, tokio kintamojo kaip i nebeturi.

 

Moralas - nenaudok tokiu paciu kintamuju vardu keliu lygiu ciklam sukti.

 

Ir siaip, kai turi suki for fore, tai istikruju tu darai n^2 iteraciju, o tau realiai reikia n*2. Edit: taip islygiuota kad nesupratau.

 

Tu ta "i" referencini uz jo galiojimo ribu. Jis buvo inicializuotas for inicializacijoje, tai jo galiojimo riba yra tik tas for.

Tada butu galima uz to cout vel for cikla sukti?

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.

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