Изменение кода с С++ на Visual Basic - VB

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. #include "stdafx.h"
  2. #include <iostream.h>
  3. #include <fstream>
  4. #include <math.h>
  5. using namespace std;
  6. int main()
  7. {
  8. int n, i, j, k;
  9. int max;
  10. ifstream fin("in.txt");
  11. ofstream fout;
  12. fout.open("out.txt");
  13. fin>>n;
  14. double **matrix = new double*[n];
  15. double *x=new double[n];
  16. for(i=0; i<n; i++)
  17. {
  18. matrix[i] = new double[n+1];
  19. }
  20. double *r;
  21. for(i=0; i<n; i++){
  22. for(j=0; j<=n; j++){
  23. fin>>matrix[i][j];
  24. }
  25. }
  26. for(i=0; i<n; i++)
  27. {
  28. //Початок
  29. max=i;
  30. for(j=i+1;j<n;j++)
  31. {
  32. if(fabs(matrix[j][i])>fabs(matrix[max][i]))
  33. {
  34. max=j;
  35. }
  36. }
  37. if(max!=i)
  38. {
  39. r=matrix[i];
  40. matrix[i]=matrix[max];
  41. matrix[max]=r;
  42. }
  43. if(matrix[i][i]==0)
  44. {
  45. cout<<"Sustema nevuznachena!!!"<<endl<<endl;
  46. break;
  47. }
  48. //Кiнець
  49. for(j=n;j>=i;j--)
  50. {
  51. matrix[i][j]/=matrix[i][i];
  52. }
  53. for(j=i+1; j<n; j++)
  54. {
  55. for(k=n; k>=i; k--)
  56. {
  57. matrix[j][k]-=matrix[j][i]*matrix[i][k];
  58. }
  59. }
  60. }
  61. /*Вывод треугольной матрицы
  62. for(i=0;i<n;i++){
  63. for(j=0;j<=n;j++){
  64. fout<<matrix[i][j]<<" ";
  65. }
  66. fout<<endl;
  67. }
  68. fout<<endl; */
  69. for(i=n-1;i>=0;i--)
  70. {
  71. x[i]=matrix[i][n];
  72. for(j=n-1;j>i;j--)
  73. {
  74. x[i]-=x[j]*matrix[i][j];
  75. }
  76. }
  77. for(i=0;i<n;i++)
  78. {
  79. fout<<"x"<<i+1<<"="<<x[i]<<endl;
  80. }
  81. for(i=0;i<n;i++){
  82. delete matrix[i];
  83. cout<<"x"<<i+1<<"="<<x[i]<<endl;
  84. }
  85. delete matrix;
  86. system("PAUSE");
  87. return 0;
  88. }
Кто шарит в этом могут перевести в Visual Basic 6????

Решение задачи: «Изменение кода с С++ на Visual Basic»

textual
Листинг программы
  1. Option Explicit
  2. Option Base 0
  3.  
  4. Function main() As Long
  5. Dim n As Long
  6. Dim i As Long
  7. Dim j As Long
  8. Dim k As Long
  9. Dim max As Long
  10.  
  11. Open "in.txt" For Input As #1
  12. Open "out.txt" For Output As #2
  13. Input #1, n
  14.  
  15. Dim matrix() As Double
  16. ReDim matrix(n - 1, n - 1)
  17. Dim x() As Double
  18. ReDim x(n - 1)
  19.  
  20. Dim r As Double
  21.  
  22. For i = 0 To n - 1
  23.     For j = 0 To n - 1
  24.         Input #1, matrix(i, j)
  25.     Next
  26. Next
  27.  
  28. For i = 0 To n - 1
  29. 'Початок
  30.    max = i
  31.     For j = i + 1 To n - 1
  32.         If Abs(matrix(j, i)) > Abs(matrix(max, i)) Then max = j
  33.     Next
  34.     If max <> i Then
  35.        r = matrix(i)
  36.        matrix(i) = matrix(max)
  37.        matrix(max) = r
  38.     End If
  39.  
  40.     If matrix(i, i) = 0 Then
  41.        Write #2, "Sustema nevuznachena!!!"
  42.        Close #1
  43.        Close #2
  44.        Exit Function
  45.     End If
  46.  
  47.     'Кiнець
  48.    For j = n To i Step -1
  49.         matrix(i, j) = matrix(i, j) / matrix(i, i)
  50.     Next
  51.  
  52.     For j = i + 1 To n - 1
  53.         For k = n To i Step -1
  54.             matrix(j, k) = matrix(j, k) - matrix(j, i) * matrix(i, k)
  55.         Next
  56.     Next
  57. Next
  58.  
  59. '*Вывод треугольной матрицы
  60. 'For i = 0 To n - 1
  61. '    For j = 0 To n - 1
  62. '         Write #2, matrix(i, j)
  63. '    Next
  64. '     Write #2, vbLf
  65. 'Next
  66. 'Write #2, vbLf
  67.  
  68. For i = n - 1 To 0 Step -1
  69.     x(i) = matrix(i, n)
  70.     For j = n - 1 To i + 1 Step -1
  71.         x(i) = x(i) - x(j) * matrix(i, j)
  72.     Next
  73. Next
  74.  
  75. For i = 0 To n - 1
  76.     Write #2, "x" & CStr(i + 1) & "="; CStr(x(i)) & vbLf
  77. Next
  78.  
  79. Close #1
  80. Close #2
  81. main = 0
  82. End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут