Проверка на входни данни от указан числов интервал

За коректната работа на всяка програма се изисква проверка на входни данни - въведените стойности да са в предварително указан числов интервал. Проверката, валидизирането на въведените входни данни е често срещана част от програмните продукти.

     В случая е по-удачно използването на цикъл do-while така проверката се осъществява след въвеждането на данните и продължава, докато не се изпълни условието.
     Ще разгледаме следните два варианта:
     а) проверка дали въведените входни данни са в предварително указан числов интервал
     б) проверка дали въведените входни данни са извън предварително указан числов интервал
 
     Следващата примерна програма дава решена задача за проверка на входни данни за указан числов интервал по двете условия поотделно:
#include<iostream>

using namespace std;

const int Min=10, Max=100;//gorna i dolna granica na chislow interwal

int main() //nachalo na programata

  {//nachalo na programata

  int c,d;

 

    cout<<"Da se systawi programa, chrez koqto izwyrshwa prowerka po wqhod\n";

    cout<<"prowqwa se izpylnenie na uslowie za 2 chisla:\n";

    cout<<"a) dali prinadlevat na daden chislow interwal; \n";

     cout<<"b) dali ne prinadlevat na daden chislow interwal.\n";

    cout<<"Wywevdaneto prodylvawa dokato ne se izpylnqt postawenite iziskwaniq.\n";

  

   cout<<"Sledwashite stojnosti da sa w ukazaniq interwal:\n"; 

     do 

    {cout<<"Wywedete chislitel [10..100]: ";cin>>c;

     cout<<"Wywedete znamenatel [10..100]: ";cin>>d;

   } while ((c<Min || c>Max) || (d<Min || d>Max));  

     cout<<"Stojnostta na drob "<<c<<"/"<<d<<" = "<<(double) c/d<<endl;  

   cout<<"Sledwashite stojnosti da sa izwyn ukazaniq interwal:\n"; 

      do 

    {cout<<"Wywedete sybiraemo 1 [10..100]: ";cin>>c;

     cout<<"Wywedete sybiraemo 2 [10..100]: ";cin>>d;

   } while ((c>=Min && c<=Max  ) || ( d>=Min && d<=Max));  

    cout<<"Sumata mevdu "<<c<<" + "<<d<<" = "<< c+d<<endl;  

system("pause");//chaka natiskane na klawish

return 0;//osbovdawa zaetite sistemni resursi i wrysha kod na greshka 0

}//kraj na programa chislow interwal

   

     Следващата примерна програма извършва проверката по двете условия поотделно чрез функции.
     Използва се указател към 2 променливи, т.к. функцията връща само една стойност. Не е необходима начална инициализация на променливите, защото алгоритъмът изисква първо въвеждане на стойности и едва след това проверка и обработка с тези данни.
 
#include<iostream>

using namespace std;

const int Min=10, Max=100;//gorna i dolna granica na chislow interwal     

 

 void wytre(int &c, int &d)

    { do 

    {cout<<"Wywedete chislitel [10..100]: ";cin>>c;

     cout<<"Wywedete znamenatel [10..100]: ";cin>>d;

   } while ((c<Min || c>Max) || (d<Min || d>Max));  

  }             

  

  void wyn(int &c, int &d)

    {  do 

     {cout<<"Wywedete sybiraemo 1 [10..100]: ";cin>>c;

     cout<<"Wywedete sybiraemo 2 [10..100]: ";cin>>d;

    } while ((c>=Min && c<=Max  ) || ( d>=Min && d<=Max));        

  }     

        

int main() //nachalo na programata

  {

     int c,d;

 

    cout<<"Da se systawi programa, chrez koqto izwyrshwa prowerka po wqhod\n";

     cout<<"prowqwa se izpylnenie na uslowie za 2 chisla:\n";

     cout<<"a) dali prinadlevat na daden chislow interwal; \n";

    cout<<"b) dali ne prinadlevat na daden chislow interwal.\n";

    cout<<"Wywevdaneto prodylvawa dokato ne se izpylnqt postawenite iziskwaniq.\n";

 

    cout<<"Sledwashite stojnosti da sa w ukazaniq interwal:\n"; 

      wytre(c, d);

     cout<<"Stojnostta na drob "<<c<<"/"<<d<<" = "<<(double) c/d<<endl;  

  

    cout<<"Sledwashite stojnosti da sa izwyn ukazaniq interwal:\n"; 

    wyn(c, d);

    cout<<"Sumata mevdu "<<c<<" + "<<d<<" = "<<  c+d<<endl;  

system("pause");//chaka natiskane na klawish

return 0;//osbovdawa zaetite sistemni resursi i wrysha kod na greshka 0

}//kraj na programa chislow interwal

Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.

Начало на страницата

 
Размер на шрифта
Increase Font Size Option 3 Reset Font Size Option 3 Decrease Font Size Option 3
Bulgarian Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Търсене в сайта: