Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2012, 01:52   #1
julia9311
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 69
По умолчанию фцнкции

Программа преобразовывает массив таким образом, что сначала располагаются все элементы, целая часть которых лежит в интервале [a,b], а потом - все остальные. Нужно оформить ее в виде функции.

Код:
#include "iostream.h"
#include "stdlib.h"
#include "stdio.h"
#include "math.h"


int main()
{

int n,i,d;

  
 cout<<"\nVvedite n-kolichestvo elementov massiva";
 cin>>n;
 cout<<"\nVvedite d-elementi massiva";
 cin>>d;
  float *m=new float[n];//динамическое выделение памяти
  float*& r = m;//добавляем ссылку

  
 float a,b;

 cout<<"\nVvedite nachalo intervala, a= :";
 cin>>a;

 cout<<"\nVvedite konec intervala, b= :";
 cin>>b;
 
  cout<<"\nOrganizovanniy massiv s pomoschu ssilok:\n";
 cout<<"\nRezultat preobrazovania: snachala raspolagayutsa te elementi, celaya chast kotorix legit v [a,b].";
 cout<<"\nZatem razmeschayutsa vse ostalnie:\n";
 for(i=0;i<n;i++)
  if((r[i]>=a)&&((r[i]<=b)))//если i больше начала интервала и меньше конца интервала
   cout<<r[i]<<"  ";


 for(i=0;i<n;i++)
  if((r[i]<a)||((r[i]>b)))//если i меньше начала интервала и больше конца интервала
   cout<<r[i]<<"  ";
	

	return 0;
}
julia9311 вне форума Ответить с цитированием
Старый 25.06.2012, 02:47   #2
zvoronz
Пользователь
 
Регистрация: 03.01.2011
Сообщений: 49
По умолчанию

Ты всю прогу хочешь в виде функции или только логическую часть, а ввод/вывод в мейне оставить.

П.С. У тебя вся программа и так функция main.
zvoronz вне форума Ответить с цитированием
Старый 25.06.2012, 03:54   #3
julia9311
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 69
По умолчанию

вообще, нужно оформить кажый пункт) я так думаю, их должно быть три: 1.)ввод/вывод 2.) если элемент больше начала интервала и меньше конца интервала и
3.) если элемент меньше начала интервала и больше конца интервала
julia9311 вне форума Ответить с цитированием
Старый 25.06.2012, 03:58   #4
ArmanPrestige
Главное желание.
Форумчанин
 
Регистрация: 28.11.2011
Сообщений: 122
По умолчанию

Ну, и с чем проблема?
Я могу, Я хочу, Я буду!
ArmanPrestige вне форума Ответить с цитированием
Старый 25.06.2012, 09:59   #5
julia9311
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 69
По умолчанию

Проблема в том, что я не разбираюсь в фунциях( мои программы с ними никогда не работают.
julia9311 вне форума Ответить с цитированием
Старый 25.06.2012, 10:10   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
#include "iostream.h"
#include "stdlib.h"
#include "stdio.h"
#include "math.h"

void f1(int n,float* r){for(int i=0;i<n;i++)  if((r[i]>=a)&&((r[i]<=b)))   cout<<r[i]<<"  ";}
void f2(int n,float* r){for(int i=0;i<n;i++)  if((r[i]<a)||((r[i]>b))) cout<<r[i]<<"  ";}

int main()
{

int n,i,d;

  
 cout<<"\nVvedite n-kolichestvo elementov massiva"; cin>>n;
 cout<<"\nVvedite d-elementi massiva"; cin>>d;
  float *m=new float[n];//динамическое выделение памяти
  float*& r = m;//добавляем ссылку
  float a,b;
 cout<<"\nVvedite nachalo intervala, a= :"; cin>>a;
 cout<<"\nVvedite konec intervala, b= :"; cin>>b;
 
 cout<<"\nOrganizovanniy massiv s pomoschu ssilok:\n";
 cout<<"\nRezultat preobrazovania: snachala raspolagayutsa te elementi, celaya chast kotorix legit v [a,b].";
 cout<<"\nZatem razmeschayutsa vse ostalnie:\n";
 f1(n,m);f2(n,m);
 return 0;
}
Подойдет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.06.2012, 10:32   #7
julia9311
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 69
По умолчанию

большое спасибо!) То есть в параметры функции можно записывать целиком кусочек кода, как здесь?

Код:
for(i=0;i<n;i++)
  if((r[i]>=a)&&((r[i]<=b)))//если i больше начала интервала и меньше конца интервала
   cout<<r[i]<<"  ";
Код:
void f1(int n,float* r){for(int i=0;i<n;i++)  if((r[i]>=a)&&((r[i]<=b)))   cout<<r[i]<<"  ";}
julia9311 вне форума Ответить с цитированием
Старый 25.06.2012, 11:42   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Нет. Код не в параметрах а в теле
Присмотрись внимательнее - я просто так люблю писать сверхкомпактно. На самом деле функция выглядит так...
А как выглядит функция ты должна сама узнать, проявив внимание, умение читать и не упускать ни единого символа кода
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.06.2012, 11:59   #9
ArmanPrestige
Главное желание.
Форумчанин
 
Регистрация: 28.11.2011
Сообщений: 122
По умолчанию

Возможно не помешало бы прочитать, может станет яснее с функциями
http://shatalov.su/ru/articles/cpp_p...function_0.php
http://shatalov.su/ru/articles/cpp_primer/function.php
Я могу, Я хочу, Я буду!
ArmanPrestige вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц