Форум

Data.BG Форуми: Курсова задача на C++ - Data.BG Форуми

Прехвърляне към съдържание

Страница 1 от 1
  • Вие не можете да започнете нова тема
  • Вие не може да отговаряте на тази тема

Курсова задача на C++

#1
Потребителят е неактивен   pepi9846 

  • Група: Потребители
  • Мнения: 7
  • Регистриран: 30-April 16
  • Репутация: 0
  • Пол:Мъж
  • Град:Плевен
Здравейте колеги ! Имам да направя курсова задача по Синтез и Анализ на Алгоритми .. Задачата ми е за понеделник и трябва да е написана на C++ . Ето го и условието : Да се напише програма,която за дадено естествено число N да намира такава тройка числа a,b,c (естествени и c<N), за която a2+b2=c2 .. Благодаря ви много предварително !

Мнението беше редактирано от pepi9846: 24.02.18 - 12:45

0

#2
Потребителят е неактивен   inedx 

  • Група: Потребители
  • Мнения: 2173
  • Регистриран: 16-May 05
  • Репутация: 426
  • Пол:Мъж
  • Град:Варна
#include <iostream>

using namespace std;

int main()
{
    unsigned b2,ca,c2;
    unsigned a, b, c, N;
    int br=0;
    
    cout<<"N = ";
    cin>>N;
    if (N<2||N>=65536) return 1;
    
    for (c=2; c<N; ++c)
    { 
        c2=c*c;
        b =c-1;
        b2=b*b;
        for (a=1; a<c; ++a)
        {   
            ca=c2-a*a;
            if (ca<b2) b2=--b*b;
            if (ca==b2) cout<<++br<<".  a = "<<a<<"\tb = "<<b<<"\tc = "<<c<<endl;
        }
    }
}

ASRock B85 Pro4, Pentium G3240, DD3 8GB/1333MHz,120GB SSD + 4TB + 640GB HDD
Gigabyte GV-R657OC-1GI, CM B500, ASUS 24B1S1, LCD SAMSUNG SM931BW, ME173X
“Μαματα ςι ε εδαλο” — гръцка поговорка
0

#3
Потребителят е неактивен   pepi9846 

  • Група: Потребители
  • Мнения: 7
  • Регистриран: 30-April 16
  • Репутация: 0
  • Пол:Мъж
  • Град:Плевен

Преглед на мнениеinedx, на 24.02.18 - 14:21, каза:

#include <iostream>

using namespace std;

int main()
{
    unsigned b2,ca,c2;
    unsigned a, b, c, N;
    int br=0;
    
    cout<<"N = ";
    cin>>N;
    if (N<2||N>=65536) return 1;
    
    for (c=2; c<N; ++c)
    { 
        c2=c*c;
        b =c-1;
        b2=b*b;
        for (a=1; a<c; ++a)
        {   
            ca=c2-a*a;
            if (ca<b2) b2=--b*b;
            if (ca==b2) cout<<++br<<".  a = "<<a<<"\tb = "<<b<<"\tc = "<<c<<endl;
        }
    }
}


Нещо не работи сякаш?
0

#4
Потребителят е неактивен   inedx 

  • Група: Потребители
  • Мнения: 2173
  • Регистриран: 16-May 05
  • Репутация: 426
  • Пол:Мъж
  • Град:Варна
Как би трябвало да работи, че тая "не работи сякаш" :chuckle:
ASRock B85 Pro4, Pentium G3240, DD3 8GB/1333MHz,120GB SSD + 4TB + 640GB HDD
Gigabyte GV-R657OC-1GI, CM B500, ASUS 24B1S1, LCD SAMSUNG SM931BW, ME173X
“Μαματα ςι ε εδαλο” — гръцка поговорка
0

#5
Потребителят е неактивен   pepi9846 

  • Група: Потребители
  • Мнения: 7
  • Регистриран: 30-April 16
  • Репутация: 0
  • Пол:Мъж
  • Град:Плевен

Преглед на мнениеinedx, на 24.02.18 - 14:57, каза:

Как би трябвало да работи, че тая "не работи сякаш" :chuckle:

Пиши на лично колега
0

#6
Потребителят е неактивен   inedx 

  • Група: Потребители
  • Мнения: 2173
  • Регистриран: 16-May 05
  • Репутация: 426
  • Пол:Мъж
  • Град:Варна
Защо на лично като може след време да потрябва и на някой друг?

Иначе да, има известен проблем с програмата, че не извежда всички възможни тройки числа

версия 2

#include <iostream>

using namespace std;

int main()
{
    unsigned b2,ca,c2;
    unsigned a, b, c, N;
    int br=0;
    
    cout<<"N = ";
    cin>>N;
    if (N<2||N>=65536) return 1;
    
    for (c=2; c<N; ++c)
    { 
        c2=c*c;
        b =c-1;
        b2=b*b;
        for (a=1; a<=b; ++a)
        {   
            ca=c2-a*a;
            if (ca==b2) 
            {
                 cout<<++br<<".  a = "<<a<<"\tb = "<<b<<"\tc = "<<c<<endl;
                 cout<<++br<<".  a = "<<b<<"\tb = "<<a<<"\tc = "<<c<<endl;
            }
            if (ca<b2) b2=--b*b;
        }
    }
}

Мнението беше редактирано от inedx: 24.02.18 - 16:24

ASRock B85 Pro4, Pentium G3240, DD3 8GB/1333MHz,120GB SSD + 4TB + 640GB HDD
Gigabyte GV-R657OC-1GI, CM B500, ASUS 24B1S1, LCD SAMSUNG SM931BW, ME173X
“Μαματα ςι ε εδαλο” — гръцка поговорка
0

#7
Потребителят е неактивен   pepi9846 

  • Група: Потребители
  • Мнения: 7
  • Регистриран: 30-April 16
  • Репутация: 0
  • Пол:Мъж
  • Град:Плевен

Преглед на мнениеinedx, на 24.02.18 - 16:21, каза:

Защо на лично като може след време да потрябва и на някой друг?

Иначе да, има известен проблем с програмата, че не извежда всички възможни тройки числа

версия 2

#include <iostream>

using namespace std;

int main()
{
    unsigned b2,ca,c2;
    unsigned a, b, c, N;
    int br=0;
    
    cout<<"N = ";
    cin>>N;
    if (N<2||N>=65536) return 1;
    
    for (c=2; c<N; ++c)
    { 
        c2=c*c;
        b =c-1;
        b2=b*b;
        for (a=1; a<=b; ++a)
        {   
            ca=c2-a*a;
            if (ca==b2) 
            {
                 cout<<++br<<".  a = "<<a<<"\tb = "<<b<<"\tc = "<<c<<endl;
                 cout<<++br<<".  a = "<<b<<"\tb = "<<a<<"\tc = "<<c<<endl;
            }
            if (ca<b2) b2=--b*b;
        }
    }
}


Като дам стойност на N , например : 3 и ми излиза Press any key to continiue?
0

#8
Потребителят е неактивен   inedx 

  • Група: Потребители
  • Мнения: 2173
  • Регистриран: 16-May 05
  • Репутация: 426
  • Пол:Мъж
  • Град:Варна
Ами нормално - най-малката тройка е 3, 4 и 5 или N трябва да ти е по-голямо от 5, че да ти изведе нещо
ASRock B85 Pro4, Pentium G3240, DD3 8GB/1333MHz,120GB SSD + 4TB + 640GB HDD
Gigabyte GV-R657OC-1GI, CM B500, ASUS 24B1S1, LCD SAMSUNG SM931BW, ME173X
“Μαματα ςι ε εδαλο” — гръцка поговорка
0

#9
Потребителят е неактивен   pepi9846 

  • Група: Потребители
  • Мнения: 7
  • Регистриран: 30-April 16
  • Репутация: 0
  • Пол:Мъж
  • Град:Плевен

Преглед на мнениеinedx, на 24.02.18 - 16:51, каза:

Ами нормално - най-малката тройка е 3, 4 и 5 или N трябва да ти е по-голямо от 5, че да ти изведе нещо

Като напиша стойност 6 например , пак ми се затваря прозореца...
0

#10
Потребителят е неактивен   georgedimov 

  • Група: Потребители
  • Мнения: 5330
  • Регистриран: 26-May 03
  • Репутация: 61
  • Пол:Мъж
  • Град:Велико Търново

Преглед на мнениеinedx, на 24.02.18 - 16:51, каза:

Ами нормално - най-малката тройка е 3, 4 и 5 или N трябва да ти е по-голямо от 5, че да ти изведе нещо

Абе, Питагоре, в кой клас го откри тоя триъгълник :chuckle:
И защо след малки подобрения си работи при мен :unsure:
// target compiler Dev-C++ 5.11 // added
#include <iostream>

using namespace std;

int main()
{
    unsigned long long b2,ca,c2; // modified, but not needed for 32-bit unsigned

    unsigned a, b, c, N;
    unsigned br=0; // type modified, because it will be not an int
    
    cout<<"enter N(between 5 and 65535 = "; // upper bound modified to avoid 16-bit overflow
    cin>>N;
    if (N<5||N>65535) return 1; // upper bound modified to avoid 16-bit overflow
    
    for (c=2; c<(N+1); ++c) //  modified to avoid 16-bit overflow
    { 
        c2=c*c;
        b =c-1;
        b2=b*b;
        for (a=1; a<=b; ++a)
        {   
            ca=c2-a*a;
            if (ca==b2) 
            {
                 cout<<++br<<".  a = "<<a<<"\tb = "<<b<<"\tc = "<<c<<endl;
                 cout<<++br<<".  a = "<<b<<"\tb = "<<a<<"\tc = "<<c<<endl;
            }
            if (ca<b2) b2=--b*b;
        }
    }
    return 0; // added, but not needed of course
}

Мнението беше редактирано от georgedimov: 26.02.18 - 03:50

0

#11
Потребителят е неактивен   pepi9846 

  • Група: Потребители
  • Мнения: 7
  • Регистриран: 30-April 16
  • Репутация: 0
  • Пол:Мъж
  • Град:Плевен
Здравейте колеги , отново! Имам още една задача която трябва да направя . Тя е следната : Да се състави програма за създаване на динамична опашка и изключване от нея на N-тия елемент от края.Да се изведе на екрана получената опашка.Благодаря предварително
0

#12
Потребителят е неактивен   georgedimov 

  • Група: Потребители
  • Мнения: 5330
  • Регистриран: 26-May 03
  • Репутация: 61
  • Пол:Мъж
  • Град:Велико Търново

Преглед на мнениеpepi9846, на 21.03.18 - 16:56, каза:

Здравейте колеги , отново! Имам още една задача която трябва да направя . Тя е следната : Да се състави програма за създаване на динамична опашка и изключване от нея на N-тия елемент от края.Да се изведе на екрана получената опашка.Благодаря предварително

Ами то тук има нещо подобно, ама иска редактиране, което хич не ми се прави :sadsad:
П.С. Двойната опашка си е динамична by default :chuckle:

Мнението беше редактирано от georgedimov: 26.03.18 - 12:58

0

Споделете тази тема чрез:


Страница 1 от 1
  • Вие не можете да започнете нова тема
  • Вие не може да отговаряте на тази тема

1 потребители четат тази тема
0 регистрирани потребители, 1 гости и 0 анонимни потребители


Data.BG e форум за дискусии. Data.BG не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Data.BG.

Close  Member Login