Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/125: Рейтинг темы: голосов - 125, средняя оценка - 4.70
 Аватар для warobushek
2 / 2 / 1
Регистрация: 08.03.2008
Сообщений: 82
1

Конвертация программ с Си на Паскаль

13.04.2008, 11:45. Показов 23060. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я написал прогу на языке Си. Мне нужна прога делающая то же самое только на Паскале. Есть какая-нибудь утилитка для преобразования кода Си в Паскаль??
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.04.2008, 11:45
Ответы с готовыми решениями:

Конвертация с паскаль на с++
Помогите пожалуйста с конвертацией данной строки (с паскаля на С++) if not...

Конвертация кода С++ в паскаль
Здравствуйте, нужно переконвертировать код с++ в паскаль. Спасибо за помощь #include <iostream>...

Конвертация кода программы с C++ на Паскаль
осуществить конвертацию текста программы с одного языка программирования в другой с++ на pascal

Несколько программ на Паскаль
Желательно конечно на python, но можно и pascal 1)Заполнить массив случайными цифрами и...

10
Администратор
 Аватар для mik-a-el
86903 / 52599 / 246
Регистрация: 10.04.2006
Сообщений: 13,532
13.04.2008, 12:45 2
Цитата Сообщение от warobushek
Есть какая-нибудь утилитка для преобразования кода Си в Паскаль??
Мозг.
0
3 / 3 / 3
Регистрация: 08.04.2008
Сообщений: 71
13.04.2008, 14:23 3
Цитата Сообщение от mik-a-el Посмотреть сообщение
Мозг.
ыгыггыгы.... лучшего ответа просто не может быть )
Цитата Сообщение от warobushek Посмотреть сообщение
Я написал прогу на языке Си. Мне нужна прога делающая то же самое только на Паскале. Есть какая-нибудь утилитка для преобразования кода Си в Паскаль??
а прога большая? может тута на форуме кто-нить воспользуется своей утилитой "мозг" если у вашей утилиты триал срок истек... а есче мона погуглить, но для этого надо будет качать крак для своего мозга...
0
 Аватар для Vanstorm
2773 / 341 / 22
Регистрация: 15.01.2008
Сообщений: 2,614
13.04.2008, 14:35 4
хм. Действительно Мозг...Воспользуйтесь вот этой таблицей http://mostinfo.net/article/8/18.htm

хм.
может се подойдёт
http://www.kursovik.com/programming/140137.html
0
 Аватар для warobushek
2 / 2 / 1
Регистрация: 08.03.2008
Сообщений: 82
13.04.2008, 19:31  [ТС] 5
Цитата Сообщение от Vanstorm Посмотреть сообщение
хм. Действительно Мозг...Воспользуйтесь вот этой таблицей http://mostinfo.net/article/8/18.htm

хм.
может се подойдёт
http://www.kursovik.com/programming/140137.html
спасибо, но , к сожалению мне это не помогло, т.к. вся загвоздка в динамических массивах.
Как их сформировать в Паскале, как их передавать функциям и процедурам, как потом освобождать память из под них.

Дайте, пожалуйста пример небольшой программки именно с динамическими массивами: пусть юзер будет вводить число элементов массива, потом вводит эти элементы(или рандом), пусть будет функция или процедура работающая с этим динамическим массивом (пусть выводит их).

Вот это бы мне действительно помогло.
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
13.04.2008, 20:43 6
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
program dyn_array;
type TIntegers = array of Integer;
var arr:TIntegers;
    n,L:Integer;
 
procedure PrintArray(var values:TIntegers);
var i:Integer;
begin
    writeln('Print Array');
    for i:=0 to High(values) do begin
        if i=0 then write(values[i])
        else write(', ',values[i]);
    end;
    writeln;
end;
 
begin
    repeat
        write('Input array length (up to 100): ');
        readln(L);
    until (L>0)and(L<=100);
    SetLength(arr,L);
    for n:=0 to L-1 do begin
        arr[n]:=Random(101)-50;
    end;
    PrintArray(arr);
    SetLength(arr,0);
end.
0
 Аватар для warobushek
2 / 2 / 1
Регистрация: 08.03.2008
Сообщений: 82
14.04.2008, 05:01  [ТС] 7
1. Мне нужно, чтобы в Turbo Pascal 7.0 работало
2. что за процедура setlength? То, что она устанавливает длину массива, это я понял, но ее даже в хелпе Turbo Pascal 7.0 нет.
3.Выдается "Error 92 '[' or '(' expected" на строке программы "type TIntegers = array of Integer;" что это означает?
4.Может можно это же самое сделать в Turbo Pascal через GETMEM и FREEMEM ??
0
2836 / 1645 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
14.04.2008, 19:32 8
Динамические массивы - только в Delphi. И код этот для Delphi. В Pascal'е можно сделать либо обычные массивы, либо выделение памяти с помощью GetMem для массива, либо вместо массивов - связанные списки.
0
 Аватар для warobushek
2 / 2 / 1
Регистрация: 08.03.2008
Сообщений: 82
14.04.2008, 20:06  [ТС] 9
А как мне обойти эту проблему в Турбо Паскаль 7.0? Мне например нужно переделать следующую прогу Си в Турбо Паскаль:
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
#include <stdio.h>
#include <conio.h>
void outmas(char *masch, int sz)
{
      for(int i=0;i<sz;i++)
          printf("%d\t",masch[i]);
}//outmas
 
void main(void)
{
      clrscr();
      char *masch;
      int sz;
      printf("Введите размер массива ");
      scanf("%d",&sz);
      /*выделим память*/
      masch=(char *)malloc(sz*sizeof(char));
      
      if(masch==NULL)
      {
           perror("masch"); exit(1);
      }
 
      for(int i=0;i<sz;i++)
            masch[i]=i;
 
      outmas(masch);
      
      free(masch);//освобождаем память
}//main
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
14.04.2008, 20:26 10
Правда, че-то разогнался. Извиняюсь за ересь.
0
 Аватар для warobushek
2 / 2 / 1
Регистрация: 08.03.2008
Сообщений: 82
15.04.2008, 08:03  [ТС] 11
Нашел как эмулировать динамические массивы в Турбо Паскаль 7.0,
написал процедуру вывода динамического массива outmas.
Теперь передо мной встал вопрос: можно ли через эту процедуру как-нибудь выводить содержимое обычных массивов? Если можно, то покажите как, пожалуйста.
Если нельзя, то как создать такую же процедуру для обычного массива.

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
uses crt;
type
   {- Массивы и указатели на них -}
      tIntArr0 = array [0..$FFF0 div SizeOf(integer)-1] of integer;
      tIntArr1 = array [1..$FFF0 div SizeOf(integer)] of integer;
      tPtrIntArr0 = ^tIntArr0;
      tPtrIntArr1 = ^tIntArr1;
 
{процедура вывода массива без ведущих нулей}
procedure outmas(ptr: tPtrIntArr0; size: integer);
var
   i: integer;
   flag: byte;
begin
   flag:=0;{признак того, что встречен не ноль}
   for i:=1 to size do
                      begin
                         if(flag<>0) then
                            write(ptr^[i],' ')
                         else
                            if(ptr^[i]<>0) then
                               begin
                                  write(ptr^[i],' ');
                                  flag:=1;
                               end;
                      end;
end;{outmas}
 
var
     pDynArray : tPtrIntArr0;{tIntArr1;}
     nSize : integer;
     i: integer;
begin
  clrscr;
  write ('Vvedite size: ');
  readln (nSize);
 
 {Тут, конечно, по хородему, надо проверить, чтобы введенное nSize не было
  большим настольо, чтобы требуемый размер памяти не превосходил $FFFF}
 
  if (nSize > ($FFF0 div SizeOf(integer)))
     then begin
               writeln ('Slishkom bolsjoe chislo!');
               Halt;
          end;
  if MaxAvail < SizeOf(integer)*nsize then
 
 
  else
      begin
        GetMem (pDynArray, nSize * SizeOf (pDynArray^[1]));
 { Тут опять, по-хорошему, проверить, что память выделилась }
 
 
 { Далее действия как с обычны массивом }
  for i:=1 to nsize do
                       pDynArray^ [i] := 2;
  pDynArray^ [nsize] := 10;
  pDynArray^ [nsize-1] := 20;
  pdynarray^[1]:=1;
  pdynarray^[2]:=0;
{ ..........................................}
{  writeln('pDynArray^ [1] = ',pDynArray^ [1]); }
  outmas(pDynArray,nSize);
 
  FreeMem (pDynArray, nSize * SizeOf (pDynArray^[1]));
  readln;{задержка}
       end;
end.
0
15.04.2008, 08:03
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.04.2008, 08:03
Помогаю со студенческими работами здесь

Написание программ на языке Паскаль.
Помогите пожалуйста решить такую задачу: Даны три действительных числа. Возвести в квадрат те из...

Перевести в паскаль одну из двух программ...
Перевести в паскаль одно из двух Program ifff; Uses crt; Var X,Y:real; begin clrscr; ...

ЗАпись алгоритма на языке программ Паскаль
Помогите пожалуйста решить 2 задачи, срочно на сегодня нужно: Первая задача: Дано двухзначное...

Разработка Паскаль программ с использованием процедур и функций пользователя
функция a*x2+b*x+c начальное значение 5 шаг 0,2 конечное значение 7 абсолютная погрешность 0.001


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO / / https:/ / leetcode. com/ studyplan/ top-interview-150/ package topInterview . . .
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации. Исполнитель Чертежник работает на координатной плоскости, где может. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru