Пример #1
0
int counter::operator()(int n)
{
    int r = 0;
    for (int i = 2; i < n; ++i) {
        if (circular(i))
            ++r;
    }
    return r;
}
Пример #2
0
void main()
{
  int gd=DETECT,gm;
  initgraph(&gd,&gm,"C:\\TURBOC3\\BGI");
 // line(200,200,400,400);
  circular(200,200,50,20,6,360);
  getch();
  closegraph();
}
Пример #3
0
int main(void)
{
		int len=0;
		int cir=0;
		char str[1000]={'\0'};
		printf("문장을 입력해주세요 : ");
		scanf("%s", &str);
		len=strlen(str);
		if(circular(str,len)==0)
				printf("%s는 회문이 아닙니다.\n",str);
		else
				printf("%s는 회문입니다.\n",str);
		return 0;	

}
Пример #4
0
int distanceFast(const Location& from, const Location& to, const Location& resolution)
{
    return  circular(from.row, to.row,resolution.row) +
            circular(from.col, to.col, resolution.col);
}
Пример #5
0
int main() {
  double sa = circular(buf);
  //printf("%f\n", sa);
}
Пример #6
0
bool TLB::tercer_caso(int nro_pagina)
{

// no quedan entradas desocupadas en la TLB
    contador_de_fallos++; // contado de fallos de la tlb
    EntradaTP* aux = tabla_pagina->get_entrada(nro_pagina);
    //solamente para q entre
    //i, lo debemos cambiar por un puntero que recorra cirulamente la tlb
    int lru_tlb = circular();
    int lru_tp = (tabla_pagina->puntero_LRU) % tabla_pagina->tamano;
    //caso Npv= y entradaTP.V=1

    // este es el caso en que la pagina virtual esta mapeada a la memoria fisica pero no esta en la TLB
    if (aux->V == 1 /*&& aux->R==0*/)   // tabla de pagina tiene marco de pagina
    {

        aux->R = 1;
        entradas[lru_tlb].Nmp = aux->Nmp;
        entradas[lru_tlb].V = 1;
        entradas[lru_tlb].R = 1;
        entradas[lru_tlb].Npv = nro_pagina;
        // std::cout << "FUNCION TERCER CASO" << std::endl;
        return true;

    }
    tabla_pagina->contador_de_fallos++;//contador de fallos de la Tabla de pagina

    if(tabla_pagina->cantidad_marcos_disponibles > 0)
    {
        aux->Nmp = tabla_pagina->marco_actual;
        aux->V = 1;
        aux->R = 1;
        entradas[lru_tlb].Nmp = aux->Nmp;
        entradas[lru_tlb].V = 1;
        entradas[lru_tlb].R = 1;
        entradas[lru_tlb].Npv = nro_pagina;
        //std::cout << "FUNCION TERCER CASO" << std::endl;
        return true;
    }
    int contador_penca=0;
    // se busca una entrada que tenga bit valido 1 para quitarle el marco de pagina
    while (tabla_pagina->entrada[lru_tp].V == 0 || tabla_pagina->entrada[lru_tp].R == 1)
    {
        contador_penca++;
        lru_tp = tabla_pagina->circular_LRU();
        // cada avance no cuenta como fallo
        //consideramos como un fallo de pagina, cuando se reemplaza

    }
// cout << "contador_penca"<< contador_penca <<endl;
    // caso V=1 y R=1
    //invalidamos entraba en tabla de pagina
    aux->Nmp = tabla_pagina->entrada[lru_tp].Nmp;
    aux->V = 1;
    aux->R = 1;

    entradas[lru_tlb].Nmp = aux->Nmp;
    entradas[lru_tlb].V = 1;
    entradas[lru_tlb].R = 1;
    entradas[lru_tlb].Npv = nro_pagina;

    tabla_pagina->entrada[lru_tp].V = 0;
    tabla_pagina->entrada[lru_tp].R = 1;
//  std::cout << "FUNCION TERCER CASO" << std::endl;
    return true ;

// no deberia nunca retonar falso
    //std::cout << "RETORNA FALSO" << std::endl;
    return false;
}