0 / 0 / 0
Регистрация: 10.11.2017
Сообщений: 5
1

Перевести программу из Turbo Pascal в С (Си)

26.05.2018, 14:53. Показов 1131. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста перевести данную программу из турбо в Си:

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
34
35
36
37
38
39
40
41
program err;
uses crt;
type
MyArray=array[-1..10,-1..10] of integer;
 
procedure Horse(var b:MyArray; xx,yy,kk:integer);
begin
   b[xx,yy]:=kk;
   if b[xx+2,yy+1]=-1 then Horse(b,xx+2,yy+1,kk+1);
   if b[xx+1,yy+2]=-1 then Horse(b,xx+1,yy+2,kk+1);
   if b[xx-2,yy-1]=-1 then Horse(b,xx-2,yy-1,kk+1);
   if b[xx-1,yy-2]=-1 then Horse(b,xx-1,yy-2,kk+1);
   if b[xx+2,yy-1]=-1 then Horse(b,xx+2,yy-1,kk+1);
   if b[xx+1,yy-2]=-1 then Horse(b,xx+1,yy-2,kk+1);
   if b[xx-2,yy+1]=-1 then Horse(b,xx-2,yy+1,kk+1);
   if b[xx-1,yy+2]=-1 then Horse(b,xx-1,yy+2,kk+1);
end;
 
var i,j,k,x1,y1:integer;
a:MyArray;
begin
   clrscr;
   write('Введите координату первого положения коня: ');
   readln(x1,y1);
 
   for i:=1 to 8 do
      for j:=1 to 8 do
         a[i,j]:=-1;
 
   k:=1;
   Horse(a,x1,y1,k);
   writeln('Получившееся матрица = ');
   
   for i:=1 to 8 do begin
      for j:=1 to 8 do
         write(a[i,j]:3);
         writeln;
   end;
 
   readln;
   end.
Добавлено через 5 минут
У меня получилось вот так, но программа не работает как надо:

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
#include <stdio.h>
#include <locale.h>
#define N 12
int Horse(int b[N][N],int xx,int yy,int kk)
{
   b[xx][yy]=kk;
   if(b[xx+2][yy+1]==-1) return(xx+2,yy+1,kk+1);
   if(b[xx+1][yy+2]==-1) return(xx+1,yy+2,kk+1);
   if(b[xx-2][yy-1]==-1) return(xx-2,yy-1,kk+1);
   if(b[xx-1][yy-2]==-1) return(xx-1,yy-2,kk+1);
   if(b[xx+2][yy-1]==-1) return(xx+2,yy-1,kk+1);
   if(b[xx+1][yy-2]==-1) return(xx+1,yy-2,kk+1);
   if(b[xx-2][yy+1]==-1) return(xx-2,yy+1,kk+1);
   if(b[xx-1][yy+2]==-1) return(xx-1,yy+2,kk+1);
}
 
int main (void)
{
   setlocale(LC_ALL,"ru");
   int i,j,x1,y1,k,MyArray[N][N];
   printf("Введите начальную координату положения коня(x y): ");
   scanf("%d %d",&x1,&y1);
   x1+=1;
   y1+=1;
   for (i=2; i<=10; i++) 
   {
      for (j=2;j<=10;j++)
         MyArray[i][j]=-1;
   }  
   k=1;
   printf("Полученный массив = \n");
   for (i=2; i<=10; i++) 
   {
      for (int j=2; j<10; j++) printf("%d ", Horse(MyArray,x1,y1,k)); 
      printf("\n");
   }
   return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2018, 14:53
Ответы с готовыми решениями:

Нужно перевести программу с Turbo Pascal в Pascal ABC.NET
Вот есть программный код , но он для турбо паскаля, помогите перевести его в АБС.NET Program...

Нужно Перевести программу с Turbo pascal на C++
Помогите пожалуйста! Нужно Перевести программу с Turbo pascal на C++ вот этот код: uses crt;...

Перевести программу с Turbo Pascal на Delphi
Нужно прервести программу с паскаля на делфи вот код : Если можно то дайте совет как все эти...

Перевести программу на Basic в Turbo Pascal
С книжки дьяконова Есть код на Basic нужно перевсти его в турбо паскаль, очень нужна помощь, или...

4
526 / 344 / 194
Регистрация: 30.04.2017
Сообщений: 658
26.05.2018, 16:06 2
Лучший ответ Сообщение было отмечено valtes как решение

Решение

Не пробегает по всему полю...
Кликните здесь для просмотра всего текста
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 <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <string.h>
 
#define N 12
int Horse(int b[N][N],int xx,int yy,int kk)
{
    b[xx][yy]=kk;
    if(b[xx+2][yy+1]==-1) return Horse(b,xx+2,yy+1,kk+1);
    if(b[xx+1][yy+2]==-1) return Horse(b,xx+1,yy+2,kk+1);
    if(b[xx-2][yy-1]==-1) return Horse(b,xx-2,yy-1,kk+1);
    if(b[xx-1][yy-2]==-1) return Horse(b,xx-1,yy-2,kk+1);
    if(b[xx+2][yy-1]==-1) return Horse(b,xx+2,yy-1,kk+1);
    if(b[xx+1][yy-2]==-1) return Horse(b,xx+1,yy-2,kk+1);
    if(b[xx-2][yy+1]==-1) return Horse(b,xx-2,yy+1,kk+1);
    if(b[xx-1][yy+2]==-1) return Horse(b,xx-1,yy+2,kk+1);
}
 
int main (void)
{
    //setlocale(LC_ALL,"ru");
    system("chcp 1251");
    int i,j,x1,y1,k;
    int MyArray[N][N];
 
    memset(MyArray,0,sizeof(int)*N*N);
 
    printf("Введите начальную координату положения коня(x y): ");
    scanf("%d %d",&x1,&y1);
    x1+=1;
    y1+=1;
 
    for (i=2; i<10; i++)
        for (j=2;j<10;j++)
            MyArray[i][j]=-1;
 
    k=1;
    Horse(MyArray,x1,y1,k);
    printf("Полученный массив = \n");
    for (i=0; i<12; i++)
    {
        for (int j=0; j<12; j++)
            printf("%2d ", MyArray[i][j]);
        printf("\n");
    }
    return 0;
}
0
0 / 0 / 0
Регистрация: 10.11.2017
Сообщений: 5
26.05.2018, 16:11  [ТС] 3
Это я знаю. Говорю же, что программа не так работает.
0
526 / 344 / 194
Регистрация: 30.04.2017
Сообщений: 658
26.05.2018, 16:25 4
Цитата Сообщение от valtes Посмотреть сообщение
перевести данную программу из турбо в Си
переведено
Цитата Сообщение от valtes Посмотреть сообщение
программа не так работает
Логичный вопрос - а работает ли правильно изначально написанная программа на паскале?
1
0 / 0 / 0
Регистрация: 10.11.2017
Сообщений: 5
26.05.2018, 17:08  [ТС] 5
Конечно работает

Добавлено через 5 минут
Спасибо большое!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2018, 17:08
Помогаю со студенческими работами здесь

Как программу на Turbo Pascal перевести на C++?Выручите)
const N=3; var X,Y:array of real;Z:array of real;max,min:real;m,p,i,j,k:integer; Begin for i:=1...

Нужно перевести данную программу из Turbo Pascal в Delphi
Program Statist2 Uses Crt,Graph; Const k=10; Var i,j,n,m1,k1,k2,k3,l,r,v,j1,j2, ...

Нужно перевести код из Turbo Pascal в Pascal ABC.NET
Доброго времени суток. На форуме находил похожие темы, но к сожалению так и не смог разобраться....

Нужно перевести код с Pascal ABC на Turbo Pascal - рисование работающей мельницы
Вот код, он должен рисовать работающею мельницу. uses graphABC,crt; type point=record ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru