EEM-119 Algoritma ve Programlama I Dersi
karşılaştırma operatörleri
- < kucuktur
- > buyuktur
- <= kucuk esit
- >= buyuk esit
- == esittir
- != esit degildir
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("%d\n", 1>2);
printf("%d\n", 1<2);
printf("%d\n", 1<=1);
printf("%d\n", 2>=2);
printf("%d\n", 1==2);
printf("%d\n", 1!=2);
printf("%d\n", 1!=1);
return 0;
}
0 1 1 1 0 1 0
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("%d\n", (1!=2)+5);
return 0;
}
6
#include <stdio.h>
int main(int argc, char *argv[]) {
int i=1,j=5,k=4;
printf("%d\n", i+k<j);
printf("%d\n", i+(k<j));
return 0;
}
0 2
#include <stdio.h>
int main(int argc, char *argv[]) {
int i=1,j=5,k=4;
printf("%d\n", i+k==j);
return 0;
}
1
Mantık operatörleri
- VE: &&
-
VEYA: (AltGr ve buyuktur tuşuna basılınca çıkar.) - DEĞİL : !
#include <stdio.h>
int main(int argc, char *argv[]) {
int i=1,j=5;
printf("%d\n", i!=0 && j/i>3);
printf("%d\n", i==0 && j/i>3);
printf("%d\n", i==0 || j/i>3);
printf("%d\n", !(i==0 || j/i>3));
return 0;
}
1 0 1 0
#include <stdio.h>
int main(int argc, char *argv[]) {
int i,j;
printf("iki sayi giriniz");
scanf("%d%d",&i,&j);
if(i>j)
printf("girilen sayilardan %d sayisi buyuktur",i);
else if(j>i)
printf("girilen sayilardan %d sayisi buyuktur",j);
else
printf("girilen sayilar esittir",j);
return 0;
}
iki sayi giriniz 1 1 girilen sayilar esittir
Aşagidaki 3 program if-else if ve else yapılarının farklı kullanımları var.
Bu programlar mantıksal olarak doğru değil. Sadece kullanımları göstermek için ekledik.
#include <stdio.h>
int main(int argc, char *argv[]) {
int i,j;
printf("iki sayi giriniz");
scanf("%d%d",&i,&j);
if(i>j)
printf("girilen sayilardan %d sayisi buyuktur",i);
return 0;
}
iki sayi giriniz 3 5
#include <stdio.h>
int main(int argc, char *argv[]) {
int i,j;
printf("iki sayi giriniz");
scanf("%d%d",&i,&j);
if(i>j)
printf("girilen sayilardan %d sayisi buyuktur",i);
else if(j>i)
printf("girilen sayilardan %d sayisi buyuktur",j);
return 0;
}
iki sayi giriniz 5 5
#include <stdio.h>
int main(int argc, char *argv[]) {
int i,j;
printf("iki sayi giriniz");
scanf("%d%d",&i,&j);
if(i>j)
printf("girilen sayilardan %d sayisi buyuktur",i);
else
printf("girilen sayilar esittir",j);
return 0;
}
iki sayi giriniz 3 5 girilen sayilar esittir
#include <stdio.h>
int main(int argc, char *argv[]) {
int i,j;
printf("iki sayi giriniz");
scanf("%d%d",&i,&j);
if(i!=j)
printf("girilen sayılar eşit değildir.");
else
printf("girilen sayılar eşittir");
return 0;
}
iki sayi giriniz 5 4 girilen sayılar eşit değildir.
#include <stdio.h>
int main(int argc, char *argv[]) {
int i,j;
printf("iki sayi giriniz");
scanf("%d%d",&i,&j);
if(!(i>j))
printf("ikinci sayi birinci sayidan buyuktur veya esittir.");
else
printf("birinci sayi ikinci sayidan buyuktur.");
return 0;
}
iki sayi giriniz
5 5
ikinci sayi birinci sayidan buyuktur veya esittir.
#include <stdio.h>
int main(int argc, char *argv[]) {
int i,j;
printf("iki sayi giriniz");
scanf("%d%d",&i,&j);
if(!(i>=j))
printf("ikinci sayi birinci sayidan buyuktur.");
else
printf("birinci sayi ikinci sayidan buyuktur veya esittir.");
return 0;
}
iki sayi giriniz
5 6
ikinci sayi birinci sayidan buyuktur.
- en buyuk girilen sayiyi bulan program
#include <stdio.h>
int main(int argc, char *argv[]) {
int i,j,k;
printf("uc sayi giriniz");
scanf("%d%d%d",&i,&j,&k);
if(i>=j && i>=k)
printf("en buyuk girilen: %d",i);
else if(j>=i && j>=k)
printf("en buyuk girilen: %d",j);
else if(k>=i && k>=j)
printf("en buyuk girilen: %d",k);
return 0;
}
uc sayi giriniz
1 5 9
en buyuk girilen: 9
- en buyuk girilen sayiyi bulan program v2
#include <stdio.h>
int main(int argc, char *argv[]) {
int i,j,k, eb;
printf("uc sayi giriniz");
scanf("%d%d%d",&i,&j,&k);
eb=i;
if(j>eb)
eb=j;
if(k>eb)
eb=k;
printf("girilen en buyuk sayi: %d",eb);
return 0;
}
uc sayi giriniz
1 2 3
girilen en buyuk sayi: 3
- yanlış hizalı if - else
#include <stdio.h>
// if else hizasi onemli degildir.
// else kendine en yakin if'e aittir.
int main(int argc, char *argv[]) {
double x,y;
printf("x>0 ise sonucu gösterecek sekilde\n");
printf("x/y islemi icin x ve y sayilarini giriniz");
scanf("%lf%lf",&x,&y);
if(y!=0)
if(x>0)
printf("%.2lf/%.2lf=%.2lf",x,y,x/y);
else
printf("y 0'a esit oldugundan bolme islemi yapilmadi.");
return 0;
}
x>0 ise sonucu gösterecek sekilde
x/y islemi icin x ve y sayilarini giriniz
1 0
- Bir önceki programda olan problem düzeltmek için:
#include <stdio.h>
int main(int argc, char *argv[]) {
double x,y;
printf("x>0 ise sonucu gösterecek sekilde\n");
printf("x/y islemi icin x ve y sayilarini giriniz");
scanf("%lf%lf",&x,&y);
if(y!=0){
if(x>0)
printf("%.2lf/%.2lf=%.2lf",x,y,x/y);
}else
printf("y 0'a esit oldugundan bolme islemi yapilmadi.");
return 0;
}
x>0 ise sonucu gösterecek sekilde
x/y islemi icin x ve y sayilarini giriniz
1 0
y 0'a esit oldugundan bolme islemi yapilmadi.
ternary operator
#include <stdio.h>
int main(int argc, char *argv[]) {
int i,j,k;
i=1;
j=2;
//i jeden buyuk ise k'ya i'yi ata değilse k'ya j'yi ata.
k=i>j?i:j;
// if(i>j)
// k=i;
// else
// k=j;
printf("k: %d",k);
return 0;
}
k: 2
- 2. dereceden esitligin reel kokleri
#include <stdio.h>
#include <math.h> //karekok almak icin: sqrt fonksiyonu math.h kutuphanesinde tanimli
int main(int argc, char *argv[]) {
float a,b,c, disk, x1, x2;
printf("2. dereceden esitligin kokleri icin\n");
printf("a,b ve c katsayilarini giriniz: ");
scanf("%f%f%f",&a,&b,&c);
disk=b*b-4*a*c;
if(disk>=0){
x1=(-b+sqrt(disk))/(2*a);
x2=(-b-sqrt(disk))/(2*a);
printf("%.2fx^2 + %.2fx + %.2f = 0\n",a,b,c);
printf("x1=%.2f, x2=%.2f",x1,x2);
}else{
printf("esitligin kokleri reel degil");
}
return 0;
}
2. dereceden esitligin kokleri icin
a,b ve c katsayilarini giriniz:
1 -1 -2
1.00x^2 + -1.00x + -2.00 = 0
x1=2.00, x2=-1.00
- girilen kenarlardan ucgenin dik ucgen olup olmadgini yazdiran program
#include <stdio.h>
int main(int argc, char *argv[]) {
int a,b,c;
printf("ucgenin kenarlarini giriniz: ");
scanf("%d%d%d",&a,&b,&c);
if(a*a+b*b == c*c || a*a+c*c == b*b || b*b+c*c == a*a)
printf("ucgen dik ucgendir.");
else
printf("ucgen dik ucgen degildir.");
return 0;
}
ucgenin kenarlarini giriniz:
13 5 12
ucgen dik ucgendir.
#include <stdio.h>
//girilen kenarlardan ucgenin dik ucgen olup olmadgini yazdiran program
int main(int argc, char *argv[]) {
int a,b,c;
printf("ucgenin kenarlarini giriniz: ");
scanf("%d%d%d",&a,&b,&c);
if(a*a+b*b == c*c)
printf("ucgen dik ucgendir.");
else if(a*a+c*c == b*b )
printf("ucgen dik ucgendir.");
else if(b*b+c*c == a*a)
printf("ucgen dik ucgendir.");
else
printf("ucgen dik ucgen degildir.");
return 0;
}
ucgenin kenarlarini giriniz:
13 5 12
ucgen dik ucgendir.
- if’in farklı kullanımları
#include <stdio.h>
int main(int argc, char *argv[]) {
int i=1;
if(i==1)
printf("i 1'e esit\n");
if(i)
printf("i 1'e esit\n");
return 0;
}
i 1'e esit
i 1'e esit
#include <stdio.h>
//girilen kenarlardan ucgenin dik ucgen olup olmadgini yazdiran program
int main(int argc, char *argv[]) {
int i=0;
if(i!=1)
printf("i 1'e esit degil\n");
if(!i)
printf("i 1'e esit degil\n");
return 0;
}
1:i 1'e esit degil
2:i 1'e esit degil
#include <stdio.h>
int main(int argc, char *argv[]) {
if(0)
printf("0:OK\n");
if(10)
printf("10:OK\n");
if(-501)
printf("-501:OK\n");
if(1)
printf("1:OK\n");
return 0;
}
10:OK
-501:OK
1:OK
while dongusu
#include <stdio.h>
int main(int argc, char *argv[]) {
int i=10;
while(i>0){
printf("%d ",i);
i--;
}
return 0;
}
10 9 8 7 6 5 4 3 2 1
#include <stdio.h>
int main(int argc, char *argv[]) {
int i=10;
while(i>0)
printf("%d ",i--);
return 0;
}
10 9 8 7 6 5 4 3 2 1
#include <stdio.h>
int main(int argc, char *argv[]) {
int i=10;
while(i>0)
printf("%d ",--i);
return 0;
}
9 8 7 6 5 4 3 2 1 0
#include <stdio.h>
int main(int argc, char *argv[]) {
int i=10;
while(i-- > 0)
printf("%d ",--i);
return 0;
}
8 6 4 2 0
#include <stdio.h>
int main(int argc, char *argv[]) {
int i=10;
while(i--)
printf("%d ",i);
return 0;
}
9 8 7 6 5 4 3 2 1 0
#include <stdio.h>
int main(int argc, char *argv[]) {
int i=10;
while(--i)
printf("%d ",i);
return 0;
}
9 8 7 6 5 4 3 2 1
#include <stdio.h>
int main(int argc, char *argv[]) {
int i=-10;
while(i)
printf("%d ",i++);
return 0;
}
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1
#include <stdio.h>
int main(int argc, char *argv[]) {
int a,b,n;
printf("a'dan b'ye n artan sayilar icin\n");
printf("a, b, n degerlerini giriniz: ");
scanf("%d%d%d",&a,&b,&n);
while(a<=b){
printf("%d ",a);
a=a+n;
}
return 0;
}
a'dan b'ye n artan sayilar icin
a, b, n degerlerini giriniz:
2 25 4
2 6 10 14 18 22
#include <stdio.h>
int main(int argc, char *argv[]) {
int n,i=1;
printf("n degerlerini giriniz: ");
scanf("%d",&n);
while(i<=n){
printf("%4d %4d \n",i,i*i);
i++;
}
return 0;
}
n degerlerini giriniz:
7
1 1
2 4
3 9
4 16
5 25
6 36
7 49