доброй ночи, уважаемые программисты и успевающие в учебе студенты. помогите, пожалуйста, написать программу на 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++ выбрать один вариант, который наиболее походит для решения моего задания и ещё очень нужно, чтобы вы написали какие компоненты нужно кинуть на форму дизайн и на какие кнопки какой именно отрывой кода писать.
заранее огромное спасибо всем за помощь!!!