Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2009, 16:40   #1
Informer
Пользователь
 
Регистрация: 21.11.2007
Сообщений: 11
По умолчанию не большая просьба

кому не сложно, можете сделать плз ехе файлик(С++) и выложить где-нибудь?


код программы:

Код:
#include <stdio.h>
#include <dos.h>
#include <graphics.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <time.h>
//-------------< Создание оболочки >-------------
void windows(int w)
{
 int n;
 _setcursortype(0);
 window(1, 1, 80, 25);             // Выделение окна
 textbackground(BLACK);       // Цвет фона
 clrscr();		                 // Очистка экрана
 window(1, 25, 80, 25);          // Выделение окна
 textbackground(GREEN);       // Цвет фона
 clrscr();		                 // Очистка экрана
 window(1, 25, 80, 25);
 textcolor(BLACK);	         // Цвет текста
 if (w == 1)                              // Проверка на выбор окна
	{
	 n = 21;
	 cprintf("    Помощь     Тест      Выход");
	 window(2, 25, 4, 25);
	 textcolor(RED);            // Управляющие клавиши
	 cprintf("F1");                // основного окна
	 window(13, 25, 15, 25);
	 cprintf("F2");


	 window(22, 25, 25, 25);
	 cprintf("F10");
	 textbackground(BLUE);
	}
 else
	{
	 n =22;
	 cprintf("      Выход из помощи                            ");
	 window(3, 25, 6, 25);
	 textcolor(RED);            // Управляющие клавиши
	 cprintf("Esc");              // окна помощи
	 textbackground(CYAN);
	}
 window(1, 1, 80, 25);             // Прорисовка рамки  
 textcolor(WHITE);
 cprintf("+------------------------------------ Тест ------------------------------------+");
 for (int k = 0; k < n; k++)
 cprintf("¦                                                                                                         ¦");
 cprintf("+------------------------------------------------------------------------------+");
 if (w == 1)
	{
	 window(2, 2, 79, 2);
	 puts("  Эта программа демонстрирует сортировку массива двумя методами:");
	 window(2, 3, 79, 3);
	 puts("  быстрым методом и методом слияния. После чего определяется время сор-");
	 window(2, 4, 79, 4);
	 puts("  тировки массива каждым методом и результат  выводится в виде  гисто-");
	 window(2, 5, 79, 5);
	 puts("  граммы.");
	 window(2, 6, 79, 6);
	 window(20, 10, 60, 15);
 textcolor(WHITE);
 textbackground(LIGHTGRAY);
 cprintf("+------------------------------------------------------------------+");
 cprintf("¦    НЕОБХОДИМЫЕ ФАЙЛЫ ПРИСУТСТВУЮТ     ¦");
 cprintf("¦     (для тестировния нажмите F2)                                 ¦");
 cprintf("+------------------------------------------------------------------+");
 closegraph();
	}
}
//------------< Окно сообщения ошибок>-----------
void Error()
{
 window(20, 10, 60, 15);
 textcolor(WHITE);
 textbackground(LIGHTGRAY);
 cprintf("+----------------- Ошибка ----------------+");
 cprintf("¦	       				            ¦ ");
 cprintf("¦			       		            ¦");
 cprintf("¦                          		            ¦");
 cprintf("+---------------------------------------------+");
}
//-------------< Функция помощи >----------------
help()
{
 int n = 1;
 FILE *hl;                                // Указатели на файл
 char string[78];
 if ((hl = fopen("test.hlp", "r")) != NULL)  // Проверка на открытие файла
	{
	 windows(0);
	 window(2, 2, 78, 23);
	 textcolor(BLACK);
	 while (fgets(string, 78, hl) != NULL && n < 23)
		{
		 gotoxy(1, n++);       // Построчный вывод файла
		 cputs(string);           // помощи
		}
	 window(36, 1, 44, 1);
	 printf(" Помощь ");           // Вывод заголовка помощи
	 while (27 != getch());
	}
 else{
	 Error();
	 window(29, 12, 52, 12);
	 textcolor(BLACK);
	 cprintf("Файл TEST.HLP не найден");
	 getch();
	 windows(1);
	}
 fclose(hl);
 windows(1);
 return 0;
Informer вне форума Ответить с цитированием
Старый 02.06.2009, 16:42   #2
Informer
Пользователь
 
Регистрация: 21.11.2007
Сообщений: 11
По умолчанию

Код:
}
//--------< Функция построения гистограмм>-------
grafix(double simvol[2])
{
 double CopySimvol[2];             // Масив количества символов
 long float max = 0;
 int gdriver = DETECT, gmode, errorcode;
 int midx = 50;                                 // Обявление переменных
 int midy = 410;                               // с заданними начальными
 int i, s;		                          // значениями
 int siz = 100;
 int otst = 10;
 int rovn = 45;
 char chis[2];
 char buf[10];
 initgraph(&gdriver, &gmode, "");
 errorcode = graphresult();              // Запись код ошибки
 if (errorcode != grOk)                    // Проверка на ошибку
	{
	 Error();                                 // Вызов функции окна
	 window(26, 12, 54, 12);
	 textcolor(BLACK);
	 cprintf("Драйвер EGAVGA.BGI не найден");
	 getch();
	 windows(1);
	 return 0;
	}
 for (int y = 0; y < 2; y++)              // Оприделение максимального
	if (max < simvol[y])            // числа
		max = simvol[y];
 for (int b = 0; b < 2; b++)               // Оприделение высоты столбцов
	CopySimvol[b] = simvol[b] * 200 / max;
 setfillstyle(CLOSE_DOT_FILL,9);
 for (int n = 0; n < 2; n++)             // Построение столбцов и линий
	{
	 setcolor(BLUE);
	 bar3d(midx + otst + siz * n, midy - CopySimvol[n], midx + siz* (n+1 ), midy, 15, 1);
	 setcolor(BROWN);
	 line(midx + rovn + siz * n, midy + otst, midx + rovn + siz * n, midy + otst * 2);
	 sprintf(chis, "%d", n + 1);
	 setcolor(GREEN);
	 outtextxy((midx + rovn + siz * n) - 2, midy + otst * 2, chis);
	 setcolor(CYAN);
	 sprintf(buf, "%lf", simvol[n]);
	 outtextxy((midx + rovn + siz * n) - 15, midy - CopySimvol[n] - rovn, buf);
	}
 setcolor(BROWN);
 line(midx, 100, midx, midy + otst);                       // Построение оси Y
 line(midx, midy + otst, 280, midy + otst);             // Построение оси X
 line(midx - otst, midy - 200, midx, midy - 200);   // Построение
 line(midx - otst, midy - 100, midx, midy - 100);   // линии
 settextstyle(DEFAULT_FONT, HORIZ_DIR, 1);
 setcolor(GREEN);
 outtextxy(535, 460, "ESC ");
 outtextxy(10, 205, "100");
 outtextxy(10, 305, "50");
 outtextxy(350, 235, "1. Сортирвка массива быстрым");
 outtextxy(350, 250, "   методом");
 outtextxy(350, 280, "2. Сортирвка массива методом");
 outtextxy(350, 295, "   слияния");
 setcolor(LIGHTBLUE);
 outtextxy(300, 423, "метод");
 outtextxy(570, 460, "Выход");
 settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);
 outtextxy(220, 30, "ГИСТОГРАММА ");
 settextstyle(DEFAULT_FONT, VERT_DIR, 1);
 outtextxy(48, 160, "время");
 while (27 != getch());        // Проверка на символ ESC
 closegraph();
 windows(1);
 return 0;
}
      /*qsort:сортирует v[left]...v[right] по возрастанию*/
 void qqsort( int v[], int left, int right)
{
 int i,last;
 delay(1);
void swap( int v[], int i, int j);
if(left>=right)                 /*ничего не делается если*/
return;                         /* в массиве менее двух эл-тов */
swap(v,left,(left+right)/2);    /*делящий эл-нт переносится в v[0]*/
last=left;
for(i=left+1;i<=right;i++)      /*деление на части*/
if(v[i]<v[left])swap(v,++last,i);
swap(v,left,last);              /*перезапоминается делящий элемент*/
qqsort(v,left,last-1);
qqsort(v,last+1,right);
Informer вне форума Ответить с цитированием
Старый 02.06.2009, 16:44   #3
Informer
Пользователь
 
Регистрация: 21.11.2007
Сообщений: 11
По умолчанию

Код:
}
void swap( int v[], int i, int j)
{
long int temp;
 temp=v[i];
 v[i]=v[j];
 v[j]=temp;
}
 /*SRECMG -- РЕКУРСИВНАЯ СОРТИРОВКА СЛИЯНИЕМ*/
 void srecmg(a,n)
 int a[],n;
{
void merge( int*, int, int);
 int i;
 delay(1);
if(n>1)
{i=n/2;srecmg(a,i);srecmg(a+i,n-i);merge(a,i,n);}
}
/*merge--слияние двух подсписков*/
#define MAX(x,y) ((y)<(x)?(x):(y))
void merge( int*w, int l1, int l2)
{
 int*a,*pa,*pb,i;
a=( int*)calloc(l2+2,sizeof( int));
pa=a;pb=a+l1+1;
for(i=0;i<l1;i++) *pa++=w[i];
for(i=l1;i<l2;i++) *pb++=w[i];
*pa=*pb=MAX(w[l1-1],w[l2-1])+1;
pa=a;pb=a+l1+1;
for(i=0;i<l2;i++)
w[i]=(*pa<*pb?*pa++:*pb++);
free(a);
}
#define ww 700
//-------< Функция вызова разных методов >-------
file()
{ void  qqsort( int *, int,int);
  void  srecmg( int*, int);
 double simvol[2];
  int s;
 clock_t start,start2,end,end2;   int t=0;
  int gener1[ww],gener2[ww];          //Генератор случайных чисел
     randomize();                     //Устанавливает генератор в 0
     for ( s=0 ; s < ww ; s++)
      { gener1[s]= ( rand()%100 );    // rand()-функция генератора
	gener2[s] =gener1[s];
       }
 {  start=clock();
   qqsort(gener1,0,ww-1);
      end=clock();
   simvol[0] = ((end - start)/CLK_TCK);
 }
 { start2 =clock();
   srecmg(gener2,ww);
      end2=clock();

   simvol[1] = ((end2 - start2)/CLK_TCK);
 }
 grafix(simvol);     // Вызов функции построения гистограмм
 windows(1);
 return 0;
}
//-------------------< Меню >--------------------
void main()
{
 char press;
 windows(1);
 while (1)
 {
  press = getch();                              // Опрос клавиатуры
  switch(press)
	{
	 case 59: help(); break;               // Вызов помоши
	 case 60: file(); break;               // Запуск гистограммы
	 case 68: {                            // Выход из программы
		   window(1, 1, 80, 25);
		   textbackground(BLACK);
		   clrscr();
		   exit(1);
  }	} }}
Informer вне форума Ответить с цитированием
Старый 02.06.2009, 19:06   #4
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

У вас тут куча простых пунктуационных и орфографических ошибок, не легче ли будет поправить это самому?) Компилятор вам укажет где именно ошибка. Если хоть немного синтаксис С++ знаете, то справитесь
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БоЛьшая степень n1ce > Kuzia Паскаль, Turbo Pascal, PascalABC.NET 5 28.05.2009 12:02
Преобразование типов - большая нагрузка на ЦП ArtUrlWWW Общие вопросы .NET 1 19.05.2009 14:41
Задачки на массивы. Большая просьба помочь tohkaRu Паскаль, Turbo Pascal, PascalABC.NET 9 08.12.2008 23:31
Большая просьба помочь с задачами на двумерные массивы. Нужно очень срочно - до утра! tohkaRu Паскаль, Turbo Pascal, PascalABC.NET 0 03.12.2008 23:43
Большая проблема BlackOmen Работа с сетью в Delphi 2 16.03.2008 19:02