Показать сообщение отдельно
Старый 14.05.2006, 17:10     # 4
Rundll
Junior Member
 
Аватар для Rundll
 
Регистрация: 02.11.2003
Адрес: г. Таганрог
Сообщения: 63

Rundll Путь к славе только начался
С позволения _LYNX_, я допишу комментарий к его программе
Надеюсь я не нарушу его авторских прав


vector<float> input_arr, output_arr;
/*входной и выходной вектор (массив), способный изменять количество элементов, во время выполнения программы, см. подробнее STL */

//Заполняем входной массив
for (...) {
input_arr.push_back(f);
/*функция push_back, является функцией-членом класса vector, и добавляет в конец вектора новый элемент f.*/
}
int len=input_arr.size();
/*size - также является функцией-членом класса vector и определяет размер вектора*/
for(int i=0;i<len+2;++i){
int a1=0, a2=0, a3=0, g;
if(i>1)a1=input_arr[i-2];
if(i>0&&i<len+1)a2=input_arr[i-1];
if(i<len)a3=input_arr[i];
/*Надеюсь выше всё понятно */
g=(a1>a2)?((a3>a1)?a1a3>a2)?a3:a2)(a3>a2)?a2a3>a1)?a3:a1);
/*А в этой строке переменной g присваивается значение, вычисляемое на базе логических сравнений. оператор '?' трактуется следующим образом:
"если выражение (a1>a2) истино, тогда переменной g присвоить значение находящееся до символа ':', если выражение ложно - после символа ':' "

Короче говоря:
результат = выражение ? выражение1 : выражение2

если результат == true, тогда результат=выражение1
иначе - результат=выражение2

ИМХО очень удобная конструкция!*/
output_arr.push_back(g);//Здесь я думаю всё ясно
}
...

//Дерзай
__________________
Америка, Америка - это красиво, но Россия вот где есть СИЛА!!!

Последний раз редактировалось Rundll; 14.05.2006 в 17:13.
Rundll вне форума