Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
4 / 4 / 1
Регистрация: 12.09.2013
Сообщений: 134

Написать на С++

26.10.2013, 20:30. Показов 2579. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пожалуйста,помогите решить пару задач.А в некоторых просто ошибки найти не могу.
Кликните здесь для просмотра всего текста
Координаты постоянно выдает последней точки,не знаю,что делать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//Даны целочисленные координаты трех вершин прямоугольника стороны которого параллельны координатным осям.Найти координаты его четвертой вершины.
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    int x1,x2,x3,x4,y1,y2,y3,y4;
    cout<<"\n Введите координаты трех вершин прямоугольника, стороны которого параллельны координатным осям"<<endl;
    cout<<"\n Введите координаты 1-ой вершины:"<<endl;
    cin>>x1>>y1;
    cout<<"\n Введите координаты 2-ой вершины:"<<endl;
    cin>>x2>>y2;
    cout<<"\n Введите координаты 3-ой вершины:"<<endl;
    cin>>x3>>y3;
    if (x1=x2)  
        x4=x3;
    else if (x1=x3)  
             x4=x2;
    else x4=x1;
    if (y1=y2)  
        y4=y3;
    else if (y1=y3)  
             y4=y2;
    else  y4=y1;
    cout<<"\n Координаты 4-ой вершины"<<x4<<y4<<endl;
    return 0;
}



Кликните здесь для просмотра всего текста
Тут почему-то выводит 2 направления в конце(
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*Локатор ориентирован на одну из сторон света(С-север,З-запад,Ю-юг,В-восток) и может принимать три цифровые команды поворота:1-поворот налево, -1-поворот направо,
 2-поворот на 180градусов. Дан символ С-исходная ориентация локатора и целые числа N1,N2-две посланные команды.Вывести ориентацию локатора после выполнения этих команд*/
#include <iostream>
using namespace std;
 
int main()
{
    setlocale (LC_ALL,"Russian");
    int N,W,S,E,x,N1,N2,N3;                 //N-север,W-запад,S-юг,E-восток
    char C;
    cout<< "\n Укажите на какую из сторон ориентирован локатор (N-север,W-запад,S-юг,E-восток):";
    cin>>C;
    if (C='N')
        x=0;
    else if (C='W')
        x=1;
    else x=2;
    if (C='E') 
        x=3;
    cout<< "\n Введите первую цифровую команду (1-поворот на лево, -1-поворот направо, 2-поворот на 180) N1=";
    cin>>N1;
    cout<< "\n Введите вторую цифровую команду (1-поворот на лево, -1-поворот направо, 2-поворот на 180) N2=";
    cin>>N2;
    N3=N1+N2;
    if (x=0)
    cout<< "\n Ориентация локатора - Север"<<endl;
    else 
    cout<< "\n Ориентация локатора - Запад"<<endl;
    if (x=2)
    cout<< "\n Ориентация локатора - Юг"<<endl;
    else 
    cout<< "\n Ориентация локатора - Восток"<<endl;
    return 0;
}


Кликните здесь для просмотра всего текста
Ну тут совсем печалька
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*Дано вещественное число X и целое число N (> 0). Найти значение выражения
x-x^3(3!)+x^5/(5!)-...+(-1)^N*x^(2N+1)/((2N+1)!)
(N! = 1·2·…·N). Полученное число является приближенным значением
функции Sin в точке X. */
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    setlocale (LC_ALL,"Russian");
    double x;
    int N,S,ch,zn,chl,t,eps;
    eps=0.001;
    S=1;
    cout<<"\n Введите число (N>0) N=";
    cin>>N;
    cout<<"\n Введите число (|x|<1) x=";
    cin>>x;
    t=sin(x);
    N!=N*N;
    chl=pow(-1,N)*pow(x,2*N+1)/(2*N+1);
    S=S+chl;
   cout<<"\n S="<<S<<endl;
   cout<<"\n t="<<t<<endl;
   return 0;
}


Кликните здесь для просмотра всего текста
В ответе выводит значение А
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/*Даны целые положительные числа A и B. Найти их наибольший об-
щий делитель (НОД), используя алгоритм Евклида:
НОД(A, B) = НОД(B, A mod B), если B ≠ 0; НОД(A, 0) = A.  */
#include <iostream>
using namespace std;
 
int main()
{
    setlocale (LC_ALL,"Russian");
    int A,B;
    cout<<"\n Введите число A=";
    cin>>A;
    cout<<"\n Введите число B=";
    cin>>B;
    while (A<0 && A>0 && B<0 && B>0)
    {   
        if (A>=B)
            A=A/B;
        else B=B/A;
    }
    cout<< "\n Наибольший общий делитель NOD="<<(A,B)<<endl;
    return 0;
}


И вот пару пару задач совсем не могу придумать как решать
Кликните здесь для просмотра всего текста
1.Дано целое число N (> 1) и набор из N вещественных чисел. Если
данный набор образует убывающую последовательность, то вывести 0;
в противном случае вывести номер первого числа, нарушающего
закономерность.
2. Дано целое число K, а также K наборов ненулевых целых чисел. Ка-
ждый набор содержит не менее двух элементов, признаком его завершения
является число 0. Найти количество наборов, элементы которых возраста-
ют.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.10.2013, 20:30
Ответы с готовыми решениями:

Написать класс по строительству домов. Написать программу, демонстрирующую работу с классом.
Собственно, в С++ немного насасываю, код читать умею, а прогать - нет. К сожалению, обстоятельства сложились так, что я поступил именно...

Написать комментарии к строкам выполнения программы и написать, где находится рекурсия
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;locale&gt; using namespace std; struct Road { char start; char...

Написать функцию, возвращающую номер минимального элемента в простом списке
написать функцию, возвращающую номер минимального элемента в простом списке.

35
32 / 31 / 1
Регистрация: 04.07.2013
Сообщений: 232
Записей в блоге: 1
27.10.2013, 00:20
Студворк — интернет-сервис помощи студентам
Первое задание,например,так можно

Кликните здесь для просмотра всего текста
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <istream>
#include <conio.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    int x1,x2,x3,x4,y1,y2,y3,y4;
    cout<<" Введите координаты трех вершин прямоугольника, стороны которого параллельны координатным осям\n";
    cout<<" Введите координаты 1-ой вершины:\n";
    cin>>x1>>y1;
    cout<<" Введите координаты 2-ой вершины:\n";
    cin>>x2>>y2;
    cout<<" Введите координаты 3-ой вершины:\n";
    cin>>x3>>y3;
    if (x1==x2 && y2==y3)
    {
        x4=x3;
        y4=y1;
    }
    else
        {
        x4=x2;
        y4=y1;
    }
    cout<<"четвертая вершина"<<x4<<";"<<y4;
    getch();
}


Добавлено через 5 минут
хотя проверка выполнения условия,конечно,еще требует уточнения

Добавлено через 4 минуты
Да и не понятно,как мы вводим координаты вершин - последовательно, от первой до третьей (тогда что считать первой,второй и третьей вершиной?),или же вводим координаты вершин в произвольном порядке (при этом опять же,не ясно,что считается первой вершиной,а что второй и третьей, я принял,что первая вершина - левая снизу,вторая левая сверху,третья-справа вверху,четвертая-справа внизу).
1
4 / 4 / 1
Регистрация: 12.09.2013
Сообщений: 134
27.10.2013, 00:39  [ТС]
Цитата Сообщение от de-pre Посмотреть сообщение
Первое задание,например,так можно

Кликните здесь для просмотра всего текста
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <istream>
#include <conio.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    int x1,x2,x3,x4,y1,y2,y3,y4;
    cout<<" Введите координаты трех вершин прямоугольника, стороны которого параллельны координатным осям\n";
    cout<<" Введите координаты 1-ой вершины:\n";
    cin>>x1>>y1;
    cout<<" Введите координаты 2-ой вершины:\n";
    cin>>x2>>y2;
    cout<<" Введите координаты 3-ой вершины:\n";
    cin>>x3>>y3;
    if (x1==x2 && y2==y3)
    {
        x4=x3;
        y4=y1;
    }
    else
        {
        x4=x2;
        y4=y1;
    }
    cout<<"четвертая вершина"<<x4<<";"<<y4;
    getch();
}


Добавлено через 5 минут
хотя проверка выполнения условия,конечно,еще требует уточнения

Добавлено через 4 минуты
Да и не понятно,как мы вводим координаты вершин - последовательно, от первой до третьей (тогда что считать первой,второй и третьей вершиной?),или же вводим координаты вершин в произвольном порядке (при этом опять же,не ясно,что считается первой вершиной,а что второй и третьей, я принял,что первая вершина - левая снизу,вторая левая сверху,третья-справа вверху,четвертая-справа внизу).
я так же вершины принимала)огромное спасибо,вы очень помогли)а не могли бы глянуть,что не так я во второй задаче делаю??)
0
32 / 31 / 1
Регистрация: 04.07.2013
Сообщений: 232
Записей в блоге: 1
27.10.2013, 00:44
Цитата Сообщение от KyKi Посмотреть сообщение
я так же вершины принимала)огромное спасибо,вы очень помогли)
Ну если так же,и считать,что проверка выполнения условия не нужна,то блок if-else можно выкинутьи переписать всё так:
Кликните здесь для просмотра всего текста
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <istream>
#include <conio.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    int x1,x2,x3,x4,y1,y2,y3,y4;
    cout<<" Введите координаты трех вершин прямоугольника, стороны которого параллельны координатным осям\n";
    cout<<" Введите координаты 1-ой вершины:\n";
    cin>>x1>>y1;
    cout<<" Введите координаты 2-ой вершины:\n";
    cin>>x2>>y2;
    cout<<" Введите координаты 3-ой вершины:\n";
    cin>>x3>>y3;
    x4=x3;
    y4=y1;
    cout<<"четвертая вершина"<<x4<<";"<<y4;
    getch();
}
1
4 / 4 / 1
Регистрация: 12.09.2013
Сообщений: 134
27.10.2013, 00:47  [ТС]
Цитата Сообщение от de-pre Посмотреть сообщение
Ну если так же,и считать,что проверка выполнения условия не нужна,то блок if-else можно выкинутьи переписать всё так:
Кликните здесь для просмотра всего текста
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <istream>
#include <conio.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    int x1,x2,x3,x4,y1,y2,y3,y4;
    cout<<" Введите координаты трех вершин прямоугольника, стороны которого параллельны координатным осям\n";
    cout<<" Введите координаты 1-ой вершины:\n";
    cin>>x1>>y1;
    cout<<" Введите координаты 2-ой вершины:\n";
    cin>>x2>>y2;
    cout<<" Введите координаты 3-ой вершины:\n";
    cin>>x3>>y3;
    x4=x3;
    y4=y1;
    cout<<"четвертая вершина"<<x4<<";"<<y4;
    getch();
}
Да не)я думаю дописать проверку)а то если вводить координаты не параллельные к осям,оно все равно выдает ответ)
А можете глянуть что во второй задаче не так?
0
32 / 31 / 1
Регистрация: 04.07.2013
Сообщений: 232
Записей в блоге: 1
27.10.2013, 00:47
Цитата Сообщение от KyKi Посмотреть сообщение
а не могли бы глянуть,что не так я во второй задаче делаю??)
"Студент может всё"
Но уже утром.
0
4 / 4 / 1
Регистрация: 12.09.2013
Сообщений: 134
27.10.2013, 15:14  [ТС]
Цитата Сообщение от de-pre Посмотреть сообщение
"Студент может всё"
Но уже утром.
Ох как понимаю)))))Но все равно огромное спасибо за помощь

