functions Flashcards
fonksiyon oluşturma(kare al)
int kare_al(int x);
int main(void){
int i; for(i = 1; i <= 10; i++){ printf("%d ", kare_al(i)); } printf("\n"); return 0; }
int kare_al(int sayi){
return (sayi * sayi);
}
fonksiyon oluşturma (max)
int maximum(int x, int y, int z); // fonksiyon prototipi
int global_degisken = 0;
int main(){
int sayi1, sayi2, sayi3; // kullanicinin girecegi sayilar
printf(“Uc tam sayi giriniz:\n”);
scanf(“%d %d %d”, &sayi1, &sayi2, &sayi3);
global_degisken = 5; // global degiskenin degeri degistiriliyor. int sonuc = maximum(sayi1, sayi2, sayi3); // fonksiyonun 3 parametre ile cagirilmasi // main fonksiyonu akisi cagirilan fonksiyonla birlikte baska satira gidiyor, //fonksiyon bittikten sonra kaldigi yerden devam ediyor. printf("Maximum sayi: %d\n", sonuc); return 0; }
int maximum(int x, int y, int z){ // maksimum fonksiyonunun tanimi (definition)
int max = x; // ilk sayinin maks oldugunu varsayalim
printf(“global: %d\n”, global_degisken); // global degisken her yerden cagirilabilir.
if (y > x) max = y; if (z > max) max = z;
return(max);
}
fonksiyon tanımı-statik yerel değişkenler
void staticLocal(void); // fonksiyon prototipi
int main(){
staticLocal();
staticLocal();
staticLocal();
return 0; }
void staticLocal(void){
static int sayac = 1;
static int statik_degisken = 50;
printf(“%d. cagrilma———-\n”, sayac);
printf(“staticLocal fonksiyonuna girerkenki statik_degisken degeri: %d\n”, statik_degisken);
statik_degisken++;
printf(“staticLocal fonksiyonundan cikarkenki statik_degisken degeri: %d\n\n”, statik_degisken);
sayac++;
}
fonksiyon parametresi olarak dizi(pass by ref)
void increment(int num) {
(num)++;
printf(“Inside function: %d\n”, *num);
}
int main() {
int a = 5;
printf(“Before function call: %d\n”, a);
increment(&a);
printf(“After function call: %d\n”, a);
return 0;
}
fonksiyon parametresi olarak dizi elemanı(pass by value)
void increment(int num);
int main() {
int a = 5;
printf(“Before function call: %d\n”, a);
increment(a);
printf(“After function call: %d\n”, a);
return 0;
}
void increment(int num) {
num++;
printf(“Inside function: %d\n”, num);
}
boyutunu ve elemanlarını kullanıcıdan aldığınız bir tam sayı dizisi
oluşturun. Daha sonra kullanıcıdan bu dizi içinde aranmak üzere bir sayı
alın. Arama işlemini aşağıda verilen fonksiyon prototipini tanımlayarak
gerçekleştirin. Alınan sayının dizi içinde yer alıp almadığını ekrana
yazdır
int ara(int dizi[], int eleman_sayisi, int aranan_sayi);
int main()
{
int i;
int eleman_sayisi; printf("dizinin eleman sayisi: "); scanf("%d", &eleman_sayisi); int dizi[eleman_sayisi]; printf("Dizinin main'deki yeri - %p \n", dizi); for (i=0; i<eleman_sayisi; i++) { scanf("%d", &dizi[i]); } int aranan_sayi; printf("aranan sayi: "); scanf("%d", &aranan_sayi); int sonuc = ara(dizi, eleman_sayisi, aranan_sayi); if (sonuc == 1) printf("Aranan sayi dizide var\n"); else printf("Aranan sayi dizide yok\n"); return 0; }
int ara(int dizi[], int eleman_sayisi, int aranan_sayi)
{
int var = 0, i;
printf("Dizinin ara fonksiyonundaki yeri - %p\n", dizi); for (i=0; i<eleman_sayisi; i++) { if (dizi[i] == aranan_sayi) { var = 1; break; } } return var; }
6 yüzlü bir zarın 1,000,000 kez yuvarlanması
include <stdlib.h></stdlib.h>
int main(void){
int frekans1 = 0; // 1’lerin sayisi
int frekans2 = 0; // 2’lerin sayisi
int frekans3 = 0; // 3’lerin sayisi
int frekans4 = 0; // 4’lerin sayisi
int frekans5 = 0; // 5’lerin sayisi
int frekans6 = 0; // 6’lar˝n sayisi
int roll, face; for (roll = 0; roll < 1000000; roll++) { face = rand()%6 + 1; // 1-6 arasinda random sayi uretme if (face == 1) frekans1++; else if (face == 2) frekans2++; else if (face == 3) frekans3++; else if (face == 4) frekans4++; else if (face == 5) frekans5++; else if (face == 6) frekans6++; } printf(" %s%15s\n", "Zar", "Frekans"); printf(" 1: %13d\n 2: %13d\n 3: %13d\n 4: %13d\n 5: %13d\n 6: %13d\n", frekans1, frekans2, frekans3, frekans4, frekans5, frekans6); return 0; }
srand() kullanımı
include <stdlib.h></stdlib.h>
#include <time.h></time.h>
int main(void) {
int seed;
printf(“%s”, “Seed numarasi girin: “);
scanf(“%d”, &seed);
srand(seed); // seed the random-number generator srand(time(NULL)); int i; for (i = 1; i <= 10; ++i) { printf("%d ", 1 + (rand() % 6)); } printf(""); }
recursion factorial
unsigned long long int faktoriyel(int sayi);
int main(void) {
// faktoriyel(i) hesapla ve sonuÁlar˝ gˆster
int i;
for (i = 0; i <= 21; ++i)
printf(“%d! = %llu\n”, i, faktoriyel(i));
}
// fonksiyon faktˆriyelinin recursion (yineleme) tan˝m˝
unsigned long long int faktoriyel(int sayi) {
if (sayi <= 1) // 0! ve 1! degeri
return 1;
else // recursive adimi
return (sayi * faktoriyel(sayi - 1));
}
dizi içinde rastgele sayılar oluşturan ve bu
dizideki negatif elemanları sayıp sıfırlayan bir C
programı yaz
void randomVeriUret(int a[], int elemanSayisi, int min, int max);
int say_ve_sifirla(int b[], int elemanSayisi);
// MAIN
int main() {
int dizi_elemanSayisi, min, max, i;
printf(“Rastgele veri uretimi icin nokta sayisini girin: “);
scanf(“%d”, &dizi_elemanSayisi);
printf(“\nRastgele sayilar icin aralik girin (min-max): “);
scanf(“%d %d”, &min, &max);
int randomDizi[dizi_elemanSayisi]; randomVeriUret(randomDizi, dizi_elemanSayisi, -10, 10); // fonksiyon ile dizi olu˛turuldu. int negatifNoktaSayisi = say_ve_sifirla(randomDizi, dizi_elemanSayisi); printf("\n\nNegatif eleman sayisi: %d\n", negatifNoktaSayisi); printf("\nNegatif elemanlarin sifirlanmasindan sonra veriler: \n"); for (i = 0; i < dizi_elemanSayisi; i++) { printf("%d ", randomDizi[i]); } printf("\n"); return 0; }
// FONKSIYON-1: Rastgele veri uretimi icin bir fonksiyon
void randomVeriUret(int a[], int elemanSayisi, int min, int max) {
srand(time(NULL)); // Rastgele baslangic değeri ayarla
printf("\nDizi elemanlari: \n"); int i; for (i = 0; i < elemanSayisi; i++) { a[i] = (rand() % (max - min + 1)) + min; printf("%d ", a[i]); } }
// FONKSIYON-2: Dizi icinde 0’dan kucuk olan elemanlari sayan ve 0 yapacak olan fonksiyon
int say_ve_sifirla(int b[], int elemanSayisi) {
int negatifSayisi = 0;
int i;
for (i = 0; i < elemanSayisi; i++) {
if (b[i] < 0) {
negatifSayisi++;
b[i] = 0; // Elemani 0 yap
}
}
return negatifSayisi;
}