Jump to content

C++ Programa Dili İle İlgili Soru


erdem_fb_54
 Share

Recommended Posts

Merhaba arkadaşlar herkese iyi bayramlar...

Ödevim şu:
[img]http://a1111.hizliresim.com/r/6/ct7m.png[/img]

Hoca bunu yapmamızı istedi bizden.Bazı arkadaşlar dersi dinleseydin vs. gibi şeyler söyleyebilir ben ek kontenjan ile gittim ve bu dersi 2 3 defa gördüm orda ve öle ayrıntılı bi biçimde değil ve hiç bir şey bilmiyorum bu konuda gerçi normal başlayanlarda pek bişi bilmiyor ama :D bu ödev ile ilgili yardım edebilcek varsa şimdiden teşekkür ederim :hi:

Edited by erdem_fb_54
Link to comment
Share on other sites

[b]anladığım kadarıyla program sayiyi çarpanlarına değil, asal çarpanlarına ayırcak. Çünkü, mesela 36 sayısının çarpanlarına baktığımızda 12-3 , 18-2 , 9-4 ,... gibi ancak asal çarpanı tektir. Programın girilen sayıyı asal çarpanlarına ayırma işlevinde yazıyorum.
[/b]
[codebox]int i,j,sayi,syc;
syc=0;
scanf("%d",&sayi);
for(i=1;i<sayi;i++)
{ for(j=2;j<i;j++)
if(i%j==0)
syc++;
if(syc!=0 && sayi%i==0)
printf("%d",i);
}[/codebox]
[b]
hata verirse söyle detaylı bakayım, çok yorgunum saat 00.28 beynim su kaynattı, yanlış yazmış olabilirim.[/b]

Link to comment
Share on other sites

[codebox]
#include <cstdlib>
#include <iostream>
int asal(int);
int bol(int,int);
using namespace std;

int main(int argc, char *argv[])
{
int sayi,i;
cout<<"Bir pozitif sayi giriniz: ";
cin>>sayi;
cout<<sayi<<" "<<"Sayisinin asal carpanlari\t";
for(i=2;sayi>0;i++)
{
if(asal(i)&&bol(sayi,i))
{
printf("%3d",i);
sayi=sayi/i;
i--;
}
}

system("PAUSE");
return EXIT_SUCCESS;
}
/* s'nin asal olup olmadigini kontrol eder*/
int asal(int s)
{
int i;
for (i=s-1;i>1;i--)
{
if(s%i==0)
return(0);
}
return(1);
}
/*x'in y'ye bolunurlugunu kontrol eder*/
int bol(int x, int y)
{
if(x%y==0)
return(1);
else
return(0);
}
[/codebox]


[b][font="Courier New"][color="#8b0000"]Buyur nette C ile yazılmış halini buldum bende c++'a çevirdim ;) Umarım işini görür...[/color][/font][/b]

Link to comment
Share on other sites

[quote name='by.aslan' date='07 November 2011 - 12:08 ' timestamp='1320660532' post='1107858']
[codebox]
#include <cstdlib>
#include <iostream>
int asal(int);
int bol(int,int);
using namespace std;

int main(int argc, char *argv[])
{
int sayi,i;
cout<<"Bir pozitif sayi giriniz: ";
cin>>sayi;
cout<<sayi<<" "<<"Sayisinin asal carpanlari\t";
for(i=2;sayi>0;i++)
{
if(asal(i)&&bol(sayi,i))
{
printf("%3d",i);
sayi=sayi/i;
i--;
}
}

system("PAUSE");
return EXIT_SUCCESS;
}
/* s'nin asal olup olmadigini kontrol eder*/
int asal(int s)
{
int i;
for (i=s-1;i>1;i--)
{
if(s%i==0)
return(0);
}
return(1);
}
/*x'in y'ye bolunurlugunu kontrol eder*/
int bol(int x, int y)
{
if(x%y==0)
return(1);
else
return(0);
}
[/codebox]


[b][font="Courier New"][color="#8b0000"]Buyur nette C ile yazılmış halini buldum bende c++'a çevirdim ;) Umarım işini görür...[/color][/font][/b]
[/quote]

Uğraştığın için sağol bende bişiler düzeltip denedim ama sayamadığım kadar hata verdi :D

Link to comment
Share on other sites

Şimdi programın mantığını çözdüm;

12 girince bölenleri 1,2,3,4,6 ve bunlar arasında 1,2,3 asal çarpan yani 3 tane var 3 tane olduğunu ve birbirinden farklı asal sayıların çarpimi değil diyo

15 yazıncada sadece 3 ve 5 var onları gösteriyo program :)

Link to comment
Share on other sites

  • 2 hafta sonra ...

#include<stdio.h>
#include<conio.h>
#include<math.h>
int N, d=2;

int asal_mi()
{
int z,j;
for(j=2;j<=floor(sqrt(N));j++) {z=0;if(N%j==0) {z++;break;} }
if(z==0) return 1;
else return 0;
}

void bir_sonraki_asal()
{
int y,i;
while(1) {d++;y=0;
for(i=2;i<=floor(sqrt(d));i++){ if(d%i==0) {y++;break;} }
if(y==0) break;}
}

main()
{
int x,sinama,k;
int A[100];
x=0;
do{printf("Sayiyi Giriniz.." ) ;scanf("%d",&N);
if(N<=1) printf("Girdiginiz sayi 1 den buyuk olmali\n" ) ;}while(N<=1);
while(1) {
while(N%d==0) {x++;A[x]=d;N=N/d;}
if(N==1) break;
sinama=asal_mi();
if(sinama==1) {x++;A[x]=N;break;}
bir_sonraki_asal();
}
printf("==Sayinin Asal Carpanlarina Ayrilisi==\n" ) ;
for(k=1;k<x;k++) printf("%d*",A[k]);
printf("%d",A[x]);
getch();
return 0;}

bunu yaptık ta olmadı 256 sayısınınasal açrpanları var diyo dama hocanınkinde yok diyo bu arada turbo c++ mış program :)

Edited by erdem_fb_54
Link to comment
Share on other sites

[quote name='kaan_karabey' date='20 November 2011 - 22:06 ' timestamp='1321819607' post='1115364']
dostum aynı dersi bende görüyorum cok sevmiyorum o dersi ve 28 inde vizeler başlıyor nasıl olacaksa

ha bu arada sizin hoca neyse ki böyle seyler istiyor bizim ki daha cins şeyler istiyor
[/quote]
Ye ben ek kontenjan ile gittim normallere vize ödevi bu ama ben hiç bişi bilmiyom banada verdi ödevi ve salı günü vermem lazım yapadım bi türlü yaptıklarımda bununki gibi olmadı işte

Link to comment
Share on other sites

[codebox]#include <stdio.h>
#include <conio.h>

main (){int i,k,s,j;
printf (" Bir sayi giriniz: ");scanf ("%d", &s);
printf(" %d sayisinin asal bolenleri: ",s);
for(i=2;i<s;i++){
if(s%i==0){
k=1;
for(j=2;j<i;j++) if(i%j==0)k=0;
if(k==1)printf("%3d",i);
}
}
getche();
}
[/codebox]

Umarım işini görür.
Kolay gelsin.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...