Page 2 of 2
#26
Posted: 27/10/2006 23:30
by creation
irfane, fala puno, to mi treba, vremena imam
parafin, ne mora se poceti sa c, mora samo u bosni, sa masincem pa mozda i prije sa abakusom

seha, "dummies" knjige su cesto izuzetno dobre knjige za totalne pocetnike, kao sto sam ja kad se o c++ govori
fala svima
#27
Posted: 28/10/2006 14:07
by ztluhcs
creation wrote: ne mora se poceti sa c, mora samo u bosni, sa masincem pa mozda i prije sa abakusom
Ne mora se ni¹ta... Do tebe je da li æe¹ se ti zabetonirati u proceduralno razmi¹ljanje i imati probleme kad se prebaci¹ u objektno orijentisano razmi¹ljanje o problemu, ili æe¹ lako prihvatiti novu paradigmu. To su dva totalno razlièita koncepta rje¹avanja problema.
Problem koji mo¾e¹ imati na kraju je da ima¹ repove C koda rasute svuda po C++ kodu a to nije naèin na koji se radi sa C++ (barem po rijeèima njegovog autora).
Ako veze nema¹ o programiranju moj ti je savjet da proèita¹ poglavlja o OOP i proceduralnom programiranju prije nego napi¹e¹ prvu liniju koda. Tako æe¹ barem imati pojma kako i kojim principom poku¹ava¹ rije¹iti problem prvo na papiru...
P.S. C++ ti je hibridni jezik
#28
Posted: 29/10/2006 23:54
by ulicar
parafin wrote:i za c i za c++ imas masu stvari na internetu. na nasem ne znam ali probaj na engleskom (nece da ti skodi

. probaj na guglu ukucat "c tutorial" imam ja nekih knjiga u pdf-u pa reci ako treba saljem ti na mail. eto

Hej, jel' imas mozda neke knjige koje se bave sa C++ standard library, ne ove najjednostavnije std::abs i slicne gluposti, vec ono malo naprednije?
#29
Posted: 09/11/2006 21:14
by creation
Pitanje:
Zasto je u donjem primjeru rjesenje abc?
#include <iostream>
using namespace std;
int main ()
{
int u=1;
char e[ ] ="yxbca";
while (u != 3)
{
switch (u)
{
case 0: u=3; break;
case 1: u=1;
case 3: u=4; break;
case 4: u=2; break;
default: u=3;
}
cout << e;
}
}
#30
Posted: 10/11/2006 09:27
by mahalas505
#31
Posted: 10/11/2006 09:40
by rashid
creation wrote:Pitanje:
Zasto je u donjem primjeru rjesenje abc?
#include <iostream>
using namespace std;
int main ()
{
int u=1;
char e[ ] ="yxbca";
while (u != 3)
{
switch (u)
{
case 0: u=3; break;
case 1: u=1;
case 3: u=4; break;
case 4: u=2; break;
default: u=3;
}
cout << e;
}
}
Simple ...
1. Korak
#include <iostream>
using namespace std;
int main ()
{
int u=1;
char e[ ] ="yxbca";
while (u != 3)
{
switch (u)
{
case 0: u=3; break;
case 1: u=1;
case 3: u=4; break; <- u se ovdje setuje na 4 jer gore nemas break;
case 4: u=2; break;
default: u=3;
}
cout << e; <- i izpise se 4 znak
}
}
2. Korak
#include <iostream>
using namespace std;
int main ()
{
int u=1;
char e[ ] ="yxbca";
while (u != 3) <- u je sad 4 znaci jos radimo
{
switch (u)
{
case 0: u=3; break;
case 1: u=1;
case 3: u=4; break;
case 4: u=2; break; <- ovdje se setuje na 2
default: u=3;
}
cout << e; <- i izpise 2 znak iz array-a
}
}
3. Korak
#include <iostream>
using namespace std;
int main ()
{
int u=1;
char e[ ] ="yxbca";
while (u != 3) <- u je sad 2 znaci jos radimo
{
switch (u)
{
case 0: u=3; break;
case 1: u=1;
case 3: u=4; break;
case 4: u=2; break;
default: u=3; <- pade ovdje u default i setuje u na 3
}
cout << e; <- izpise 3 znak
a i posto jeste sad u 3 gore while se zakljuci
}
}
i na kraju dobijes abc.
#32
Posted: 10/11/2006 09:42
by rashid
ztluhcs wrote:creation wrote: ne mora se poceti sa c, mora samo u bosni, sa masincem pa mozda i prije sa abakusom
Ne mora se ništa... Do tebe je da li ćeš se ti zabetonirati u proceduralno razmišljanje i imati probleme kad se prebaciš u objektno orijentisano razmišljanje o problemu, ili ćeš lako prihvatiti novu paradigmu. To su dva totalno različita koncepta rješavanja problema.
Problem koji možeš imati na kraju je da imaš repove C koda rasute svuda po C++ kodu a to nije način na koji se radi sa C++ (barem po riječima njegovog autora).
Ako veze nemaš o programiranju moj ti je savjet da pročitaš poglavlja o OOP i proceduralnom programiranju prije nego napišeš prvu liniju koda. Tako ćeš barem imati pojma kako i kojim principom pokušavaš riješiti problem prvo na papiru...
P.S. C++ ti je hibridni jezik
Sta ti to tacno znaci kad kazes da je "hibridni" jezik?
#33
Posted: 10/11/2006 15:37
by neko iz mase
nastao na kukuruznom polju
#34
Posted: 10/11/2006 15:54
by ndzlatar
Nisam stigo pregledati ovo, al sam vidio da je piso Zeljko Juric jedan od rijetki odlicnih predavaca na ETF - u.
irfan2 wrote:lik, ako hoces na nasem jeziku, neznam za alternative

..al su predavanja na courses.etf.ba ...ono, dosta ok ..
al racunaj da najmanje pola godine ti treba ...
http://courses.etf.unsa.ba/course/view.php?id=21
idi po redu ...
pitanje za advanced users

: da li, po vama, treba odma pocet sa oop?
#35
Posted: 12/11/2006 22:58
by creation
Nakon sto sam uspio rijesiti permutaciju jednog broja od tri cifre, evo koda, nadam se da je ok:
#include <stdio.h>
void print(const int *v, const int size)
{
if (v != 0)
{
for (int i = 0; i < size; i++)
{
printf("%4d", v );
}
printf("\n");
}
} // print
void permute(int *v, const int start, const int n)
{
if (start == n-1)
{
print(v, n);
}
else {
for (int i = start; i < n; i++)
{
int tmp = v;
v = v[start];
v[start] = tmp;
permute(v, start+1, n);
v[start] = v;
v = tmp;
}
}
}
main()
{
int v[] = {1, 2, 3, 4};
permute(v, 0, sizeof(v)/sizeof(int));
}
Imam drugi zadatak/problem koji ne znam da rijesim. Ako ne zna da mi pomogne, bio bi mu veoma zahvalan, evo teksta:
Napisati rekurzivnu funkciju (u c++), bez koristenja petlji (znaci bez do, for i while petlji), bez if i bez switch i takodjer bez ! : varijabli, ali da se ipak terminira. Hvala svima koji su mi do sada pomogli.
#36
Posted: 20/11/2006 10:20
by creation
da li je iko vec rjesavao tzv magicni kvadrat? gdje je zbir brojeva jednak po dijagonali, horizontali i vertikali, npr:
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
potrebno je napisati kod u c++ koji ce za maksimalno 6 brojeva po jednom od tri parametra rjesavati ovaj problem? ako neko zna neka postavi kod ili barem objasnjenje kako da se to uradi.
#37
Posted: 20/11/2006 11:33
by creation
Code: Select all
#include "stdafx.h"
#include <vector>
using namespace std;
void OddMagicSquare(vector<vector<int> > &matrix, int n);
void DoublyEvenMagicSquare(vector<vector<int> > &matrix, int n);
void SinglyEvenMagicSquare(vector<vector<int> > &matrix, int n);
void MagicSquare(vector<vector<int> > &matrix, int n);
void PrintMagicSquare(vector<vector<int> > &matrix, int n);
int main(int argc, char* argv[])
{
int n;
printf("Enter order of square: ");
scanf("%d", &n);
vector<vector<int> > matrix(n, vector<int> (n, 0));
if (n<3)
{
printf("\nError: n must be greater than 2\n\n");
return -1;
}
MagicSquare(matrix, n);
//Print results
PrintMagicSquare(matrix, n);
return 0;
}
void MagicSquare(vector<vector<int> > &matrix,int n)
{
if (n%2==1) //n is Odd
OddMagicSquare(matrix, n);
else //n is even
if (n%4==0) //doubly even order
DoublyEvenMagicSquare(matrix, n);
else //singly even order
SinglyEvenMagicSquare(matrix, n);
}
void OddMagicSquare(vector<vector<int> > &matrix, int n)
{
int nsqr = n * n;
int i=0, j=n/2; // start position
for (int k=1; k<=nsqr; ++k)
{
matrix[i][j] = k;
i--;
j++;
if (k%n == 0)
{
i += 2;
--j;
}
else
{
if (j==n)
j -= n;
else if (i<0)
i += n;
}
}
}
void DoublyEvenMagicSquare(vector<vector<int> > &matrix, int n)
{
vector<vector<int> > I(n, vector<int> (n, 0));
vector<vector<int> > J(n, vector<int> (n, 0));
int i, j;
//prepare I, J
int index=1;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{
I[i][j]=((i+1)%4)/2;
J[j][i]=((i+1)%4)/2;
matrix[i][j]=index;
index++;
}
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{
if (I[i][j]==J[i][j])
matrix[i][j]=n*n+1-matrix[i][j];
}
}
void SinglyEvenMagicSquare(vector<vector<int> > &matrix, int n)
{
int p=n/2;
vector<vector<int> > M(p, vector<int> (p, 0));
MagicSquare(M, p);
int i, j, k;
for (i=0; i<p; i++)
for (j=0; j<p; j++)
{
matrix[i][j]=M[i][j];
matrix[i+p][j]=M[i][j]+3*p*p;
matrix[i][j+p]=M[i][j]+2*p*p;
matrix[i+p][j+p]=M[i][j]+p*p;
}
if (n==2)
return;
vector<int> I(p, 0);
vector<int> J;
for (i=0; i<p; i++)
I[i]=i+1;
k=(n-2)/4;
for (i=1; i<=k; i++)
J.push_back(i);
for (i=n-k+2; i<=n; i++)
J.push_back(i);
int temp;
for (i=1; i<=p; i++)
for (j=1; j<=J.size(); j++)
{
temp=matrix[i-1][J[j-1]-1];
matrix[i-1][J[j-1]-1]=matrix[i+p-1][J[j-1]-1];
matrix[i+p-1][J[j-1]-1]=temp;
}
//j=1, i
//i=k+1, k+1+p
i=k;
j=0;
temp=matrix[i][j]; matrix[i][j]=matrix[i+p][j]; matrix[i+p][j]=temp;
j=i;
temp=matrix[i+p][j]; matrix[i+p][j]=matrix[i][j]; matrix[i][j]=temp;
}
void PrintMagicSquare(vector<vector<int> > &matrix, int n)
{
for (int i=0; i<n; i++)
{
for (int j=0; j<n; j++)
printf(" %3d", matrix[i][j]);
printf("\n");
}
printf("\n\n");
}
ima li neko da mi malo pojasni kod ovog programa?
#38
Posted: 27/11/2006 01:43
by Reek
creation wrote:
Imam drugi zadatak/problem koji ne znam da rijesim. Ako ne zna da mi pomogne, bio bi mu veoma zahvalan, evo teksta:
Napisati rekurzivnu funkciju (u c++), bez koristenja petlji (znaci bez do, for i while petlji), bez if i bez switch i takodjer bez ! : varijabli, ali da se ipak terminira. Hvala svima koji su mi do sada pomogli.
ne znam kako mislis napisati rekurziju bez nekog uslova, a da nije beskonacna..a jos ne koristis nikakve varijable...

, i jos bi se trebala "terminirati"...

#39
Posted: 27/11/2006 01:44
by Reek
creation wrote:Code: Select all
#include "stdafx.h"
#include <vector>
using namespace std;
void OddMagicSquare(vector<vector<int> > &matrix, int n);
void DoublyEvenMagicSquare(vector<vector<int> > &matrix, int n);
void SinglyEvenMagicSquare(vector<vector<int> > &matrix, int n);
void MagicSquare(vector<vector<int> > &matrix, int n);
void PrintMagicSquare(vector<vector<int> > &matrix, int n);
int main(int argc, char* argv[])
{
int n;
printf("Enter order of square: ");
scanf("%d", &n);
vector<vector<int> > matrix(n, vector<int> (n, 0));
if (n<3)
{
printf("\nError: n must be greater than 2\n\n");
return -1;
}
MagicSquare(matrix, n);
//Print results
PrintMagicSquare(matrix, n);
return 0;
}
void MagicSquare(vector<vector<int> > &matrix,int n)
{
if (n%2==1) //n is Odd
OddMagicSquare(matrix, n);
else //n is even
if (n%4==0) //doubly even order
DoublyEvenMagicSquare(matrix, n);
else //singly even order
SinglyEvenMagicSquare(matrix, n);
}
void OddMagicSquare(vector<vector<int> > &matrix, int n)
{
int nsqr = n * n;
int i=0, j=n/2; // start position
for (int k=1; k<=nsqr; ++k)
{
matrix[i][j] = k;
i--;
j++;
if (k%n == 0)
{
i += 2;
--j;
}
else
{
if (j==n)
j -= n;
else if (i<0)
i += n;
}
}
}
void DoublyEvenMagicSquare(vector<vector<int> > &matrix, int n)
{
vector<vector<int> > I(n, vector<int> (n, 0));
vector<vector<int> > J(n, vector<int> (n, 0));
int i, j;
//prepare I, J
int index=1;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{
I[i][j]=((i+1)%4)/2;
J[j][i]=((i+1)%4)/2;
matrix[i][j]=index;
index++;
}
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{
if (I[i][j]==J[i][j])
matrix[i][j]=n*n+1-matrix[i][j];
}
}
void SinglyEvenMagicSquare(vector<vector<int> > &matrix, int n)
{
int p=n/2;
vector<vector<int> > M(p, vector<int> (p, 0));
MagicSquare(M, p);
int i, j, k;
for (i=0; i<p; i++)
for (j=0; j<p; j++)
{
matrix[i][j]=M[i][j];
matrix[i+p][j]=M[i][j]+3*p*p;
matrix[i][j+p]=M[i][j]+2*p*p;
matrix[i+p][j+p]=M[i][j]+p*p;
}
if (n==2)
return;
vector<int> I(p, 0);
vector<int> J;
for (i=0; i<p; i++)
I[i]=i+1;
k=(n-2)/4;
for (i=1; i<=k; i++)
J.push_back(i);
for (i=n-k+2; i<=n; i++)
J.push_back(i);
int temp;
for (i=1; i<=p; i++)
for (j=1; j<=J.size(); j++)
{
temp=matrix[i-1][J[j-1]-1];
matrix[i-1][J[j-1]-1]=matrix[i+p-1][J[j-1]-1];
matrix[i+p-1][J[j-1]-1]=temp;
}
//j=1, i
//i=k+1, k+1+p
i=k;
j=0;
temp=matrix[i][j]; matrix[i][j]=matrix[i+p][j]; matrix[i+p][j]=temp;
j=i;
temp=matrix[i+p][j]; matrix[i+p][j]=matrix[i][j]; matrix[i][j]=temp;
}
void PrintMagicSquare(vector<vector<int> > &matrix, int n)
{
for (int i=0; i<n; i++)
{
for (int j=0; j<n; j++)
printf(" %3d", matrix[i][j]);
printf("\n");
}
printf("\n\n");
}
ima li neko da mi malo pojasni kod ovog programa?
sta ti tacno nije jasno?....idi liniju po liniju..
#40
Posted: 18/12/2006 18:04
by The_Fluid
za ucenje c++ odlicno:
FREE DOWNLOAD
http://anatolix.naumen.ru/Books/cplusplus
Jeff Alger
C++ for Real programmers
Allen I. Holub
Enough Rope to Shoot Yourself in the Foot: Rules for C and C++ Programming
Stanley Lippman, Josee Lajoie
C++ Primer
Scott Meyers
Effective STL
Scott Meyers
Effective C++, 2nd Edition: 50 Specific Ways to Improve Your Programs and Designs
Scott Meyers
More Effective C++: 35 More Ways to Improve Your Programs and Designs
Dov Bulka, David Mayhew
Efficient C++ Performance Programming Techniques
Herb Sutter
Exceptional C++, More Exceptional C++
Andrei Alexandrescu
Modern C++ Design (Sovremennoe proektirovanie na C++)
Nicolai M. Josuttis
C++ Standard Library, The: A Tutorial and Reference
David Vandevoorde, Nicolai M. Josuttis
C++ Templates: The Complete Guide
Herb Sutter, Andrei Alexandrescu
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices
Bjarne Stroustrup
The C++ Programming Language, Third Edition. Special Edition
INTERNATIONAL STANDARD
Programming languages – C++ ISO/ANSI/EIC