1. Клиент посылает в собственную физическую подсеть широковещательное сообщение DHCPDISCOVER, в котором могут указываться устраивающие клиента IP-адрес и срок его аренды. Если в данной подсети DHCP-сервер отсутствует, сообщение будет передано в другие подсети ретранслирующими агентами протокола BOOTP (они же вернут клиенту ответные сообщения сервера).
2. Любой из DHCP-серверов может ответить на поступившее сообщение DHCPDISCOVER сообщением DHCPOFFER, включив в него доступный IP-адрес (yiaddr) и, если требуется, параметры конфигурации клиента. На этой стадии сервер не обязан резервировать указанный адрес. В принципе, он имеет право предложить его другому клиенту, также отправившему запрос DHCPDISCOVER. Тем не менее спецификации RFC 2131 рекомендуют серверу без необходимости не применять подобную тактику, а кроме того, убедиться (например, выдав эхо-запрос ICMP) в том, что предложенный адрес в текущий момент не используется каким-либо из компьютеров сети.
3. Клиент не обязан реагировать на первое же поступившее предложение. Допускается, чтобы он дождался откликов от нескольких серверов и, остановившись на одном из предложений, отправил в сеть широковещательное сообщение DHCPREQUEST. В нем содержатся идентификатор выбранного сервера и, возможно, желательные значения запрашиваемых параметров конфигурации.
1. Клиент посылает в собственную физическую подсеть широковещательное сообщение DHCPDISCOVER, в котором могут указываться устраивающие клиента IP-адрес и срок его аренды. Если в данной подсети DHCP-сервер отсутствует, сообщение будет передано в другие подсети ретранслирующими агентами протокола BOOTP (они же вернут клиенту ответные сообщения сервера).
2. Любой из DHCP-серверов может ответить на поступившее сообщение DHCPDISCOVER сообщением DHCPOFFER, включив в него доступный IP-адрес (yiaddr) и, если требуется, параметры конфигурации клиента. На этой стадии сервер не обязан резервировать указанный адрес. В принципе, он имеет право предложить его другому клиенту, также отправившему запрос DHCPDISCOVER. Тем не менее спецификации RFC 2131 рекомендуют серверу без необходимости не применять подобную тактику, а кроме того, убедиться (например, выдав эхо-запрос ICMP) в том, что предложенный адрес в текущий момент не используется каким-либо из компьютеров сети.
3. Клиент не обязан реагировать на первое же поступившее предложение. Допускается, чтобы он дождался откликов от нескольких серверов и, остановившись на одном из предложений, отправил в сеть широковещательное сообщение DHCPREQUEST. В нем содержатся идентификатор выбранного сервера и, возможно, желательные значения запрашиваемых параметров конфигурации.
float vychislenie(float X1, float X2, float Y1, float Y2);
float vqvod_rezultatov(float K1,float K2);
int main(){
float X1=0,X2=0,X3=0,X4=0;
float Y1=0,Y2=0,Y3=0,Y4=0;
float K1=0, K2=0;
printf("Vvedite koordinaty pervoj prjamoj cherez probel (X1 Y1 X2 Y2): ");
scanf("%f %f %f %f", &X1, &Y1, &X2, &Y2);
printf("\nA(%.1f ; %.1f), B(%.1f ; %.1f)\n\n", X1, Y1, X2, Y2);
printf("Vvedite koordinaty vtoroj prjamoj cherez probel (X1 Y1 X2 Y2): ");
scanf("%f %f %f %f", &X3, &Y3, &X4, &Y4);
printf("\nC(%.1f ; %.1f), D(%.1f ; %.1f)\n", X3, Y3, X4, Y4);
K1=vychislenie(X1,X2,Y1,Y2);
K2=vychislenie(X3,X4,Y3,Y4);
vqvod_rezultatov(K1, K2);
return 0;
}
float vychislenie(float X1, float X2, float Y1, float Y2){
float K=0;
K=((Y2-Y1)/(X2-X1));
return K;
}
float vqvod_rezultatov(float K1, float K2){
printf("\nKoefficient K1 = %.2f\n", K1);
printf("Koefficient K2 = %.2f\n", K2);
if(K1==K2){
printf("\nPrjamye parallelny\n");
}else{
printf("\nPrjamye ne parallelny\n");
}
return 0;
}