Добавлено через 14 часов 25 минут
Справилась со вторым заданием,вот код,может кому-то пригодится)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
int main()
{
    setlocale (LC_ALL,"Russian");
    int N,W,S,E,x,N1,N2,N3;                 //N-север,W-запад,S-юг,E-восток
    char C;
    cout<< "\n Укажите на какую из сторон ориентирован локатор (N-север,W-запад,S-юг,E-восток):";
    cin>>C;
    
    if (C='N')
        x=0;
    else if (C='W')
        x=1;
    else x=2;
    if (C='E') 
        x=3;
    cout<< "\n Введите первую цифровую команду (1-поворот на лево, -1-поворот направо, 2-поворот на 180) N1=";
    cin>>N1;
    cout<< "\n Введите вторую цифровую команду (1-поворот на лево, -1-поворот направо, 2-поворот на 180) N2=";
    cin>>N2;
    N3=N1+N2;
    switch(N3)
    {
    case 0:
    cout<< "\n Ориентация локатора - Север"<<endl;
    break;
    case 1:
    cout<< "\n Ориентация локатора - Запад"<<endl;
    break;
    case 2:
    cout<< "\n Ориентация локатора - Юг"<<endl;
    break;
    case 3:
    cout<< "\n Ориентация локатора - Восток"<<endl;
    break;
    }
    return 0;
}
А вот с 3-ей все еще печально(может кто-нибудь подсказать??
1
205 / 165 / 41
Регистрация: 25.10.2013
Сообщений: 527
27.10.2013, 15:25
Цитата Сообщение от KyKi Посмотреть сообщение
Справилась со вторым заданием,вот код,может кому-то пригодится)
Девушка, вы не справились со вторым заданием. Вы так и не поняли, чем == отличается от =. Я же не зря пытался до вас достучаться по этой теме.
= - операция присваивания.
== - операция сравнения
и в
C++
1
if (C='N')
Вы не сравниваете переменную С со значением 'N', а присваиваете ей это значение.
0
4 / 4 / 1
Регистрация: 12.09.2013
Сообщений: 134
27.10.2013, 15:34  [ТС]
Цитата Сообщение от Shtirliz72 Посмотреть сообщение
Девушка, вы не справились со вторым заданием. Вы так и не поняли, чем == отличается от =. Я же не зря пытался до вас достучаться по этой теме.
= - операция присваивания.
== - операция сравнения
и в
C++
1
if (C='N')
Вы не сравниваете переменную С со значением 'N', а присваиваете ей это значение.
что удивительно,что работает оно и с = и с ==...
0
 Аватар для Жанерке
35 / 35 / 8
Регистрация: 22.09.2013
Сообщений: 170
27.10.2013, 15:38
Shtirliz72, ну кому то важно что б вышло "ответо пободные " вещи

все таки не достучались )))
0
205 / 165 / 41
Регистрация: 25.10.2013
Сообщений: 527
27.10.2013, 15:43
Цитата Сообщение от KyKi Посмотреть сообщение
что удивительно,что работает оно и с = и с ==...
Нет ничего удивительного. Приравнивание - это операция, возвращает собственно то, что присваивалось. Поэтому поэтому if(a=5) эквивалентно условию if(5) и, соответственно, выполняет всегда. А if(a=0) эквивалентно if(0) - и никогда не выполняется.
2
4 / 4 / 1
Регистрация: 12.09.2013
Сообщений: 134
27.10.2013, 15:47  [ТС]
Цитата Сообщение от Жанерке Посмотреть сообщение
Shtirliz72, ну кому то важно что б вышло "ответо пободные " вещи

все таки не достучались )))
достучался...просто когда надо написать 13 задач на пару дней,мозг начинает плавится

Добавлено через 39 секунд
Цитата Сообщение от Shtirliz72 Посмотреть сообщение
Нет ничего удивительного. Приравнивание - это операция, возвращает собственно то, что присваивалось. Поэтому поэтому if(a=5) эквивалентно условию if(5) и, соответственно, выполняет всегда. А if(a=0) эквивалентно if(0) - и никогда не выполняется.
да,поняла,спасибо
0
205 / 165 / 41
Регистрация: 25.10.2013
Сообщений: 527
27.10.2013, 16:12
По третьей задаче я просил у вас узнать чем отличаются int от double и что такое !=, вы посмотрели?
Функцию же факториала я вам выше привёл.
Надеюсь это поможет. И не бойтесь использовать гугл.

Добавлено через 22 минуты
Цитата Сообщение от Жанерке Посмотреть сообщение

Не по теме:

Shtirliz72, ну кому то важно что б вышло "ответо пободные " вещи

Не по теме:

Самое главное - у человека всё нормально с самом алгоритмом и даже код написан более-менее нормально. Те ошибки, которые там есть легко и просто решить за 5 минут, зная что искать, просто погуглив. А те вопросы, которые после появятся - уже можно спокойно разобрать здесь. Но вот почему это так сложно - погуглить или просто перейти и прочитать пару строк по данной мной ссылке - вот это я действительно не понимаю. :(

0
4 / 4 / 1
Регистрация: 12.09.2013
Сообщений: 134
27.10.2013, 16:20  [ТС]
Цитата Сообщение от Shtirliz72 Посмотреть сообщение
По третьей задаче я просил у вас узнать чем отличаются int от double и что такое !=, вы посмотрели?
Функцию же факториала я вам выше привёл.
Надеюсь это поможет. И не бойтесь использовать гугл.

Добавлено через 22 минуты


Не по теме:

Самое главное - у человека всё нормально с самом алгоритмом и даже код написан более-менее нормально. Те ошибки, которые там есть легко и просто решить за 5 минут, зная что искать, просто погуглив. Но вот почему это так сложно - погуглить или просто перейти и прочитать пару строк по данной мной ссылке - вот это я действительно не понимаю. :(

чувствую себя на экзамене)то чем отличается = от ==,то int от double)int-целочисленный тип,double-вещественный.поправьте меня если я не права)а вот факториал мне никогда прежде не встречался,поэтому с ним большая проблема в данном примере(уже поняла,что очень сильно затупила написав !=,это естественно не факториал..подскажите,пожалуйста,на конкретном примере моем работу факториала

а про гугл..прогуглить не сложно,главное,что б голова еще соображала на момент поисков
0
205 / 165 / 41
Регистрация: 25.10.2013
Сообщений: 527
27.10.2013, 16:45
Цитата Сообщение от KyKi Посмотреть сообщение
чувствую себя на экзамене)то чем отличается = от ==,то int от double)int-целочисленный тип,double-вещественный.поправьте меня если я не права)а вот факториал мне никогда прежде не встречался,поэтому с ним большая проблема в данном примере(уже поняла,что очень сильно затупила написав !=,это естественно не факториал..подскажите,пожалуйста,на конкретном примере моем работу факториала

а про гугл..прогуглить не сложно,главное,что б голова еще соображала на момент поисков
Ну наконец-то! Молодец. А вот теперь другие мои вопросы, после того как я увидел что ты знаешь чем отличаются int от double:
Почему нельзя писать:
C++
1
2
3
int t=sin(x);
int chl=pow(-1,N)*pow(x,2*N+1)/(2*N+1);
int S=S+chl;
??
Ну а так же действительно ли необходимо (|x|<1) ? И вообще почему это? Почему x - не может быть больше единицы по модулю?

Добавлено через 1 минуту
Функцию factorial я написал на странице 2. Перепишите её к себе в проект и вызывайте где необходимо.

Добавлено через 15 минут
Самое интересное, что после этих ответов у тебя 3я работа волшебным образом заработает нормально.
0
4 / 4 / 1
Регистрация: 12.09.2013
Сообщений: 134
27.10.2013, 19:30  [ТС]
Цитата Сообщение от Shtirliz72 Посмотреть сообщение
Ну наконец-то! Молодец. А вот теперь другие мои вопросы, после того как я увидел что ты знаешь чем отличаются int от double:
Почему нельзя писать:
C++
1
2
3
int t=sin(x);
int chl=pow(-1,N)*pow(x,2*N+1)/(2*N+1);
int S=S+chl;
??
Ну а так же действительно ли необходимо (|x|<1) ? И вообще почему это? Почему x - не может быть больше единицы по модулю?

Добавлено через 1 минуту
Функцию factorial я написал на странице 2. Перепишите её к себе в проект и вызывайте где необходимо.

Добавлено через 15 минут
Самое интересное, что после этих ответов у тебя 3я работа волшебным образом заработает нормально.
не угадали,я его как не кручу,все равно не то что-то
0
205 / 165 / 41
Регистрация: 25.10.2013
Сообщений: 527
27.10.2013, 23:42
Цитата Сообщение от KyKi Посмотреть сообщение
не угадали,я его как не кручу,все равно не то что-то
Что не угадал-то? На вопросы ты-то не ответила. Так всё таки что будет если вытаться вещественное число преобразовать в целое? И почему это плохо для твоего задания?)
Что будет если синус представить целым числом? Это блин такая жирная подсказка.
Хотя бы для себя на этот вопрос ответь.
А как ты крутишь код - лучше сюда выложить и сравнить.
3 задание
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*Дано вещественное число X и целое число N (> 0). Найти значение выражения
x-x^3(3!)+x^5/(5!)-...+(-1)^N*x^(2N+1)/((2N+1)!)
(N! = 1·2·…·N). Полученное число является приближенным значением
функции Sin в точке X. */
 
