Paralel portun kullan�m�    Verilen de�erleri s�ralamak    Santigrad'dan Fahrenheit'e �evirme

Fonksiyonun girilen t de�eri i�in ald��� de�eri hesaplama     Vergi iadesini hesapla

 �rnek: Paralel portun kullan�m�

/* PC deki paralel porta eri�im

oku : paralel portu okur.

( 4-bit , bi-directiona, EPP, ECP )

yaz : paralel port data u�lar�na bilgi g�nderir

oku_yaz : durum u�lar�ndan okudu�unu veri u�lar�na g�nderir

*/

#include <stdio.h>

#include <dos.h>

#include <conio.h>

typedef unsigned word;

void binary_yaz(word);

void oku(void);

void yaz(void);

void oku_yaz(void);

word pdata=0x378;

word pstat=0x379;

word bout, bin;

char c;

main()

{

do {

clrscr();

printf("1 - Oku\n");

printf("2 - Yaz\n");

printf("3 - Okudu�unu Yaz\n");

printf("4 - ��k\n");

c = getch();

switch(c) {

case '1' : oku(); break;

case '2' : yaz(); break;

case '3' : oku_yaz(); break;

case '4' : exit(0);

}

}

while (1);

}

void yaz(void)

{

clrscr();

printf("G�nderilecek veri :");

scanf("%d", &bout);

binary_yaz(bout); printf("\n");

outport(pdata, bout);

c = getch();

}

void oku(void)

{

clrscr();

do {

bin = inportb(pstat);

binary_yaz(bin);

printf(" %d\n", bin);

c = getch();

}

while (c != 'q');

}

void oku_yaz(void)

{

clrscr();

do {

bin = inportb(pstat);

gotoxy(1,8) ; printf("Okunan = ");

binary_yaz(bin);

outport(pdata, bin);

gotoxy(1,9) ; printf("Yaz�lan = ");

binary_yaz(bin);

printf(" %d\n", bin);

c = getch();

}

while (c != 'q');

}

void binary_yaz(word x)

{

word i;

word m;

m = 0x8000;

for (i = 0; i<16; i++) {

if (x & m)

printf("1");

else

printf("0");

m = m >> 1;

}

printf(" ");

}

 

�rnek:Verilen de�erleri s�ralamak

  #include <stdio.h>

  main()

{

   int i,n,t;

     int a[100];

     printf(" Rakamlar giriniz - (bitirmek i�in Q yaz�n) ");

     n=0;

     while (scanf("%d",&t)!=0)

          a[n++]=t;

     sortn(a,n);

     for (i=0;i<n;i++)

          printf(" %d",a[i]);

}

  sortn(x,nx)           /* Bir dizini s�raya sokar */

int x[];               /* 'selection sort'         */

int nx;

{

     int i,j,pick;

     for (i=0 ; i < (nx-1) ; i++)

     {

          pick = i;

          for(j=i+1 ; j<nx; j++)

          {

               if (x[j]<x[pick])

                    pick=j;

          }

          swap( &x[pick], &x[i]);

     }

}

  int swap(p1,p2)

int *p1 , *p2;

{

     int temp;

     temp = *p1;

     *p1 = *p2;

     *p2 = temp;

}

  �rnek : Santigrad'dan Fahrenheit'e �eviren Program

main()

{

            int count; /* for degiskeni              */

            int fahr;    /* fahrenheit degerini tutar */

            int cen;             /* Santigrat degerini tutar  */

            printf("Santigrad -> Fahrenheit karsilik tablosu\n\n");

            for (count=-2;count<=12;count=count+1)

            {

                        cen = 10 * count;

                        fahr = 32 + (cen * 9) / 5;

                        printf(" C = %4d  F = %4d   ",cen,fahr);

                        if (cen == 0)

                                    printf(" Suyun donma noktasi");

                        if (cen == 100)

                                    printf(" Suyun kaynama noktasi");

                        printf("\n");

            }

}

 

�rnek :  Fonksiyonun girilen t de�eri i�in ald��� de�eri hesaplay�p yazan program.

main()

{

  float y, x;

  printf(�x de�erini giriniz�);

  scanf(�%f�, &x);

  if (x > -1  && x<2)

      y = 2/3 * (x + 1);

  else

   if (x>2 && x<=3)

      y = 2;

   else

     y = 0;

  printf(�Fonksiyonun de�eri = &f�, y);

}

 

�rnek : Vergi iadesini hesaplayan program (elseif  yap�s�)

(0-60 bin : %10, 60-120 bin : %,120-200 bin : %12,>200 bin : %5)

  main()

{

  float fat_top, vergi_iade;

  printf("Fatura toplamlar�n� giriniz ");

  scanf("%f", &fat_top);

  if (fat_top < 60000)

     vergi_iade = fat_top * 0.10;

  else if (fat_top < 120000)

     vergi_iade = 6000 + (fat_top - 60000) * 0.20;

  else if(fat_top < 200000)

     vergi_iade = 18000 + (fat_top - 120000) * 0.12;

  else

     vergi_iade = 27600 + (fat_top - 200000) * 0.05;

    printf("�denecek vergi iadesi = %f\n", vergi_iade);

  }