12 Kasım 2010 Cuma

C programlama 2008-2009 çıkmış sorular 2.soru çözümü

C sınavı 2008 yılında çıkmış soru 2
Bir çerçeve çizdiriniz. İçine şekildeki gibi MENÜ yerleştiriniz.Çerçeve koordinatları (x1=5,y1=2,x2=60,y2=24 ) olcak şekilde ayarlayınız.Menü yazısı ve altındakiler çerçeveye göre ortada bir yere yazdırmaya çalışınız.çerçevenin köşeleri önemsenmeyecek.
1. Girilen 10 sayı arasından en büyüğü bulup ekrana yazdıran program hazırlayın.
2.Kullanıcıdan sayı girişi isteyiniz. Kullanıcı çift sayı girene kadar sayı girişi devam edecek ve girilen tek sayıların toplamı bir değişkene aktarılacak.Çift sayı girişi yapıldığında zaman o ana kadar olan tek sayıların toplamı ekrana yazdırılacak.
3. 3 seçilmişse ekrana güle güle yine bekleriz yazdırılıp çıkış sağlanacak.

Sorunun çözümünü yaptım menü kısmı değerlerini kendimayarladım sorudaki değerlere göre çizmedim. Anlaşılmayan biyer olursa iletişimdeki adresimden irtibata geçebilirsiniz yardımcı olmaya çalışırım.

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<dos.h>
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
void cerceve()
{
    int i,j;
    for(i=5;i<30;i++)
    {
        gotoxy(i,0);printf("%c",196);
        gotoxy(i,10);printf("%c",196);
    }
    for(j=0;j<10;j++)
    {
        gotoxy(5,j);printf("%c",179);
        gotoxy(30,j);printf("%c",179);
        printf("\n\n");
    }
        gotoxy(5,0);printf("%c",218);
        gotoxy(5,10);printf("%c",192);
        gotoxy(30,0);printf("%c",191);
        gotoxy(30,10);printf("%c",217);
    gotoxy(8,1);printf("***MENU***");
    gotoxy(6,3);printf("1- EN BUYUK SAYIYI BUL");
    gotoxy(6,4);printf("2- TEK SAYILARIN TOPLAMI");
    gotoxy(6,5);printf("3- CIKIS");
    printf("\n\n\n\n\n\n\n\n");
}
void en_buyuk()
{
    int gecici,sayi,i;
        printf("Sayi Giriniz:");scanf("%d",&sayi);
        gecici=sayi;
    for(i=0;i<9;i++)
    {
        printf("Sayi Giriniz:");scanf("%d",&sayi);
        if (sayi>gecici)
            gecici=sayi;
    }
    printf("En Buyuk Sayi=%d",gecici);
}
void tek_sayi_2()
{
    int sayi,topla=0;

      do{
          printf("SAYI GIRINIZ:");scanf("%d",&sayi);
          if (sayi%2==0) break;
          else
          topla+=sayi;
        }while(sayi%2==1);
    printf("toplam:%d",topla);
}
main()
{
    int secim;
    gel:
    system("cls");
    cerceve();
    printf("LUTFEN SECIMINIZI YAPINIZ:");scanf("%d",&secim);

     switch(secim)
    {
        case 1:
            en_buyuk();
            getch();
            goto gel;
        case 2:
            tek_sayi_2();
            getch();
            goto gel;
        case 3:
            printf("GULE GULE YINE BEKLERIZ");exit(0);
    }
}
Çıktı Görüntüsü