Programiranje u C++-u - pitanja i odgovori izdvojena tema

poruka: 7.283
|
čitano: 1.506.848
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
6 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
danći123321 kaže...

Mogu li ja napraviti neki .bat program(u cmd-u) koji će brisati sve novododane datoteke sa računala staviti ga u task scheduler da pokrene taj program svaki put kada se računalo isključuje? To naravno pitam jer nisam mogao pronaći na internetu ništa o toj temi.

Hvala!

 u temi Programiranje u C++ pitas za .bat datoteke, zanimljivo, to ti je skriptiranje (u linuxu , ne znam kak se zove na windowsu) , mislim da je to moguće, samo ne znam na koji ćeš način pronaći novododane datoteke ;)

Trust nobody, become the best !
10 godina
protjeran
offline
Programiranje u C++-u - pitanja i odgovori

Tek sam krenio u ovom c++ tako da...

 

Trebam izracunati a/b da mi izbaci decimalni rezultat ali nezz kako...A treba mi i potencija a^b...a=3 b=5...

 

Stavio sam int a,b;

Float c;

This time next year we'll be millionaires
Moj PC  
0 0 hvala 0
13 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori

Ako staviš obje varijable da su int, onda kada dijeliš radi se cjelobrojno dijeljenje. Dobiješ u ovom slučaju 3/5 = 0 (dio koji bi bio tu da radiš dijeljenje realnih brojeva se odbacuje). Ako ti treba dijeljenje realnih brojeva, barem jedan od njih u izrazu mora biti realan. Promijeni tip svih varijabli u float pa vidi što se događa. Druga varijanta je da napraviš c = a / (float) b; što se zove promjena tipa ili type casting. 

 

Za potenciju ti treba for petlja, ali ako te muče tipovi podataka onda prvo još malo to vježbaj. Postoje i gotove funkcije za to, ali nemoj to još koristiti dok ne svladaš osnove.

The most interesting information comes from children, for they tell all they know and then stop.
8 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Arto kaže...

Ako staviš obje varijable da su int, onda kada dijeliš radi se cjelobrojno dijeljenje. Dobiješ u ovom slučaju 3/5 = 0 (dio koji bi bio tu da radiš dijeljenje realnih brojeva se odbacuje). Ako ti treba dijeljenje realnih brojeva, barem jedan od njih u izrazu mora biti realan. Promijeni tip svih varijabli u float pa vidi što se događa. Druga varijanta je da napraviš c = a / (float) b; što se zove promjena tipa ili type casting. 

 

Za potenciju ti treba for petlja, ali ako te muče tipovi podataka onda prvo još malo to vježbaj. Postoje i gotove funkcije za to, ali nemoj to još koristiti dok ne svladaš osnove.

 OMG! Ja ne znam kako te ovaj momak uopste ista shvatio, bukvalno ti samo ima prvi dio smisla i to je tako lose objasnjeno da je ne moguce...

Za potenciju for petlja ?  Znas li sta si upravo rekao ? hahahaha

 

A ti, sto tek pocinjes uciti C++, moj ti je savjet prvo nauci bar osnovno od teorije i onda pocni da vjezbas :D
Nema sanse da radis neke zadatke bez teorije o varijablama :D Djabe ti je neko pisao zasto moras koristiti float tip podatka, ako ti ne znas zasto to treba tako :) Boixus Nois PS 

Evo ti primjer koda za tebe, u kojoj sam ti objasnio bukvalno sve

#include<iostream>
#include<cmath>
using namespace std;

int main()
{
 float a, b, c;  //Ukoliko zelis da ti zadatak ispisuje decimale, oba broja koja unosis(u ovom slucaju a i b) ti moraju biti tipa podatka(float ili double ili neki drugi osim int) i naravno rezultat(varijabla c)
 cout << "Unesite prvi broj: ";
 cin >> a;
 cout << "Unesite drugi broj:";
 cin >> b;
 c = pow(a, 2) / pow(b, 2);//Ta potencija ili ti ga stepenovanje ti se pise pow(varijabla koju zelis stepenovati zatim zarez i broj na koji zelis stepenovati), zato je u pocetku includana matematicka funkcija
 cout << c << endl; //Ispis rezultata
 system("pause");
 return 0;
}

Poruka je uređivana zadnji put uto 10.4.2018 20:05 (Dr.Atom).
10 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori

@Dr.Atom

 

E, doktore..ovo što mu pišeš u komentarima da sve varijable(a, b, c) moraju biti realnog tipa podatka, jer mu u protivnom neće ispisati decimalni zapis, važi samo ako će inpute biti realni brojevi (npr. a = 2.12, b = 3.14). Ako će unijeti npr. a = 3, b = 4 te dobije rezultat c = 0.5625, odnosno ako će mu input biti samo cijeli brojevi, onda i neka od varijabli može biti i int tip podatka, jer dolazi do implicitne pretvorbe tip podataka.

Ovo je nebtina stvar i sitnica u ovom kontekstu što pišem sa moje strane, ali kada se već uči C++, neka se zna.

 

Mojne me krivo shvatiti Dr.Atom, znam ja da ti to kužiš, al' pišem radi sebe(ponavljanje je majk znanja - ) i drugih koji to možda još ne znaju.

Panzerkampfwagen.Dinamo Zagreb.Matija.Leaving or dead, always ahead...
8 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

@PzKpfw 

Da,  u pravu si, to sam zaboravio napisati i napomenuti ga u vezi sa tim...  

Ali jednostavno sam morao odreagovati na onaj gore savjet koji je početak i nekako napisan kako treba, a zatim ovaj drugi dio bas nigdje veze, to je isto kao da ste nekome ko nikada nije vozio auto rekli hajd me odvezi do grada... Mislim, kako neko ko ne zna podijeliti dva broja, koje zaokružuje na decimale moze znati for petlju..  A i zasto bih se jedan programer mučio pisanjem stepenovanja pomocu for petlje, kada ima napravljeno sve, znaci ljudi servirali bukvalno i neko dodje tu da komplikuje stvari...  Uostalom, ne vidim razlog ne korištenja pow-a, ukoliko se u zadatku kaze da se ne koristi POW. 

 

EDIT: osim toga ako znas sta je to stepenovanje, onda postoji jos i način ukoliko znamo(mi) , koliko tacno trebamo puta stepenovati osnovu,  evo npr.  Uzimam to da se traži a^2, (uzimamo to da je a u ovom slučaju varijabla), te bi vrijedilo a*a. Jer kao sto nam je poznato iz matematike stepenovati broj znaci pomnožiti osnovu onoliko puta koliki je eksponent.  I ovo a*a ce vrijediti samo u slučaju da mi(programer) znamo koliko puta treba stepenovati određenu varijablu(osnovu), a ukoliko bi se od korisnika tražilo da on unese koliko puta želi da se stepenuje(potencira) osnova onda navedeni primjer ne bi važio. Onda bi imali npr.:

int osnova, eksponent;

cin>>osnova;

cin>>eksponent

cout<<pow(osnova, eksponent); 

 

Poruka je uređivana zadnji put uto 10.4.2018 22:55 (Dr.Atom).
 
1 0 hvala 0
13 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
Dr.Atom kaže...

@PzKpfw 

Da,  u pravu si, to sam zaboravio napisati i napomenuti ga u vezi sa tim...  

Ali jednostavno sam morao odreagovati na onaj gore savjet koji je početak i nekako napisan kako treba, a zatim ovaj drugi dio bas nigdje veze, to je isto kao da ste nekome ko nikada nije vozio auto rekli hajd me odvezi do grada... Mislim, kako neko ko ne zna podijeliti dva broja, koje zaokružuje na decimale moze znati for petlju..  A i zasto bih se jedan programer mučio pisanjem stepenovanja pomocu for petlje, kada ima napravljeno sve, znaci ljudi servirali bukvalno i neko dodje tu da komplikuje stvari...  Uostalom, ne vidim razlog ne korištenja pow-a, ukoliko se u zadatku kaze da se ne koristi POW. 

Poanta njegovog posta nije riješi mi ovaj komad koda nego kako da nešto napravim/naučim, a sam ne razumijem tipove podataka. Ti si čovjeku koji ne zna niti što je funkcija niti kako se poziva niti što je povratna vrijednost rekao da koristi funkciju pow. Toliko o tome hajd me odvezi do grada... Riješio si mu (beznačajan) problem, a ništa nije naučio. Ako ne zna for petlju (a ne zna), onda ju treba naučiti, a taj zadatak je tu čini mi se baš zato zadan.  

 

I smiri si doživljaje.

The most interesting information comes from children, for they tell all they know and then stop.
8 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Arto kaže...
Dr.Atom kaže...

@PzKpfw 

Da,  u pravu si, to sam zaboravio napisati i napomenuti ga u vezi sa tim...  

Ali jednostavno sam morao odreagovati na onaj gore savjet koji je početak i nekako napisan kako treba, a zatim ovaj drugi dio bas nigdje veze, to je isto kao da ste nekome ko nikada nije vozio auto rekli hajd me odvezi do grada... Mislim, kako neko ko ne zna podijeliti dva broja, koje zaokružuje na decimale moze znati for petlju..  A i zasto bih se jedan programer mučio pisanjem stepenovanja pomocu for petlje, kada ima napravljeno sve, znaci ljudi servirali bukvalno i neko dodje tu da komplikuje stvari...  Uostalom, ne vidim razlog ne korištenja pow-a, ukoliko se u zadatku kaze da se ne koristi POW. 

Poanta njegovog posta nije riješi mi ovaj komad koda nego kako da nešto napravim/naučim, a sam ne razumijem tipove podataka. Ti si čovjeku koji ne zna niti što je funkcija niti kako se poziva niti što je povratna vrijednost rekao da koristi funkciju pow. Toliko o tome hajd me odvezi do grada... Riješio si mu (beznačajan) problem, a ništa nije naučio. Ako ne zna for petlju (a ne zna), onda ju treba naučiti, a taj zadatak je tu čini mi se baš zato zadan.  

 

I smiri si doživljaje.

 Mozda jesam sada odreagovao* malo kako ne treba i izvinjavam se :)  Ali svejedno, nije samo da sam mu riješio kod, stavio sam mu komentare usput, mislim ko ne bih skontao nesto onako?  U ostalom sigurno da ce prije nauciti koristiti funkciju pow i sta je funkcija,  nego u for petlji izvrtiti kod.  U svakom slucaju nema mu bez osnovnog znanja nista 

Poruka je uređivana zadnji put sri 11.4.2018 8:45 (Dr.Atom).
6 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Pozdrav, tek sam krenuo učiti programirati pa ako ima ko voljan pomoći oko ovog zadatka bio bih zahvalan.

 

Napišite program koji generira jedan slučajan cijeli broj iz raspona [1,6] svaki put kada se klikne bilo koja tipka na tipkovnici osim ESC.
Ako se pritisne tipka ESC prekida se izvođenje programa.
Za generiranje broja napisati dodatnu funkcija.

Dodatna funkcija mora vratiti generirani broj u glavnu funkcije gdje će se generirani broj ispisati.

 

Ja sam to ovako krenuo,ali nije mi jasno kako napraviti unos te bilo koje tipke sa tipkovnice?

 

#include<stdio.h>
#include<stdlib.h>
#include<time.h>


int main()
{
    int slucajanBroj;
    srand((unsigned) time(NULL));
    do
    {
        slucajanBroj=(rand()%6+1);
        printf("%d",slucajanBroj);
        scanf("")

       
    }while

    return 0;
}

 
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Svaka tipka na tipkovnici ima neki svoj odgovarajuci ASCII kod. Npr. malom slovu 'a' odgovara ASCII kod 97. Kada imas neki character u programu, mozes ga pretoviriti u njegovu kodnu vrijednost tako da ga castas u tip koji zelis, a to se radi ovako https://www.tutorialspoint.com/cprogramming/c_type_casting.htm.
Na koncu samo trebas napraviti IF petlju koja ce provjeriti jeli vrijednost tvog charactera odgovara kodu za ESC. ASCII tablicu imas vamo https://theasciicode.com.ar/ascii-control-characters/escape-ascii-code-27.html
LoL acc THCJoshi
12 godina
odjavljen
offline
Programiranje u C++-u - pitanja i odgovori

Napravio sam ovaj kod(za Arduino al to sad nije bitno)

 

void turnSignal(bool left = false, bool right = false)
{
    digitalWrite(PIN_LED_LEFT_TS, left);
    digitalWrite(PIN_LED_RIGHT_TS, right);

    stateTSBlink = left | right;
}

Ono što želim je da ako je parametar left = true ili right = true ili oboje da i varijabla stateTSBlink bude true, no ako su oba false da i varijabla stateTSBlink bude false.
Napisao sam ovako no čini se da radi jedino kad su oba parametra true.
Kako napraviti da radi? 
 
0 0 hvala 0
6 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori

Korisit || (or), left == True || right == True sa if i else to lako rjesis

Trust nobody, become the best !
12 godina
odjavljen
offline
Re: Programiranje u C++-u - pitanja i odgovori
Mr.ddevil kaže...

Korisit || (or), left == True || right == True sa if i else to lako rjesis

 

U međuvremenu sam napisao ovaj kod i ne radi

 

stateTSBlink = (left && right) == (false) ? (false) : (true);

 

 

Pardon, radi...

Poruka je uređivana zadnji put uto 7.8.2018 14:32 (Dex.pwn).
6 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori

void turnSignal(bool left = false, bool right = false)
{
    digitalWrite(PIN_LED_LEFT_TS, left);
    digitalWrite(PIN_LED_RIGHT_TS, right);

   if (left == true || right == true){

     stateTSBlink = true

   }

   else{

   stateTSBlink = false

   }

}

 

EDIT: Evo tek sad vidim da si napisao da radi, taman sam se pokušao vratiti na c++ postavke, jer sam zadnjih mjesec dana na pythonu

Trust nobody, become the best !
Poruka je uređivana zadnji put uto 7.8.2018 14:35 (Mr.ddevil).
16 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
Dex.pwn kaže...
Mr.ddevil kaže...

Korisit || (or), left == True || right == True sa if i else to lako rjesis

 

U međuvremenu sam napisao ovaj kod i ne radi

 

stateTSBlink = (left && right) == (false) ? (false) : (true);

 

 

Pardon, radi...

 Nije ti porebno == false. Možes jednostavno left && right. 

 

stateTSBlink = (left && right) ? false : true;

5 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Pozdrav. 

Zadatak glasi ova: treba ispisati matricu koja bi izgledala ovako:

1   2   3    4

5   6   7    8

9   10 11 12

13 14 15 16

Broj stupaca je uvijek 4, a broj redaka unosi korisnik. Zatim bi trebalo odabrati element i zamijeniti ga s nulom, te ponovno ispisati matricu, npr.:

1   0   3    4

5   0   0    8

0   10 0    0

13 14 15 16

Problem je u tome sto se nova matrica ne ispisuje se s odgovarajucim nulama.  Ako itko zna rjesenje bilo bi od puno pomoci.

 

Ovo je program koji sam ja napravio:

#include <iostream>
#include <iomanip>
using namespace std;

void unosRedak (int &redak)
{
    cout<<"Unesi broj redaka: "<<endl;
    cin>>redak;
}

void ispisElemanata (int redak)
{
int x=1;
    for(int i=0; i<redak; i++)
    {
        for(int j=0; j<4; j++)
        {
            cout<<setw(5)<<x;
            x++;
        }
        cout<<endl<<endl;
    }
}
void unosElemenata2 (int redak, int matrica[][10])
{
    int x=matrica[10][10];
    int broj;
    char odg;
    do{
    cout<<"Unesi mjesto koje zelis zauzeti: "<<endl;
    cin>>broj;
    cout<<endl;
    cout<<"Zelis li jos koje mjesto zauzeti: "<<endl;
    cin>>odg;
    for(int i=0; i<redak; i++)
    {
        for(int j=0; j<4; j++)
        {
            if(broj==x)
            {

                x=0;
            }
        }
    }}
    while(odg=='d');
  for(int i=0; i<redak; i++)
    {
        for(int j=0; j<4; j++)
        {

            cout<<setw(5)<<x;
            x++;
        }
        cout<<endl;
    }
}
int main()
{
    int redak;
    int x;
    int matrica [10][10];
    unosRedak(redak);
    ispisElemanata(redak);
    unosElemenata2(redak, matrica);
    return 0;
}

                                                                                

 
0 0 hvala 0
10 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori

@programiranjeeee

 

 

Frende, u debuggerru, odnosno u IDE stavi izvršavanje programa korak po korak, da vidiš pobliže što se gdje prenosi i/ili upisuje. Tada bi ti trebalo biti jasno gdje griješiš.

Panzerkampfwagen.Dinamo Zagreb.Matija.Leaving or dead, always ahead...
12 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori

Razmisljaj sve ti pise u pitanju, ovo izgleda copy pasterinho sa neke stranice iskreno.
uopce ti netreba iomanip osim ako to nije trazeno zadatku.
Obicne for petlje su ti krive, i koristis char while odg == d, sto ako neupisem d?

Sve ispocetka, pa mozda ti netko i pomogne.

everyday i&amp;amp;#39;m shuffling...
5 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Program je moj, imam ih vise verzija. Iomanip mi treba za setw(), a za ovo char while sto god drugo se upise nije bitno. Barem sam tako naucio. I koje for petlje su mi krive? Inace, moje znanje iz programiranje je jako minimalno, pa sam zato dosao ovdje potraziti pomoc, a ne da mi netko govori da sam nesto kopirao s neta. 

6 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori

Evo čisto laički, na prvi pogled moja ideja, napraviti polje od 1 do n, broj članova će biti ovisan o unesenom broju redova znači 4 * broj redova, ispisat ih preko for petlji, brojeve u polju zamijeniti nulama

Trust nobody, become the best !
13 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
programiranjeeee kaže...

Pozdrav. 

Zadatak glasi ova: treba ispisati matricu koja bi izgledala ovako:

1   2   3    4

5   6   7    8

9   10 11 12

13 14 15 16

Broj stupaca je uvijek 4, a broj redaka unosi korisnik. Zatim bi trebalo odabrati element i zamijeniti ga s nulom, te ponovno ispisati matricu, npr.:

1   0   3    4

5   0   0    8

0   10 0    0

13 14 15 16                                

kako u zadatku glasi na koji se nacin odabire element, unosom pozicije na kojem je element (npr. matrica[1][3]) ili korisnik npr. unese broj "2" pa prolazis kroz matricu i trazis ima li tog broja u matrici?

&quot;Anything that can be connected, will be connected.&quot;
Poruka je uređivana zadnji put pon 20.8.2018 23:42 (definho).
6 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori

Ja sam skužio da on želi odabrati broj koji će zamjeniti nulom

Trust nobody, become the best !
12 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
Mr.ddevil kaže...

Ja sam skužio da on želi odabrati broj koji će zamjeniti nulom

 I ja .

Inace koji dio programiranja je ovo, jeste radili algoritme?

everyday i&amp;amp;#39;m shuffling...
12 godina
odjavljen
offline
Programiranje u C++-u - pitanja i odgovori

Pozz ljudi, imam ovaj kod - https://pastebin.com/KeKrX1FG
Taj kod koristim za Arduino no mislim da to nije bitno.

Uglavnom, kod koji sam dao radi sljedeću stvar - za svakih TIME_SPEED_TACH_UPDATE(makro definicija, u milisekundama) Arduino će ponovno izračunati brzinu kretanja(s kotača, hall efekt sklopka - znači standard koji se koristi). TIME_SPEED_TACH_UPDATE trenutno iznosi 1000(jedna sekunda). 

 

Za izračun brzine trajanje jednog okretaja kotača mora trajati duže od 50ms(da bi spriječio dupla očitavanja).

Ako trajanje okretaja kotača traje duže od 50ms, brzina se računa sljedećom formulom

 

speed = WHEELE_EXTENT_FOR_CALC * 36 / wheeleRevDuration / 1000

 

To je formula koja bi dala brzinu kretanja u cijelom broju. Makro definicija WHEELE_EXTENT_FOR_CALC je zapravo opseg kotača ali kao cijeli broj dok je wheeleRevDuration zapravo trajanje okretaja kotača.

No problem je sljedeći - Da bi se brzina izračunala treba proći jedna sekunda(jer se svake sekunde ponovno računa i prikazuje brzina), no onda je minimalna brzina koju ću vidjeti je 8 km/h, ako povećam osvježavanje brzine s 1s na 2s onda je minimalna brzina 4 km/h ali mi je pre "lagavo/sporo" da se brzina računa svake dvije sekunde.

 

Jel ima netko nekakav prijedlog kako da napravim računanje i prikaz brzine na bolji način? Hall efekt sklopka je spojena na interrupt pin, dakle trajanje okretaja kotača se računa u interrupt funkciji koja ne bi trebala bit dugačka.

Trenutno mi ovako izgleda interrupt funkcija

 

void wheeleRevolution()
{
    wheeleRevDuration = millis() - speedTick;

    for(speedTick = 0; speedTick < 4; speedTick++) distances[speedTick]++;
    if (rpmTacho != 0) rpmRevDistTotal++;

    speedTick = millis();
    avgDist++;
}

Zahvaljujem se svima :)
Poruka je uređivana zadnji put sri 22.8.2018 16:22 (Dex.pwn).
 
1 0 hvala 0
11 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Dex.pwn, problem koji imaš podsjeća me na probleme iz razvoja računalnih igara. Tvoj problem je u tome što mjerenje i logiku odrađuješ unutar istog if-a, a mogao bi ih podijeliti. U ovom primjeru podijelit ću mjerenje u četvrtine tvoje inicijalne logike. Ti si zadao TIME_SPEED_TACH_UPDATE kao 1000, ja ću uvesti TIME_SPEED_TACH_UPDATE_QUARTER kao 250, odnosno četvrtinu.

 

ZADANO:

 

#define TIME_SPEED_TACH_UPDATE 1000

for (long millis = 0; millis < 5005; millis++)

{

  if (millis - lastSTUpdate >= TIME_SPEED_TACH_UPDATE)

  {

  logic();

  lastSTUpdate = millis;

  }

}

 

POBOLJŠANO:

 

#define TIME_SPEED_TACH_UPDATE 1000

#define TIME_SPEED_TACH_UPDATE_QUARTER 250

for (long millis = 0; millis < 5005; millis++)

{

  if (millis - lastSTUpdate >= TIME_SPEED_TACH_UPDATE)

  {

  logic();

  lastSTUpdate = millis;

  }

  if (millis - lastSTUpdateQuarter >= TIME_SPEED_TACH_UPDATE_QUARTER)

  {

  quarterLogic();

  lastSTUpdateQuarter = millis;

  }

}

 

