![]() |
|
|
Реферат: Языки и технологии программированияВ процессе работы программа использует файлы, приведенные в таблице.1 и в случае их отсутствия или недоступности функционирование программы будет не полным (библиотеки шрифтов) или полностью невозможным (библиотека взаимодействия с видеоадаптером). Используемые технические средства. Для правильного функционирования программы необходимо применять следующие компоненты аппаратного комплекса: персональный компьютер класса Ix86 с 640Кб ОЗУ, оснащенный одним накопителем на гибком магнитном диске 720Кб или накопителем типа «винчестер», а так же видеоадаптером EGA или VGA (предпочтительно).Компьютер рекомендуется оснастить видеомонитором, соответствующим видеоадаптеру. Вызов и загрузка. Для правильного функционирования программы необходимо разместить основной модуль и сопутствующие файлы в одной директории. Для вызова программы необходимо в командой строке ДОС набрать полное имя основного модуля. Никаких параметров в командной строке не требуется. Входные и выходные данные. Данная программа является демонстрационной и не использует входных данных от пользователя. Выходными данными являются результаты работы функций по выводу изображений на экран. Параметры изображения сохраняются только на экране в процессе работы программы (данной функции). Часть третьяПрограмма электронной записной книжкиОбщие сведения. Данная программа разработана как учебная и в силу этого не имеет кодового обозначения предусмотренного ГОСТом 19.402-78 и представляет собой исполняемый файл notebook.exe и создаваемые ею в процессе работы файлы данных пользователя, структура которых приводится в приложении 3. Для функционирования программы необходима операционная система MS DOS 3.30 и выше или полностью совместимой с ней. Исходный текст программы написан на языке программирования высокого уровня Турбо Паскаль версии 7.0 фирмы Borland для DOS и WINDOWS с применением библиотеки Turbo Vision и содержится в файле notebook.pas в форме пригодной к использованию его как текстового документа в среде ДОС, и приведен в приложении 3. Функциональное назначение. Данная программа предназначена для ведения файлов баз данных подобных страницам адресной записной книжки и способна полностью заменить собой ее бумажных предшественников. Информация из файлов программы применяется только в «электронном» варианте и не может быть выведена на устройство печати (данная функция в программе отсутствует). В процессе работы программа создает файл данных и поэтому пользователю не требуется предварительно создавать его самому. Описание логической структуры. Программа не несет в себе определенного алгоритма в стандартном понимании, а является объектно-ориентированной программой (применены специфические конструкции языка - объекты). В силу сложившихся традиций и особенностей языка Турбо Паскаль данная программа представляет собой ряд процедур, выполняющих определенную роль и взаимодействующих между собой в рамках исполнительного модуля. Каждая функция выполняет определенное действие исходя из параметров полученных от других функций или от пользователя. Основной текст программы можно разделить на две части: первая - описание переменных и объектов; вторая - реализация процедур. Ниже в таблице 3 приводятся процедуры, применяемые в программе, а в таблице 4 - объекты. Таблица 3
таблица 4.
Используемые технические средства. Для правильного функционирования программы необходимо применять следующие компоненты аппаратного комплекса: персональный компьютер класса Ix86 с 640Кб ОЗУ, оснащенный одним накопителем на гибком магнитном диске 720Кб или накопителем типа «винчестер», а так же видеоадаптером EGA или VGA (предпочтительно).Компьютер рекомендуется оснастить видеомонитором, соответствующим видеоадаптеру. Вызов и загрузка. Для вызова программы необходимо в командой строке ДОС набрать полное имя основного модуля. Никаких параметров в командной строке не требуется. Входные и выходные данные. Входными и выходными данными для программы является файл (файлы) данных пользователя и выводит информацию, содержащуюся в них на экран дисплея. Приложенияприложение 1 #include <stdio.h> #include <math.h> //описание переменных, используемых в программе double pi=3.14,a=1.8,b=-2.0,c=0.1,d=1.6,e=0.9,eps=0.000001; int i=0; double x,y; //описания функций решения методами Ньютона и простых итераций extern double newton(double xn,double yn); extern double iterac(double xn,double yn); int main(void) { //запрос начального приближения у пользователя scanf("%f",&x); scanf("%f",&y); //вывод результатов через вызовы функций на экран printf ("Окончательное решение по методу Ньютона\n"); printf ("%g\t%g\n", newton(x,y)); printf ("Окончательное решение по методу итераций\n"); printf ("%g\t%g\n", iterac(x,y)); return (0); } //функция решения системы уравнений методом ньютона double newton(double xn,double yn) { double f1,f2,xxn,yyn; double df1dx,df1dy,df2dx,df2dy,dxy; do
while (1); b: return (xxn,yyn); } //решение системы уравнений методом простых итераций double iterac(double xi, double yi) { double xxi,yyi; do while(1); c: return (xxi,yyi); } Приложение 2 // #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <time.h> #include <math.h> #define NFONTS 11 char *Fonts[NFONTS] = { "Default_Font", "Triplex_Font", "Small_Font", "SansSerif_Font", "Gothic_Font", "Script_Font", "Simplex_Font", "TriplexScript_Font", "Complex_Font", "European_Font", "Bold_Font" }; int xmax,ymax,i=0,MaxColors; // //прототипы функций // void demoline(void); void democircle(void); void demopix(void); void demopieslice(void); void demotext (void); void MainWindow(char *header); void DrawBorder(void); void StatusLine(char *msg); void demoarcs(void); void demobars(void); void demo3dbars(void); void diagram(void); void endpage(void); void endpage1(void); void endpage2(void); // //начало главной функции // int main(void) { /* автоматическое определение типа видеоадаптера */ int gdriver = DETECT, gmode, errorcode; char msg[80]; // инициализация графических и локальных переменных initgraph(&gdriver, &gmode, ""); xmax=getmaxx(); ymax=getmaxy(); // проверка результатов инициализации errorcode = graphresult(); if (errorcode != grOk) { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); } //вызовы функций demoline(); demopix(); demobars(); demo3dbars(); demopieslice(); diagram(); democircle(); demoarcs(); demotext(); endpage(); endpage1(); endpage2(); cleardevice(); closegraph(); return 0; } // //функция демонстрации линий // void demoline(void) { //формирование графического окна и статусной строки MainWindow( "Line demonstration" ); StatusLine( "Press any key to continue..." ); //процесс рисования линий do { setcolor( random( MaxColors - random(15) ) + random(15) ); lineto (xmax,i); lineto (xmax,ymax); lineto (i,ymax); lineto (i+1,i+1); i=i+1;xmax=xmax-1;ymax=ymax-1; } while (xmax!=(xmax/2)); getch(); cleardevice(); clearviewport(); } // //функция демонстрации окружностей // void democircle(void) //xmax=getmaxx(); //ymax=getmaxy(); { MainWindow( "Circle demonstration" ); StatusLine( "Press any key to continue..." ); randomize(); moveto(random(xmax),random(ymax)); do { i++; //установка случайного цвета setcolor( random( MaxColors - random(15) ) + random(15) ); circle(random(getmaxx()),random(getmaxy()),random(100)); } while( !kbhit() ); // повторение пока не нажата клавиша getch(); clearviewport(); i=1; do { i++; setcolor( random( MaxColors - random(15) ) + random(15) ); circle(getmaxx()/2,getmaxy()/2,i); if (i==400) {setcolor(0); do {i--;circle(getmaxx()/2,getmaxy()/2,i);} while(i!=0);} } while( !kbhit() ); // повторение пока не нажата клавиша getch(); cleardevice(); } // //функция демонстрации рисования точек в произвольном //порядке // void demopix(void) { MainWindow( "Pix demonstration" ); StatusLine( "Press any key to continue..." ); do { i++; setcolor( random( MaxColors - random(15) ) + random(15) ); putpixel(random(getmaxx()),random(getmaxy()),random(15)); } while( !kbhit() ); // повторение пока не нажата клавиша xmax=getmaxx(); ymax=getmaxy(); getch(); cleardevice(); } // //функция демонстрации рисования секторов // void demopieslice(void) { MainWindow( "Pie Chart Demonstration" ); StatusLine( "Press any key to continue..." ); do { i++; setcolor(random( MaxColors - random(15) ) + random(15)); setfillstyle(random(12), getmaxcolor()); // setcolor(random( MaxColors - random(15) ) + random(15)); pieslice(random(getmaxx()),random(getmaxy()), random(360),random(360),random(150)); if(i>1000) {clearviewport();i=0;} } while( !kbhit() ); // повторение пока не нажата клавиша getch(); clearviewport(); } // //круговая диаграмма // void diagram(void) { int sektors[] = {20,10,35,15,20}; char *percent[]={"20%","10%","35%","15%","20%"}; int secsize,k=0,i,r=150; MainWindow( "Pie Chart Demonstration" ); StatusLine( "Press any key to continue..." ); settextjustify(CENTER_TEXT,CENTER_TEXT); settextstyle(5,0,2);//установка атрибутов текста outtextxy( getmaxx()/2,25,"This is the pie chart diagramm"); //процесс рисования диаграммы по данным из массива for( i=0;i<5;i++) { secsize = (360 * sektors[i])/100; setfillstyle(i,i); pieslice((getmaxx()/2),(getmaxy()/2),k,k+secsize,r); k = k+secsize; } //подписи процентов outtextxy( getmaxx()/2+r+30,getmaxy()/2-70,percent[0]); outtextxy( getmaxx()/2,getmaxy()/2-r-30,percent[1]); outtextxy( getmaxx()/2-r-30,getmaxy()/2,percent[2]); outtextxy( getmaxx()/2,getmaxy()/2+r+30,percent[3]); outtextxy( getmaxx()/2+r+20,getmaxy()/2+50,percent[4]); getch(); settextstyle(0,0,0); clearviewport(); } // //функция демонстрации текста в графическом окне // void demotext(void) { int midx,midy,i; MainWindow( "Demonstration text in the graphics screen" ); StatusLine( "Press any key to continue..." ); settextjustify(CENTER_TEXT,CENTER_TEXT); midx=getmaxx()/2; midy=getmaxy()/2; outtextxy( midx,midy-40,"This programm will demonstrate to you all graphics"); outtextxy( midx,midy+40,"functions of the C++ language");getch();clearviewport(); for (i=0;i<11;i++) { settextstyle(i,0,0); outtextxy(midx,midy-40,"This text is write by "); outtextxy(midx,midy+40,Fonts[i]); getch();clearviewport(); } settextstyle(0,1,1); //вывод вертикального текста outtextxy(midx,midy,"This programm created by Grinjoff Mark"); settextstyle(0,0,0);/*возвращениеи исходного начертания текста */ getch(); clearviewport(); } // //функция демонстрации рисования дуг и многоугольников // void demoarcs(void) { int poly[10]; MainWindow( "Arcs and polygons demonstration" ); StatusLine( "Press any key to continue..." ); xmax=getmaxx(); ymax=getmaxy(); i=0; //рисование дуг с произвольным расположением и цветом do { i++; setcolor(random( MaxColors - random(15) ) + random(15)); arc(random(xmax),random(ymax),random(358),random(358),random(100)); if(i>10000) {clearviewport();i=0;} } while( !kbhit() ); // повторение пока не нажата клавиша getch(); clearviewport(); i=0; //рисование многоугольников с произвольным цветом do { i++; poly[0] = random(i+random(20));//1-вершина poly[1] = random(random(ymax)/i+2); poly[2] = xmax-(i+20); /* 2-я */ poly[3] = i+20; poly[4] = xmax-(i+50); /* 3-я */ poly[5] = ymax-(i+20); poly[6] = i+xmax/2; /* 4-я */ poly[7] = i+ymax/2; /* drawpoly автоматически не закрывает многоугольник поэтому необходимо это сделать самому */ poly[8] = poly[0]; poly[9] = poly[1]; //рисует многоугольники, изменяя координаты вершин setcolor(random( MaxColors - random(15) ) + random(15)); drawpoly(5, poly); if(i>1000) {clearviewport();i=0;} } while( !kbhit() ); // повторение пока не нажата клавиша getch(); clearviewport(); } // //функция демонстрации закрашеных многоугольников и //цветов // void demobars(void) { MainWindow( "Bars and colors demonstration" ); StatusLine( "Press any key to continue..." ); int kxb=15,kyb=15; double stx,sty,x,y; stx=floor(getmaxx()/kxb); sty=floor(getmaxy()/kyb); do { for(x=3;x<getmaxx();x+=stx){ for(y=3;y<getmaxy();y+=sty){ setcolor(random( MaxColors - random(15) ) + random(15)); setfillstyle(SOLID_FILL,random(getmaxcolor())); bar(x+3,y+3,x+stx-3,y+sty-3);}} } while( !kbhit() ); // повторение пока не нажата клавиша getch(); clearviewport(); } // //функция демонстрации трехмерных прямоугольников // void demo3dbars(void) { int i; MainWindow( "3D Bars demonstration" ); StatusLine( "Press any key to continue..." ); do { i++; setcolor(random( MaxColors - random(15) ) + random(15)); setfillstyle(random(5),random(getmaxcolor())); bar3d( random( getmaxx() ), random( getmaxy() ), random( getmaxx() ), random( getmaxy() ),10,1); for(float j=0;j<50000;j++);//эмулятор задержки if(i>100) {clearviewport();i=0;} } while( !kbhit() ); // повторение пока не нажата клавиша getch(); clearviewport(); } // //функция создания завершающей страницы // void endpage(void) { MainWindow( "The cycle" ); StatusLine( "Press any key to continue..." ); int i,j,rad=50; do { for (i=0;i<359;i++) { setcolor(random( MaxColors - random(15) ) + random(15)); pieslice(60,60,i,i+1,rad); pieslice(580,60,i,i+1,rad); pieslice(60,390,i,i+1,rad); pieslice(580,390,i,i+1,rad); } for (i=0;i<getmaxx();i++) { setcolor(random( MaxColors - random(15) ) + random(15)); line(getmaxx()/2,10,i,getmaxy()/2); line(getmaxx()/2,440,i,getmaxy()/2); } setcolor(0); for (i=0;i<getmaxx();i++) { line(getmaxx()/2,10,i,getmaxy()/2); line(getmaxx()/2,440,i,getmaxy()/2); } } while( !kbhit() ); // повторение пока не нажата клавиша getch(); clearviewport(); } // //функция калейдоскопа // void endpage1(void) { MainWindow( "The simple kaleidoscope" ); StatusLine( "Press any key for exit to DOS" ); int koord1[4],koord2[4],koord3[4]; //получение координат исходной линии koord1[0]=random((getmaxx()/2)+10); koord1[1]=random((getmaxy()/2)+10); koord1[2]=random((getmaxx()/2)+10); koord1[3]=random((getmaxy()/2)+10); //получение координат конечной линии koord2[0]=random((getmaxx()/2)+10); koord2[1]=random((getmaxy()/2)+10); koord2[2]=random((getmaxx()/2)+10); koord2[3]=random((getmaxy()/2)+10); //прорисовка do { for (float t=0;t<1;t=t+0.01) //количество линий { for (int l=0;l<4;l++) //нахождение координат движения //линии {koord3[l]=floor(koord2[l]*(1-t)+koord1[l]*t);} setcolor(random( MaxColors - random(15) ) + random(15)); line(koord3[0],koord3[1],koord3[2],koord3[3]); //первая //четверть line(getmaxx()-koord3[0],koord3[1],getmaxx()-koord3[2],koord3[3]);//вторая четверть line(koord3[0],getmaxy()-koord3[1],koord3[2],getmaxy()-koord3[3]);//третья четверть line(getmaxx()-koord3[0],getmaxy()-koord3[1], getmaxx()-koord3[2],getmaxy()-koord3[3]);//четвертая четверть } for (int p=0;p<4;p++)//переприсвоение координат {koord2[p]=koord1[p];} //получение новых координат первой линии koord1[0]=random(getmaxx()/2); koord1[1]=random(getmaxy()/2); koord1[2]=random(getmaxx()/2); koord1[3]=random(getmaxy()/2); } while( !kbhit() ); // повторение пока не нажата клавиша getch(); clearviewport(); } // //последняя страница // void endpage2(void) { MainWindow( "The end" ); StatusLine( "Press any key for exit to DOS" ); do { settextstyle(BOLD_FONT,0,2); outtextxy(getmaxx()/2,getmaxy()/2,"The end "); } while( !kbhit() ); getch(); clearviewport(); } // //функция создания графического окна // void MainWindow( char *header ) { int height; xmax=getmaxx(); ymax=getmaxy(); cleardevice();//очистка экрана setcolor( MaxColors - 2 );//установка текущего цвета //белым setviewport( 0, 0, xmax, ymax, 1 );//открыть окно во //весь экран height = textheight( "H" );//установить начальную высоту //текста settextjustify( CENTER_TEXT, TOP_TEXT ); outtextxy( xmax/2, 2, header ); setviewport( 0, height+4, xmax, ymax-(height+4), 1 ); DrawBorder(); setviewport( 1, height+5, xmax-1, ymax-(height+5), 1 ); } // //функция создания строки статуса в нижней части экрана // void StatusLine( char *msg ) { int height; xmax=getmaxx(); ymax=getmaxy(); setviewport( 0, 0, xmax, ymax, 1 ); //открыть окно во //весь экран setcolor( MaxColors - 1 ); //установка текущего цвета //черным settextjustify( CENTER_TEXT, TOP_TEXT ); setlinestyle( SOLID_LINE, 0, NORM_WIDTH ); setfillstyle( EMPTY_FILL, 0 ); height = textheight( "H" );//установка текущей высоты //текста bar( 0, ymax-(height+4), xmax, ymax ); rectangle( 0, ymax-(height+4), xmax, ymax ); outtextxy( xmax/2, ymax-(height+2), msg ); setviewport( 1, height+5, xmax-1, ymax-(height+5), 1 ); } // //функция, образующая границу графического окна // void DrawBorder(void) { // struct viewporttype vp; setcolor( MaxColors - 1 );//установка текущего цвета //белым setlinestyle( SOLID_LINE, 0, NORM_WIDTH ); // getviewsettings( &vp ); rectangle( 0, 0, getmaxx(), getmaxy() ); |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|
Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |