Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для Наталия_Dona
511 / 2 / 1
Регистрация: 14.10.2009
Сообщений: 31

Матрица

14.10.2009, 15:34. Показов 2275. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
подскажите пожалуста где ошибка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{ int a[5][5], i, j, b;
for (i=0;i<4;i++)
for(j=0;j<4;j++){
a[i][j]= StrToInt(stG1 ->Cells[i][j]);}
for (i=0;i<4;i++)
for(j=0;j<4;j++)
{
b=a[i][j];
a[i][j]=a[4-j][4-i];
a[4-j][4-i]=b;
}
for (i=0;i<4;i++)
for(j=0;j<4;j++)
{
stG2 -> Cells [i][j]= IntToStr (a[i][j]);}}
в задании нада переставить елем побочной диагонали в обратном порядке
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.10.2009, 15:34
Ответы с готовыми решениями:

Матрица
Есть матрица, которая генерируется случайным образом Нужно найти сумму ее отрицательных элементов { int i,j,sum; sum=0; for...

Матрица
Всем доброго времени суток!!! Надо задать матрицу 6х6, не содержащую 0 и 1. Заменить элементы, встречающиеся больше одного раза, на...

матрица
задана прямоугольная матрица. найти наибольший и наименьший элементы матрицы и поменять их местами дан массив символов, среди...

13
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
14.10.2009, 15:46
Наталия_Dona, по идее хватит одного цикла... и только до средины, а не до конца...
1
 Аватар для Наталия_Dona
511 / 2 / 1
Регистрация: 14.10.2009
Сообщений: 31
14.10.2009, 16:07  [ТС]
я попробывала убрать форы, но ониж вродебы нужны если нада выводить в стрингрид
C++
1
2
3
4
5
6
for (i=0;i<4;i++)
for(j=0;j<4;j++)
{
stG2 -> Cells [i][j]= IntToStr (a[i][j]);
}
}
якада компилирую, то ошибок нет, а прогамма просто подвисает и выбивает в акоето меню

Добавлено через 6 минут
Debugger Exception Notification
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
14.10.2009, 16:10
Наталия_Dona, пардон, не уточнил где - это в промежутке кода 5-11 один цикл лишний
1
 Аватар для Наталия_Dona
511 / 2 / 1
Регистрация: 14.10.2009
Сообщений: 31
14.10.2009, 16:48  [ТС]
спасиба)))

Добавлено через 14 минут
Вы получили следующие сообщения:

Проект XXXX поднял класс исключения YYYYY с сообщением 'zzzzzz.

Процесс приостановлен. Шаг использования или Запустить, чтобы продолжить.

Это окно появляется, когда программа отладки вызывает исключение, и у вас есть набор параметров, которые поручить отладчик для обработки исключений (см. Язык исключений и ОС исключения страниц Tools | Debugger диалогового). Оба языка исключений и операционной системой исключений (называемые сигналы на Linux) показывать этот диалог. Если "YYYYY 'в сообщении имя класса, а это означает, что исключением является языком исключение. Если "YYYYY 'является шестнадцатеричные значения, это означает, что это исключение является операционной системой исключения.

Если местонахождение исключение не соответствуют местоположение источника, флажок "Показать Процессор 'появляется в левом нижнем углу диалогового окна.

После нажатия на кнопку ОК в диалоговом окне IDE показывает места, где произошло исключение. Если флажок Открыть процессора, отображается мнение о процессоре. Если местонахождение за исключением непосредственно соответствует местоположение источника, что местоположение источника показана (и поле Открыть процессор не появится в диалоговом окне).

Если исключение местоположение которых не соответствуют источник, и вы не проверить флажок Открыть процессор, IDE обходит стек вызовов ищет вызова в стек, содержащий источник и покажу вам первый вызов, который нашел источник.

Что нужно делать, когда вы видите этот диалог?

В большинстве случаев, нажав ОК и делаем Выполнить | Выполнить и впредь будет работать только штрафом. В некоторых случаях государства, программа не позволит вам запуска или продолжения не позволят им продолжать (вы неоднократно видеть за исключением сообщений). В этом случае вам нужно будет выбрать Выполнить | Программа сброса до конца текущего запуск программы и освободить его из памяти.

Нажмите Ctrl C, чтобы скопировать этот или аналогичные сообщения в буфер обмена.

Добавлено через 35 секунд
вот ето я перевела ту ошибку что выбило. может я что то не так прописала
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
14.10.2009, 17:57
Наталия_Dona, напишите саму ошибку и код, что написали
0
 Аватар для AsFalt
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
16.10.2009, 16:38
Цитата Сообщение от Наталия_Dona Посмотреть сообщение
я попробывала убрать форы, но ониж вродебы нужны если нада выводить в стрингрид
C++
1
2
3
4
5
6
for (i=0;i<4;i++)
for(j=0;j<4;j++)
{
stG2 -> Cells [i][j]= IntToStr (a[i][j]);
}
}
якада компилирую, то ошибок нет, а прогамма просто подвисает и выбивает в акоето меню

Добавлено через 6 минут
Debugger Exception Notification
везде где встречалась такая запись, первый цикл не имел открывающей скобки...
1
 Аватар для Наталия_Dona
511 / 2 / 1
Регистрация: 14.10.2009
Сообщений: 31
16.10.2009, 17:19  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
int a[5][5], i, j, b;  String S;
for (i=0;i<5;i++)
   for(j=0;j<5;j++){
       S=stG1->Cells[i][j];}
for (i=0;i<2;i++)
    {  b=a[i][i];
       a[i][i]=a[i][4-i];
       a[i][4-i]=b;
}
for (i=0;i<5;i++)
for(j=0;j<5;j++){
stG2 -> Cells [i][j]= IntToStr (a[i][j]);}
Добавлено через 2 минуты
вот сама програма работает, но памагите пажалуста с самим циклом
b=a[i][4-i];
a[i][4-i]=a[][];
a[][]=b;
а что над вставить там ну незнаю)))

паставила for (i=0;i<2;i++) потомучто 2 раза повторение расчёта

Добавлено через 1 минуту
в задание нужно перевернуть побочную диагональ тоесть
тоесть i=0 j=4
i=1 j=3
i=2 j=2
i=3 j=4
i=4 j=0
0
 Аватар для AsFalt
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
16.10.2009, 19:25
хм... объясню еще раз...

цикл for имеет синтаксис:
C++
1
2
3
4
5
//циклу for использует три параметра: инициализированная переменная (иногда зануляют), предел цикла, изменение переменной управления циклом
for(int i=0;i<10;i++)
{// открывающая скобка операций цикла
... // какие то действия в цикле
} // закрывающая скобка операций цикла
Так вот, посмотри внимательно на свое использование циклов...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int a[5][5], i, j, b;
for (i=0;i<4;i++)
for(j=0;j<4;j++)
{
a[i][j]= StrToInt(stG1 ->Cells[i][j]);
}
for (i=0;i<4;i++)
for(j=0;j<4;j++)
{
b=a[i][j];
a[i][j]=a[4-j][4-i];
a[4-j][4-i]=b;
}
for (i=0;i<4;i++)
for(j=0;j<4;j++)
{
stG2 -> Cells [i][j]= IntToStr (a[i][j]);
}
А вот так будет правильнее)))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int a[5][5], i, j, b;
for (i=0;i<4;i++)
{
  for(j=0;j<4;j++)
  {
    a[i][j]= StrToInt(stG1 ->Cells[i][j]);
  }
}
for (i=0;i<4;i++)
{
  for(j=0;j<4;j++)
  {
    b=a[i][j];
    a[i][j]=a[4-j][4-i];
    a[4-j][4-i]=b;
  }
}
for (i=0;i<4;i++)
{
  for(j=0;j<4;j++)
  {
    stG2 -> Cells [i][j]= IntToStr (a[i][j]);
  }
}
Как говорится, найдти кучу отличий!!!!!!

З.Ы. Обрати внимание на скобки циклов...
1
 Аватар для AsFalt
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
17.10.2009, 01:33
Короче вот код.. вроде работает...

Кнопка Button2 просто забивает первый стринг грид случайными числами...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
 
 
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
randomize();
stG1->ColCount = 5;
stG1->RowCount = 5;
stG23->ColCount = 5;
stG23->RowCount = 5;
for (int i=0;i<4;i++)
{
  for(int j=0;j<4;j++)
  {
    stG1->Cells[i][j] = 5+random(100);
  }
}
for (int i=0;i<4;i++)
{
  for(int j=0;j<4;j++)
  {
    stG23->Cells[i][j] = 0;
  }
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int a[4][4], i, j, b;
for (int i=0;i<4;i++)
{
  for(int j=0;j<4;j++)
  {
    a[i][j] = StrToInt(stG1->Cells[i][j]);
  }
}
for (int i=0;i<2;i++)
{
  for(int j=0;j<2;j++)
  {
    b=a[i][j];
    a[i][j]=a[3-j][3-i];
    a[3-j][3-i]=b;
  }
}
for (int i=0;i<4;i++)
{
  for(int j=0;j<4;j++)
  {
    stG23->Cells[i][j] = a[i][j];
  }
}
}
//---------------------------------------------------------------------------
Проблема была в составлении циклов и переполнении массивов..

И пожауйста инициализируй переменные в самом вхождении в цикл..
от этого они не ржавеют)))

З.Ы. Да и еще вот что... у тебя по моему переворачивается не побочная диагональ... а нормальная)))
1
14 / 14 / 1
Регистрация: 17.10.2009
Сообщений: 58
18.10.2009, 00:19
Цитата Сообщение от AsFalt Посмотреть сообщение
for (i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
b=a[i][j];
a[i][j]=a[4-j][4-i];
a[4-j][4-i]=b;
}
}
как грится, несогласная я:
C++
1
2
3
4
5
for(i=0;i<2;i++){
arr[i,4-i] = arr[i,4-i]^arr[4-i,i];
arr[4-i,i] = arr[i,4-i]^arr[4-i,i];
arr[i,4-i] = arr[i,4-i]^arr[4-i,i];
}
Вот это должно "переворачивать" элементы побочной диагонали для квадратной 5х5 матрицы.
Кстати, AsFalt, твое использование циклов мало чем(я бы даже сказал, что вообще ничем) отличается от использования циклов топикстартером..
0
Эксперт по математике/физике
 Аватар для Том Ардер
4218 / 3416 / 396
Регистрация: 15.06.2009
Сообщений: 5,817
18.10.2009, 00:41
в задание нужно перевернуть побочную диагональ тоесть
тоесть i=0 j=4
i=1 j=3
i=2 j=2
i=3 j=4
i=4 j=0
C++
1
2
3
4
5
6
for( i = 0; i < 2; i++ )
{
    b = a[i][4-i];
    a[i][4-i] = a[4-i][i];
    a[4-i][i] = b;
}
1
 Аватар для Наталия_Dona
511 / 2 / 1
Регистрация: 14.10.2009
Сообщений: 31
18.10.2009, 22:12  [ТС]
спасиба огромное)

Добавлено через 35 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{ int a[5][5], i, j, b;
for (int i=0;i<5;i++)
{
  for(int j=0;j<5;j++)
  {
    a[i][j] = StrToInt(stG1->Cells[i][j]);
  }
}
for (int i=0;i<2;i++)
{
  for(int j=0;j<2;j++)
  {
    b=a[i][4-j];
    a[i][4-j]=a[4-j][i];
    a[4-j][i]=b;
  }
}
for (int i=0;i<5;i++)
{
  for(int j=0;j<5;j++)
  {
    stG2->Cells[i][j] = a[i][j];
  }
}
 
 
}
Добавлено через 29 секунд
вот работает и переварачивает побочную диагональ)))
спасиба за помощь

Добавлено через 58 секунд
если камуто нада IniFile

C++
1
2
3
4
5
6
void __fastcall TForm1::LoadClick(TObject *Sender)
{
String path= GetCurrentDir();
TIniFile *Ini=new TIniFile (path+ "\\MyIni");
Ini ->WriteInteger ("Form","Left", Left);
delete Ini;
0
 Аватар для AsFalt
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
19.10.2009, 20:03
Цитата Сообщение от desp Посмотреть сообщение
Вот это должно "переворачивать" элементы побочной диагонали для квадратной 5х5 матрицы.
Кстати, AsFalt, твое использование циклов мало чем(я бы даже сказал, что вообще ничем) отличается от использования циклов топикстартером..
Ну это я уже понял после написания поста... а править было поздно)))) потом когда начал пробовать собрать код у себя... получилось трабла с переполнением...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.10.2009, 20:03
Помогаю со студенческими работами здесь

Матрица в таблице
Ребят ,скиньте пожалуйста код как можно матрицу 6на6 задать в стрингриде??

вещ. матрица...
Помоги программку забацать на C++ Builder: Дана вещ. матрица N на M. Определить числа В1,...,Вп, равные произведению минимальных и...

Матрица в памяти
Добрый день! Есть трехмерная матрица matrix . Ее значения float. Заполняю ее так: matrix = float Обратил внимание, что когда...

Динамическая матрица на классах
Здравствуйте! Мне нужно реализовать матрицу при помощи классов. Я сделал проект и столкнулся с проблемой. Проблема заключается в том, что...

Дана квадратная матрица D(10,10)
Записать на место отрицательных элементов матрицы нули, а на место положительных единицы. Вывести на печать нижнюю треугольную матрицу в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru