Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki, man reikia padaryti tokį uždavinį su ciklu while ir for:

Pirmąją dieną Karolina perskaitė p puslapių, o kiekvieną kitą dieną perskaitydavo m puslapių

daugiau negu prieš tai buvusią. Parašykite programą, skaičiuojančią, kiek puslapių pv perskaitė

Karolina per n dienų.

Pasitikrinkite: kai n = 3, p = 17, m = 3, tuomet kompiuterio ekrane turi būti rodoma: Per 3 dienas

Karolina perskaitė 60 puslapių.

 

Ciklas for pavyko:

{
int p, m, n, pv, i;
cout <<  "Kiek puslapiu Karolina perskaite pirmaja diena? "; cin >> p;
cout << "Keliais puslapiais daugiau ji perskaitydavo kiekviena kita diena? "; cin >> m;
cout <<  "Kelios dienos praejo? "; cin >> n;
pv = 0;
for (i = 1; i <= n; i++) {
pv = pv + p;
p = p + m;
}
cout << " Per " << n <<" dienu Karolina perskaite " << pv <<  " puslapiu. " << endl;
return 0;
}

Deja, jau kelias dienas suku galvą kaip pakeisti į while ciklą, bet niekaip nepavyksta. Galbūt kas nors galėtų padėti?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

int i=1;

 

while(i<=n)

{

pv+=p;

p+=m;

i++;

}

 

taip tipo reikėjo tau?

 

{

int p, m, n, pv, i;

cout << "Kiek puslapiu Karolina perskaite pirmaja diena? "; cin >> p;

cout << "Keliais puslapiais daugiau ji perskaitydavo kiekviena kita diena? "; cin >> m;

cout << "Kelios dienos praejo? "; cin >> n;

pv = 0;

 

int i=1;

 

while(i<=n)

{

pv+=p;

p+=m;

i++;

}

 

cout << " Per " << n <<" dienu Karolina perskaite " << pv << " puslapiu. " << endl;

return 0;

}

Redagavo ReborN
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Taip, nebuvau nurodęs, jog pv=0.

 

Beje, nenoriu įkyrėti, bet nesuprantu kaip tokį uždavinį galima užrašyt:

Gydytojas per dieną priima n pacientų. Pirmas pacientas gydytojo kabinete praleido m1 minučių, antras – m2 ir t.t. Parenkite programą, skaičiuojančią, kiek minučių m gydytojas vidutiniškai skiria vienam pacientui ir kelių pacientų k vizitai buvo ilgesni kaip 20 minučių.

Pasitikrinkite: kai n = 3 ir pirmas pacientas užtruko 18 minučių, o antras ir trečias po 10 minučių,

tuomet v = 12.7, k = 0.

 

Jei norėčiau padaryti, jog n nebe 3, o 4, tuomet man būtinai reikėtų pridėti ir įrašyti m4? Ar įmanoma šią programą padaryti teisingą visuomet, nesvarbu kokį n pasirinkčiau?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Taip, nebuvau nurodęs, jog pv=0.

 

Beje, nenoriu įkyrėti, bet nesuprantu kaip tokį uždavinį galima užrašyt:

Gydytojas per dieną priima n pacientų. Pirmas pacientas gydytojo kabinete praleido m1 minučių, antras – m2 ir t.t. Parenkite programą, skaičiuojančią, kiek minučių m gydytojas vidutiniškai skiria vienam pacientui ir kelių pacientų k vizitai buvo ilgesni kaip 20 minučių.

Pasitikrinkite: kai n = 3 ir pirmas pacientas užtruko 18 minučių, o antras ir trečias po 10 minučių,

tuomet v = 12.7, k = 0.

 

Jei norėčiau padaryti, jog n nebe 3, o 4, tuomet man būtinai reikėtų pridėti ir įrašyti m4? Ar įmanoma šią programą padaryti teisingą visuomet, nesvarbu kokį n pasirinkčiau?

 

nereikia kurti m1, m2 ir t.t. kintamųjų.

Tau reikia tik leisti for ciklą nuo 1 iki n, nuskaityti minutes į kokį nors kintamąjį (sakykim x), tada patikrinti, ar x>20, jei taip - k++. tada x pridėti prie kokio nors kintamojo (sakykim dirboViso), kuris nurodys, kiek laiko gydytojas dirbo iš viso.

o tada jau v=dirboViso/n, ir programa baigta

Nuoroda į pranešimą
Dalintis kituose puslapiuose

nereikia kurti m1, m2 ir t.t. kintamųjų.

Tau reikia tik leisti for ciklą nuo 1 iki n, nuskaityti minutes į kokį nors kintamąjį (sakykim x), tada patikrinti, ar x>20, jei taip - k++. tada x pridėti prie kokio nors kintamojo (sakykim dirboViso), kuris nurodys, kiek laiko gydytojas dirbo iš viso.

o tada jau v=dirboViso/n, ir programa baigta

Ačiū, bet man būtina šitą padaryti su ciklu while, o aš ciklo while visai nemoku, man tik su for ir išeina. Be to, juk parašyta, kad man reikia parašyti, jog pirmas užtruko 18, o kiti du 10, todėl tikriausiai turiu rašyti m1,m2 ir t.t Aš negaliu m nustatyti tik vieno kintamojo, nes turi būti keli tam, kad gaučiau darbo vidurkį.

O galbūt aš ne taip suprantu :D

Redagavo Danieliuss
Nuoroda į pranešimą
Dalintis kituose puslapiuose
Beje, nenoriu įkyrėti, bet nesuprantu kaip tokį uždavinį galima užrašyt:

Gydytojas per dieną priima n pacientų. Pirmas pacientas gydytojo kabinete praleido m1 minučių, antras – m2 ir t.t. Parenkite programą, skaičiuojančią, kiek minučių m gydytojas vidutiniškai skiria vienam pacientui ir kelių pacientų k vizitai buvo ilgesni kaip 20 minučių.

Pasitikrinkite: kai n = 3 ir pirmas pacientas užtruko 18 minučių, o antras ir trečias po 10 minučių,

tuomet v = 12.7, k = 0.

 

Jei norėčiau padaryti, jog n nebe 3, o 4, tuomet man būtinai reikėtų pridėti ir įrašyti m4? Ar įmanoma šią programą padaryti teisingą visuomet, nesvarbu kokį n pasirinkčiau?

 

Tau nereikia niekur naudoti kiekvieno gauto duomens todėl koks tikslas nuskaityti į atskirus kintamuosius? Gali nebent padaryti, kad rodytų kiekvienam nuskaitomam kintamąjam skirtingą pavadinimą, bet čia ir for cikle paprastai gali sužaisti lygiai taip pat kaip aš. Kai reikės naudoti taip kaip tu sakai, tuomet bus masyvai, o pakolkas, pagal užduotį, nemanau, kad mokotes tokius, pateikiu žemiau atsakymą, parašiau su while ciklu, for ciklas šioje vietoje būtų patogesnis, bet sakei nemoki while, tai gal suprasi. for cikle nereiktų n-- ir nereiktų 'vizitai', užtektų vidurki dalinti iš 'vizituSuma' ir 'n', kadangi for cikle n kintamasis nekeičiamasis, o while cikle keičiamas, kadangi kitaip sąlyga neužsibaigtų ir taptų begalinis ciklas. Galėjau naudoti while(vizitai>0) ir gale vizitai--, bet manau labiau suprasi su n. Jei kas neaišku parašyk į AŽ paaiškinsiu. Susitvarkyk savo kintamuojų pavadinimus pagal sąlygą. Netikrinau ar programa veikia, kadangi iš rankos rašiau, o compilerio neturiu

 

{

int n,m,vizitai;

int pacientoNumeris=0, vizituSuma=0, ilgesniVizitai=0;

 

cout << "Kiek pacientu buvo priimta per diena? "; cin >> n;

vizitai=n;

 

while(n>0)

{

pacientoNumeris++;

 

cout << "Kiek uztruko paciento m" << pacientoNumeris << " vizitas? "; cin >> m;

vizituSuma+=m;

 

if(m>20)

{

ilgesniVizitai++;

}

 

n--;

}

int vidurkis=0;

vidurkis=vizituSuma/vizitai;

 

cout << "Vidutiniskai gydytojas praleidzia minuciu: "<<vidurkis<<endl;

cout << "Pacientu, kuriu vizitai buvo ilgesni negu 20 minuciu: "<<ilgesniVizitai<<endl;

 

return 0;

}

Redagavo ReborN
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dabar pagalvojau, o būtų galima tokio tipo uždavinį išspręsti tik su ciklu while, be ciklo if?

 

if yra sąlyga ne ciklas. Siūlau pasižiūrėti C++ pagrindus: http://programavimopamokos.net/index.php?vaizdas=CPP&puslapis=1, bus lengviau sprendžiant uždavinius.

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ą...