{"id":21181,"date":"2026-01-22T09:00:00","date_gmt":"2026-01-22T14:00:00","guid":{"rendered":"https:\/\/blog.espol.edu.ec\/algoritmos101\/?p=21181"},"modified":"2026-04-05T20:23:00","modified_gmt":"2026-04-06T01:23:00","slug":"s2eva2025paoii_t3-area-en-forma-de-almendra","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s2eva30\/s2eva2025paoii_t3-area-en-forma-de-almendra\/","title":{"rendered":"s2Eva2025PAOII_T3 \u00c1rea en forma de almendra"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-2eva30\/2eva2025paoii_t3-area-en-forma-de-almendra\/\" data-type=\"post\" data-id=\"21177\">2Eva2025PAOII_T3 \u00c1rea en forma de almendra<\/a><\/p>\n\n\n\n<p>A partir de las expresiones que corresponden a c\u00edrculos, se encuentra el valor de y:<\/p>\n\n\n\n<p class=\"has-text-align-center\">f(x): (x-0)<sup>2<\/sup> +(y-1)<sup>2<\/sup> = 1<sup>2<\/sup>  ; centrado en [0,1]<\/p>\n\n\n\n<p class=\"has-text-align-center\">g(x): (x-1)<sup>2<\/sup> +(y-0)<sup>2<\/sup> = 1<sup>2<\/sup> ; centrado en [1,0]<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"784\" height=\"327\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2026\/01\/AreaAlmendraMatplotlib.png\" alt=\"\u00c1rea forma de Almendra con Matplotlib\" class=\"wp-image-21179\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">literal a.<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<figure class=\"wp-block-image alignleft size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2026\/01\/AreaAlmendra_fx_circulo.png\" alt=\"c\u00edrculo f(x) superior e inferior\" class=\"wp-image-21210\" style=\"width:400px\" \/><\/figure>\n\n\n\n<p>El primer semic\u00edrculo se obtiene de f(x): (x-0)<sup>2<\/sup> +(y-1)<sup>2<\/sup> = 1<sup>2<\/sup><\/p>\n\n\n\n<p class=\"has-text-align-center\">(y-1)<sup>2<\/sup> = 1<sup>2<\/sup> - (x-0)<sup>2<\/sup><\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y-1 = \\pm \\sqrt{ 1 - (x-0)^2} <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y =1 \\pm \\sqrt{ 1 - (x-0)^2} <\/span>\n\n\n\n<p>En la gr\u00e1fica se observa que el semic\u00edrculo para f(x) centrado en [0,1] se usa la parte inferior del c\u00edrculo o con ra\u00edz cuadrada negativa.<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(x) =1 - \\sqrt{ 1 - x^2} <\/span>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>El otro semic\u00edrculo se obtiene de g(x): (x-1)<sup>2<\/sup> +(y-0)<sup>2<\/sup> = 1<sup>2<\/sup><\/p>\n\n\n\n<p class=\"has-text-align-center\"> (y-0)<sup>2<\/sup> = 1<sup>2<\/sup>-(x-1)<sup>2<\/sup><\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y-0 = \\pm\\sqrt{ 1 - (x-1)^2} <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y =\\pm \\sqrt{ 1 - (x-1)^2} <\/span>\n\n\n\n<p>En la gr\u00e1fica se observa que para g(X) se usa la parte superior del c\u00edrculo centrado en [1,0], por lo que se usa la parte superior del c\u00edrculo o con ra\u00edz cuadrada positiva<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> g(x) =\\sqrt{ 1 - (x-1)^2} <\/span>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>En resumen, las ecuaciones a usar son:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(x) =1 - \\sqrt{ 1 - x^2} <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> g(x) =\\sqrt{ 1 - (x-1)^2} <\/span>\n\n\n\n<h2 class=\"wp-block-heading\">literal b<\/h2>\n\n\n\n<p>El intervalo de <strong>intersecci\u00f3n de los c\u00edrculos<\/strong> es entre [0,1].<\/p>\n\n\n\n<p>Simpson de 1\/3 usa dos tramos, como se requieren al menos dos iteraciones con la f\u00f3rmula se usar\u00e1n 4 tramos.<\/p>\n\n\n\n<p class=\"has-text-align-center\">h = (b-a)\/4 = (1-0)\/4 = 0.25<\/p>\n\n\n\n<p>xi = [0 , 1\/4, 2\/4, 3\/4, 1] = [0 , 1\/4, 1\/2, 3\/4, 1]<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(x) =1 - \\sqrt{ 1 - x^2} <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(0) =1 - \\sqrt{ 1 - 0^2} = 0<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(1\/4) =1 - \\sqrt{ 1 - (1\/4)^2} = 0.03175<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(1\/2) =1 - \\sqrt{ 1 - (1\/2)^2} = 0.1339<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(3\/4) =1 - \\sqrt{ 1 - (3\/4)^2} = 0.3385<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(1) =1 - \\sqrt{ 1 - 1^2} = 1.<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">Area_{fx} = \\frac{h}{3} (f(0)+4f(1\/4)+f(1\/2)) + <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + \\frac{h}{3}(f(1\/2)+4f(3\/4)+f(1)) <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">Area_{fx} = \\frac{0.25}{3} (0+4(0.03175)+0.1339) <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">+ \\frac{0.25}{3}(0.1339+4(0.3385)+1) = 0.2291 <\/span>\n\n\n\n<p>la cota de error de truncamiento es:<\/p>\n\n\n\n<p>errado<sub>truncar<\/sub> = -h<sup>5<\/sup>\/90 = 0.00001085<\/p>\n\n\n\n<p>errado<sub>total<\/sub> = 2*errado<sub>tramo<\/sub> =0.00002170<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2026\/01\/AreaAlmendraS13_4tramos.png\" alt=\"\u00e1rea f(x) Simpson 1\/3 con 4 tramos\" class=\"wp-image-21185\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">literal c.<\/h2>\n\n\n\n<p>Simpson de 3\/8 usa tres tramos, como se requieren al menos dos iteraciones con la f\u00f3rmula se usar\u00e1n 6 tramos en el intervalo [0,1].<\/p>\n\n\n\n<p class=\"has-text-align-center\">h = (b-a)\/6 = (1-0)\/6 = 1\/6 = 0.1666<\/p>\n\n\n\n<p>xi = [0 , 1\/6, 2\/6, 3\/6, 4\/6, 5\/6, 1] = [0 , 1\/6, 1\/3, 1\/2, 4\/6, 5\/6, 1]<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> g(x) =\\sqrt{ 1 - (x-1)^2} <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> g(0) =\\sqrt{ 1 - (0-1)^2} =0<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> g(1\/6) =\\sqrt{ 1 - (1\/6-1)^2} =0.5527 <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> g(1\/3) =\\sqrt{ 1 - (1\/3-1)^2}=0.7453 <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> g(1\/2) =\\sqrt{ 1 - (1\/2-1)^2} =0.8660 <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> g(4\/6) =\\sqrt{ 1 - (4\/6-1)^2} =0.9428<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> g(5\/6) =\\sqrt{ 1 - (5\/6-1)^2} =0.9860<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> g(1) =\\sqrt{ 1 - (1-1)^2} =1 <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> Area_{gx} =\\frac{3}{8}h(g(0)+3g(1\/6)+3g(1\/3)+g(1\/2)) +<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">+\\frac{3}{8}h(g(1\/2)+3g(4\/6)+3g(5\/6)+g(1)) <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> Area_{gx} =\\frac{3}{8}\\left(\\frac{1}{6}\\right)(0+3(0.5527)+3(0.7453)+0.8660) +<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">+\\frac{3}{8}\\left(\\frac{1}{6}\\right)(0.8660+3(0.9428)+3(0.9860)+1) =0.7758 <\/span>\n\n\n\n<p>la cota de error de truncamiento es:<\/p>\n\n\n\n<p>errado<sub>truncar<\/sub> = -3\/80 h<sup>5<\/sup> = =-3\/80 (1\/6)<sup>5<\/sup> = 0.000004822<\/p>\n\n\n\n<p>por dos iteraciones con la f\u00f3rmula, el doble = 0.000009645<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2026\/01\/AreaAlmendraS38_6tramos.png\" alt=\"\u00c1rea Almendra Simpson 3\/8 con 6tramos\" class=\"wp-image-21186\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">literal d<\/h2>\n\n\n\n<p>Area<sub>almendra<\/sub> = Area<sub>gx<\/sub> - Area<sub>fx<\/sub> = 0.7758-0.2291 = 0.5467<\/p>\n\n\n\n<p>el error de truncamiento se muestra en los literales anteriores.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">literal e<\/h2>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>tramos: 4\nfx(xi): &#091;0.         0.03175416 0.1339746  0.33856217 1.        ]\nIntegral fx con Simpson1\/3:  0.2291012112632596\ntramos: 6\ngx(xi): &#091;0.         0.5527708  0.74535599 0.8660254  0.94280904 0.9860133  1.        ]\nIntegral fx con Simpson 3\/8:  0.7758061372838978<\/code><\/pre>\n\n\n\n<p>Algoritmo en Python para f(x)<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# 2Eva2025PAOII_T3 \u00c1rea en forma de almendra\n# Regla Simpson 1\/3 para f(x) entre &#x5B;a,b],tramos\nimport numpy as np\n \n# INGRESO\nfx = lambda x: 1-np.sqrt(1-(x-0)**2)\na = 0 # intervalo de integraci\u00f3n\nb = 1\ntramos = 2*2 # par, m\u00faltiplo de 2\n \n# validar: tramos debe m\u00faltiplo de 2\nwhile tramos%2 &gt; 0: \n    print('tramos: ',tramos)\n    tramos = int(input('tramos debe ser par: '))\n \n# PROCEDIMIENTO\nmuestras = tramos + 1\nxi = np.linspace(a,b,muestras)\nfi = fx(xi)\n \n# Regla de Simpson 1\/3\nh = (b-a)\/tramos\nsuma = 0 # integral num\u00e9rico\nfor i in range(0,tramos,2):\n    S13= (h\/3)*(fi&#x5B;i]+4*fi&#x5B;i+1]+fi&#x5B;i+2])\n    suma = suma + S13\n \n# SALIDA\nprint('tramos:', tramos)\nprint('fx(xi):',fi)\nprint('Integral fx con Simpson1\/3: ', suma)\n<\/pre><\/div>\n\n\n<p>Gr\u00e1fica en Python para f(x)<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# GRAFICA ---------------------\nimport matplotlib.pyplot as plt\n \ntitulo = 'Regla de Simpson 1\/3'\ntitulo = titulo + ', tramos:'+str(tramos)\ntitulo = titulo + ', Area:'+str(suma)\n \nfx_existe = True\ntry: \n    # fx suave aumentando muestras\n    muestrasfxSuave = tramos*10 + 1\n    xk = np.linspace(a,b,muestrasfxSuave)\n    fk = fx(xk)\nexcept NameError:\n    # falta variables a,b,muestras y la funci\u00f3n fx\n    fx_existe = False\n \ntry: # existen mensajes de error\n    msj_existe = len(msj)\nexcept NameError:\n    # falta variables mensaje: msj\n    msj = &#x5B;]  \n \n# Simpson 1\/3 relleno y bordes, cada 2 tramos\nfor i in range(0,muestras-1,2): \n    x_tramo = xi&#x5B;i:(i+2)+1]\n    f_tramo = fi&#x5B;i:(i+2)+1]\n \n    # interpolaci\u00f3n polinomica a*(x**2)+b*x+c\n    coef = np.polyfit(x_tramo, f_tramo, 2) # &#x5B;a,b,c]\n    px = lambda x: coef&#x5B;0]*(x**2)+coef&#x5B;1]*x+coef&#x5B;2]\n \n    xp = np.linspace(x_tramo&#x5B;0],x_tramo&#x5B;-1],21)\n    fp = px(xp)\n     \n    plt.plot(xp,fp,linestyle='dashed',color='orange')\n     \n    relleno = 'lightgreen'\n    if (i\/2)%2==0: # bloque 2 tramos, es par\n        relleno ='lightblue'\n    if len(msj)==0: # sin errores\n        plt.fill_between(xp,fp,fp*0,color=relleno)\n \n# Divisiones verticales Simpson 1\/3\nfor i in range(0,muestras,1):\n    tipolinea = 'dotted'\n    if i%2==0: # i par, multiplo de 2\n        tipolinea = 'dashed'\n    if len(msj)==0: # sin errores\n        plt.vlines(xi&#x5B;i],0,fi&#x5B;i],linestyle=tipolinea,\n                   color='orange')\n \n# Graficar f(x), puntos\nif fx_existe==True:\n    plt.plot(xk,fk,label='f(x)')\nplt.plot(xi,fi,'o',color='orange',label ='muestras')\n \nplt.xlabel('x')\nplt.ylabel('f(x)')\nplt.title(titulo)\nplt.legend()\nplt.tight_layout()\nplt.show()\n<\/pre><\/div>\n\n\n<p>Algoritmo en Python para g(x)<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# --------------------------------------------------\n# Regla Simpson 3\/8 para f(x) entre &#x5B;a,b],tramos\nimport numpy as np\n \n# INGRESO\nfx = lambda x: np.sqrt(1-(x-1)**2)\n\na = 0 # intervalo de integraci\u00f3n\nb = 1\ntramos = 3*2 # multiplo de 3\n \n# validar: tramos debe ser m\u00faltiplo de 3\nwhile tramos%3 &gt;0:\n    print('tramos: ',tramos)\n    txt = 'tramos debe ser m\u00faltiplo de 3:'\n    tramos = int(input(txt))\n \n# PROCEDIMIENTO\nmuestras = tramos + 1\nxi = np.linspace(a,b,muestras)\nfi = fx(xi)\n \n# Regla de Simpson 3\/8\nh = (b-a)\/tramos\nsuma = 0 # integral num\u00e9rico\nfor i in range(0,tramos-2,3): #muestras-3\n    S38 = (3\/8)*h*(fi&#x5B;i]+3*fi&#x5B;i+1]+3*fi&#x5B;i+2]+fi&#x5B;i+3])\n    suma = suma + S38\n \n# SALIDA\nprint('tramos:', tramos)\nprint('gx(xi):',fi)\nprint('Integral fx con Simpson 3\/8: ', suma)\n<\/pre><\/div>\n\n\n<p>Gr\u00e1fica en Python para g(x)<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# GRAFICA ---------------------\nimport matplotlib.pyplot as plt\n \ntitulo = 'Regla de Simpson 3\/8'\ntitulo = titulo + ', tramos:'+str(tramos)\ntitulo = titulo + ', Area:'+str(suma)\n \nfx_existe = True\ntry: \n    # fx suave aumentando muestras\n    muestrasfxSuave = tramos*10 + 1\n    xk = np.linspace(a,b,muestrasfxSuave)\n    fk = fx(xk)\nexcept NameError:\n    fx_existe = False\n \ntry: # existen mensajes de error\n    msj_existe = len(msj)\nexcept NameError:\n    msj = &#x5B;]  \n \n# Simpson 3\/8 relleno y bordes, cada 3 tramos\nfor i in range(0,muestras-2,3):\n    x_tramo = xi&#x5B;i:(i+3)+1]\n    f_tramo = fi&#x5B;i:(i+3)+1]\n \n    # interpolaci\u00f3n polinomica a*(x**3)+b*(x**2)+c*x+d\n    coef = np.polyfit(x_tramo, f_tramo, 3) # &#x5B;a,b,c,d]\n    px = lambda x: coef&#x5B;0]*(x**3)+coef&#x5B;1]*(x**2)+coef&#x5B;2]*x+coef&#x5B;3]\n     \n    xp = np.linspace(x_tramo&#x5B;0],x_tramo&#x5B;-1],21)\n    fp = px(xp)\n     \n    plt.plot(xp,fp,linestyle='dashed',color='orange')\n     \n    relleno = 'lightgreen'\n    if (i\/3)%2==0: # bloque 3 tramos, es par\n        relleno ='lightblue'\n    plt.fill_between(xp,fp,fp*0,color=relleno)\n        \n# Divisiones entre Simpson 3\/8\nfor i in range(0,muestras,1):\n    tipolinea = 'dotted'\n    if i%3==0: # i es multiplo de 3\n        tipolinea = 'dashed'\n    if len(msj)==0: # sin errores\n        plt.vlines(xi&#x5B;i],0,fi&#x5B;i],linestyle=tipolinea,\n                   color='orange')\n \n# Graficar f(x), puntos\nif fx_existe==True:\n    plt.plot(xk,fk,label='f(x)')\nplt.plot(xi,fi,'o',color='orange',label ='muestras')\n \nplt.xlabel('x')\nplt.ylabel('f(x)')\nplt.title(titulo)\nplt.legend()\nplt.tight_layout()\nplt.show()\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 2Eva2025PAOII_T3 \u00c1rea en forma de almendra A partir de las expresiones que corresponden a c\u00edrculos, se encuentra el valor de y: f(x): (x-0)2 +(y-1)2 = 12 ; centrado en [0,1] g(x): (x-1)2 +(y-0)2 = 12 ; centrado en [1,0] literal a. El primer semic\u00edrculo se obtiene de f(x): (x-0)2 +(y-1)2 = 12 (y-1)2 = [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"wp-custom-template-entrada-mn-ejemplo","format":"standard","meta":{"footnotes":""},"categories":[49],"tags":[58,54],"class_list":["post-21181","post","type-post","status-publish","format-standard","hentry","category-mn-s2eva30","tag-ejemplos-python","tag-mnumericos"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/21181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=21181"}],"version-history":[{"count":20,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/21181\/revisions"}],"predecessor-version":[{"id":23879,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/21181\/revisions\/23879"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=21181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=21181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=21181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}