Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Мега Ксю
3 / 3 / 0
Регистрация: 02.03.2013
Сообщений: 56
#1

Переделать из массивов в векторы - C++

03.03.2013, 00:01. Просмотров 567. Ответов 16
Метки нет (Все метки)

Всем привет Очень нужна ваша помощь..

Есть программка на Паскале (проверяла на Pascal ABC)
Кликните здесь для просмотра всего текста
Pascal
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
const a=501; s=501;
var 
  c : array [0..a,0..s] of real;
  i, j, n, m : integer;
  t, d, h : real;
  f : text;
begin
  assign(f, 'out_const.txt');
  rewrite(f);    
  write('Введите количество строк n=');
  readln(n);
  write('Введите количество столбцов m=');
  readln(m);
  
  t:=10;
  d:=power(10,-17)*7;
  h:=power(10,-8)*5;
  c[0,0]:= power(10,24);
 
  for i:=1 to n do c[i,0]:=0;
 
  for j:=0 to m do c[0,j]:=power(10,24);
 
  for j:=0 to m do
  begin
    for i:=1 to n do
    c[i,j+1]:=c[i,j]+t*d*((c[i+1,j]-2*c[i,j]+c[i-1,j])/(h*h));
  end;
 
  for i := 0 to n do
  writeln(f, c[i,m]:10:15);
  close(f);
end.

которая работает верно. для N = 100 и M = 100 вот такой выходной файл является правильным
Кликните здесь для просмотра всего текста
1000000000000000000000000.000000000000000
894010325563008000000000.000000000000000
789877200698146000000000.000000000000000
689360562438361000000000.000000000000000
594035421491086000000000.000000000000000
505219157486511000000000.000000000000000
423919906548587000000000.000000000000000
350809131316592000000000.000000000000000
286218849819716000000000.000000000000000
230161523775744000000000.000000000000000
182368580991607000000000.000000000000000
142342189483170000000000.000000000000000
109414312242510000000000.000000000000000
82807228822076000000000.000000000000000
61690487526713200000000.000000000000000
45230455491482800000000.000000000000000
32630040723463000000000.000000000000000
23157558807730300000000.000000000000000
16164937381260400000000.000000000000000
11096382792876600000000.000000000000000
7489228198213010000000.000000000000000
4968949681433970000000.000000000000000
3240327544444650000000.000000000000000
2076518143654510000000.000000000000000
1307468678362790000000.000000000000000
808727209406693000000.000000000000000
491331251775192000000.000000000000000
293139487568664000000.000000000000000
171722535348124000000.000000000000000
98754724833151300000.000000000000000
55742908137611000000.000000000000000
30877685905959200000.000000000000000
16782010426860500000.000000000000000
8947596123799220000.000000000000000
4678956598055330000.000000000000000
2399313054386500000.000000000000000
1206237305403330000.000000000000000
594424494950114000.000000000000000
287068925638502000.000000000000000
135833136002690000.000000000000000
62958837112387100.000000000000000
28578346898460800.000000000000000
12701100906708900.000000000000000
5525353705575240.000000000000000
2352230018911390.000000000000000
979676475831271.000000000000000
399067503432969.000000000000000
158943787984837.000000000000000
61878786978920.500000000000000
23539816488377.400000000000000
8747491952297.830000000000000
3174191636936.030000000000000
1124333447846.920000000000000
388602631717.751000000000000
131006747054.633000000000000
43060551133.817200000000000
13793535943.712900000000000
4304123246.814710000000000
1307675553.258000000000000
386637690.138557000000000
111190744.678177000000000
31085126.661855500000000
8443109.893774470000000
2226641.145874330000000
569787.617055856000000
141381.091814045000000
33991.311945717700000
7912.361607248750000
1781.755594500340000
387.804686842486000
81.506964407419200
16.525673628073900
3.228805212444120
0.607217584175618
0.109781894040826
0.019055627915117
0.003171009512440
0.000505099219276
0.000076882008335
0.000011161911575
0.000001542548541
0.000000202468972
0.000000025178473
0.000000002958462
0.000000000327450
0.000000000034024
0.000000000003306
0.000000000000299
0.000000000000025
0.000000000000002
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000


моя задача, это перевести эту программку на язык С++, причем использовать вместо двумерных массивов векторы. Как это сделать, я не очень понимаю, даже не получилось перевести на С++ и использованием двумерных массивов
У меня программка работает невернопроверяла в VS10 и VS12 и GNU GCC v4.6.3 на OS Windows 7 x64 вот что я накодила
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <fstream>
#include <cmath>
#include <cstdlib>
 
#define FILE_NAME "out.txt"
 
int main(int argc, char *argv[])
{
  int M, N;
  long double t = 10.0;
  long double D = pow(10.0, -17.0) * 7.0;
  long double h = pow(10.0, -8.0) * 5.0;
 
  std::ofstream outFile(FILE_NAME);
 
  std::cout << "Rows, N -> ";
  std::cin >> N;
 
  std::cout << "Cols, M -> ";
  std::cin >> M;
 
  long double **array = new long double *[N];
  for (int i = 0; i < N; i++)
    array[i] = new long double[M];
  
  array[0][0] = pow(10.0, 24.0);
 
  for (int i = 0; i < N; i++) array[i][0] = pow(10.0, 24.0);
  for (int i = 0; i < M; i++) array[0][i] = pow(10.0, 24.0);
 
  for (int i = 1; i < M - 1; i++)
    for (int j = 1; j < N - 1; j++)
      array[j][i+1] = array[j][i] + t*D*((array[j+1][i] - 2*array[j][i] + array[j-1][i])/(h*h));
  
  for (int i = 0; i < N; i++)
    outFile << array[i][N] << "\n";
 
  for (int i = 0; i < N; i++)
    delete array[i];
  delete[] array;
 
  outFile.close();
 
  system("PAUSE");
 
  return 0;
}


результат работы программы - это файл из нулей, и всё
Если кому не сложно, то можете перевести программку на паскале на язык С++? Все равно как: или с двумерными массивами, или в векторами ну лучше конечно с векторами

Очень на вас надеюсь

P.S. Конечно, я понимаю, что я прошу Вас тратить свое время на меня, но я пишу на форуме от безысходности.. просто затратив кучу времени на перевод программы на язык С++, я толком ничего и не достигла.. Такими темпами я не скоро правильно переведу программку..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2013, 00:01     Переделать из массивов в векторы
Посмотрите здесь:
C++ Заменить в коде использование динамических массивов на векторы
переделать с исполбзованием динамических массивов C++
необходимо переделать программу, чтобы вместо обычных массивов были динмические C++
Создать массив структур без использования массивов и нотации массивов C++
В каждом из массивов найти наибольшее значение и умножить на него все элементы массивов C++
В каждом из заданных массивов найти наибольшее значение, и разделить на него все элементы массивов C++
C++ Сравнение массивов: найти максимальное перебором массивов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XRuZzz
Антикодер
657 / 558 / 27
Регистрация: 15.09.2012
Сообщений: 2,509
03.03.2013, 00:07     Переделать из массивов в векторы #2
а кому нужна эта программа? какова роль пользователя этой программы?
Мега Ксю
3 / 3 / 0
Регистрация: 02.03.2013
Сообщений: 56
03.03.2013, 00:24  [ТС]     Переделать из массивов в векторы #3
Цитата Сообщение от XRuZzz Посмотреть сообщение
а кому нужна эта программа? какова роль пользователя этой программы?
ну если вам интересно, то она рассчитывает глубину залегания p-n перехода при диффузии акцепторов в кремний n-типа.
FRINGE
3 / 3 / 0
Регистрация: 18.12.2012
Сообщений: 49
03.03.2013, 00:27     Переделать из массивов в векторы #4
Цитата Сообщение от Мега Ксю Посмотреть сообщение
ну если вам интересно, то она рассчитывает глубину залегания p-n перехода при диффузии акцепторов в кремний n-типа.
господи мои родные)))
Мега Ксю
3 / 3 / 0
Регистрация: 02.03.2013
Сообщений: 56
03.03.2013, 00:29  [ТС]     Переделать из массивов в векторы #5
Цитата Сообщение от FRINGE Посмотреть сообщение
господи мои родные)))
ага.. порой жалею, что до 4 курса доучилась..
XRuZzz
Антикодер
657 / 558 / 27
Регистрация: 15.09.2012
Сообщений: 2,509
03.03.2013, 01:28     Переделать из массивов в векторы #6
Цитата Сообщение от Мега Ксю Посмотреть сообщение
ну если вам интересно, то она рассчитывает глубину залегания p-n перехода при диффузии акцепторов в кремний n-типа.
хм а где про это прочитать подробнее(про глубину залегания)? это типа технологу, который следит за изготовлением транзисторов она нужна получается?
щас подумаю как исправить... вашу программу

Добавлено через 6 минут
а вы сами писали код на C++?

Добавлено через 20 минут
посмотрите внимательно на эту строчку
C++
1
outFile << array[i][N] << "\n";
Чему равно N?

Добавлено через 15 минут
короче вы немного промахнулись и вышли за пределы массива
C++
1
outFile << array[i][N-1] << "\n";
Мега Ксю
3 / 3 / 0
Регистрация: 02.03.2013
Сообщений: 56
03.03.2013, 01:46  [ТС]     Переделать из массивов в векторы #7
Цитата Сообщение от XRuZzz Посмотреть сообщение
хм а где про это прочитать подробнее(про глубину залегания)? это типа технологу, который следит за изготовлением транзисторов она нужна получается?
это из области твердотельной микроэлектронике. Что из литературы.. нам советовали эти книжки
А.И.Курносов, В.В.Юдин ТЕХНОЛОГИЯ ПРОИЗВОДСТВА ПОЛУЧПРОВОДНИКОВЫХ ПРИБОРОВ И ИНТЕГРАЛЬНЫХ СХЕМ
и
Ю.М.Таиров, В.Ф.Цветков ТЕХНОЛОГИЯ ПОЛУПРОВОДНИКОВЫХ И ДИЭЛЕКТРИЧЕСКИХ ПРИБОРОВ

Обе книжки я частично читала, так что и вам тоже советую, если вы заинтересованы в этом вопросе
Обе книги есть в электроном варианте, гугляться на раз
Цитата Сообщение от XRuZzz Посмотреть сообщение
а вы сами писали код на C++?
ага) этот код - результат моих мучений, за дня два

Цитата Сообщение от XRuZzz Посмотреть сообщение
outFile << array[i][N] << "\n";
насчет этой строчки, то тут я немного невнимательна. В Паскаль-версии программки, там второй индекс равен не N а M. Код исправила, но результат не поменялся
значение N равно тому, что мы ввели, т.к. оно вроде нигде не изменяется. также файл из нулей.
Заметила то, что если брать не M а M-1, то первое и последнее значение верное, а остальные как NAN, типа не определены

Добавлено через 2 минуты
Цитата Сообщение от XRuZzz Посмотреть сообщение
короче вы немного промахнулись и вышли за пределы массива
тут что
C++
1
outFile << array[i][N-1] << "\n";
что
C++
1
outFile << array[i][M-1] << "\n";
дают одинаковый результат. Файл верными первыми и последними значениями, а все остальное NAN
Winterad
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 14
03.03.2013, 01:51     Переделать из массивов в векторы #8
C++
1
for (int i = 0; i < N; i++) array[i][0] = pow(10.0, 24.0);
замените на:
C++
1
for (int i = 1; i < N; i++) array[i][0] = 0;
C++
1
for (int i = 1; i < M - 1; i++)
замените на:
C++
1
for (int i = 0; i < M - 1; i++)
Мега Ксю
3 / 3 / 0
Регистрация: 02.03.2013
Сообщений: 56
03.03.2013, 02:00  [ТС]     Переделать из массивов в векторы #9
Winterad, спасибо но похоже, что есть где то ещё ошибки, т.к. результат работы программы неверен
верный выходной файл выглядит так
Кликните здесь для просмотра всего текста
1E+24
9.52374223649348E+23
9.04917879829011E+23
8.57798596354829E+23
8.11180423588381E+23
7.65222124855058E+23
7.20075559645201E+23
6.75884186948533E+23
6.32781713151569E+23
5.9089090545277E+23
5.50322587828024E+23
5.1117483232875E+23
4.7353235404335E+23
4.3746611352962E+23
4.03033126059295E+23
3.70276472728353E+23
3.39225504490159E+23
3.0989622656164E+23
2.82291847517757E+23
2.5640347479024E+23
2.32210936266984E+23
2.09683706272258E+23
1.8878191339874E+23
1.69457407445129E+23
1.51654863055126E+23
1.35312898507514E+23
1.203651894129E+23
1.06741558761044E+23
9.43690267578465E+22
8.31728061138617E+22
7.30772308171301E+22
6.40066088650887E+22
5.58859918708365E+22
4.86418568324847E+22
4.2202697603324E+22
3.64995256772099E+22
3.14662817700646E+22
2.70401613072361E+22
2.31618583002692E+22
1.97757332076627E+22
1.68299112234093E+22
1.42763180332715E+22
1.20706604370491E+22
1.01723593759892E+22
8.54444285227755E+21
7.15340600911128E+21
5.96904528342172E+21
4.96427307735199E+21
4.11491884683185E+21
3.39952190222586E+21
2.79912058107646E+21
2.29704180779692E+21
1.87869441822177E+21
1.53136901353198E+21
1.24404653046569E+21
1.00721718211678E+21
8.12710942403431E+20
6.5354032128206E+20
5.23755808557964E+20
4.18314051347519E+20
3.32958571949053E+20
2.64112625914773E+20
2.0878364040806E+20
1.64478555789095E+20
1.29129313757127E+20
1.0102768812807E+20
7.87686343454183E+19
6.12013362308263E+19
4.73871487266729E+19
3.65636693229021E+19
2.81142148072944E+19
2.15420307243418E+19
1.64486157463525E+19
1.2515599789925E+19
9.48967132716077E+18
7.17010451912708E+18
5.39848947088482E+18
4.05031831518847E+18
3.02812548244078E+18
2.25592213370897E+18
1.67470222491851E+18
1.23883107586434E+18
9.13156784187449E+17
6.70710573731377E+17
4.90884470444371E+17
3.57993858227825E+17
2.6014879555072E+17
1.8837178475966E+17
1.35911283491981E+17
9.77099184350827E+16
6.99943716432154E+16
4.99605006469227E+16
3.55326426050459E+16
2.51804317067961E+16
1.77799957482138E+16
1.25092373931769E+16
8.76917228943636E+15
6.12509525263487E+15
4.2627656470015E+15
2.95591761403124E+15
2.0422708742222E+15
1.40589343835625E+15
964289410186449
658986038604319
448700693344286
304401552831945
205752189151822
138563046291904
92972307964473.1
62152829258803.4
41396837074421.2
27470732695482.6
18162181234722.9
11963501081690.3
7851252551553.69
5133431851421.19
3343972355533.26
2170208185475.27
1403207074460.05
903902491082.027
580094356805.805
370894777736.833
236252050943.107
149923947232.004
94783933912.876
59698647411.1513
37459158804.2737
23416017413.6077
14582340363.055
9046869108.32747
5591443481.44768
3442720724.08424
2111686885.23856
1290341795.62863
785461938.457041
476308436.941982
287734374.859084
173154248.064489
103803033.710098
61989764.5560716
36877418.2087056
21853909.0346007
12900999.5024432
7586486.30844692
4444046.16337607
2593190.74049009
1507321.23328053
872750.377700354
503366.778429807
289192.291354341
165498.438383169
94341.648360651
53568.8989996281
30298.3508770695
17069.4513164888
9578.81317674674
5354.17629307451
2980.9842671154
1653.14125981164
913.147009959799
502.399341870473
275.316471769569
150.275170540651
81.6979709015769
44.238602788189
23.8591345782682
12.8164623172825
6.85707427753069
3.65395965993392
1.93927688196939
1.02509477073034
0.539676201104213
0.282972653666902
0.147772798365572
0.0768564304031003
0.0398105733551893
0.0205374239764153
0.0105516310563097
0.00539903411006719
0.00275126306298971
0.00139625402429838
0.000705683084388398
0.000355193144240567
0.000178043310968034
8.88770363413821E-05
4.41827607760255E-05
2.18731865709162E-05
1.07835982704969E-05
5.29424777352316E-06
2.58839289934974E-06
1.26019554116929E-06
6.10975614964423E-07
2.94974439022381E-07
1.41812919387142E-07
6.78913472910815E-08
3.23650700663826E-08
1.53637919878044E-08
7.26233445102203E-09
3.41826885819387E-09
1.60208108067727E-09
7.47665236611339E-10
3.47432465422185E-10
1.60757106117721E-10
7.40632145411798E-11
3.39753175268479E-11
1.55184748883248E-11
7.05756721190927E-12
3.19578364297977E-12
1.44082731717995E-12
6.46776953556144E-13
2.89068629038073E-13
1.28631389993281E-13
5.69886343600295E-14
2.51374084505888E-14
1.10392446742155E-14
4.82659018073753E-15
2.10096716593098E-15
9.10482090958225E-16
3.92818869780855E-16
1.68724254550919E-16
7.21476762840507E-17
3.07129974321986E-17
1.30158464389489E-17
5.49121284110898E-18
2.30624285316109E-18
9.64223930836883E-19
4.0131191065111E-19
1.66269500968737E-19
6.85748110738813E-20
2.81535502157525E-20
1.15057049655582E-20
4.68058102379185E-21
1.89534239517152E-21
7.63962117173755E-22
3.06511676352999E-22
1.22407505061322E-22
4.86574802898073E-23
1.92515812824454E-23
7.58146353363086E-24
2.97169425698843E-24
1.1593489221731E-24
4.50171136009385E-25
1.7397586568814E-25
6.69179497491367E-26
2.561726950636E-26
9.76009214820784E-27
3.70083817837317E-27
1.39657911990767E-27
5.24498663392633E-28
1.96033676934597E-28
7.29152647650772E-29
2.69899236643708E-29
9.94200973607253E-30
3.64443228148564E-30
1.32942103240081E-30
4.82576194553941E-31
1.74314535149635E-31
6.26555114099457E-32
2.24097223667397E-32
7.97551401664272E-33
2.82435528235788E-33
9.95203223746697E-34
3.48922782689111E-34
1.21720919643739E-34
4.22486309903881E-35
1.45903155024382E-35
5.01319264942589E-36
1.71377873048655E-36
5.82879327674228E-37
1.9723271147718E-37
6.63969902661083E-38
2.22371791576149E-38
7.40910032692048E-39
2.45582993285329E-39
8.09786650970687E-40
2.65628613576053E-40
8.66768949359275E-41
2.81350917209104E-41
9.08452035853135E-42
2.91780621037188E-42
9.32188366866887E-43
2.96234505484671E-43
9.36362894011214E-44
2.94388679955381E-44
9.20572645980317E-45
2.86316699555493E-45
8.85683315802874E-46
2.72486411931752E-46
8.33752560997765E-47
2.53715329482127E-47
7.67829144926164E-48
2.31090399832774E-48
6.91655152528751E-49
2.05863148512817E-49
6.09311913796918E-50
1.79334348820588E-50
5.24856558118978E-51
1.52743099726958E-51
4.41994412479568E-52
1.27173448101171E-52
3.63823525004776E-53
1.0348796328254E-53
2.92673630141789E-54
8.22928098228691E-55
2.3004588509438E-55
6.39338641827705E-56
1.76644799546834E-56
4.85191930835172E-57
1.32482455623482E-57
3.59603914507781E-58
9.70288147147637E-59
2.60241302853576E-59
6.93808615065469E-60
1.83856831616418E-60
4.84267138177914E-61
1.26777961157028E-61
3.29871139794123E-62
8.53050603077693E-63
2.19241702343693E-63
5.59986137843998E-64
1.42142786598664E-64
3.58553003325027E-65
8.98773583457729E-66
2.23873600100283E-66
5.54112844531626E-67
1.36277214213945E-67
3.33015738808401E-68
8.08554651919354E-69
1.9504892967345E-69
4.67469874936243E-70
1.11307820390554E-70
2.63296856281667E-71
6.18727461952863E-72
1.44434996049313E-72
3.34927043282141E-73
7.71468094509617E-74
1.76506515038057E-74
4.0110989820296E-75
9.05337569783027E-76
2.02948894363009E-76
4.51831051396253E-77
9.98993687808564E-78
2.19346414045331E-78
4.78258923324969E-79
1.03548492061046E-79
2.22615711851516E-80
4.75206246063903E-81
1.00717627341953E-81
2.11937760170613E-82
4.42764661640227E-83
9.18293104907412E-84
1.89066772581834E-84
3.86416900372635E-85
7.8394441016443E-86
1.57864198966648E-86
3.15523683173468E-87
6.25908187104375E-88
1.23225276980484E-88
2.40757226438614E-89
4.66797778345925E-90
8.98105615641388E-91
1.71456589879789E-91
3.24778844431972E-92
6.10388560666527E-93
1.13812021719692E-93
2.10528380738071E-94
3.86323602116526E-95
7.03212988611362E-96
1.26967973940164E-96
2.27378505530734E-97
4.03857742730085E-98
7.11388270677267E-99
1.24268017630746E-99
2.15258904804382E-100
3.69731337172512E-101
6.29663689768682E-102
1.06316760996536E-102
1.77966610359453E-103
2.95319130282056E-104
4.85772570055011E-105
7.92016762016509E-106
1.27987298992556E-106
2.04975112247306E-107
3.25317392781911E-108
5.11628743854871E-109
7.9728421659744E-110
1.230978600242E-110
1.88293317854323E-111
2.8532101906876E-112
4.2826626840296E-113
6.3670959958213E-114
9.37522946795206E-115
1.36710007243591E-115
1.97406226792286E-116
2.82245547756528E-117
3.99541535753013E-118
5.59921963930392E-119
7.76757079640992E-120
1.06658564891761E-120
1.44950233534182E-121
1.94945777661423E-122
2.5944105960538E-123
3.41626006783884E-124
4.45048123195057E-125
5.73538325458604E-126
7.31091920722455E-127
9.21699345430296E-128
1.14912431450152E-128
1.41663134546577E-129
1.72667011947558E-130
2.08053052159394E-131
2.47798894886668E-132
2.91697285895324E-133
3.39327566236543E-134
3.9003569673378E-135
4.42926294424401E-136
4.96869746090887E-137
5.50526628369725E-138
6.02390417312439E-139
6.50847884906482E-140
6.94254788824998E-141
7.31022650056873E-142
7.59710800906717E-143
7.79116700086409E-144
7.88356953288756E-145
7.86931688018023E-146
7.74765963196556E-147
7.52223693136817E-148
7.20091968496099E-149
6.79536406067365E-150
6.32030934236044E-151
5.79267882672735E-152
5.23056085699796E-153
4.65215699483165E-154
4.07478458577555E-155
3.51401174133076E-156
2.98298549346767E-157
2.49199106536424E-158
2.04825496700192E-159
1.6559802234189E-160
1.31658137643953E-161
1.02907210486237E-162
7.90550508501496E-164
5.96726347670239E-165
4.42439913118842E-166
3.22132114412813E-167
2.30237848979153E-168
1.61487768962732E-169
1.11115501440191E-170
7.49769852415538E-172
4.95952183739339E-173
3.21472620352488E-174
2.04111567248607E-175
1.26890940779485E-176
7.7204977625336E-178
4.59532119867196E-179
2.67447098055806E-180
1.52123982351498E-181
8.45223825142759E-183
4.58485846479332E-184
2.4266932517843E-185
1.25250942531881E-186
6.30018980690906E-188
3.08637014411801E-189
1.47151308428702E-190
6.82315916299548E-192
3.0745231122028E-193
1.34520075530611E-194
5.71003197383458E-196
2.34927555022351E-197
9.35944088154379E-199
3.60690826060282E-200
1.3430976429064E-201
4.8267137254983E-203
1.67191246248468E-204
5.57440214723629E-206
1.78633859297378E-207
5.49307390733068E-209
1.61807826313606E-210
4.55716926487677E-212
1.22463031242993E-213
3.13288197600111E-215
7.61072518990236E-217
1.75084304014801E-218
3.80247142927498E-220
7.76922710137173E-222
1.4875922127276E-223
2.65736124771079E-225
4.4061305423353E-227
6.7410517828848E-229
9.45009025750187E-231
1.20386841745145E-232
1.37972635493416E-234
1.40502370338583E-236
1.25144734585249E-238
9.55049371216142E-241
6.07141382244566E-243
3.08657453583813E-245
1.1764103087504E-247
2.98802614267244E-250
3.7932867244663E-253


а тут получается такой
Кликните здесь для просмотра всего текста
2.10137e-4933
2.10137e-4933
2.10137e-4933
2.10137e-4933
2.10137e-4933
2.10137e-4933
2.10137e-4933
-0
2.10239e-4933
2.10239e-4933
2.10239e-4933
2.10239e-4933
2.10239e-4933
2.10239e-4933
2.10239e-4933
2.10239e-4933
2.10239e-4933
2.10239e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11265e-4933
2.11265e-4933
2.11265e-4933
2.11265e-4933
2.11265e-4933
2.11265e-4933
2.11265e-4933
2.11265e-4933
2.11265e-4933
2.11265e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.10239e-4933
2.10239e-4933
2.10239e-4933
2.10239e-4933
2.10239e-4933
2.10239e-4933
2.10239e-4933
2.10239e-4933
2.10239e-4933
2.10239e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10342e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10444e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.10547e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.1065e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10752e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10855e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.10957e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.1106e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11163e-4933
2.11265e-4933
2.11265e-4933
2.11265e-4933
2.11265e-4933
2.11265e-4933
2.11265e-4933
2.11265e-4933
2.11265e-4933
2.11265e-4933
2.11265e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11368e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11471e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11573e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11676e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11778e-4933
2.11881e-4933
2.11881e-4933
2.11881e-4933
2.11881e-4933
2.11881e-4933
2.11881e-4933
2.11881e-4933
2.11881e-4933
2.11881e-4933
2.11881e-4933
2.11881e-4933
2.11984e-4933
2.11984e-4933
2.11984e-4933
2.11984e-4933
2.11984e-4933
2.11984e-4933
2.11984e-4933
2.11984e-4933
2.11984e-4933
2.11984e-4933
2.11984e-4933
2.12086e-4933
2.12086e-4933
2.12086e-4933
2.12086e-4933
2.12086e-4933
2.12086e-4933
2.12086e-4933
2.12086e-4933
2.12086e-4933
2.12086e-4933
2.12086e-4933
2.12189e-4933
2.12189e-4933
2.12189e-4933
2.12189e-4933
2.12189e-4933
2.12189e-4933
2.12189e-4933
2.12189e-4933
2.12189e-4933
2.12189e-4933
2.12189e-4933
2.12291e-4933
2.12291e-4933
2.12291e-4933
2.12291e-4933
2.12291e-4933
2.12291e-4933
2.12291e-4933
2.12291e-4933
2.12291e-4933
2.12291e-4933
2.12291e-4933
2.12394e-4933
2.12394e-4933
2.12394e-4933
2.12394e-4933
2.12394e-4933
2.12394e-4933
2.12394e-4933
2.12394e-4933
2.12394e-4933
2.12394e-4933
2.12497e-4933
2.12497e-4933
2.12497e-4933
2.12497e-4933
2.12497e-4933
2.12497e-4933
2.12497e-4933
2.12497e-4933
2.12497e-4933
2.12497e-4933
2.12497e-4933
2.12599e-4933
2.12599e-4933
2.12599e-4933
2.12599e-4933
2.12599e-4933
2.12599e-4933
2.12599e-4933
2.12599e-4933
2.12599e-4933
2.12599e-4933
2.12599e-4933
2.12702e-4933
2.12702e-4933
2.12702e-4933
2.12702e-4933
2.12702e-4933
2.12702e-4933
2.12702e-4933
2.12702e-4933
2.12702e-4933
2.12702e-4933
2.12702e-4933
2.12804e-4933
2.12804e-4933
2.12804e-4933
2.12804e-4933
2.12804e-4933
2.12804e-4933
2.12804e-4933
2.12804e-4933
2.12804e-4933
2.12804e-4933
2.12804e-4933
2.12907e-4933
2.12907e-4933
2.12907e-4933
2.12907e-4933
2.12907e-4933
2.12907e-4933
2.12907e-4933
2.12907e-4933
2.12907e-4933
2.12907e-4933
2.12907e-4933
2.1301e-4933
2.1301e-4933
2.1301e-4933
2.1301e-4933
2.1301e-4933
2.1301e-4933
2.1301e-4933
2.1301e-4933
2.1301e-4933
2.1301e-4933
2.1301e-4933
2.13112e-4933
2.13112e-4933
2.13112e-4933
2.13112e-4933
2.13112e-4933
2.13112e-4933
2.13112e-4933
2.13112e-4933
2.13112e-4933
2.13112e-4933
4.23244e-4933
-0
0


 Комментарий модератора 
Просьба к модераторам в теги кодов текст под спойлером не заключать
Мега Ксю
3 / 3 / 0
Регистрация: 02.03.2013
Сообщений: 56
03.03.2013, 15:13  [ТС]     Переделать из массивов в векторы #10
Уже не знаю что и сделать.. Вот решила на C переписать, вдруг заработает.. Решение компилируется, но вылетает с ошибкой Что за ошибка не знаю, наверное какой нибудь run-time error, раз Windows просто останавливает выполнение с предложением или закрыть программу, или отладить, или найти решение в Интернете.. В чем может быть ошибка?
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
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
 
#define FILE_NAME "out.txt"
 
int main(int argc, char *argv[])
{
  int M, N, i, j;
  double t = 10.0;
  double D = pow(10.0, -17.0) * 7.0;
  double h = pow(10.0, -8.0) * 5.0;
  FILE *outFile;
  if ((outFile = fopen(FILE_NAME, "w")) == NULL)
  {
    printf("Can not open file.\n");
    exit(1);
  }
  else
  {
    printf("Rows, N -> ");
    scanf("%i",N);
    printf("Cols, M -> ");
    scanf("%i",M);
 
    double **a = (double**)malloc(N * sizeof(double));
    for (i = 0; i < N; i++) a[i] = (double*)malloc(M * sizeof(double));
 
    a[0][0] = pow(10, 24);
 
    for (i = 1; i < N; i++) a[i][0] = 0;
    for (i = 0; i < M; i++) a[0][i] = pow(10.0, 24.0);
  
    for (i = 0; i < M - 1; i++)
      for (j = 1; j < N - 1; j++)
        a[j][i+1] = a[j][i] + t*D*((a[j+1][i] - 2*a[j][i] + a[j-1][i])/(h*h));
  
    for (i = 0; i < N; i++)
      fprintf(outFile,"%lf\n",a[i][M]);
 
    for (i = 0; i < N; i++) free(a[i]);
      free(a);
 
    fclose(outFile);
    printf("Done.\n");
  }
  
  system("PAUSE");
  return 0;
}
Winterad
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 14
03.03.2013, 15:22     Переделать из массивов в векторы #11
Пробуйте =) При N 100 и M 100 получается результат похожий на тот, что в первом посте.
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
#include <iostream>
#include <fstream>
 
#define FILE_NAME "out.txt"
 
int main()
{
    int M, N;
    long double t = 10.0;
    long double D = pow(10.0, -17.0) * 7.0;
    long double h = pow(10.0, -8.0) * 5.0;
 
    std::ofstream outFile(FILE_NAME);
 
    std::cout << "Rows, N -> ";
    std::cin >> N;
 
    std::cout << "Cols, M -> ";
    std::cin >> M;
 
    M++;
    N++;
 
    long double **array = new long double *[N];
    for (int i = 0; i < N; i++)
    {
        array[i] = new long double[M];
    }
 
    for (int i = 1; i < N; i++) array[i][0] = 0;
    for (int i = 0; i < M; i++) array[0][i] = pow(10.0, 24.0);
 
    for (int j = 0; j < M - 1; j++)
    {
        for (int i = 1; i < N - 1; i++)
        {
            array[i][j+1] = array[i][j] + t*D*((array[i+1][j] - 2*array[i][j] + array[i-1][j])/(h*h));
        }
    }
 
    outFile.precision(15);
 
    for (int i = 0; i < N; i++)
    {
        outFile << array[i][N-1] << "\n";
    }
 
    for (int i = 0; i < N; i++)
    {       
        delete array[i];
    }
 
    delete[] array;
 
    outFile.close();
 
    return 0;
}
Мега Ксю
3 / 3 / 0
Регистрация: 02.03.2013
Сообщений: 56
03.03.2013, 15:37  [ТС]     Переделать из массивов в векторы #12
Winterad, спасибо вам большое, вроде, каким то чудом, программка работает только я заменила это
C++
1
2
3
4
for (int i = 0; i < N; i++)
    {
        outFile << array[i][N-1] << "\n";
    }
на это
C++
1
2
3
4
for (int i = 0; i < N; i++)
    {
        outFile << array[i][M-1] << "\n";
    }
там по алгоритму так должно быть вроде

Добавлено через 2 минуты
И ещё хотела спросить: допустим, я вывожу число в файл. В Pascal я могу так сделать
Pascal
1
WriteLn(FILE, value:10:15)
и число value запишется в файл с 10 знаками до запятой и 15 после неё. Как тоже самое сделать в C++? точнее с использованием iostream ?
Winterad
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 14
03.03.2013, 15:48     Переделать из массивов в векторы #13
перед:
C++
1
outFile.precision(15);
напишите:
C++
1
outFile.setf(std::ios::fixed);
XRuZzz
Антикодер
657 / 558 / 27
Регистрация: 15.09.2012
Сообщений: 2,509
03.03.2013, 16:15     Переделать из массивов в векторы #14
добавьте заголовок
#include <iomanip>
перед main добавьте
C++
1
using namespace std;
и в нужном месте добавьте
C++
1
outFile << setfill('.')<<setiosflags(ios::fixed|ios::showpoint|ios::right)<<setw(40)<< setprecision(15)<< array[i][M-1] << endl;
просто поиграйтесь с параметрами, чтоб настроить как вам нужно.

Добавлено через 10 минут
скорее всего вам нужно
C++
1
setfill('0')
Добавлено через 3 минуты

Не по теме:


это же jepsen у вас на аватарке?

Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
03.03.2013, 20:56     Переделать из массивов в векторы #15
Цитата Сообщение от Мега Ксю Посмотреть сообщение
ага.. порой жалею, что до 4 курса доучилась..
друг - товарищ - сестра по несчастью))) сам на этой фигне учусь, гляну код тока завтра))
Мега Ксю
3 / 3 / 0
Регистрация: 02.03.2013
Сообщений: 56
04.03.2013, 13:13  [ТС]     Переделать из массивов в векторы #16
Спасибо всем за помощь Думаю с первой лабораторной будет покончено Но останутся ещё три, так что я ещё вас замучаю своими глупыми вопросами
XRuZzz и Winterad отдельное спасибо за помощь

Цитата Сообщение от XRuZzz Посмотреть сообщение
это же jepsen у вас на аватарке?
да, она самая

Не по теме:

Если честно, не думала, что тут такие отзывчивые люди Побольше бы таких людей бы... и мир добрее стал бы Потоков счастья вам, котятки

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2013, 17:02     Переделать из массивов в векторы
Еще ссылки по теме:
векторы C++
C++ Векторы
C++ Векторы
C++ Векторы
C++ Векторы

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

Или воспользуйтесь поиском по форуму:
XRuZzz
04.03.2013, 17:02     Переделать из массивов в векторы
  #17

Не по теме:

обращайтесь, вам приятно помогать

Yandex
Объявления
04.03.2013, 17:02     Переделать из массивов в векторы
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru