|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Практическое задание N 1. 36
1. Создать на экране несколько рядов окон с чередованием двух орнаментов. 2. Построить горизонтальную, либо вертикальную гистограммы столбиками разного цвета для 20-ти значений функций: Y= |Sin(x)|*x; либо Y= Sin(x)+x; в диапазоне "x" от 0 до 2*Pi, с выводом значений "x" и "Y".
Приведем пример программы поиска цели в лабиринте - перемещение символа по экрану с анализом содержания ячеек вокруг текущей позиции. Строится прямоугольник с преградами в котором случайным образом задаются координаты цели и "десантника", ищущего цель. Алгоритм поиска построен на анализе значений ячеек вокруг "десантника", при этом значение "десантника" k=1, и проверяется значение восьми окружающих ячеек. Как только обнаруживается ячейка со значением меньшим k, то "десантник" перемещается в эту ячейку, иначе k увеличивается и цикл проверок повторяется. Ячейка, из которой вышел “десантник”, помечается цифрой со значением параметра k. Наибольшее число проверок k=8. Начальные значения пустых ячеек равны нулю, прямоугольника и преград - десяти. Uses crt; Label Metka; Const NM=25; { число преград в лабиринте } Var a: array[1..100, 1..50] of word; { массив ячеек } NN, MM, N, M, N1, M1, i, j, k, l, i1, j1: word; BEGIN textmode(258); TextColor(1); Randomize; N:= lo(WindMax)+1; M:= hi(WindMax); {размеры лабиринта} NN:=Random(N)+1; MM:=Random(M)+1; { длина преграды по X и по Y} for i:=2 to N-1 do for j:=2 to M-1 do a[i,j]:=0; {обнуление массива} for i:=1 to N do begin a[i,1]:=10; a[i,M]:=10; {границы лабиринта} GotoXY(i, 1); write(#219); GotoXY(i, M); write(#219); end; for j:=1 to M do begin a[1, j]:=10; a[N, j]:=10; Д GotoXY(1, j); write(#219); GotoXY(N, j); write(#219); end; for l:=1 to NM do begin {преграды в лабиринте} Ц i:=random(N-2)+2; j:=random(M-2)+2; i1:=i+random(NN)+1; j1:=j+random(MM)+1; repeat a[ i, j ]:=10; GotoXY(i,j); write(#219); i:= i+1 until (i>=N) or (i>i1); repeat a[ i, j ]:=10; GotoXY(i,j); write(#219); j:= j+1 until (j>=M) or (j>j1); end; i:=random(N)+1; j:=random(M)+1; a[i,j]:=11; {координаты цели} TextColor(14); GotoXY(i, j); write('Ц'); i:=random(N-2)+2; j:=random(M-2)+2; a[i,j]:=1; {координаты десантника} TextColor(5); GotoXY(i, j); write('Д'); delay(1000); Repeat for i1:= i-1 to i+1 do for j1:= j-1 to j+1 do {поиск цели} if a[i1,j1]= 11 then begin TextColor(14); GotoXY(1,M+1); Write('Цель обнаружена'); readln; Halt end; for k:=1 to 8 do begin {цикл до 8-ми проверок вокруг текущей позиции} a[i,j]:=k; GotoXY(i,j); write(k); {отмечаем текущую позицию} for i1:= i-1 to i+1 do for j1:= j-1 to j+1 do {поиск выхода} if a[i1,j1]< k then begin i:=i1; j:=j1; GOTO Metka end; end; TextColor(14); GotoXY(1, M+1); Write('ТУПИК'); readln; Halt; Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |