Created
October 17, 2013 10:49
-
-
Save MrBlaise/7022859 to your computer and use it in GitHub Desktop.
Emelt informatika érettségi 2012 október - Színkép / Solution for Advanced Computer Science Matura 2012 october (Hungary)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
# Rostás Balázs - Emelt informatika érettségi 2012 október - Színkép | |
# 1. feladat | |
kepFajl = open("kep.txt", "r") | |
kepAdat = [ sor.strip("\n").split(" ") for sor in kepFajl ] | |
kepAdat = [ [ int(szam) for szam in lista ] for lista in kepAdat ] | |
kepAdat = [ kepAdat[index:index+50] for index in range(0, len(kepAdat), 50) ] | |
kepFajl.close() | |
print("1. feladat - kep.txt beolvasása - KÉSZ!\n") | |
# 2. feladat | |
print("2. feladat:\n") | |
szamBeker = [ int(elem) for elem in input("Kérem adjon meg egy RGB kódot R G B formátumban: ").split(" ")] | |
laposKepAdat = [elem for allista in kepAdat for elem in allista] | |
print("Van" if tuple(szamBeker) in set(tuple(kod) for kod in laposKepAdat) else "Nincs", "ilyen szín a képen.") | |
""" | |
if szamBeker in laposKepAdat: | |
print("A megadott szín megtalálható a képen!") | |
else: | |
print("A megadott szín nem található meg a képen!") | |
""" | |
# 3. feladat | |
print("\n3. feladat:\n") | |
print("Sorban:", kepAdat[34].count(kepAdat[34][7]), "Oszlopban:", [sor[7] for sor in kepAdat].count(kepAdat[34][7])) | |
""" | |
keresettKod = kepAdat[34][7] | |
sorSzamlalo = 0 | |
for elem in kepAdat[34]: | |
if keresettKod == elem: | |
sorSzamlalo += 1 | |
print("Sorban:", sorSzamlalo, end=" ") | |
oszlopSzamlalo = 0 | |
for sor in kepAdat: | |
if keresettKod == sor[7]: | |
oszlopSzamlalo += 1 | |
print("Oszlopban:", oszlopSzamlalo) | |
""" | |
# 4. feladat | |
print("\n4. feladat:\n") | |
szinkod = {(255,0,0) : "Vörös.", (0,255,0) : "Zöld.", (0,0,255) : "Kék."} | |
print("A leggyakoribb szín a három (Vörös, Kék, Zöld) közül a",\ | |
max([ [szinkod[kulcs], laposKepAdat.count(list(kulcs))] for kulcs in szinkod.keys() ], key=lambda x: x[1])[0]) | |
''' | |
szinSzamlalo = 0 | |
for szin in laposKepAdat: | |
if szin == [255, 0, 0]: | |
szinSzamlalo += 1 | |
vorosSzam = szinSzamlalo | |
szinSzamlalo = 0 | |
for szin in laposKepAdat: | |
if szin == [0, 255, 0]: | |
szinSzamlalo += 1 | |
zoldSzam = szinSzamlalo | |
szinSzamlalo = 0 | |
for szin in laposKepAdat: | |
if szin == [0, 0, 255]: | |
szinSzamlalo += 1 | |
kekSzam = szinSzamlalo | |
szinSzamlalo = 0 | |
if max(vorosSzam, zoldSzam, kekSzam) == kekSzam: | |
print("Kék", end=" ") | |
elif max(vorosSzam, zoldSzam, kekSzam) == zoldSzam: | |
print("Zöld", end=" ") | |
else: | |
print("Vörös", end=" ") | |
print("színből van a legtöbb.") | |
''' | |
# 5. feladat | |
print("\n5.feladat - 3 képpontos keret hozzáadása a képhez - KÉSZ!\n") | |
for y in range(len(kepAdat)): | |
for x in range(len(kepAdat[y])): | |
if (x<=2) or (x>= len(kepAdat)-3) or (y<=3) or (y>= len(kepAdat)-3): | |
kepAdat[y][x] = [0,0,0] | |
# 6. feladat | |
print("6.feladat - keretes.txt létrehozása - KÉSZ!") | |
keretesFajl = open("keretes.txt", "w") | |
laposKepAdat = [elem for allista in kepAdat for elem in allista] | |
for kod in laposKepAdat: | |
print(' '.join(map(str,kod)), file=keretesFajl) | |
keretesFajl.close() | |
''' | |
for kod in laposKepAdat: | |
for szam in kod: | |
keretesFajl.write(str(szam)+" ") | |
keretesFajl.write("\n") | |
keretesFajl.close() | |
''' | |
# 7. feladat | |
print("\n7. feladat:\n") | |
balFelso = None | |
keppont = 0 | |
for y in range(len(kepAdat)): | |
for x in range(len(kepAdat[y])): | |
if kepAdat[y][x] == [255,255,0]: | |
keppont += 1 | |
if balFelso == None: | |
balFelso = [x,y] | |
jobbAlso = [x,y] | |
print("Kezd: ", balFelso[0]+1, ", ", balFelso[1]+1, sep="") | |
print("Kezd: ", jobbAlso[0]+1, ", ", jobbAlso[1]+1, sep="") | |
print("Képpontok száma:", keppont) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment