O'ZBEKISTON RESPUBLIKASI OLIY TA’LIM, FAN VA INNOVATSIYALAR VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
Tizimli dasturlash
2-Amaliy ish
Bajardi: Abbosov Aziz 311-20
Tekshirdi: Sharipov Bahodir
Toshket 2023
import pandas as pd
def leksik_tahlil_to_df(qatorlar):
kalit_sozlar = { "int": "W1", "main": "W2", "string": "W3", "cout": "W4", "cin": "W5", "try": "W6", "return": "W7", "stoi": "W8", "endl": "W9", "catch": "W10", "const": "W11", "invalid_argument&": "W12", "out_of_range&": "W13", "nullptr": "W14" }
identifikatorlar = { "a": "I1", "b": "I2", "e": "I3" }
amallar = { "<<": "O8", ">>": "O9", "=": "O5" }
ajratkichlar = { ";": "R3", "{": "R7", "}": "R8", "(": "R5", ")": "R6", ",": "R2" }
konstantalar = { "2": "N1", "0": "N2" }
natijalar = []
for qator in qatorlar:
lexemalar = qator.split()
qator_natijasi = []
for lexema in lexemalar:
if lexema in kalit_sozlar:
qator_natijasi.append(kalit_sozlar[lexema])
elif lexema in identifikatorlar:
qator_natijasi.append(identifikatorlar[lexema])
elif lexema in amallar:
qator_natijasi.append(amallar[lexema])
elif lexema in ajratkichlar:
qator_natijasi.append(ajratkichlar[lexema])
elif lexema.isdigit() or lexema in konstantalar:
qator_natijasi.append(konstantalar.get(lexema, "N"))
elif '"' in lexema or "'" in lexema: # Agar qo'shtirnoq ichida bo'lsa
qator_natijasi.append("C")
else:
print(f"Nomalum lexema: {lexema}")
natijalar.append(" ".join(qator_natijasi))
df = pd.DataFrame({
"Kod Parchasi": qatorlar,
"Leksik Tahlil": natijalar
})
return df
misollar = [
int main() {
char str[] = "Salom, dunyo!";
char belgi = 'C';
char *natija;
// belgi uchrasani aniqlash
natija = strchr(str, belgi);
if (natija != NULL) {
std::cout << "Belgi topildi: " << natija - str + 1 << std::endl;
} else {
std::cout << "Belgi topilmadi." << std::endl;
}
return 0;
}
]
df = leksik_tahlil_to_df(misollar)
print(df)
|