dali mi netko tko se kuzi u ovo moze napraviti jedan zadatak?
za neki uneseni broj n ispisati dali je broj savrsen..broj je savrsen ako jendak zbroju svih njegovih djeitelja osim samog sebe...npr 6=1+2+3
hvala
Najjednostavniji način bi bio: prođi sve brojeve u [2, korijen(N)], ako vrijedi da je ostatak nula pri djeljenju N-a i trenutno prolazećeg broja, pribroji taj broj varijabli "zbroj". Ako poslije petlje, zboj == N, onda je broj savršen.
Evo ti u C#-u pa prevedi u C++ da baš sve ne dobiješ na pladnju.........ne bi ti trebalo biti teško ....
Console.WriteLine("Upišite broj : ");
int broj = int.Parse(Console.ReadLine());
Console.WriteLine("Ispis :");
savrsen(broj);
Console.ReadKey();
}
static void savrsen(int broj)
{
bool savrsen = false;
int zbroj = 0;
for (int i = 1; i < broj; i++)
{
if (broj % i == 0)
{
zbroj += i;
}
}
if (broj == zbroj)
{
savrsen = true;
}
else
{
savrsen = false;
}
if (savrsen)
{
Console.WriteLine("Broj je savršen");
}
else
{
Console.WriteLine("Broj nije savršen!");
}
}
...ako ovo znaš prevesti u pseudokod tad ti niti prijevod u C++ neće biti težak....ovdje je funkcija u pitanju koju pozivaš u glavnom programu.
Tako možeš napraviti i u C++-u!
kako to pretvorit?
kako to pretvorit?
Pa započetak uzmeš list papira ili školsku teku, olovku i piši.
Nikad nećeš ništa što je dobro dobit servirano.
Ovo je već gradivo sa if/else for petljama i za ovo bi trebao barem znat nešto o C++-u.
pa dobro to ali ja nikad nisam radio u c# nego samo u c++ di mu je int i inicijalizacija?
ja sam napravio
int n,i,s;
scanf("%d",&n);
for(i=1;i<=n;i++)
if(n%i==0)
s+=i;
pritf("%d je savršen broj \n",s);
return 0;
i neradi
Stvarno ne zaslužuješ odgovor jer ti je prejednostavan i ako ne znaš pseudokod u glavi razviti tad jednostavno malo se zamisli o programiranju....
Ali evo ti rješenja jes sam dobra duša i mali je zadatak ,da je imalo veći bez tvog pokojeg pisanog koda ne bih ni pogledao....
#include <iostream>
using namespace std;
void Savrsen(int broj);
int main()
{
int broj ;
cout<<"Unesite broj : "<<endl;
cin>>broj;
Savrsen(broj);
system("pause");
return 0;
}
void Savrsen(int broj)
{
bool savrsen = false;
int zbroj = 0;
for(int i = 1;i<broj;i++)
{
if(broj%i==0)
{
zbroj+=i;
}
}
if(broj ==zbroj)
{
savrsen=true;
}
else
{
savrsen = false;
}
if(savrsen)
{
cout<<"Broj je savršen!"<<endl;
}
else
{
cout<<"Broj nije savršen!"<<endl;
}
}
Ne znam kako misliš dalje shvatiti logiku programiranja jer sigurno ti slijede i teži zadaci a baš nećeš uvijek dobiti sve na gotovs......
Ono gore što si napisao je sintaksa C-a a ne C++-a ,stoga ne miješaj zahtjeve i sintakse.Nije mi se ni dalo provjeriti ,to neka provjeravaju C-programeri iako mogu i sam ali ljepši mi je C++.(sintaksa).
fala..naucit cu zato i idrm u skolu ..cout je printf? a cin?
mi radimo ovako kako sam gore napiso u tom stilu
fala..naucit cu zato i idrm u skolu ..cout je printf? a cin?
Gledaj.printf je funkcija a cout(-ispisuje ) objekt kao i cin(-upisuje) (tokovi) je li sad što jasno ? Ako nije moraš se stvarno potruditi i zagrijati stolicu o ispisima na consolu što je objekt a što funkcija itd itd itd .....u biti kreni od početka i samih definicija počevši od #include i što to includa ?Eto ,ako netko ima volje neka objašnjava iako bi profa ili netko tko te uči to trebao objasniti....
ok ...fala puno
Ako je onako kak si gore napiso, onda nije c++, nego C.
A evo ti čisti algoritam za savršene brojeve:
1. učitaj broj n (za koji se ispituje dal je savršen)
2. suma=0 (inicijalizacija)
3. za i=1 do n radi:
ako je n djeljiv s i, suma = suma+i
4. ako je suma==2*n ispiši ("broj je savršen")
inače ispiši ("Broj nije savršen")
p.s. Ovdje se može u koraku 3 ići do korijen(n), pa se provjeravat dal je suma==n ali pošto se radi o počecima programiranja, nećemo komplicirat :D
Ne treba raditi funkciju, samo će ga zbuniti
Pogledaj malo u teoriji petlju while, uvjetnu naredbu if-else,operator modulo i logičke operatore
Matematički znaš što trebaš dobiti, a kombinacijom gornjih naredbi to postigneš:
include<iostream>
using namespace std;
void main() {
int n, i, s=0;
cout<< "Unesi n: ";
cin>> n;
i=1;
while(i<n) {
if(!(n%i))
s+=i;
i++;
}
if(s==n)
cout<< "Broj je savršen!";
else
cout<< "Broj nije savršen!";
}
fala :D
fala :D
nemoj ga samo prepisati, proanaliziraj ga, što točno kako radi
onda rješi neki sličan
jesam i malo sam ga izmjenio :DDD
imam jos jedan(ako se nekom da)...program koji za unesi broj ispisuje zbroj njegovih znamenki..treba napraviti sa while petljom...npr 579%10=9
579/10=57
57%10=7 i tako do nule to su neke formule
imam jos jedan(ako se nekom da)...program koji za unesi broj ispisuje zbroj njegovih znamenki..treba napraviti sa while petljom...npr 579%10=9
579/10=57
57%10=7 i tako do nule to su neke formule
Vrlo jednostavna, i dosta česta stvar. Ono što se radi je da se "cijepa" broj, dok ne dođe do 0.
Ajmo proć na jednom primjeru pa napisat kod.
nek je x=3456, suma=0. U svakom koraku provjeravamo dal je x>0 i ako je, onda ima još neku znamenku pa radimo što treba
1. x=3456, pa je x>0 pa uzmemo znamenku jedinica, x%10=6, suma=0+6=6. I pocijepamo x, jer nam znamenka jedinica više ne treba, x=x/10=3456/10=345.
2. x=345, pa je x>0 pa uzmemo znamenku jedinica, x%10=5, suma=6+5=11. I opet pocijepamo x, x=34
3. x=34, pa je x>0, x%10=4, suma=11+4=15, x=3
4. x=3, x>0, pa je x%10=3, suma=15+3=18, x=0
5. x=0 KRAJ.
Kodom bi to izgledalo ovak:
int x,suma=0;
cin>>x;
if (x<0) x=-1*x;
while (x>0)
{
suma+=x%10;
x/=10;
}
cout<<"Suma je: "<<suma<<endl;
hvala puno
sta ti znaci ova formula x=-1*x
edit
sta ti znaci ova formula x=-1*x
Ustvari uzmem apsolutnu vrijednost od x-a. Ako se učita -123, da se od tog napravi 123 jer nam ionako treba samo zbroj znamenki, a while petlja je dok je x>0 (ako je na početku manji, onda neće ni uć u petlju).
evo trebam program koji sakrije broj ,pa treba pogadati koji je to proj,ako upises veci broj treba ti ispisati da is iznad upisangog,ako manji da si ispod ,i treba brojacce da ti ispise broj pokausaja ..ja sam nesto sastavio ali profa kaze da je dobro ali da treba te ifove savit u petlju..ja sam nesto sastavio pa ako bi netko to mogao popraviti ja nema vise ideje ...hvala
int x,y,s=0;
scanf("%d",&x);
printf("\f");
scanf("%d",&y);
while(y==x)
if(y>x)
{
s++;
printf("uneseni broj je vece od skrivenog broja\n");
}
if(y<x)
{
s++;
printf("uneseni broj je manji od skrivenog broja\n");
}
{
if(y==x)
s++;
printf("POGODIO SI\n");
printf("%d je broj pokusaja\n",s);
}
return 0;
}
Nedostaju ti zagrade od petlje. Petlja while je oblika while (uvjet) {kod}, a ne while (uvjet) kod.
(dakako, i ovaj drugi će raditi, no onda će se petlja while odnositi na prvu sljedeću naredbu, a tebi ih treba nekoliko (3 IFa))
Rjesavao sam sličan zadatak u skoli samo sto sam pisao u čistom C-u.
S bibliotekom #include<stdlib.h>
i sad ide koliko se sječam neka naredba
srand(time(NULL)); koja odabere neki slučajni broj. Nažalost se nemogu sjetit kako točno ide naredba.... sory
Rjesavao sam sličan zadatak u skoli samo sto sam pisao u čistom C-u.
S bibliotekom #include<stdlib.h>
i sad ide koliko se sječam neka naredba
srand(time(NULL)); koja odabere neki slučajni broj. Nažalost se nemogu sjetit kako točno ide naredba.... sory
edit: uopće nisam išao za tim da i ti pišeš u C-u jer sam samo pročitao naslov teme C++ zadatak :O
edit2: mrzim duple postove :@
Evo na brzinu sastavio:
Program odabere broj (manji od 100) zbog veće mogućnosti pogotka. I imaš 10 pokušaja za pogodit broj :
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<stdlib.h>
int main()
{ int x,i,y;
srand(time(NULL));
x=rand()%100;
for(i=1;i<=10;i++)
{
printf("\nPokusaj pogoditi broj:");
scanf("%d", &y);
if(x==y)
{
printf("Cestitamo! Pogodili ste broj iz %d. pokusaja.", i);
break;
}
else
printf("\n\nNiste pogodili broj");
if(x<y)
printf("\n\nUcitani broj je veci od trazenog");
else
printf("\n\n Ucitani broj je manji od trazenog");
}
printf("\n Broj koji je trebalo pogoditi je %d.",x);
getch();
}
trebam pomoc naime treba mi napravit jedan zadatak a kaze ovako
deklariraj jednu strukturu (to znam)kojom se opisuje racunalo aa barem 5 razlicitih clanova(barem ri razlicita tippa podataka)
HVALA