Спецификация программы

Автор работы: Пользователь скрыл имя, 05 Декабря 2010 в 09:49, Не определен

Описание работы

зачетная работа

Файлы: 1 файл

ОТчет 1 семестр принято!!!!!!!!!!!!!!.doc

— 322.50 Кб (Скачать файл)

     int int_shild()

     {

     char a[2]={0},x=0;

     int q=0, i=0;

     do {

        x=_getch();

        if (x>=48 && x<=57 && i<2)

          {printf ("%c",x);

           a[i]=x;

           i++;}

        if (x==8 && i>0)

          {printf ("%c %c",8,8);

           i--;

           a[i]=0;}

        q=atoi (a);

      }while (x!=13 || q==0 || i==0);

        return q;

     } 
 

     //******************************************************************

     //******************************************************************

     //Функция  защиты действительных чисел

     //******************************************************************

     double protect(double maxnum,double minnum)

     {const int max=17;

     int g=0, // флажек точки

         k=0,// флажек "е"

         m=0, // счетчик знаков до запятой 

         i=0,t; // счетчик знаков

     char a[max]={0}, //числовой массив на 13  символов

                x=0; // вводимое значение строки

     double q=0; // переменная , отвечающая за выводимый  результат

     do {

        t=i-1;

        x=_getch();

        if (x>=48 && x<=57 && i<max && m<8) //если ввeдены числа

           {printf ("%c",x);

            a[i]=x;

            m++;i++;} 
 
 
 
 

        if (x==8 && i>0) // если нажата <BACKSPACE>

          {

                  printf ("%c %c",8,8);

               m--; i--;

           if (a[i]=='.') {g=0;m=i;}

             if (a[i]=='e') {k=0;t--;}

           a[i]=0;

        } 

        if (x==46 && i<max && g==0) // если нажата  точка

         {printf ("%c",x);

         a[i]=x;

         i++; m=0;g=1;} 

        if (x==45 && i==0) // если нажата клавиша  "-"

           {printf ("%c",x);

            a[i]=x;

            ++m;++i;}

        if (x==45 && a[t]=='e')

           {

            printf ("%c",x);

            a[i]=x;

              i++;m++;

            } 

       if (x==101 && i>0 && i<max-1 && k==0  )//если нажата "е"

       { 

           printf("%c",x);

           a[i]=x;

           m++; i++; k=1; 

           }

     } 

       while (x!=13 || i==0); // делать пока не нажата клавиша <ENTER>

        q=atof (a);//преобразуем массив строк  в числовое значение

        if(fabs(q)<minnum || fabs(q)>maxnum)

        {  a[i]='\0';

              for (int j=i;j>0;j--)   

             { printf("\b \b");}

                 return protect(maxnum,minnum);// возвращаем  прверку на условие вновь, если число выходит за рамки границ

        }

        else

        return q; //возвращаем значение

     }

 

4 Схемы алгоритмов

 

 

 

 
 
 
 
 

  

 

 

 
 
 
 
 
 
 

Рисунок 1 - Схема функции main( )

 

 

 

 

 

 

 

 
 

 

 

 
 
 

Рисунок 2 - Схема функции massiv( ) 
 
 

 

 

 
 

 

 

 
 

 

 
 

 

  

 
 

 

 
 

 
 
 
 
 
 
 
 
 
 

Рисунок 3 - Схема функции void func1(int n, double *s)

 

 

 
 
 

 

 
 
 

 

 

 

 

 

 
 

 

 

 

 

 

 
 
 

Рисунок 4 - Схема функции  int_shild() 

 

 
 

 
 
 
 
 

 

 

 

 

 

 

 
 

 
 
 
 
 

 
 
 

 

 
 

 
 
 
 

 

 

 
 
 
 
 

 
 
 
 
 
 
 
 
 

 

 
 
 

 
 

 
 
 
 
 
 

 
 

 
 
 
 
 

 

 

 

 
 
 

 
 

 
 

 
 

 
 

 
 
 

 
 

 
 

 

 

 
 
 
 
 

 
 
 
 
 

 

 

 

 
 
 
 
 

 

 

Информация о работе Спецификация программы