Na ovaj način imaš jednu logiku svakih 1000 ms, i jednu logiku koja se izvodi četiri puta češće. Nadam se da sam pomogao.

 

12 godina
odjavljen
offline
Re: Programiranje u C++-u - pitanja i odgovori

Jedina bolja opcija je prebaciti računanje brzine unutar interrupt funkcije. Problem je ako uzmeš formulu za računanje brzine. Što je učestalost prikazivanja brzine veća to je minimalna brzina veća.

 

 

speed = 235619 * 36 / wheeleRevDuration / 1000;

 

 

Ako se svakih 250ms prikazuje brzina, wheeleRevDuration maksimalno može biti 250 što ti daje 34 km/h, dakle ako vozim ispod 34km/h onda će uvijek bit nula.

Eto, jedino da kod interrupt funkcije računa brzinu. 

 

Napravio sam u interrupt funkciji pa ću vidjeti kako će raditi u praksi takav način.

12 godina
odjavljen
offline
Programiranje u C++-u - pitanja i odgovori

Treba napisati program koji će učitati prirodan broj n i provjeravati dali je potpuno paran broj(da je svaka znamenka parna)

Program izgleda ovako

 

https://pastebin.com/EjARMHTG

 

Od mogućih 20 bodova dobio sam 12

Jel ja to nešto ne vidim il je profa zajebo?

 
0 0 hvala 0
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Ti si. Program samo gleda prvu znamenku (left-most). Prije do-while petlje postavi flag paran na true, a u petlji samo imaj if koji stavlja na false ako je neparan. Dakle problem je što ti imaš if-else u petlji koji će se okidati za svaki prolaz petlje i na kraju ćeš ostati samo s rezultatom za zadnju (odnnosno prvu, onu skroz lijevu) znamenku.

0100001001101111011010100110000101101110
12 godina
odjavljen
offline
Re: Programiranje u C++-u - pitanja i odgovori
Boky kaže...

Ti si. Program samo gleda prvu znamenku (left-most). Prije do-while petlje postavi flag paran na true, a u petlji samo imaj if koji stavlja na false ako je neparan. Dakle problem je što ti imaš if-else u petlji koji će se okidati za svaki prolaz petlje i na kraju ćeš ostati samo s rezultatom za zadnju (odnnosno prvu, onu skroz lijevu) znamenku.

 

Sad sam testirao, kod gleda svaku znamenku(ako sam te dobro razumio)

Iznad 

if (n % 2 == 0)

Sam dodao

cout << n << endl;

 

Stvarno ne kužim di je problem. Ako upišem broj 44, dobit ću jedan, ako upišem 43 dobit ću nula. Doslovno radi kako treba

Stvar je u tome da ako je jedna znamenka neparna cijeli rezultat(bez obzira na druge znamenke) će biti nula(zbog te jedne znamenke).

 

 

 

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
  int broj, n, paran = 1;
 
 cin >> broj;
 n = broj;
 
 do
 {
  n = n % 10;
  cout << n << endl;
  if (n % 2 != 0)
  {
   paran = 0;
   break;
  }
  
  n = broj / 10;
  broj = n;
 }
 while (n != 0);
 
 cout << paran;
 
 getch();
}

Istekao je pastebin.
Poruka je uređivana zadnji put sri 19.9.2018 15:02 (Dex.pwn).
16 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

S obzirom da nisam C++ taknuo godinama, sintaksa je valjda ok, al skužit ćeš poantu

int main() {
int broj;
int znamenka;
bool paran;

cin >> broj;

do {
znamenka = broj % 10;
paran = znamenka % 2 == 0;
broj /= 10;
} while (broj != 0 && paran);

if (paran) {
cout << "Broj je paran" << endl;
} else {
cout << "Broj nije paran" << endl;
}
}
0100001001101111011010100110000101101110
Moj PC  
0 0 hvala 0
E-mail:
Lozinka:
 
vrh stranice