|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.06.2011, 18:37 | #1 |
Пользователь
Регистрация: 09.12.2010
Сообщений: 34
|
Нерекурсивные\Рекурсивные процедуры и функции
помогите решить эти задачки через функции.они решены,но только не через функции,но препод требует чтоб были через функции
1)Даны две дроби A/B и C/D (А, В, С, D — натуральные числа).Составить программу для умножения дроби на дробь. Результат должен быть несократимой дробью. Код: #include<iostream> int main() {int a,b,c,d,p,n,i; using namespace std; cout<<"vvedite a"<<endl; cin>>a; cout<<"vvedite b"<<endl; cin>>b; cout<<"vvedite c"<<endl; cin>>c; cout<<"vvedite d"<<endl; cin>>d; p=a*c; n=b*d; i=2; while (i<=p) { if (p%i==0 && n%i==0) {p=p/i; n=n/i;} else i++; } cout<<p<<"/"<<n; } 2)Найти все натуральные n-значные числа, цифры в которых образуют строго возрастающую последовательность (например, 1234, 5789). Код: #include <string> #include <iostream> using namespace std; int main(int argc, char* argv[]) { string symbols = "123456789"; int n = static_cast<int>(symbols.length()); for(int i=1; i<=n; i++) for(int j=0; j<=n-i; j++) cout << symbols.substr(j, i) << endl; return 0; } Тема "Нерекурсивные процедуры и функции" 3)Дано n различных натуральных чисел. Напечатать все перестановки Код #include <iostream> #include <algorithm> int main() { int arr[] = { 1, 2, 3, 4, 5 }; size_t len = sizeof(arr) / sizeof(int); do { for (int i = 0; i < len; i++) std::cout << arr[i] << " "; std::cout << std::endl; } while (std::next_permutation (arr, arr + len)); return 0; } Тема "Рекурсивные процедуры и функции" |
02.06.2011, 19:09 | #2 |
Пользователь
Регистрация: 09.12.2010
Сообщений: 34
|
люди помогите!!!
|
02.06.2011, 19:31 | #3 |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,603
|
Первая задача написана неправильно. Сокращение дроби должно идти через НОД.
Вторая задача тоже написана неправильно И третья тоже. Третью лучше всего с помощью рекурсии. Прототип функции: тип_возвращаемого_значения имя_функции ( параметры); Пример: int max(int a, int b); функция, находящая максимум из 2 чисел a и b Тело функции: тип_возвращаемого_значения имя_функции ( параметры) { операторы } В чем проблема, чтобы переписать код через функции? Есть, конечно, заморочки с передачей массивов, структур и классов в качестве параметров функции, но это не тот случай. Задача 3: Код:
Код:
Ищем НОД p и n, делим на него p и n. Вторая задача неправильна, так как 1589 строго возрастающая последовательность. Просто проверяем, чтобы 1 цифра была меньше 2, 2 меньше 3, 3 меньше 4 и 4 меньше 5
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
|
02.06.2011, 19:53 | #4 |
Пользователь
Регистрация: 09.12.2010
Сообщений: 34
|
а можно по подробнее с 2й задачей?
|
03.06.2011, 17:50 | #5 |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,603
|
Вторая задача:
Константой N в программу зашита значность Код:
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Рекурсивные функции | NiaSpa | Помощь студентам | 3 | 04.03.2010 11:53 |
Рекурсивные функции. | Geg[C/c++] | Общие вопросы C/C++ | 2 | 11.10.2009 11:28 |