![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 08.04.2011
Сообщений: 6
|
![]()
Здравствуйте, нужна помощь в решении следующей задачи:
Надо построить матрицу размера nxn |g1+g2+gc1_ |_______-g2_____|_____0__________|_____ 0____| |___-g2_____|___ g2+g3+gc2__|____ -g3_________|_____ 0___| |____0______|______-g3______|_____ g3+g4+gc3 |_____-g4__| |____0______|_______ 0 ______| ______-g4______ |___ g4+gc4| Условие для главной диагонали я написал, а для нулей и -gn не получается. Вроде ничего сверх сложного, но не получается придумать формулу. Вот код программы что я написал: #include "stdafx.h" #include "conio.h" #define n 4 // задаем количество узлов int _tmain(int argc, _TCHAR* argv[]) { int g[100],gc[100],i,j,gf[100]; //чтобы 100 раз не вбивать в консоли используйте эти значения /* g[1]=1; g[2]=2; g[3]=3; g[4]=4; gc[1]=1; gc[2]=2; gc[3]=3; gc[4]=4; */ printf("Vvedite znacheni soprotivleni\n"); for(i=1;i<n+1;i++) { printf("g[%d]= ",i); scanf("%d",&g[i]); } printf("Vvedite znacheni kondensatorov\n"); for(int i=1;i<n+1;i++) { printf("g[%d]= ",i); scanf("%d",&gc[i]); } for(i=1;i<n+1;i++) { for(j=1;j<n+1;j++) { if(i==n && i==j) {gf[i,j]=g[i]+gc[i];} else { if(i==j){ gf[i,j]=g[i]+g[i+1]+gc[i]; gf[i,j-1]=-g[i+1]; gf[i,j+1]=-g[i+1]; } else {gf[i,j+1]=0;gf[i,j-1]=0;} } printf(" %2.1d ",gf[i,j]); } printf("\n"); } getch(); return 0; } Похимичил и кое-что получилось, теперь надо разобраться со значениями ниже главной дигонали Последний раз редактировалось ShadowNecros; 08.04.2011 в 15:25. |
![]() |
![]() |
![]() |
#2 |
Регистрация: 08.04.2011
Сообщений: 6
|
![]()
Эээ, так что, никто ничего не посоветует? Может все таки есть какие мысли у кого-нибудь?
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 08.01.2010
Сообщений: 205
|
![]()
Если помог - кликни на значок весов под аватаром.
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 08.04.2011
Сообщений: 6
|
![]()
Да, этот материал полезен, но вы наверно меня не правильно поняли. Поставить определенный элемент в определенное место я могу, искать элементы тоже. Меня интересует как сделать с диагональю(которая ниже главной), тоже самое,что я сделал с диагональю выше главной. Мне нужна помощь в составлении формулы, а подставить ее я смогу в программу.
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 08.01.2010
Сообщений: 205
|
![]()
Ок, идем по циклу
Код:
Код:
gf[1,3] = 0; - все хорошо. gf[1,1] = 0; - зануляете первый первый элемент массива. Для размещения элементов используйте условие Код:
Если помог - кликни на значок весов под аватаром.
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 08.04.2011
Сообщений: 6
|
![]()
Спс за подсказку, получилось числа поставить, а теперь никак излишек нулями не забить. Можешь подсказать еще что-нибудь
#include "stdafx.h" #include "conio.h" #define n 5 // задаем количество узлов int _tmain(int argc, _TCHAR* argv[]) { int g[100],gc[100],i,j,k,gf[100]; //чтобы 100 раз не вбивать в консоли используйте эти значения g[1]=1; g[2]=2; g[3]=3; g[4]=4; g[5]=5; gc[1]=1; gc[2]=2; gc[3]=3; gc[4]=4; gc[5]=5; /*printf("Vvedite znacheni soprotivleni\n"); for(i=1;i<n+1;i++) { printf("g[%d]= ",i); scanf("%d",&g[i]); } printf("Vvedite znacheni kondensatorov\n"); for(int i=1;i<n+1;i++) { printf("g[%d]= ",i); scanf("%d",&gc[i]); } */ for(i=1;i<n+1;i++) { for(j=1;j<n+1;j++) { if(i==n && i==j) {gf[i,j]=g[i]+gc[i];} else { if(i==j) gf[i,j]=g[i]+g[i+1]+gc[i]; if(i>j) gf[i,j]=-g[i]; if(i<j) gf[i,j]=-g[j]; } printf(" %2.1d ",gf[i,j]); } printf("\n"); } getch(); return 0; } |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 08.01.2010
Сообщений: 205
|
![]()
В начале программы массив нулями инициализируйте
Если помог - кликни на значок весов под аватаром.
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 08.04.2011
Сообщений: 6
|
![]()
О отлично, получилось. Спс за направление на свет добрый друг. Если надо выложить рабочий вариант, напишите. Я Буду заглядывать на свою тему.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
событие для массива созданных элементов | areyoudead | Общие вопросы Delphi | 52 | 14.10.2014 19:25 |
Вывод элементов массива.Изменение элементов массива. | Vesnushka18 | Помощь студентам | 6 | 09.06.2011 13:05 |
Для массива определить сумму всех элементов, стоящих после максимального | HECTOR.A. | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 17.06.2009 22:04 |
Определить сумму элементов массива, кратных трем (Не выполняется условие) | Skrip | Общие вопросы C/C++ | 8 | 04.06.2009 13:56 |
В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива | HazelHen | Общие вопросы C/C++ | 2 | 29.03.2009 15:16 |