Zbog toga sto se '.' po ascii tablici nalazi prije slova 'A' isto tako i '+', a '_' i '[' nalaze se između 'A' i 'z'.
Znaci skuzio si sve, bravo. Sad kad dobis bilo kakav slican zadatak znat ces ga bez problema rijesiti ;)
Zbog toga sto se '.' po ascii tablici nalazi prije slova 'A' isto tako i '+', a '_' i '[' nalaze se između 'A' i 'z'.
Znaci skuzio si sve, bravo. Sad kad dobis bilo kakav slican zadatak znat ces ga bez problema rijesiti ;)
Uradio sam ovaj zadatak i nije mi bas jasan ovaj dio koda?
broj=broj/10;
#include <iostream>
using namespace std;
void main()
{
int broj=0;
int suma=0;
cout<<"Unesi broj: "<<endl;
cin>>broj;
while(broj>0){
int ostatak=broj%10;
suma=suma+ostatak;
broj=broj/10;
}
cout<<"Zbroj znamenaka broja "<<broj<<" je "<<suma<<endl;
}
Uradio sam ovaj zadatak i nije mi bas jasan ovaj dio koda?
broj=broj/10;
...
Uzmi na primjer broj 123. Podijeli ga s 10, sto ces dobiti? 12 (imaj na umu da je to inace 12.3, ali u C/C++-u se dijeljenje integera radi kao cjelobrojno, znaci ono poslije tocke se odbacuje). Sad 12 podijeli s 10. Dobijes 1. Naposlijetku 1 podijeli s 10, to je 0. Primjeti, imao si broj 123, pa 12, pa 1 i zatim 0 sto baca iz petlje. Koliko broj 123 ima znamenaka, a koliko puta se petlja odvrtjela?
EDIT: Ova zadnja cout linija ti nece raditi kako si zamislio. (hint: vidi varijablu broj)
broj=broj/10;
Ako si novi u programiranju, ovo te možda zbunjuje pošto je nešto ovako nemoguće u matematice, ako bi gledali matematički broj se prebaci ovamo pa bi bilo broj/broj=10 => 1=10, znači nemoguće, a u programiranju se samo vrijednost broj/10 kopira u varijablu broj i tako sve se izvršava while petlja dok ne dođe do nule, faktički svakim izvršavanjem se smanjuje samo broj cifri.
int broj=10;
broj=broj+2;
cout << broj; //na ekranu ce se ispisati 12
Uradio sam ovaj zadatak i nije mi bas jasan ovaj dio koda?
broj=broj/10;
...
Uzmi na primjer broj 123. Podijeli ga s 10, sto ces dobiti? 12 (imaj na umu da je to inace 12.3, ali u C/C++-u se dijeljenje integera radi kao cjelobrojno, znaci ono poslije tocke se odbacuje). Sad 12 podijeli s 10. Dobijes 1. Naposlijetku 1 podijeli s 10, to je 0. Primjeti, imao si broj 123, pa 12, pa 1 i zatim 0 sto baca iz petlje. Koliko broj 123 ima znamenaka, a koliko puta se petlja odvrtjela?
EDIT: Ova zadnja cout linija ti nece raditi kako si zamislio. (hint: vidi varijablu broj)
Nije mi jasno zasto ne radi ovaj zadnji cout, pa ako moze pomoc?
Zato što si u while petlji broj sveo na nulu u liniji
broj = broj/10;
Kod svakog prolaza while petlje varijabli broj si dodavao vrijednost broj/10;
Kad izađeš iz petlje varijabla broj ima vrijednost 0.
Nitko nije rekao da ti taj cout ne radi, nego da za varijablu broj ispisuje 0.
Zato što si u while petlji broj sveo na nulu u liniji
broj = broj/10;
Kod svakog prolaza while petlje varijabli broj si dodavao vrijednost broj/10;
Kad izađeš iz petlje varijabla broj ima vrijednost 0.
Nitko nije rekao da ti taj cout ne radi, nego da za varijablu broj ispisuje 0.
Pa kako cu napisat da mi pravilno radi?
Uvedi pomoćnu varijablu kojoj ćeš prdružiti varijablu broj, nju "uništi" u while petlji, a varjablu broj na kraju ispiši.
Mozda ovdje mozes da pronedjes neko rjesenje:http://www.znanje.org/knjige/computer/cpp/n/081CPP/081cpp.htm
Nije mi bas jasna razlika između % (modul) i / (dijeljenje), pa moze li objašnjenje na ovom primejru?
npr.
while(broj>0)
{
int ostatak=broj%10;
suma=suma+ostatak;
broj=broj/10;
}
Nije mi bas jasna razlika između % (modul) i / (dijeljenje), pa moze li objašnjenje na ovom primejru?
npr.
while(broj>0)
{
int ostatak=broj%10;
suma=suma+ostatak;
broj=broj/10;
}
Pogledaj ovdje:
Nije mi bas jasna razlika između % (modul) i / (dijeljenje), pa moze li objašnjenje na ovom primejru?
npr.
while(broj>0)
{
int ostatak=broj%10;
suma=suma+ostatak;
broj=broj/10;
}
modul je operacija kojom računaš ostatak pri cjelobrojnom dijeljenju
npr. 10%3 = 1
zato što je 10/3 = 3 i ostatak 1
dijeljenje valjda ne moram objašnjavati, samo pazi kada radiš cjelobrojno dijeljenje onda se rezultat zaokružuje prema nuli
1. cjelobrojno djeljenje
9 / 4 = 2
2. modulo
9 % 4 = 1
Kad podijeliš 9 i 4, to je 2, a ostatak je 1
Modulo je ostatak cjelobrojnog dijeljenja.
Trebao bih pomoć s jednim zadatkom. Ako mi može netko reći gdje je greška.
Na ulazu se ucitavaju 2 niza od po 10 elemenata. Formirati niz C ciji ce elementi biti manji od nizova A i B.
npr.
A(5, 4, 8, -1)
B(3, 1, 9, 5)
C(3, 1, 8, -1)
Evo ovako sam ja uradio, ali nece da mi programira
#include<iostream>
using namespace std.
int main()
{
int i,A[10],B[10],C[10]
for(i=0; i<10; i++)
cin>>A[i]>>B[i];
for(i=0; i<10; i++)
{
if (A[i]<B[i])
C[i]=A[i];
else if (B[i]<A[i]
C[i]=B[i];
else
C[i]=A[i];
cout<<"unesite nizove"<<A[10]<<"i"<<B[10]<<"i ispisati niz"<<C[10]<<endl;
}
return 0;
}
Zašto ovo ne radi kako spada?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
int main()
{
double x1,y1,slobodni1,x2,y2,slobodni2;
float m, n;
printf("Unesite vrijednosti prve jednadzbe");
printf("\nUnesite prvu varijablu: ");
scanf("%d",&x1);
printf("\nUnesite drugu varijablu: ");
scanf("%d",&y1);
printf("\nUnesite trecu varijablu: ");
scanf("%d",&slobodni1);
printf("Unesite vrijednosti druge jednadzbe");
printf("\nUnesite prvu varijablu: ");
scanf("%d",&x2);
printf("\nUnesite drugu varijablu: ");
scanf("%d",&y2);
printf("\nUnesite trecu varijablu: ");
scanf("%d",&slobodni2);
if(x1 * y2 - x2 - y1 != 0)
{
printf("Nema rjesenja");
}
else
{
m = (slobodni1 * y2 - slobodni2 * y1) / (x1 * y2 - x2 * y1);
n = (x1 * slobodni2 - x2*slobodni1) / (x1 * y2 - x2 * y1);
printf("Rjesenja jedandzbe: %f, %f", m, n);
return 0;
}
}
P.S. Nije za mene, pitam za frenda. Riječ je o rješavanju sustava sa 2 nepoznanice...
Ovako imam za skolu moram napravit u c++ windows form aplikaciji, program se radi o ohmovom zakonu (U=I*R, I=U/R, R=U/I) te 3 razlicite operacije moraju se izvoditi preko funkcija, a odabir svakog izracuna mora bit preko switch casea, molimvas nekog za pomoc nikako nemogu iskombinirat sve to skupa, profesor i ne pokazuje bas najbolje odnosno nista ne pokazuje ono sto znam sam sam naucio...
hvala :)
Zašto ovo ne radi kako spada?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
int main()
{
double x1,y1,slobodni1,x2,y2,slobodni2;
float m, n;
printf("Unesite vrijednosti prve jednadzbe");
printf("\nUnesite prvu varijablu: ");
scanf("%d",&x1);
printf("\nUnesite drugu varijablu: ");
scanf("%d",&y1);
printf("\nUnesite trecu varijablu: ");
scanf("%d",&slobodni1);
printf("Unesite vrijednosti druge jednadzbe");
printf("\nUnesite prvu varijablu: ");
scanf("%d",&x2);
printf("\nUnesite drugu varijablu: ");
scanf("%d",&y2);
printf("\nUnesite trecu varijablu: ");
scanf("%d",&slobodni2);
if(x1 * y2 - x2 - y1 != 0)
{
printf("Nema rjesenja");
}
else
{
m = (slobodni1 * y2 - slobodni2 * y1) / (x1 * y2 - x2 * y1);
n = (x1 * slobodni2 - x2*slobodni1) / (x1 * y2 - x2 * y1);
printf("Rjesenja jedandzbe: %f, %f", m, n);
return 0;
}
}
P.S. Nije za mene, pitam za frenda. Riječ je o rješavanju sustava sa 2 nepoznanice...
Da ti iskreno velim , nisam proučavao code ali letimično ga snimeći možda ti sljedeće može pomoći.
Inače , takve stvari idu preko matrica ali sam pobornik da treba izmišljati toplu vodu svako malo ako je
čovjek početnik jer se u tom procesu više nauči sam na svojim greškama nego kroz suhoparno čitanje
dobro uvriježenih procedura rješavanja pojedinih problema.
/* imas dolje komparaciju double-a krivu
kod njih nema pouzdanih rezultata kao kod
int-a uint-a , varijacija sa short-ovima
znaci int == int -> je OK ali double == double
ne bi islo , nize je samo varijacija na temu s != */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//#include <conio.h>
/*http://www.parashift.com/c++-faq/floating-point-arith.html
malo vidjeti link , kratkoi jasno zasto float , double nisu 100%
pouzdani u nekim operacijama*/
inline bool isEqual(double x, double y)
{
const double epsilon = 1e-5 /* some small number such as 1e-5 */;
return abs(x - y) <= epsilon * abs(x);
// see Knuth section 4.2.2 pages 217-218
}
int main()
{
double x1,y1,slobodni1,x2,y2,slobodni2;
float m, n;
printf("Unesite vrijednosti prve jednadzbe");
printf("\nUnesite prvu varijablu: ");
scanf("%d",&x1);
printf("\nUnesite drugu varijablu: ");
scanf("%d",&y1);
printf("\nUnesite trecu varijablu: ");
scanf("%d",&slobodni1);
printf("Unesite vrijednosti druge jednadzbe");
printf("\nUnesite prvu varijablu: ");
scanf("%d",&x2);
printf("\nUnesite drugu varijablu: ");
scanf("%d",&y2);
printf("\nUnesite trecu varijablu: ");
scanf("%d",&slobodni2);
/*nisam proucavao ali mi je sumnjivo i x2 - y1
mozda tu treba x2 * y1 ??? */
//if(x1 * y2 - x2 * /* - ? */ y1 != 0)
/*skini gore komentar pa probaj recimo
s vrijednostima x1 y1 x2 y2 -> 2 2 2 2 -> bit će jasnije */
if( !isEqual( (x1 * y2 - x2 * /* - ? */ y1) , 0) )
{
printf("Nema rjesenja");
}
else
{
m = (slobodni1 * y2 - slobodni2 * y1) / (x1 * y2 - x2 * y1);
n = (x1 * slobodni2 - x2*slobodni1) / (x1 * y2 - x2 * y1);
printf("Rjesenja jedandzbe: %f, %f", m, n);
return 0;
}
}
Ovako imam za skolu moram napravit u c++ windows form aplikaciji, program se radi o ohmovom zakonu (U=I*R, I=U/R, R=U/I) te 3 razlicite operacije moraju se izvoditi preko funkcija, a odabir svakog izracuna mora bit preko switch casea, molimvas nekog za pomoc nikako nemogu iskombinirat sve to skupa, profesor i ne pokazuje bas najbolje odnosno nista ne pokazuje ono sto znam sam sam naucio...
hvala :)
De malo više detalja, dva textboxa za dvije veličine i check box za treću, traženu veličinu? To je lagano.
Ovako imam za skolu moram napravit u c++ windows form aplikaciji, program se radi o ohmovom zakonu (U=I*R, I=U/R, R=U/I) te 3 razlicite operacije moraju se izvoditi preko funkcija, a odabir svakog izracuna mora bit preko switch casea, molimvas nekog za pomoc nikako nemogu iskombinirat sve to skupa, profesor i ne pokazuje bas najbolje odnosno nista ne pokazuje ono sto znam sam sam naucio...
hvala :)
De malo više detalja, dva textboxa za dvije veličine i check box za treću, traženu veličinu? To je lagano.
nista pretjerano nije uopce bitan nacin na koji ce se program napraviti bitno je da sadrzi gore navedene stvari...
Pa kopiraj to sto si napravio, pa da vidimo kuda krenuti dalje.
Moze li da mi netko ispravi zadatak, ne znam gdje griješim. Ovo mi treba biti riješenje zadatka.
*
* * *
* * * * *
* * *
*
for(int i=0; i<5; i++){
for(int j=0; j<5; j++)
if(i+j==2)
cout<<"*";
else if(i+j==3)
cout<<"*";
else if(i+j==4)
cout<<"*";
else if(i+j==5)
cout<<"*";
else if(i+j==6)
cout<<"*";
cout<<endl;
}
}
imam zadatak:
Napišite program koji u jednostruko povezanu listu sprema podatke o sudionicima nagradne igre: redni broj, ime i prezime, adresu i poštanski broj mjesta stanovanja. Lista nije sortirana.
Napišite funkciju koja ce iz zadane liste izvaditi svaki drugi clan (drugi, cetvrti, šesti ...) i staviti ih u novu listu. Funkcija treba vratiti pokazivac na novu listu tj. NULL ako zadana lista ima manje od dva clana. Funkcija treba imati prototip: zapis *fun(zapis *glava);
Korisnik najprije unosi podatke, a potom se ispisuju obje liste.
i moj dio koda koji funkcionira, ali uopce nemam ideje kako napravi funkciju koja uzdvaja svakog drugog clana..razmisljala sam da u upisu u listu stavaljam dvije "veze", tipa trenutni=trenutni->veza->veza; ali ne znan bas kako to napraviti...
mozda neka pomoc? :D
#include <iostream>
using namespace std;
struct zapis
{
int rb;
char ime[20];
char prezime[20];
char adresa[50];
int pb;
zapis *veza;
};
void ispis(zapis *&glava)
{
zapis *trenutni=glava;
while(trenutni)
{
cout<<trenutni->rb<<". "<<trenutni->ime<<" "<<trenutni->prezime<<" "<<endl;
trenutni=trenutni->veza;
}
}
zapis *fun(zapis *glava)
{
};
int main()
{
char odg;
zapis *glava = 0;
do{
zapis * novi = new zapis;
cout<<"unesi redni broj: ";
cin>>novi->rb;
cout<<"unesi ime: ";
cin>>novi->ime;
cout<<"unesi prezime: ";
cin>>novi->prezime;
cout<<"unesi adresa: ";
cin>>novi->adresa;
cout<<"unesi postanski broj ";
cin>>novi->pb;
//upis u listu
if (glava == 0)
{
glava= novi;
novi->veza=0;
}
else {
zapis *trenutni=glava, *prethodni=0;
while(trenutni )
{
prethodni=trenutni;
trenutni= trenutni->veza;
}
novi->veza=trenutni;
if(prethodni!=0)
prethodni->veza=novi;
else
glava=novi;
}
cout<<"Zelite li dodati novi zapis? (d/n)"<<endl;
cin>>odg;
}while(odg=='d' || odg=='D');
cout<<"prva lista : "<<endl;
ispis(glava);
cout<<"druga lista :";
system ("PAUSE");
return 0;
}
Kriva ti je formula, probaj ovo:
#include <iostream>
using namespace std;
int main(){
for(int i=0; i<5; i++){
for(int j=0; j<5; j++){
if(i==2)cout<<"*";
else if(i<2){
if(i+j>1&&j-i<3)cout<<"*";
else cout<<" ";
}
else {
if(i-j<3&&i+j<7)cout<<"*";
else cout<<" ";
}
}
cout<<endl;
}
system("PAUSE");
return 0;
}
Imaj na umu da ovo radi samo za tvoj test primjer, tj. kod je prilagođen tvom rješenju.
emmm, pozdrav.
ova tema je dobra.. ali pounio bih cijelu temu sa pitanjima. naime, moram modelirati i isprogramirati sustav (ne cijeli, samo dio) za diplomski rad.
ali imam problem - dizajner sam. mogu nacrtati bilo što, osmisliti sučelje, igre, priče... bilo što što treba dizajnirati ali programirati ne znam :D :D
tako da sam modelirao sustav (radi se o dijelu računalne igre na kojoj radim) ali nemam programirani dio.
zanima me, ima li uopće smisla da ovje postam pitanja o funkcijama... jer imam PUNO pitanja :)) inače, izgubljen sam sa tim dijelom diplomskog :(
uživajte ljudovi
ali imam problem - dizajner sam. mogu nacrtati bilo što, osmisliti sučelje, igre, priče... bilo što što treba dizajnirati ali programirati ne znam :D :D
Uopće ne znaš programirati, ili samo misliš da si jako loš? Kako si se doveo u situaciju da za diplomski rad pišeš program, a ne znaš programirati?
Mi ti možemo pomoći sa raznim problemima i poteškoćama s kojima se susretneš. Ali ako očekuješ da te netko vodi za ruku dok ti pišeš program... i sam znaš odgovor ;)
Prihvatio sam se rjesavanju zadatka sa kompleksnim brojevima pomocu klasa. Da li ko zna kako ih izracunavamo, i sta su uopste kompleksni brojevi jer pomocu materijala sa interneta ne mogu da skontam kako da postavim zadatak?
Prihvatio sam se rjesavanju zadatka sa kompleksnim brojevima pomocu klasa. Da li ko zna kako ih izracunavamo, i sta su uopste kompleksni brojevi jer pomocu materijala sa interneta ne mogu da skontam kako da postavim zadatak?