Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki, gal kas pagelbės su šia vieta? Čia spėju kažką durno padaręs tai nesmerkit.

 

for (i=0; i=1;i=i+1)
{
cout << "Iveskite Az, jis turi buti nelygus 0   "<<i<<endl;
   cin >> Az;
if (Az != 0)
{i=i+1;}
else {cout << "Jus irasete 0"<<endl;} 
}

 

Visa(beveik) programa.

 

#include "stdafx.h"
#include <iostream>
using namespace std;
float C,A,Y,Ap,Ab,Az,i;
int main()
{
cout << "Iveskite C"<<endl;
cin >> C;
cout << "Iveskite Ap"<<endl;
cin >> Ap;
cout << "Iveskite Ab"<<endl;
cin >> Ab;
for (i=0; i=1;i=i+1)
{
cout << "Iveskite Az, jis turi buti nelygus 0   "<<i<<endl;
   cin >> Az;
if (Az != 0)
{i=i+1;}
else {cout << "Jus irasete 0"<<endl;} 
}
if (Ap < Ab || Az > 0)
{for (ap; ab>=ap;ap=ap + az )
ap = A;
if ((C - A) != 0)
{ Y = 1 / (C-A);
cout << Y;}
} else { if (Ap < Ab || Az < 0)
{cout << "Salyga negalima"}
         else {if (Ap > Ab || Az > 0)
		  {cout << "Salyga negalima"}
	  else { if (Ap > Ab || Az < 0) 
	  {for (ap; ab>=ap;ap=ap + az )
           ap = A;
           if ((C - A) != 0)
          { Y = 1 / (C-A);
            cout << Y;}}}
	  } 
}

return 0;
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Python'e tai būtų labai paprasta:

 

i = int(0)

while i == int(0):
   i = input("Parašyk skaičių (ne nuli): ")
else:
   print "Programa toliau tęsiama"

 

O C++ irgi kažkas panašaus su while ciklu, tik C++ programavimo kalboje nėra ciklui else sakinio, tai jo tau ir nereiktų. Tiesiog:

 

int i = 0;

while(i == 0)
{
  count << "Įvesk skaičių: " << endl;
  cin >> i
}

// Programa tęsiama

Nuoroda į pranešimą
Dalintis kituose puslapiuose

for (i=0; i=1;i=i+1)

 

suksis tik viena karta, tai kam naudot ji isvis?

 

Siaip jau sitas ciklas suksis iki begalybes. C/C++ bet kokia reiksme nelygia 0 priima kaip "true". i=1 yra priskyrimo sakinys, kuris i "i" iraso 1, tada "i" bus ivertintas kaip logine reiksme, kas bus "true". Jeigu pakeisti "i == 1", tuomet ciklas nebus vykdomas isvis, kadangi salyga yra tikrinama kiekvienos iteracijos pradzioj.

 

sprendimai cia galimi keli, du is ju pateikiu:

 

1)

do
{
   cout << "Iveskite Az, jis turi buti nelygus 0   "<<i<<endl;
   cin >> Az;
   if (Az == 0)
       cout << "Jus irasete 0"<<endl;
} while (Az == 0);

 

2)

while (true)
{
   cout << "Iveskite Az, jis turi buti nelygus 0   "<<i<<endl;
   cin >> Az;
   if (Az == 0)
       cout << "Jus irasete 0"<<endl;
   else
       break;
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na dabar gal galite pagelbėti su šia vieta?

 

if (Ap < Ab) || (Az > 0)
{ for (Ap, Ap >= Ab)
  A = Ap + Az;
  if ((Y = 1 / (C - A)) !=0)
  {cout << Y;}

}

 

Kažkur yra klaida ;/

 

Visa programa:

 

// LD1.cpp : main project file.

#include "stdafx.h"
#include <iostream>
using namespace std;
float C,A,Y,Ap,Ab,Az,i;
int main()
{
cout << "Iveskite C"<<endl;
cin >> C;
cout << "Iveskite Ap"<<endl;
cin >> Ap;
cout << "Iveskite Ab"<<endl;
cin >> Ab;
int Az = 0;

while(Az == 0)
{
  cout << "Iveskite Az, jis turi buti nelygus 0 " << endl;
  cin >> Az;
  if (Az == 0) {cout << "Jus irasete 0" <<endl;}
}
if (Ap < Ab) || (Az > 0)
{ for (Ap, Ap >= Ab)
  A = Ap + Az;
  if ((Y = 1 / (C - A)) !=0)
  {cout << Y;}

}
return 0;
}

Redagavo Giedriusc
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na dabar gal galite pagelbėti su šia vieta?

 

if (Ap < Ab) || (Az > 0)
{ for (Ap, Ap >= Ab)
  A = Ap + Az;
  if ((Y = 1 / (C - A)) !=0)
  {cout << Y;}

}

 

Kai for/if bloke yra daugiau, nei viena eilutė - būtini riestiniai skliaustai. Apskritai, rekomenduočiau juos rašyti netgi tada, kai yra tik viena eilutė - bus aiškiau.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kai for/if bloke yra daugiau, nei viena eilutė - būtini riestiniai skliaustai. Apskritai, rekomenduočiau juos rašyti netgi tada, kai yra tik viena eilutė - bus aiškiau.

 

Tipo taip?

 

if (Ap < Ab) || (Az > 0)
{ for (Ap, Ap >= Ab)
  {A = Ap + Az;
  if ((Y = 1 / (C - A)) !=0)
  {cout << Y;}
}
}

 

Bet dar vistiek kažkur klaidą rodo.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tipo taip?

 

if (Ap < Ab) || (Az > 0)
{ for (Ap, Ap >= Ab)
  {A = Ap + Az;
  if ((Y = 1 / (C - A)) !=0)
  {cout << Y;}
}
}

 

Bet dar vistiek kažkur klaidą rodo.

for (Ap, Ap >= Ab)

Kas čia išvis? For, kiek aš žinau, reikalauja trijų reikšmių - pirmoji įvykdoma tik pirmąkart, antroji tikrinama prieš kiekvieną iteraciją, trečioji - iteracijos pabaigoje.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

if (Ap < Ab) || (Az > 0)
{ for (Ap, Ap >= Ab)
  {A = Ap + Az;
  if ((Y = 1 / (C - A)) !=0)
  {cout << Y;}
}
}

 

Bet dar vistiek kažkur klaidą rodo.

 

Prie for kuri paminejo Silke, pirmasis IF sakinys turi skliaustais apimti visas salygas.

Bet tau nuosirdus patarimas - eik skaityt dokumentacija, o ne forume rasinek...

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tipo taip?

 

if (Ap < Ab) || (Az > 0)
{ for (Ap, Ap >= Ab)
  {A = Ap + Az;
  if ((Y = 1 / (C - A)) !=0)
  {cout << Y;}
}
}

 

Bet dar vistiek kažkur klaidą rodo.

 

Pirmiausia peržiūrėk ir tiesiog mintinai iškalk FOR sakinio sintaksę. Nors, tai galioja visoms funkcijoms.

 

Dabar neturiu daug laiko tai tiesiog pataisysiu kodą pagal save.

if (Ap < Ab) || (Az > 0){
   for (Ap;Ap >= Ab;[color="#FF0000"]Ap++[/color]){
        A = Ap + Az;
   if [color="#FF0000"]([/color]((Y = 1 / (C - A)) !=0)
        cout << Y;
     }
}

 

Nors, nelabai suprantu šio fragmento logikos..

 

if (((Y = 1 / (C - A)) !=0)

cout << Y;

1) Nenutuokiu iš kokio skaičiaus reikia dalinti vienetą (nes Y=1) , kad gautųsi 0.

2) Kam daryti cout << Y; jeigu galima tiesiog cout << 1, nes Y reikšmė visada priskiriama vienetui

 

Kai apšilsi kojas programavime, užmesk akį čia http://www.psgd.org/paul/docs/cstyle/cstyle.htm Tai tiesiog padės pačiam suprasti lengviau , ką rašai, ir kitiems gal bus aiškiau.

Sėkmės! ;)

Redagavo ViJa
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tikiuosi temos autorius nesupyks, kad paprasysiu ir as pagalbos.

 

 

 

 

Suku galva kaip cia padarius ir niekaip nesugalvoju... Bandziau kelti viska i masyva, tada skelti per taska ir su strrev gauti atvirkstines reiksmes, bet ties skilimu ir uzstrigau, nes c++ nieko panasaus i php explode() neradau. Any help? ^_^

 

 

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Och.. na negi taip sunku pereit per help'a kur stringu funkcijos ir susirasti reikiamas?.. nu kaip mazi vaikai.

 

Nereikia jokiu skaitymu iki tasku - visi ilgiai duoti.

 

1. Nusiskaitai eilute i char masyva, kurio dydis 24 (2 skaitmenys ilgiams + 1 taskas + 2 skaiciai po max 9 skaitmenis + 2 newline charas (jei funkcija ji nuskaitineja) + 0 stringo gale).

2. Tada pirma ir antra masyvo nari verti i skaicius k1 ir k2.

3. Tada su strncpy() kopijuoji k1 simboliu kieki i atskira 10 dydzio char masyva (ji is pradziu arba uznulini, arba po kopijavimo pridedi 0 i k1 pozicija).

4. Tada su ta pacia funkcija kopijuoji k2 simboliu kieki nuo (k1 + 3) pozicijos i kita 10 dydzio masyva.

5. Su strrev tuos abu naujus masyvus apverti.

6. Su strtol tuos abu masyvus konvertuoji i long tipa.

7. Spausdini apverstus masyvus kas elementa imesdamas tarpa, o palyginimo zenkla nusprendi palygines abi long reiksmes.

8. Gerai pasvarstai ar programavimas tau..

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