Перевод кода с Pascal на Си - C (СИ)
Формулировка задачи:
Здравствуйте! Помогите пожалуйста эту часть программы перевести в Си...
Листинг программы
- c:=x[1];
- d:=x[n];
- If (c<0)
- Then
- k:=1
- Else
- k:=0;
- For i:= 2 to n do
- Begin
- If (x[i]<0)
- Then
- Begin
- c:=x[i];
- c1:=i;
- k:=k+1;
- End;
- If (k=2) then break;
- end;
- If (d>0)
- Then
- m:=1
- Else
- m:=0;
- For i:= n-1 downto 1 do
- Begin
- If (x[i]>0)
- Then
- Begin
- d1:=i;
- d:=x[i];
- m:=m+1;
- End;
- If (m=2) then break;
- End;
- x[c1]:=d;
- x[d1]:=c;
- If (k=2) and (m=2)
- Then
- Begin
- Writeln (' Target data:'); {Выходные данные}
- Writeln ('second_otr=', c, ' n_second_otr=', c1);
- Writeln ('predp_pol=', d, ' n_predp_pol=', d1);
- Writeln;
- For i:= 1 to n do
- Write(x[i]:5);
- End
- Else
- Writeln('In a vector there are no negative or positive numbers’); {В векторе отсутствуют отрицательные или положительные числа}
- Readln;
- End.
если нужно то вот вся программа...
Листинг программы
- Program Variant_8;
- Uses crt;
- Const n=10;
- Var i,k,d,m,d1,c,c1,x_min,x_max:integer;
- x: Array [1..10] of integer;
- Begin
- Randomize;
- Writeln (' Set a range of random numbers’); {Задайте диапазон случайных чисел}
- Write ('x_min=');
- Readln (x_min);
- Write ('x_max=');
- Readln (x_max);
- For i:= 1 to n do
- x[i]:=Random(x_max-x_min + 1) + x_min;
- Writeln;
- Writeln('Initial vector’); {Исходный вектор}
- For i:= 1 to n do
- Write (x[i]:5);
- Writeln;
- Writeln;
- c:=x[1];
- d:=x[n];
- If (c<0)
- Then
- k:=1
- Else
- k:=0;
- For i:= 2 to n do
- Begin
- If (x[i]<0)
- Then
- Begin
- c:=x[i];
- c1:=i;
- k:=k+1;
- End;
- If (k=2) then break;
- end;
- If (d>0)
- Then
- m:=1
- Else
- m:=0;
- For i:= n-1 downto 1 do
- Begin
- If (x[i]>0)
- Then
- Begin
- d1:=i;
- d:=x[i];
- m:=m+1;
- End;
- If (m=2) then break;
- End;
- x[c1]:=d;
- x[d1]:=c;
- If (k=2) and (m=2)
- Then
- Begin
- Writeln (' Target data:'); {Выходные данные}
- Writeln ('second_otr=', c, ' n_second_otr=', c1);
- Writeln ('predp_pol=', d, ' n_predp_pol=', d1);
- Writeln;
- For i:= 1 to n do
- Write(x[i]:5);
- End
- Else
- Writeln('In a vector there are no negative or positive numbers’); {В векторе отсутствуют отрицательные или положительные числа}
- Readln;
- End.
как этот момент написать в си?
Листинг программы
- For i:= n-1 downto 1 do
и этот
Листинг программы
- If (m=2) then break
Решение задачи: «Перевод кода с Pascal на Си»
textual
Листинг программы
- #include <stdio.h>
- #include <conio.h>
- #include <math.h>
- #include <time.h>
- #define n 5
- int main()
- {
- int i, j, d, c, c1, c2, d1, d2,m, x_min, x_max;
- time_t t;
- srand((unsigned) time(&t));
- printf("\nlaboratornaya rabota В№6_1");
- printf("\nvariant В№8");
- printf("\nIS-12-2");
- printf("\nHamchuk Evgeniy\n");
- printf("\nenter the lower limit of the range:");
- scanf("%d", &x_min);
- printf("\nenter the upper limit:");
- scanf("%d", &x_max);
- int x[n][n];
- printf("\ninitial massiv:\n");
- m = x_max-x_min + 1;
- for (i=0; i<n; i++)
- {
- for (j=0; j<n; j++)
- {
- x[i][j]=rand()% m + x_min;
- printf(" %5d", x[i][j]);
- }
- printf("\n");
- }
- //for (i=0; i<n; i++)
- //{
- // for (j=0; j<n; j++)
- // {
- // printf(" %5d", x[i][j]);
- // }
- // }
- c=x[0][1];
- for (i=0; i<n; i++)
- {
- for (j=i+1; j<n; j++)
- {
- if (x[i][j]>c)
- {
- c=x[i][j];
- c1=i;
- c2=j;
- }
- }
- }
- d=x[1][0];
- for (i=1; i<n; i++)
- {
- for (j=0; j<i; j++)
- {
- if (x[i][j]<d)
- {
- d=x[i][j];
- d1=i;
- d2=j;
- }
- }
- }
- x[d1][d2]=c;
- x[c1][c2]=d;
- printf("\nmax_ch=%d\ni_max=%d\nj_max=%d",c,c1+1,c2+1);
- printf("\nmin_ch=%d\ni_max=%d\nj_max=%d",d,d1+1,d2+1);
- printf("\ninitial file:\n");
- for (i=0; i<n; i++)
- {
- for (j=0; j<n; j++)
- printf("%5d", x[i][j]);
- printf("\n");
- }
- printf("\n");
- return 0;
- }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы:
, , , . - Определяются константы: n=5;
- Инициализируются переменные: i, j, d, c, c1, c2, d1, d2, m, x_min, x_max;
- Вызывается функция srand(), которая инициализирует генератор случайных чисел текущим временем;
- Выводится название программы и версия;
- Пользователю предлагается ввести нижнюю границу диапазона;
- Пользователю предлагается ввести верхнюю границу диапазона;
- Инициализируется двумерный массив x[n][n];
- Выводится начальное значение массива x;
- Находится максимальное значение в массиве x и его координаты (i,j);
- Находится минимальное значение в массиве x и его координаты (i,j);
- Значение из позиции (d1,d2) в массиве x заменяется на максимальное значение, а значение из позиции (c1,c2) заменяется на минимальное значение;
- Выводится максимальное значение в позиции (c1,c2), а также индексы этой позиции;
- Выводится минимальное значение в позиции (d1,d2), а также индексы этой позиции;
- Выводится исходное значение массива x;
- Программа завершается, возвращая 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д