Перевод кода с Pascal на Си - C (СИ)

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

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

Здравствуйте! Помогите пожалуйста эту часть программы перевести в Си...
Листинг программы
  1. c:=x[1];
  2. d:=x[n];
  3. If (c<0)
  4. Then
  5. k:=1
  6. Else
  7. k:=0;
  8. For i:= 2 to n do
  9. Begin
  10. If (x[i]<0)
  11. Then
  12. Begin
  13. c:=x[i];
  14. c1:=i;
  15. k:=k+1;
  16. End;
  17. If (k=2) then break;
  18. end;
  19. If (d>0)
  20. Then
  21. m:=1
  22. Else
  23. m:=0;
  24. For i:= n-1 downto 1 do
  25. Begin
  26. If (x[i]>0)
  27. Then
  28. Begin
  29. d1:=i;
  30. d:=x[i];
  31. m:=m+1;
  32. End;
  33. If (m=2) then break;
  34. End;
  35. x[c1]:=d;
  36. x[d1]:=c;
  37. If (k=2) and (m=2)
  38. Then
  39. Begin
  40. Writeln (' Target data:'); {Выходные данные}
  41. Writeln ('second_otr=', c, ' n_second_otr=', c1);
  42. Writeln ('predp_pol=', d, ' n_predp_pol=', d1);
  43. Writeln;
  44. For i:= 1 to n do
  45. Write(x[i]:5);
  46. End
  47. Else
  48. Writeln('In a vector there are no negative or positive numbers’); {В векторе отсутствуют отрицательные или положительные числа}
  49. Readln;
  50. End.
если нужно то вот вся программа...
Листинг программы
  1. Program Variant_8;
  2. Uses crt;
  3. Const n=10;
  4. Var i,k,d,m,d1,c,c1,x_min,x_max:integer;
  5. x: Array [1..10] of integer;
  6. Begin
  7. Randomize;
  8. Writeln (' Set a range of random numbers’); {Задайте диапазон случайных чисел}
  9. Write ('x_min=');
  10. Readln (x_min);
  11. Write ('x_max=');
  12. Readln (x_max);
  13. For i:= 1 to n do
  14. x[i]:=Random(x_max-x_min + 1) + x_min;
  15. Writeln;
  16. Writeln('Initial vector’); {Исходный вектор}
  17. For i:= 1 to n do
  18. Write (x[i]:5);
  19. Writeln;
  20. Writeln;
  21. c:=x[1];
  22. d:=x[n];
  23. If (c<0)
  24. Then
  25. k:=1
  26. Else
  27. k:=0;
  28. For i:= 2 to n do
  29. Begin
  30. If (x[i]<0)
  31. Then
  32. Begin
  33. c:=x[i];
  34. c1:=i;
  35. k:=k+1;
  36. End;
  37. If (k=2) then break;
  38. end;
  39. If (d>0)
  40. Then
  41. m:=1
  42. Else
  43. m:=0;
  44. For i:= n-1 downto 1 do
  45. Begin
  46. If (x[i]>0)
  47. Then
  48. Begin
  49. d1:=i;
  50. d:=x[i];
  51. m:=m+1;
  52. End;
  53. If (m=2) then break;
  54. End;
  55. x[c1]:=d;
  56. x[d1]:=c;
  57. If (k=2) and (m=2)
  58. Then
  59. Begin
  60. Writeln (' Target data:'); {Выходные данные}
  61. Writeln ('second_otr=', c, ' n_second_otr=', c1);
  62. Writeln ('predp_pol=', d, ' n_predp_pol=', d1);
  63. Writeln;
  64. For i:= 1 to n do
  65. Write(x[i]:5);
  66. End
  67. Else
  68. Writeln('In a vector there are no negative or positive numbers’); {В векторе отсутствуют отрицательные или положительные числа}
  69. Readln;
  70. End.
как этот момент написать в си?
Листинг программы
  1. For i:= n-1 downto 1 do
и этот
Листинг программы
  1. If (m=2) then break

Решение задачи: «Перевод кода с Pascal на Си»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <math.h>
  4. #include <time.h>
  5. #define n 5
  6.  
  7. int main()
  8. {
  9.   int i, j, d, c, c1, c2, d1, d2,m, x_min, x_max;
  10.   time_t t;
  11.  
  12.     srand((unsigned) time(&t));
  13.     printf("\nlaboratornaya rabota В№6_1");
  14.     printf("\nvariant В№8");
  15.     printf("\nIS-12-2");
  16.     printf("\nHamchuk Evgeniy\n");
  17.     printf("\nenter the lower limit of the range:");
  18.     scanf("%d", &x_min);
  19.     printf("\nenter the upper limit:");
  20.     scanf("%d", &x_max);
  21.  
  22.  
  23.     int x[n][n];
  24.  
  25.     printf("\ninitial massiv:\n");
  26.  
  27.     m = x_max-x_min + 1;
  28.     for (i=0; i<n; i++)
  29.     {
  30.     for (j=0; j<n; j++)
  31.         {
  32.             x[i][j]=rand()% m + x_min;
  33.             printf(" %5d", x[i][j]);
  34.         }
  35.          printf("\n");
  36.     }
  37.     //for (i=0; i<n; i++)
  38.     //{
  39.     //    for (j=0; j<n; j++)
  40.     //    {
  41.     //        printf(" %5d", x[i][j]);
  42.     //    }
  43.    // }
  44.     c=x[0][1];
  45.       for (i=0; i<n; i++)
  46.     {
  47.        for (j=i+1; j<n; j++)
  48.        {
  49.            if (x[i][j]>c)
  50.            {
  51.                c=x[i][j];
  52.                c1=i;
  53.                c2=j;
  54.            }
  55.        }
  56.     }
  57.     d=x[1][0];
  58.     for (i=1; i<n; i++)
  59.     {
  60.         for (j=0; j<i; j++)
  61.         {
  62.             if (x[i][j]<d)
  63.             {
  64.                 d=x[i][j];
  65.                 d1=i;
  66.                 d2=j;
  67.             }
  68.         }
  69.     }
  70.     x[d1][d2]=c;
  71.     x[c1][c2]=d;
  72.     printf("\nmax_ch=%d\ni_max=%d\nj_max=%d",c,c1+1,c2+1);
  73.     printf("\nmin_ch=%d\ni_max=%d\nj_max=%d",d,d1+1,d2+1);
  74.     printf("\ninitial file:\n");
  75.     for (i=0; i<n; i++)
  76.     {
  77.  
  78.         for (j=0; j<n; j++)
  79.             printf("%5d", x[i][j]);
  80.        printf("\n");
  81.  
  82.     }
  83.  
  84.     printf("\n");
  85.  
  86.     return 0;
  87.  
  88. }

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы: , , , .
  2. Определяются константы: n=5;
  3. Инициализируются переменные: i, j, d, c, c1, c2, d1, d2, m, x_min, x_max;
  4. Вызывается функция srand(), которая инициализирует генератор случайных чисел текущим временем;
  5. Выводится название программы и версия;
  6. Пользователю предлагается ввести нижнюю границу диапазона;
  7. Пользователю предлагается ввести верхнюю границу диапазона;
  8. Инициализируется двумерный массив x[n][n];
  9. Выводится начальное значение массива x;
  10. Находится максимальное значение в массиве x и его координаты (i,j);
  11. Находится минимальное значение в массиве x и его координаты (i,j);
  12. Значение из позиции (d1,d2) в массиве x заменяется на максимальное значение, а значение из позиции (c1,c2) заменяется на минимальное значение;
  13. Выводится максимальное значение в позиции (c1,c2), а также индексы этой позиции;
  14. Выводится минимальное значение в позиции (d1,d2), а также индексы этой позиции;
  15. Выводится исходное значение массива x;
  16. Программа завершается, возвращая 0.

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


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

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

14   голосов , оценка 4 из 5

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

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

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