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

Матрица и указатели - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Файлы. Вывести данные о самом высоком спортсмене http://www.cyberforum.ru/cpp-beginners/thread278482.html
Используя функции и режим меню, создать файл из 10 записей, просмотреть файл, добавить в файл новую информацию и, применяя режим прямого доступа выполнить: Информация о спортсменах: фамилия, пол, год рождения, рост. (Это все сделала) Вот только надо вывести данные о самом высоком спортсмене, а не о всех HELP ME!!!! #include <vcl.h> #include <stdio.h> #include <conio.h> #include <string.h>...
C++ Рекурсия и динамическое программирование Здравствуйте! Помогите пожалуйста решить этими способами: • неэффективная, при помоши рекуррентного спуска. • с использованием динамического программирования. Входной текст состоит из слов с известными длинами (количеством символов) l1, l2,..., lп и представляет абзац. Его нужно "правильно отформатировать" и вывести в несколько строк длиной М символов (M≥max li). Форматирование... http://www.cyberforum.ru/cpp-beginners/thread278477.html
Сапер на С++ C++
Помогите написать программу. Вводим размерность поля,задаем координаты мин и соответственно их количество и программа высчитывает количество очков
Дружественные функции C++
Напишите программу, вычеркивающую из данного слова все буквы «а» (так, чтобы, например, из слова «заноза» получилось «зноз»), через дружественные функции
C++ Перегрузка операторов http://www.cyberforum.ru/cpp-beginners/thread278451.html
Осуществите перегрузку оператора “+=” так, чтобы при его использовании сумма увеличивалась на 5. Помогите, срочно.
C++ Программирование с использованием динамических структур данных Разработать программу работы с бинарным деревом. Программа должна содержать следующие процедуры, вызываемые из меню: - построение пустого дерева; - вставка поддерева в указанное место; - удаление указанного элемента; - просмотр дерева в следующем порядке: узел, левая ветвь, правая ветвь. подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.04.2011, 10:16     Матрица и указатели
Цитата Сообщение от .Malek. Посмотреть сообщение
Использовать прием перегрузки функций.
Это делается так: пишешь несколько функций с одним именем, различающихся типами и/или количеством параметов, при этом при разработке каждой следующей не обращаешь внимания на предыдущие, а пишешь так, как если бы их не было, каждая функция может отличаться и типом возвращаемого значния, но это не обязательно, а обязательно различие именно формальных параметров, в результате получаешь версии функции, а при вызове каждой версии пишешь, как еслиб была только одна такая функция только с этим списком формальных параметров и не было других.

Добавлено через 3 минуты
Цитата Сообщение от .Malek. Посмотреть сообщение
Спасибо. а можно добавить комментарии
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void matrixsqr(int *a, int N, int M) // Интовая версия
{ // Начало тела функции
 int *p, // Указатель
 for (p=a+N*M-1; p>=a; --p) // Цикл со счётчиком указаетльного типа, перебираем все элементы матрицы без учёта её структуры, подходит только если все строки хранятся подряд.
 {// Начало тела цикла
  *p=*p*(*p); // Возведение в квадрат умножением.
 }// Конец тела цикла
}// Конец тела функции
void matrixsqr(double *a, int N, int M) // Вещественная версия
{ // Начало тела функции
 double *p, // Указатель
 for (p=a+N*M-1; p>=a; --p) // Цикл со счётчиком указаетльного типа, перебираем все элементы матрицы без учёта её структуры, подходит только если все строки хранятся подряд.
 {// Начало тела цикла
  *p=*p*(*p); // Возведение в квадрат умножением.
 }// Конец тела цикла
}// Конец тела функции
Добавлено через 7 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void matrixsqr(int **a, int N, int M) // Интовая версия
{ // Начало тела функции
 int *p, **r // Указатель
 for (*r=a+N-1; r>=a; --r) // Цикл со счётчиком указаетльного типа, перебираем все сктроки матрицы
 {// Начало тела цикла
  for (p=*r+M-1; p>=*r; --p) // Цикл со счётчиком указаетльного типа, перебираем все элементы строки матрицы
  {// Начало тела цикла
   *p=*p*(*p); // Возведение в квадрат умножением.
  }// Конец тела цикла
 }// Конец тела цикла
}// Конец тела функции
void matrixsqr(double **a, int N, int M) // Вещественаная версия
{ // Начало тела функции
 double *p, **r // Указатель
 for (*r=a+N-1; r>=a; --r) // Цикл со счётчиком указаетльного типа, перебираем все сктроки матрицы
 {// Начало тела цикла
  for (p=*r+M-1; p>=*r; --p) // Цикл со счётчиком указаетльного типа, перебираем все элементы строки матрицы
  {// Начало тела цикла
   *p=*p*(*p); // Возведение в квадрат умножением.
  }// Конец тела цикла
 }// Конец тела цикла
}// Конец тела функции
да, ещё, n*m-1 везде замени на N*M-1

Добавлено через 1 минуту
Если надо short int, float, long int, small int или ещё какие типы данных, то просто копироважай эти функции и заменяй в копиях тип.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru