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.

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