Jump to content
Sign in to follow this  
4fun

Помогите с Паскалем.

Recommended Posts

Помогите разобраться начал учить Turbo Pascal и у меня почемуто не получаеться нифига =) помогите разобраться.

uses dos, crt;

const

line : array[0..3] of char = ('|' , '/' , '-' , '\');

var

m: integer;

begin

TextColor(Yellow);

m:= 0;

repeat

gotoxy(40, 13);

write(line[m]);

gotoxy(1, 1);

delay(100);

m:= (m+1) mod 4;

until keypressed;

end.

сама программа:

http://ifolder.ru/4178412

Share this post


Link to post
Share on other sites

Никто.

1. Вы не удосужились рассказать, чего хотите добиться.

2. Вы не говорите, что не работает и что Вы делали, чтоб заработало.

3. Вы выкладываете на линуксовом форуме досовские исходники. Где прикажете искать турбо паскаль, чтоб проверить Ваши исходники?

Если форум называется "Программирование общее", Вы ведь не ожидаете здесь ответы на вопросы о программировании на ассемблере для каких-нибудь VAX'ов? Так почему же Вы удивляетесь тому, что линуксоиды не отвечают на вопросы о программирование под ДОС?

Share this post


Link to post
Share on other sites

to EvilShadow

спасибо.

Я пытаюсь сделать, чтобы получился эффект крутящийся стрелки.

т.е. символы /, -, \, | , должны появляться по порядку.

Пробывал я и так и сяк, на выходе эти символы рандомно появляються (вразнобой, не по порядку). Уже голову сломал с этими массивами.

(просто я только что начал изучать Паскаль)

вот сам паскаль(turbo pascal 7.0):

http://dl.softportal.com/load/tp7.zip

сама программа:

http://ifolder.ru/4178412

Share this post


Link to post
Share on other sites

4fun писал(а) Sun, 18 November 2007 20:54

вот сам паскаль(turbo pascal 7.0):

http://dl.softportal.com/load/tp7.zip

Вы меня не поняли. Что прикажете мне делать с ДОСовским турбопаскалем под Линухом? Smile

Что касается программы. Паскаля под рукой нет, ставить лень. Но общий алгоритм от языка зависит слабо, если знаете Си, вот Вам рабочий вариант:

#include <stdio.h>

int main ()
{
       int i;
       char a[] = {'|', '/', '-', '\\'};
       while (1) {
           for (i = 0; i < 4; i++) {
               printf ("\b%c", a);
           }
       }
}

Т.е. затираем предыдущий символ, на его место выводим следующий. Когда переберется весь массив, обнуляем индекс, т.е. возвращаемся на первый символ и повторяем все заново.

ЗЫ. А строка

m:= (m+1) mod 4;

меня повергла в совершенное недоумение. Что это за операция? Остаток от деления? Что она возвращает для выражений 1 mod 4, 2 mod 4...? Hm

Share this post


Link to post
Share on other sites

блин с Си я пока не знаком Sad

Но буду пытаться. Спасибо что ответили.

Если кто-нить есть кто пишет в паскале помогите плз.

а строчка:

m:= (m+1) mod 4;

так написано в книге по паскалю...

Share this post


Link to post
Share on other sites

EvilShadow писал(а) Sun, 18 November 2007 22:33

ЗЫ. А строка

m:= (m+1) mod 4;

меня повергла в совершенное недоумение. Что это за операция? Остаток от деления? Что она возвращает для выражений 1 mod 4, 2 mod 4...? Hm

Да, это остаток от деления нацело, что очень удобно для быстрой организации "круглых" циклов. 1 mod 4 = 1, 2 mod 4 = 2, 3 mod 4 = 3, 4 mod 4 = 0 и так далее по кругу.

Share this post


Link to post
Share on other sites

Кстати, DOS программы в Linux запускаются также, как в других системах - через эмулятор. Только вот специалистов уже нет.

Share this post


Link to post
Share on other sites

А вы вот прямо вот так писали, как в первом посте? С лишними переводами строк после const и var?

Share this post


Link to post
Share on other sites

Aceler писал(а) Sun, 18 November 2007 22:26

Кстати, DOS программы в Linux запускаются также, как в других системах - через эмулятор. Только вот специалистов уже нет.

Правильно. Мне надо слить Турбопаскаль, потом поставить dosemu... Увольте Smile

Share this post


Link to post
Share on other sites

4fun писал(а) Mon, 19 November 2007 00:35

В смысле лишний перевод строк?

В прямом.

uses dos, crt;
 const line : array[0..3] of char = ('|' , '/' , '-' , '\');
 var m: integer;
 begin
 TextColor(Yellow);
 m:= 0;
 repeat
 gotoxy(40, 13);
 write(line[m]);
 gotoxy(1, 1);
 delay(100);
 m:= (m+1) mod 4;
 until keypressed;
 end.

P.S. http://sesia5.ru/blok/index12.htm

http://webart.user.kz/pascal/index.htm

Share this post


Link to post
Share on other sites

на счёт строк понял Smile мне просто так удобнее потом разбираться, чего я там понаписал.

Спасибо за ссылки, но у меня есть 2-е книжки по паскалю, но думаю что пригодиться.

Я все равно так и не понял почему программа работает неправильно =( текст 100% правельный, а она работать все равно не хочет... мистика прямо какая-то...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...