نمایش نتایج 1 تا 40 از 320

نام تاپیک: مجموعه برنامه های نوشته شده به زبان C و ++C

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #8
    کاربر جدید
    تاریخ عضویت
    تیر 1389
    محل زندگی
    ایران => قزوین
    پست
    14

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    این هم اولین برنامه درست و حسابی من(یه برنامه دیگه هم دارم که یه عدد میگیره میگه اوله یا مرکب .یکی هم ناقصه که بین دو تا عدد اعداد اول رو پیدا میکنه.بخواید اینا رو هم میذارم)
    (پیدا کردم جفت اعداد صلح آمیز و اعداد کامل)(en.wikipedia.org/wiki/amicable_pairs)

    فایل main.cpp

    #include <conio.h>
    #include <iostream>
    #include <math.h>
    #include <stdlib.h>
    #include "conticker.h"
    #include "conticker.cpp"
    using namespace std;
    int main(){
    char c='y';
    do{
    int start,end;
    int ai=0,pi=0;
    bool checked=true;
    cout<<"----------------------------------------\n";
    cout<<"Enter a number to begin with : ";
    cin>>start;
    cout<<"Enter a number to finish with : ";
    cin>>end;
    cout<<"----------------------------------------\n";
    if(start>=end){
    cout<<"The beginning number must be smaller than the ending one.\n";
    continue;}
    else{
    system("cls");
    cout<<"Searching from "<<start<<" to "<<end<<".\n\n";
    if(start==1) start=2;
    long double a[500][2],p[500];
    a[0][0]=0;
    p[0]=0;
    ConTicker::start();
    for (size_t i = 0; i < 200; ++i) {
    for(int i=start;i<=end;++i){
    int sum1=1,sum2=1;
    for(int j=(int)sqrt(i);j>1;--j){
    if(i%j==0){
    sum1+=j;
    sum1+=i/j;
    }
    }
    for(int j=(int)sqrt(sum1);j>1;--j){
    if(sum1%j==0){
    sum2+=j;
    sum2+=sum1/j;
    }
    }
    if(sum2==i){
    if(sum1==i){
    for(int j=0;p[j]!=0;++j){
    if(p[j]==i){
    checked=false;
    break;}}
    if(checked){
    p[pi]=i;
    ++pi;
    p[pi]=0;
    cout<<"\rI found a perfect number : "<<i<<"\nPlease wait";}
    checked=true;}
    else{
    if(sum1<i){
    for(int j=0;a[j][0]!=0;++j){
    if(a[j][0]==sum1){
    checked=false;
    break;}}
    if(checked){
    a[ai][0]=sum1;
    a[ai][1]=i;
    ++ai;
    a[ai][0]=0;
    cout<<"\rI found an amicable pair : ("<<sum1<<","<<i<<")\nPlease wait";}
    checked=true;}
    else if(sum1>i ){
    for(int j=0;a[j][0]!=0;++j){
    if(a[j][0]==i){
    checked=false;
    break;}}
    if(checked){
    a[ai][0]=i;
    a[ai][1]=sum1;
    ++ai;
    a[ai][0]=0;
    cout<<"\rI found an amicable pair : ("<<i<<","<<sum1<<")\nPlease wait";}
    checked=true;}}}
    ConTicker::tick();}}
    ConTicker::stop();
    cout<<"\n----------------------------------------\n";
    cout<<"Do you want to continue(y/n)?";
    cin>>c;}}
    while(c=='y');
    return 0;
    }


    فایل conticker.h

    class ConTicker
    {
    public:
    ConTicker() {}
    static void start();
    static void tick();
    static void stop();
    private:
    static time_t t;
    static size_t i;
    static const char* c;
    };


    فایل conticker.cpp



    #include <windows.h>
    #include <time.h>

    time_t ConTicker::t = 0;
    size_t ConTicker::i = 0;
    void ConTicker::start()
    {
    time(&ConTicker::t);
    i = 0;
    }
    void ConTicker::tick()
    {
    if (ConTicker::t) {
    time_t t;
    time(&t);
    if (0.01 < difftime(t,ConTicker::t)) {
    ConTicker::t = t;
    ConTicker::i = ((ConTicker::i+1)&3);
    if(ConTicker::i!=0){
    _putch('.');
    }
    else{
    _cputs("\r \rPlease wait");
    }
    }
    }
    }
    void ConTicker::stop()
    {
    ConTicker::i = 0;
    ConTicker::t = 0;
    _cputs("\rDone! \r\n");
    cout<<"\a";
    }

    این یارو conticker چیز جالب و به درد بخوریه البته کار من نیست من فقط از یه بک اسلش چرخون به please wait و سه تا نقطه تغییرش دادم.
    این برنامه رو تازه کارا حتما بخونن
    امیدوارم خوشتون بیاد
    آخرین ویرایش به وسیله Shyan Javani : یک شنبه 27 تیر 1389 در 01:36 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •