Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: FPC  (Прочитано 1262 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ZeRo_Cool

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
FPC
« : 20 Октября 2009, 20:53:51 »
Люди, подскажите пожалуйста.
Вот простая програмка, которая выполнена была в Turbo Pascal.
uses crt;

var i : integer;

Begin

     textcolor(red);

     clrscr;

     write('  |');

     i := 2;

     repeat write(i:3);

     i := i+ 1;

     until i >= 10 ;

     writeln;

     writeln('--------------------------');

     write('2 ');

     write('|');

     i := 4;

     repeat write(i:3);

     i := i + 2;

     until i >= 20;

     writeln;

     write('3 ');

     write('|');

     i := 6;

     repeat write(i:3) ;

     i := i + 3;

     until i >= 30;

     writeln;

     write('4 ');

     write('|');

     i :=8;

     repeat write(i:3);

     i := i + 4 ;

     until i>= 40;

     writeln;

     write('5 ');

     write('|');

     i :=10 ;

     repeat write(i:3);

     i := i + 5;

     until  i >= 50;

     writeln;

     write('6 ');

     write('|');

     i := 12 ;

     repeat write(i:3);

     i := i + 6;

     until i >= 60;

     writeln;

     write('7 ');

     write('|');

     i := 14;

     repeat write(i:3);

     i := i +7;

     until i >= 70;

     writeln;

     write('8 ');

     write('|');

     I:=16;

     repeat write(I:3);

     i := i + 8 ;

     until i>= 80;

     writeln;

     write('9 ');

     write('|');

     i := 18;

     repeat write(i:3);

     i := i +9 ;

     until i >= 90;



     readkey;

end.
В Turbu нормально под виндой было всё.
В Free pascal в Ubuntu постоянно выдаёт:

First compilation of /home/nikKej/pas/TABLICAX.pas
Fatal:Can't open file "TABLICAX.pas"
Fatal:Compilation aborted

PS.
Обратно в винду не хочу. Гуглить пытался.
« Последнее редактирование: 20 Октября 2009, 21:06:14 от NikolasKej »

Оффлайн ZwS

  • Старожил
  • *
  • Сообщений: 1674
    • Просмотр профиля
Re: FPC
« Ответ #1 : 20 Октября 2009, 21:24:02 »
1.pas(27,17) Fatal: illegal character "#31" ($1F)
какойто левый символ у вас стоит в 27 строке.
наверно с кодировкой проблемма
« Последнее редактирование: 20 Октября 2009, 21:27:04 от ZwS »
Dell Inspiron One 2330 | Intel+Radeon HD7650A | 8GB RAM | Ubuntu GNOME 17.10

Оффлайн ZeRo_Cool

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: FPC
« Ответ #2 : 21 Октября 2009, 00:49:38 »
Это ; Но это обязательно.
Как с проблемой справиться не подскажите?
unit module;

interface



type

     TComp=record

     re,im : real;

     alg: boolean;

  end;

    Procedure Input_Comp (var Comp: TComp);

    Procedure Output_Comp (var Comp: TComp);

    procedure summ_comp (c1,c2:TComp;var c3:TComp);

    procedure proiz(c1,c2:TComp;var c3:TComp);

    procedure razn_comp (c1,c2:TComp;var c3:TComp);

    procedure chast(c1,c2:TComp;var c3:TComp);

    procedure perevod(var c:Tcomp);

implementation

  Procedure Input_Comp ;

   Begin

    writeln('input Re');

    readln(comp.re);

    writeln('input im');

    readln(Comp.im);



   end;

  Procedure Output_Comp ;

  var z:string;

   Begin

   if comp.alg=true then

   begin

   write(comp.re:2:5);

   if comp.im>=0 then write(' +');

   if comp.im<0 then write(' -');

   write('i',abs(comp.im));

   end

   else

   write('³',comp.re:2:2,'³','(cos(',comp.im:2:2,') + sin(',comp.im:2:2,'))');

    end;

      procedure summ_comp ;

  begin

  c3.re:=c1.re+c2.re;

  c3.im:=c1.im+c2.im;

  end;

  procedure proiz;

  begin

  c3.re:=c1.re*c2.re-c1.im*c2.im;

  c3.im:=c1.im*c2.re+c1.re*c2.im;

  end;

   procedure razn_comp;

  begin

  c3.re:=c1.re-c2.re;

  c3.im:=c1.im-c2.im;

  end;

  procedure chast;

  begin

  c3.re:=c1.re*c2.re+c1.im*c2.im;

  c3.im:=c1.im*c2.re-c1.re*c2.im;

  end;

  procedure perevod;

   var b:real;

  z: boolean;

  begin

  z:=c.alg;

  if z=true then

  begin

  b:=c.re;

  c.re:=sqrt(c.re*c.re+c.im*c.im);

  c.im:=arctan(c.im/b);

  c.alg:=false;

  end;

  if z=false then

  begin

  b:=c.re;

  c.re:=c.re*cos(c.im);

  c.im:=c.re*sin(c.im);

  c.alg:=true;

  end;

  end;

  end.
И здесь то же самое.
Впринципе, с только написанными нормально всё, только с винды мигранты косячат почему-то.
« Последнее редактирование: 21 Октября 2009, 00:54:28 от NikolasKej »

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: FPC
« Ответ #3 : 21 Октября 2009, 00:52:16 »
Переводы строк влияют? Попробуй прогнать исходный код через утилиту dos2unix (или dostounix не помню уже).

Blizzard

  • Гость
Re: FPC
« Ответ #4 : 21 Октября 2009, 00:55:26 »
Переводы строк влияют? Попробуй прогнать исходный код через утилиту dos2unix (или dostounix не помню уже).
В паскале хоть в одну строчку можно всю программу написать. Компилятору пофиг.

Оффлайн K_E_S_T

  • Участник
  • *
  • Сообщений: 198
  • пси][опат
    • Просмотр профиля
Re: FPC
« Ответ #5 : 21 Октября 2009, 14:10:56 »
Человек, а кто за тебя в implementation после названия процедур будет указывать какие переменные ей передаются?  Один раз при указании списка процедур этого не достаточно. Надо ещё и при каждом описании параметры указывать...
(Нажмите, чтобы показать/скрыть)

вот так всё работает

Пользователь решил продолжить мысль 21 Октября 2009, 14:21:05:
а в первом примере, действительно, после ; какойто символ левый стоял. строчку и перевод строки удали и перепиши :)
« Последнее редактирование: 21 Октября 2009, 14:21:05 от K_E_S_T »

Оффлайн ZeRo_Cool

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: FPC
« Ответ #6 : 21 Октября 2009, 23:22:07 »
Ваше исправление справедливо.
И заново переписанная программа нормально работает.
Но, именно из винды пришедшие выбрасывают вышеупомянутые ошибки при компиляции в fpc.
Приходится переписывать их заново.

Оффлайн K_E_S_T

  • Участник
  • *
  • Сообщений: 198
  • пси][опат
    • Просмотр профиля
Re: FPC
« Ответ #7 : 22 Октября 2009, 14:23:49 »
Я не знаю каким компилятором вы пользовались, но всегда в модулях должно быть так:

interface
procedure <имя процедуры> (список параметров);
.....

implementation
procedure <имя процедуры> (список параметров);
begin
<сама процедура>
end;

.....

Это по стандарту. Всегда писал так и не смотрел какие компиляторы разрешают подобные "вольности" а какие нет, чего и вам желаю.

Пользователь решил продолжить мысль 22 Октября 2009, 14:26:28:
а "illegal character "#31" ($1F)" лишь говорит о несогласованности в кодировках. Компилятор не понял что там за символ (на самом деле далеко не все символы видимые), поэтому нужно лишь переписать часть строки где предполагается "странное". а именно сам символ ну и для страховки соседние на 1-2 знака(учитывая перевод строки). больше не стоит.
« Последнее редактирование: 22 Октября 2009, 14:26:28 от K_E_S_T »

Оффлайн ZeRo_Cool

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: FPC
« Ответ #8 : 22 Октября 2009, 15:04:37 »
Всё работает.
Всем спасибо.
И ещё.
Подскажите, пожалуйста, как использовать dos2unix, делал как здесь https://forum.ubuntu.ru/index.php?topic=30174.0 написано, но в ответ, вообщем вот:
nikKej@nikKej:~$ dos2unix ARRAYdos.pas ARRAYunix.pas
dos2unix: Unable to access file ARRAYdos.pas.
dos2unix: Unable to access file ARRAYunix.pas.
« Последнее редактирование: 22 Октября 2009, 15:08:51 от NikolasKej »

Оффлайн K_E_S_T

  • Участник
  • *
  • Сообщений: 198
  • пси][опат
    • Просмотр профиля
Re: FPC
« Ответ #9 : 22 Октября 2009, 15:38:54 »
не хватает прав? попробуй запускать под рутом.

Оффлайн ZeRo_Cool

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: FPC
« Ответ #10 : 22 Октября 2009, 16:38:54 »
То же самое и под рутом.
Не понимаю: ставил Ubuntu 8.10 - всё было в норме,
Скачал Ubuntu 9.04 desktop -постоянно какие-то косяки.
При закачке, чтоли, произошло что-то? Даже при livecd, только с диска, desktop запускался, с флека не хотел. И даже сейчас при выключении какая-то ошибка возникает порой.
Вообщем, спасибо. Работать и учиться, впринципе, можно, осталось только мелкие проблемки порешать.

Оффлайн SauronTheDark

  • Активист
  • *
  • Сообщений: 674
    • Просмотр профиля
Re: FPC
« Ответ #11 : 25 Октября 2009, 22:58:57 »
dos2unix ./ARRAYdos.pas ./ARRAYunix.pas

 

Страница сгенерирована за 0.037 секунд. Запросов: 25.