ФІО = 7FINAL by Vanya vk.com/belecucema Запитання:using System; using System.Collections.Generic; using System.Text; namespace EXP { partial class user //class user { static int Do(int N, int A, int F, int D_In) { return C.Do(N, A, F, D_In); } public static void UserStendInit() { //---------Students code----------------BEGIN //C.SetStend1(); //C.SetStend2(); C.SetStend3(); //---------Students code----------------END } //++++++++++++++++++++++++++++++++++++++++++++++++++++++ public static void UserCrateInit() { // C.SetDAC(3); //example //---------Students code----------------BEGIN C.SetStep(1); C.SetDAC(2); C.SetADC(3); C.SetDAC(4); C.SetADC(5); //---------Students code----------------END } //++++++++++++++++++++++++++++++++++++++++++++++++++++++ public static void UserConnect() { // Connect.Set(3, 1, 0, 3); //example //---------Students code----------------BEGIN Connect.Set(1, 1, 0, 10); Connect.Set(1, 2, 0, 11); Connect.Set(2, 1, 0, 1); Connect.Set(3, 1, 0, 2); Connect.Set(4, 1, 0, 3); Connect.Set(5, 1, 0, 4); //---------Students code----------------END } //++++++++++++++++++++++++++++++++++++++++++++++++++++++ public static void Experiment() { /* double T1 = Time.get(); for (int n = 0; n < 10; n++) { Console.Beep(5000, 200); Time.Pause(1.25); } double T2 = Time.get(); double dT = T2 - T1; Console.Beep(3000, 500); return; */ //---------Students code----------------BEGIN int U = 2047; //Voltage int K, W; //koordinate og step driver double dK = 0, dW = 0; Do(1, 1, 16, 65); //axid in Y Do(1, 0, 16, -35); //water in X Time.Pause(2); //waiting Do(2, 0, 16, U); //set voltage of concentracion int U10 = Do(3, 0, 0, 0); //concentracion Do(4, 0, 16, U); //set voltage of level int R20 = Do(5, 0, 0, 0); //level double CONSENTRACION_ZERO = (5000.0 * U10) / ((U - U10) * 1.0); //concentration on beginning double LEVEL_ZERO = (1000.0 * R20) / ((U - R20) * 1.0); //level on beginning K = 65; W = -35; //start step while (true) { int R1 = Do(3, 0, 0, 0); //concentration voltage int R2 = Do(5, 0, 0, 0); //level voltage double Concentracion = (5000.0 * R1) / ((U - R1) * 1.0); //concentration double Level = (1000.0 * R2) / ((U - R2) * 1.0); //level if (Concentracion >= CONSENTRACION_ZERO) { if (dK < Math.Abs(Concentracion - CONSENTRACION_ZERO))// { K += 9; } Do(1, 1, 16, K); //more axid if (Level >= LEVEL_ZERO) { if (dW < Math.Abs(LEVEL_ZERO - Level)) { W += 9; } //increase X Do(1, 0, 16, W); //more watter } else { if (dW < Math.Abs(LEVEL_ZERO - Level)) { W -= 9; } //deacrese X Do(1, 0, 16, W); //less water } } else { if (dK < Math.Abs(Concentracion - CONSENTRACION_ZERO)) { K -= 9; } //decrease Y Do(1, 1, 16, K); //less axid if (Level >= LEVEL_ZERO) { if (dW < Math.Abs(LEVEL_ZERO - Level)) { W += 9; } //increase X Do(1, 0, 16, W); //more watter } else { if (dW < Math.Abs(LEVEL_ZERO - Level)) { W -= 9; } //decrease X Do(1, 0, 16, W); //зменшуємо подачу води } } dW = Math.Abs(LEVEL_ZERO - Level); //diference betwen start and end dK = Math.Abs(Concentracion - CONSENTRACION_ZERO); //diference betwen start and end } //---------Students code----------------END } //++++++++++++++++++++++++++++++++++++++++++++++++++++++ } }