КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Лекция № 23 основы програмирования на языке qbasic
End. Begin Begin End. Begin End. Begin END. REPEAT BEGIN WRITE(‘ИМЯ ВХОДНОГО ФАЙЛА ’); READLN(NAME); ASSIGN(FROMF, NAME); WRITE(‘ИМЯ ВЫХОДНОГО ФАЙЛА ’); READLN(NAME); ASSIGN(TOF,NAME); RESET(FROMF, 1); {существующий файл} REWRITE(TOF, 1);{новый файл} BLOCKREAD(FROMF, BUF, SIZEOF(BUF), NR); BLOCKWRITE(TOF, BUF, NR, NWR); UNTIL (NR = 0) OR (NWR <> NR); CLOSE(FROMF); CLOSE(TOF); В примере программы при открытии файла без типа в вызове процедуры RESET указана длина записи равная 1. В этом случае при копировании файла не будут записаны лишние символы в новый файл.
Пример 8. Допустим имеем такой файл: dЦHello! Здесь: d - ASCII 100, Ц - ASCII 150, Hello! - строка из 6-ти символов. Организовать чтение из файла с выводом на экран. type R = record A: Byte; C: Array[1..6] of Char; end; var F: File; I: Byte; Rec: R; Result: Word; Assign(F, '1.txt'); { связываем файл с переменной} {$I-} Reset(F, 1); {$I+} if IOResult<>0 then Halt; BlockRead(F, I, Sizeof(I), Result); BlockRead(F, Rec, Sizeof(Rec), Result); Writeln(I); Writeln('Rec values: '); Writeln('A: ', Rec.A); Writeln('S: ', Rec.C); Readln; Close(F); В примере функция SIZEOF принимает в качестве параметра любую переменную и возвращает ее размер в байтах. Размер переменных стандартных типов (Integer, Byte....) можно найти в таблицах типов. Поэтому SIZEOF иногда очень выручает, упрощая работу. Дополнительный параметр процедуры RESULT указывает размер буфера, который используется для передачи данных. Буфер по умолчанию равен 128 байт. Если его явно не указывать, то Паскаль устанавливает это значение. Пример 9. Сформировать данные для записи в файл. uses Crt; type R = record A: Integer; B: Word; end; var F: File; Result: Word; C: Char; I: Integer; S: String; Rec: R; ClrScr; { считываем и задаем исходные данные } Write('Enter CHAR: '); Readln(C); Write('Enter INTEGER: '); Readln(I); Write('Enter STRING: '); Readln(S); Randomize; Rec.A:= Random(1000); Rec.B:= Random(1000); Writeln('Rec.A: ', Rec.A); Writeln('Rec.B: ', Rec.B); Readln; { выполняем действия по записи в файл } Assign(F, '1.txt'); ReWrite(F, 1); BlockWrite(F, C, SizeOf(C)+SizeOf(I)+255+SizeOf(Rec), Result); Close(F); В процедуре BLOCKWRITE использовалось целое выражение в качестве указания размера записываемого буфера. Составлено оно из суммы 3х результатов функции SIZEOF и числа 255, которое является длиной строки S.
Пример11. Использование псевдографики. Это обычные символы, которые имеются в стандартном наборе ASCII. Program Border; uses Crt; Procedure MakeWindow(X, Y, X1, Y1: Byte); Var I: Byte; GotoXY(X, Y); Write(#201); GotoXY(X1, Y); Write(#187); GotoXY(X, Y1); Write(#200); GotoXY(X1, Y1); Write(#188); For I:= X+1 to X1-1 do Begin GotoXY(I, Y); Write(#205);GotoXY(I, Y1); Write(#205); end; For I:= Y+1 to Y1-1 do Begin GotoXY(X, I); Write(#186); GotoXY(X1, I); Write(#186); end; end; var B: Byte; ClrScr; B:= 187; Writeln('201: ', #201); { вывод символа по его коду } Writeln('205: ', chr(205));{ возвращает символ, номер которого в ASCII таблице задан параметром } Writeln('187: ', chr(B)); { } Write('186: ', #186, #13, #10);{ вывод символов #13 (перенос строки) и #10 (возврат каретки) } Write('188: ', #188); {} Write(#$0d,#$0a,'200: ',#200);{ символы с №, который задан числом в 16-й системе: $0d - 13, $0a - 10 } MakeWindow(10, 10, 40, 20);{ построение окошек по заданным координатам } Readln;
Контрольные вопросы 1. Дать определение понятию файловой переменной. 2. Стандартные процедуры и функции обработки данных файла. 3. Формат файловой переменной для текстовых файлов. Перечислить процедуры и функции для работы с текстовыми файлами. 4. Формат файловой переменной для нетипизированных файлов. Перечислить процедуры и функции для работы с файлами без типа. Задание
Вопросы:
1. Конструкции языка. 2. Операторы. 3. Понятие алгоритма линейной структуры. 4. Алгоритмы и программы ветвящейся структуры 5. Алгоритмы и программы циклической структуры 6. Обработка массивов
Литература:
Алфавит TURBO BASIC содержит: · Латинские буквы A-Z, a-z. · Арабские цифры 0,1,2,...,9. · Знаки арифметических действий +(плюс), -(минус), *(умножить), /(разделить), ^(степень). Знаки отношений · < меньше · <= меньше или равно · > больше · >= больше или равно · <> не равно (исключает равенство) · = равно Разделительные знаки пробел ·. точка ·, запятая разделитель для любых целей ·; точка с запятой любых целей ·: двоеточие (разделитель операторов) · ' апостроф комментариев · " кавычки · () круглые скобки (аргумент функций, процедур) · [ ] квадратные скобки (для массивов) Специальные знаки для определения типов: · % целый тип ·! одинарной точности · # двойной точности · & длинный целый в восьмеричной или (&Н) шестнадцатеричной системе · $ символьный ·? замена PRINT
Дата добавления: 2014-01-04; Просмотров: 418; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |