Clrscr в паскале что это
Перейти к содержимому

Clrscr в паскале что это

  • автор:

 

Функция Clrscr в Pascal

Иногда требуется просто-напросто убрать весь текст с экрана и сделать полностью чистым рабочее место. Пользователям, не знающим о специальной команде в Pascal при этом будет тяжеловато – каждый символ стирать вручную с помощью Backspace станет долгим занятием. А потому, со временем все-таки человек станет искать средство для коротания времени на это занятие. Как раз-таки в этом материале и будет рассказано о функции на языке Pascal под названием Clrscr.

Перед тем, как пользователь начнет заниматься выполнением программы Clrscr, ему требуется узнать о главных правилах касательно записи идентификаторов. Если допускать какие-либо ошибки, то человек просто не сможет выполнить код. А следовательно, нужно будет долго думать, почему не принимаются те или иные значения.

Чтобы писать код просто и сразу при анализе строк вручную обозначать ошибки – стоит обратить внимание на такой список:

  • Идентификатор начинается с буквы, или знака подчеркивания;
  • Содержит только буквы, цифры или знак подчеркивания;
  • Между двумя идентификаторами должен стоять разделитель;
  • Максимальная длина 127 символов. Все символы значимы;
  • Идентификатор не может повторять зарезервированное слово.

Если какое-то из этих условие нарушено, то просто-напросто будет невозможно осуществить задуманное. Pascal станет предъявлять ошибку, что, естественно, препятствует полному выполнению, так как это противоречит данным в базе языка. Рекомендуется сначала выучить определенные правила, после чего только приступать к записи программ, использующих также функцию Clrscr для очистки экрана.

Также, необходимо учитывать, что для работы такого дополнения в коде требуется подключить специальный модуль. Называется таковой «usesCrt». Все обусловлено тем, что именно на таковом написан Clrscr. И без него, соответственно, функционировать алгоритм не станет. Рекомендуется убедиться перед тестированием написанного кода наличие модуля usesCrt, иначе можно долго размышлять насчет возможной ошибки, о которой вспомнить программист начального уровня может далеко не сразу.

В дополнение к вышеописанному следует выделить отличительную особенность Pascal. Он не чувствителен к регистру, ввиду чего возможно без каких-либо проблем писать программы. Заглавными, строчными буквами – не имеет значения. Ввиду этого, при небольшой «ошибке», связанной с размером символа, не будет ничего серьезного. А также, возможно написать название собственного проекта как угодно – это опять же, никакой роли на работоспособность не повлияет. Главное – сама корректность строк кода, введенных пользователем.

Значение экрана очистки в Паскале – какое оно?

Что вообще делает программа, использующая функцию Clrscr? Как нетрудно догадаться из вступления, она позволяет быстро стереть весь текст, написанный пользователем в программе. Или же, убирается все, что введено с помощью команд, установленных человеком.

Интересный момент может коснуться цвета окна. Известно, что человек может настроить его цвет с помощью специальной команды –«TextBackground». Таким образом, возможно изменить, к примеру, белый на черный, синий и другие цвета. И что касается очистки экрана – весь текст стирается и окно заполняется тем самым цветом, что и был установлен пользователем.

Что касается самой замены символов – они не удаляются, а скорее, заменяются на другие. Вместо таковых появляются пробелы, причем имеющие тот же цвет, что и установленный фон. Если таковой – белый, то и замена текста будет с таким же параметром. И это работает со многими разными оттенками, установленными программистом в коде.

Также, программа с использованием Clrscr не только заменяет все символы на пробелы, но также может перенести курсор на определенную позицию. Как правило, это – верхний левый угол окна, чтобы пользователь мог работать потом так же, как и с новым окном, открытым только что. Мелочь от команды, но некоторым приятные ощущения от вида очищенного окна будут доставлены желающим работать в чистоте.

Вот несколько примеров использования Clrscr:

uses crt;
var i:byte;
begin
for i:=1 to 10 do
writeln(‘*********’);
writeln(‘Введи что-нибудь’);
readln;
clrscr;
writeln(‘Экран чист’);
end.

Также, стоит отметить еще один таковой:

uses Crt;
begin
WriteLn(‘Нажмите любую клавишу…’);
ReadLn;
ClrScr;
end.

И еще один:

uses CRT;
var
x1,x2,: integer;
x: integer;
begin
clrscr;
Write(‘Введите х1’);
Read(x1);
Write(‘Введите х2’);
Read(x2);
x:=x1*x2;
writeLn (‘Число равно x= ‘,x)
readLn;
readLn;
end.

Причины очистки экрана в Паскале – когда делается это?

Когда делается очистка экрана? Здесь ответ может быть развернутым настолько, насколько вообще возможно. Сценариев может быть множество, когда применяется полная очистка всего окна от кода. Однако, стоит уделить наиболее частому случаю внимание. Ведь именно ввиду его происшествия возможно прибегнуть к использованию команды Clrscr.

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

Чаще всего бывает актуален написанный продукт на Pascal в том случае, когда присутствует старый код, а он уже не нужен. Все дело в том, что когда выполняется предыдущая программа, то она оставляет после себя результаты. А накапливая разные данные, вскоре станет тяжело ориентироваться во всей выведенной информацией.

Следовательно, необходимо выделение только важной части – нового кода. Так как сделать это вручную – очень тяжело, то следует прибегнуть к Clrscr. И если все сделать правильно – наподобие представленных выше примеров, то экран очистится и все будет отлично смотреться.

Узнав о всем основном, человек сможет без каких-либо трудностей использовать команду для очистки поля под новые коды. Это будет очень полезным дополнением в работе, иногда даже необходимым. А значит, рекомендуется его использовать при необходимости и не жалеть на написание времени, так как впоследствии это окупится успешной функциональностью кода.

Использование program, begin…end, write, readln, Uses Crt, Clrscr.

В этом уроке мы напишем самую простую программу, состоящую всего из пяти строк. Эта программа будет выводить сообщение на экран. Для написания программы нам необходимо знать как работают операторы Write, Readln, а также понять для чего нужны зарезервированные в Паскаль слова Program, Begin, End.

В строке №1 записывается заголовок программы. Все программы, написанные на языке Pascal, начинаются со служебного слова program. Слово program зарезервировано в Pascal, т.е. оно может использоваться только для объявления имени программы. Далее, через пробел записывается название программы, которое мы придумываем сами. Для примера назовем нашу первую программу «number1». В конце первой строки ставится точка с запятой.

Строка №2. Тело программы начинается с зарезервированного в Pascal слова begin. После него не ставится точка с запятой. Заканчивается программа зарезервированным словом end. (строка №5). После слова end ставится точка. Конструкция begin…end является разделом операторов. Внутри этого раздела находятся операторы, которые будут выполняться программой. В любой программе должны присутствовать слова begin…end.

В строке №3 записывается первый оператор, который будет выполнять программа. Оператор Write служит для вывода на экран какого-либо сообщения. Текст этого сообщения записывается после слова Write, заключается в круглые скобки и в апострофы. В конце обязательна точка с запятой (все операторы в программе должны отделяться друг от друга точкой с запятой). Таким образом, в результате работы оператора Write на экран будет выведено сообщение «Привет.»

В строке №4 записывается оператор readln. Этот оператор служит для задержки экрана, чтобы мы могли увидеть результаты выполнения программы на экране. Если его не использовать, то после того как программа будет выполнена экран сразу свернется и мы не успеем увидеть выводимое на экран сообщение. Кстати, оператор Readln можно не использовать. А для того чтобы увидеть результаты выполнения программы можно нажать Alt+F5. После оператора Readln у нас не стоит точка с запятой т. к. далее идет оператор end. (перед End. точка с запятой не обязательна). Теперь наберем нашу программу в Паскале.

pervaya programma.

Сохраним, нажав F2 (или в командной строке File-Save) и запустим ее, нажав Ctrl+F9 (либо в панели команд Run-Run).
Получим следующий результат.

pervaya programma..

Самая нижняя строка и есть наш результат.
Теперь нажмем Enter (для завершения выполнения программы) и еще раз запустим программу.
Получим следующий результат.

pervaya programma.

Этим примером я хочу показать Вам, что каждый раз при запуске программы старые результаты программы тоже будут выводиться на экран. Для того чтобы этого избежать, используется оператор очистки экрана clrscr (сокращенно от англ. Clear Screen (очистить экран)), который ставится вначале программы после слова begin. Для того чтобы этот оператор работал необходимо подключить модуль CRT с помощью команды USES.

Программа будет выглядеть так:

pervaya programma.

Заметьте, что после Uses Crt и после Clrscr ставится точка с запятой.
После запуска (ctrl+F9) окно вывода сообщения будет иметь вид:

pervaya programma.

Дополнение к материалу.

1. Программа, запущенная в Free Pascal обрабатывается какое-то количество времени. Поэтому после запуска необходимо подождать несколько секунд. Вы увидите сообщение о том, что выполняется программа, а через несколько секунд (1-20) увидите результат выполнения программы.

2. При запуске программ, которые должны выводить на экран текст на русском языке может возникнуть проблема с кодировкой. В консольном окне вы увидите непонятные символы. Для того чтобы этого избежать небходимо кликнуть правой кнопкой мыши по верхней части консольного окна (там, где написано C:\FPC\2.2.2\bin\i386-win32\fp.exe), выбрать «Свойства» и перейти на вкладку «Шрифт». Здесь выбираем «точечные шрифты» и нажимаем Ok.

 

3. Компилятору Pascal абсолютно безразлично какими буквами Вы будете набирать программу, заглавными или строчными, т.е. регистр при наборе программ роли не играет.

4. Имя программы (в нашем случае «number1») не играет какой-либо роли в программе, поэтому не обязательно объявлять имя программы с помощью слова «Program». Таким образом, первую строку программы можно не писать и это никак не повлияет на работу программы.

5. Как уже было сказано, слово «Program» является зарезервированным словом в Pascal. Зарезервированные слова можно использовать только по их прямому назначению. При наборе программ в редакторе Pascal все зарезервированные слова подсвечиваются белым цветом. Название программы «number1» является идентификатором (именем). Идентификаторы – это последовательности символов, которые придумывает сам программист. В нашем примере нам необходимо было придумать название программы. При написании идентификаторов используются определенные правила:

  • Идентификатор начинается с буквы, или знака подчеркивания.
  • Содержит только буквы, цифры или знак подчеркивания.
  • Между двумя идентификаторами должен стоять разделитель.
  • Максимальная длина 127 символов. Все символы значимы.
  • Идентификатор не может повторять зарезервированное слово.
Комментарии

Zhenko! Боюсь тут тебе не помогут никак. Большая часть народа либо просто хвастается либо умеет но делать такие простейшие программы как a:=1+1; Обратись лучше на какой нибудь форум, а лучше изучи сам.

Вот один не плохой форум: http://www.cyberforum.ru/

Желаю удачки тебе! Творческих успехов

Вот программа, которая меняет системную дату и время. никак не могу сделать так, чтобы ClrScr заработала. помогите кто в этом шарит.
uses Crt;
Uses Dos;
CONST
days:ARRAY [0..6] of string [11] = (‘Voskr.’, ‘Ponedel.’, ‘Vtornik’, ‘Sreda’, ‘4etverg’, ‘Pyatnica’, ‘Subbota’);
VAR
year, month, day, day_of_week : WORD;
VAR hour, minute, second, hund : WORD;

BEGIN
Writeln (‘_________________________________________’);
Writeln (‘————- ————— ————-‘) ;
ClrScr;
Write(‘Cleared Screen!’);

PROCEDURE Get_Date;
BEGIN
GetDate (year, month, day, day_of_week);
Writeln (‘Segodnya: ‘, days[day_of_wee k], ‘,’, day,’/’, month,’/’,year);
Writeln (‘————- ————— ————-‘) ;
END;
PROCEDURE Set_Date;
BEGIN
Writeln(‘Vvedit e daty: ‘);
Readln(day, month, year);
SetDate (year, month, day);
Writeln (‘_________________________________________’);
Writeln (‘————- ————— ————-‘) ;
END;
PROCEDURE Get_Time;
BEGIN
GetTime (hour, minute, second, hund);
Writeln (‘Sey4as: ‘, hour,’:’, minute,’:’, second,’:’, hund);
Writeln (‘————- ————— ————-‘) ;
END;
PROCEDURE Set_Time;
BEGIN
Writeln (‘Vvedite vremya’);
Readln(hour, minute, second, hund);
SetTime(hour, minute, second, hund);
END;
BEGIN
Get_Date;
Set_Date;
Get_Time;
Set_Time;
Get_Time;
Writeln (‘OK!’);
Writeln;
Writeln (‘Najmite Enter dlya vihoda . ‘);
Readln;
End.

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

Error: Identifier not found «readIn»

гуглил не помогло, не смог найти причины.

var
p7, p4, p1, p8, p5, p2, p9, p6, p3, st1, st2, st3, vod1, vod2, ind,ind2,pam, shet, shet1: integer;hod, ris1, ris2, ris3, ris4, ris5, ris6, ris7, ris8, ris9: string;

begin
write(‘Игра башня!’);
writeln(‘Цель игры:пирамидку из левой части перетащить в правую!’);
writeln(‘Как играть! Вы вводите два числа от 1 до 3. ПЕРВОЕ число означает столбец откуда будет взята часть. ВТОРОЕ число означает в какой столбец будет положена.’);
ind2:=1;
while ind2=1 do
begin
shet:=0;
ris1 := ‘(0000)’;ris2 := ‘__|__ ‘;ris3 := ‘__|__ ‘;ris4 := ‘ (00) ‘;ris5 := ‘ | ‘;ris6 := ‘ | ‘;ris7 := ‘ () ‘;ris8 := ‘ | ‘;ris9 := ‘ | ‘;
p1 := 4;p2 := 0;p3 := 0;p4 := 2;p5 := 0;p6 := 0;p7 := 1;p8 := 0;p9 := 0;
writeln(‘Начнем !’);
writeln(‘ () | | ‘);
writeln(‘ (00) | | ‘);
writeln(‘(0000) __|__ __|__ ‘);
writeln(‘ 1 2 3 ‘);
writeln();
ind:=0;
while ind = 0 do
begin
st1 := p7 + p4 + p1;
st2 := p8 + p5 + p2;
st3 := p9 + p6 + p3;
vod1 := 0;
vod2 := 0;
writeln(‘Вводит е ПЕРВОЕ число!’);
while (vod1 > 3) or (vod1 = 0) do
begin
if vod1 > 3 then writeln(‘Число должно быть от 1 до 3,вводите еще раз.’);
readln(vod1);
end;
writeln(‘Вводит е ВТОРОЕ число!’);
while (vod2 > 3) or (vod2 = 0) or (vod2 = vod1) do
begin
if (vod2 > 3) or (vod1 = vod2) then writeln(‘Число должно быть от 1 до 3 и не равно 1 числу,вводите еще раз.’);
readln(vod2);
end;
case vod1 of
1:
begin
case st1 of
1:
begin
if (vod2 = 2) then
case st2 of
0: begin p2 := p1;p1 := 0;shet := shet + 1; end;
2: begin p5 := p1;p1 := 0;shet := shet + 1; end;
4: begin p5 := p1;p1 := 0;shet := shet + 1; end;
6: begin p8 := p1;p1 := 0;shet := shet + 1; end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p1;p1 := 0;shet := shet + 1; end;
2: begin p6 := p1;p1 := 0;shet := shet + 1; end;
4: begin p6 := p1;p1 := 0;shet := shet + 1; end;
6: begin p9 := p1;p1 := 0;shet := shet + 1; end;
end;
end;
2:
begin
if (vod2 = 2) then
case st2 of
0: begin p2 := p1;p1 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так!’); end;
4: begin p5 := p1;p1 := 0;shet := shet + 1; end;
5: begin writeln(‘Нельзя так!’); end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p1;p1 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так!’); end;
4: begin p6 := p1;p1 := 0;shet := shet + 1; end;
5: begin writeln(‘Нельзя так!’); end;
end;
end;
3:
begin
if (vod2 = 2) then
case st2 of
0: begin p2 := p4;p4 := 0; shet := shet + 1; end;
4: begin p5 := p4;p4 := 0;shet := shet + 1; end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p4;p4 := 0;shet := shet + 1; end;
4: begin p6 := p4;p4 := 0;shet := shet + 1; end;
end;
end;
4:
begin
if (vod2 = 2) then
case st2 of
0: begin p2 := p1;p1 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так’); end;
2: begin writeln(‘Нельзя так’); end;
3: begin writeln(‘Нельзя так’); end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p1;p1 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так’); end;
2: begin writeln(‘Нельзя так’); end;
3: begin writeln(‘Нельзя так’); end;
end; end;
5:
begin
if (vod2 = 2) then
case st2 of
0: begin p2 := p4;p4 := 0; shet := shet + 1; end;
2: begin p5 := p4;p4 := 0;shet := shet + 1; end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p4;p4 := 0; shet := shet + 1; end;
2: begin p6 := p4;p4 := 0; shet := shet + 1; end;
end; end;
6:
begin
if (vod2 = 2) then
case st2 of
0: begin p2 := p4;p4 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так’); end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p4;p4 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так’); end;
end; end;
7:
begin
if (vod2 = 2) then begin p2 := p7;p7 := 0;shet := shet + 1; end; if (vod2 = 3) then begin p3 := p7;p7 := 0; shet := shet + 1; end;
end;end; end;
2:
begin
case st2 of
1:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p2;p2 := 0;shet := shet + 1; end;
2: begin p4 := p2;p2 := 0; shet := shet + 1; end;
4: begin p4 := p2;p2 := 0;shet := shet + 1; end;
6: begin p7 := p2;p2 := 0;shet := shet + 1; end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p2;p2 := 0;shet := shet + 1; end;
2: begin p6 := p2;p2 := 0;shet := shet + 1; end;
4: begin p6 := p2;p2 := 0;shet := shet + 1; end;
6: begin p9 := p2;p2 := 0;shet := shet + 1; end;
end; end;
2:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p2;p2 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так!’); end;
4: begin p4 := p2;p2 := 0;shet := shet + 1; end;
5: begin writeln(‘Нельзя так!’); end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p2;p2 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так!’); end;
4: begin p6 := p2;p2 := 0;shet := shet + 1; end;
5: begin writeln(‘Нельзя так!’); end;
end; end;
3:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p5;p5 := 0;shet := shet + 1; end;
4: begin p4 := p5;p5 := 0;shet := shet + 1; end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p5;p5 := 0;shet := shet + 1; end;
4: begin p6 := p5;p5 := 0;shet := shet + 1; end;
end; end;
4:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p2;p2 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так’); end;
2: begin writeln(‘Нельзя так’); end;
3: begin writeln(‘Нельзя так’); end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p2;p2 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так’); end;
2: begin writeln(‘Нельзя так’); end;
3: begin writeln(‘Нельзя так’); end;
end; end;
5:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p5;p5 := 0;shet := shet + 1; end;
2: begin p4 := p5;p5 := 0;shet := shet + 1; end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p5;p5 := 0;shet := shet + 1; end;
2: begin p6 := p5;p5 := 0;shet := shet + 1; end;
end; end;
6:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p5;p5 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так’); end;
end;
if (vod2 = 3) then
case st3 of
0: begin p3 := p5;p5 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так’); end;
end; end;
7:
begin
if (vod2 = 1) then begin p1 := p8;p8 := 0;shet := shet + 1; end;if (vod2 = 3) then begin p3 := p8;p8 := 0;shet := shet + 1; end;
end;end; end;
3:
begin
case st3 of
1:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p3;p3 := 0;shet := shet + 1; end;
2: begin p4 := p3;p3 := 0; shet := shet + 1; end;
4: begin p4 := p3;p3 := 0;shet := shet + 1; end;
6: begin p7 := p3;p3 := 0;shet := shet + 1; end;
end;
if (vod2 = 2) then
case st2 of
0: begin p2 := p3;p3 := 0;shet := shet + 1; end;
2: begin p5 := p3;p3 := 0; shet := shet + 1; end;
4: begin p5 := p3;p3 := 0;shet := shet + 1; end;
6: begin p8 := p3;p3 := 0;shet := shet + 1; end;
end; end;
2:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p3;p3 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так!’); end;
4: begin p4 := p3;p3 := 0;shet := shet + 1; end;
5: begin writeln(‘Нельзя так!’); end;
end;
if (vod2 = 2) then
case st2 of
0: begin p2 := p3;p3 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так!’); end;
4: begin p5 := p3;p3 := 0;shet := shet + 1; end;
5: begin writeln(‘Нельзя так!’); end;
end; end;
3:
begin
if (vod1 = 1) then
case st1 of
0: begin p1 := p6;p6 := 0;shet := shet + 1; end;
4: begin p4 := p6;p6 := 0;shet := shet + 1; end;
end;
if (vod2 = 2) then
case st2 of
0: begin p2 := p6;p6 := 0;shet := shet + 1; end;
4: begin p5 := p6;p6 := 0;shet := shet + 1; end;
end; end;
4:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p3;p3 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так’); end;
2: begin writeln(‘Нельзя так’); end;
3: begin writeln(‘Нельзя так’); end;
end;
if (vod2 = 2) then
case st2 of
0: begin p2 := p3;p3 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так’); end;
2: begin writeln(‘Нельзя так’); end;
3: begin writeln(‘Нельзя так’); end;
end; end;
5:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p6;p6 := 0;shet := shet + 1; end;
2: begin p4 := p6;p6 := 0;shet := shet + 1; end;
end;
if (vod2 = 2) then
case st2 of
0: begin p2 := p6;p6 := 0;shet := shet + 1; end;
2: begin p5 := p6;p6 := 0;shet := shet + 1; end;
end; end;
6:
begin
if (vod2 = 1) then
case st1 of
0: begin p1 := p6;p6 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так’); end;
end;
if (vod2 = 2) then
case st2 of
0: begin p2 := p6;p6 := 0;shet := shet + 1; end;
1: begin writeln(‘Нельзя так’); end;
end; end;
end;

end;
end;
if p1 = 1 then ris1 := ‘ () ‘;
if p2 = 1 then ris2 := ‘ () ‘;
if p3 = 1 then ris3 := ‘ () ‘;
if p4 = 1 then ris4 := ‘ () ‘;
if p5 = 1 then ris5 := ‘ () ‘;
if p6 = 1 then ris6 := ‘ () ‘;
if p7 = 1 then ris7 := ‘ () ‘;
if p8 = 1 then ris8 := ‘ () ‘;
if p9 = 1 then ris9 := ‘ () ‘;

if p1 = 2 then ris1 := ‘ (00) ‘;
if p2 = 2 then ris2 := ‘ (00) ‘;
if p3 = 2 then ris3 := ‘ (00) ‘;
if p4 = 2 then ris4 := ‘ (00) ‘;
if p5 = 2 then ris5 := ‘ (00) ‘;
if p6 = 2 then ris6 := ‘ (00) ‘;

if p1 = 4 then ris1 := ‘(0000)’;
if p2 = 4 then ris2 := ‘(0000)’;
if p3 = 4 then ris3 := ‘(0000)’;

if p1 = 0 then ris1 := ‘__|__ ‘;
if p2 = 0 then ris2 := ‘__|__ ‘;
if p3 = 0 then ris3 := ‘__|__ ‘;
if p4 = 0 then ris4 := ‘ | ‘;
if p5 = 0 then ris5 := ‘ | ‘;
if p6 = 0 then ris6 := ‘ | ‘;
if p7 = 0 then ris7 := ‘ | ‘;
if p8 = 0 then ris8 := ‘ | ‘;
if p9 = 0 then ris9 := ‘ | ‘;

writeln(ris7, ris8, ris9);
writeln(ris4, ris5, ris6);
writeln(ris1, ris2, ris3);
writeln(»);
st3 := p9 + p6 + p3;
if st3 = 7 then
begin
writeln(‘ВЫ ПОБЕДИТЕЛЬ. ‘) ;
shet1 := shet mod 10;
case shet1 of
1:hod:=’ ход.’;
2, 3, 4: hod:=’ хода.’;
5, 6, 7, 8, 9: hod:=’ ходов.’;
end;
writeln(‘Было сделано ‘, shet,hod);
shet1 := pam mod 10;
case shet1 of
1:hod:=’ ход.’;
2, 3, 4: hod:=’ хода.’;
end;
if pam>0 then
begin
if pamshet then writeln(‘В этот раз было лучше.До этого было ‘,pam,hod);
if pam=shet then writeln(‘Число ходов не отличается от того что было.’);
end;
pam:=shet;
ind := 2;
writeln(‘Хотите сыграть еще раз?’);
writeln(‘Да-1’) ;
writeln(‘Нет-2’ );
readln(ind2);
end;
end;
end;
end.

Clrscr в паскале что это

Язык программирования Turbo Pascal является развитием языка Pascal, разработанного Никлаусом Виртом в 1969-71 годах, для обучения структурному программированию. Фирма Borland International, существенно расширила алгоритмические средства языка, создала удобную среду программирования и высокоскоростной компилятор.
Turbo Pascal разрабатывался под операционную систему ДОС (Дисковая Операционная Система), поэтому он работает только в текстовом режиме. Среда разработки Turbo Pascal (версия 7) представляет из себя текстовый редактор и средства отладки и компиляции программы. Для переключения редактора из оконного в полноэкранный режим и обратно следует нажать одновременно клавиши Alt + Enter.

Программа на Pascal пишется в текстовом редакторе по определённым правилам. Текст программы проверяется редактором кода. Зарезервированные слова языка и определённые синтаксические конструкции выделяются цветом, что создаёт определённые удобства.

Линейный алгоритм. Типы числовых данных. Функции ввода — вывода.
  • uses crt; — Выражение: Использовать модуль CRT. В начале программы, обычно, пишется директива uses и затем, через запятую, перечисляются модули содержащие набор необходимых функций для работы программы. CRT — модуль поддержки монитора и клавиатуры. (Важное замечание. Регистр букв текста программы не имеет значения. Так, например, можно написать uses crt; или Uses CRT; — программа будет работать и не воспримет это как ошибку). Любое выражение на Pascal должно заканчиваться знаком «точка с запятой».
  • var — (сокращённое от variable — переменная) объявления блока переменных. После команды var точка с запятой не ставится.
  • x, y, z1, z2, z3, z4 : real; — перечисляем через запятую переменные необходимые для решения задачи; x и y — вводимые данные для вычислений; z1 . z4 — переменные для хранения результатов вычислений. Двоеточие и real означает, что все перечисленные переменные объявлены как тип данных — число с плавающей запятой.
    При программировании используются различные типы данных. Ниже представлены числовые типы данных:


Если компилятор обнаружит ошибку, то появится соответствующее сообщение, а курсор будет установлен в строку с ошибкой.


В нашем случае строка z4 = x / y; — должно быть z4 := x / y;
Для запуска программы на исполнение, следует нажать комбинацию клавиш Ctrl и F9. В программе следует ввести значение х и нажать Enter, затем ввести значение у и опять нажать Enter. Компьютер произведёт необходимые вычисления и выведет значения на экран, но мы, скорее всего, ничего не увидим, потому что выполнение программы закончится и произойдёт возврат в редактор. Для просмотра полученных результатов следует нажать одновременно Alt и F5.


То, что мы видим на экране не совсем удобно для понимания. Лучше будет, если результаты отображать не экспоненциальном виде, а в нормальном, десятичном.
Так же, пользователь программы вынужден догадываться в какой строке результатов сложение, в какой умножение и так далее. Для исправления ситуации изменим строки вывода результатов на экран:
writeln(‘X + Y = ‘, z1:0:4);
writeln(‘X — Y = ‘, z2:0:4);
writeln(‘X * Y = ‘, z3:0:4);
writeln(‘X / Y = ‘, z4:0:4);
Рассмотрим любую из изменённых строк, например writeln(‘X / Y = ‘, z4:0:4); Функция вывода writeln в качестве аргумента (в нашем случае) принимает два значения. Аргументы друг от друга отделяются запятой.
Первое значение: ‘X / Y = ‘ — надпись которая будет выводиться на экран, она должна быть заключена в апострофы. Второе значение — число z4. Для придания числу десятичной формы отображения, оно отформатировано по следующей схеме: двоеточие — число знаков до запятой, двоеточие — число знаков после запятой. Если число знаков до запятой неизвестно, то лучше поставить ноль.
Усовершенствованная программа принимает удобочитаемый вид:


До оператора end можно ввести строку readln;, тогда программа не будет завершаться сразу после выполнения, а будет ожидать нажатия клавиши Enter. Для сохранения готовой программы следует нажать F2 и сохранить файл с именем, например, calc.pas.

Логические операторы. Символьные переменные.

При выполнении написанной программы могут возникнуть непредвиденные обстоятельства, а именно, если пользователь программы вторым числом введёт значение 0 (нуль). Как известно, деление на 0 запрещено и при выполнении программы компьютер выдаст такое сообщение:


Что бы избежать таких ситуаций, программист должен предусмотреть в программе некоторую защиту.
Самое простое решение, в нашем случае, при значении Y равном нулю, перейти к началу программы, что бы пользователь ввёл другие значения. Перечислим те действия, которые должна выполнить программа:
— если Y равно 0 то перейти к метке в начале программы, иначе (Y не равен 0) выполнить математические действия.
На языке Pascal это будет выглядеть так: if y = 0 then goto label1 else .
Эта запись означает: (if) если y = 0 (y = 0 — логическое выражение) then (то) goto (перейти к) label1 (имя метки) else (иначе) . Оператор else можно не использовать если дальнейшее выполнение программы подразумевается при невыполнении условия логического выражения. Метка label1 придуманное имя метки, поэтому мы должны его объявить до начала программы, сразу за разделом объявления переменных. Сама метка устанавливается в том месте программы, куда должен осуществиться переход. После имени метки ставится знак двоеточие. Изменённая таким образом программа показана на рисунке:


Такая программа имеет более «товарный» вид и свойства.
Рассмотрим подробно какие конструкции можно создавать на языке Pascal с использованием логических операторов. В общем виде логическая запись выглядит так:
if (условие) then (действие1) else (действие2);
или
if (условие) then (действие);
Сначала рассмотрим запись условий:

Условие. Описание
A = B А равно В
A <> B А не равно В
A <= B А меньше либо равно В
A >= B А больше либо равно В
Логические связки условий
OR Логическое ИЛИ
AND Логическое И
NOT Логическое НЕТ (Отрицание)

Логические связки записываются между логическими условиями, сами условия берутся в скобки, например: if (a = b) and (z <= 0) then .
Следует иметь в виду что при выполнении условия, после оператора then может быть только одно действие. Если действий по условию программы должно быть больше, то все действия должны быть взяты в операторные скобки begin . end.
Например:
if a = b then
begin
writeln(‘Error!’);
y:= 22;
goto label1;
end else .
Аналогичным образом несколько действий записывается после оператора else.
Написанная нами программа «калькулятор» имеет один существенный недостаток, если нужно произвести несколько вычислений, приходится перезапускать программу на выполнение. Изменим нашу программу так, что бы она завершалась с согласия пользователя. Пользователю следует предложить нажать клавишу Y для продолжения работы с программой, или любую другую клавишу для завершения работы.
Заменим последний в программе оператор readln; на такие строки:
write(‘Repeat — Y / End — other key’); <Выводим сообщение для пользователя>
readln(sym); <Считываем символ с клавиатуры>
if (sym = ‘Y’) or (sym = ‘y’) then goto label1; <Если введён символ Y или y , то переходим к началу программы>
В нашей программе появилась новая переменная — sym (вымышленное имя, которое придумываем мы сами. Имя должно начинаться с буквы, а затем могут следовать цифры или буквы). Эта переменная имеет тип одиночного символа и мы должны её объявить в разделе переменных. Символьные переменные имеют тип char.Символьные переменные при использовании в программе следует заключать в апострофы.
Добавим эту переменную в разделе var:
var
sym : char;
.
Запустим программу на исполнение, и убедимся, что программа написана правильно:

В паскале есть ещё один тип символьных переменных, это тип string— строка состоящая максимум из 255 символов, но об этом в следующих разделах.

Разрабатывая нашу программу, мы нарушили один из основных принципов структурного программирования — в программе не должно быть переходов из одной части программы в другую. Поэтому при структурном программировании нужно стараться не использовать оператор перехода goto.

1 . The CRT unit.

The ReadKey function reads 1 key from the keyboard buffer, and returns this. If an extended or function key has been pressed, then the zero ASCII code is returned. You can then read the scan code of the key with a second ReadKey call. Remark. Key mappings under Linux can cause the wrong key to be reported by ReadKey, so caution is needed when using ReadKey.

Errors None. See also KeyPressed

1 . 2 . 17 Sound

1 . 2 . 18 TextBackground

TextBackground sets the background color to CL . CL can be one of the predefined color constants.

1 . 2 . 19 TextColor

TextColor sets the foreground color to CL . CL can be one of the predefined color constants.

1 . 2 . 20 TextMode

This procedure is only implemented on DOS . Errors None. See also Window

1 . 2 . 21 WhereX

WhereX returns the current X-coordinate of the cursor, relative to the current window. The origin is (1,1) , in the upper-left corner of the window.

1 . 2 . 22 WhereY

WhereY returns the current Y-coordinate of the cursor, relative to the current window. The origin is (1,1) , in the upper-left corner of the window.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *