Перейти к содержанию

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


Рекомендуемые сообщения

Помогите разобраться начал учить 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

Ссылка на комментарий
Поделиться на другие сайты

Никто.

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

to EvilShadow

спасибо.

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

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

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

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

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

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

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

http://ifolder.ru/4178412

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

а строчка:

m:= (m+1) mod 4;

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

Ссылка на комментарий
Поделиться на другие сайты

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 и так далее по кругу.

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...