C ve Python hakkında bilgi edinmek istiyorsanız aşağıdaki bağlantıları kullanarak notlarıma ulaşabilirsiniz.
C/C++ Temelleri - Bilgisayar Programlama Ders Notları
Python Notes
Hazırlayanlar: Mascar & vancoondehni
Bu konumuzda birkaç örnek yapacağız.
8 bölünen Sayıların Ortalaması
1 den 100’e kadar 8 bölünen tam sayılarının ortalaması kaçtır
Python ile
Python:
toplam=0
adet=0
for i in range(1,100):
if(i%8==0):
toplam=toplam+i
adet=adet+1
ortalama=toplam/adet
print(ortalama)
Python:
toplam=0
adet=0
for i in range(8,100,8):
toplam=toplam+i
adet=adet+1
ortalama=toplam/adet
print(ortalama)
C ile
C:
#include <stdio.h>
int ucgenSayisiMi(int sayi){
if(sayi==1)
return 1;
else{
for (int i=0;i<10000;++i){
int temp=i*(i+1)/2;
if(temp>sayi)
return 0;
if(temp==sayi)
return 1;
}}
}
int main(){
printf("%d\n",ucgenSayisiMi(10)) ;
printf("%d\n",ucgenSayisiMi(15));
printf("%d\n",ucgenSayisiMi(16)) ;
Asal Sayı Mı
Asal Sayı : 1 ve kendisinden başka pozitif bölenleri olmayan sayıya asal sayı denir. 2,3,5,7,11 asalsayıdır.
4 6,8,10 asal sayı değildir.
Sayi/2 kadar herhangi bir sayıya bölünürse asal sayı degildir.
for i in range(2,sayi/2):
if(sayi%i==0):
return False
Python ile
Python:
def asalSayiMi(sayi):
for i in range(2,int(sayi/2)+1):
if(sayi%i==0):
return False
return True
print(asalSayiMi(7))
print(asalSayiMi(8))
print(asalSayiMi(13))
print(asalSayiMi(21))
C ile
C:
#include <stdio.h>
int asalSayiMi(int sayi){
for(int i=2;i<sayi/2 +1;++i){
if(sayi%i==0)
return 0;
}
return 1;
}
int main(){
printf("%d\n",asalSayiMi(7));
printf("%d\n",asalSayiMi(8));
printf("%d\n",asalSayiMi(13));
printf("%d\n",asalSayiMi(21));
}
Üçgen Tipi
3,4,5 çeşitkenar ; 4,4,5 ikizkenar ; 4,4,4 eşkenar
Eşkenar üçgen ikizkenar üçgendir.
•Herhangi iki kenar ikilisi eşit değilse çeşitkenardır.
•Herhangi iki kenar ikilisi eşitse ya ikizkenar ya eşkenardır.
•Eğer üçüncü kenar ikilisi de eşitse eşkenar üçgendir.Değilse ikizkenar üçgendir.
(kenar1,kenar2); (kenar2,kenar3); (kenar1,kenar3);
Python ile
Python:
def ucgentipi(kenar1,kenar2,kenar3):
if(kenar1==kenar2 or kenar2==kenar3):
if(kenar1==kenar3):
return 'eskenar'
else:
return 'ikizkenar'
return 'cesitkenar'
print(ucgentipi(3,4,5))
print(ucgentipi(4,4,5))
print(ucgentipi(4,4,4))
C ile
C:
#include <stdio.h>
char *ucgentipi(float kenar1,float kenar2,float kenar3){
if(kenar1==kenar2 || kenar2==kenar3){
if(kenar1==kenar3)
return "eskenar";
else
return "ikizkenar";
}
return "cesitkenar";
}
int main() {
printf("%s\n",ucgentipi(4,4,5));
printf("%s\n",ucgentipi(4,4,4));
return 0;
}
Birinci dereceden denklem
m z + b= y -> z = (y –b) / m
2 z +6=10
2z =10-6
2z=4
z=2
2 z -6=10
z= (10 – –6) /2 =16/2=8
Python ile
Kod:
def cozBirinciDenklem(egim,sabit,sonuc):
return (sonuc-sabit)/egim
print( cozBirinciDenklem(2,6,10))
print( cozBirinciDenklem(2,-6,10))
C ile
C:
#include <stdio.h>
float cozBirinciDenklem(float egim,float sabit,float sonuc){
return (sonuc-sabit)/egim;
}
int main(){
printf("%f\n",cozBirinciDenklem(2,6,10));
printf("%f\n",cozBirinciDenklem(2,-6,10));
}
İkinci Dereceden Denklem Kökleri
ax^2 +bx+c=0
Det=b^2 -4ac Reel sayi kökler sıfırdan büyük veya eşit olmalı.
Python ile
Kod:
import math
def denklemKokleri(a,b,c):
det = (b*b) - (4*a*c)
if(det<0):
print('Reel kok yoktur')
return None
cozum1 = (-b-math.sqrt(det))/(2*a)
cozum2 = (-b+math.sqrt(det))/(2*a)
return cozum1, cozum2
print(denklemKokleri(1,6,9))#x^2 +6x+9=0
print(denklemKokleri(1,-6,9))#x^2 -6x+9=0
print(denklemKokleri(1,-8,15))#x^2 -8x+15=0
print(denklemKokleri(1,8,15))#x^2 +8x+15=0
C ile
C:
#include <stdio.h>
#include <math.h>
void denklemKokleri(float a,float b,float c,float *cozum1,float *cozum2){
float det = (b*b) - (4*a*c);
if(det>=0){
*cozum1 = (-b-sqrt(det))/(2*a);
*cozum2 = (-b+sqrt(det))/(2*a);
}
}
int main(){
float cozum1=0;
float cozum2=0;
denklemKokleri(1,6,9,&cozum1,&cozum2);//x^2 +6x+9=0
printf("(%f %f )",cozum1,cozum2);
}
Arama Yapma
Bir listenin içinde eleman var mı ?
liste=[11,99,88,77,66,55,33,44,22,1]
#Listenin içerisinde 88 varmı ?
Python ile
Python:
def varMi(liste,anahtar):
for elem in liste:
print(elem)
if elem==anahtar:
return True
return False
liste=[11,99,88,77,66,55,33,44,22,1]
print(varMi(liste,88))
C ile
C:
#include <stdio.h>
int varMi(int liste[],int boyut,int anahtar){
for(int i=0;i<boyut;++i){
if (liste[i]==anahtar)
return 1;
}
return 0;
}
int main(){
int liste[]={11,99,88,77,66,55,33,44,22,1};
int boyut=sizeof(liste)/sizeof(int);
printf("%d \n",varMi(liste,boyut,88));
}
Üçgen Sayılar
1,2,3,4,5,6,7,8,9,10,11,12,13,14….. pozitif doğal sayılar ise üçgen sayılar; 1,3,6,10,15… dir.
1
3 = (1+2)
6 = (1+2+3)
10 = (1+2+3+4)
15 = (1+2+3+4+5)
(n* n+1)/ 2 =0
2 katı olarak yazılmakta. n* (n+1)
Python ile
Python:
def ucgenSayisiMi(sayi):
if(sayi==1):
return True
else:
for i in range(2,10000):
temp=i*(i+1)/2
if(temp>sayi):
return False
if(temp==sayi):
return True
print(ucgenSayisiMi(10))
print(ucgenSayisiMi(15))
print(ucgenSayisiMi(16))
C ile
C:
#include <stdio.h>
int ucgenSayisiMi(int sayi){
if(sayi==1)
return 1;
else{
for (int i=0;i<10000;++i){
int temp=i*(i+1)/2;
if(temp>sayi)
return 0;
if(temp==sayi)
return 1;
}}
}
int main(){
printf("%d\n",ucgenSayisiMi(10)) ;
printf("%d\n",ucgenSayisiMi(15));
printf("%d\n",ucgenSayisiMi(16)) ;
}
Recursive Toplama
•Giriş: n = 2
Çıktı: 5, 11 + 22 = 1 + 4 = 5
•Giriş: n = 3
Çıktı: 32, 11 + 22 + 33 = 1 + 4 + 27 = 32
•Giriş: n = 4
Çıktı: 288, 11 + 22 + 33 + 44 = 1 + 4 + 27+256 =288
function recToplam(int sayi):
if (sayi==1): // Temel Durum
return 1
return pow(sayi,sayi)+recToplam(sayi-1)
Python ile
Python:
import math
def recToplam(sayi):
if (sayi==1): #Temel Durum
return 1
return pow(sayi,sayi)+recToplam(sayi-1)
C ile
C:
#include <stdio.h>
#include <math.h>
int recToplam(int sayi){
if (sayi==1) //Temel Durum
return 1;
return pow(sayi,sayi)+recToplam(sayi-1);
}
int main(){
printf("%d\n",recToplam(3));
printf("%d\n",recToplam(4));
}
Minimumu ve indisi bulma
liste=[70,10,20,30,40,9,50,60]
minelem=liste[0]
for i in range(1,len(list)):
if(liste<minelem):
minelem=liste
1.adım: Min=70,İndis=0 [70]
2.adım: Min=10,İndis=1 [10]
3.Adım: Min=10,İndis=1 [20]
4.Adım: Min=10,İndis=1 [30]
5.Adım: Min=10,İndis=1 [40]
6.Adım: Min=9,İndis=5 [9]
7.Adım: Min=9,İndis=5 [50]
8.Adım: Min=9,İndis=5 [60]
Python ile
Python:
def minimumBul(liste):
minelem=liste[0]
minIndis=0
for i in range(1,len(liste)):
if(liste[i]<minelem):
minelem=liste[i]
minIndis=i
return minelem,minIndis
liste=[70,10,20,30,40,9,50,60]
minelem,minIndis=minimumBul (liste)
print(minelem,minIndis)
C ile
C:
#include <stdio.h>
int minimumBul(int liste[],int boyut,int *minIndis){
int minelem=liste[0];
*minIndis=0;
for (int i=1;i<boyut;++i){
if(liste[i]<minelem){
minelem=liste[i];
*minIndis=i; }}
return minelem; }
int main(){
int liste[]={70,10,20,30,40,9,50,60};
int boyut=sizeof(liste)/sizeof(int);
int minIndis=0;
int minelem =minimumBul (liste,boyut,&minIndis);
printf("%d %d",minelem,minIndis);
}
Ekok Bulma Algoritması
12, 6 sayıları ebob bulalım.
Öncelikle Min sayı buluruz.6
Min sayıdan geriye doğru gidilerek, her ikisi ortak bölündüğü sayı ebob olur.
Her ikisi 6 ortak bölünür.
Ebob 6 oluyor.
Döngüyü bitir.
Sayi1*sayi2=ebob*ekok
12*6=6 *ekok
Ekok=12
Python ile
Kod:
def ebobBul (sayi1,sayi2):
small = sayi1
if (sayi1 > sayi2):
small = sayi2
ebob=1
for i in range(small,1,-1):
if( (sayi1 % i == 0) and (sayi2 % i == 0)):
ebob = i
break
return ebob
def ekokBul(sayi1, sayi2):
return (sayi1*sayi2) / (ebobBul(sayi1,sayi2))
if __name__ == "__main__":
print(ekokBul(6,12))
print(ekokBul(60,24))
C ile
Kod:
#include <stdio.h>
int ebobBul(int sayi1,int sayi2){
int small = sayi1;
if (sayi1 > sayi2)
small = sayi2;
int ebob = 1;
for (int i =small ; i>1; --i){
if((sayi1 % i == 0) && (sayi2 % i == 0)){
ebob = i;
break; }}
return ebob ;
}
int ekokBul(int sayi1,int sayi2){
return sayi1*sayi2/ ebobBul(sayi1,sayi2);
}
int main(){
printf("%d\n",ekokBul(6,12)) ;
printf("%d\n",ekokBul(60,24)) ;
}
Bubble sort (Kabarcık Sıralama)
[64, 24, 25, 12, 23, 15, 50]
1.adım
[24 64 25 12 23 15 50]
[24 25 64 12 23 15 50]
[24 25 12 64 23 15 50]
[24 25 12 23 64 15 50]
[24 25 12 23 15 64 50]
[24 25 12 23 15 50 64]
2.adım
[24 25 12 23 15 50 64]
[24 12 25 23 15 50 64]
[24 12 23 25 15 50 64]
[24 12 23 15 25 50 64]
[24 12 23 15 25 50 64]
[24 12 23 15 25 50 64]
3.adım
[12 24 23 15 25 50 64]
[12 23 24 15 25 50 64]
[12 23 15 24 25 50 64]
[12 23 15 24 25 50 64]
[12 23 15 24 25 50 64]
4.adım
[12 23 15 24 25 50 64]
[12 15 23 24 25 50 64]
5.Adım
[12 15 23 24 25 50 64]
[12 15 23 24 25 50 64]
[12 15 23 24 25 50 64]
Sıralı biter.
Python ile
Python:
def bubbleSort(liste):
boyut = len(liste)
for i in range(boyut):
for j in range(0, boyut-1-i):
# Gelecek elemandan büyükse yer degistir.
if liste[j] > liste[j+1] :
liste[j], liste[j+1] = liste[j+1], liste[j] #yer degistirme
liste = [64, 24, 25, 12, 23, 15, 50]
bubbleSort(liste)
print(liste)
C ile
C:
#include <stdio.h>
void swap(int *sayi1,int *sayi2){
int temp=*sayi1;
*sayi1=*sayi2;
*sayi2=temp; }
void bubbleSort(int liste[],int boyut){
for (int i=0;i<boyut;++i){
int siraliMi=1;
for (int j=0;j<boyut-1-i;++j){
if (liste[j] > liste [j+1]){
swap( &liste[j], &liste[j+1] );
siraliMi= 0; } }
if(siraliMi)
break;
}
}
int main(){
int liste []= {64, 24, 25, 12, 23, 15, 50};
int boyut=sizeof(liste)/sizeof(int);
bubbleSort(liste,boyut);
for (int i=0;i<boyut;++i)
printf("%d ",liste[i]);
}