HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Помогите срочно решить одну задачку. До завтра надо сделать.
  #1  
Старый 02.04.2010, 19:25
Porrter
Новичок
Регистрация: 24.08.2009
Сообщений: 17
С нами: 8796769

Репутация: -9
По умолчанию Помогите срочно решить одну задачку. До завтра надо сделать.

Спроектировать и разработать программу позволяющую создавать процессы и
управлять уже созданными. Программа должна обладать следующим набором
возможностей:
В интерактивном режиме запускать указанные процессы.
Уничтожать указанный процесс (уничтожаться могут только процессы запущенные
программой). Уничтожаемый процесс указывается либо его описателем, либо
выбирается в интерактивном режиме.
Показать список всех процессов (а также своих копий) запущенных программой.
Программа должна знать о всех своих запушенных копиях.
Программа должна уметь обмениваться со своими копиями списками порождённых
процессов.
При закрытии программы она должна уничтожить все порождённые ею процессы.

Примечания:
Новый процесс запускается функцией CreateProcess и уничтожается функцией
TerminateProcess.
Запускаемый процесс указывается именем своего исполняемого файла.
Для обмена данными между копиями программы можно использовать переменные
окружения. Для работы с переменными окружения используются следующие функции:
GetEnvironmentVariable, SetEnvironmentVariable.
В случае реализации программы в консольном варианте для обработки попыток
закрытия программы необходимо использовать функцию SetConsoleCtrlHandle.
Описание необходимых функций можно посмотреть в MSDN Library.
Пользовательский интерфейс может быть реализован в любом варианте (текстовый,
графический).Спроектироват ь и разработать программу позволяющую создавать процессы и
управлять уже созданными. Программа должна обладать следующим набором
возможностей:
В интерактивном режиме запускать указанные процессы.
Уничтожать указанный процесс (уничтожаться могут только процессы запущенные
программой). Уничтожаемый процесс указывается либо его описателем, либо
выбирается в интерактивном режиме.
Показать список всех процессов (а также своих копий) запущенных программой.
Программа должна знать о всех своих запушенных копиях.
Программа должна уметь обмениваться со своими копиями списками порождённых
процессов.
При закрытии программы она должна уничтожить все порождённые ею процессы.

Примечания:
Новый процесс запускается функцией CreateProcess и уничтожается функцией
TerminateProcess.
Запускаемый процесс указывается именем своего исполняемого файла.
Для обмена данными между копиями программы можно использовать переменные
окружения. Для работы с переменными окружения используются следующие функции:
GetEnvironmentVariable, SetEnvironmentVariable.
В случае реализации программы в консольном варианте для обработки попыток
закрытия программы необходимо использовать функцию SetConsoleCtrlHandle.
Описание необходимых функций можно посмотреть в MSDN Library.
Пользовательский интерфейс может быть реализован в любом варианте (текстовый,
графический).
 
Ответить с цитированием

  #2  
Старый 02.04.2010, 19:26
Porrter
Новичок
Регистрация: 24.08.2009
Сообщений: 17
С нами: 8796769

Репутация: -9
По умолчанию

Заранее благодарен=) Предпосительный язык - C#
 
Ответить с цитированием

  #3  
Старый 02.04.2010, 21:51
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
С нами: 8680278

Репутация: 17
По умолчанию

Цитата:
Сообщение от Porrter  
Заранее благодарен=) Предпосительный язык - C#
Что WinApi + C# это гемор!
Лучше сам пиши на С++. Примеров дофига
 
Ответить с цитированием

  #4  
Старый 03.04.2010, 20:59
Lewis Carroll
Познающий
Регистрация: 28.02.2010
Сообщений: 35
С нами: 8527168

Репутация: 0
По умолчанию

Задача следующего плана:

составить программу, сравнивающую три вида сортировок (любые сортировки т.е. быстрая, пузырьком и т. д. все годятся) и выдающую в результате сколько времени было затрачено на сортировку массива данных. (желательный размер массива ~100 кб, чтобы разница во времени была очевидной)

язык C/C++

заранее благодарен.
 
Ответить с цитированием

  #5  
Старый 04.04.2010, 11:22
comichero92
Новичок
Регистрация: 29.03.2010
Сообщений: 6
С нами: 8484458

Репутация: 0
По умолчанию

Цитата:
Сообщение от Lewis Carroll  
Задача следующего плана:

составить программу, сравнивающую три вида сортировок (любые сортировки т.е. быстрая, пузырьком и т. д. все годятся) и выдающую в результате сколько времени было затрачено на сортировку массива данных. (желательный размер массива ~100 кб, чтобы разница во времени была очевидной)

язык C/C++

заранее благодарен.
хм... наверно что-то такое
Код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

void bubble(char *items, int count);
void shaker(char *items, int count);
void shell(char *items, int count);

int main(void)
{
	FILE *fp;
	FILE *s1;
	FILE *s2;
	FILE *s3;
	char s[255];
	time_t start, end;
	volatile long unsigned t;

	printf("read file");

	if((fp = fopen("mass.txt", "r")) == NULL) {
		printf(" : error.\n");
		exit(1);
	}

	printf(" : ok.\n\n");

	while(!feof(fp)) {
		fgets(s, 253, fp);
	}

	start = time(NULL);
	bubble(s, strlen(s));
	end = time(NULL);
	s1 = fopen("bubble.txt", "w");
	fputs(s, s1);
	printf("Bubble sort : ok.\n");
	printf("time: %f s.\n\n", difftime(end, start));

	start = time(NULL);
	shaker(s, strlen(s));
	end = time(NULL);
	s2 = fopen("shaker.txt", "w");
	fputs(s, s2);
	printf("Cocktail shaker sort : ok.\n");
	printf("time: %f s.\n\n", difftime(end, start));

	start = time(NULL);
	shaker(s, strlen(s));
	end = time(NULL);
	s3 = fopen("shell.txt", "w");
	fputs(s, s3);
	printf("Donald Lewis Shell sort : ok.\n");
	printf("time: %f s.\n\n", difftime(end, start));

	fclose(fp);
	fclose(s1);
	fclose(s2);
	fclose(s3);
	return 0;
}

// bubble sort
void bubble(char *items, int count)
{
	register int a, b;
	register char t;

	for(a = 1; a < count; ++a)
		for(b = count-1; b >= a; --b) {
			if(items[b-1] > items[b]) {
				t = items[b-1];
				items[b-1] = items[b];
				items[b] = t;
			}
		}
}

// cocktail shaker sort
void shaker(char *items, int count)
{
	register int a;
	int exchange;
	char t;

	do{
		exchange = 0;
		for(a = count-1; a >0; --a) {
			if(items[a-1] > items[a]) {
				t = items[a-1];
				items[a-1] = items[a];
				items[a] = t;
				exchange = 1;
			}
		}

		for(a = 1; a < count; ++a) {
			if(items[a-1] > items[a]) {
				t = items[a-1];
				items[a-1] = items[a];
				items[a] = t;
				exchange = 1;
			}
		}
	} while(exchange);
}

// Donald Lewis Shell sort
void shell(char *items, int count)
{
	register int i, j, gap, k;
	char x, a[5];

	a[0] = 9; a[1] = 5; a[2] = 3; a[3] = 2; a[4] = 1;

	for(k = 0; k < 5; k++) {
		gap = a[k];
		for(i = gap; i < count; ++i) {
			x = items[i];
			for(j=i-gap; (x < items[j]) && (j >= 0); j = j-gap)
				items[j+gap] = items[j];
			items[j+gap] = x;
		}
	}
}
p.s. размер сортируемых данных думаю сам изменишь
 
Ответить с цитированием

  #6  
Старый 04.04.2010, 15:00
Lewis Carroll
Познающий
Регистрация: 28.02.2010
Сообщений: 35
С нами: 8527168

Репутация: 0
По умолчанию

Цитата:
Сообщение от comichero92  
хм... наверно что-то такое
Код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

void bubble(char *items, int count);
void shaker(char *items, int count);
void shell(char *items, int count);

int main(void)
{
	FILE *fp;
	FILE *s1;
	FILE *s2;
	FILE *s3;
	char s[255];
	time_t start, end;
	volatile long unsigned t;

	printf("read file");

	if((fp = fopen("mass.txt", "r")) == NULL) {
		printf(" : error.\n");
		exit(1);
	}

	printf(" : ok.\n\n");

	while(!feof(fp)) {
		fgets(s, 253, fp);
	}

	start = time(NULL);
	bubble(s, strlen(s));
	end = time(NULL);
	s1 = fopen("bubble.txt", "w");
	fputs(s, s1);
	printf("Bubble sort : ok.\n");
	printf("time: %f s.\n\n", difftime(end, start));

	start = time(NULL);
	shaker(s, strlen(s));
	end = time(NULL);
	s2 = fopen("shaker.txt", "w");
	fputs(s, s2);
	printf("Cocktail shaker sort : ok.\n");
	printf("time: %f s.\n\n", difftime(end, start));

	start = time(NULL);
	shaker(s, strlen(s));
	end = time(NULL);
	s3 = fopen("shell.txt", "w");
	fputs(s, s3);
	printf("Donald Lewis Shell sort : ok.\n");
	printf("time: %f s.\n\n", difftime(end, start));

	fclose(fp);
	fclose(s1);
	fclose(s2);
	fclose(s3);
	return 0;
}

// bubble sort
void bubble(char *items, int count)
{
	register int a, b;
	register char t;

	for(a = 1; a < count; ++a)
		for(b = count-1; b >= a; --b) {
			if(items[b-1] > items[b]) {
				t = items[b-1];
				items[b-1] = items[b];
				items[b] = t;
			}
		}
}

// cocktail shaker sort
void shaker(char *items, int count)
{
	register int a;
	int exchange;
	char t;

	do{
		exchange = 0;
		for(a = count-1; a >0; --a) {
			if(items[a-1] > items[a]) {
				t = items[a-1];
				items[a-1] = items[a];
				items[a] = t;
				exchange = 1;
			}
		}

		for(a = 1; a < count; ++a) {
			if(items[a-1] > items[a]) {
				t = items[a-1];
				items[a-1] = items[a];
				items[a] = t;
				exchange = 1;
			}
		}
	} while(exchange);
}

// Donald Lewis Shell sort
void shell(char *items, int count)
{
	register int i, j, gap, k;
	char x, a[5];

	a[0] = 9; a[1] = 5; a[2] = 3; a[3] = 2; a[4] = 1;

	for(k = 0; k < 5; k++) {
		gap = a[k];
		for(i = gap; i < count; ++i) {
			x = items[i];
			for(j=i-gap; (x < items[j]) && (j >= 0); j = j-gap)
				items[j+gap] = items[j];
			items[j+gap] = x;
		}
	}
}
p.s. размер сортируемых данных думаю сам изменишь



а вторая сортировка это какая ?
первая - пузырек, третья - Шелла.. а вторая - ?..)
 
Ответить с цитированием

  #7  
Старый 04.04.2010, 15:21
comichero92
Новичок
Регистрация: 29.03.2010
Сообщений: 6
С нами: 8484458

Репутация: 0
По умолчанию

шейкер сортировка(shaker sort), модифицированная пузырьковая
 
Ответить с цитированием

  #8  
Старый 04.04.2010, 13:04
Lewis Carroll
Познающий
Регистрация: 28.02.2010
Сообщений: 35
С нами: 8527168

Репутация: 0
По умолчанию

Большое спасибо )) а как работать с сортируемыми файлами? создать соответствующие файлы (bubble.txt shaker.txt shell.txt) заполненные данными?

Последний раз редактировалось Lewis Carroll; 04.04.2010 в 13:38..
 
Ответить с цитированием

  #9  
Старый 04.04.2010, 14:52
comichero92
Новичок
Регистрация: 29.03.2010
Сообщений: 6
С нами: 8484458

Репутация: 0
По умолчанию

создать файл mass.txt, в нем то что будем сортировать, файлы bubble.txt, shell.txt и shaker.txt сами создадутся и в них будут отсортированные данные
 
Ответить с цитированием

  #10  
Старый 04.04.2010, 17:35
Lewis Carroll
Познающий
Регистрация: 28.02.2010
Сообщений: 35
С нами: 8527168

Репутация: 0
По умолчанию

А можно ли как то реализовать такую фичу, чтобы на основании затраченного времени строилась гистограмма для каждой сортировки?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости. Обсуждения. 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.