Dersler

View on GitHub

EEM-119 Algoritma ve Programlama I Dersi

2022-2023 Güz Dönemi Ders 11

Fonksiyonlar

#include <stdio.h>
double ortalama3(double a, double b, double c){
  // parametreler double a, double b, double c 
  // fonksiyon adinin onundeki double return türü
  //double ortalama3(double, double, double) fonksiyonun prototipi
  return (a+b+c)/3.0;
}
int main(){
  double x,y,z;
  double ort3;
  printf("ortalamasini almak icin 3 degisken giriniz: ");
  scanf("%lf %lf %lf",&x,&y,&z);
  printf("sayilarin ortalamasi %lf\n", ortalama3(x,y,z));
  printf("sayilarin ortalamasi %lf\n", ortalama3(5,2,3));
  ort3=ortalama3(4,9,12);
  printf("sayilarin ortalamasi %lf\n", ort3);
  
  return 0;
}
  ortalamasini almak icin 3 degisken giriniz: 
   3 7 12

  sayilarin ortalamasi 7.333333
  sayilarin ortalamasi 3.333333
  sayilarin ortalamasi 8.333333
#include <stdio.h>
double ortalama3(double a, double b, double c){
  // parametreler double a, double b, double c 
  // fonksiyon adinin onundeki double return türü
  //double ortalama3(double, double, double) fonksiyonun prototipi
  double sayilarin_ortalamasi;
  sayilarin_ortalamasi  = (a+b+c)/3.0;
  return sayilarin_ortalamasi;
}
int main(){
  double x,y,z;
  double ort3;
  printf("ortalamasini almak icin 3 degisken giriniz: ");
  scanf("%lf %lf %lf",&x,&y,&z);
  printf("sayilarin ortalamasi %lf\n", ortalama3(x,y,z));
  printf("sayilarin ortalamasi %lf\n", ortalama3(5,2,3));
  ort3=ortalama3(4,9,12);
  printf("sayilarin ortalamasi %lf\n", ort3);
  
  
  return 0;
}
  ortalamasini almak icin 3 degisken giriniz: 
   2 5 8

  sayilarin ortalamasi 5.000000
  sayilarin ortalamasi 3.333333
  sayilarin ortalamasi 8.333333
#include <stdio.h>
double ortalama3(double a, double b, double c){
  return  (a+b+c)/3.0;
}
int main(){
  double x,y,z;
  double ort3;
  printf("ortalamasini almak icin 3 degisken giriniz: ");
  scanf("%lf %lf %lf",&x,&y,&z);
  if(ortalama(x,y,z)>0)
    printf("sayilarin ortalamasi pozitif");
  printf("sayilarin ortalamasi %lf\n", ort3);
  return 0;
}
  ortalamasini almak icin 3 degisken giriniz: 
   2 5 8

  sayilarin ortalamasi 5.000000
  sayilarin ortalamasi 3.333333
  sayilarin ortalamasi 8.333333
#include <stdio.h>
void sayac_bilgisi(int i){
  printf("Sayac sayiyor. Mevcut deger:%d\n",i);
}
int main(){
  int sayac;
  for(sayac=0;sayac<10;sayac++)
    sayac_bilgisi(sayac);
  return 0;
}
  Sayac sayiyor. Mevcut deger:0
  Sayac sayiyor. Mevcut deger:1
  Sayac sayiyor. Mevcut deger:2
  Sayac sayiyor. Mevcut deger:3
  Sayac sayiyor. Mevcut deger:4
  Sayac sayiyor. Mevcut deger:5
  Sayac sayiyor. Mevcut deger:6
  Sayac sayiyor. Mevcut deger:7
  Sayac sayiyor. Mevcut deger:8
  Sayac sayiyor. Mevcut deger:9
#include <stdio.h>
void selamlama(void){
  printf("merhaba ");
}
int main(){
  int i;
  for(i=0;i<10;i++)
    selamlama();
  return 0;
}
  merhaba merhaba merhaba merhaba merhaba merhaba merhaba merhaba merhaba merhaba 
#include <stdio.h>
int sayi_al_topla2(void){
  int a,b;
  printf("iki deger giriniz");
  scanf("%d%d",&a,&b);
  return a+b;
}
int main(){
  printf("iki sayinin toplami: %d",sayi_al_topla2());
  return 0;
}
  iki deger giriniz
   10 20

  iki sayinin toplami: 30
#include <stdio.h>
int main(){
  //printf in dondurdugu deger
  int n;
  n=printf("bu bir ifadedir.\n");
  printf("uzunlugu: %d\n",n);

  printf("uzunlugu: %d\n",printf("bu bir ifadedir.\n"));
  return 0;
}
  bu bir ifadedir.
  uzunlugu: 17
  bu bir ifadedir.
  uzunlugu: 17
#include <stdio.h>
int asal_mi(int x){
  int i;
  if( x < 2)
    return 0;
  if( x == 2)
    return 1;
  for(i=2;i<x;i++)
    if(x%i==0)
      return 0;
  return 1;
}
int main(){
   int n;
  printf("bir sayi giriniz: ");
  scanf("%d",&n);
  //if(asal_mi(n)==1)
  if(asal_mi(n))
    printf("girilen sayi asaldir.");
  else
    printf("girilen sayi asal degildir.");
  return 0;
}
  bir sayi giriniz: 
   10001

  girilen sayi asal degildir.
#include <stdio.h>
int asal_mi(int x);
int main(){
   int n;
  printf("bir sayi giriniz: ");
  scanf("%d",&n);
  //if(asal_mi(n)==1)
  if(asal_mi(n))
    printf("girilen sayi asaldir.");
  else
    printf("girilen sayi asal degildir.");
  return 0;
}

