Очищает активное окно и устанавливает курсор в левый верхний угол окна.
Объявление
Режим
Windows, Real, Protected
Замечания
Все символы на экране становятся пробелами, причем используются текущие текстовые атрибуты. Таким образом, если цвет фона, установленный с помощью процедуры TextBackground , не равен Black , то для всех символов на экране цвет фона устанавливается равным текущему. Это также относится к символам, очищаемым процедурами ClrEol , InsLine и DelLine , а также, ко всем пустым строкам, полученным при прокрутке экрана.
Процедура ClrScr является окно-относительной. Следующий отрывок программы определяет текстовое окно и очищает его.
Не всё, что изначально кажется простым,
окажется таковым в конце.
В прошлый раз мы написали программу, которая здоровается с вами, выводя на экран приветственное сообщение «Привет!». Однако переключаясь в окно, где выводятся результаты выполнения программы, мы видели не только сообщение «Привет!», но и целый ряд служебных сообщений, которые Free Pascal выводит во время своего запуска.
Как вывести созданую программу в pascal ABC любую папку
Хотелось бы, чтобы наша программа перед выводом каких-либо сообщений очищала экран. Как это сделать? Очень просто: нужно добавить в программу вызов команды (процедуры) ClrScr (сокращение от английского «clear screen» — «очистить экран»).
Если ваша предыдущая программа hello.pas закрыта, то откройте её, нажав клавишу F3 (File | Open). Напоминаю, что все наши программы мы сохраняем в папке «C:FPC3.0.0work».
Чтобы не затереть файл hello.pas нашими модификациями, сохраним открытый файл hello.pas под другим именем. Откройте меню «File» (Alt + F) и нажмите «Save as. ». В поле «Name» напечатайте helloClr.pas ( Clr — сокр. от «clear» — очищать) и нажмите «OK», чтобы сохранить программу под новым именем. После этого модифицируйте текст программы так, чтобы он соответствовал нижеприведенному варианту:
Запустите программу, нажав Ctrl + F9.
Упс! Программа не запускается. Что говорит компилятор? (Напомню, что компилятор — Free Pascal — переводит нашу программу с языка Паскаль в машинные инструкции, понятные компьютеру). Компилятор сообщает, что у нас 3 ошибки. Одна с пометкой Error и две с пометкой Fatal.
Но мы, глядя на текст сообщений, уже видим, что ошибка на самом деле ровно одна — Error: Identifier not found «ClrScr» — Ошибка: идентификатор «ClrScr» не найден.
Идентификатор — это имя. Компилятор не понимает, что такое ClrScr . Вспомним, в прошлый раз подобная ошибка у нас была, когда мы пропустили букву « e» в слове Writeln . Компилятор не знал, что такое Writln и из-за этого ругался. Может быть, мы допустили ошибку в названии процедуры (команды) ClrScr ? Смотрим внимательно. Нет ошибок? И тем не менее компилятор не понимает, что такое ClrScr .
Как скачать и установить программу pascalABC на windows
Да, так и есть. Компилятор не знает, что такое ClrScr .
Но почему тогда он знает Writeln и не знает ClrScr ? Дело в том, что процедура (команда) Writeln относится к базовым процедурам Паскаля, а вот алгоритм работы процедуры ClrScr описан отдельно. Отдельно — означает в отдельном модуле (файле). И для того, чтобы компилятор Free Pascal знал, как работает эта процедура, вы должны указать в своей программе, что используете модуль Crt . Так называется модуль, в котором описан алгоритм процедуры ClrScr . Или как еще говорят: реализована процедура ClrScr .
Добавим к нашей программе недостающую строку « uses Crt; »:
Uses — по-английски означает «использует». Модуль Crt — тот самый модуль, в котором реализована процедура ClrScr .
Теперь мы можем запустить нашу программу (Ctrl + F9):
Что ж, на этот раз наша программа запустилась, и даже очистился экран, вот только вместо « Привет! » мы видим на экране какую-то белиберду. Т. е. Free Pascal не отображает русские буквы (кириллицу), если подключен модуль Crt и используется процедура ClrScr (эксперимент показывает, что даже если удалить строку с вызовом процедуры ClrScr , проблема с отображением кириллицы все равно остается).
Открываем браузер, и в поисковой строке гугла вбиваем «free pascal clrscr не отображает русские буквы»:
Первая же ссылка приводит нас на форум, где мы находим решение:
Чтобы исправить проблему с отображением русских букв (кириллицы), сохраняем нашу программу (F2 — File | Save), закрываем Free Pascal (Alt + X — File | Exit), и щелкаем правой кнопкой мыши на ярлыке запуска Free Pascal, расположенном на нашем Рабочем столе.
Открываем пункт «Свойства» и переходим на закладку «Шрифт».
Возвращаем «Точечные шрифты», размер выставляем «10 x 18». Нажимаем «ОК».
И снова запускаем Free Pascal:
Как видите, вид окна поменялся.
Запускаем нашу программу (Ctrl + F9), нажимаем Alt + F5, чтобы переключиться в окно результатов работы программы, и видим результат:
Экран очищен, на экран выведено сообщение « Привет! ».
✔ Мы узнали как правильно закрывать Free Pascal (раньше вы, скорее всего, просто нажимали на крестик в правом верхнем углу окна):
- Alt + X (File | Exit) — закрыть Free Pascal.
✔ Дополнили нашу программу «Привет!» очисткой экрана:
✔ Узнали новое ключевое слово языка Паскаль:
- uses — ключевое слово, после которого перечисляются все модули, используемые нами в программе.
✔ Познакомились с еще одной процедурой:
- ClrScr — очищает экран от текста.
✔ Узнали о существовании модуля Crt .
✔ И наконец, мы впервые столкнулись с проблемой на уровне инструмента (Free Pascal): когда после подключения модуля Crt у нас перестали отображаться русские буквы (кириллица) в окне результатов. Мы не разобрались, почему это происходит, т. к. причины скрыты внутри модуля Crt . Можно ли выяснить причины, по которым у нас возникла проблема с кириллицей? Чисто теоретически, да. Но для этого нам бы понадобились знания, которые выходят за рамки наших уроков. Поэтому мы воспользовались обходным решением (workaround) — поменяли используемый в программе шрифт Lucida Console на точечный шрифт.
И вот здесь я хочу остановиться подробнее
При реализации нашей программы у нас возникла проблема с кириллицей, которую мы решили. Казалось бы — вопрос снят: экран очищается, сообщение отображается. Но обратите внимание, что мы отказались от использования шрифта Lucida Console, который смотрится гораздо опрятнее точечного шрифта. Т. е. наше решение (или правильнее, обходное решение) далеко от идеального.
Приведу аналогию. Представьте себе, что вы — работник дорожной службы, которому поручили на такой-то улице нарисовать «зебру» и поставить соответствующие знаки пешеходного перехода. Вы приехали на заданную улицу и обнаружили, что в том месте, где вам надо рисовать «зебру», из-под асфальта бьет фонтан воды, и образовалась лужа. Какие у вас есть варианты действий:
- Выяснить откуда вода (скорее всего, прорвало трубу), устранить течь, высушить лужу и уже после этого рисовать «зебру».
- Нарисовать «зебру» 50 метрами ниже (или выше) — там, где нет воды, и где дорожные условия позволяют это сделать.
Так вот, второй вариант — это и есть обходное решение (workaround). Оно может иметь серьезные недостатки. Например, школа находится именно там, где и надо было изначально рисовать «зебру», и если вы нарисуете её ниже (выше), то далеко не все школьники дойдут до этой зебры, а значит, на изначальном участке дороги будет повышенная аварийность из-за школьников, перебегающих дорогу в неположенном месте.
А что нужно, чтобы пойти по пути первого варианта? Другие компетенции. Если вы не владеете нужными навыками (и инструментами) — у вас нет экскаватора, чтобы добраться до трубопровода, сварочного аппарата и т. д. — то вам нужно ждать, когда другие люди решат возникшую проблему, прежде чем вы сможете нарисовать «зебру» именно там, где вам надо.
В нашем примере это означает, что вы должны написать письмо разработчикам Free Pascal, описать возникшую проблему (некорректное отображение кириллицы после подключения модуля Crt ), и ждать, когда разработчики устранят эту ошибку в модуле Crt. На всё это может уйти неопределенное время. Или разработчикам Free Pascal будет вообще не до этой проблемы, и ваша «лужа» так никуда и не денется.
Другой сценарий: обладая нужными навыками, устранить самому эту проблему в модуле Crt. А для этого нужно знать, что такое дизассемблирование, обратная разработка (reverse engineering) и т. д.
Идеальный вариант — это, конечно, когда лужу устраняют те, кто за нее отвечают. Т. е. разработчики Free Pascal. Но мы живем не в идеальном мире, и поэтому нам иногда приходится использовать обходные решения.
И последнее: когда ваши программы перестанут вмещаться на одну страницу экрана, и будут занимать сотни, а то и больше, страниц, у вас могут тоже возникать подобные ситуации. Когда что-то идет не так и нужно найти причины проблемы, а потом её решение.
И вот тут может возникнуть соблазн «передвинуть «зебру» на 50 метров выше или ниже» (использовать обходное решение) вместо того, чтобы разбираться, почему возникла проблема и как её устранить. В случае, когда речь идет о вашей зоне ответственности, такой подход, в целом, недопустим (!). Вы должны всегда понимать, что и почему происходит в вашей программе. Если оказывается, что программа ведет себя не так, как вы это задумывали, надо разбираться, почему она себя так ведет (откуда лужа?), а не цепляться за первое попавшееся решение, которое вроде бы «решает» вашу проблему.
Задания
- Что будет выведено на экране после запуска следующей программы?
- А после запуска такой программы?
- Исправьте все ошибки в следующей программе, и запустите исправленный вариант:
«illegal character» переводится как «некорректный символ».
Задания повышенной сложности
- Напишите программу, которая выведет на чистый экран текст программы hello.pas (см. урок 1).
1) чтобы вывести на экран пустую строку, используйте команду « Writeln; » (без скобок и одинарных кавычек);
2) для отступов используйте по 3 пробела;
3) чтобы вывести одинарные кавычки на экран, используйте по 2 одинарных кавычки, например: « Writeln( »’Привет»’ ); » напечатает на экране не просто Привет , а ‘Привет’ .
Непонятно почему в скобках по 3 кавычки? Смотрите: самая левая и самая правая одинарные кавычки обрамляют тот текст, который мы хотим вывести на экран, например:
Writeln( ‘Кафе Огонёк’ );
А что делать, если нам нужно в сообщении вывести одинарные кавычки? Ведь они задействованы в качестве служебных символов, по которым Free Pascal определяет, где наша строка в программе начинается, а где заканчивается. Вот поэтому Free Pascal говорит: хочешь вывести в своей строке одну одинарную кавычку, поставь их две (!) друг за дружкой, и я буду знать, что это не конец строки, а всего лишь обычная одинарная кавычка, которую ты хочешь напечатать.
Например, вот так:
Writeln( ‘Кафе »Огонек» открывается сегодня’ );
Команда выше выведет на экран сообщение:
Кафе ‘Огонек’ открывается сегодня
- Подумайте, легко ли написать программу, которая выведет на экран саму себя, т. е. свой собственный текст (такая программа называется куайн — по-английски, quine)?
В этом уроке как и ясно из названия я раскажу вам о функция ClrScr.
Во первых нам нужно подключить модуль Crt для этого нужно написать строку uses Crtl; перед var
Затем использовать в нужном нам месте строку ClrScr; для отчистки экрана.
мне программы понравились!Хочу чтобы меня автор добавил в скайп и обьяснил,ну тоесть так скажем научил самому делать такие програмки!скайп nazific
хорошая работа.
все уроки коротко и предельно ясно описаны.
если поупражняться после чтения, то язык (необходимые основы) дня за 2 изучитьзапомнить можно.
самому же хорошо помогло его вспомнить
Помогите пожалуйста. В чём проблема?
uses CRT;
var
x1,x2,: integer;
x: integer;
begin
clrscr;
Write(‘Введите х1’);
Read(x1);
Write(‘Введите х2’);
Read(x2);
x:=x1*x2;
writeLn (‘Число равно x= ‘,x)
end.
Программа после ввода двух чисел сворачивается. Тоесть ответ не показывается.
как исправить
Перед последним end напиши readln;
Это ввод, но не в переменную, а в пустоту.
То есть достаточно нажать Enter и программа завершится.
А вообще, с такими вопросами добро пожаловать на наш форум.
Спасибо обязательно зарегестрируюсь.
и последний вопрос напишу сюда же.
То что вы сказали. срабатывает только в том случае если это написать дважды
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.
Var a, b, c, d :longint;
d1, d2 :Real;
begin
WriteLn(‘Введите числитель a’);
ReadLn(a);
WriteLn(‘Введите знаменатель b’);
ReadLn(b);
WriteLn(‘Введите числитель c’);
ReadLn(c);
WriteLn(‘Введите знаменатель d’);
ReadLn(d);
D1:=(a/b);
D2:=(c/d);
WriteLn(‘Ответ’,D1+D2);
end.
Посмотри у меня в разделе Pascal Вычисление дробей.
Никита, я бы тебе во всяком случае порекомендовал в конце написать либо оператор readkey; или repeat untill keypressed;
лучше сделай так
uses CRT;
var
x1,x2,x: integer;
begin
clrscr;
Write(‘Введите х1’);
Read(x1);
Write(‘Введите х2’);
Read(x2);
x:=x1*x2;
writeLn (‘Число равно x= ‘,x)
readkey; (или repeat until keypressed)
end.
Конечно, «крутому» программисту на си шарпе, изучение языка паскаль может показаться «извращением». но во первых — не у всех математические мозги — людям с гуманитарным складом ума бывает намного легче понять тот же паскаль или бейсик, чем Java или си шарп, да и синтаксис языка паскаль гораздо легче, чем у си шарпа или си++, так как он был придуман изначально именно для обучения студентов и школьников.
так что как говорится — каждому свое.
уважаемый, позвольте спросить, а сами вы с чего начинали.
Случайно не с ассемблера ?
Stertor, ты сейчас противоречишь самому себе. В теме «О языке программирования Visual Basic» сам писал следующее:
Stertor[11.01.2013 19:18]
Я сейчас пишу только на делфях. Сначала он мне казался очень сложным(много разных типов, констант, сложный синтаксис) но сейчас я понял, как ошибался. Делфи — это самое простое, что только может быть в программировании.
Согласен. Хотя и Визуал Басик 6 для программирования неплох, видел несколько профессионально сделанных программ на этом языке, среди которых был какой-то графический редактор. Правда к сожалению, Мелкософт его больше не поддерживает, но с другой стороны есть же VB.Net, который по-возможностям практически сравним с Delphi и C Sharp.
А что думаешь насчет C sharp. Стоит ли с него начинать ?
насчет бейсика — имелась в виду старая версия 6.0 или же vb.net ?
Вот программа, которая меняет системную дату и время. никак не могу сделать так, чтобы ClrScr заработала. помогите кто в этом шарит. очень надо.. Программа написано на TP7.1
uses Crt;
Uses Dos;
CONST
days:ARRAY [0..6] of string [11] = (‘Voskr.’, ‘Ponedel.’, ‘Vtornik’, ‘Sreda’, ‘4etverg’, ‘Pyatnica’, ‘Subbota’);
VAR
year, month, day, dayofweek : WORD;
VAR hour, minute, second, hund : WORD;
BEGIN
Writeln (‘_________________________________________’);
Writeln (‘————- ————— ————-‘) ;
ClrScr;
Write(‘Cleared Screen!’);
PROCEDURE GetDate;
BEGIN
GetDate (year, month, day, dayofweek);
Writeln (‘Segodnya: ‘, days[dayofwee k], ‘,’, day,’/’, month,’/’,year);
Writeln (‘——————————————‘) ;
END;
PROCEDURE SetDate;
BEGIN
Writeln(‘Vvedit e daty: ‘);
Readln(day, month, year);
SetDate (year, month, day);
Writeln (‘_________________________________________’);
Writeln (‘——————————————‘) ;
END;
PROCEDURE GetTime;
BEGIN
GetTime (hour, minute, second, hund);
Writeln (‘Sey4as: ‘, hour,’:’, minute,’:’, second,’:’, hund);
Writeln (‘————- ————— ————-‘) ;
END;
PROCEDURE SetTime;
BEGIN
Writeln (‘Vvedite vremya’);
Readln(hour, minute, second, hund);
SetTime(hour, minute, second, hund);
END;
BEGIN
GetDate;
SetDate;
GetTime;
SetTime;
Get_Time;
Writeln (‘OK!’);
Writeln;
Writeln (‘Najmite Enter dlya vihoda . ‘);
Readln;
End.
Источник: hololenses.ru
Изучение интегрированной среды Pascal ABC
Найти в двумерном массиве первый максимальный элемент и вывести его координаты.
programpr; type masiv = array[1..15,1..15] ofinteger; vari,max,j,n1,n2,p1,p2:integer; mas:masiv; begin writeln(‘Введите количество строк и столбцов ‘); readln(n2,n1); fori:=1 ton2 do forj:=1 ton1 do begin writeln(‘Введите Mas[‘,i,’,’,j,’]’); readln(mas[i,j]); end; max:=mas[1,1]; p1:=1; p2:=1; fori:=1 ton2 do forj:=2 ton1 do ifmas[i,j]>max then begin max:=mas[i,j]; p1:=i; p2:=j; end; writeln(‘Mas[‘,p1,’,’,p2,’] = ‘,max); end. Введите количество строк и столбцов 3 3 Введите Mas[1,1] Введите Mas[1,2] Введите Mas[1,3] Введите Mas[2,1] Введите Mas[2,2] Введите Mas[2,3] Введите Mas[3,1] Введите Mas[3,2] Введите Mas[3,3] Mas[2,1] = 6 |
Цель работы:
— получить навыки работы в интегрированной средеPascal ABC;
— изучить команды редактирования;
— ознакомиться с пунктами главного меню.
Состав интегрированной среды:
— имеет развитую систему меню (главное и локальное);
— обладает много файловым системным редактором (можно осуществлять обмен информации между отдельными окнами через промежуточный буфер).
1. Для загрузки интегрированной среды Pascal ABC запустите файл
На экране отобразится следующее окно
2. Создайте новый файл для ввода текста программы: меню Файл à пункт Новый (Ctrl+N) или кнопка на панели инструментов Новый файл.
3. В окне для ввода текста программы наберите свою программу. После заголовка программы в комментарии напишите условие задания.
4. Запустите программу на выполнение: меню Программа àпункт Выполнить или кнопка Выполнить на панели инструментов
5. Введите исходные данные для выполнения вашей программы
6. Для отладки программы воспользуйтесь пунктами меню Программа или соответствующими пунктами панели инструментов.
Для проверки правильности работы программы добавьте в окно отладки переменные или выражения, значения которых хотите контролировать.
Для пошагового выполнения программы без захода в подпрограммы нажимайте клавишу F8 или .
Для пошагового выполнения программы с заходом в подпрограмму нажимайте клавишу F7 или . Пошаговую отладку программы можно начать с любого места программ, для чего необходимо установить курсор в то место программы с которого хотите начать отладку и нажать F4 или
.
7. Сохраните программу: меню Файл àпункт Сохранить как àукажите место сохранения файла и имя файла.
Федеральное государственное автономное образовательное учреждение
высшего профессионального образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
Факультет среднего профессионального образования
Отчеты о практических (лабораторных) работах
Источник: studopedia.su
Лабораторная работа № 1.» Программирование вычислений. Знакомство со средой программирования»
Лабораторная работа по информатике по программированию вычислений на Pascal.Знакомство со средой программирования.Программа на языке Pascal включает: заголовок программы (Program), раздел описания используемых модулей (Uses), раздел описания меток (Label), раздел описания констант (Const), раздел описания типов данных (Type), раздел описания переменных (Var), раздел описания процедур (Procedure), раздел описания функций (Function), раздел операторов (Begin…End.). К стандартным типам данных в языке Pascal относятся: целочисленный тип integer (целые числа), веществен-ный тип real (действительные числа), логический тип boolean (логические выражения), символьный тип char (отдельные символы), строковый тип string (строки символов). В языке Pascal используются следующие операторы (управляющие инструкции): составной оператор begin…end (начало…конец), оператор присваивания …:=… (…присвоить…), операторы ввода read(…) (считывать) и readln(…) (считывать до новой строки), операторы вывода write(…) (записывать) и writeln(…) (записывать до новой строки), оператор безусловного перехода goto… (перейти к…), оператор условного перехода (условный оператор) if…then…else… (если…то…иначе…), оператор варианта (выбора) case…of…else…end (в случае…из…иначе…конец), опе-ратор цикла с предусловием while…do… (пока…делать…), оператор цикла с постусловием repeat…until… (повто-рять…пока…), операторы цикла с параметром for…:=…to…do… (для…от…до…делать…) и for…:=…downto…do… (для…от…вниз до…делать…), оператор присоединения with…do… (с…делать…).
Картинками
Лабораторная работа № 1. Программирование вычислений. Знакомство со средой программирования Элементы языка Pascal Программа на языке Pascal включает: заголовок программы (Program), раздел описания используемых модулей (Uses), раздел описания меток (Label), раздел описания констант (Const), раздел описания типов данных (Type), раздел описания переменных (Var), раздел описания процедур (Procedure), раздел описания функций (Function), раздел операторов (Begin…End.).
К стандартным типам данных в языке Pascal относятся: целочисленный тип integer (целые числа), вещественный real (действительные числа), логический тип char boolean (логические выражения), символьный тип тип (отдельные символы), строковый тип string (строки символов). В языке Pascal используются следующие операторы (управляющие инструкции): составной оператор begin…end (начало…конец), оператор присваивания …:=… (…присвоить…), операторы ввода read(…) (считывать) и readln(…) (считывать до новой строки), операторы вывода write(…) (записывать) и writeln(…) (записывать до новой строки), оператор безусловного перехода goto… (перейти к…), оператор условного перехода (условный оператор) if… case…of…else…end (в случае…из…иначе…конец), then…else… (если…то…иначе…), оператор цикла с предусловием repeat…until… (повторять…пока…), операторы цикла с параметром for…:=…to…do… (для…от…до…делать…) и for…:=…downto…do… (для…от…вниз до…делать…), оператор присоединения with…do… (с…делать…). оператор варианта (выбора) while…do… (пока…делать…), оператор цикла с постусловием Операции и функции в языке Pascal В языке программирования Pascal используются следующие операции: арифметические операции + (сложение); (вычитание); (умножение); / (деление); div (целочисленное деление); mod (остаток от деления); операции сравнения = (равно); <> (не равно); > (больше); < (меньше); >= (больше или равно);
Лабораторная работа № 1.» Программирование вычислений. Знакомство со средой программирования»
Лабораторная работа № 1.» Программирование вычислений. Знакомство со средой программирования»
Лабораторная работа № 1.» Программирование вычислений. Знакомство со средой программирования»
Лабораторная работа № 1.» Программирование вычислений. Знакомство со средой программирования»
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
Источник: znanio.ru