如何将thispython转换为C. [英] How do I convert thispython to C

查看:90
本文介绍了如何将thispython转换为C.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

import csv
def fuzzy(pr,ps,pt,hr,hs,ht):
    ya = [0,0,0]
    tidak = [0,0,0,0,0,0]

    if (pr > 0)  and (hr > 0):
        tidak[0] = min (pr,hr);
    if (ps>0)  and (hr >0):
        tidak[1] = min (ps,hr);
    if (pt>0)  and (hr >0):
        tidak[2] = min (pt,hr);
    if (pr>0)  and (hs >0):
        ya[0] = min (pr,hs);
    if (ps>0)  and (hs >0):
        tidak[3] = min (ps,hs);
    if (pt>0)  and (hs >0):
        tidak[4] = min (pt,hs);
    if (pr>0)  and (ht >0):
        ya[1] = min (pr,ht);
    if (ps>0)  and (ht >0):
        ya[2] = min (ps,ht);
    if (pt>0)  and (ht >0):
        tidak[5] = min (pt,ht);

    return max(ya),max(tidak)

def defuzzy(ya,tidak):
    return ((ya * 60) + (tidak *35)) / (ya + tidak)

def tes_kmptn(kompetensi):
    pr = 0;
    ps = 0;
    pt = 0;

    if (kompetensi >= 1.5):
        pt =1 ;
    elif (kompetensi > 1) and (kompetensi <1.5):
        ps = (1.5 - kompetensi)/(1.5 - 1);
        pt = 1 - ps;
    elif (kompetensi > 0.5) and (kompetensi < 1):
        pr = (1 - kompetensi) / (1 - 0.5);
        ps = 1 - pr;
    elif (kompetensi <= 0.5):
        pr = 1;

    return pr, ps, pt

def kprdn(kepribadian):
    hr = 0;
    hs = 0;
    ht = 0;

    if (kepribadian >= 66):
        ht = 1;
    elif (kepribadian > 44) and (kepribadian < 66):
        hs = ( 66 - kepribadian)/(66-44);
        ht = 1 - hs;
    elif(kepribadian == 44):
        hs = 1;
    elif (kepribadian > 22) and (kepribadian < 44):
        hr = (44-kepribadian)/(44-22);
    elif (kepribadian <= 22 ):
        hr = 1;
    return hr,hs,ht;

with open('book1.csv') as file:
    reader = csv.reader(file, delimiter=',')
    next(reader)
    with open('TebakanTugas3.csv', 'w', newline='') as data:
        fiedlname =['ID','kompetensi','Hutang']
        writer = csv.DictWriter(data,fiedlname)
        writer.writeheader()
        for row in reader:
            hR,hS,hT = kompetensi(float(row[1]))
            pR, pS, pT = Hutang(float(row[2]))
            ya, tidak = fuzzy(pR,pS,pT,hR,hS,hT)
            x = defuzzy(ya, tidak)
            if(x >=60):
                print('No', row[0],' penghasian',row[1],' hutang',row[2],' layak mendapatkan BLT')
                writer.writerow({'No':row[0],'kompetensi':row[1],'Hutang':row[2]})





我尝试过:





What I have tried:

import csv
def fuzzy(pr,ps,pt,hr,hs,ht):
    ya = [0,0,0]
    tidak = [0,0,0,0,0,0]

    if (pr > 0)  and (hr > 0):
        tidak[0] = min (pr,hr);
    if (ps>0)  and (hr >0):
        tidak[1] = min (ps,hr);
    if (pt>0)  and (hr >0):
        tidak[2] = min (pt,hr);
    if (pr>0)  and (hs >0):
        ya[0] = min (pr,hs);
    if (ps>0)  and (hs >0):
        tidak[3] = min (ps,hs);
    if (pt>0)  and (hs >0):
        tidak[4] = min (pt,hs);
    if (pr>0)  and (ht >0):
        ya[1] = min (pr,ht);
    if (ps>0)  and (ht >0):
        ya[2] = min (ps,ht);
    if (pt>0)  and (ht >0):
        tidak[5] = min (pt,ht);

    return max(ya),max(tidak)

def defuzzy(ya,tidak):
    return ((ya * 60) + (tidak *35)) / (ya + tidak)

def tes_kmptn(kompetensi):
    pr = 0;
    ps = 0;
    pt = 0;

    if (kompetensi >= 1.5):
        pt =1 ;
    elif (kompetensi > 1) and (kompetensi <1.5):
        ps = (1.5 - kompetensi)/(1.5 - 1);
        pt = 1 - ps;
    elif (kompetensi > 0.5) and (kompetensi < 1):
        pr = (1 - kompetensi) / (1 - 0.5);
        ps = 1 - pr;
    elif (kompetensi <= 0.5):
        pr = 1;

    return pr, ps, pt

def kprdn(kepribadian):
    hr = 0;
    hs = 0;
    ht = 0;

    if (kepribadian >= 66):
        ht = 1;
    elif (kepribadian > 44) and (kepribadian < 66):
        hs = ( 66 - kepribadian)/(66-44);
        ht = 1 - hs;
    elif(kepribadian == 44):
        hs = 1;
    elif (kepribadian > 22) and (kepribadian < 44):
        hr = (44-kepribadian)/(44-22);
    elif (kepribadian <= 22 ):
        hr = 1;
    return hr,hs,ht;

with open('book1.csv') as file:
    reader = csv.reader(file, delimiter=',')
    next(reader)
    with open('TebakanTugas3.csv', 'w', newline='') as data:
        fiedlname =['ID','kompetensi','Hutang']
        writer = csv.DictWriter(data,fiedlname)
        writer.writeheader()
        for row in reader:
            hR,hS,hT = kompetensi(float(row[1]))
            pR, pS, pT = Hutang(float(row[2]))
            ya, tidak = fuzzy(pR,pS,pT,hR,hS,hT)
            x = defuzzy(ya, tidak)
            if(x >=60):
                print('No', row[0],' penghasian',row[1],' hutang',row[2],' layak mendapatkan BLT')
                writer.writerow({'No':row[0],'kompetensi':row[1],'Hutang':row[2]})

推荐答案

我们不是代码转换服务:学习Python,学习C.然后你可以自己动手。



更好的是,学习C并使用Python代码作为C代码的规范,因为直接翻译通常不会在目标语言中产生良好的代码。
We are not a code conversion service: learn Python, learn C. then you can do it yourself.

Even better, learn C and use the Python code as a "specification" for your C code, as direct translations do not generally produce good code in the target language.


您需要访问一些学习C教程,以了解该语言的基本知识,以便理解和使用它。编译器会告诉你它最清楚的是什么。



这种方式看起来像一个函数而且C中的和运算符
You need to visit some Learn C tutorial to learn the basic of that language to understand and work with it. The compiler will tell you what it doenst understand.

This way looks a function and the and-operator in C
int maximum(int a, int b)
{ 
  if( (a > b) && (b < a) )
  {
    return a;
  }
  return b;  
}


这篇关于如何将thispython转换为C.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