Көрсеткішті хабарлау кезінде модификатор ретінде const, near, far, huge қызметші сөздері пайдаланыла алады. Сonst қызметші сөзі программада көрсеткіштің өзгермейтінін көрсетеді. Көрсеткіш ретінде хабарланған айнымалы өлшемі компьютердің архитектурасына және программа компиляцияланатын жады моделіне байланысты. Мәліметтердің әр түрлі типтегі көрсеткіштері бірдей ұзындықта болуы міндетті емес. Көрсеткіштің өлшемін модификациялау үшін near, far, huge қызметші сөзін қолдануға болады. Мысалдар:
unsigned int * a; /* а айнымалысы unsigned int (таңбасыз бүтін сандар)
типтегі көрсеткішті білдіреді */
double * x; /* х айнымалысы жылжымалы үтірі бар екі
еселенген дәлдік (с плавающей точкой удвоенной точности)мәліметтер типін көрсетеді */
char * fuffer ; /* char типінің айнымалысын көрсететін
fuffer атты көрсеткіш хабарланады*/
double nomer;
void *addres;
addres = & nomer;
(double *)addres ++;
/*addres айнымалысы кез келген типтің объектінің көрсеткіші ретінде хабарланған. Сондықтан оған кез келген объектінің адресін меншіктеуге болады (& - адресті есептеу операциясы). Бірақ жоғарыда аталып өткендей, бірде-бір арифметикалық операция көрсеткіш көрсеткен мәліметтер типі анықталмағанша орындалмайды. double типіндегі көрсеткіште addres-ті өзгерті үшін (double *) типін келтіру операциясын, содан соң адресті үлкейтуді жасауға болады.*/
const * dr;
/* dr айнымалысы константалық өрнекке көрсеткіш ретінде хабарланған, яғни көрсеткіштің мағынасы программа орындалу барысында өзгеруі мүмкін, ал ол көрсеткен мөлшер өзгермейді. */
unsigned char * const w = &obj.
/* w айнымалысы char unsigned мәліметтеріне тұрақты көрсеткіш ретінде хабарланған. Бұл программа барысында w жадының бір облысын көрсетіп отырады. Бұл облыстың мағынасы өзгеруі мүмкін. */
Көрсеткіштерді пайдалану
#include
/* массив элементінің көрсеткіш мәніне өзгеруі */
void main ( )
{
сhar z[5]; int m[5]; float a[5];
сhar *uz; int *um; float *ua;
printf("/n Символдық массивтің элементтерінің адресі: /n ");
for (uz=z; uz<= &z[4]; uz++)
printf("/n Бүтін санды массивтің элементтерінің адресі: /n ");
for (um=m; um<= &m[4]; um++)
printf("/n Заттық массивтің элементтерінің адресі: /n ");
for (ua=a; ua<= &a[4]; ua++)
printf("%10p", ua);
}
Программаның орындалу нәтижесі:
Символдық массивтің элементтерінің адресі:
FFF0 FFF1 FFF2 FFF3 FFF4
Бүтін санды массивтің элементтерінің адресі:
FFF6 FFF8 FFFA FFFC FFFE
Заттық массивтің элементтерінің адресі:
FFD0 FFD4 FFD8 FFDC FFE0
Әдебиеттер:
Дәріс 30
Тақырыбы: Технологии создания WEB-приложений.
Мақсаты: Осветить вопросы перспективы развития веб-технологий.
Дәріс мазмұны
Модуль Graph позволяет выводить на экран изображение различных простых геометрических фигур (примитивов), а также получать информацию о них. Это осуществляется с помощью следующих процедур и функций:
Arc(X, Y, StAngle, EndAngle, Radius : integer) рисует дугу с центром в точке (X, Y), от начального угла StAngle до конечного EndAngle, радиусом Radius;
Bar(X1, Y1, X2, Y2 : integer) выводит на экран закрашенный прямоугольник с координатами левого верхнего угла (Х1,У1) и правого нижнего угла (Х2,У2);
Bar3D(X1, Y1, X2, Y2 : integer; Depth : word; Top : boolean) выводит на экран трехмерную полосу, используя текущий стиль и цвет;
Circle(X, Y, Radius : integer) - выводит на экран изображение окружности с центром (X,Y), радиусом Radius;
DrawPoly(NumPoints : word; var PolyPoints) рисует многоугольник из NumPoints вершин с координатами в PolyPoints, текущим цветом и типом линии;
Ellipse(X, Y : integer; StAngle, EndAngle, XR, YR : word) рисует эллиптическую дугу от начального угла StAngle до конечного EndAngle, используя X,Y как координаты центра, XR,YR – как горизонтальный и вертикальный радиусы;
FillEllipse(X, Y, Xradius, Yradius : integer) выводит на экран изображение полного закрашенного эллипса с центром X,Y, с горизонтальной и вертикальной полуосями Xradius,Yradius;
FillPoly(NumPoints : word; var PolyPoints) рисует и штрихует многоугольник из NumPoints вершин с координатами в PolyPoints;
Line(X1, Y1, X2, Y2 : integer) выводит на экран линию, соединяющую точки с координатами (X1,Y1) и (X2,Y2);
LineTo(X, Y : integer) выводит на экран линию, соединяющую точку, в которой находится курсор, с точкой (X,Y);
PutPixel(X, Y, Color : integer) выводит на экран пиксел в точке X,Y, цветом Color;
Rectangle(X1, Y1, X2, Y2 : integer) выводит на экран изображение прямоугольника.
Чтобы изменять цвет рисования (совокупность цветов называется палитрой, она может быть как стандартной, так и определенной программистом), тип и толщину линий, способ заливки, в модуле Graph определен набор констант, процедур и функций. Основные процедуры из этого набора:
SetBkColor(Color : integer) устанавливает текущий фоновый цвет Color;
SetColor(Color: integer) устанавливает основной цвет рисования;
GetColor : word – функция, возвращающая текущий цвет;
GetBkColor : word – функция, возвращающая текущий фоновый цвет;
SetLineStyle(LineStile, Pattern, Thinkness : integer) определяет стиль и толщину линии.
SetPalette(ColorNum, Color : word) заменяет цвет палитры с номером ColorNum на цвет Color;
SetFillPattern(Pattern : FillPatternType; Color : word) позволяет установить произвольный образец штриховки;
SetFillStile(Pattern, Color : integer) устанавливает образец штриховки и цвет;
1. Типы и структуры данных
Как и любой другой язык программирования, JavaScript поддерживает встроенные типы и структуры данных. Все их многообразие подразделяется на:
литералы и переменные;
массивы, функции и объекты.
При этом все они делятся на встроенные и определяемые программистом. Функции и объекты рассматриваются в разделах "Функции" и "Объекты". Поэтому здесь мы остановимся на литералах, переменных и массивах.
Можно в любом порядке нажимать на кнопки формы, и все будет работать правильно. При этом переменная cid используется и как идентификатор потока, и как идентификатор окна. Это означает, что JavaScript все-таки поддерживает полиморфизм, т.е. существует два разных объекта с одинаковыми именами, и система в них не путается.
4. Массивы
Массивы делятся на встроенные (document.links[], document.images[],...) и определяемые пользователем (автором документа). Встроенные массивы мы подробно обсуждаем в разделах "Программируем картинки", "Программируем формы" и "Программируем гипертекстовые переходы". Поэтому подробно остановимся на массивах, определяемых пользователем. Для массивов задано несколько методов:
join();
reverse();
sort();
и свойство length, которое позволяет получить число элементов массива. Это свойство активно используется в примерах данного раздела. В частности, при обсуждении метода join().
Для определения массива пользователя существует специальный конструктор:
6. Семинарлық (практикалық) сабақтардың жоспары
№
|
Тақырыбы
|
Семинар сабағының мазмұны
|
апта
|
әдебиеттер
|
1
|
Алгоритмдеу және программалау
|
Алгоритмдердің сызықты ,тармақталған құрылымын алгоритмдік баяндау
|
1
|
1,2,4
|
2
|
Алгоритмдеу және программалау
|
Тұрақтылардың,айнымалардың стандартты функциялардың,өрнекткрдің,меншіктеу операторының жазылуы
|
2
|
.
1,2, |
3
|
Алгоритмдеу және программалау
|
Тармақталған алгоритм
|
3
| 2, 30 |
4
|
Алгоритмдеу және программалау
|
Циклдерді ұйымдастыру
|
4
|
1 ,2
|
5
|
Алгоритмдеу және программалау
Web-қосымшаларды құру технологиясы
|
Циклдарды ұйымдастыру. Ең үлкен (ең кіші ) және т.б. мәндерді табу тәсілдері.
|
5
|
8, 10
|
6
|
Алгоритмдеу және программалау
|
Тармақталған ішкі циклдік құрылымды программалау.
|
6
|
1,2,4
|
7
|
Алгоритмдеу және программалау
|
Программалаудың типтік тәсілдері. Қосынды, көбейтінді есептеу, бірнеше параметрлері қатар берілген, сол бойынша қайталанатын циклдар мен итерациялық циклдік құрылымдар мысалында нәтижені есте сақтау.
|
7
|
1..,7
|
8
|
Алгоритмдеу және программалау
|
Реттелетін шектермен массивтердің енгізу-шығаруын ұйымдастыру. Шыарылатын мәліметтерге өзгерістер енгізу. Графаларға, жолдарға, бағандарға бөлінген таблицаларды, матрицаларды баспаға шығару.
|
8
|
1,2,4
|
9
|
Алгоритмдеу және программалау
|
Сиволдық мәліметтерді өңдейтін есептерді программалау.
|
9
|
|
10
|
Алгоритмдеу және программалау
|
Ішкі программаларды құру және дайындау.
|
10
|
81 ,2
|
11
|
Алгоритмдеу және программалау
|
Мәліметтердің динамикалық құрылым, кезек пен ағымдары ұйымдастыру.
|
11
|
111,2,4
|
12
|
Алгоритмдеу және программалау
|
Сыртқы құрылғыларда орналасқан құрылымдық мңәліметтерді өңдеу есебін программалау.
|
12
|
1 ,2
|
13
|
Алгоритмдеу және программалау
|
Графикалық құрастыруларды алгаритмдеу.
|
13
| 1,2,5 |
14
|
Алгоритмдеу және программалау
|
Сандартты функциалардың қорын есептерді шешу үшін пайдаланау.
|
14
| 1,9 |
15
|
Алгоритмдеу және программалау
|
Жек тапсырмаларды орындау
|
15
| 1,2,3,4 |
7. Пәнді оқыту бойынша әдістемелік нұсқау
Зертханалық және практикалық сабақтарға арналған әдістемелік нұсқау
№ 1 зерханалық сабақ
Тақырыбы:.Өрнекті жазу, меншіктеу операторы.
Сабақтың мақсаты: . Өрнекті жазу, меншіктеу операторы және сызықтық құрылымының жаза білуі.
Әдістемелік нұсқау:
Жоғарыда көрсетілген сұрақтарға байланысты баяндама құрастыру және оны қорғау. Дөңгелек үстел ұйымдастыру және бағаның, жылдамдықтың және т.б. көзқарасымен қандай технология ең оптималды болып табылады.
№ 2 зерханалық сабақ
Тақырыбы: Алгаримдердің тармақталған құрылымдарын программала
Сабақтың мақсаты: Тармақталған алгоритмді програмалай білу.
Әдістемелік нұсқау:
Семинар сұрақтары бойынша баяндама дайындау.
№ 3 зерханалық сабақ
Тақырыбы: Алгаритмнің құрылымдарын прогрммалау.
Сақтың мақсаты: Алгаритмнің құрылымдарын прогрммалауды үйрену.
№ 4 Зерханалық сабақ
Тақырыбы:Екі өлшемді массивтерді программалау..
Сабақтың мақсаты:. Екі өлшемді массивтерді программалау ішкі циклдік құрылымдарды көрсете білу.
Әдістемелік нұсқау:
Берілген сұрақтар бойынша баяндама жасау. Apache серверінің жұмысын тексеру, қарау, компьютерге серверді орналастыру.
№ 5 зерханалық сабақ.
Тақырыбы: Пассивтердің енгізу- шығарылуын ұйымдастыру.
Сабақтың мақсаты: Графаларға, кестелерге амалдар қолданып баспаға шығара білу.
Достарыңызбен бөлісу: |