#!/bin/bash/python3
n = int(input("Broj utovarenih paketa: "))
lista = list(range(n))
for i in lista:
...... dalje ne znam , nemam neku ideju :)
Evo rješenja u Pythonu:
def tezina(tura):
FAKTOR_KG = {'t': 1000, 'kg': 1}
podaci = (kutija.split() for kutija in tura)
return sum(int(iznos) * FAKTOR_KG[jedinica] for iznos, jedinica in podaci)
def napravi_turu(posiljka, max_tezina):
tura = []
for kutija in posiljka:
if tezina(tura + [kutija]) > max_tezina:
break
tura.append(kutija)
return tura
def rjesenje(kutije):
tura_kamion = napravi_turu(kutije, 5000) # utovar u kamion
tura_kombi = napravi_turu(reversed(tura_kamion), 2000) # pretovar u kombi
return len(tura_kombi)
print(rjesenje(['2 t', '2 t', '100 kg', '1 t', '1 t', '900 kg', '50 kg']))
print(rjesenje(['2 t', '100 kg', '1 t', '1 t', '900 kg', '50 kg']))
print(rjesenje(['100 kg', '1 t', '1 t', '900 kg', '50 kg']))
Rezultati:
1
2
3
Trebala bi mi pomoć oko ovog programa..
#include <iostream>
#include <cstdlib>
#include <winbgim.h>
using namespace std;
int main()
{
int gdrive = 9;
int gmode = 2;
initgraph(&gdrive , &gmode , "");
setbkcolor(WHITE);
setcolor(BLACK);
cleardevice();
circle(310,240,80);
getch();
closegraph();
return 0;
}
I dobijem eror :
||=== Build: Debug in C++ Grafika (compiler: GNU GCC Compiler) ===|
D:\Code Blocks\C++ Grafika\main.cpp||In function 'int main()':|
D:\Code Blocks\C++ Grafika\main.cpp|14|error: 'WHITE' was not declared in this scope|
D:\Code Blocks\C++ Grafika\main.cpp|15|error: 'BLACK' was not declared in this scope|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Ovaj kod je iz knjige " C++ za apsolutne pocetnike " , u njemu se koristi Dev C++ , mozda je do toga..
Ako neko zna kako da postavim boju pozadine i boju kojom cu crtat bio bi zahvalan..
Ovaj kod je iz knjige " C++ za apsolutne pocetnike " , u njemu se koristi Dev C++ , mozda je do toga..
Ako neko zna kako da postavim boju pozadine i boju kojom cu crtat bio bi zahvalan..
vjerojatno ti fali header gdje je to definirano, ali ionako je to samo integer, pa mozes staviti neki broj i vidjeti da li radi...
Hvala ti :)
Tek sam poceo u C++ i zanima me za sta sluzi << i >> znak i kad koristim jedan a kad drugi (ili se to napamet uci), trazim po netu ali ne daju bas neko konkretno objasnjenje koje je svima razumljivo :D
Tek sam poceo u C++ i zanima me za sta sluzi << i >> znak i kad koristim jedan a kad drugi (ili se to napamet uci), trazim po netu ali ne daju bas neko konkretno objasnjenje koje je svima razumljivo :D
Služi za više stvari, ali ako si tek krenio učiti C++, koristiti ćeš manje više samo za input/output. Više o tome možeš u detalje pročitati tu: http://www.cplusplus.com/doc/tutorial/basic_io/
Nakon šta pročitaš, ako budeš ima kakvih pitanja, tu sam.
Inače, možda će ti trebati i kao shift u desno/lijevo
:)
Tek sam poceo u C++ i zanima me za sta sluzi << i >> znak i kad koristim jedan a kad drugi (ili se to napamet uci), trazim po netu ali ne daju bas neko konkretno objasnjenje koje je svima razumljivo :D
Služi za više stvari, ali ako si tek krenio učiti C++, koristiti ćeš manje više samo za input/output. Više o tome možeš u detalje pročitati tu: http://www.cplusplus.com/doc/tutorial/basic_io/
Nakon šta pročitaš, ako budeš ima kakvih pitanja, tu sam.
Inače, možda će ti trebati i kao shift u desno/lijevo
:)
U redu, hvala :D
Kratko pitanje, zašto mi se javlja sljedeća greška, ne sjećam se da mi se ikad prije javila u radu sa tokovima:
'std::ostream& Loto::operator<<(std::ostream&, const Loto&)' must take exactly one argument ?
Ispod se nalazi skraćeni tekst zadatka i rješenje. Nadam se ne radi opet o nekoj banalnoj pogrešci. Unaprijed hvala onima koji pomognu.
52) Napišite klasu Loto na nacin da se niz brojeva alocira dinamički.
Alokaciju izvršite u konstruktoru. Definirajte i pripadni destruktor klase,
u kojem se oslobaða alocirana memorija. Koristite slijedeæu shemu klase:
=======================================================================
53) Napišite definiciju za operator << kojim se ispisuje sadržaj objekta klase Loto
u obliku liste 6 brojeva odvojenih zarezom, a kraju se u zagradama ispisuje rezervni broj.
Primjer ispisa:
22, 37, 2, 3, 6, 12 (4)
Deklaracija operatora je:
ostream& operator << (ostream& out, const Loto& a)
Primijetite da su èlanske funkcije klase Loto privatne.
#include <iostream>
#include<stdlib.h>
using namespace std;
class Loto {
int *m_br;
int m_rezervni_broj;
public:
Loto();
~Loto() ;
void PostaviBrojeve();
int *DobaviNizBrojeva() const{return m_br;} // vrati pokazivač na niz
int DobaviRezervniBroj() const{return m_rezervni_broj;} // vrati rezervni broj
ostream& operator << (ostream& out, const Loto& a)
};
Loto::Loto(){
m_br=new int[5];
PostaviBrojeve();//Poziv funkcije }
Loto::~Loto(){
delete [] m_br;
}
ostream& Loto::operator<<(ostream& out, const Loto& a){
int* A;
A=a.DobaviNizBrojeva();
cout<<"Namjesteni brojevi su: "<<endl;
for(int i=0; i<5; i++){
out<<" "<<A[i]<<" , ";
}
out<<endl<<"Dopunski broj je: "<<a.DobaviRezervniBroj();
return out;
}
void Loto::PostaviBrojeve(){
for(int i=0; i<5; i++){
m_br[i]=rand()%42; //42
}
m_rezervni_broj=rand()%42;
}
int main(){
Loto o; //Kreiranjem objekta se izvuku brojevi u konstruktoru.
cout<<o<<endl;
return 0;
}
Otkrio sam na jednom zadatku kako otkloniti problem.
Dakle, iz tijela klase uklonim prototip funkcije preopterećenja operatora za tok.
Također, pri pisanju u tijelu funkcije, otklonim dio "Klasa::", tj. dio sa rezolucijskim operatorom.
I onda radi.
No, i dalje ostaje pitanje na koje ne znam odgovor, a to je, zašto je to tako?
Taj operator moraš preopteretiti kao friend funkciju (ili unutar njega koristiti samo javne metode), ne možeš ga preopteretiti kao člansku funkciju jer ne možeš mrljati po ostream klasi s obzirom da ti ona dolazi iz standardne biblioteke. Zato ti je proradilo kad si ga izvukao van. Detaljnije o preopterećivanju operatora (i zašto neke preopteretiti kao članske, a neke kao vanjske funkcije) možeš pročitati na https://stackoverflow.com/questions/4421706/what-are-the-basic-rules-and-idioms-for-operator-overloading
Evo mene opet. Problem sa datotekama. Potrebno je kopirati sadržaj iz jedne u drugu, tako da se prilikom kopiranja izbrišu sve prazne linije i linije koje započinju znakom komentara //, ispred znaka kometnara može biti proizvoljan broj bijelih mjesta.
Nije mi jasno što bi for petlja pri dnu trebala raditi i kako se kod izvršava.
rješenje je iz knjige, i (barem meni) ne funkcionira. Tekst ostaje isti.
Hvala unaprijed onima koji pomognu. :)
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main(void) {
ifstream ulaz;
ofstream izlaz;
int a;
unsigned int b;
string c;
ulaz.open("ulazna.cpp");
izlaz.open("izlazna.cpp");
while( !ulaz.eof() ) {
getline(ulaz, c);
// Pridjeljujem vrijednosti varijabli c, vrijednosti su tipa string.
// Iz ulazne datoteke, pomoću objekta "ulaz".
// ulaz>>c; se ne koristi jer operator >> ne prepoznaje razmake kao dio stringa.
a = c.find("//"); // Npr. 012//567 ili 01 345 7, (na indeksu 6 je tab razmak)
if ( a >= 0 )
c = c.substr( 0, a );
// C==012 , Upisujemo 012 u datoteku "izlaz" (Na dnu koda).
if( a < 0 ) {
//a==-1 za string 01 345 7
for( b = 0 ; b < c.length() ; b++ ) {
//Ispitujemo svaki član stringa 01 345 7.
if( c.at(b) != ' ' || c.at(b) != '\t' ) {
// Za obični razmak i tab razmak petlja se prekida.
//Za string 01 345 7 to će biti kod b==2.
break;
}
}
if( b != c.length() ) {
// 2 je različito od 8, i što dalje? Koja je zadaća petlje koja se prekinula? Što sa ostatkom stringa?
// Nakon izvršavanja koda, tekst ostaje isti. Zašto?
// Rješenje je iz knjige.
i izlaz << c << endl;
}
}
}
ulaz.close();
izlaz.close();
return 0;
}
Evo mene opet. Problem sa datotekama. Potrebno je kopirati sadržaj iz jedne u drugu, tako da se prilikom kopiranja izbrišu sve prazne linije i linije koje započinju znakom komentara //, ispred znaka kometnara može biti proizvoljan broj bijelih mjesta.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define MAX_CHARACTER 250
int main(){
FILE *r_file = fopen("main.c", "r");
if (!r_file){
printf("Greška u otvaranju datoteke citanja!\n");
return -1;
}
FILE *w_file = fopen("ispis.txt", "w");
if (!w_file){
printf("Greška u otvaranju datoteke upisivanja!\n");
fclose(r_file);
return -1;
}
char line[MAX_CHARACTER];
while (fgets(line, MAX_CHARACTER, r_file) != NULL){
if (line[0] == '\n' || (line[0] == '/' && line[1] == '/')) //ako linija pocinje novim redom ili ako su prva dva znaka za ispis komentara, preskoci ovu liniju
continue;
else if (isspace(line[0])){ // ako linija počinje prazninom, provjera da li je cijela prazna, zapocinje znakovima komentara ili znakom razlicitim od praznine
for (char *c = line + 1; *c != '\0'; c++){
if (*c == '/')
if (*(c + 1) == '/')
break;
if (!isspace(*c)){
fputs(line, w_file);
break;
}
}
}
else
fputs(line, w_file);
}
fclose(r_file);
fclose(w_file);
getchar();
getchar();
return 0;
}
Evo mene opet. Problem sa datotekama. Potrebno je kopirati sadržaj iz jedne u drugu, tako da se prilikom kopiranja izbrišu sve prazne linije i linije koje započinju znakom komentara //, ispred znaka kometnara može biti proizvoljan broj bijelih mjesta.
Nije mi jasno što bi for petlja pri dnu trebala raditi i kako se kod izvršava.
rješenje je iz knjige, i (barem meni) ne funkcionira. Tekst ostaje isti.
Hvala unaprijed onima koji pomognu. :)
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main(void) {
ifstream ulaz;
ofstream izlaz;
int a;
unsigned int b;
string c;
ulaz.open("ulazna.cpp");
izlaz.open("izlazna.cpp");
while( !ulaz.eof() ) {
getline(ulaz, c);
// Pridjeljujem vrijednosti varijabli c, vrijednosti su tipa string.
// Iz ulazne datoteke, pomoću objekta "ulaz".
// ulaz>>c; se ne koristi jer operator >> ne prepoznaje razmake kao dio stringa.
a = c.find("//"); // Npr. 012//567 ili 01 345 7, (na indeksu 6 je tab razmak)
if ( a >= 0 )
c = c.substr( 0, a );
// C==012 , Upisujemo 012 u datoteku "izlaz" (Na dnu koda).
if( a < 0 ) {
//a==-1 za string 01 345 7
for( b = 0 ; b < c.length() ; b++ ) {
//Ispitujemo svaki član stringa 01 345 7.
if( c.at(b) != ' ' || c.at(b) != '\t' ) {
// Za obični razmak i tab razmak petlja se prekida.
//Za string 01 345 7 to će biti kod b==2.
break;
}
}
if( b != c.length() ) {
// 2 je različito od 8, i što dalje? Koja je zadaća petlje koja se prekinula? Što sa ostatkom stringa?
// Nakon izvršavanja koda, tekst ostaje isti. Zašto?
// Rješenje je iz knjige.
i izlaz << c << endl;
}
}
}
ulaz.close();
izlaz.close();
return 0;
}
Nauci se debugirati kod...
nema smisla da ti netko rjesava zadatke.
Skini visual studio 2017 community, nauci se stavljati breakpointe(kliknes lijevo od pocetka linije i pojavi se crveni krug, pazi da si u debug modu jer u relase zbog optimizacija je teze debugirati) i uzivaj.
Settings -> Editor -> General settings -> Editor settings -> Indent options
Što ti je sve označeno? Probaj označiti sve osim zadnjega pa vidi jel radi.
Settings -> Editor -> General settings -> Editor settings -> Indent options
Što ti je sve označeno? Probaj označiti sve osim zadnjega pa vidi jel radi.
I dalje ne radi, pokusao sam razne kombinacije postavki, znao sam i sve iskljuciti pa ukljucivati jedno po jedno i dalje nista, da to nije nekakav bug?
Rijeseno instalacijom Codeblocks-contrib plugins
Totalan početnik ovdje, 3 dana staža u programiranju imam. Vježbam sad nešto, može li mi ko reći zašto mi odgovor rakija ne izbacije "svaka čast" odgovor već mi samo uzima >else< ?
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string ime, kakosi, piche, odgovor, rakija;
cout << "Dobar dan prijatelju, kako se zoves ? " << endl;
cin >> ime ;
cout << "Pozdrav " << ime << endl;
cout << "Kako si ? "<< endl;
cin >> kakosi;
cout << "Super, jeli li za piche.... rakija ili pivo?" << endl;
cin >> odgovor ;
if (odgovor == rakija)
{ cout << "Svaka cast" << endl;}
else {cout << "To je za malu djecu" << endl; }
}
Totalan početnik ovdje, 3 dana staža u programiranju imam. Vježbam sad nešto, može li mi ko reći zašto mi odgovor rakija ne izbacije "svaka čast" odgovor već mi samo uzima >else< ?
...
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string ime, kakosi, piche, odgovor, rakija;
cout << "Dobar dan prijatelju, kako se zoves ? " << endl;
cin >> ime ;
cout << "Pozdrav " << ime << endl;
cout << "Kako si ? "<< endl;
cin >> kakosi;
cout << "Super, jeli li za piche.... rakija ili pivo?" << endl;
cin >> odgovor ;
if (odgovor == "rakija")
{ cout << "Svaka cast" << endl;}
else {cout << "To je za malu djecu" << endl; }
}
Ja neznam jeli glupo da ovdje postavljam pitanja? Da otvorim svoju podtemu di je baš za mene pošto sam početnik? :o
Jeli moguće ovdje na kraju negdje dodati da se zbroje svi točni odgovori nakon što se riješi kviz?
Kao nubari trenutno mi jedino pada na pamet da sa funkcijom IF mogu nekako napraviti x+=1, gdje bi x na početku bio deklariran kao x=0 te bi se svaki if točan osim što bi pisalo "Točno" zbrajao te bi na kraju pisao cout of x-a, tj. koliko je točnih.
#include <iostream>
using namespace std;
void sljedecePitanje(){
cout << "Sljedece pitanje glasi ! \n______________________________\n"<< endl;
}
int main ()
{
int x;
cout << "Koji je glavni grad Hrvatske?\n 1. Zagreb\n 2. Osijek\n 3. Rijeka\n" << endl;
cin >> x;
switch (x) {
case (1):
cout << "Tocno\n"<< endl;
break;
case (2):
cout << "Netocno\n"<< endl;
break;
case (3):
cout << "Netocno\n"<< endl;
}
sljedecePitanje();
int y;
cout << "Gdje je gorilo 17.07.2017?\n 1. Pokraj Splita\n 2. Pokraj Osijeka\n 3. Na Marsu\n" << endl;
cin >> y;
switch (y) {
case (1):
cout << "Tocno\n"<< endl;
break;
case (2):
cout << "Netocno\n"<< endl;
break;
case (3):
cout << "Netocno\n"<< endl;
}
sljedecePitanje();
int z;
cout << "Tko je bio prvi vladar u doba Anzuvinaca\n 1. Karlo I. Robert\n 2. Karlo II. Dracki\n 3. Ladislav Napuljski\n" << endl;
cin >> z;
switch (z) {
case (1):
cout << "Tocno\n"<< endl;
break;
case (2):
cout << "Netocno\n"<< endl;
break;
case (3):
cout << "Netocno\n"<< endl;
}
}
Moguće je. Definiraš varijablu izvan tog koda u kojem se postavalju pitanja, te kod svakog točnog odgovora, povećaš brojač za jedan.
Na kraju tih pitanja ispišeš tu varijablu kako bi dobio broj točnih odgovora ili već kaj drugo hoćešheldlati sa tom varijablom, odnosno brojačem.
Slobodno pitaj pitanja, ovdje bilo koje razine znanja, samo eto ponekad ekipa nije baš spreman nekome rješavati zadaće. Znam, da ti nisi taj, al' velim da je bilo ovdje takvih i sa takvim motivima, al' nisu se baš usrećili....
EDIT: u if kao uvjet provjeravaš točan dogovor, te onda na osnovu toga povećš brojač za jedan.
EDIT2: odnosno za tvoj slučaj ispod case sa točnim dogovorom, povećaj brojač za jedan.
Pozdrav svima.Prije par mjeseci sam nabavio knjigu C++ za apsolutne pocetnike i poceo uciti programirati.Prosao sam kroz cijelu knjigu i mogu reci da sam dosta toga naucio iz te knjige pa me zanima kako dalje?Knjiga je dosta povrsna tak da ovo dosad sve sto znam su samo osnove.Htio bih nesto gdje bih ucio vise u detalje kako bih danas sutra mogao i napraviti nekakvu postenu aplikaciju.Posto imam zelju napraviti nekakvu aplikaciju za windows je li mozda bolje promjeniti jezik?Pitam jer koliko sam skuzio C++ se treba dosta dugo uciti kako bi se nesto moglo napraviti.Mozda sam i u krivu ak jesam recite.Hvala unaprijed :D
Najbolje se uci ako radis nesto konkretno. Naprimjer, napravi adresar. Sa lijepim GUI-jem, spremanjem podataka u file, ili u bazu, pretrazivanjem, uredjivanjem, importom, exportom... Neka podrzava i slike. Kroz svaki od tih dijelova programa ces dosta naucit, jer mozda ovako djeluje jednostavno, ali svaki od tih dijelova se moze napraviti na vise nacina, i moze biti dobra skola za programera.