Неделя, 20 Ноември 2011 07:44

функция - търсене на естествено число в дълго число

Написана от 
Оценете
(0 гласа)

Да се състави програма (C++) чрез която се въвеждат две естествени числа N1,N2.
N1 е дълго число с брой цифри [10..110], a N2 е от интервала [10..99]. Да се осъществи търсене на естествено число в дълго число.
Програмата да изведе съобщение дали числото N2 се съдържа в дългото число, както и неговата позция. Да се продължи (в следващите цифри) с търсене на числото 101.
Да се изведе съобщение, ако дългото число не е цяло число, т.е. в записа му се съдържа десетична точка.
Пример: 12345671010102, 45 Изход: 4, 8, естествено число

Решение

  
// и двете числа се разглеждат като стринг
#include <iostream>
#include <string>
using namespace std;

bool tochka( string chis1, string chis2)
{bool da;
  size_t poziciq;
  int dyl1,dyl2;
  dyl1=chis1.size();//dylvina
  dyl2=chis2.size(); 

  poziciq=chis1.find('.');
  if (poziciq!=string::npos) da=true;
  else
  {da =false;
    //tyrsi w cqloto chislo - string
  poziciq=chis1.find(chis2);
  if (poziciq!=string::npos)
   { cout << "Pyrwata otkrita poziciq e: "<<int(poziciq)+1<<endl;
   } 
  //tyrsene sled poziciqta na I-to otkriwane
  poziciq=chis1.find("101",poziciq+1,dyl2); 
  if (poziciq!=string::npos)
   { cout<<"Wywedenoto chislo sysydrva 101 w poziciq: "<<int(poziciq)+1<<endl;
   }  
  }    
   return da;  
}

int main ()
{ string chis1,chis2; 
  bool da;
  cout<<"Da se systawi programa, chez koqto se wywevdat dwe estestweni\n";
  cout<<"chisla N1,N2. Pyrwoto e dylgo chislo e s broj cifri [10..110], a \n";
  cout<<"wtoroto e ot interwala [10..99]. Programata da izwede dali N1\n";
  cout<<"wkliuchwa N2. Ako N2 se sydyrva w N1 se prowerqwa za chisloto 101.\n";
  cout<<"Ako N1 ne e cqlo chislo da se izwede syobshenie.\n";
  cout<<"Primer: 12345671010102, 45 Izhod: 4, 8, estestweno chislo\n";
  cout<<"Wywedete dylgo chislo: ";cin>>chis1;
  cout<<"Wywedete chislo [10..99]: ";cin>>chis2;
  da=tochka( chis1, chis2);  
  if (da)
    cout<<"Wywedenoto chislo sydyrva desetichna tochka: \n";
    else cout<<"Estestweno chislo.\n";
  system("pause");
  return 0;
}
Прочетена 1123 пъти Последно променена в Понеделник, 21 Ноември 2011 12:15