Идём дальше.Oleg_D в вашей книге привидена таблица кодировок ASCII.Написано что от 0-31 это управляющие символы и даны их обозначения.Я запустил такую программку:
Brainenjii писал(а):Oleg_D: не знаю, считается ли это подсказкой, но если судить по книге - то к 24 главе Maxizar'овскую задачку решить вполне себе можно ^_^
Подсказкой не считается Это нам, опытным волкам, все кажется просто.
Добавлено спустя 13 минут 19 секунд:
Paster Fob писал(а):Идём дальше.Oleg_D в вашей книге привидена таблица кодировок ASCII.Написано что от 0-31 это управляющие символы и даны их обозначения.Я запустил такую программку:
var n: integer; begin for n:=0 to 255 do Writeln(n,' ', Char(n)); readln end.
В результате вышло совсем не так как в таблице. Почему так или я опять что-то путаю?Да и кстати почему когда я запускаю эту программу пищит динамик в ПК?
Молодец, Paster Fob! Из Вас выйдет толк. Не верьте дядям на слово, все самому проверять надо. Теперь попробую объяснить. Управляющие коды 0-31 были стандартизованы давно, когда еще не было дисплеев. Тогда они применялись для управления в основном принтерами и пишущими машинками. Сейчас некоторые из них используют нестандартно - для отображения всяких закорючек. Повторяю: это нестандартное применение, далеко не все редакторы текста способны их воспринять! Кстати, символ с кодом 7, называемый BELL (звонок), заставляет пищать ваш системный блок.
А как заставить компилятор вывести стандартные символы? Про сигнал понятно.
Добавлено спустя 1 час 42 минуты 34 секунды: Ну вот опять не задача,получается что я что-то не понял с процедурами и функциями.Задача по книге "Песни о Паскале".Значит так в книге есть программа шифрование и расшифровка строки.Я прочитал,а потом по памяти решил написать эту программку,Сразу же написал главную программу для проверки функций и возникла проблема.Почему после возвращения результата,переменная s всё равно равна первоначальному значению?
const ckey=2; function Crypt(arg:char):char; var x:char; begin Crypt:=char(ord(arg)+ckey); end; function EnCrypt(arg:char):char; var x:char; begin EnCrypt:=char(ord(arg)-ckey); end; var s:char; begin readln(s); writeln(Crypt(s)); writeln(s); writeln(EnCrypt(s)); writeln(s); readln; end.
const ckey=2; procedure Crypt(var arg:char); var x:char; begin arg:=char(ord(arg)+ckey); end; procedure EnCrypt(var arg:char); var x:char; begin arg:=char(ord(arg)-ckey); end; var s:char; begin readln(s); Crypt(s); writeln(s); EnCrypt(s); writeln(s); readln; end.
Получается что результат возвращённый через функцию,далее в программе не используется.Или опять что-то не то?
Paster Fob писал(а):А как заставить компилятор вывести стандартные символы?
Вы хотите вывести то, что указано во второй колонке таблицы? Это всего лишь английские сокращения названий этих управляющих символов, например, LF - Line Feed - прогон строки. Компилятору об этих названиях ничего "не известно", это просто договоренность такая между человеками, - так их называть. Вы можете сделать такую программку сами, - вот Вам еще одно упражнение. Добавлю, что управляющие символы используются по-разному в разных устройствах. Например, в модемах, часть из них служит для управления передачей данных. Вам важно понять пока лишь то, что эти символы не применяют для представления символов текста (об этом будет в следующей главе).
Paster Fob, мне тоже далеко за 20 и я в качестве хобби изучаю (вернее, пытаюсь вспомнить школьный курс) паскаль по книге уважаемого Олега. Хоть Вас давно не было на форуме, позвольте присоединиться.
Подскажите пожалуйста что за ошибка <1.1> Error: Illegal Expression Graph прописан выше в самой програме;
Procedure doroga; var i:integer; begin setcolor(6); line(0,850,1440,850); i:=0; While i<=1440 do begin setcolor(2); line(10+i,850,i,900); i:=i+1; end; end.
Андрей131289 писал(а):Подскажите пожалуйста что за ошибка <1.1> Error: Illegal Expression Graph прописан выше в самой програме;
Procedure doroga; var i:integer; begin setcolor(6); line(0,850,1440,850); i:=0; While i<=1440 do begin setcolor(2); line(10+i,850,i,900); i:=i+1; end; end.
Да. Нужен весь текст. Написанное здесь уже содержит ошибку. Процедура не может заканчиваться точкой.
Спасибо, что посмотрели процедуру! Хорошо, что есть такой форум...Одному тяжело учить. Чуть позже напишу всю програму
Добавлено спустя 1 час 28 минут 47 секунд: Вот вся програма... Жду критики ))
Program Mashunka; uses crt,graph; var detect,mode,i:integer; begin clrscr; initgraph(detect,mode,''); setbkcolor(7); procedure doroga; var i:integer; begin setcolor(6); line(0,850,1440,850); i:=0; While i<=1430 do begin setcolor(2); line(10+i,850,i,900); i:=i+1; end; end; procedure Znak; begin setcolor(0); bar(1280,300,1300,850); setcolr(15); bar(1180,50,1400,300); settextstyle(0,0,3); setcolor(4); outtextxy(1180,175,'START'); end; procedure mashunca; var i:integer; begin i:=10; While i<=750 do begin setcolor(0); circle(90+i,750,100); circle(490+i,750,100); line(190+i,750,390+i,750); line(590+i,750,690+i,750); line(690+i,750,690+i,600); line(690+i,650,40+i,600); line(690+i,600,440+i,450); line(440+i,450,90+i,450); line(440+i,450,440+i,600); line(90+i,450,-10+i,750); line(240+i,450,240+i,600); i:=i+10; end; end; end.
procedure doroga; var i:integer; begin setcolor(6); line(0,850,1440,850); i:=0; While i<=1430 do begin setcolor(2); line(10+i,850,i,900); i:=i+1; end; end;
procedure mashunca; var i:integer; begin i:=10; While i<=750 do begin setcolor(0); circle(90+i,750,100); circle(490+i,750,100); line(190+i,750,390+i,750); line(590+i,750,690+i,750); line(690+i,750,690+i,600); line(690+i,650,40+i,600); line(690+i,600,440+i,450); line(440+i,450,90+i,450); line(440+i,450,440+i,600); line(90+i,450,-10+i,750); line(240+i,450,240+i,600); i:=i+10; end; end;
begin clrscr; initgraph(detect, mode, ''); setbkcolor(7); end.
Спасибо, за коррективы! Но я от Вас еще не отстану... Не запускается графический режим(а точнее запускается, но сразу же завершается работа модуля Graph) Дайте пожалуйста совет. B компиляторе пишет Ranning "c:\fpc\2.4.4\bin\i386-win32\9.exe "
Андрей131289 Надо сделать задержку завершения программы. Например, после того, когда все необходимые рисунки нарисованы, поставить волшебное слово ReadLn.