Форум программистов, компьютерный форум CyberForum.ru

Все возможные пары A и B, для которых справедливо условие: A^2 +B^2 =C^2 - C++

Восстановить пароль Регистрация
 
barmagloteot
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 29
14.11.2012, 22:37     Все возможные пары A и B, для которых справедливо условие: A^2 +B^2 =C^2 #1
Доброго времени суток.
Язык изучаю несколько дней, до этого шло довольно легко, но с этим заданием как-то не получается справится:
"Написать программу, которая находит все возможные пары чисел A и B, для которых
справедливо условие: A^2+B^2=C^2. Число C вводит пользователь."

Пишу в visual c++ 2010 express.
Мой вариант кода:

#include "stdafx.h"
#include <iostream>
#include <clocale>
#include <cmath>
using namespace std;

int main(void)
{
setlocale(LC_CTYPE,"Russian");
float A,B,C;
cout<<"Введите число С ";
cin>>C;
for (A=0,B=0;;A++,B++)
{
if (pow(C,2)==pow(A,2)+pow(B,2))
cout<<A<<"^2+"<<B<<"^2="<<C<<"^2";
}
system("pause");
return 0;
}
После ввода C ничего не происходит. Пробовал по разному вставлять continue, ничего не дает.

В правильности именно такого решения не уверен.
Мной пока изучены такие операторы: if; if else; switch; for; while; do while; continue; break. Другие еще не изучались, поэтому не должны быть использованы.

Спасибо за любую помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2012, 22:37     Все возможные пары A и B, для которых справедливо условие: A^2 +B^2 =C^2
Посмотрите здесь:

Непонятно условие. Основы С++ (найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки) C++
C++ Непонятно условие. Основы С++ (Найти все слова, в которых доля букв a, b максимальна)
C++ Между n и 2n найти все пары простых чисел, разница которых равна 2
C++ Сформировать все возможные последовательности из n натуральных чисел, каждое из которых не провосходит m
C++ Найти первый из номеров K, для которых выполняется условие
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MastAKK
 Аватар для MastAKK
143 / 134 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
14.11.2012, 22:56     Все возможные пары A и B, для которых справедливо условие: A^2 +B^2 =C^2 #2
Цитата Сообщение от barmagloteot Посмотреть сообщение
Доброго времени суток.
Язык изучаю несколько дней, до этого шло довольно легко, но с этим заданием как-то не получается справится:
"Написать программу, которая находит все возможные пары чисел A и B, для которых
справедливо условие: A^2+B^2=C^2. Число C вводит пользователь."

Пишу в visual c++ 2010 express.
Мой вариант кода:

#include "stdafx.h"
#include <iostream>
#include <clocale>
#include <cmath>
using namespace std;

int main(void)
{
setlocale(LC_CTYPE,"Russian");
float A,B,C;
cout<<"Введите число С ";
cin>>C;
for (A=0,B=0;;A++,B++)
{
if (pow(C,2)==pow(A,2)+pow(B,2))
cout<<A<<"^2+"<<B<<"^2="<<C<<"^2";
}
system("pause");
return 0;
}
После ввода C ничего не происходит. Пробовал по разному вставлять continue, ничего не дает.

В правильности именно такого решения не уверен.
Мной пока изучены такие операторы: if; if else; switch; for; while; do while; continue; break. Другие еще не изучались, поэтому не должны быть использованы.

Спасибо за любую помощь.
А что пишет?
barmagloteot
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 29
14.11.2012, 23:02  [ТС]     Все возможные пары A и B, для которых справедливо условие: A^2 +B^2 =C^2 #3
В самом окне ничего, просто переходит на следующую строку и там мерцает курсор.
В отладке:
"Лаб_3_2.exe": Загружено: "C:\Users\Valeriy\Documents\Programing\Лаб_3_2\Debug\Лаб_3_2.exe", Символы загружены.
"Лаб_3_2.exe": Загружено: "C:\Windows\SysWOW64\ntdll.dll", Невозможно найти или открыть файл PDB
"Лаб_3_2.exe": Загружено: "C:\Windows\SysWOW64\kernel32.dll", Невозможно найти или открыть файл PDB
"Лаб_3_2.exe": Загружено: "C:\Windows\SysWOW64\KernelBase.dll", Невозможно найти или открыть файл PDB
"Лаб_3_2.exe": Загружено: "C:\Windows\SysWOW64\msvcr100d.dll", Символы загружены.
"Лаб_3_2.exe": Загружено: "C:\Windows\SysWOW64\msvcp100d.dll", Символы загружены.
Поток 'Поток Win32' (0x147c) завершился с кодом -1073741510 (0xc000013a).
Программа "[4864] Лаб_3_2.exe: Машинный код" завершилась с кодом -1073741510 (0xc000013a).

Там где "Невозможно найти или открыть файл PDB" у меня всегда так пишет, на работоспособность предыдущих программ не влияло вроде.
Система Win 8 Pro x64.
MastAKK
 Аватар для MastAKK
143 / 134 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
14.11.2012, 23:06     Все возможные пары A и B, для которых справедливо условие: A^2 +B^2 =C^2 #4
Цитата Сообщение от barmagloteot Посмотреть сообщение
В самом окне ничего, просто переходит на следующую строку и там мерцает курсор.
В отладке:
"Лаб_3_2.exe": Загружено: "C:\Users\Valeriy\Documents\Programing\Лаб_3_2\Debug\Лаб_3_2.exe", Символы загружены.
"Лаб_3_2.exe": Загружено: "C:\Windows\SysWOW64\ntdll.dll", Невозможно найти или открыть файл PDB
"Лаб_3_2.exe": Загружено: "C:\Windows\SysWOW64\kernel32.dll", Невозможно найти или открыть файл PDB
"Лаб_3_2.exe": Загружено: "C:\Windows\SysWOW64\KernelBase.dll", Невозможно найти или открыть файл PDB
"Лаб_3_2.exe": Загружено: "C:\Windows\SysWOW64\msvcr100d.dll", Символы загружены.
"Лаб_3_2.exe": Загружено: "C:\Windows\SysWOW64\msvcp100d.dll", Символы загружены.
Поток 'Поток Win32' (0x147c) завершился с кодом -1073741510 (0xc000013a).
Программа "[4864] Лаб_3_2.exe: Машинный код" завершилась с кодом -1073741510 (0xc000013a).

Там где "Невозможно найти или открыть файл PDB" у меня всегда так пишет, на работоспособность предыдущих программ не влияло вроде.
Система Win 8 Pro x64.
а всё остальное он нормально компилит?
maxiv608
3 / 3 / 0
Регистрация: 10.08.2012
Сообщений: 9
14.11.2012, 23:07     Все возможные пары A и B, для которых справедливо условие: A^2 +B^2 =C^2 #5
1. Цикл у вас бесконечный.
2. Вы проверяете только те варианты, когда А=В.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
14.11.2012, 23:08     Все возможные пары A и B, для которых справедливо условие: A^2 +B^2 =C^2 #6
barmagloteot, у вас в решении ошибка.
Вот пример:
С = 5
очевидно, что 9 + 16 = 25
т.а. А = 3, В = 4
но ваша программа ничего не выдаст, так как вы делаете А++ и В++ одновременно. Т.е. они у вас всегда равны
barmagloteot
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 29
14.11.2012, 23:16  [ТС]     Все возможные пары A и B, для которых справедливо условие: A^2 +B^2 =C^2 #7
Цитата Сообщение от MastAKK Посмотреть сообщение
а всё остальное он нормально компилит?
Да, все компилит с этими же ошибками, но оно нормально работает. Поэтому пока даже не искал с чем они связаны.


Цитата Сообщение от maxiv608 Посмотреть сообщение
1. Цикл у вас бесконечный.
2. Вы проверяете только те варианты, когда А=В.
1. Насчет первого я знаю, предполагалось что решения он все равно будет выдавать. Пока нет мыслей какое ему вписать условие чтобы он остался работоспособным.
2. Да, это упустил, спасибо.
maxiv608
3 / 3 / 0
Регистрация: 10.08.2012
Сообщений: 9
14.11.2012, 23:18     Все возможные пары A и B, для которых справедливо условие: A^2 +B^2 =C^2 #8
Цитата Сообщение от barmagloteot Посмотреть сообщение
1. Насчет первого я знаю, предполагалось что ответы решения он все равно будет выдавать. Пока нет мыслей какое ему вписать условие чтобы он остался работоспособным.
Можно ограничить А и В значением С (квадраты неотрицательны, а значит, А и В не могут быть больше, чем С).
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
14.11.2012, 23:19     Все возможные пары A и B, для которых справедливо условие: A^2 +B^2 =C^2 #9
Цитата Сообщение от barmagloteot Посмотреть сообщение
1. Насчет первого я знаю, предполагалось что решения он все равно будет выдавать. Пока нет мыслей какое ему вписать условие чтобы он остался работоспособным.
самое простое условие - останавливать цикл, когда А или В стало больше или равно С
MastAKK
 Аватар для MastAKK
143 / 134 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
14.11.2012, 23:49     Все возможные пары A и B, для которых справедливо условие: A^2 +B^2 =C^2 #10
В начале обучения советую Code::Blocks использовать
winpiece
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 20
14.11.2012, 23:54     Все возможные пары A и B, для которых справедливо условие: A^2 +B^2 =C^2 #11
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int main()
{
    int MAX=100;
    for(int i=1; i<MAX; i++)
    {
        for(int j=1; j<MAX; j++)
        {
            for(int k=1; k<MAX; k++)
            {
                if(i*i+j*j==k*k) std::cout<<"("<<i<<"^2)+("<<j<<"^2)="<<k<<"^2"<<std::endl; 
            }
        }
    }
    system("pause>>void");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2012, 00:35     Все возможные пары A и B, для которых справедливо условие: A^2 +B^2 =C^2
Еще ссылки по теме:

Рассчитать все возможные варианты для 3 знаков C++
C++ Найти все пары чисел в интервале, одно из которых равно сумме всех делителей другого, кроме самого числа
C++ Вывести комбинации целых x и y, при которых справедливо неравенство

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
barmagloteot
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 29
15.11.2012, 00:35  [ТС]     Все возможные пары A и B, для которых справедливо условие: A^2 +B^2 =C^2 #12
Решил таким образом:

#include "stdafx.h"
#include <iostream>
#include <clocale>
#include <cmath>
using namespace std;


int main(void)
{
setlocale(LC_CTYPE,"Russian");
float A,B,C;
cout<<"Введите число С ";
cin>>C;
for (A=0,B=0;B<=C;A++)
{
if (pow(C,2)==pow(A,2)+pow(B,2))
cout<<A<<"^2+"<<B<<"^2="<<C<<"^2"<<endl;
else if (A>=C) B++,A=0;
else;
}

system("pause");
return 0;
}

Из минусов - результаты показывает дважды, меняя местами слагаемые. Пока решил над этим не заморачиваться.
Также из-за инициализации A и B нулями, показывает очевидное A^2+0=C^2 , при A=C. Решил не трогать, ноль тоже число
Спасибо всем за помощь.
Yandex
Объявления
15.11.2012, 00:35     Все возможные пары A и B, для которых справедливо условие: A^2 +B^2 =C^2
Ответ Создать тему
Опции темы

Текущее время: 19:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru