Новые книги

Дорогой читатель, перед тобой уникальная книга, в которой нам удалось собрать опыт всех тренингов по продажам, которые проводили бизнес-тренеры Петербургской Школы переговорщиков «ШИП».

Мы разберем техники и основные ошибки, которые совершают люди при проведении продаж, посмотрим, как по-разному подходят к процессу продаж различные компании, увидим, на чем строится работа эффективного продавца.

Для простоты понимания, мы будем использовать в тексте все те схемы, таблицы, которые мы используем на тренингах.

Для кого эта книга?

Для тех, кто только собирается стать миллионером, путем продажи товара или услуги.

Эта книга для тех кто, активно занимается продажами, для кого они источник материального благополучия.

Эта книга для специалистов корпоративных университетов, которые обучают продажам в компании, кому важно в короткие сроки донести ключевую информацию до менеджеров по продажам, продавцов.

Эта книга для руководителей отделов продаж, проектных групп, чьи сотрудники постоянно отстаивают интересы компании в переговорах с покупателями.

Эта книга для hr-специалистов, для тех, кто занимается отбором специалистов в отделы продаж, кому важно быстро принять правильное решение, для чего нужно понять, будет ли из кандидата толк, сможет он приносить прибыль компании или будет ненужным балластом.

Эта книга для бизнес-тренера, которому важно уметь емко и сжато объяснить участникам тренинга по продажам, что же такое «продажи», и научить их зарабатывать деньги для себя и компании.

Книга поможет не только разобраться в принципах эффективных продаж, но и оценить свои способности благодаря уникальным тестам, приведенным в конце книги.
Эта книга – практическое руководство для новаторов и творческих личностей, в ней собрано 46 правил, которые помогут вам стать если даже не гением, то, как минимум, более креативно мыслящим человеком. Эти правила не новы – на протяжении многих столетий им следовали художники, ученые и мыслители, создавая свои шедевры. Но в горячке творчества их чаще всего игнорируют и забывают.

Издание начинается с нескольких советов по стратегии – как найти правильную идею. Затем даются подсказки, полезные на этапе ее воплощения, – как правильно идеей распорядиться. Далее речь идет о развитии ваших креативных навыков с течением времени, и наконец – о практическом применении вашей гениальности.

Книга будет полезна дизайнерам, маркетологам, художникам, ученым, а также всем, кто желает стать гением. Она поможет вам мечтать, изобретать, творить и расти, чем бы вы ни занимались.

На русском языке публикуется впервые.

Примеры.

Пример 24

/* Пример коммуникации процессов при помощи программных каналов
 * (трубы, pipes).
 *      Данная программа превращается в две программы,
 *      соединенные трубами в таком порядке:
 *
 *         stdout                  stdin
 *        /------------ PIP1 -----------> cmd2
 *      cmd1 <----------PIP2---------------/
 *         stdin                   stdout
 */
/* файл LOOP_strt.c */
#include <stdio.h>
#define eq(s1,s2) ( strcmp(s1,s2) == 0 ) /* истина, если строки равны */
#define SEP         "---"                /* разделитель команд при наборе */
main( c, v ) char **v;
{
	char **p, **q;
	int pid;
	int PIP1[2];    /* труба cmd1-->cmd2 */
	int PIP2[2];    /* труба cmd2-->cmd1 */
	if( c==1 ){
		printf( "Call: strt cmd1... %s cmd2...\n", SEP );
		exit(1);
	}
			/* разбор аргументов */
	v++;
	/* в p - аргументы первой команды */
	p = v;
	while( *v && !eq( *v, SEP ))
		v++;
	*v = NULL;
	v++;
	/* в q - аргументы второй команды */
	q = v;
	pipe( PIP1 );   /* создаем две трубы */
	pipe( PIP2 );   /* PIP[0] - открыт на чтение, PIP[1] - на запись */
	if( pid = fork()){      /* развилка: порождаем процесс */
	/* ПОРОЖДЕННЫЙ ПРОЦЕСС */
		fprintf( stderr, "сын=%s pid=%d\n", p[0], getpid());
		/* перенаправляем stdout нового процесса в PIP1 */
		dup2( PIP1[1], 1 );
		close( PIP1[1] );
		/* канал чтения мы не будем использовать */
		   close( PIP1[0] );
		/* перенаправляем stdin из PIP2 */
		dup2( PIP2[0], 0 );
		close( PIP2[0] );
		/* канал записи мы не будем использовать */
		   close( PIP2[1] );
		/* начинаем выполнять программу, содержащуюся в
		 * файле p[0] с аргументами p (т.е. cmd1)
		 */
		execvp( p[0], p );
		/* возврата из сисвызова exec не бывает */
	}else{
	/* ПРОЦЕСС-РОДИТЕЛЬ */
		fprintf( stderr, "отец=%s pid=%d\n", q[0], getpid());
		/* перенаправляем stdout в PIP2 */
		dup2( PIP2[1], 1 );
		close( PIP2[1] ); close( PIP2[0] );
		/* перенаправляем stdin из PIP1 */
		dup2( PIP1[0], 0 );
		close( PIP1[0] ); close( PIP1[1] );
		/* запускаем cmd2 */
		execvp( q[0], q );
	}
}
/* Ниже приводятся тексты двух программ, которые можно запустить
 * как тест. Сервер компилируется в программу cmd2,
 * клиент - в программу cmd1. Если запускающая программа
 * скомпилирована в strt, то наберите команду
 *              strt cmd1 --- cmd2
 *  либо        strt cmd2 --- cmd1
 */
/* файл LOOP_p.c --------------------------------------------
 * Процесс-клиент (cmd1)
 */
#include <stdio.h>
int trace = 1;  /* вести трассировку своих действий */
main(c , v) char **v;
{
	FILE *fp;       int pid;
	char buf[128];
	fprintf( stderr, "P: process pid=%d\n", getpid());
	fp = fopen( "LOOP_p.c", "r" );
	/* открываем файл с текстом этой команды */
	/* читаем его построчно */
	while( fgets( buf, sizeof buf, fp ) != NULL ){
		if( trace ) fprintf( stderr, "P посылает: %s", buf );
		/* посылаем его в стандартный вывод: трубу PIP1 */
		printf( "%s", buf );
		fflush( stdout );
		/* ожидать ответа из трубы PIP2 */
		fgets( buf, sizeof buf, stdin );
		if( trace ) fprintf( stderr, "P получил: %s", buf );
	}
	fclose( stdout );
	/* отключиться от трубы PIP1. Если этого не сделать, сервер
	 * не прочитает из нее EOF */
	while((pid = wait(NULL)) > 0 )
		fprintf( stderr, "P: %d умер\n", pid );
}
/* файл LOOP_q.c -----------------------------------------------
 * процесс-сервер (cmd2)
 */
#include <stdio.h>
int trace = 1;
main(c , v) char **v;
{
	char buf[128];          int pid;
	fprintf( stderr, "Q: process pid=%d\n", getpid());
	/* читать поступающие из трубы PIP1 строки */
	while( fgets( buf, sizeof(buf), stdin ) != NULL ){
		/* напечатать полученное сообщение */
		if( trace ) fprintf( stderr, "Q прочел: %s", buf );
		if( trace ) fprintf( stderr, "Q отвечает: OK=%s", buf );
		/* ответить в трубу PIP2 */
		printf( "OK=%s", buf ); fflush( stdout );
	}
	fclose( stdout );       /* отключиться от трубы PIP2 */
	while((pid = wait(NULL)) > 0 )
		fprintf( stderr, "Q: %d умер\n", pid );
}

© Copyright А. Богатырев, 1992-95
Си в UNIX

Назад | Содержание | Вперед