Сжатие файлов и программы архиваторы. Служебные программы. Назначение, виды. Выполнение основных операций с файлами в Total Commander, создание архивных файлов. Технология использования антивирусных программ
Вид материала | Документы |
СодержаниеСоздание движущихся изображений |
- Комплекс системных программных средств, реализующих управление файлами, в частности:, 478kb.
- Идея программы 3 Осистеме fat 4 Структура системы файлов fat 5,6, 155.03kb.
- Домашнее задание Требования к домашнему заданию: Необходимо создать несколько текстовых, 158.94kb.
- Файловая система пк, 102.49kb.
- Составить и отладить прикладные программы на алгоритмическом языке Бейсик, размещающиеся, 296.57kb.
- 1. Назначение и функции операционных систем, 6091.11kb.
- Требования к оформлению доклада, 43.56kb.
- Программа norton commander нижнее меню 1 Перемещение файлов Текстовый редактор lexicon, 188.77kb.
- Задача резервирования, 106.65kb.
- Методы борьбы с компьютерными вирусами, 6.43kb.
Создание движущихся изображений
Как нарисовать графический объект вам уже понятно. Но как заставить его двигаться?
Очень просто!
1. Рисуем объект цветом фона.
2. Изменяем координаты.
3. Рисуем объект цветом отличным от цвета фона.
4. Повторяем 1-3 столько раз сколько потребуется.
Пример: Движущийся круг.
REM Движущийся круг
SCREEN 1
x = 1
y = 1
REM цвет фона - 0(черный), цвет рисунка - 1
c = 1
CIRCLE (x, y), 2, c
FOR i = 1 TO 150
REM Рисуем объект цветом фона
c = 0
CIRCLE (x, y), 2, c
REM Изменяем координаты
x = x + 2
y = y + 1
REM Рисуем объект цветом отличным от цвета фона
c = 1
CIRCLE (x, y), 2, c
REM задержка
FOR j = 1 TO 250000
NEXT j
NEXT i
END
Пример: Усложним траекторию движения. Пусть наш шарик прыгает по поверхности, а когда поверхность закончится - упадет вниз.
REM Прыгающий шарик
SCREEN 1
x = 1
y = 100
c = 1
LINE (0, y + 20)-(220, y + 20)
CIRCLE (x, y), 2, c
PAINT (x, y), c, c
FOR i = 1 TO 140
c = 0
CIRCLE (x, y), 2, c
PAINT (x, y), c, c
c = 1
x = x + 2
IF i < 115 THEN
y = y + 10 * COS(.5 * i)
ELSE
y = y + 4
SOUND 200, 1
END IF
CIRCLE (x, y), 2, c
PAINT (x, y), c, c
FOR j = 1 TO 250000
NEXT j
NEXT i
LOCATE 10, 15: PRINT "GAME OVER :)"
END
Пример: Шарик, заключенный в прямоугольную область. При касании границ отскакивает обратно.
REM Шарик, заключенный в прямоугольную область
SCREEN 1
c = 1
REM Границы области
xx1 = 1
xx2 = 200
yy1 = 1
yy2 = 150
LINE (xx1, yy1)-(xx1, yy2)
LINE (xx2, yy1)-(xx2, yy2)
LINE (xx1, yy1)-(xx2, yy1)
LINE (xx1, yy2)-(xx2, yy2)
REM Начальные координаты и скорость шарика
x = RND * (xx1 + (xx2 - xx1) / 2)
y = RND * (yy1 + (yy2 - yy1) / 2)
vx = RND * 20 - 10
vy = RND * 20 - 10
CIRCLE (x, y), 2, c
PAINT (x, y), c, c
REM Движение шарика, до тех пор пока не нажмем любую клавишу
DO
c = 0
CIRCLE (x, y), 2, c
PAINT (x, y), c, c
c = 1
IF x < (xx1 + 5) OR x > (xx2 - 5) THEN vx = -vx
IF y < (yy1 + 6) OR y > (yy2 - 7) THEN vy = -vy
x = x + vx
y = y + vy
CIRCLE (x, y), 2, c
PAINT (x, y), c, c
FOR j = 1 TO 150000
NEXT j
LOOP WHILE INKEY$ = ""
LOCATE 10, 15: PRINT "GAME OVER :)"
END
Пример: Идущие часы (входит в состав примеров QBasic).
' *** DRAW_EX.BAS ***
'
' Declare procedure.
DECLARE SUB Face (Min$)
'
' Select 640 x 200 pixel high-resolution graphics screen.
SCREEN 2
DO
CLS
' Get string containing minutes value.
Min$ = MID$(TIME$,4,2)
' Draw clock face.
Face Min$
' Wait until minute changes or a key is pressed.
DO
' Print time at top of screen.
LOCATE 2,37
PRINT TIME$
' Test for a key press.
Test$ = INKEY$
LOOP WHILE Min$ = MID$(TIME$,4,2) AND Test$ = ""
' End program when a key is pressed.
LOOP WHILE Test$ = ""
END
'
' Draw the clock face.
SUB Face (Min$) STATIC
LOCATE 23,30
PRINT "Press any key to end"
CIRCLE (320,100),175
' Convert strings to numbers.
Hr = VAL(TIME$)
Min = VAL(Min$)
' Convert numbers to angles.
Little = 360 - (30 * Hr + Min/2)
Big = 360 - (6*Min)
' Draw the hands.
DRAW "TA=" + VARPTR$(Little) + "NU40"
DRAW "TA=" + VARPTR$(Big) + "NU70"
END SUB
Несложно осуществить не просто движение объекта, а управляемое движение.
Пример: Художник (входит в состав примеров QBasic). Управление художников клавишами со стрелками.
' Values for keys on the numeric keypad and the spacebar:
CONST UP = 72, DOWN = 80, LFT = 75, RGHT = 77
CONST UPLFT = 71, UPRGHT = 73, DOWNLFT = 79, DOWNRGHT = 81
CONST SPACEBAR = " "
' Null$ is the first character of the two-character INKEY$
' value returned for direction keys such as UP and DOWN:
Null$ = CHR$(0)
' Plot$ = "" means draw lines; Plot$ = "B" means move
' graphics cursor, but don't draw lines:
Plot$ = ""
PRINT "Use the cursor movement keys to draw lines."
PRINT "Press the spacebar to toggle line drawing on and off."
PRINT "Press
DO: LOOP WHILE INKEY$ = ""
SCREEN 1
CLS
DO
SELECT CASE KeyVal$
CASE Null$ + CHR$(UP)
DRAW Plot$ + "C1 U2"
CASE Null$ + CHR$(DOWN)
DRAW Plot$ + "C1 D2"
CASE Null$ + CHR$(LFT)
DRAW Plot$ + "C2 L2"
CASE Null$ + CHR$(RGHT)
DRAW Plot$ + "C2 R2"
CASE Null$ + CHR$(UPLFT)
DRAW Plot$ + "C3 H2"
CASE Null$ + CHR$(UPRGHT)
DRAW Plot$ + "C3 E2"
CASE Null$ + CHR$(DOWNLFT)
DRAW Plot$ + "C3 G2"
CASE Null$ + CHR$(DOWNRGHT)
DRAW Plot$ + "C3 F2"
CASE SPACEBAR
IF Plot$ = "" THEN Plot$ = "B " ELSE Plot$ = ""
CASE ELSE
' The user pressed some key other than one of the
' direction keys, the spacebar, or "q", so
' don't do anything.
END SELECT
KeyVal$ = INKEY$
LOOP UNTIL KeyVal$ = "q"
SCREEN 0, 0
WIDTH 80
END
Задачи:
- В заданной строке подсчитать отдельно количество букв «а» и «в»
- Определить номер позиции заданной строки, в которой встречается буква «а». Если таковой буквы нет, вывести соответствующее сообщение.
- Определить номер позиции заданной строки, в которой буква «а» встречается в третий раз. Если такой позиции нет, вывести соответствующее сообщение.
- В данном числовом массиве размерности N подсчитать количество четных чисел.
- В заданном слове подсчитать количество всех цифр
- Рост учеников класса представлен в виде массива. Рост девочек представлен числом со знаком «+», рост мальчиков – со знаком «-». Определить средний рост мальчиков и средний рост девочек.
- Найти минимальное число в двумерном массиве.
- «Замедлить» процесс рисования линии (используется только команда PSET)
- Создать программу передвижения точки по горизонтали.