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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Igorokmen
3 / 3 / 1
Регистрация: 31.01.2013
Сообщений: 100
#1

простая сложность. разбиение кода (+) - C++

14.10.2013, 09:28. Просмотров 309. Ответов 9
Метки нет (Все метки)

Хочу реализовать код программы по следующему принципу.

Например задан main.cpp:
C++
1
2
3
4
5
6
7
8
9
10
main.cpp
if сложение или вычитание?
 
// задача про Сложение:
сin >> a >>в ;
а+в = с;
 
//задача про Вычитание:
cin >> a >>b >> d;
a - (b*d)  =c;
Нужно разбить код таким образом, чтоб кроме файла main.cpp были:
C++
1
2
3
4
5
6
7
8
9
10
11
12
main.cpp
if сложение или вычитание?
 
summa.cpp
// задача про Сложение:
сin >> a >>в ;
а+в = с;
 
raznica.cpp
//задача про Вычитание:
cin >> a >>b >> d;
a - (b*d)  =c;
---------
надеюсь псевдокод понятен. Хочу разбить программу, чтоб с main.cpp можно было выбирать summa.cpp или raznica.cpp по желанию пользователя.
Как разбить код??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2013, 09:28     простая сложность. разбиение кода (+)
Посмотрите здесь:

Разбиение кода на лексемы - C++
Добрый день. Интересует такой вопрос. Какие средства могут помочь при написании программы анализа исходного кода java?Необходимо исходный...

создать функцию на основе кода (разбиение строки на отрезки) - C++
Здравствуйте уважаемые программисты. Мне нужна Ваша помощь. Есть небольшой код программы, суть которой в следующем. На входе есть строка....

Сложность с getline() - C++
Дорогие форумчане! Возникла сложность при использовании getline(). Допустим, у нас есть такой код: int a,b; string s; cin>>a; ...

Сложность алгоритмов - C++
Добрый день, пытаюсь оценить сложность алгоритмов, но возникли сомнения в правильности рассчетов. Собственно рассматриваю два алгоритма -...

Временная сложность алгоритма - C++
Всем привет! Пусть есть натуральные числа а и n. Найти a в степени n. Временная сложность алгоритма должна быть О(log2n)

Время выполнения(сложность) - C++
Как вычислить время выполнения программы? и что такое NlogN?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
reisal78
649 / 562 / 133
Регистрация: 28.04.2013
Сообщений: 1,600
14.10.2013, 09:44     простая сложность. разбиение кода (+) #2
Это сделать совсем не сложно, если Вы знакомы с функциями.

Вот пример. Если чтото не поймете - спрашивайте.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//File1.cpp 
//Глобальные переменные
bool IsResult = false;
double Result;
 
//Прототипы функций
void Invert9thPower(double);
 
//Основная функция
int main()
{
    double x = 2.5, y, res;
 
    Invert9thPower (x);
    if (IsResult) res = Result;
 
    y = 1.7; Invert9thPower (y - 1.7);
    if (IsResult) res = Result;
 
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//File2.cpp
extern double Result;
extern bool IsResult;
 
void Invert9thPower (double x)
{
    IsResult = false;
    if (x != 0) IsResult = true;
    else return;
    int i; double Result = 1.0;
    for (int i = 0; i <= 9; i++) Result = Result / x;
    ::Result = Result;
}
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.10.2013, 09:47     простая сложность. разбиение кода (+) #3
Igorokmen, На функции summa() и функция raznica() и смотря что пользователь выбрал вызывать ту или иную функцию.

Можно попробовать через #include , просто создать два файла summ.cpp в него сразу записать код программы и raznica.cpp тоже код программы для разницы
и примерно так будет
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
//ввод пользователя
int summ(0);
cout <<"Enter summ (1), difrence (0) ..."<<endl;
cin >>summ;
if(summ)
#include "summ.cpp"
else
#include "raznica.cpp"
}
Препроцессор заменит строки #include на код который будет в файлах.
Но лучше через функции.
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
14.10.2013, 09:50     простая сложность. разбиение кода (+) #4
Здесь можно код вложить в фунцкии, а функции спрятать по файлам если есть необходимость.
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
//summa.h
int summ(int a,int b)
{
    return a+b;
}
 
//raznica.h
int minus(int a,int b,int d)
{
   return a-(b*d);
}
 
//main.cpp
#include <iostream>
#include <summa.h>
#include <raznica.h>
 
int main(){
char operation;
int a,b,d;
cin>>operation;
switch(operation)
{
case '+' :  cin>>a>>b;  cout<<summ(a,b); break;
case '-' : cin>>a>>b>>d; cout<<minus(a,b,d); break;
default : cout<<"No operation";
}
}
Igorokmen
3 / 3 / 1
Регистрация: 31.01.2013
Сообщений: 100
14.10.2013, 11:07  [ТС]     простая сложность. разбиение кода (+) #5
Спасибо Всем ВАМ!
0x10
14.10.2013, 11:28
  #6

Не по теме:

Цитата Сообщение от ninja2 Посмотреть сообщение
Можно попробовать через #include , просто создать два файла summ.cpp в него сразу записать код программы и raznica.cpp тоже код программы для разницы
и примерно так будет
Инновационный подход, лучшие практики в исполнении Гуру.

ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.10.2013, 11:48     простая сложность. разбиение кода (+) #7
Цитата Сообщение от 0x10 Посмотреть сообщение
Инновационный подход, лучшие практики в исполнении Гуру.
В С++ мб, а в пхп include используется часто, файлы с фрагментами кода подключаются при определенных условия и меняется представление сайта.

Добавлено через 3 минуты
Да и похоже это один из вариантов разбиения можно в принципе без функций, в файл записать и подключать, результат один и тот же, ничего не измениться.
Ах да это будет равносильно inline функции, даже лучше получиться, код будет более производительный.
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
14.10.2013, 12:35     простая сложность. разбиение кода (+) #8
Цитата Сообщение от ninja2 Посмотреть сообщение
код будет более производительный
А ты проверял? Ты хоть понимаешь, что такое инлайн?
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.10.2013, 14:41     простая сложность. разбиение кода (+) #9
Цитата Сообщение от coloc Посмотреть сообщение
А ты проверял? Ты хоть понимаешь, что такое инлайн?
Ну это функции такие ну обозначаются inline void f(){return;} например.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2013, 15:28     простая сложность. разбиение кода (+)
Еще ссылки по теме:

Сложность в реализации команды - C++
Программа открывает окно, заголовком которого является командная строка. Обеспечить возможность перетаскивания окна за любую точку его...

Временная сложность алгоритма - C++
Помогите посчитать временную сложность след. алгоритма. Желательно с объяснениями, а не просто результат. #include &lt;iostream&gt; #include...

Определить сложность алгоритма - C++
Ребята подскажите сложность алгоритма:) Функция ищет максимальный элемент в двухмерном массиве. Это будет n*m или n^2? int*...

Сложность операции в unordered_map - C++
Везде пишут таблицы, в которых указывают, что сложность варьируется от О(1) до О(n) Но где найти ответ на вопрос &quot;Почему?&quot;. Напишите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
0x10
14.10.2013, 15:28     простая сложность. разбиение кода (+)
  #10

Не по теме:

Цитата Сообщение от ninja2 Посмотреть сообщение
Ну это функции такие ну обозначаются inline void f(){return;} например.
Понимание - это не на уровне синтаксиса, а на уровне ассемблера.

Yandex
Объявления
14.10.2013, 15:28     простая сложность. разбиение кода (+)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru