Reverse Sorusu

“void reverse(char s[])”  tanımında bir fonksiyon yazın. Bu fonksiyona bir string geçirildiğinde, fonksiyonunuz kendisine geçirilmiş harfleri tersine çevirsin.
Yani,  fonksiyonu çağırmadan önce  string’in içinde  “merhaba dünya” varsa, fonksiyondan dönünce string’in içinde artık  “aynüd abahrem” olsun.

Çözümü

#include<stdio.h>
#include<conio.h>

int i,n,birincibardak,ikincibardak,bosbardak;

void reverse(char yazi[100])
{
for(i=0;yazi[n]!=’\0′;n=n+1) ;
for(i=0;i<n/2;i=i+1)
{
/*
bosbardak = birincibardak;
birincibardak = ikincibardak;
ikincibardak = bosbardak;
*/
bosbardak = yazi[n-i-1];
yazi[n-i-1] = yazi[i];
yazi[i] = bosbardak;
}

printf(“%s”,yazi);

}
main()
{ char yazi[100];
printf(“Bir cumle yaz: “); gets(yazi);
reverse(yazi);

getch();
}

Pointer Sorusu

1. Bir karakter dizisi tanımlayın, ve içine “strcpy” ile bilgi koyun. Bir
döngü ve pointer ile diziyi harf-harf (teker teker) ekrana yazın. Programın
başında pointer’i dizinde ilk elemanına atayın, daha sonra çift artı
işareti ile pointer’in değerini arttırın. Ayrı bir tamsayi değişkeni
ile kaç karakter yazılacağını kontrol edin..

Çözümü

#include<stdio.h>
#include<string.h>
#include<conio.h>

main() {

int i=0;
char characterArray[100],*pointer;

strcpy(characterArray,”TEST”);

pointer = &characterArray[0];

for(i;characterArray[i] != ‘\0’;i++) {

printf(“%s \n”,pointer);

pointer++;
}

getch();
}

2. 1. deki programı, pointeri dizinin sonuna atayıp, çift eksi işaretini
kullanarak sondan basa doğru yazması için değiştiriniz.

#include<stdio.h>
#include<string.h>
#include<conio.h>

main() {

int i=3;
char characterArray[100],*pointer;

strcpy(characterArray,”TEST”);

pointer = &characterArray[3];

for(i;characterArray[i] != ‘\0’;i–) {

printf(“%s \n”,pointer);

pointer–;
}

getch();
}

 

Fonksiyonlar ve Değişkenler hakkında Çözülmüş Sorular

1. Daha önce yazdığımız Santigrad’dan Fahrenheit’a karşılık tablosundaki derece hesaplamasını bir fonksiyona geçiriniz.
2. Ekrana isminizi 10 kere yazan bir program yazınız. Yazma isini yapmak için bir fonksiyon çağırınız. Daha sonra bu fonksiyonu main() in başına alarak, derleyicinin bunu kabul edip etmediğini kontrol ediniz.

Çözümler

#include<stdio.h>
#include<conio.h>

/*
. Ekrana isminizi 10 kere yazan bir program yazınız. Yazma isini yapmak için bir fonksiyon çağırınız.
Daha sonra bu fonksiyonu main() in başına alarak, derleyicinin bunu kabul edip etmediğini kontrol ediniz.

1.sorunun cevabı

*/

char printString() {

printf(“Denisa Nanushaj \n”);

}

main() {

for(int i=0;i<=9;i++) printString();

getch();
}

2.sorunun cevabı

#include<stdio.h>
#include<conio.h>

/*
Daha önce yazdığımız Santigrad’dan Fahrenheit’a karşılık tablosundaki derece hesaplamasını bir fonksiyona geçiriniz.

*/

float centigradeToFahrenheit(float centigradeValue) {

return centigradeValue*9/5+32;
}

main() {

float centigradeValue;

printf(“Santigrad degerini girin : “); scanf(“%f”,&centigradeValue);
printf(“Fahrenheit degeri : %f “,centigradeToFahrenheit(centigradeValue));

getch();
}

Tam Sayı Atama Çözülmüş Sorular

1. Birden on ikiye sayacak bir program yazın. Bu program, sayarken rakamları
ve bu rakamların karelerini ekrana yazsın

1 1
2 4
3 9
gibi..

2. Birden on ikiye sayan programı biraz değiştirerek , sayımı yazan, ve 1 in
inversini, beş haneli alan bir program yazın. Yani:

1 1.00000
2 .50000
3 .33333
4 .25000
gibi..

3. Birden yüze kadar sayan, fakat 32 ila 39 arasındaki değerleri yazan bir
program yazın. Her satıra bir rakam yazılsın..

1.sorunun cevabı

#include<stdio.h>
#include<conio.h>

/*
Birden yüze kadar sayan, fakat 32 ila 39 arasındaki değerleri yazan bir
program yazın. Her satıra bir rakam yazılsın..
*/

main() {

for(int i=1;i<=100;i++) {

if(i>=32 && i<=39) {

printf(“%d – %d \n”,i,i);

} else printf(“%d \n”,i);

}

getch();
}

2.sorunun cevabı

#include<stdio.h>
#include<conio.h>

/*
Birden on ikiye sayacak bir program yazın. Bu program, sayarken rakamları
ve bu rakamların karelerini ekrana yazsın
*/

main() {

for(int i=1;i<=12;i++) {

printf(“%d : %d \n”,i,i*i);

}

getch();
}

3.sorunun cevabı

#include<stdio.h>
#include<conio.h>

/*
Birden on ikiye sayan programı biraz değiştirerek , sayımı yazan, ve 1 in
inversini, beş haneli alan bir program yazın. Yani:

1 1.00000
2 .50000
3 .33333
4 .25000
gibi..

*/

main() {

for(int i=1;i<=12;i++) {

printf(“%d %f \n”,i,(1/(float)i));

}

getch();
}

C soruları

  1. soru-Birden yüze kadar olan sayıları ekrana döken bir program yazınız
  2. soru-Programı değiştirip, sayıları ikişer ikişer atlayarak ekrana dökmesini sağlayınız.
  3. soru-2. ödevdeki programı değiştirip, sadece 50 den büyük sayıları (ikişer ikişer) ekrana dökmesini sağlayınız

1.sorunun cevabı

#include<stdio.h>
#include<conio.h>

main() {

// 1den 100’e kadar

for(int i=1;i<=100;i++){

printf(“%d \n”,i);
}

getch();

}

2.sorunun cevabı

#include<stdio.h>
#include<conio.h>

main() {

// Sadece 50’den büyük sayıları ikişer ikişer 100’e kadar döken

for(int i=50;i<=100;i=i+2){

printf(“%d \n”,i);

}

getch();

}

3.sorunun cevabı

#include<stdio.h>
#include<conio.h>

main() {

// Sayıları ikişer ikişer döken

for(int i=1;i<=100;i=i+2){

printf(“%d \n”,i);
}

getch();

}

Referans

1.http://www.kalfaoglu.com/c-dili/3.html

 

 

 

Programcıların klavye alırken dikkat etmesi gerekenler

Selamlar,

Öncelikle programcıların için kritik olan klavye tuşları çoğunlukla şunlardır;

  1. ENTER TUŞU
  2. TAB TUŞU
  3. SHİFT
  4. TIRNAK (e)
  5. SPACE
  6. NOKTALI VİRGÜL VE İKİ NOKTA ÜST ÜSTE TUŞLARI
  7. OPERATÖR (KÜÇÜK/BÜYÜK/EŞİTTİR)
  8. CAPS LOCK

Kesinlikle ilk üç tuşun büyük olmasına özen gösterin ve bunun dışında diğer tuşları da mümkün olduğunca büyük tutmaya bakın.

Ayrıca en önemlisi bana kalırsa sizin alışkanlıklarınızı taşıyabilecek bir klavyedir. Bu nedenle klavyeniz bozulmuşsa veya notebook klavyesinden normal klavyeye geçiyorsanız mümkün olduğunca klavyenizin birebirini almayı tavsiye ediyorum.

Nasıl daha hızlı kod yazılır?

Giriş

Selamlar, bu yazı tamamen  tecrübelerimden ortaya çıkardığım bir yazıdır.

Uzun yazılardan hoşlanmadığınızı bilerek direkt listeler halinde oluşturuyorum.

  1. Çalışmalardan önce netlik kazandırmak
    1. Mümkünse Mockup
    2. Mümkünse Wireframe çizimi
    3. Hiç biri değilse en azından el ile kağıda tüm netlik çıkartılmalı
  2. OOP Kullanarak (Mümkünse Framework)
  3. Test yazarak (Unittest, Daha doğrusu kodu yazmadan önce testini yazmak)
  4. IDE kullanarak (Önerilen: JetBrains IDE’s)
  5. Project Management Tool (Proje yönetimi aracı, Önerilen: Trello)
  6. Screenshot monitor (Veya benzeri bir Timer)
  7. Sakin müzikler

Unutmayın net olmayan şeyler sizi yolun ortasında her daim strese sokar, yavaşlatır. Projeyi her adımda netleştirin ve aynı performansı yakalamaya çalışın.

*Not: Müzik konusunda emin olmamakla birlikte bana göre önemli olan uzun süre aynı performansta çalışmaktır. Bunu da başınızı ağrıtanlarla değil sizin konsantrasyonunuzu artıran müzikler ile yapabilirsiniz.)

C programlamada Yol Hız x Zaman problemi – Ankara’dan İstanbul’a –

Matematikden bildiğimiz Yol = Hız.Zaman problemini hocalar karmaşık bir şekilde sorunca öğrenciler (Özellikle Meslek lisesi öğrencileri) konuyu tam olarak anlayamıyorlar. Öncelikle soruyu inceleyerek işe başlayalım. Daha sonra algoritma, kodu paylaşma ve son olarak konuyu daha iyi anlamanız için gerekli olan diğer konuları paylaşacağım.

Bir arabanın ankara’dan istanbul’a varış zamanını saat cinsinden girdi olarak alan ve
arabanın ortalama hızını hesaplayan bir c porgramı yazınız.

ankara-istanbul arasındaki uzaklığı(453 km) isim sabiti (define ön işlemcisi kullanarak) olarak tamamlayınız.

Bir yolun ne kadar uzunlukta olduğunu ve kaç saate mekana gidildiği bize verildiği zaman anlamamız gereken temel özellik x=vt formülünden yani Yol = Hız x Uzunluk formülünden yolu uzunluga bölmektir.

  1. BAŞLA
  2. TEMEL KÜTÜPHANELERİ EKLE
  3. ANK-IST MAKROSUNU EKLE (453 KM.)
  4. KULLANICIDAN ‘KAC SAAT’ SOR VE DEGERİ AL
  5. YOLU, SAATE BÖL VE PROGRAMDA GÖSTER

Kod:

yol_hiz_carpi_zaman_ankara_istanbul_sorusu

KODU DAHA AYRINTILI GÖRMEK İÇİN RESMİN ÜZERİNE TIKLAYIN.

Konuda geçen C programlama özellikleri (Konuyu daha iyi anlamanız için incelemenizi tavsiye ederiz)

Kullanıcıdan 4 reel sayı alıp, aritmetik ortalamasını hesaplamak

C programlama ile ilgileniyorsanız reel sayı denildiği anda nasıl yani diyebilirsiniz fakat yapmanız gereken şey aslında float tipinde bir sayı tanımlamakdır.

Öncelikle algoritmayı yazalım, sonra kodu paylaşıp kod üzerinde açıklamada bulunacağım.

  1. BAŞLA
  2. 4 DEFA DÖNGÜYE GİR
  3. DÖNGÜ İÇERİSİNDE SAYILARI  AL VE SAYILARI TOPLA
  4. TOPLANAN SAYIYI 4’E BOL
  5. BİTTİ

Kod:

kullanicidan_dort_reel_sayi_girdi_olarak_alan_ve_aritmetik_ortalama

KODU DETAYLI GÖRMEK İÇİN ÜZERİNE TIKLAYIN.

Kod açıklaması:

Yaptığımız şey çok basit. Öncelikle sayıları bir diziye aktarılacak şekilde alıyoruz. Sayıları elimizde tuttuktan sonra bu sayıları toplayıp sayı adetine yani 4’e bölücez. Bu şekilde aritmetik ortalamasını hesaplayabileceğiz.

Sayilar adinda ondalıklı sayi tipinde bir dizi oluşturduk. For döngüsüyle 4 defa döngüye girdik ve her seferinde scanf() fonksiyonuyla %f yani ondalıklı sayı tipinde dizimize giriş yaptırdık. Aynı zamanda aritmetik ortalama hesaplayabilmemiz için sayıların toplamı gerektiğinden sayıları da topladık. Sayıları toplamamız için başlangıç değerini en başta 0 olarak belirtmiştik. Son olarak printf() kullanarak sayının ortalamasını ekrana yazdırdık.

Bu konuda kullanılan C Programlama özellikleri (Daha iyi anlamanız için incelemeniz gereken konular):

 

C programlama vs PHP

C programlama üniversite ve bazı ortaöğretim kurumlarında Algoritmaya giriş dersiyle verilmektedir. Bunun nedenine detaylı olarak baktığımızda C programlama dilinin diğer programlama dillerinin (AMPL, AWK, csh, C++, C– , C#, Objective-C, BitC, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Pike, Processing, Python) temellerini oluşturduğunu  ve diğer programlama dillerine göre daha basit bir yapıya ve geliştirmeye açık olduğunu görürüz.

C programlama dili 1972 yılında geliştirilmiş olmasına rağmen çeşitli güncellemeler ve kendini güçlendirmesi 1973 yılına, popülerleşmesi ise 1978 yılında Ritchie ve Brian Kernighan The C Programming Language (C Programlama Dili) kitabının çıkışıyla gerçekleşti. Bu kitap aynı zamanda C programlama diline bir standart getirdi. Bu standart C programlama dilinin en standart halidir.

php-logoC programlama

C programlama vs PHP

Yazının başlangıcında belirtildiği gibi diğer programlama dillerinin temel yapı taşını oluşturur. Bu nedenle salt (kütüphaneleri standart bir şekilde bırakıldığında) diğer programlama dilleri gibi gelişmiş bir yapıya sahip olmaz. Örneğin C’de bir metin içerisinde boşluk olup olmadığını her karakteri teker teker tarayan ve karakterin boşluk olup / olmadığını yazan bir fonksiyon yazmak zorunda kalabilirsiniz. Fakat PHP’de bunun fonksiyonu hazır olarak zaten yazılmıştır. Daha ayrıntılı bilgi için C programlama örnekleri sayfasını inceleyebilirsiniz.

PHP’ye geçmeden önce C yazan biri PHP’de hazır bir şekilde kullanılan fonksiyonları yazacağından mantıken fonksiyonların nasıl işlediğine bir kanaat getirebilir. C’den PHP’ye geçiş oldukça kolaydır. C yazan bir kişi kendini ortalama 2 veya 3 hafta içerisinde PHP yazabilir. Yalnız PHP’nin kendine göre bir takım standartları vardır. Bunlardan bir kaç tanesi nesne yönelim, framework ve kendine has özel değişkenleridir.

Nesne yönelim (Nesne yönelimli programlama (OOP) nedir?)

C programlama dili nesneye yönelim bir yapıda değildir. Hatta bu eksiklik nedeniyle C++ çıkartılmıştır. Nesne yönelimli programlama karmaşık programlarda kullanılan ve kodların daha rahat anlaşılabilmesi için bir programlama standartıdır. Yani kendini iyi yerlere yetiştirmek isteyen kişilerin bu yazım standartını bilmesi gerekir.

Framework

Her sitenin belli başlı standart ihtiyaçları vardır. Formlar, mail sistemi, upload sistemi vb.. Bunların sürekli farklı kişiler tarafından farklı kodlar yerine bu işi iyi bilen kişiler tarafından tek bir seferde (eksikleri güncellemer ile yazan kişiler tarafından güncellenir) yazıldığını düşünün. Yine kendine ait bir standart getiriyor. Bu şekilde programlama hem daha basit, hem nesneye yönelim, hem de daha hızlı olduğundan bir çok kurum tarafından kullanılıyor.

Kendine has özel değişkenlerdir

C Masaüstü programlama dilidir, PHP ise bir WEB programlama dilidir. Siz hangisinde ilerlemek istiyorsunuz? C’de gelişmiş kişiler daha çok fiziksel aygıtlar ile çalışacaklardır.

Örneğin:

http://www.youtube.com/watch?v=3Kw9ocy55e8

PHP’de ilerlemiş kişilerse işi yalnızca WEB ile olacaktır. Web programlama içerisinde Front End ve Back End denilen kısımlar içerisinde yer alabilirler. Bana kalırsa günümüzün dünyası Web ile ilerliyor. Hayat artık Facebook kurucusu Zuckerberg’in dediği gibi internette yaşanıyor…