#include <conio.h>
#include <iostream>
#include <cmath>
 
using namespace std;
 
unsigned int factorial(unsigned int n)
{
 if (n > 1)
     return n * factorial(n - 1);
 return 1;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    cout << "Программа вычисляет приближённое значение синуса в точке Х" << endl;
    
    int n;
    cout << "Введите число (N>0)\n N = ";
    cin >> n;
    if (n < 0) {
        cout << "Ошибка: N меньше нуля" << endl;
        getch();
        return 1;
    }
 
    double x;
    cout << "Введите вещественное число x\n x = ";
    cin >> x;
 
    long double nearSinX = 0;
    for(int i = 0; i < (n + 1); ++i) {
        nearSinX += pow(-1, i) * pow(x, (double)(2 * i + 1) / factorial(2 * i + 1));
    }
 
    cout << "Приближённое значение Sin в точке" << x << ") = " << nearSinX << endl;
    getch();
    return 0;
}

4 задание
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*Даны целые положительные числа A и B. Найти их наибольший об-
щий делитель (НОД), используя алгоритм Евклида:
НОД(A, B) = НОД(B, A mod B), если B ≠ 0; НОД(A, 0) = A.  */
 
#include <conio.h>
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL,"Russian");
    cout << "Программа находит наибольший общий делитель двух положительных чисел\n"
            "с помощью алгоритма Эвклида." << endl;
 
    int a;
    cout << "Введите первое число\n A = ";
    cin >> a;
    if (a < 1) {
        cout << "Ошибка: A является нулём или меньше нуля" << endl;
        getch();
        return 1;
    }
 
    int b;
    cout << "Введите второе число\n B = ";
    cin >> b;
    if (b < 1) {
        cout << "Ошибка: B является нулём или меньше нуля" << endl;
        getch();
        return 1;
    }
 
    int r;
    int pA = a;
    int pB = b;
    while(pB != 0) {
        r = pA % pB;
        pA = pB;
        pB = r;
    }
 
    std::cout << "НОД(" << a << "," << b << ") = " << pA << std::endl;
    getch();
    return 0;
}


Добавлено через 1 час 31 минуту
5 задание
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*Дано целое число N (> 1) и набор из N вещественных чисел. Если
данный набор образует убывающую последовательность, то вывести 0;
в противном случае вывести номер первого числа, нарушающего
закономерность.*/
 
#include <conio.h>
#include <iostream>
 
using namespace std;
 
 
int main()
{
    setlocale (LC_ALL,"Russian");
    cout << "Описание пятой программы(сделать самой)." << endl;
 
    int n;
    cout << "Введите количество элементов\n N = ";
    cin >> n;
    if (n < 2) {
        cout << "Ошибка: N меньше двух" << endl;
        getch();
        return 1;
    }
 
    double *array = new double [n];
    for (int i = 0; i < n; ++i) {
        cout << "Введите" << i + 1 << "е вещественное число\n"
                " A" << i + 1 << "= ";
        cin >> array[i];
    }
 
    int k = 0;
    for (int i = n - 1; i > 0; --i)
        if (array[i - 1] < array[i]) k = i;
 
    if (!k)
        std::cout << "Последовательность убывает" << std::endl;
    else
        std::cout << "Последовательность нарушена на " << k + 1 << "(" << array[k] << ") элементе" << std::endl;
 
    delete [] array;
    getch();
    return 0;
}

6 задание(лучше такое сейчас преподавателю не показывать)

Просто для интереса можешь разобрать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*Дано целое число K, а также K наборов ненулевых целых чисел. Каждый 
набор содержит не менее двух элементов, признаком его завершения
является число 0. Найти количество наборов, элементы которых возрастают.*/
#include <conio.h>
#include <iostream>
#include <list>
 
using namespace std;
 
typedef list<int> Set;
 
static bool isUprisingSet(const Set &set)
{
    Set::const_iterator end = set.cend();
    --end;
    for (Set::const_iterator i = set.cbegin(); i != end;)
        if (*i > *(++i)) return false;
    return true;
}
 
int main()
{
    setlocale (LC_ALL,"Russian");
    cout << "Описание шестой программы(сделать самой)." << endl;
 
    int k;
    cout << "Введите количество наборов\n K = ";
    cin >> k;
    if (k < 1) {
        cout << "Ошибка: наборов не может быть меньше одного" << endl;
        getch();
        return 1;
    }
 
    Set *sets = new Set [k];
    int p;
    for(int i = 0; i < k; ++i) {
        cout << "Набор 1, введите целые положительные числа,\n"
                "конец записи - число 0" << endl;
        for(int j = 1; ; ++j) {
            cout << "  " << j << " число = ";
            cin >> p;
            if (!p) {
                if (j > 2)
                    break;
                cout << "Предупреждение: Набор не может содержать меньше двух элементов:" << endl;
                --j;
            } else if (p < 0) {
                cout << "Ошибка: число отрицательно" << endl;
                getch();
                return 1;
            } else {
                sets[i].push_back(p);
            }
        }
    }
 
    p = 0;
    for(int i = 0; i < k; ++i)
        if (isUprisingSet(sets[i])) ++p;
 
    if (!p)
        std::cout << "Здесь нет возрастающих последовательностей" << std::endl;
    else
        std::cout << "Здесь " << p << " возрастающих последовательностей" << std::endl;
 
    delete [] sets;
    getch();
    return 0;
}

6 задание

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/*Дано целое число K, а также K наборов ненулевых целых чисел. Каждый 
набор содержит не менее двух элементов, признаком его завершения
является число 0. Найти количество наборов, элементы которых возрастают.*/
 
#include <conio.h>
#include <iostream>
#include <list>
 
using namespace std;
 
#define MAXARRAY 50
 
bool isUprisingSet(int *set)
{
    for (int j = 0; set[j+1] != 0; ++j)
        if (set[j] > set[j+1])
            return false;
    return true;
}
 
int main()
{
    setlocale (LC_ALL,"Russian");
    cout << "Описание шестой программы(сделать самой)." << endl;
 
    int k;
    cout << "Введите количество наборов\n K = ";
    cin >> k;
    if (k < 1) {
        cout << "Ошибка: наборов не может быть меньше одного" << endl;
        getch();
        return 1;
    }
 
    int **sets = new int* [k]; // массив указателей
    int p;
    for(int i = 0; i < k; ++i) {
        sets[i] = new int[MAXARRAY];
        cout << "Набор 1, введите целые положительные числа,\n"
                "конец записи - число 0\n"
                "максимально чисел - " << MAXARRAY - 1 << endl;
        for (int j = 0; j < MAXARRAY; ++j) {
            if (j + 1 == MAXARRAY) {
                sets[i][j] = 0;
                break;
            }
            cout << "  " << j + 1 << " число = ";
            cin >> p;
            if (!p) {
                if (j > 1) {
                    sets[i][j] = 0;
                    break;
                }
                cout << "Предупреждение: Набор не может содержать меньше двух элементов:" << endl;
                --j;
            } else if (p < 0) {
                cout << "Ошибка: число отрицательно" << endl;
                getch();
                return 1;
            } else {
                sets[i][j] = p;
            }
        }
    }
 
    p = 0;
    for(int i = 0; i < k; ++i)
        if (isUprisingSet(sets[i])) p++;
 
    if (!p)
        std::cout << "Здесь нет возврастающих постледовательностей" << std::endl;
    else
        std::cout << "Здесь " << p << " возврастающих последовательностей" << std::endl;
 
    for (int i = 0; i < k; ++i)
        delete [] sets[i];
    delete [] sets;
    getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.10.2013, 23:42

Нужно вывести в виде таблицы, не понимаю как написать математически и написать алгоритм
Нужно вывести в виде таблице, не понимаю как решить математические и написать алгоритм Значение a,b,c, Xнач, Xкон вводиться с клавиатуры

Нужно написать написать программу, которая вычисляет значение выражения в обратной польской записи
Обра́тная по́льская запись (англ. Reverse Polish notation, RPN) — форма записи математических и логических выражений, в которой операнды...

Написать программу для рисования данного орнамента, написать комментарии к каждому действию программы

Помогите написать формулу ,никак немогу написать (2k)! в ней
Помогите написать формулу ,никак немогу написать (2k)! в ней

Надо написать программу на while или do while и написать алгоритм
Помогите пожалуйста с задачей:(. Даны действительные числа x , y ( x &gt; 1). Получить наименьшее число вида xn,что превышает y , где n -...


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

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru