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

Если 3 переменные вещественного типа упорядочены по возрастанию или убыванию, то удвоить их - C++

Восстановить пароль Регистрация
 
ada lavleis
1 / 1 / 0
Регистрация: 17.09.2013
Сообщений: 130
20.01.2014, 00:16     Если 3 переменные вещественного типа упорядочены по возрастанию или убыванию, то удвоить их #1
доброй ночи, уважаемые программисты и успевающие в учебе студенты. помогите, пожалуйста, написать программу на C++ (в визуальной вкладке).

ВОТ ЗАДАНИЕ:
дано три переменные вещественного типа. если их значения упорядочены по возрастанию или убыванию, то удвоить их; иначе заменить значение каждой переменной на противоположное. вывести значения переменных.

у меня есть 3 варианта написания этой программы, а вы выберите тот, который лучше подходит и напишите, пожалуйста, какие компоненты нужно кинуть на форму и что на них писать.

вот 1 вариант написания программы:
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    double a,b,c;
    a=3;
    b=2;
    c=1;
 
 // чтобы можно было вводить убрать комментарии
  
  /*
  
  cout<<"введите a"
 cin>>a;
 
  cout<<"введите b"
 cin>>b;
 
  cout<<"введите b"
 cin>>b;
 
  */
 
 
// если b меньше 
// на этом интервале или b больше на этом интервале 
// то есть между а и с  то последовательность не упорядочена
// иначе  " упорядочена";    
if(((c>b) && (b<a)) || ((c<b)&&(b>a)))
    {
      cout<< "последовательность не упорядочена" ;
            
            a=-a;
            b=-b;
            c=-c;
    }      
 else 
     {
     cout<<" упорядоченна";
            a*=2;
            b*=2;
            c*=2;
    }
  
  // вывоод
  cout<<" a= " <<a<<" b= "<<b<< " c= "<<c;
 
   // cin.get();    
   
   //cout<<" dsdsd";
   
     
     
               
    system("PAUSE");
    return EXIT_SUCCESS;
}
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
#include <iostream.h>
#include "stdlib.h"
 
using namespace std;
 
int main()
{
const int N = 3;
double a[N];//= {2.9,-1.2,-1.2};
 
for(int i=0; i<N; i++)
{
  cout<<"Enter "<<i<<" ";
  cin>>a[i];
}
 
int j=0;
if(a[0] > a[1] || a[0] < a[1])// Определим тип последовательности по первым переменным
{// Если последовательность возрастает или убывает заходим
    for(int i=1; i<N; i++)
    {
      if(a[i-1] > a[i]) j--;
      if(a[i-1] < a[i]) j++;
    }
}
  for(int i=0; i<N; i++)
    abs(j) == N-1 ? a[i] = a[i]*2 : a[i] = 0-a[i];
 
for(int i=0; i<N; i++) cout<< a[i]<<' ';
system("pause");
return 0;
}
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
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
 
 
 // возвращает 0 если последовательно идущие элементы равны
// иначе возвращает 1 
// тут есть недоработка 
//  можно например проверять элементы  сравнивая и
// ввести дополнительную флаг упорядочения по возрастанию
// и в случае смены этого флага в цикле вернуть 0
 
int ifSorted(double doubleArray[], int maxArrayIndex)
    {
        
        
       for(int i=0;i<maxArrayIndex;i++)
       {
       
       if(doubleArray[i]==doubleArray[i+1])
                                    {
                                          return 0;
                                    }
      
        return 1;
       }
       
       
   
    return 1;
    }
 
int main(int argc, char *argv[])
{
const int N = 3;
double a[N];//= {2.9,-1.2,-1.2};
 
//ввод
for(int i=0; i<N; i++)
{
  cout<<"Enter "<<i<<" ";
  cin>>a[i];
}
 
cout<<endl;
 
// вывод
for(int i=0; i<N; i++)
{
  cout<<"a[N] = "<<a[i]<<" ";
   
}
 cout<<endl;
 
if (1==ifSorted(a,N))
// то удваиваем
      for(int i=0;i<N;i++)
               a[i]*=2;
 //иначе смена знака            
else 
      for(int i=0;i<N;i++)
        a[i]=-a[i];
   
   
   //вывод результата
for(int i=0; i<N; i++)
{
  cout<<"a[N] = "<<a[i]<<" ";
   
}      
 
 
cout<<endl;
 
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
ЗАРАНЕЕ ОГРОМНОЕ СПАСИБО ВСЕМ ЗА ПОМОЩЬ.

Добавлено через 1 минуту
мне нужно из 3 вариантов написания одной и той же программы на языке программирования C++ выбрать один вариант, который наиболее походит для решения моего задания, и ещё очень нужно, чтобы вы написали какие компоненты нужно кинуть на форму дизайн, и на какие кнопки какой именно отрывок кода писать.

заранее огромное спасибо всем за помощь!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2014, 00:16     Если 3 переменные вещественного типа упорядочены по возрастанию или убыванию, то удвоить их
Посмотрите здесь:

Описать переменные вещественного типа C++
Даны три переменные вещественного типа: A, B, C. Если их значения упорядочены по возрастанию, то удвоить их C++
Установить упорядочены ли компоненты вектора а по возрастанию или убыванию. C++
C++ Работа со списками (Проверить, упорядочены ли числа по возрастанию или по убыванию)
C++ . Напишите функцию, которая получает три переменные вещественного типа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
20.01.2014, 00:30     Если 3 переменные вещественного типа упорядочены по возрастанию или убыванию, то удвоить их #2
3 textBox для ввода и вывода, и кнопку для решения на форму поместить,
любой из кодов функции main помещаешь в процедуру нажатия кнопки, заменяя скажем cin>>a cin>>b cin>>c;
C++
1
2
3
a=System::Int32::Parse(textBox1->text); 
b=System::Int32::Parse(textBox2->text);
c=System::Int32::Parse(textBox3->text);
а cout<<a скажем на textBox1->text=a.ToString(); ну строчку с return в событие кнопки не помещай
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
20.01.2014, 00:30     Если 3 переменные вещественного типа упорядочены по возрастанию или убыванию, то удвоить их #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
#include <algorithm>
#include <iostream>
#include <array>
 
int main()
{
    const size_t arraySize(3);
    std::array <int, arraySize> array;
    std::cout << "Input " << arraySize << " elements: " << std::endl;
    for (size_t i = 0; i < arraySize; i++) {
        std::cin >> array.at(i);
    }
    
    std::cout << "Result: ";
    if (std::is_sorted(array.begin(), array.end())) {
        for (size_t i = 0; i < arraySize; i++) {
            std::cout << (array.at(i) = array.at(i) * 2) << ' ';
        }
    } else {
        for (size_t i = 0; i < arraySize; i++) {
            std::cout << (array.at(i) = -array.at(i)) << ' ';
        }
    }
    std::cout << std::endl;
 
    std::system("pause");
    return 0;
}
Цитата Сообщение от ada lavleis Посмотреть сообщение
вы написали какие компоненты нужно кинуть на форму дизайн, и на какие кнопки какой именно отрывок кода писать
это скорее в один из данных разделов - C++ Builder или Visual C++
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
20.01.2014, 00:32     Если 3 переменные вещественного типа упорядочены по возрастанию или убыванию, то удвоить их #4
Код можно выбрать любой первые два вроде проверил мысленно они правильные,а третий лень честно говоря проверять, но если уверен что и он рабочий то можно и его взять
Yandex
Объявления
20.01.2014, 00:32     Если 3 переменные вещественного типа упорядочены по возрастанию или убыванию, то удвоить их
Ответ Создать тему
Опции темы

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