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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Динамическая память - не могу разобраться! http://www.cyberforum.ru/cpp-beginners/thread799014.html
Пишу библиотеку для односвязного списка. Решил реализовать operator+ , который возвращает list как обьединение двух других. Все работает, но есть большой вопрос : Я выделил динамически память здесь : list *l = new list; вопрос мой в том, удалиться ли лист l каким-то образом из памяти, или будет засорять дин. память? list operator+ (list& x) { node *px = x.head; list *l = new list;...
C++ enum и class как составляющие другого class Как организовать ввод enuma с клавиатуры (51-я строка)? Как прикрепить класс date к employee в private? :wall: #include <iostream> using namespace std; //////////////////////////////////////////////////////////////////////////////// /*class date { private: int day, mons, year; public: http://www.cyberforum.ru/cpp-beginners/thread799009.html
Преобразование типов: строки в double C++
//Дана строка, состоящая из букв, цифр, запятых, точек, знаков ”+” и ”-”. //Вывести подстроку, которая соответствует записи вещественного числа с плавающей точкой. #include "stdafx.h" #include <iostream> #include <string> #include <conio.h> #include <stdlib.h> using namespace std;
чтение C++
почему выкидывает cout<<"Starting read date\n\n"; file=fopen("date.txt", "r"); for(int i=0;i<num;i++) { fread(&el,sizeof(int),1,file); mas=el; } fclose(file);
C++ Файловый ввод и вывод на С++ http://www.cyberforum.ru/cpp-beginners/thread798963.html
Написать программу, создающую файл 1.txt и записывающую в него информацию, вводимую с клавиатуры пользователем. Затем проверить какие символы стоят на каждой 10-ой позиции (1, 10, 20, 30 и т.д.)
C++ Плагин для форматирования кода в VS2012 Здравствуйте! На днях столкнулся с первым опытом командной разработки приложения. Работает нас три человека, но есть одна проблема - каждый привык форматировать код по разному. Из-за этого читабельность кода будет резко падать, так как в каждом классе все будет по разному, не будет общего стиля. Так вот вопрос - существуют ли для Visual Studio 2012 вменяемые плагины для форматирования кода?... подробнее

Показать сообщение отдельно
Мега Ксю
 Аватар для Мега Ксю
3 / 3 / 0
Регистрация: 02.03.2013
Сообщений: 56
03.03.2013, 00:01     Переделать из массивов в векторы
Всем привет Очень нужна ваша помощь..

Есть программка на Паскале (проверяла на 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. Конечно, я понимаю, что я прошу Вас тратить свое время на меня, но я пишу на форуме от безысходности.. просто затратив кучу времени на перевод программы на язык С++, я толком ничего и не достигла.. Такими темпами я не скоро правильно переведу программку..
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru