Вылетает программа с подключенным модулем crt — PascalABC.NET
Здравствуйте. Я новичок в PascalABC.Net, поэтому прошу помочь, а не бросаться тапками, за тупые вопросы. Дело в том, что я создал программу, которая создаёт эффект, как в фильме матрица. Подключил модуль crt. Первые несколько секунд работает хорошо. Но далее начинает издавать звуки, похожие на писк, а затем зависает. В чём может быть проблема?
Может есть какие ограничения в модуле (или в командной строке. Как я понял, модуль выводит цветные символы в командную строку)? Если нужен код, то я выложу, пока смысла не вижу выкладывать.
Код к задаче: «Вылетает программа с подключенным модулем crt»
Листинг программы
uses crt; type matrix = array [1..80, 1..25] of integer; var a: matrix; x, y, k, l, i, j: integer; b: boolean; function MyRandom(a, b: integer): integer; begin Result := Random(a, b); //Исключаем все пищалки и другие «невидимые» символы while Result in [7..10, 13, 32, 149, 160] do Result := Random(a, b); end; begin b := false; HideCursor; while true do begin if b = false then begin b := true; end else begin x := MyRandom(1, 80); if a[x, 1] = 0 then if a[x, 2] = 0 then a[x, 1] := MyRandom(0, 255); b := false; end; x := 1; y := 1; for k := 1 to 25 do begin for l := 1 to 80 do begin gotoxy(x, y); if y > 1 then begin if a[x, y — 1] = 0 then begin textcolor(2); end else begin textcolor(10); end; end; write(chr(a[x, y])); x += 1; end; x := 1; y += 1; end; x := 1; y := 25; for i := 1 to 25 do begin for j := 1 to 80 do begin if y = 1 then begin end else begin if y > 0 then if a[x, y — 1] = 0 then begin a[x, y] := 0 end else begin if a[x, y] = 0 then a[x, y] := MyRandom(0, 254) end; end; if a[x, 13] = 0 then begin end else begin a[x, 1] := 0 end; x += 1; end; x := 1; y -= 1; end; end; end.
Источник: studassistent.ru
Как написать простинькую программу на Pascal ABC.net 1 урок
Паскаль — Урок 12: Использование модуля CRT
Итак, уважаемые читатели ZedPost.Ru, продолжаем наши уроки по паскалю. В прошлый раз мы узнали о том, что такое двумерные массивы, сегодня мы узнаем о модуле CRT. Подробнее далее.
Что такое модуль CRT? Это модуль в Паскаль, который может выводить в отдельном диалоговом окне цветные символы на цветном фоне. Также с помощью него можно настроить размер этого окна, переместить курсор в определённую точку экрана, а также очищать это диалоговое окно.
Модуль CRT в паскале поддерживает 16 цветов, нумерация которых начинается с 0 (от 0 до 15 включительно). Также можно просто прописывать названия цветов не используя цифры.
Для того чтобы использовать модуль CRT его нужно подключить с помощью следующей строчки:
uses crt;
Для того чтобы закрасить фон нужно использовать такую команду:
textbackground (2); //Фон залит зелёным цветом
Надо сказать, что textbackground следует применять вместе с процедурой очистки экрана, которая описана ниже.
Ввод и вывод данных в Pascal ABC. Использование модуля CRT,GraphABC
Для очистки экрана (1) и установки позиции курсора (2) используются соответственно следующие команды:
clrscr; // (1) – очистка курсора
gotoxy (9,6); // (2) –Курсор установлен в точку (9;6)
Цвет текста определяет процедура:
textcolor (13);
Для временной задержки существует процедура delay
delay (1500);
Запускать программу в Pascal с использованием модуля CRT нужно при помощи клавиш Shift+F9.
С помощью этого модуля игры для компьютера, телефона не напишешь. Для windows phone 7 игры написаны на совсем другом языке программирования.
Пример программы на Паскаль с использованием модуля CRT:
uses //Подключение модуля
crt;
begin
textbackground (2); //Перекраска фона в зелёный
clrscr; //Очистка экрана и применении цвета фона
textcolor (13); //Текст будет розовым цветом
gotoxy (9,6); //Курсор будет перемещён в точку (9;6)
write (‘Hi, people!’); //Вывод текста
delay (1500); //Задержка
textbackground (3); //Фон будет салатного цвета
clrscr; //Очистка экрана
gotoxy (20,20); //Курсор перемещён в точку (20;20)
textcolor (red); //Цвет текста — красный
write (‘Hi!’); //Вывод текста
readln;
end. //Конец программы
Этот модуль должен работать во всех программах — компиляторах.
Скачать пример паскаль с модулем CRT: modcrt.pas
Источник: zedpost.ru
Модуль crt в pascal abc
Модуль CRT содержит набор процедур и функций управления текстовым выводом на экран дисплея, звуковым генератором и чтением символов с клавиатуры без отображения их на экране, а также переменных и констант режимов работы и цветов.
Монитор может работать в текстовом или графическом режиме с различной разрешающей способностью.
Текстовый режим задается процедурой:
TextMode (Со40); Где: TextMode – режим;
TextMode (Co80); Bw(Black-White) – черно — белый режим;
TextMode (Bw40); 40 и 80 –количество символов в строке;
TextMode (Bw80).
Параметры процедуры можно задать с помощью констант определенных в модуле
Const
Bw40 =0;
Co40 =1;
Bw80 =2;
Co80 =3;
Один из режимов устанавливается по умолчанию при настройке системы.
Для задания цвета символов и фона используются следующие константы:
Const
Black =0;
Blue =1;
Green =2;
Cyan =3;
Red =4;
Magenta =5;
Brown =6;
LightGray =7;
DarkGray =8;
LightBlue =9;
LightGreen =10;
LightCyan =11;
LightRed =12;
LightMagenta =13;
Yellow =14;
White =15;
Blinck =128;
Работать можно на всем экране 80х25 или выделать окно с помощью процедуры
Window(X1,Y1,X2,Y2)
умолчанию устанавливается окно (1,80,1,25).
Для явного выделения окна после процедуры Window необходимо выполнить TextBackGround и ClrScr.
Основные процедуры модуля CRT
Модуль Crt позволяет выводить цветные символы на цветном экране. Хотя по-прежнему отображение будет происходить в текстовом режиме. Текстовый режим означает, что на экране могут выводиться только определенные символы в определенных местах (знакоместах). Можно представить экран, разделенным вертикальными и горизонтальными линиями на ячейки.
В эти ячейки можно «вписывать» различные символы. У каждой ячейки есть адрес.

Примечание. В Ubuntu модуль Crt не работает, если программу компилировать не в домашнем каталоге.
Модуль Crt содержит ряд процедур, позволяющих задавать цвет символов и экрана, очищать экран, менять позицию курсора и др.
Стандартный экран в Паскале чаще формируется из 25 строк и 80 столбцов. Строки нумеруются сверху вниз, а столбцы слева на право. Нумерация начинается с единицы (что может показаться непривычным).
Примечание. Если программа запускается в терминале Linux, то количество строк и столбцов определяется соответственно шириной и высотой экрана терминала. В случае попытки вывести символ за границами доступной области, он выводится в верхнем левом углу.
Количество доступных цветов (для экрана и символов) всего 16. Они кодируются числами от 0 до 15. Также вместо чисел можно прописывать названия цветов.
Для того чтобы в программе можно было использовать содержимое модуля Crt, его надо импортировать (подключить) в программу. Делается это в секции, которая начинается со слова uses.
Чтобы очистить экран от всех надписей, требуется выполнить процедуру clrscr. Если перед этим был задан цвет экрана (с помощью textbackground), то экран будет залит соответствующим цветом.
Цвет текста определяется процедурой textcolor, позиция курсора – gotoxy.
Для вывода символов на экран используются стандартные процедуры write и writeln.
Также существует процедура временной задержки delay (аргумент задается в микросекундах), если требуется выводить символы не сразу, а постепенно.
![]()
Итак, уважаемые читатели ZedPost.Ru, продолжаем наши уроки по паскалю. В прошлый раз мы узнали о том, что такое двумерные массивы, сегодня мы узнаем о моудле CRT. Подробнее далее.
Что такое модуль CRT? Это модуль в Паскаль, который может выводить в отдельном диалоговом окне цветные символы на цветном фоне. Также с помощью него можно настроить размер этого окна, переместить курсор в определённую точку экрана, а также очищать это диалоговое окно.
Модуль CRT в паскале поддерживает 16 цветов, нумерация которых начинается с 0 (от 0 до 15 включительно). Также можно просто прописывать названия цветов не используя цифры.
Для того чтобы использовать модуль CRT его нужно подключить с помощью следующей строчки:
Для того чтобы закрасить фон нужно использовать такую команду:
Надо сказать, что textbackground следует применять вместе с процедурой очистки экрана, которая описана ниже.
Для очистки экрана (1) и установки позиции курсора (2) используются соответственно следующие команды:
Цвет текста определяет процедура:
Для временной задуржки существует процедура delay
Запускать программу в Pascal с использованием модуля CRT нужно при помощи клавиш Shift+F9.
С помощью этого модуля игры для компьютера, телефона не напишешь. Для windows phone 7 игры написаны на совсем другом языке программирования.
Пример программы на Паскаль с использованием модуля CRT:
Этот модуль должен работать во всех программах — компиляторах.
Нет связанных сообщений
Источник: girlgames01.ru
Program uses crt var
Модуль Crt позволяет выводить цветные символы на цветном экране. Хотя по-прежнему отображение будет происходить в текстовом режиме. Текстовый режим означает, что на экране могут выводиться только определенные символы в определенных местах (знакоместах). Можно представить экран, разделенным вертикальными и горизонтальными линиями на ячейки.
В эти ячейки можно «вписывать» различные символы. У каждой ячейки есть адрес.

Примечание. В Ubuntu модуль Crt не работает, если программу компилировать не в домашнем каталоге.
Модуль Crt содержит ряд процедур, позволяющих задавать цвет символов и экрана, очищать экран, менять позицию курсора и др.
Стандартный экран в Паскале чаще формируется из 25 строк и 80 столбцов. Строки нумеруются сверху вниз, а столбцы слева на право. Нумерация начинается с единицы (что может показаться непривычным).
Примечание. Если программа запускается в терминале Linux, то количество строк и столбцов определяется соответственно шириной и высотой экрана терминала. В случае попытки вывести символ за границами доступной области, он выводится в верхнем левом углу.
Количество доступных цветов (для экрана и символов) всего 16. Они кодируются числами от 0 до 15. Также вместо чисел можно прописывать названия цветов.
Для того чтобы в программе можно было использовать содержимое модуля Crt, его надо импортировать (подключить) в программу. Делается это в секции, которая начинается со слова uses.
Чтобы очистить экран от всех надписей, требуется выполнить процедуру clrscr. Если перед этим был задан цвет экрана (с помощью textbackground), то экран будет залит соответствующим цветом.
Цвет текста определяется процедурой textcolor, позиция курсора – gotoxy.
Для вывода символов на экран используются стандартные процедуры write и writeln.
Также существует процедура временной задержки delay (аргумент задается в микросекундах), если требуется выводить символы не сразу, а постепенно.
![]()
Итак, уважаемые читатели ZedPost.Ru, продолжаем наши уроки по паскалю. В прошлый раз мы узнали о том, что такое двумерные массивы, сегодня мы узнаем о моудле CRT. Подробнее далее.
Что такое модуль CRT? Это модуль в Паскаль, который может выводить в отдельном диалоговом окне цветные символы на цветном фоне. Также с помощью него можно настроить размер этого окна, переместить курсор в определённую точку экрана, а также очищать это диалоговое окно.
Модуль CRT в паскале поддерживает 16 цветов, нумерация которых начинается с 0 (от 0 до 15 включительно). Также можно просто прописывать названия цветов не используя цифры.
Для того чтобы использовать модуль CRT его нужно подключить с помощью следующей строчки:
Для того чтобы закрасить фон нужно использовать такую команду:
Надо сказать, что textbackground следует применять вместе с процедурой очистки экрана, которая описана ниже.
Для очистки экрана (1) и установки позиции курсора (2) используются соответственно следующие команды:
Цвет текста определяет процедура:
Для временной задуржки существует процедура delay
Запускать программу в Pascal с использованием модуля CRT нужно при помощи клавиш Shift+F9.
С помощью этого модуля игры для компьютера, телефона не напишешь. Для windows phone 7 игры написаны на совсем другом языке программирования.
Пример программы на Паскаль с использованием модуля CRT:
Этот модуль должен работать во всех программах — компиляторах.
Program sum_mas;-имя программы
uses Crt;-вывод в виде сообщ.
Var i: integer;-описание переменных
M:array[1..5] of Real;описание массива и его размер
WriteLn(‘Введите число m[‘,i,’]=’);-ввод массива
For i:=1 to 5 do-цикл от 1 до 5
Sum:=sum+m[i];-сумма = сумма + массив
Writeln(‘сумма =’,sum);-вывод суммы
readln;-чтение просто , что бы курсор переходил на другую строку
Источник: teh-fed.ru
Учебник по программированию.
§18. Сведения, необходимые для программирования под ОС DOS.
Прежде чем начать изучать модуль CRT и начать программировать по ОС DOS необходимо разобрать ряд следующих понятий.
Консольное приложение. Исполняемый файл.
До сих пор результат работы программы мы видели только в «Окне вывода». На самом деле все написанные нами программы – это программы под операционную систему DOS. Т.е. они могут работать самостоятельно в этой системе. Возникает уместный вопрос – т.к. наша программа может работать самостоятельно, то можно ли её запустить не в среде разработки, и если да, то где она находится. На самом деле если вы ничего не меняли в окне «Настройки» во вкладке «Опции компиляции», то ваши программы ни где не находятся, а существуют только в исходных текстах с расширением PAS.
Дело в том, что когда мы запускаем команду «Выполнить», происходит компиляция программы и автоматический её запуск. Компиляция – это создание исполняемого файла с расширением EXE. Именно исполняемый файл это и есть наша «самостоятельная» программа, которую можно запустить не в среде разработки и на другом компьютере. После выполнения программы этот исполняемый файл автоматически удаляется.
Что бы этот файл не удалялся, необходимо убрать галочку в пункте «Удалять EXE файл после выполнения», который находится в окне «Настройки» во вкладке «Опции компиляции». С окном «Настройки» вы уже знакомы. С выбранной вкладкой «Опции компиляции» оно выглядит следующим образом:

Здесь же можно выбрать место, где должен создаваться исполняемый файл, поставив галочку в пункте «Выходные файлы генерировать в папку». Если галочка не стоит, то файлы будут создаваться в папке, которая указана блеклым цветом в поле ниже данного пункта. В том случае если исходный код вашей программы уже сохранен в файле с расширением PAS, то исполняемый файл будет создаваться в той же папке, что исходный код не зависимо от настроек.
Что бы создать исполняемый файл можно или запустить программу на выполнение или просто откомпилировать её командой «Компилировать».
Если вы запустите исполняемый EXE файл в операционной системе Windows, то появится специальное окно для вывода «Досовских» программ. Выглядит оно следующим образом:

Это окно называется консолью. Отсюда появилось следующее название «Консольное приложение». Поэтому все наши программы, написанные под DOS, называются консольными приложениями. Это окно можно развернуть на весь экран с помощью сочетания клавиш «Alt+Enter». В этом случае на экране будет всё то же самое, что и в операционной системе DOS.
Для того, что бы увидеть свою программу в консольном окне, необязательно создавать EXE файл. Можно запустить команду «Выполнить без связи с оболочкой» из меню «Программа». Или нажать сочетание клавиш «Shift+F9». В этом случае наша программа будет выглядеть так:

Особых различий в способе запуска нет. Суть работы программы от этого не изменится. Однако вы должны знать один нюанс. Если вы запустили программу без связи с оболочкой из среды программирования, то по завершению работы программы автоматически выводится строчка «Программа завершена, нажмите любую клавишу…», при этом программа ждёт, когда вы нажмёте любую клавишу, и только после этого консольное окно закрывается.
Если вы запустите исполняемый файл, то такой строчки автоматически выведено не будет, и консольное окно, не успев открыться, закроется. Дело в том, что при завершении работы программы, закрывается и консольное окно. И все результаты работы программы так же исчезают вместе с ним.
Для того, что бы программа завершалась по нажатию клавиши, добавьте в конец программы процедуру readln. В таком случае программа не завершит свою работу до тех пор, пока не будет выполнена данная процедура, т.е. до тех пор, пока вы не нажмёте клавишу «Enter».
В одном из предыдущих параграфов мы изучали файлы, и среди представленных процедур и функций для работы с файлами была функция, возвращающая текущий каталог. Теперь, когда мы знаем, что такое исполняемый файл, мы можем говорить о том, что такое текущий каталог более подробно. Текущий каталог для программы – это тот каталог, в котором находится исполняемый файл этой программы. Это определение действует до тех пор, пока вы намеренно его не смените.
Особенность работы с текущим каталогом заключается в том, что если вы укажете только имя файла без пути, то этот файл будет найден именно в текущем каталоге. Если вы пишете программу, работающую с файлом, то достаточно указывать только его имя. При этом, когда вы будете переносить программу на другой компьютер или в другое место, следите за тем, что бы данный файл находился в том же каталоге, что и исполняемый.
В отличии от TurboPascal, в справке PascalABC.NET почему то нет описания данного модуля. Как можно его изучить без справки? Для этого можно просто открыть его в любом текстовом редакторе или в редакторе кода PascalABC.NET, а затем просмотреть раздел интерфейса. Находится этот модуль в папке LibSource, там же где и PascalABC.NET.
Открыв модуль, вы увидите, что в нём практически всё подписано с помощью комментариев. Т.к. все комментарии на русском языке, то вам должно быть понятно, то что вам нужно на данный момент, а именно что делает та или иная процедура или функция.
Стоит сразу заметить, что при использовании данного модуля необходимо запускать программу на выполнение без связи с оболочкой, с помощью комбинации клавиш «Shift+F9».
Процедуры и функции для работы с курсором.
Курсор – это мигающая полоска, которая располагается в том месте, куда в данный момент можно вывести символ. В операционной системе Windows курсор представляет из себя вертикальную мигающую полоску, которая может находиться между символами. В операционной системе DOS – это горизонтальная полоска, которая располагается под символами. Соответственно и в консольном окне курсор тоже находится под символом.
Что такое консольное окно мы узнали в одном из предыдущих параграфов. Плюсом к тому, что уже было сказано об этом окне, необходимо сказать, что в консольном окне помещается 25 строк по 80 символов в каждой. Шире консольное окно быть не может, однако если появилось более 25 строк, то в нём появляется полоса прокрутки и его можно прокручивать. Если окно не развёрнуто на весь экран, то можно увеличить его вертикальный размер, при этом в него будет помещаться более 25 строк.
Теперь, объединяя информацию из последних двух абзацев, можно сказать следующее: положение курсора на экране выражается координатами Х и Y. Координата X означает, на сколько символов от левого края отступает курсор. Координата Y означает, в какой строчке сверху находится курсор.
Далее приведены подпрограммы, с помощью которых можно управлять курсором:
function WhereX : integer; – возвращает Х-координату курсора.
function WhereY : integer; – возвращает Y-координату курсора.
procedure GotoXY (x, y: integer); – переводит курсор в координаты (x,y). x – порядковый номер символа в строке, y – номер строки. Если будут указаны координаты превышающие допустимые значения, то команда будет игнорироваться и выполняться не будет.
procedure ShowCursor ; – показывает курсор если он скрыт.
procedure HideCursor ; – скрывает курсор.
Примеры использования данных подпрограмм приводить не буду. У вас должно быть уже достаточно опыта, что бы самим опробовать их.
Функции для работы с клавиатурой.
function KeyPressed : boolean; – возвращает true если была нажата клавиша. В PascalABC.NET данная функция не определяет нажатия клавиш Shift, Alt и Ctr, а так же PAUSE, PRTSC и INS.
function ReadKey : char; – возвращает символ нажатой клавиши. Данной функцией можно определить какая клавиша была нажата.
Далее в таблице указаны порядковые номера возвращаемых символов, при нажатии некоторых клавиш, которые не являются символами:
Источник: www.dvkuklin.ru