19ceng / ceng104pro Goto Github PK
View Code? Open in Web Editor NEWProgramlama-1
Programlama-1
Girilen herhangi bir n
sayısının faktöriyelini hesaplayan bir işlev tasarlayınız..
**ÖRNEK:** programınız ``fakt(5)`` için ``120`` değerini üretmelidir.
KOMBİNASYON: fakt(n)
işlevininden yaralanarak kombinasyon hesaplayan bir program yazınız.. kombinasyon(n,r):
ÖRNEK: kombinsayon(5,3)
için 10
sonucu elde edilmelidir.
NOT: C(n,r)= n ! / ( (n-r) ! * (r) ! )
dir.
replace_letter(s,ch,nch):
isminde s
stringindeki ch
karakterini, nch
karakteri ile değiştiren programı yazınız..
ÖRNEK: replace_letter("piton",'i','*')
için p*ton
şeklinde bir çıktı üretilmelidir..
a)
Argüman olarak alınan bir dizgide kaç tane sesli, kaç tane sessiz harf olduğunu söyleyen programı yazınız.
b)
Verilen bir dizgideki tüm sessiz harfleri büyük harfe çeviren programı yazınız..
hangi_boLge(x,y):
isminde, (x.y) ikilileri şeklinde girilen argümanlarla koordinat düzleminin hangi bölgesinde I,II,III,IV
olduğumuzu çıktı olarak üreten bir program(fonksiyon) gerçekleyiniz.
Liste metodlarını kullanarak argüman olarak girilen bir cümledeki en kısa/en uzun kelimeyi bulan ve bu kelimenin indisini döndüren fonksiyonu en az satırda kod yazarak gerçekleyiniz.
Karmaşık
sayıların mutlak değerini hesaplayan,kullanıcıgerçel
bir sayı girdiğinde hata mesajı veren doctest
eklentili bir progrm gerçekleyiniz.
ÖRNEK: Kullanıcı 3+4j
girdiğinde sonuç olarak 5
üretilmelidir.. 19,05
gibi bir gerçel sayı girildiğinde ise tasarımı size ait bir hata mesajı vermelidir.
my_replace(old,new,s)
isminde verilen bir metindeki herhangi bir karakteri belirtilen farklı bir karakterle değiştiren fonksiyonu tasarlayınız..
ÖRNEK:
my_replace(sesli, ' * ' , " fatih" )
fonksiyonu için f * t * h
çıktısı üretilmelidir.
Argüman olarak girilen herhangi bir cümlenin kelimelerinden rastgele anlamlı ya da anlamsız cümleler oluşturan bir işlev tasarlayınız..
iPUCU..! random() fonksiyonu ve randrange() fonksiyonu..
add_row(a)
işlevinden hareketle add_column(a)
işlevini tasarlayınız.
a= [ [ 1,2 ] , [ 3, 4] ]
liste biçiminde gösterilen 2x2 tipinden bir matris olsun.. add_row(a)
fonksiyonu
a=[ [ 1,2 ] , [ 2, 3 ] , [ 0 , 0 ] ]
biçiminde bir çıktı üretmektedir.. add_column(a)
işlevide benzer olarak aynı işi sütunlar üzerinde yapmalıdır.
NOT:
def add_row(a): sa=0 N=len(sa) nV=[ 0 ] * N a.append( nV[ : ] ) return a
Herhangi bir kelime listesindeki tüm kelimelerin sesli harf sayısını ekrana döken programı yazınız...
ÖRNEK: kelime=["spama","bungee","swallow"]
listesi için ekran çıktısı
spam:1
bungee:3
swallow:2
olmalıdır.
en_yakina_yuvarLa(f):
isminde, argüman olarak float
tipindeki sayıları alan ve aldığı argümanı en yakın tamsayıya(int)
yuvarlayan bir fonksiyon gerçeklemeniz beklenmektedir..
iPUCU: f-int(f)
ifadesinin size yol göstereceğini umuyorum :) !
İki vektörün skaler ve nokta çarpımını hesaplayan işlevleri yazınız..
ÖRNEK: a ve b iki vektör ve c bir skaler olsun.
a=[1 9]
, b=[ 0 5]
, c=7
değerleri için;
a*b=(1*0)+(9*5)=45
----> nokta çarpımı
a*c=[1 9]*7=[7 63]
------> skaler çarpım dır.
https://github.com/19ceng/ceng104pro/wiki
adresinden ulaşabileceğiniz ders slaytlarında ayrıntılı olarak yer alan mount listesi
ndeki elemanları ekrana yazdıran bir program gerçeklemeniz istenmektedir..
Fonksiyonunuz argüman olarak , bir liste ve listeden seçilen bir eleman(eşik değeri) girildiğinde listedeki eşik değerinin altındaki eleman sayısını hesaplamalı..
ÇEŞİTLEMELER:
V2)
Eşik değerinin altında kalan liste elemanlarını 0
; eşik değerini ve eşik değerinden büyük olan liste elemanlarını 1
yapsın.
ÖRNEK:seq=[1,4,5,3,9] listesi ve t=3 eşik değeri için üretilecek çıktı : versiyon 1 için: eşik değerinin altındaki eleman sayısı ( bu liste için 1) olmalıdır. versiyon 2 için: new_seq=[0 , 1 , 1 , 1 , 1 ] şeklinde bir liste olmalıdır.
Girilen herhangi bir n
değerine kadar fibonacci serisi
ni üreten bir program tasarlayınız..
ÖRNEK: fibonacci(6)
için 1 1 2 3 5 8
dizisi üretilmelidir..
fibonacci(6)
için toplam=1+1+2+3+5+8=20
NOT: altın oran
F sembolü ile gösterilmekte olup değeri F=1,618
dir. fibonacci serilerinde terim sayısı arrtıkça ardışık iki terimin( n ve n-1 için) oranı(n / n-1) altın orana yaklaşmaktadır.
Lambda
notasyonu kullanarak, kullanıcı tarafından girilen cümledeki en uzun kelimeyi bulup ekranda çıktı olarak gösteren en_uzun_keLime(cumle):
isminde bir program yazmanız beklenmektedir..
Lambda
notasyonu kullanarak max(x,y)
işlevini gerçekleştirmeniz beklenmektedir..
NOT: Tek satırlık bir kodla bunu halledebilirsiniz.. :)
İç içe liste formunda verilmiş olan bir sayı listesindeki her elemanın, elemanlar toplamını ve eleman sayısı veren programı yazınız..
ÖRNEK: liste=[ [1,2,3 ] , [4,5 ] , [6,7,8,9 ] , [0 ] ]
listesi için üretilecek olan çıktı;
liste[0] = 3 eleman, toplam=6
liste[1] = 2 eleman,toplam=9
liste[2] = 4 eleman, toplam=30
liste[3] = 1 eleman, toplam=0
şeklinde olmalıdır..
Herhangi iki matrisin çarpımı hesaplayan işlevi tasarlayınız..
iPUCU: iç içe 3 tane for döngüsü kullanmanız beklenmektedir..
for i in......
....... for k in.....
...............t=0
...............for j in........
................... t = t + .....
..............c [ i ] [ k ] = .........
Kullanıcıdan TL miktarını aldıktan sonra, bir web sayfasından kur miktarını öğrenip, elimizdeki TL ile kaç $(dolar) alabileceğimizi döndüren programı yazınız..
KUR=TL/$
dır.
ÖRNEK: 150 TL
miz var ve web sayfasında kur=1,5
olarak gözüküyor olsun bu para ile 100$
alabiliriz..
iPUCU: urllib2
kitaplığını ve str.find
komutunu kullanmanız gerekmektedir.
AÇIKLAMA: kur miktarını öğrenmek için kullanmanız gereken html web sayfası en kısa zamanda burda yayınlanacaktır..
is_whitespace(ch):
isminde ch dizgisi için beyaz boşluk kontrolü yapan bir program yazınız..
NOT: yazacağınız program ch beyaz boşluk ise True
; değilse False
döndürmelidir.
Argümanları kullanıcıdan girdi olarak alan bmi_hesapla(ağırlık,boy):
isminde bir fonksiyon tasarlamanız istenmektedir.. Bu fonksiyon bmi<18.5
için zayıfsınız; 18.5<bmi<25
için normalsiniz; bmi>=25
için şişmansınız sonuçlarını döndürmelidir..
NOT: bmi, vücut ağırlığımızın(kg), boy uzunluğumuzun(metre cinsinden) karesine oranıdır. yani bmi=vücut ağırlığı/boy**2
str_hist(dizgi):
isminde argüman olarak girilen dizgideki harflerin tekrar edilme sıklığını bulan programı yazın..
ÖRNEK: programınız merhaba dunya
dizgisi çin m=1,e=2,...,a=3,t=0
şeklinde bir çıktı üretmelidir..
Ders slaytlarında yer alan copy_file
programına uygun bir şifreleme algoritması kullanarak şifre eklentisi yapmanız istenmektedir..
NOT: şifreleme algoritmaları;
iPUCU: rot13 algoritması
str_find(s1,s2)
isminde s1 stringi içerisinde s2 stringini arayan fonksiyonu tasarlayınız..
Parametre olarak 10'luk tabanda(decimal) girilen bir sayıyı 2'lik tabana(binary) dönüştüren dec2bin
isminde bir program yazmanız beklenmektedir.
ÖRNEK: 10'luk tabandaki 19
sayısını girdiğinizde programınız bunu 2'lik tabana dönüştürerek 10011
çıktısını üretmelidir.
ÇEŞİTLEMELER: bin2dec
,bin2hex``,.....şeklinde arttıralabilir..
DAHA İYİSİ: base2base(N.gt.ct):
herhangi bir tabandan başka bir tabana dönüşüm.Burada N gt tabaninda bir sayi.. ct ise N sayisini dönüştürmek istediğimiz taban..
gt ve ct herhangi bire taban olabilirler: bin,dec,oct,hex
PROBLEM-1: Kendisine parametre olarak sağlanan sayı listesindeki en büyük değeri bulan programı tasarlayınız..
PROBLEM-2: Sayı listesini tersten yazdıran program..
PROBLEM-3: Girilen sayı listesindeki rakamlarla oluşturulabilecek en büyük sayıyı oluşturma... arasınav sorusuydu :)
Python ile Python IDLE arasındaki farkı açıklayınız.
1)
recursive_max
Verilen bir listedeki en büyük elemanı bulan işlevi özyineli olarak gerçekleyiniz..
2)
flatten
Listelerin listesi biçimindeki bir listeyi tek bir liste biçiminde yazan fonksiyonu tasarlayınız..
3)
Listelerin listesi biçiminde verilen bir listenin derinliğini hesaplayıp,çıktı olarak en içteki listeyi döndüren programı yazınız.
Girilen herhangi bir sayının rakamlarıyla oluşturulabilecek en büyük sayıyı çıktı olarak üreten bir program yazmanız beklenmektedir..
ÖRNEK: 1250
sayıyı girildiğinde programınız sonuç olarak 5210
üretmelidir.
Girilen n
değeri için fibonacci serisi
üreten bir fonksiyon gerçekleyiniz.
ÖRNEK: fibonacci(10)
için 1 1 2 3 5 8
serisini elde etmeniz beklenmektedir.
ÇEŞİTLEMELER:
1
Fibonacci serisini elde ettikten sonra bu serinin elemanlar toplamını hesaplayan bir program yazmak..
2
altın oran
fibonacci değeri ne..?
**ÖRNEK:** ``101/100 :``? altın oran..
anagram
: bir kelimedeki harflerin yerlerinin değiştirilerek aynı harflerden oluşan farklı bir kelime üretmek.. örnek: earth/ heart
Sesli harfler için anagram kontrolü yapan bir program yazınız..
iPUCU: ikinci stringtede aynı sayıda sesli harf var mı..?
NOT: histogram kullanmanızda gerekmektedir..
add_row(a)
, add_column(a)
, add_row_öne(a)
, add_column_öne
işlevlerini kullanarak array_pading
fonksiyonunu tasarlayınız.
AÇIKLAMA: Tasarlamanız beklenen fonksiyon;
a = [ [1, 2 ,3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] ]
matrisi için ,
a = [ [ 1 , 1 , 2 , 3 ,3 ] , [ 1 , 1 , 2, 3 , 3 ] , [ 4 , 4 , 5 , 6 , 6 ] , [ 4 , 4 , 5 , 6 , 6 ] , [ 7 , 7 , 8 , 9 , 9 ] , [ 7 , 7 , 8 , 9 , 9 ] ]
matrisini üretmelidir.
NOT: Potansiyel bir sınav sorusu formatıdır..!!!
Verilen bir listeyi ilgili pozisyona göre aynalayan def aynaLa(pos,seq):
işlevini tasarlayınız.
ÖRNEK: aynaLa(2,seq)
seq=[ 'a' , 'b' , 'c' , 'd' , 'e' ]
için ekran çıktısı :
[ 'd' ,'e' , 'c' , 'a' , 'b' ]
biçiminde olmalıdır..
Ders slaytlarında yer alan PB:5661
kodlu double_stuff
ve double_stuff V2
işlevlerini tasarlayınız.
1)
Kendisine argüman olarak verilen bir metindeki her satırın uzunluğunu hesaplayan programı yazınız.
2)
Yorum satırları diyezlerle(#) belirtilmiş olan bir metinde yorumları bir dosyaya , metni başka bir dosyaya kaydeden programı yazınız.
3)
Argüman olarak verilen bir metindeki( txt , csv,.. herhangi bir metin dosyası olabilir ) parentez dengesini kontrol ederek True/False şeklinde sonuç üreten işlevi tasarlayınız.
4)
Sonuç olarak sadece kullanıcının kullandığı işletim sisteminin adını üreten fonksiyonu tasarlayınız..
5)
sys.argv
komutunu kullanarak temelde dosya kopyalama işi yapan fakat , orjinal metni bir dosyada tutarken, kopyasını şifreleyerek farklı bir dosyaya kaydeden fonksiyonu tasarlayınız..
NOT: Haftanın ilk quiz sorusudur..!!
6)
some.csv
adında kişilere ait birden fazla veriyi bir arada tutan bir csv dosyası tasarlayınız.
ÖRNEK: some.csv( öğrenci_adı, arasınav_notu , final_sınav_notu)
şeklinde olabilir.
NOT: Haftanın diğer quiz sorusudur..!!
def max(x,y):
işlevinden yararlanarak aynı görevi yapan,fakat argüman sayısı belirsiz olan bir max
fonksiyonu gerçekleyiniz..
NOT: max(12,5)
fonksiyonu çıktı olarak, girilen(12,5) sayılarından büyük olanı(12) üretir.
kok_hesapLa(a,b,c):
isminde ikince dereceden bir denklemin katsayılarını argüman olarak alan ve bu denklemin köklerini hesaplayıp sonuç olarak döndüren bir program yazmanız beklenmektedir.
NOT: yazacağınız program diskiriminantın negatif olduğu durumu idare etmelidir.
1)
max_sparse_matrix
Argüman olarak verilen seyrek bir matristeki en büyük elemanı döndüren işlevi sözlük kullanarak gerçekleyiniz..
2)
add_sparse_matrix
Verilen iki seyrek matrisi toplayan işlevi gerçekleyiniz..
3)
Argüman olarak verilen bir seyrek matrisi listelerin listesi formatında yazan programı tasarlayınız..
4)
Özyineli faktöriyel
işlevini bellekleme
ile iyileştiriniz..
5)
Özyineli Histogram`` işlevini value(değer)'ya göre sıralayan programı yazınız...
NOT: Ayrıntılar ve ipuçları için dersin ilgili slaytına bakmanız önerilir..!
1)
Bir tuple'ın elemanlarını nasıl güncelleriz..?
2)
Ders slaytlarında PB:6374
koduyla yer alan make_empty
ve insert_at_end
işlevlerini gerçekleyiniz.
Çarpım tablosunu hesaplayan bir program gerçekleyiniz..
ÇEŞİTLEMELER:
1
Çarpım tablosunu satir-sütun formunda hesaplayan bir program yazınız..
**ÖRNEK:** 4satır-3sütun için;
``123
2..
3..
4..`` şeklinde bir çıktı elde etmeliyiz..
``2
Çarpım tablosunu üçgen biçiminde oluşturma..
**ÖRNEK:** ÇIKTI
``1
2 4
3 6 9
4 8 12 16`` şeklinde bir çıktı elde etmeliyiz..
NOT: Satır-sütun ve üçgen formu ile iligili ayrıntıları ders sunumlarında bulabilirsiniz..
dort_isLem(x,y,islec):
biçiminde üç tane argüman alan matematiksel işlemler yapıp sonucu çıktı olarak döndüren basit bir kod yazmanız beklenmektedir.Burada program kullanıcıdan aldığı islec argümanına göre, x ve y arasında matematiksel işlemler yapmalıdır..
ÖRNEK: def dort_isLem(10,9,+):
ifadesinin çıktısı 19
olmalıdır..
NOT: kullanılması gereken islecler +,-,*,/,%
dir.
fruit="banana"
şeklindeki bir dizginin elemanlarını fruit[0]=b
,fruit[1]=a
,...,fruit[5]=a
şeklinde yazdırmanız istenmektedir..
**NOT:**Ders slaytlarında yer alan PB:5359 numaralı kodu incelemenizde fayda var :)
Herhangi iki polinomun çarpımını hesaplayan işlevi yazınız..
27 numaralı çalışma sorusunu;
liste= [ [1,2,3 ] , [4,5 ] , 9 , [6,7,8,9 ] , 7 , [0 ] ]
şeklinde bir liste geldiğinde durumu idare edecek biçimde güncelleyiniz..
AÇIKLAMA: Yani listenin tüm elemanları birer liste olmadığnda programınız yine çs:27 deki sonucu üretsin..
Listeler için geçerli tüm metodları tasarlamanız beklenmektedir..
NOT: Bu metodlar; ``append , insert , pop, capitalize, capswords, index, extend, remove, sort, reverse, count, vs dir..
ÖRNEK: pop() gerçekleme:
def make_pop(item):
liste=[1,"a",5,8,"f",3]
a=len(liste)
b=liste.index(item)
c=b+1
liste=liste[:b] + liste[c:a]
print item
print liste
Kullanıcıdan istenen dizin altındaki tüm Python kodlarını doctestten geçirip raporlayan programı gerçekleyiniz..
Girilen herhangi bir sayının basamaklar toplamını hesaplayan basamaklar_toplami(sayi)
ismnde bir fonksiyon gerçekleyiniz..
ÖRNEK: Sayi olarak 1905
girildiğinde programınız sonuç olarak 15
üretmelidir..
TÜREVİ OLAN ÇALIŞMA SORULARI:
1
Sayı içerisinde tek olan rakamların toplamını hesaplama..
2
Basamakları ters sırada yazdırma.. Girilen sayi 1453
ise çıktı 3541
olmalı..
`Basamakları ters sırada yazdırdıktan sonra öncekiyle olan farkıda hesaplama..Yani|3541-1453|
değerinide hesaplatalım.
3
Basamak değeri 0
ve 5
olanları saymak.. mesala 1250
için sonuç 2
üretsin..Çünkü 1 adet 5 ve 1 adet 0 var..
4
Sayının basamaklarından en büyüğünün değeri..
5
Girilen sayı içerisinde en büyük olan rakamın bulunduğu basamak hangisi? Birler, onlar, yüzler,...
make_matrix(row,columns)
isminde argüman olarak satır ve sütun alan bir matris fonksiyonu tasarlayınız..
NOT: Bu soruyla ilgili ayrıntı ve çeşitlemeler için; linke tıklayınız.
https://github.com/19ceng/ceng104pro/blob/master/src/d09list.py
Bir sayının tek mi çift mi olduğunu True veya False olacak şekilde ekrana yazdırınız.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.