Ne postoji.
- +/- sve poruke
- ravni prikaz
- starije poruke gore
zanima me naredba koja ucitava varijable (int,double) u neki vector ili niz razdvojene razmakom dok se ne pritisne enter, dakle vrlo jednostavno, samo što ja neznam tu naredbu, može pomoć?
Znakovni niz unosiš pomoću naredbe gets().
da, ali meni je potreban unos int-ova
zanima me naredba koja ucitava varijable (int,double) u neki vector ili niz razdvojene razmakom dok se ne pritisne enter, dakle vrlo jednostavno, samo što ja neznam tu naredbu, može pomoć?
Ovo je zanimljiv problem... Nisam upoznat sa time da li postoji takva funkcija tj. koja može unesene brojeve sa tipkovnice razdvojene razmakom automatski ubaciti u cjelobrojno polje ili vektor, no malo sam se poigrao s time pa vidi da li ti ovo odgovara;
#include <iostream>
using namespace std;
void UcitajNiz(int *niz, char* unos, int* koliko){
int duljina = 0;
char pom[10];
*koliko = 0;
while(sscanf(unos + duljina, "%s", pom) != EOF) {
(*koliko == 0) ? (duljina += strlen(pom)) : (duljina += strlen(pom)+1);
niz[(*koliko)++] = atoi(pom);
}
}
int main() {
int polje[20], br_unesenih;
char unos[100];
cin.getline(unos, 100); // unosi brojeve sve dok se ne stisne tipka ENTER
UcitajNiz(polje, unos, &br_unesenih); // ucitaj brojeve u niz
// ispis polja
for(int i = 0; i < br_unesenih; i++)
cout << polje[i] << " ";
return 0;
}
Modificiraj kako ti odgovara no u pravilu ne bi trebalo biti problema...
Kada vidim kako komplexne programe rješavate sramota me postaviti sljedeće pitanje ali budući da ne mogu pronaći odgovor nigdje na netu moram pitati ovdje.Vježbam osnove programiranja i naletio sam na ovakav zadatak
Napisati program koji unosi pozitivne cijele brojeve, sve dok njihov prosjek se premaši 40 i u posebnim funkcijama izračunava broj onih koji se ne završavaju sa 7 i sumu onih koji ne sadrže znamenku 5. Rezultati se ispisuju u glavnom programu. Potrebna je kontrola unosa.
Početak zadatka mislim da sam riješio dobro:
#include <cstdlib>
#include <iostream>
int main(int argc, char *argv[])
{int n,broj,prosijek,zbroj;
n=0;
broj=0;
prosijek=0;
zbroj=0;
do
{
cout<<"Unesite broj: ";
cin>>broj;
zbroj=zbroj+broj;
n=n+1;
prosijek=zbroj/n;
}
while(prosijek<40);}
system("PAUSE");
return EXIT_SUCCESS;
}
i sada dolazim do problema,ne mogu nigdje pronaći kako da riješim ovaj dio sa prepoznavanjem znamenki 7 i 5 kod unešenih brojeva,pa eto ako bi netko htio riješiti cijeli zadatak ili me uputiti na neki link gdje se može pronaći rješenje za ovaj konkretan problem bio bih jako zahvalan,poZz
A gdje si osigurao da su uneseni brojevi pozitivni?
i sada dolazim do problema,ne mogu nigdje pronaći kako da riješim ovaj dio sa prepoznavanjem znamenki 7 i 5 kod unešenih brojeva,pa eto ako bi netko htio riješiti cijeli zadatak ili me uputiti na neki link gdje se može pronaći rješenje za ovaj konkretan problem bio bih jako zahvalan,poZz
Ovo za zadnju znamenku broj sedam ti je if (broj % 10 != 7) brojbezsedam=brojbezsedam+1, znači samo zadnju znamenku će provjerit.
To možeš ponovit dok od broja ne dobiješ 0 pa ako nijedna znamenka nije 5, dodaš u sumu.
while broj!=0
{
zadnjaznamenka= broj % 10;
broj = broj div 10;
if (zadnjaznamenka=5) petice=false;
}
if (petice==true) suma=suma+broj;
Nešto od toga ćeš valjda iskombinirat, to sve bi trebalo radit
A gdje si osigurao da su uneseni brojevi pozitivni?
zato sam i napisao da samo MISLIM da sam dobro otpočeo,jer ja sam totalni početnik što se programiranja tiče...
Pa razmisli čime možeš provjeriti da li je uneseni broj manji ili veći od 0?
if(broj<0)
{
cout<<"Broj "<<broj<<" je negativan. "<<endl;
}
else
ostatak zadatka
to bi trebalo riješiti stvar?
Da, mogao bi ako je broj manji od nule izaći iz programa, no manje bitno.
Malo intendancije ti nebi škodilo, fale ti vitičaste zagrade kod else-a.
Misliš cijelu stvar?, nikako!
ma ne stvar kao cijeli zadatak nego samo dio za unos negativnih brojeva
probati ću iskombinirati nešto od ovoga što je looka naveo
zašto ograničiti program da može raditi samo sa pozitivnima? ako je zadatak da ulaze pozitivni, onda neka korisnik unese pozitivne, ako ne, ionako ce izracunat jer bi algoritam trebao radit i ovako i onako
Eo ovako slabo sam učio u srednjoj C++ program i sad ga imam na ispitu iz jednog predmeta pa bih molio nekog da mi da rješenje odnosno postavu koda za ovaj problem:
S tipkovnice učitati najprije prirodne brojeve m i n koji moraju biti manji od 8. Nakon toga učitati u
matricu koja ima maksimalno 20 redaka i 20 stupaca m x m elemenata. Pronaći i na ekran ispisati:
a) najveći broj u M-tom retku matrice,
b) najmanji broj u N-tom stupcu matrice
Hvala unaprijed!!!
Ne vidim gdje si ti tu uložio svoj trud i vrijeme? Ili očekuješ da sve netko napravi za tebe?
Ako nećeš pomoći ili ne znaš, nemoj! Uglavnom problem je što taj zadatak maltene ne znam ništam znam ga započeti možda i zadati varijable, ali dalje nemam pojma i sad pitam da netko ko zna to ako mu se da, da napiše program, ako ne nikom ništa
Cheers!
Ako nećeš pomoći ili ne znaš, nemoj! Uglavnom problem je što taj zadatak maltene ne znam ništam znam ga započeti možda i zadati varijable, ali dalje nemam pojma i sad pitam da netko ko zna to ako mu se da, da napiše program, ako ne nikom ništa
Cheers!
..i upravo zato nema smisla da ti taj zadatak netko rješava jer ti ionako nećeš ništa shvatiti.
Da bi ti se pomoglo prvo pokaži volju i zanimanje da sam sebi pomogneš. Drugim riječima, kreni učiti pa ako zapneš u procesu učenja onda se javi s konkretnim problemom.
Ako nećeš pomoći ili ne znaš, nemoj!
Vidi se da si friški na ovom forumu. Gle, tu ljudi rado pomognu, ali ne žele rješavati tuđe domaće zadaće. I to je posve u redu i ti ih nemaš nikakvo pravo prozivati oko toga, tim više što sam nisi spreman pokazati nikakvu inicijativu.
Uglavnom problem je što taj zadatak maltene ne znam ništam znam ga započeti možda i zadati varijable, ali dalje nemam pojma
Pa onda ga započni. Zadaci se rješavaju korak po korak. Pa lijepo počni rješavati, daj kod koji si dotad napisao i pomoći će ti se.
Minimum što možeš napraviti je:
- S tipkovnice učitati najprije prirodne brojeve m i n koji moraju biti manji od 8
Ako to ne znaš, onda bolje da ništa ni ne pitaš, jer to je ko da ne znaš što je nominativ ili što je operacija zbrajanja ili nota C.
Nakon toga ide:
- Nakon toga učitati u matricu koja ima maksimalno 20 redaka i 20 stupaca m x m elemenata.
Deklarirati matrice ne znaš? Tražiti od korisnika unos brojeva u matricu ne znaš? http://www.physics.utah.edu/~detar/lessons/c++/matrices/node1.html
Pronaći i na ekran ispisati:... - zar ne možeš ni objasniti kako bi se to pronašlo i ispisalo?
Jel mi moze neko objasnit makro(Sto znaci makro?) naredbe : va_list,va_start,va_arg i va_end i cemu sluze? Ucim po knjizi Demistificirani c++ i zapeo sam kod malo veceg koda kojeg bas nekuzim a glavne su te naredbe .
Imaš primjer u prvom postu na ovoj temi.
Ma znam to , ali nekuzim sta rade te naredbe , znam samo da sluze za listu argumenata .
Može pitanje u vezi polja u C-u. Pošto znam kako se polja deklariraju imam pitanje: kako ih koristiti kod višeznačnog unosa tipa: int v[10]; jedn. polje s max. unosom 10 brojeva.. e sad bi ja kad unesem te brojeve trebao koristiti tako da ih zbrojim sve međusobno, ali pokušavao sam i ne mogu skontati kako
Može pitanje u vezi polja u C-u. Pošto znam kako se polja deklariraju imam pitanje: kako ih koristiti kod višeznačnog unosa tipa: int v[10]; jedn. polje s max. unosom 10 brojeva.. e sad bi ja kad unesem te brojeve trebao koristiti tako da ih zbrojim sve međusobno, ali pokušavao sam i ne mogu skontati kako
Deklariraš jednu varijablu suma, inicijaliziraš je na 0 i kroz petlju joj pribrojiš sve elemente polja.
int suma = 0;
for(int i=0; i<velicinaPolja; i++)
{
suma += polje[i];
}
Ali ako je samo sebi svrha zbroj unesenih elemenata, onda polje nije ni potrebno, pošto se ovako varijabla suma može pribrajati i kod unosa elementa.
C++:
Ako u funkciji na određenom mjestu imam deklaraciju varijable ("int i = 0" npr.) a funkcija se poziva 100 puta, što se događa u memoriji? Stvori se 100 integera na različitim mjestima ili se konstantno prebriše ovaj prvi int?
Svaki put kada se pozove funkcija njene lokalne varijable stavljaju se na stog, a kada funkcija završi s radom unišavaju se svi objekti koji su bili na stogu. Da li će varijable biti na istim memorijskim lokacijama svaki put kad se pozove funkcija nije sigurno. Štoviše, ne bih rekao.
Dakle, pozovem funkciju, inicijaliziraju se neke vrijednosti u memoriji koje se spreme na stog, funkcija završi pa se briše sve sa stoga i tako sve isponova prilikom novog poziva?
Pozivom funkcije by value u stvari vršiš kopiranje parametra kojeg funkcija sadrži.
void Funkcija(int vrijednost) {}
int broj = 5;
Funkcija(broj);
U stvari pozivom funkcije Funkcija(broj) vršiš dodjelu int vrijednost = broj; - kopiraš vrijednost varijable broj u varijablu vrjednost.
Sto poziva - napravi 100 kopija, i kao što reče @Tracer te varijable se pozivom funkcije smjeste na stog.
Bitno je uoćiti tri stvari:
- pozivom funkcije po vrijednosti (by value) vrši se kopiranje objekata
- takvi objekti tj. lokalne varijable se smještaju na stog
- izlaskom iz funkcije takvi objekti se uništavaju
p.s. Razumjevanje ovog mehanizma kasnije dobro dođe pri učenju rekurzije, jer rekurzija mnoge ljude buni, mada ju je lako svladati kad se ima na umu ovaj mehanizam, jer uistinu je moguće ostvariti 100 poziva funkcije, bez da se prethodna zatvori prje nego sljedeća pozove - poziv funkcije u funkciji ilti rekurzija.
C++:
Ako u funkciji na određenom mjestu imam deklaraciju varijable ("int i = 0" npr.) a funkcija se poziva 100 puta, što se događa u memoriji? Stvori se 100 integera na različitim mjestima ili se konstantno prebriše ovaj prvi int?
100 puta se poziva - kako? Rekurzijski? Onda sigurno varijabla neće biti na istoj memorijskoj adresi, jer tada ne bi bilo moguće pamtiti vrijednost varijable u "vanjskoj" rekurziji.
Ako je pozivaš jednu za drugom, onda je lako moguće (ja bih zapravo rekao i vrlo vjerojatno) da će varijabla biti smještena na istu memorijsku lokaciju.
Uglavnom, zašto da filozofiramo o tome? Napiši funkciju, pozovi je sto puta kako već želiš i pogledaj - u funkciji si ispiši adresu varijable:
cout << "adresa varijable: " << &i << endl;