Форум программистов, компьютерный форум 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++
Осуществите перегрузку оператора “+=” так, чтобы при его использовании сумма увеличивалась на 5. Помогите, срочно.
C++ GL/glut.h на wxDev-C++ http://www.cyberforum.ru/cpp-beginners/thread278440.html
Подскажите пожалуйста кто знает, как настроить wxDev-C++ чтобы он нормально работал с OpenGL а именно с GL/glut.h прочитал море инструкций и ни одна не привела к нужному результату. Например мне надо заставить работать вот это: #include <GL/glut.h> void display() { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_LINES); glColor3f(1.0, 0.0, 0.0);
C++ Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка? Друзья! В общем, надо реализовать связный список и понятно, последний элемент должен содержать адрес NULL, вот ломаю голову как это сделать; с указателями я бы справился а вот со ссылками не могу, помогите пожалуйста! Спасибо. struct pp { int ch; pp& next; }; int main () { pp* p= new pp; p->next= NULL;//Вот эта строка!!!!!!! подробнее

Показать сообщение отдельно
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 или ещё какие типы данных, то просто копироважай эти функции и заменяй в копиях тип.
 
Текущее время: 05:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru