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

Функции в с++ (разработка и использование) - C++

Восстановить пароль Регистрация
 
Марина=*
0 / 0 / 0
Регистрация: 11.02.2011
Сообщений: 3
11.02.2011, 23:16     Функции в с++ (разработка и использование) #1
Привет всем кто читает эту тему!
Пожалуйста, кому не трудно помогите с задачами на функци, заранее огромное спасибо.

I Разработка нерекурсивных функции
Разработать функцию, которая для заданного натурального числа N и M возвращает их наибольший общий делитель.С помощью данной функции: сократить дробь a/b.

II Разработать рекурсивную функцию , возвращающую значение : для перевода числа из двоичной системы счисления в десятичную;

III разработать рекурсивную функцию , не возвращающую значений: разработать рекурсивную функцию, которая в заданной строке заменяет все слова , начинающиеся с заглавной буквы, на многоточие.

IV Используя механизм перегрузки функций, разработайте две версии функции F?
1)float F(float x); 2)void F(float x, float &y);
продемонстрировать работу данных функций на примерах
.....|
.....| a+bx, tckb x<93;
y= /
....\ b-ac, tckb 93<=x<=120;
.....|
.....| abx, tckb x>120;

V Использование функции-шаблонов: для работы с двумерными массивами фрифметических типов разработать шаблоны ввода и вывода массиваб а также шаблон решения основной задачи : подсчитать норму матрицы ||A||=∑_i▒〖maxa_ij 〗.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
iama
 Аватар для iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
11.02.2011, 23:22     Функции в с++ (разработка и использование) #2
C++
1
2
3
4
5
6
7
int f1(int n, int m)
{
int max;
if (n > m) max = n; else max = m;
for (int i = max / 2 + 1; i > 0; i--)
  if ((n % i == 0) && (m % i == 0)) return i;
}
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
11.02.2011, 23:37     Функции в с++ (разработка и использование) #3
Цитата Сообщение от Марина=* Посмотреть сообщение
II Разработать рекурсивную функцию , возвращающую значение : для перевода числа из двоичной системы счисления в десятичную;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <cstdio>
 
char szBin[] = "101010111";
 
unsigned bin2dec( const char* szBin, const unsigned uCurrVal ){
  assert( 0 == *szBin || '0' == *szBin || '1' == *szBin );
  if( *szBin ){
    return bin2dec( szBin+1, uCurrVal*2 + (*szBin=='0'?0:1) ); 
  }else{
    return uCurrVal;
  }
}
 
int main(){
  printf( "%d", bin2dec( szBin, 0 ) );
}
Добавлено через 7 минут
Цитата Сообщение от Марина=* Посмотреть сообщение
V Использование функции-шаблонов: для работы с двумерными массивами фрифметических типов разработать шаблоны ввода и вывода массиваб а также шаблон решения основной задачи : подсчитать норму матрицы ||A||=∑_i▒〖maxa_ij 〗.
непонятно, что за норма имеется в виду
Марина=*
0 / 0 / 0
Регистрация: 11.02.2011
Сообщений: 3
11.02.2011, 23:50  [ТС]     Функции в с++ (разработка и использование) #4
[QUOTE=alex_x_x;1361952]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <cstdio>
 
char szBin[] = "101010111";
 
unsigned bin2dec( const char* szBin, const unsigned uCurrVal ){
  assert( 0 == *szBin || '0' == *szBin || '1' == *szBin );
  if( *szBin ){
    return bin2dec( szBin+1, uCurrVal*2 + (*szBin=='0'?0:1) ); 
  }else{
    return uCurrVal;
  }
}
 
int main(){
  printf( "%d", bin2dec( szBin, 0 ) );
}
Добавлено через 7 минут

непонятно, что за норма имеется в виду[/QUOT

вот такая
Вложения
Тип файла: docx Матрица.docx (10.5 Кб, 17 просмотров)
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
12.02.2011, 00:07     Функции в с++ (разработка и использование) #5
Цитата Сообщение от Марина=* Посмотреть сообщение
III разработать рекурсивную функцию , не возвращающую значений: разработать рекурсивную функцию, которая в заданной строке заменяет все слова , начинающиеся с заглавной буквы, на многоточие.
Хм, у меня получилось на "много точек", вместо "многоточия". Надеюсь, проканает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <cstdio>
 
void DotUpper(char *string) {
  char *next_word = string;
  while (*next_word != ' ' && *next_word != '\0') ++next_word;
  while (*next_word == ' ' && *next_word != '\0') ++next_word;
 
  if (*string >= 'A' && *string <='Z') {
    char *symbol = string;
    while (*symbol != ' ' && *symbol != '\0')
      *(symbol++) = '.';
  }
 
  if (*next_word != '\0')
    DotUpper(next_word);
}
 
int main(int argc, char *argv[]) {
  char string[] = "  Abc    def Ghi    jkl mN o    Prq     ";
  DotUpper(string);
  printf("%s\n", string);
  return 0;
}
Yandex
Объявления
12.02.2011, 00:07     Функции в с++ (разработка и использование)
Ответ Создать тему
Опции темы

Текущее время: 07:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru