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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
barmagloteot
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 29
#1

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

14.11.2012, 22:37. Просмотров 521. Ответов 11
Метки нет (Все метки)

Доброго времени суток.
Язык изучаю несколько дней, до этого шло довольно легко, но с этим заданием как-то не получается справится:
"Написать программу, которая находит все возможные пары чисел 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 (C++):

Найти все натуральные числа из заданного интервала, для которых справедливо условие - C++
Найти все натуральные числа a, b, c из интервала от 1 до 20, для которых выполняется равенство a^2+b^2=c^2 Программу я начал писать: ...

Сформировать все возможные последовательности из n натуральных чисел, каждое из которых не провосходит m - C++
Доброго времени суток. Помогите пожалуйста с программой. Я то ли не понимаю ее смысл, то ли просто не могу написать, что в принципе одно и...

Найти все возможные варианты 4 переменных сумма которых больше 7 и меньше 10 - C++
Необходимо реализовать программу, которая перебирает все возможные варианты 4 переменных сумма которых больше 7 и меньша 10.

Между n и 2n найти все пары простых чисел, разница которых равна 2 - C++
Нужна написать программу на с++ для решение задачи. Между n и 2n найти все пары простых чисел, разница которых равна 2. желательно с...

Вывести комбинации целых x и y, при которых справедливо неравенство - C++
Ввести с клавиатуры натуральные числа N и М. Если N&lt;=9 или М&lt;=9, то предложить человеку повторить ввод N и М. В противном случае, найти...

Найти все пары чисел в интервале, одно из которых равно сумме всех делителей другого, кроме самого числа - C++
переведите пожалуйста код из Pascal в С++ i,j: integer; a,b: integer; //суммы делителей чисел procedure lol(x: integer; var y:...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MastAKK
145 / 136 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
14.11.2012, 22:56 #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  [ТС] #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
145 / 136 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
14.11.2012, 23:06 #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 #5
1. Цикл у вас бесконечный.
2. Вы проверяете только те варианты, когда А=В.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
14.11.2012, 23:08 #6
barmagloteot, у вас в решении ошибка.
Вот пример:
С = 5
очевидно, что 9 + 16 = 25
т.а. А = 3, В = 4
но ваша программа ничего не выдаст, так как вы делаете А++ и В++ одновременно. Т.е. они у вас всегда равны
barmagloteot
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 29
14.11.2012, 23:16  [ТС] #7
Цитата Сообщение от MastAKK Посмотреть сообщение
а всё остальное он нормально компилит?
Да, все компилит с этими же ошибками, но оно нормально работает. Поэтому пока даже не искал с чем они связаны.


Цитата Сообщение от maxiv608 Посмотреть сообщение
1. Цикл у вас бесконечный.
2. Вы проверяете только те варианты, когда А=В.
1. Насчет первого я знаю, предполагалось что решения он все равно будет выдавать. Пока нет мыслей какое ему вписать условие чтобы он остался работоспособным.
2. Да, это упустил, спасибо.
maxiv608
3 / 3 / 0
Регистрация: 10.08.2012
Сообщений: 9
14.11.2012, 23:18 #8
Цитата Сообщение от barmagloteot Посмотреть сообщение
1. Насчет первого я знаю, предполагалось что ответы решения он все равно будет выдавать. Пока нет мыслей какое ему вписать условие чтобы он остался работоспособным.
Можно ограничить А и В значением С (квадраты неотрицательны, а значит, А и В не могут быть больше, чем С).
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
14.11.2012, 23:19 #9
Цитата Сообщение от barmagloteot Посмотреть сообщение
1. Насчет первого я знаю, предполагалось что решения он все равно будет выдавать. Пока нет мыслей какое ему вписать условие чтобы он остался работоспособным.
самое простое условие - останавливать цикл, когда А или В стало больше или равно С
MastAKK
145 / 136 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
14.11.2012, 23:49 #10
В начале обучения советую Code::Blocks использовать
winpiece
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 20
14.11.2012, 23:54 #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;
}
barmagloteot
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 29
15.11.2012, 00:35  [ТС] #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. Решил не трогать, ноль тоже число
Спасибо всем за помощь.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2012, 00:35
Привет! Вот еще темы с ответами:

Рассчитать все возможные варианты для 3 знаков - C++
Дано: 1 2 0 Найти все возможные комбинации 10 разрядного числа (пример: 1021020021) и чтобы можно задавать разные условия для кол-ва...

Непонятно условие. Основы С++ (Найти все слова, в которых доля букв a, b максимальна) - C++
Добрый день. Задали решить пару задач из задачника Абрамова. Только условия вообще не могу понять! Помогите, пожалуйста, чем-нибудь!!...

Все элементы целочисленного вектора a размерности N, для которых справедливо условие ai=i, заменить нулем - VBA
задача есть решенная, но препод просить сделать ее в столбце начиная с ячейки (3,2) и что бы элемент в этой ячейке считался первым в...

Вывести на печать все пары индексов массивов, для которых выполняется условие - C (СИ)
Здравствуйте. Стрессия, выживаем как можем... Задание: Задать 2 динамические одномерные массива а и b, размерностью n. Вывести на...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.11.2012, 00:35
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru