Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 13

Division by zero на программе

30.04.2016, 22:04. Показов 820. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Делаю курсовую. Задача такова:" Разработка программного обеспечения решения системы нелинейных уравнений. Метод Гаусса-Зейделя." Ход программы такой. Есть два массива а и б. задаем номер итерации и получаем массив х. Дело в ошибке Division by zero. Которую не могу решить, смотрел другие темы, но у меня в коде и близко деления на ноль нету. Прошу вашей помощи, код,скриншот а так же программу предоставляю.
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
int N, i, j,m;
 int a[3][3], b[10], x[10], y[10];
/*class  funk{
int N, d, **a;
public: func (int N1)
{ N1=N;
 a=new int *[N];
 for (int i=0; i<N; i++)
 a[i]=new int[N];
}
void f()
{int N, d, **a;
/*ввод
    for ( int i = 0; i < N; i++ )
        for ( int j = 0; j < N; j++ )
            a[i][j] = Form1->StringGrid1->Cells[j][i].ToInt();
   //Обмен
    for (int i=0; i<N; i++)
        for (int j=0; j<N; j++)
        {d=a[i][j];
        a[i][j]=a[N-1][j];
        a[N-1][j]=d;
        }
    //Вывод
     for (int i=0; i<N; i++)
        for(int j=0; j<N; j++)
        Form1->StringGrid1->Cells[j][i] = String(a[i][j]); */
 
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button4Click(TObject *Sender)
{
     N=StrToInt(Edit1->Text);
     StringGrid1->ColCount = StrToInt(Edit1->Text);
     StringGrid1->RowCount = StrToInt(Edit1->Text);
     StringGrid2->RowCount = StrToInt(Edit1->Text);
     StringGrid3->RowCount = StrToInt(Edit1->Text);
     a[i][j] =Form1->StringGrid1->Cells[j][i].ToInt();
     b[i] = Form1->StringGrid2->Cells[j][i].ToInt();
     x[i] = Form1->StringGrid3->Cells[j][i].ToInt();
   
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
      for(int i=0;i<StringGrid1->ColCount;i++)
      for(int j=0;j<StringGrid1->RowCount;j++){
        StringGrid1->Cells[i][j] = "";
         StringGrid2->Cells[i][j] = "";
          StringGrid3->Cells[i][j] = "";
}}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   Randomize();
   for(int i = 0; i < N; i++)
   for(int j = 0; j < N; j++)
    StringGrid1->Cells[i][j] = IntToStr(-10 + random(20));
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    for(int i=0;i<StringGrid1->ColCount;i++)
      for(int j=0;j<StringGrid1->RowCount;j++){
        StringGrid1->Cells[i][j] = "";
         StringGrid2->Cells[i][j] = "";
          StringGrid3->Cells[i][j] = "";
}}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button5Click(TObject *Sender)
{
     m=StrToInt(Edit1->Text);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button6Click(TObject *Sender)
{
 
 
  while (m > 0)
        for (i = 0; i < N; i++)
            y[i] = (b[i] / a[i][i]);
            for (j = 0; j < N; j++)
                if (j == i)
                    continue;
                y[i] = y[i] - ((a[i][j] / a[i][j]) * x[i]);
                x[i] = y[i];
        m--;
 
      Label6 -> Caption = y[i];
}
//---------------------------------------------------------------------------
Миниатюры
Division by zero на программе  
Вложения
Тип файла: rar РїСЂРѕРіР°(1).rar (445.7 Кб, 2 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.04.2016, 22:04
Ответы с готовыми решениями:

Ошибка в программе:Division by zero(деления в проге вообще нет)
Вот собсна и программа. Сама прога работает, но когда я создаю новую файл с данными в проге и выбираю кол-во записей в базе, выдает...

В программе для лабораторного задания выдает ошибку Integer division by zero
Надо по для лабораторной работы сделать задание: &quot;Задана матрица A(n,n). Первый элемент каждого чётного столбца заменить средним...

Division by zero
program VAMPIR; var i :longint; a : array of integer; b : array of integer; c : array of integer; begin ...

6
191 / 52 / 19
Регистрация: 18.02.2013
Сообщений: 508
Записей в блоге: 9
30.04.2016, 22:23
Цитата Сообщение от TarasRH Посмотреть сообщение
но у меня в коде и близко деления на ноль нету
Правда что ли?
C++
1
y[i] = (b[i] / a[i][i]);
C++
1
y[i] = y[i] - ((a[i][j] / a[i][j]) * x[i]);
Проверь отладчиком.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33402 / 21512 / 8236
Регистрация: 22.10.2011
Сообщений: 36,913
Записей в блоге: 12
01.05.2016, 10:07
Цитата Сообщение от TarasRH Посмотреть сообщение
C++
51
52
53
     a[i][j] =Form1->StringGrid1->Cells[j][i].ToInt();
     b[i] = Form1->StringGrid2->Cells[j][i].ToInt();
     x[i] = Form1->StringGrid3->Cells[j][i].ToInt();
без цикла как раз и приводит к тому, что все элементы массивов (кроме какого-то одного) остаются нулевыми, и та картинка, которая показана, никакого отношения к реальности не имеет, не с теми числами работает приложение.
1
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 13
01.05.2016, 17:13  [ТС]
volvo, не подскажете как правильно присвоить StringGrid,тобишь 1 ячейка = 1 переменной?
0
191 / 52 / 19
Регистрация: 18.02.2013
Сообщений: 508
Записей в блоге: 9
01.05.2016, 21:31
TarasRH, двойным циклом : первый цикл по строкам, второй по столбцам. Ты это уже делал - смотри свой код.
И еще :
C++
1
int a[3][3]
У тебя матрица 4 на 4, а массив создаешь 3 на 3 - исправляй.
1
0 / 0 / 0
Регистрация: 08.07.2015
Сообщений: 10
03.05.2016, 13:03
Gdasar, еще можно вопрос?
нельзя ли задавать размер матрицы, вводя ее в Edit?
или получится, что разную размерность, изменять непосредственно в коде??
Цитата Сообщение от TarasRH Посмотреть сообщение
N=StrToInt(Edit1->Text)
вот здесь. просто если писать a[N][N] пишет "E2313 Constant expression required"
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33402 / 21512 / 8236
Регистрация: 22.10.2011
Сообщений: 36,913
Записей в блоге: 12
03.05.2016, 13:18
Цитата Сообщение от korinchevska Посмотреть сообщение
нельзя ли задавать размер матрицы, вводя ее в Edit?
Можно. Но для этого матрица должна быть не статической, а динамической, и выделять память под нее нужно в тот момент, когда выставлено новое значение в Edit-е.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.05.2016, 13:18
Помогаю со студенческими работами здесь

division be zero
Здравствуйте! Такая проблема: при выполнении вот этой процедуры procedure Rat.reduce(var a,b:integer); //надо сократить дробь a/b ...

Division by zero
Доброго времени суток, программа должна выводить случайное число из диапазона к примеру от 0 до 0,997693359851837 или от -0,997693359851837...

Division by zero
Проблема в функции, не могу понять где именно является деление на 0, чтобы исправить проблему. Код на С + + переписана из Делфи и видимо...

Division by zero
Доброго времени суток. Выдает ошибку Division by zero, насколько я понял связанна она с делением на ноль. Вод код с со строкой на которую...

Warning: Division by zero
$online_players = $Query-&gt;QueryOldPre17(); //В online_players стоит число 5 $max_players = $Query-&gt;QueryOldPre17(); //В...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru