Gdje zapneš?
Ma ništa ne znam -.-' ko debil ovo gledam, ne treba meni, već sestri mi, ali ja programiram u Javi, al opet nemam blage veze...
Gdje zapneš?
Ma ništa ne znam -.-' ko debil ovo gledam, ne treba meni, već sestri mi, ali ja programiram u Javi, al opet nemam blage veze...
1. Napiši program kojim ćeš upisati broj predmeta N, a zatim ocjene pa izračunati i ispisati srednju ocjenu.
Dakle alociras polje duljine N, petljom prodes kroz to polje dodjeljujuci vrijednost svakom elementu. Nakon toga drugom petljom prolazis kroz polje, zbrajas sve vrijednosti te konacan zbroj podjelis sa brojem elemenata kako bi dobio prosjek. U cemu je problem?
Bog ti da, napiši kod, ja sve priko koda razumijem ;)
Dao ti je čovjek sve upute, u čemu god da programiraš mora biti jasno, logika je svuda posve ista, samo je sintaxa malo drugačija.
Molim vas za pomoć, nikako ne mogu ovo rješit. Unaprijed hvala!
1. Napiši program kojim ćeš upisati broj predmeta N, a zatim ocjene pa izračunati i ispisati srednju ocjenu.
Evo ti u C# -u ....pa samo "prevedi " u c++
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Unesite broj predmeta za prosjek : ");
int brojPredmeta = 0;
brojPredmeta = int.Parse(Console.ReadLine());
double ocjene = -1;
double suma = 0.0;
bool nedovoljan = false;
double prosjek = 0.0;
for (int i = 0; i < brojPredmeta; i++)
{
bool unos = false;//ovaj bool mora biti unutra
while (!unos)
{
Console.WriteLine("Unesite ocjenu : ");
ocjene = double.Parse(Console.ReadLine());
if (ocjene >= 1 && ocjene <= 5)
{
unos = true;
}
else
{
Console.WriteLine("Ponovite unos : ");
//ovdje ne smije ići radi ispadanja iz petlje !!!!!
}
if (ocjene == 1)
{
nedovoljan = true;
}
}
suma += ocjene;
}
prosjek = suma / (double)brojPredmeta; ;
if (nedovoljan)
Console.WriteLine("Nedovoljan");
else
Console.WriteLine("Prosjek je : {0}",prosjek);
}
}
To je davno urađeni zadatak zato ako ima koji bug ne zamjerite :)
Ako imam sljedeći niz binarnih znamenki: 0110011010 i ako mi je prema tome n=10, zatim podjelim taj niz na blokove od 3 znamenke i imam da je N=3.. Tada imam blokove 011, 001 i 101 (zadnju nulu zanemarujem).. Sada trebam napravit sumu prema sljedećem rasporedu: (2/3-1/2)2+(1/3-1/2)2+(2/3-1/2)2 - (u prvom nizu imam dvije jedinice zato je 2/3, u drugom nizu imam jednu jedinicu zato je 1/3 itd)..Ukupno to ispadne 1/12 iliti 0.08333.. Kako da riješim ovo sumiranje.. Pretpostavljam u for petlji, a evo zadatka dokle sam ga postavio i objasnio..
int main(){
string niz;
double N, M, suma=0;
cout<<"Unesi niz"<<endl; //niz
cin>>niz;
cout << "Unesi duljinu bloka: " <<endl; //duljina bloka
cin>>>M;
N=niz.size()/M;
int i = int (N); //broj zagrada koje će se zbrajati - cjelobrojna vrijednost
//rjesenje prve zagrade:
for(int x=0; x<M; x++){
suma += niz[x] - 48;}
suma = pow((suma/M - 0.5), 2);
cout<<"Suma prve zagrade je: "<< suma << endl;
system("PAUSE");
return 0;
}
Kako da riješim ovo sumiranje.. Pretpostavljam u for petlji, a evo zadatka dokle sam ga postavio i objasnio..
Evo jedan od nacina:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main()
{
char *test="0110011010";
int n=0, index=0, jedinice=0;
float zbroj=0.0;
while (index+2<strlen(test))
{
jedinice=0;
for (n=0; n<3; n++)
{
if (test[n+index]=='1')
jedinice++;
}
zbroj+=(jedinice/3.0-0.5)*(jedinice/3.0-0.5);
index+=n;
}
printf("%f\n", zbroj);
system("pause");
return 0;
}
Prepravi si kako ti odgovara, btw nisam koristio pow funkciju, nego jednostavno pomnozio dvije vrijednosti. Stvar je jednostavna varijabla "jedinice" drzi broj prebrojanih jedinica u grupi od tri znamenke, nakon sto se prebroji, iskoristi se za racunanje te se nakon toga u novoj iteraciji petlje resetira na nulu.
Kako da to sada prepravim za unos bilo kojeg binarnog niza sa tipkovnice?
Kako da to sada prepravim za unos bilo kojeg binarnog niza sa tipkovnice?
Jesi cuo kada za cin/cout odnosno printf/scanf? Znas valjda od korisnika zatraziti upis?
#include <stdio.h>
int main ()
{
int A[10], i, n, x, zbroj;
printf("Koliko zelite clanova polja? ");
scanf_s("%d", &n);
for (i=0; i<n; i++)
{
printf("\nUnesite x[i] clan: ", i);
scanf_s("%d", &x[i]);
}
zbroj = 0;
for (i=1; i < n; i++)
{
zbroj += x[i];
}
printf("\nZbroj unesenih %d clanova polja je %d.\n", n, zbroj);
return 0;
}
Javlja mi ovo: "(10): error C2109: subscript requires array or pointer type"
Kod funkcije scanf imaš 2 znaka koja tu ne bi trebala biti.I kao niz staviš A[],a u programu koristiš x.Zašto???
Joj koja zbrka, prvo kod ti je grozno formatiran, sredi to. Drugo, pogledaj sto radis
x[i]
Tu ti nista nije cudno:D ? Da ne treba mozda ici:
A[i]
Kod printf si pretpostavljam htio ispisati indeks clana ciju vrijednost upisujes, ali ispisujes stalno "Unesite x[i] clan: ".
Evo ispravaka:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int A[10], i, n, zbroj;
printf("Koliko zelite clanova polja? ");
scanf("%d", &n);
for (i=0; i<n; i++)
{
printf("\nUnesite x[%d] clan: ", i);
scanf("%d", &A[i]);
}
zbroj=0;
for (i=0; i<n; i++)
zbroj+=A[i];
printf("\nZbroj unesenih %d clanova polja je %d.\n", n, zbroj);
system("pause");
return 0;
}
Joj koja zbrka, prvo kod ti je grozno formatiran, sredi to. Drugo, pogledaj sto radis
x[i]
Tu ti nista nije cudno:D ? Da ne treba mozda ici:
A[i]
A budale, hahaha.
Previdio sam fatalnu grešku, hvala još jednom
pozdrav . zanima me tj. dali bi netko mogao napisati program koji: sa web sheeta ( google dokumenti ili ti pak excela na racunalu ) crpi linkove ( znaci linkovi su vec upisani) i salje im poruke
To je već malo veći zalogaj.
nebi se nist uspilo na brzinu slozit :D
Ne bih i neću!
Da se mene pita ja bi to radio u .NET-u. Puno je lakše.
Kako da to sada prepravim za unos bilo kojeg binarnog niza sa tipkovnice?
Jesi cuo kada za cin/cout odnosno printf/scanf? Znas valjda od korisnika zatraziti upis?
Kada uradim sljedeće promjene na početku programa javlja mi "warning: uninitialized local variable 'test' used" i ne radi program
int main(){
char test;
int n=0, index=0, jedinice=0;
float zbroj=0.0;
cout<<"Unesi zeljeni niz: "<<endl;
cin>>test;
while(.....).....
.
.
.
.
}
Kada uradim sljedeće promjene na početku programa javlja mi "warning: uninitialized local variable 'test' used" i ne radi program
int main(){
char test;
...cin>>test;
Na dobrom si tragu, samo sto pokusavas strpati cijeli niz u memorijski prostor za jedan znak (char). Alociraj nesto memorije bilo staticki ili dinamicki, i neka varijabla "test" bude pokazivac na taj memorijski prostor pa ce sve odmah proraditi...
To jest, trebas niz, a ne jedan znak. Jasnije?
nebi se nist uspilo na brzinu slozit :D
To uopce nije trivijalno. Placas? :D
Kada uradim sljedeće promjene na početku programa javlja mi "warning: uninitialized local variable 'test' used" i ne radi program
int main(){
char test;
...cin>>test;
Na dobrom si tragu, samo sto pokusavas strpati cijeli niz u memorijski prostor za jedan znak (char). Alociraj nesto memorije bilo staticki ili dinamicki, i neka varijabla "test" bude pokazivac na taj memorijski prostor pa ce sve odmah proraditi...
To jest, trebas niz, a ne jedan znak. Jasnije?
Nije točno. Cin također može učitati jedan najobičniji znak (što "test" zapravo i jest). Vjerojatno je koristio varijablu "test" prije cin >> test.
ma baš se traže pokazivači, funkcije i polja....moramo sve što radimo preko funkcija raditi, nemam pojma zašto profa. to sve tako forsira....ali eto....:(
Profa ti upravo zato i traži pokazivače i funkcije da posao napraviš jednostavnije, a ne složenije.
Prema onome što tvoj zadatak traži najbolje je napisati tri funkcje:
1. funkciju PrimNiz koja za argumente uzima pokazivač na originalni niz, broj elemenata originalnog niza i pokazivač na broj elemenata novog prim niza.
Ta funkcija kao povratnu vrijednost vraća pokazivač na novi prim niz, a pošto smo i broj elemenata prim niza proslijedili funkciji preko pokazivača, na taj način u main programu dođemo do varijable koja ima vrijednost broja elemenata novog niza. a koja nam je potrebna za daljnje manipulacije sa novim nizom (npr. ispis).
2. funkciju Unos preko koje se unose elementi niza, a koja za argumente ima pokazivač na niz i broj elemenata niza
3. funkiju ispis preko koje se ispisuju elementi niza, a koja za argumente uzima pokazivač na niz i broj elemenata niza
Dakle, ovdje se ne koriste pokazivači ni funkcije da kompliciraju, nego pojednostave posao, jer smo razdvajanjem koda po funkcijama dobili pregledniji kod i jednostaviji API.
A treba koristiti dinamičku alokaciju polja, pošto novi prim niz ima manje elemenata od starog, na taj manji broj elemenata treba biti i alociran, onaj pristup da je novi niz alociran
veličinom starog, samo nam daje privid da su stvari OK, a nisu, samo smo ograničili ispis u tom nizu sa brojem primova inače taj niz ima još elemenata.
#include<iostream>
using namespace std;
int* PrimNiz( int* niz, int* brojPrimova, int brojElemenata)
{
int index = 0;
*brojPrimova = 0;
bool* izdvojeniPrim = new bool[brojElemenata];
memset(izdvojeniPrim, true, brojElemenata);
for(int i=2; i< brojElemenata; i++)
{
if(izdvojeniPrim[i])
{
*brojPrimova += 1;
for(int j = 2*i; j<brojElemenata; j+=i)
{
izdvojeniPrim[j] = false;
}
}
}
int* primNiz = new int[*brojPrimova];
for(int i=2; i<brojElemenata; i++)
{
if(izdvojeniPrim[i])
{
primNiz[index] = niz[i];
index++;
}
}
delete [] izdvojeniPrim;
return primNiz;
}
void UnosNiza(int* niz, int brojElemenata)
{
for(int i=0; i<brojElemenata; i++)
{
cout<< "Unesi " << i+1 << ". element niza: ";
cin>> niz[i];
}
}
void IspisNiza(int* niz, int brojElemenata)
{
for(int i=0; i<brojElemenata; i++)
{
cout<< niz[i] << " ";
}
}
int main()
{
int brojElemenata, brojPrimova = 0;
cout<< "Unesi broj elemenata niza: ";
cin>> brojElemenata;
int* niz = new int[brojElemenata];
UnosNiza(niz, brojElemenata);
int* primNiz = PrimNiz(niz, &brojPrimova, brojElemenata);
IspisNiza(primNiz, brojPrimova);
delete [] niz;
delete [] primNiz;
return 0;
}
Nije točno. Cin također može učitati jedan najobičniji znak (što "test" zapravo i jest).
Naravno da moze, ali nekako sumnjam da je on upisivao samo jedan znak, ili da je to htio koristiti "test" kao obican char a ne polje.
Vjerojatno je koristio varijablu "test" prije cin >> test.
Vjerojatno. Ali ja ne vidim gdje ga je koristio. Moj se komentar odnosio na dio programa koji mi je poznat.
Pozdrav dečki..
Imal tko da bi mi htjeo riješit ovaj zadatak
2. Napisati program koji unosi cijele brojeve, sve dok prosjek parnih unesenih brojeva ne premasi 15 i u posebnim funkcijama izračunava broj onih ciji je zbroj znamenki manji od 15 i produkt onih koji nisu prosti brojevi. Rezultati se ispisuju u glavnom programu. Ispisati niz sortiran od najveceg do najmanjeg elementa koristeći poziv funkcije prototipa void sort():
uskoro imam ispit pa pokusajem nesto vjezbat al ne ide..
Pozdrav dečki..
Imal tko da bi mi htjeo riješit ovaj zadatak
2. Napisati program koji unosi cijele brojeve, sve dok prosjek parnih unesenih brojeva ne premasi 15 i u posebnim funkcijama izračunava broj onih ciji je zbroj znamenki manji od 15 i produkt onih koji nisu prosti brojevi. Rezultati se ispisuju u glavnom programu. Ispisati niz sortiran od najveceg do najmanjeg elementa koristeći poziv funkcije prototipa void sort():
uskoro imam ispit pa pokusajem nesto vjezbat al ne ide..
evo ali drugi put ubaci kod da vidimo di je zapelo an ne ovako
#include "stdafx.h"
int zbrojznam(int a)
{
int pom1;
int pom2=a;
int zbroj=0;
do
{
pom1=pom2%10;
pom2=pom2/10;
zbroj+=pom1;
}
while(pom2>0);
if(zbroj<15)
return 1;
else
return 0;
}
int zbrojprim(int a)
{
int brojac=0;
for(int i=2;i<a;i++)
{
if(a%i==0)
brojac++;
}
if(brojac==0)
return 1;
else
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a[1000];
int i=0;
float prosjek=0;
int brojacznamenki=0;
int brojac=0;
int zbrojparnih=0;
int zbrojprimbr=0;
do
{
printf("\nUnesi cijeli broj: ");
scanf("%d",&a[i]);
if(a[i]%2==0)
{
brojac++;
zbrojparnih+=a[i];
prosjek=(float)zbrojparnih/brojac;
}
brojacznamenki+=zbrojznam(a[i]);
zbrojprimbr+=zbrojprim(a[i]);
i++;
}
while(prosjek<15&&i<1000);
printf("\n Broj onih kojima je zbroj znamenki manji od 15 je: %d",brojacznamenki);
printf("\n Broj onih koji su prim brojevi je: %d\n\n",zbrojprimbr);
return 0;
}
Pozdrav,
Evo imam jedno pitanje. Radi se o apstraktnoj klasi. Ja znam sta je to itd, ali jednostavno ne razumijem sta se trazi od mene u zadatku, sta da napisem.
Ako moze konkretan odgovor.
#include <iostream>
using namespace std;
template<class T1, class T2>
class Kolekcija{
T1 _clan1[20];
T2 _clan2[20];
int _trenutnoClanova;
public:
};
class Osoba{
protected:
char *_imePrezime;
public:
//1. Potrebne konstruktor i destruktor funkcije
//2. Deklarisati kao apstraktnu klasu
};
class Predmet{
char *_naziv;
char *_profesor;
public:
//1. Potrebne konstruktor/destruktor funkcije
//2. operator<< :: ispisuje vrijednosti svih atributa klase
};
class Student{
const int _brojIndeksa;
Kolekcija<Predmet *, int>_polozeni;
vector<string>_seminarski; //naslovi seminarskih radova
public:
};
void main(){
}
Jednostavno u tu klasu dodaj neku dummy čistu virtualnu metodu i ta klasa će postati apstraktna;
virtual void dummy() = 0;
Upravo tako ali ima jedna stvar koja me buni.
Znaci sada bi trebalo to iskoristiti, pretpostavljam u klasi "Student", posto bi trebala biti izvedena klasa (class Student:public osoba), i neka funkcija iz "Student" klase bi trebala iskoristiti tu virtual funkciju. Da li je to trebalo negdje u zadatku navesti (u klasi Student ili Osoba) koja tacno funkcija treba da "iskoristi" ovu virtualnu iz "Osoba" klase ili to nekako logicni zakljucimo?
Evo i komplet postavke zadatka na linku ispod:
Nisi ti dužan tu funkciju iskorištavati u derivacijama klase niti tamo pisati njena "preopterećenja".
Ok hvala puno, znaci ako nije navedeno onda i ne trebam iskoristiti, pretpostavljam da se u ovom zadatku jedina svrha da se vidi da li je znas napisati :)