Новые сообщения · Правила  
Страница 1 из 11
Модератор форума: Berestovskiy 
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » С, C++ » если перем.упорядочены по возр. и убыв. то удвоить их С++ (есть 3 варианта написания этой программы)
если перем.упорядочены по возр. и убыв. то удвоить их С++
доброй ночи, уважаемые программисты и успевающие в учебе студенты. помогите, пожалуйста, написать программу на C++ (в визуальной вкладке).

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

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

вот 1 вариант написания программы:
Код
#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;
}


заранее огромное спасибо всем за помощь!!!

Добавлено (19.01.14, 22:55)
---------------------------------------------
2 ВАРИАНТ НАПИСАНИЯ ПРОГРАММЫ:

Код
#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;
}

Добавлено (19.01.14, 22:56)
---------------------------------------------
3 вариант написания этой программы:

Код
#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;
}

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

заранее огромное спасибо всем за помощь!!!


настоящим программистом не рождается, а становятся.
1 | Автор: Ada | 2014-01-19, 23:00   |  Репутация: [ + 0 ]
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » С, C++ » если перем.упорядочены по возр. и убыв. то удвоить их С++ (есть 3 варианта написания этой программы)
Страница 1 из 11
Поиск: