1. Куча / Говнокод #18386

    +142

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    ### TASK 1
    
    R <- 1.987
    
    toSi <- function (value, molar_mass) {
      return (value * 4190 / molar_mass)
    }
    
    delta <- function (experiment, theory) {
      return((experiment - theory)/experiment*100)
    }
    
    einsteinFormula <- function (t, A, B, D) {
      return(A + B * t + D * t^2)
    }
    
    bennewitzRossner <- function (cv, Cnu, n, m, Cd, q) {
      coeff1 = (3*n-6-m-q)/q
      return(cv + R + 1/2 * m * R + Cnu + coeff1*Cd)
    }
    
    heatCapacity <- function(n, links, t, Anu, Bnu, Dnu, Ad, Bd, Dd, m, M) {
      c_nu <- einsteinFormula(t, Anu, Bnu, Dnu)
      #print(c_nu)
      c_d <- einsteinFormula(t, Ad, Bd, Dd)
      #print(c_d)
      C_rot <- sum(c_nu*links)
      C_bend <- sum(c_d*links)
      q <- sum(links)
      C_kalmol <- bennewitzRossner(3*R, C_rot, n, m, C_bend, q)
      C_br <- toSi(C_kalmol, M)
      return(data.frame(C_kalmol, C_br, C_rot, C_bend))
    }
    
    task11 <- function () {
      t_C6H14 <- c(400, 600, 800)
      n_C6H14 <- 20
      m_C6H14 <- 5
      M_C6H14 <- 86.2
      Cp_C6H14_kalmol <- (3 * n_C6H14 - 2) * R
      #print(Cp_C6H14_kalmol)
      Cp_C6H14_mkt <- toSi(Cp_C6H14_kalmol, M_C6H14)
     # print(Cp_C6H14_mkt)
      Cp_C6H14_exp <- c(1890, 2611, 3159)
      deltaC <- delta(Cp_C6H14_exp, Cp_C6H14_mkt)
      cp_C6H14_1 <- heatCapacity(
        20, 
        c(5, 14), #Links number
        400, #Temperatures
        c(-1.09, 0.229), c(6*10^-3, -1.224*10^-3), c(-4.495*10^-6, 1.658*10^-6), #A, B, D rotational
        c(0.73, -0.928), c(3.414*10^-3, 3.9*10^-3), c(-2.577*10^-6, -1.324*10^-6), #A, B, D bending
        m_C6H14, 86.2
      )
      cp_C6H14_2 <- heatCapacity(
        20, 
        c(5, 14), #Links number
        600, #Temperatures
        c(-1.09, 0.229), c(6*10^-3, -1.224*10^-3), c(-4.495*10^-6, 1.658*10^-6), #A, B, D rotational
        c(0.73, -0.928), c(3.414*10^-3, 3.9*10^-3), c(-2.577*10^-6, -1.324*10^-6), #A, B, D bending
        m_C6H14, 86.2
      )
      cp_C6H14_3 <- heatCapacity(
        20, 
        c(5, 14), #Links number
        800, #Temperatures
        c(-1.09, 0.229), c(6*10^-3, -1.224*10^-3), c(-4.495*10^-6, 1.658*10^-6), #A, B, D rotational
        c(0.73, -0.928), c(3.414*10^-3, 3.9*10^-3), c(-2.577*10^-6, -1.324*10^-6), #A, B, D bending
        m_C6H14, 86.2
      )
      cp <- c(cp_C6H14_1$C_br, cp_C6H14_2$C_br, cp_C6H14_3$C_br)
      print(c(cp_C6H14_1$C_rot, cp_C6H14_2$C_rot, cp_C6H14_3$C_rot))
      print(c(cp_C6H14_1$C_bend, cp_C6H14_2$C_bend, cp_C6H14_3$C_bend))
      deltaC_br <- delta(Cp_C6H14_exp, cp)
      #r <- data.frame(t, Cp_C6H14_mkt, Cp_C6H14_exp, cp, deltaC, deltaC_br)
      return(data.frame(t_C6H14, Cp_C6H14_mkt, Cp_C6H14_exp, deltaC, cp, deltaC_br))
    }

    Мой грязный говнокод на R. Решал дз в инст, рассчет теплоемкости дряни по методу -Д-ж-и-г-у-р-д-ы-и-Б-а-р-р-и-А-л-е-б-а-с-о-в-а- Бенневица-Росснера. Шлю в кучу, потому что нет раздела для эрочки :( Особая ржака начинается со строчки №46.

    Запостил: k1r1ll0v, 23 Июня 2015

    Комментарии (11) RSS

    • По количеству магии на строку кода. Этот код может претендовать на звание ГК уже с 1 строки.
      Ответить
    • >> c(3.414*10^-3, 3.9*10^-3), c(-2.577*10^-6, -1.324*10^-6)
      не верю что человек такое написал, не мог он
      Ответить
      • Чувак, честное пионерское. Это написал человек. Там прост константы из методы.
        Ответить
    • > einsteinFormula
      Какое громкое название для квадратного трёхчлена Бивис, ГЫ, он сказал член
      Ответить
      • Эйнштейн негодует
        Хы-хы хы-хы
        Ответить
      • Это аппроксимация функции Эйнштейна. Так-то (с) К.О.
        Ответить
    • https://pp.vk.me/c622726/v622726645/3746c/c0yFbCEOtPI.jpg
      Ответить

    Добавить комментарий