-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProblemList
309 lines (201 loc) · 12 KB
/
ProblemList
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
"""
Tebrikler! Bölümü başarıyla bitirdiniz. Şimdi, öğrendiklerinizin akılda kalması için ödevinizi yapma zamanı!
Not: Buradaki tüm problemler sizin algoritma yeteneğinizi oldukça geliştirecektir. O yüzden zorlandığınız noktalarda pes etmeyin. Üzerine kafa yormaya ve sürekli denemeye çalışın.
; Problem 1
; Kullanıcıdan aldığınız bir sayının mükemmel olup olmadığını bulmaya çalışın.
; Bir sayının kendi hariç bölenlerinin toplamı kendine eşitse bu sayıya "mükemmel sayı" denir. Örnek olarak, 6 mükemmel bir sayıdır. (1 + 2 + 3 = 6)
Problem 2
Kullanıcıdan aldığınız bir sayının "Armstrong" sayısı olup olmadığını bulmaya çalışın.
Örnek olarak, Bir sayı eğer 4 basamaklı ise ve oluşturan rakamlardan herbirinin 4. kuvvetinin toplamı( 3 basamaklı sayılar için 3.kuvveti ) o sayıya eşitse bu sayıya "Armstrong" sayısı denir.
Örnek olarak : 1634 = 1^4 + 6^4 + 3^4 + 4^4
Problem 3
1'den 10'kadar olan sayılarla ekrana çarpım tablosu bastırmaya çalışın.
İpucu: İç içe 2 tane for döngüsü kullanın. Aynı zamanda sayıları range() fonksiyonunu kullanarak elde edin.
Problem 4
Her bir while döngüsünde kullanıcıdan bir sayı alın ve kullanıcının girdiği sayıları "toplam" isimli bir değişkene ekleyin. Kullanıcı "q" tuşuna bastığı zaman döngüyü sonlandırın ve ekrana "toplam değişkenini" bastırın.
İpucu : while döngüsünü sonsuz koşulla başlatın ve kullanıcı q'ya basarsa döngüyü break ile sonlandırın.
Problem 5
1'den 100'e kadar olan sayılardan sadece 3'e bölünen sayıları ekrana bastırın. Bu işlemi continue ile yapmaya çalışın.
Problem 6
Buradaki problemin çözümünü derslerimizde özellikle öğrenmedik. Burada mantık yürüterek ve list comprehension kullanarak 1'den 100'e kadar olan sayılardan sadece çift sayıları bir listeye atmayı yapmayı çalışın.
Not: Programlamada her detayı öğrenemeyiz. Bunun için bazı yerlerde deneme yanılma yoluyla da öğrendiğimiz şeyler olur. Bu problemde deneme yanılma yoluyla list comprehension'ın koşullu durumlarla kullanımını öğreneceksiniz.
İpucu: Basit düşünmeye çalışın.
Problem 7
listedeki tekleri ve ciftleri ayri ayri bastir ve toplamlarini ayri ayri goster ve kucukten buyuge sirala
list = [1,3,4,5,6,7,8,12,54,23,11,75,22,9]
Problem 8
PRIME NUMBERS from 1 to 100
Problem 9
FACTORIALS from 1 to 100
Problem 10
FIBONACCI NUMBERS from 1 to 100
Problem 11
ATM WITH LOOPS
Problem 12
LOGIN PANEL WITH LOOPS
Problem 13
PALINDROME CHECK INPUT
s = "A man , a plan , a canal: Panama"
explanation: "amanaplanacanalpanama"
output: True
Problem 14
list = [1,3,4,5,6,7,8,12,54,23,11,75,22,9]
listede varmi in list fonksiyonu while true ile loopda hangi index te
Problem 15
Digit mountain in range(1,10)
Problem 16
ONGUN mountain
Problem 17
Kullanıcıdan alınan boy ve kilo değerlerine göre beden kitle indeksini hesaplayın ve şu kurallara göre ekrana şu yazıları yazdırın.
Beden Kitle İndeksi: Kilo / Boy(m) * Boy(m)
BKİ 18.5'un altındaysa -------> Zayıf
BKİ 18.5 ile 25 arasındaysa ------> Normal
BKİ 25 ile 30 arasındaysa --------> Fazla Kilolu
BKİ 30'un üstündeyse -------------> Obez
Problem 18
Kullanıcıdan 3 tane sayı alın ve en büyük sayıyı ekrana yazdırın.
Problem 19
Kullanıcının girdiği vize1,vize2,final notlarına notlarına göre harf notunu hesaplayın.
Vize1 toplam notun %30'una etki edecek.
Vize2 toplam notun %30'una etki edecek.
Final toplam notun %40'ına etki edecek.
Toplam Not >= 90 -----> AA
Toplam Not >= 85 -----> BA
Toplam Not >= 80 -----> BB
Toplam Not >= 75 -----> CB
Toplam Not >= 70 -----> CC
Toplam Not >= 65 -----> DC
Toplam Not >= 60 -----> DD
Toplam Not >= 55 -----> FD
Toplam Not < 55 -----> FF
Problem 20
Şimdi de geometrik şekil hesaplama işlemi yapalım. İlk olarak kullanıcıdan üçgenin mi dörtgenin mi tipini bulmak istediğini sorun.
Eğer kullanıcı "Dörtgen" cevabını verirse , 4 tane kenar isteyip bu dörtgenin kare mi , dikdörtgen mi yoksa sıradan bir dörtgen mi olduğunu bulmaya çalışın.
Eğer kullanıcı "Üçgen" cevabını verirse , 3 tane kenar isteyip bu üçgenin ikizkenar mı , eşkenar mı yoksa sıradan bir üçgen mi olduğunu bulmaya çalışın. Eğer verilen kenarlar bir üçgen belirtmiyorsa, ekrana "Üçgen belirtmiyor" şeklinde bir yazı yazın.o
Üçgen belirtme şartını bilmiyorsunuz internetten bakabilirsiniz.
Ayrıca , bu problemde mutlak değer bulmaya ihtiyacınız olacak. Bunun için, Pythonda hazır bir fonksiyon olan abs() fonksiyonunu kullanabilirsiniz. Kullanımı şu şekildedir ;
abs(-4)
4
abs(5)
5
Not: Bu problem sizin algoritma kurma becerinizi bir hayli geliştirecektir.
Problem 21
Kullanıcıdan aldığınız 3 tane sayıyı çarparak ekrana yazdırın. Ekrana yazdırma işlemini format metoduyla yapmaya çalışın.
Problem 22
Kullanıcıdan aldığınız boy ve kilo değerlerine göre kullanıcının beden kitle indeksini bulun.
Beden Kitle İndeksi : Kilo / Boy(m) Boy(m)
Problem 23
Bir aracın kilometrede ne kadar yaktığı ve kaç kilometre yol yaptığı bilgilerini alın ve sürücünü toplam ne kadar ödemesini gerektiğini hesaplayın.
Problem 24
Kullanıcıdan ad,soyad ve numara bilgisini alarak bunları alt alta ekrana yazdırın.
Problem 25
Kullanıcıdan iki tane sayı isteyin ve bu sayıların değerlerini birbirleriyle değiştirin.
Problem 26
Kullanıcıdan bir dik üçgenin dik olan iki kenarını(a,b) alın ve hipotenüs uzunluğunu bulmaya çalışın.
Hipotenüs Formülü: a^2 + b^2 = c^2
Problem 27
we have dataScientist list. First reverse it then count all character lenght
assume that we have char limit 100 so how many empty limits we have remainindataScientist = ['Python', 'R', 'SQL', 'Git', 'Tableau', 'SAS']
"""
# Problem 28
# 1'den 1000'e kadar olan sayılardan mükemmel sayı olanları ekrana yazdırın. Bunun için bir sayının mükemmel olup olmadığını dönen bir tane fonksiyon yazın.
# Bir sayının bölenlerinin toplamı kendine eşitse bu sayı mükemmel bir sayıdır. Örnek olarak 6 mükemmel bir sayıdır (1 + 2 + 3 = 6).
# Problem 29
# Kullanıcıdan 2 tane sayı alarak bu sayıların en büyük ortak bölenini (EBOB) dönen bir tane fonksiyon yazın.
# Problem için şu siteye bakabilirsiniz;
# http://www.matematikciler.com/6-sinif/matematik-konu-anlatimlari/1020-en-kucuk-ortak-kat-ve-en-buyuk-ortak-bolen-ebob-ekok
# Problem 30
# Kullanıcıdan 2 tane sayı alarak bu sayıların en küçük ortak katlarını (EKOK) dönen bir tane fonksiyon yazın.
# Problem için şu siteye bakabilirsiniz;
# http://www.matematikciler.com/6-sinif/matematik-konu-anlatimlari/1020-en-kucuk-ortak-kat-ve-en-buyuk-ortak-bolen-ebob-ekok
# Problem 31
# Kullanıcıdan 2 basamaklı bir sayı alın ve bu sayının okunuşunu bulan bir fonksiyon yazın.
# Örnek: 97 ---------> Doksan Yedi
# Problem 32
# 1'den 100'e kadar olan sayılardan pisagor üçgeni oluşturanları ekrana yazdıran bir fonksiyon yazın.(a <= 100,b <= 100)
# Problem 33
# Random bir sayi uret 1 ile 1000 arasinda olsun. 10 tane tahmin hakki tanimlansin ve her yapilan secim arasi bekleme suresi 3 saniye olsun.
# Her secimden sonra kalan hak ekrana bastirilsin. Secimler sayi buyuk yada kucuk diye yonlendirilsin ve dogru secim yapildiginda ise kacinci tahminde sayinin bulundugu ekrana yazilsin.
# Problem 34
# Bu projede ise 4 tane sınıfı oluşturun.
; Hayvan Sınıfı ------> Bütün hayvanların ortak özelliklerinin toplandığı sınıf olacak.
; Köpek Sınıfı ------> Bu sınıf, hayvan sınıfından miras alan bir sınıf olacak. Ayrıca bu sınıfa köpeklere ait ek özellikler ve metodlar ekleyin.
; Kuş Sınıfı ------> Bu sınıf, hayvan sınıfından miras alan bir sınıf olacak. Ayrıca bu sınıfa kuşlara ait ek özellikler ve metodlar ekleyin.
; At Sınıfı ------> Bu sınıf, hayvan sınıfından miras alan bir sınıf olacak. Ayrıca bu sınıfa atlara ait ek özellikler ve metodlar ekleyin.
; Problem 35
; Elinizde stringlerin bulunduğu bir liste bulunduğunu düşünün.
; liste = ["345","sadas","324a","14","kemal"]
; Bu listenin içindeki stringlerden içinde sadece rakam bulunanları ekrana yazdırın. Bunu yaparken try,except bloklarını kullanmayı unutmayın.
; Problem 36
; Bir sayının çift olup olmadığını sorgulayan bir fonksiyon yazın. Bu fonksiyon, eğer sayı çift ise return ile bu değeri dönsün. Ancak sayı tek sayı ise fonksiyon raise ile ValueError hatası fırlatsın.
; Daha sonra, içinde çift ve tek sayılar bulunduran bir liste tanımlayın ve liste üzerinde gezinerek ekrana sadece çift sayıları bastırın.
#Problem 37
#1 ile 1000 arasindaki composite sayilari yazdirin mumkunse fonksiyon
#Problem 38
# Uncle's Problem
# 100 kisilik bir halka ve ortasindan ilk olarak 1 numarayi itip 1 atla ve sonrakini it halka bitene kadar devam et son kalan kisi numarasi
#Bu sefer 2 numarayi cikart halkada bir kisi kalana kadar devam et kalan kisinin numarasini print et
# Problem 39
#Luhn's Algorithm. CC validator and generator. Check the algorithm and create multiple valid card numbers.Check them online if it is true or false.
#Problem 40
# Tc kimlik no generator and validator
#Problem 41
#https://www.youtube.com/watch?v=9-vOd0UzHKY&list=PLQVvvaa0QuDeAams7fkdcwOGBpGdHpXln&index=5
#Tic Tac Toe game
#Problem 42
#Sum every digit in this list
# list = [1,2,6,12,234,"123","12344","osman","helloworld123",(123,3333,11123)]
#Problem 43 (2D array)
#lst = [[1,2,3],[4,5],[6]]
#Output should be [1,2,3,4,5,6]
#Problem 44
# Remove the duplicates and print as list
# lst = [1,1,2,3,3,3,4,5,5]
#Problem 45
# srt = "111101000101010101110001010000"
# How many zeros in srt ?
#Problem 46
# dosya.txt de ogrenci isimleri ve aldiklari 3 adet not var.
# 1 ve 2 not yuzde 30 etkilerken 3 not yuzde 40 etkiliyor
# Soru 1 ----------> alinan notlari isim --> not olarak gosterecek sekilde txt dosyasi olusturun
# Soru 2 ----------> Gecenlerin ve Kalanlarin listesini ayri ayri yapiniz.
#Problem 47
#futbolcular.txt de karma futbolcu isimleri ve takimmlari var
#tum futbolculari kendi takimlarina gore listeye ayirip bu listeyi herbir takim icin ayri ayri txt yapin
#Problem 48
#Elinizde bir dikdörtgenin kenarlarını ifade eden sayı çiftlerinin bulunduğu bir liste olsun.
#
# [(3,4),(10,3),(5,6),(1,9)]
#
#Şimdi kenar uzunluklarına göre dikdörtgenin alanını hesaplayan bir fonksiyon yazın ve bu listenin her bir elemanına bu fonksiyonu uygulayarak ekrana şöyle bir liste yazdırın.
#
# [12, 30, 30, 9]
#
#Not : map() fonksiyonunu kullanmaya çalışın.
#Problem 49
#Elinizden her bir elemanı 3'lü bir demet olan bir liste olsun.
#
# [(3,4,5),(6,8,10),(3,10,7)]
#
#Şimdi kenar uzunluklarına göre bu kenarların bir üçgen olup olmadığını dönen bir fonksiyon yazın ve sadece üçgen belirten kenarları bulunduran listeyi ekrana yazdırın.
#
# [(3, 4, 5), (6, 8, 10)]
#
#Not: filter() fonksiyonunu kullanmaya çalışın.
#Problem 50
#Elinizde şöyle bir liste bulunsun.
#
# [1,2,3,4,5,6,7,8,9,10]
#
#Bu listenin içindeki çift sayıların toplamını ekrana yazdıran bir fonksiyon yazın.
#
#Not: İlk önce filter() fonksiyonu ile çift sayıları ayıklayın. Daha sonra reduce() fonksiyonunu kullanın.
#Problem 51
#Elinizde isimlerin ve soyisimlerin bulunduğu iki tane liste olsun.
#
# isimler -----> ["Kerim","Tarık","Ezgi","Kemal","İlkay","Şükran","Merve"]
#
# soyisimler -----> ["Yılmaz","Öztürk","Dağdeviren","Atatürk","Dikmen","Kaya","Polat"]
#
#Bu isimleri ve soyisimleri sırasıyla eşleştirin ve ekrana alt alta isimleri ve soyisimleri yazdırın.
#Not: zip() fonksiyonunu kullanmaya çalışın.