Birbirini izleyen çok sayıda koşul kontrolünü gerçekleştirmeye yarayan bir yapı if-else-if basamağı adını alır ve yazılış biçimi aşağıdaki gibidir:
#import <Foundation/Foundation.h>
int main(int argc, char* argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
double gelir,vergi,v1,v2,v3,v4;
v1=150000000*0.25;
v2=150000000*0.30;
v3=300000000*0.35;
v4=600000000*0.40;
NSLog(@"VERGI MUKELLEFININ GELIRI ");
scanf("%lf",&gelir);
if (gelir<=150000000)
vergi=gelir*0.25;
else if(gelir<=300000000)
vergi=v1+(gelir-150000000)*0.3;
else if(gelir<=600000000)
vergi=v1+v2+(gelir-300000000)*0.35;
else if(gelir<=1200000000)
vergi=v1+v2+v3+(gelir-600000000)*0.4;
else
vergi=v1+v2+v3+v4+(gelir-1200000000)*0.5;
NSLog(@"HESAPLANAN GELIR VERGISI=%f",vergi);
[pool drain];
return 0;
}
PROGRAMIN ÇIKTILARI
ÖRNEK ÇIKTI 1:
ÖRNEK ÇIKTI 2:
Yukarıdaki programda uygulanan vergilendirme mantığı şöyledir:
Örneğin, bir kişinin geliri 200,000,000 TL olsun. Bunun ilk 150,000,000 TL’si %25 üzerinden, kalan 200,000,000 – 150,000,000 = 50,000,000 TL’si ise %30 üzerinden vergilendirir.
O nedenle programın başında her aralığa ait sabit vergiler hesaplanarak v1, v2, v3 ve v4 değişkenlerine atanır.
ÖRNEK PROBLEM: İKİNCİ DERECE DENKLEMİN KÖKLERİNİN BULUNMASI
Lise yıllarında öğrendiğiniz ikinci derece denklem,
ax2 + bx + c = 0
şeklinde ifade edilir ve denklemin köklerinin varlığı hakkında bilgi sahibi olabilmek için, denklemin diskriminantı adı verilen,
Δ=b2-4ac
ifadesinin hesaplanması gerekir.
Diskriminantın değerlerine göre şayet,
- Δ<0 ise denklemin gerçel sayılarla ifade edilebilecek bir kökü yoktur.
- Δ=0 ise denklemin, değerleri birbirine eşit olan iki kökü vardır ve bunlar x1=x2=–b/(2a) şeklinde hesaplanırlar. Bunlara iki kat kök ya da çakışık kök adı verilir.
- Δ>0 ise de denklemin birbirinden farklı iki gerçel kökü vardır ve bunlar x1=(-b+√Δ)/(2a) ve x2=(-b–√Δ)/(2a) şeklinde hesaplanırlar.
İKİNCİ DERECE DENKLEMİN KÖKLERİNİ BULAN OBJECTİVE C PROGRAMININ LİSTESİ:
Aşağıdaki Objective C kodunu oluşturalım.
#import <Foundation/Foundation.h>
#include <math.h>
int main(int argc, char* argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
double a,b,c;
NSLog(@"a ...");
scanf("%lf", &a);
NSLog(@"b ...");
scanf("%lf", &b);
NSLog(@"c ...");
scanf("%lf", &c);
double delta = b*b - 4*a*c;
if(0 > delta)
{
NSLog(@"GERCEK KOK YOK ");
}
else if (0 == delta)
{
double x1=-b/(2*a);
NSLog(@"x1=x2=%f",x1);
}
else
{
double x1=(-b+sqrt(delta))/(2*a);
double x2=(-b-sqrt(delta))/(2*a);
NSLog(@"x1=%f",x1);
NSLog(@"x2=%f",x2);
}
[pool drain];
return 0;
}
PROGRAMININ ÇIKTILARI:
Debug/Start menü adımları ile uygulamayı çalıştırdığımızda aşağıdaki sonuçları elde ederiz:
ÖRNEK ÇIKTI 1:
ÖRNEK ÇIKTI 2:
ÖRNEK ÇIKTI 3: