Вопросы - ответы по Pascal.
Вывод двумерного массива в виде таблицы.
Создание файла и запись информации в него.
Обработка ошибок ввода численных значений.
Определение ASCII-кода нажатой клавиши.
Звук через спикер.
Определение даты и времени.
Определение размера диска.
Поиск файлов.
Изменение атрибутов файлов.
Определение версии Dos.
Вывод двумерного массива в виде таблицы.
Все очень просто. Программа имеет такой вид:
var mas:array[1..5,1..5] of integer; {объявление двухмерного массива} i,j:integer; begin {Ввод значений элементов массива} for i:=1 to 5 do for j:=1 to 5 do readln(mas[i,j]); {Вывод значений элементов массива} for i:=1 to 5 do begin for j:=1 to 5 do write(' ',mas[i,j]); writeln; end; end.
Создание файла и запись информации в него.
Результатом работы следующей программы будет созданный текстовый файл test.txt, содержащий строчку "record" . Программа имеет такой вид:
var f: file;{файловая переменная f} begin assign(f,'test.txt');{назначение файловой переменной f имени файла test.txt} rewrite(f);{создание файла и открытие его для записи} writeln(f,'record');{запись информации в файл} close(f);{закрытие файла} end.
Обработка ошибок ввода численных значений.
В приведенном примере программа закончит работу только при правильном вводе значения, т.е. если будет введено целое число.
uses crt; var i:integer; flag:boolean; begin {$I-}{отключаем контроль ошибок ввода вывода} repeat readln(i);{ввод значения} if IoResult=0 then flag:=true {если нет ошибки, то выходим из цикла} else begin gotoxy(wherex,wherey-1);{перевод курсора на строку вверх} delline;{удаляем строку} end; until flag; {$I+}{включаем контроль ошибок ввода вывода} end.
Определение ASCII-кода нажатой клавиши.
Используется функция Ord. Программа закончит работу после нажатия клавиши Esc.
Uses crt; Var ch : char; Begin clrscr; {очистка экрана} repeat ch:=readkey; {ожидание нажатия клавиши} WriteLn('ASCII-код клавиши равен ',ord(ch)); {Вывод ASCII - кода клавиши} until ch=#27; {27 - ASCII - код клавиши Esc} End.
Звук через спикер.
Используется процедура Sound(Hz:word), где Hz - частота звуковых колебаний, и процедура Delay(Ms:Word), где Ms - время задержки (время звучания).
Uses Crt; Begin Sound(600); {включение звука, частота 600Гц} Delay(100); {Задержка 100мс} NoSound; {выключение звука} End.
Определение даты и времени.
Uses Dos; Var Year,Month,Day,DayOfWeek:Word; Hour,Minute,Second,Hund:Word; Begin GetDate(Year,Month,Day,DayOfWeek); { определение даты } Writeln(Day,'.',Month,'.',Year); { выод даты } GetTime(Hour,Minute,Second,Hund); { определение времени } WriteLn(Hour,':',Minute,':',Second,'.',Hund); { вывод времени } End.
Определение размера диска.
Используется функция DiskSize(Drive:Byte):LongInt, где Drive - номер диска. 0 - текущий дисковод, 1 дисковод А, 2 - дисковод В, 3 - диковод С и т.д. При неправильном номере диска функция выдаст значение 1.
Uses Dos; Begin WriteLn('DiskSize = ',DiskSize(0) div 1024 div 1024,' Mb'); { объем диска } WriteLn('DiskFree = ',DiskFree(0) div 1024 div 1024,' Mb'); { объем свободного пространства на диске } End.
Поиск файлов.
Используются процедуры FindFirst и FindNext. В данном примере поиск будет осуществлятся в том каталоге из которого запущена программа, можно указать каталог. Например: С:\*.ехе.
Uses Dos;
Var
S:SearchRec;
Begin
FindFirst('*.exe',AnyFile,S);
While DosError=0 do begin
WriteLn(S.Name);
FindNext(S);
End;
End.
Изменение атрибутов файлов.
Используется процедура SetFAttr(var F;var Attr:Word), где F - файловая переменная и Attr - атрибуты файла.
Uses Dos; Var F:File; Begin Assign(F,'test.txt'); SetFAttr(F,Hidden+ReadOnly);{ присваеваем файлу атрибуты скрытый и только для чтения } End.
Атрибуты файла могут иметь следующие значения:
Hidden - скрытый.
Archive - архивный.
ReadOnly - только для чтения.
SysFile - системный.
Определение версии Dos.
Uses Dos;
Var V:Word; Begin V:=DosVersion; WriteLn('Dos Vesion: ',Lo(V),'.',Hi(V)); End.