int asal_mi(int x){
  int i;
  if( x < 2)
    return 0;
  if( x == 2)
    return 1;
  for(i=2;i<x;i++)
    if(x%i==0)
      return 0;
  return 1;
}
  bir sayi giriniz: 
   10

  girilen sayi asal degildir.
#include <stdio.h>
// alternatif olarak parametre adi yazilmasa da olur.
int asal_mi(int);
int main(){
   int n;
  printf("bir sayi giriniz: ");
  scanf("%d",&n);
  //if(asal_mi(n)==1)
  if(asal_mi(n))
    printf("girilen sayi asaldir.");
  else
    printf("girilen sayi asal degildir.");
  return 0;
}

int asal_mi(int x){
  int i;
  if( x < 2)
    return 0;
  if( x == 2)
    return 1;
  for(i=2;i<x;i++)
    if(x%i==0)
      return 0;
  return 1;
}
  bir sayi giriniz: 
   15

  girilen sayi asal degildir.
#include <stdio.h>
#define N 10
int dizi_topla(int [], int );
// veya int dizi_topla(int a[], int n);
int main(){
  int x[N], toplam, i;
  for(i=0;i<N;i++)
    scanf("%d",&x[i]);
  toplam = dizi_topla(x, N);
  printf("dizinin elemanlarinin toplami: %d",toplam);
  return 0;
}
int dizi_topla(int a[], int boyut){
  int toplam=0, i;
  for(i=0;i<boyut;i++)
    toplam += a[i];
  return toplam;
}

   1 3 8 7 9 4 5 1 9 15

  dizinin elemanlarinin toplami: 62
#include <stdio.h>
void dizi_baslangic_degeri_ata(int a[], int boyut, int deger);
int main(){
  int x[5],i;
  dizi_baslangic_degeri_ata(x,5,100);
  for(i=0;i<5;i++)
    printf("%d ",x[i]);
  return 0;
}
// fonksiyona parametre olarak girilmis olan diziye yapılan
// atama ana fonksiyondaki dizinin elemanlarının değerlerini
// degistirir.
// bu dizi olmayan degiskenler icin int x, double a gibi
// gecerli degildir.
void dizi_baslangic_degeri_ata(int a[], int boyut, int deger){
  int i;
  for(i=0;i<boyut;i++)
    a[i]=deger;
}
  100 100 100 100 100 
#include <stdio.h>
#define N 4
#define M 3
int dizi_topla(int dizi[][M], int boyut);
int main(){
  int a[N][M], i, j;
  printf("diziye veri %d adet veri girisi yapiniz: ", N*M);
  for(i=0;i<N;i++)
    for(j=0;j<M;j++)
    scanf("%d",&a[i][j]);
  printf("dizinin elemanlarinin toplami: %d",dizi_topla(a,N));
  return 0;
}
int dizi_topla(int dizi[][M], int boyut){
  int toplam=0, i, j;
  for(i=0;i<boyut;i++)
    for(j=0;j<M;j++)
      toplam +=  dizi[i][j];
  return toplam;
}
  diziye veri 12 adet veri girisi yapiniz: 
   1 3 8 7 9 4 5 1 9 15 1 2

  dizinin elemanlarinin toplami: 65
#include <stdio.h>
int kontrol(int n){
  return n > 0 ? 1 : 0;
}
int main(){
  int a;
  printf("bir sayi giriniz: ");
  scanf("%d",&a);
  printf("kontrol  sayi 0'dan buyuk mu: %d",kontrol(a));
  return 0;
}
  bir sayi giriniz: 
   -5

  kontrol  sayi 0'dan buyuk mu: 0
#include <stdio.h>
void pozitif_yaz(int n){
  if(n<=0)
    return;
  printf("%d",n); 
}
int main(){
  int a;
  printf("bir sayi giriniz: ");
  scanf("%d",&a);
  pozitif_yaz(a);
  return 0;
}
  bir sayi giriniz: 

   -5

Kendini yineleyen fonksiyonlar - recursive fonksiyonlar

  bir sayi giriniz:   
   5

  120
  bir sayi giriniz: 
   5

  120
#include <stdio.h>

unsigned long us(int x, int n){
  if(n==1)
    return x;
  return x*us(x, n-1);
}
int main(){
  int taban, us_degeri;
  printf("taban ve us degerlerini giriniz: ");
  scanf("%d%d",&taban, &us_degeri);
  printf("%ld", us(taban, us_degeri));
  return 0;
}
  taban ve us degerlerini giriniz: 
   5 4

  625
#include <stdio.h>
unsigned long us(int x, int n){
  return n==1 ? x : x*us(x, n-1);
}
int main(){
  int taban, us_degeri;
  printf("taban ve us degerlerini giriniz: ");
  scanf("%d%d",&taban, &us_degeri);
  printf("%ld", us(taban, us_degeri));
  return 0;
}
  taban ve us degerlerini giriniz: 
   2 10

  1024
  baslangic bitis ve artis degerlerini giriniz
   3 30 7

  3 10 17 24 
#include <stdio.h>
void aralik(int x, int y, int n){
  if (x > y)
    return;
  printf("%d ",x);
  aralik(x+n, y, n);
}
int main(){
  int a,b,n;
  printf("baslangic bitis ve artis degerlerini giriniz");
  scanf("%d%d%d", &a, &b, &n);
  aralik(a,b,n);
  return 0;
}
  baslangic bitis ve artis degerlerini giriniz
   10 100 9

  10 19 28 37 46 55 64 73 82 91 100