|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] двумерные массивы на C++ Builder. вопрос в решении задания |
|
|
C/C++ - [решено] двумерные массивы на C++ Builder. вопрос в решении задания
|
Новый участник Сообщения: 7 |
Профиль | Отправить PM | Цитировать Доброго времени суток.
Я только начал изучать массивы, и столкнулся с такой проблемой у меня есть массив 3x4 нужно найти векторную разность 1 и 3 строк(при нажатии на Button1 программа должна находить векторную разность и выводить её в Edit1). Подскажите, как написать код программы. Бейте не сильно, я только начинаю изучать 2-е массивы Заранее благодарен. P.S. Вот мои наработки: |
|
Отправлено: 18:55, 12-11-2012 |
Ветеран Сообщения: 1807
|
Профиль | Отправить PM | Цитировать Чисто стандартный вопрос: как эти массивы попадают в память машины? Либо чтение данных из файла, либо ввод с клавиатуры. Иначе - сферический конь в вакууме.
|
Отправлено: 19:28, 12-11-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать KnightMrak, предоставь пожалуйста полный исходный текст. Та строка что есть, мало понятна.
Цитата KnightMrak:
При i=3, V[i] не выйдет за пределы массива? void не возвращает результата. |
|
------- Отправлено: 19:33, 12-11-2012 | #3 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Векторная разница 1 строки и 3 строки. Полного кода нету, это всё что было дано в книге.
Я знаю как это должно выглядеть математически, но как написать в C++ Builder, я туговат=( XPEHOMETP, массив вводиться с клавиатуры в ячейки поля StringGrid |
Отправлено: 20:35, 12-11-2012 | #4 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Цитата KnightMrak:
|
||
------- Отправлено: 21:32, 12-11-2012 | #5 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Дан двумерный массив 3x4 который мы вводим в поле StringGrid:
1 3 -1 0 2 1 4 3 5 2 0 -3 По условию задачи необходимо найти векторную разницу 1-й и 3-й строки массива (каждую отдельно) Решение задачи при нажатии на Button1: Находим векторную разницу 1-й строки массива: Вектор первой строки = 1-3+1= -1; Находим векторную разницу 3-й строки массива: Вектор третей строки = 4-3-5= -4; После нахождения векторной разности, ответ выводиться в поле Edit1 в виде -1,-4. Вот решение математически, а вот теперь как это расписать в C++ Builder, я не понимаю.=( |
Отправлено: 22:29, 12-11-2012 | #6 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать KnightMrak, пишу в псевдокоде, т.к. gcc (компилятор) в систему пока "не прикручен".
Делаем предположение, что матрица заполнена числами. Как работать со StrinGrid - я не в курсе, не возникало таких задач, читать справку откровенно лень. Алгоритм будет несколько избыточным, но да ладно, не велика потеря. Вводим дополнительный одномерный массив Vector[4]. В нем будем накапливать векторные разницы строк исходного массива. Цикл i от 1 до 4 //строки Vector[i]=Matrix[i][1] //первому элементу строки Цикл j от 2 до 3 //столбцы. Именно от 2х! Vector[i]=Vector[i]-Matrix[i][j]; // Цикл идет по строке, поэтому у нас меняется индекс столбца Конец цикла j // столбцы Конец цикла i //строки В результате выполнения циклов мы получили массив Vector[] в котором хранятся векторные разницы строк исходного массива. Вывести первое и третье значение не составит труда. (прим. одномерный массив иногда называют вектором. Т.е. каламбурчик, вектор под названием Vector[i]. ) |
------- Отправлено: 19:42, 13-11-2012 | #7 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать lxa85, Спасибо за помощь.
|
Отправлено: 15:14, 25-11-2012 | #8 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Доброго времени суток.
Вот написал код, а он не хочет компилиться!=( Подскажите где допустил ошибку?. Вод код программы: //--------------------------------------------------------------------------- const int m=3; const int n=4; typedef int AType[m][n]; typedef int VType[m]; void Vector(AType A, VType &V) {int i,j; for(i=0;i<m;i++) for(j=0;j<3;j+2)V[i]=A[0][i]-A[2][i]; } void __fastcall TForm1::Button1Click(TObject *Sender) { AType A; VType V; int i,j; for(i=0;i<m;i++) for(j=0;j<n;j++)A[i][j]=StrToInt(StringGrid1->Cells[j][i]); Vector(A,V); for(i=0;i<m;i++) StringGrid2->Cells[0][i]=IntToStr(V); } Заранее благодарен. П.С. Задане: Дан массив 3х4, нужно найти вектор-разницу 1 и 3 строки(от 1-й строки отнять 3-ю). |
Последний раз редактировалось KnightMrak, 11-12-2012 в 21:43. Отправлено: 21:23, 11-12-2012 | #9 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Цитата KnightMrak:
Если мы говорим IntToStr(V[i]), то мы пытаемся перевести элементы массива в строки. Это уже будет иметь смысл. |
|
------- Отправлено: 01:44, 12-12-2012 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Двумерные массивы | Hardcore | Программирование и базы данных | 2 | 11-10-2010 06:05 | |
C/C++ - Двумерные массивы | Hardcore | Программирование и базы данных | 3 | 05-10-2010 22:35 | |
[решено] Не выполняются задания по времени в "Назначенные задания" ? | Night-Elf | Microsoft Windows NT/2000/2003 | 10 | 05-03-2010 10:11 | |
C/C++ - C++ builder очень лёгкий вопрос | S1stem | Программирование и базы данных | 6 | 03-07-2008 18:17 | |
Динамические двумерные массивы | Nealles | Программирование и базы данных | 3 | 05-09-2003 21:59 |
|