Pereiti prie turinio

Rekomenduojami pranešimai

Šviesoforas veikia pagal tokį algoritmą: kiekvienos valandos pirmąsias tris minutes dega žalia šviesa, po to

dvi minutes – raudona, po to vėl tris minutes žalia ir t. t. Žinoma, kiek minučių t (t – sveikasis skaičius)

praėjo nuo valandos pradžios. Parašykite programą, kuri nustatytų, kokia šviesa dega.

Pasitikrinkite. Kai t = 12, turi būti spausdinama: Dega žalia šviesa. Kai t = 13, turi būti spausdinama:

Dega žalia šviesa, tuoj užsidegs raudona. Kai t = 5, turi būti spausdinama:

Dega raudona šviesa, tuoj užsidegs žalia.

 

Sveiki. Kaip parašyt programą?:) Būtų gerai su "//" paaiškinimais

Nuoroda į pranešimą
Dalintis kituose puslapiuose

# include <iostream>

using namespace std;

int main()

{ int t;

cout << "Yveskite laika (t) kiek praejo nuo valandos pradzios minuciu: ";

cin >> t;

if (t == 1 || t == 2 || t == 6 || t == 7 || t == 11 || t == 12 || t == 16 || t == 17 || t == 21 || t == 22 || t == 26 || t == 27 || t == 31 || t == 32 || t == 36 || t == 37 || t == 41 || t == 42 || t == 46 || t == 47 || t == 51 || t == 52 || t == 56 || t == 57 )

{

cout << "Kai nuo valandos pradzios praejo " << t << " minuciu tai dabar dega zalia sviesa. ";

}

if (t == 3 || t == 8 || t == 13 || t == 18 || t == 23 || t == 28 || t == 33 || t == 38 || t == 43 || t == 48 || t == 53 || t == 58)

{

cout << "Kai nuo valandos pradzios praejo " << t << " minuciu tai dabar dega zalia sviesa, tuoj uzsidegs raudona sviesa. ";

}

 

if (t == 4 || t == 9 || t == 14 || t == 19 || t == 24 || t == 29 || t == 34 || t == 39 || t == 44 || t == 49 || t == 54 || t == 59 )

{

cout << "Kai nuo valandos pradzios praejo " << t << " minuciu tai dabar dega raudona sviesa. ";

}

if (t == 5 || t == 10 || t == 15 || t == 20 || t == 25 || t == 30 || t == 35 || t == 40 || t == 45 || t == 50 || t == 55 )

{

cout << "Kai nuo valandos pradzios praejo " << t << " minuciu tai dabar dega zalia raudona, tuoj uzsidegs zalia sviesa. ";

}

return 0;

}

 

 

 

 

 

 

 

 

P.S. Dariau labai elementariai, skaiciavimus atlikau "mintyse", visa programa veikia :)

Redagavo kamekadzeee
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Reikia tik pastebėti, kad ciklas kartojasi kas 5 min.

 

int t = {kažkoks skaičius};
t %= 5;
string s;
switch (t) {
case 0:
   s = "Dega raudona, tuoj užsidegs žalia";
   break;
case 1:
case 2:
   s = "Dega žalia";
   break;
case 3:
   s = "Dega žalia, tuoj užsidegs raudona";
   break;
case 4:
   s = "Dega raudona";
   break;
}
cout << s << endl;

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 3 savaičių...

kadangi uždavinys iš 9- 10 klasės vadovėlio, todėl parašiau taip, kaip parašytų 9-10 klasės mokinys.

 

#include <iostream>

using namespace std;

int main()
{   int t, liek;
   cout << "Hello world!" << endl;
   cout << "iveskite laika";
   cin >> t;
   cout << endl;
   liek=t%5;
   if (liek == 1 || liek == 2 )
       cout << "dega zalia" << endl;
   else if (liek == 3)
       cout << "dega zalia, tuoj degs raudona" << endl;
   else if (liek ==4 || liek ==0) cout << "dega raudona, tuoj degs zalia" << endl;
   return 0;
}

Redagavo Peperis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kadangi rimtai pradedu ruoštis savarankiškai IT VBE, tai iškilus problemoms bandysiu pagalbos ieškoti čia.

 

Uždavinio sąlyga:

 

Osvaldas nori savaitę slidinėti viename iš trijų kurortų. Kurorte A slidinėjimo sezonas prasideda lapkričio, o

baigiasi balandžio mėnesį, bet dėl lavinų pavojaus visą sausio mėnesį slidinėti negalima. Kurorte B slidinėti

galima nuo gruodžio pradžios iki kovo pabaigos, tačiau vasario 1–15 dienomis čia vyksta varžybos. Kurorte

C slidininkai laukiami nuo lapkričio pradžios iki gegužės pabaigos. Poilsio kaina kiekviename kurorte,

įtraukus ir kelionės išlaidas, atitinkamai yra k1, k2, k3 litų. Žinodami atostogų pradžios datą (mėnesį m ir

dieną d), nustatykite, ar Osvaldas galės atostogauti bent viename kurorte. Jeigu taip, tai kurį kurortą jam

rinktis, kad išleistų mažiausiai pinigų?

Pasitikrinkite. Kai m = 2, d = 5, k1 = 500, k2 = 520,

 

Mano nevykęs kodas:

 

int main()
{  int m, d, k1=500, k2=520, k3= 499;
   cout << "iveskite menesi ir diena";
   cin >> m;
   cin >>d;
   if (m>=11 || m<=5 )
       cout << "Osvaldas gales slidineti kurorte C. Jam reikes " <<k3 <<"LT." <<endl;
        else if (m=2 && d>=1 && d<=15)
           cout << "Osvaldas gales slidineti kurorte A. Jam reikes " << k1 << "LT." << endl;
           else cout << "Osvaldas gales slidinteti kurorte B. Jam reikes " << k2 << "LT." <<endl;

   return 0;
}

 

 

 

Taigi programa veikia, bet netobulai. Kaip suprantu k reikšmes reikia įvesti ir reikia algoritmo kuris ieškotų mažiausios reikšmės. Prašau, pataisykit, kas blogai ir užveskit ant kelio :)

Redagavo Peperis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kadangi rimtai pradedu ruoštis savarankiškai IT VBE, tai iškilus problemoms bandysiu pagalbos ieškoti čia.

 

Uždavinio sąlyga:

 

Osvaldas nori savaitę slidinėti viename iš trijų kurortų. Kurorte A slidinėjimo sezonas prasideda lapkričio, o

baigiasi balandžio mėnesį, bet dėl lavinų pavojaus visą sausio mėnesį slidinėti negalima. Kurorte B slidinėti

galima nuo gruodžio pradžios iki kovo pabaigos, tačiau vasario 1–15 dienomis čia vyksta varžybos. Kurorte

C slidininkai laukiami nuo lapkričio pradžios iki gegužės pabaigos. Poilsio kaina kiekviename kurorte,

įtraukus ir kelionės išlaidas, atitinkamai yra k1, k2, k3 litų. Žinodami atostogų pradžios datą (mėnesį m ir

dieną d), nustatykite, ar Osvaldas galės atostogauti bent viename kurorte. Jeigu taip, tai kurį kurortą jam

rinktis, kad išleistų mažiausiai pinigų?

Pasitikrinkite. Kai m = 2, d = 5, k1 = 500, k2 = 520,

 

Mano nevykęs kodas:

 

int main()
{  int m, d, k1=500, k2=520, k3= 499;
   cout << "iveskite menesi ir diena";
   cin >> m;
   cin >>d;
   if (m>=11 || m<=5 );
       cout << "Osvaldas gales slidineti kurorte C. Jam reikes " <<k3 <<"LT." <<endl;
		else if (m=2 && d>=1 && d<=15);
           cout << "Osvaldas gales slidineti kurorte A. Jam reikes " << k1 << "LT." << endl;
           else cout << "Osvaldas gales slidinteti kurorte B. Jam reikes " << k2 << "LT." <<endl;

   return 0;
}

 

Tačiau: ...

 

||=== Build: Debug in das (compiler: Microsoft Visual C++ 2005/2008) ===|

main.cpp|11|warning C4390: ';' : empty controlled statement found; is this the intent?|

main.cpp|12|error C2181: illegal else without matching if|

main.cpp|13|warning C4390: ';' : empty controlled statement found; is this the intent?|

main.cpp|14|error C2181: illegal else without matching if|

||=== Build failed: 2 error(s), 2 warning(s) (0 minute(s), 0 second(s)) ===|

 

 

Taigi. Gal galit pasakyt, kodėl neveikia? Ar teisingai mąstau, kaip rašyti kodą. Prašau, užveskit ant kelio :)

 

Galbūt klaida, po if'o sąlygos skliaustų padėtas ;

Pagal mane turėtų būti taip :

if(sąlyga) {

tekstas;

}

taip pat ir su else if :)

Redagavo MindeB
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Architektas suprojektavo salę, kurioje bus n eilių. Pirmoje eilėje stovės k kėdžių, o kiekvienoje kitoje eilėje

– 2 kėdėmis daugiau, negu prieš tai buvusioje. Parašykite programą, kuri apskaičiuotų, kiek iš viso kėdžių

(s) reikia užsakyti, kad architekto sumanymas būtų įgyvendintas.

Pasitikrinkite. Kai n = 3, o k = 8, turi būti spausdinama: s = 30 kėdžių.

 

Išsprendžiau šį uždavinį naudodamas aritmetinės progresijos sumos formulę, tačiau šis uždavinys yra 9 - 10 klasės lygi, o devintokai ir dešimtokai aritmetinės progresijos nežino. Kaip dar galima šitą uždavinį išspręst?:)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Architektas suprojektavo salę, kurioje bus n eilių. Pirmoje eilėje stovės k kėdžių, o kiekvienoje kitoje eilėje

– 2 kėdėmis daugiau, negu prieš tai buvusioje. Parašykite programą, kuri apskaičiuotų, kiek iš viso kėdžių

(s) reikia užsakyti, kad architekto sumanymas būtų įgyvendintas.

Pasitikrinkite. Kai n = 3, o k = 8, turi būti spausdinama: s = 30 kėdžių.

 

Išsprendžiau šį uždavinį naudodamas aritmetinės progresijos sumos formulę, tačiau šis uždavinys yra 9 - 10 klasės lygi, o devintokai ir dešimtokai aritmetinės progresijos nežino. Kaip dar galima šitą uždavinį išspręst?:)

Su ciklais. While man atrodo.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Architektas suprojektavo salę, kurioje bus n eilių. Pirmoje eilėje stovės k kėdžių, o kiekvienoje kitoje eilėje

– 2 kėdėmis daugiau, negu prieš tai buvusioje. Parašykite programą, kuri apskaičiuotų, kiek iš viso kėdžių

(s) reikia užsakyti, kad architekto sumanymas būtų įgyvendintas.

Pasitikrinkite. Kai n = 3, o k = 8, turi būti spausdinama: s = 30 kėdžių.

 

Išsprendžiau šį uždavinį naudodamas aritmetinės progresijos sumos formulę, tačiau šis uždavinys yra 9 - 10 klasės lygi, o devintokai ir dešimtokai aritmetinės progresijos nežino. Kaip dar galima šitą uždavinį išspręst?:)

 

Reikia žiūrėti šiek tiek paprasčiau. :)

 

for (int i=1; i<=n; i++)
    {
        sum+=k;
        k+=2;
    }

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 2 savaičių...

http://www.part.lt/img/877a373b34a748cedacdc482bae57270899.png

 

#include <fcntl.h>
#include <io.h>
#include <iostream>
#include <fstream>
#include <cmath>
#include <iomanip>
const char CDfv[] = "Duomenys.txt";
const char CRfv[] = "Rezultatai.txt";


using namespace std;

int main()

{ int x1, x2, i, j;

ifstream fd(CDfv);
ofstream fr(CRfv);

fd >> x1 >> x2;
fd.close();

for (i=x1;i<x2;i++){
   for (j=x2;j>i;j--){
       if (j%i==0){
           fr << j << "+" << i << "=" << j + i << endl;
           fr << j << "-" << i << "=" << j - i << endl;
           fr << j << "*" << i << "=" << j * i << endl;
           fr << j << "/" << i << "=" << j / i << endl;
           fr << "******************************" << endl;
       }
   }
}
fr.close();
}

 

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?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

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į. ;-)

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