Sei sulla pagina 1di 6

Validar

Opcion

Temp1


Conversin
Temp2

Devolver (Temp2)

Fin
1

Mostrar (Ingrese el valor de la Temperatura en la unidad deseada)


Leer (Temperatura1)
Mostrar (Ingrese el tipo de conversin que desea Realizar)
Mostrar (1) Grados Centgrados a Fahrehneit  2) Grados Fahrehneit a Centgrados)
Mostrar (3) Grados Centgrados a Kelvin  4) Kelvin a Grados Centgrados)
Mostrar (5) Grados Fahrehneit a Kelvin  6) Kelvin a Grados Fahrehneit)
Leer (Opc)
Llamar a: Validar (Opc, 1, 6)
Temperatura2 = Conversion (Temperatura1, Opc)
Mostrar (El equivalente es , Temperatura2)

//PROGRAMA PRINCIPAL
Inicio
Real Temperatura1, Temperatura2
Entero Opc

Fin

En caso de (Opcion)
Caso 1:
Temp2 = (9/5)*Temp1 + 32 // Grados Centgrados a Fahrehneit
Caso 2:
Temp2 = (5/9)*(Temp1 - 32) // Grados Fahrehneit a Centgrados
Caso 3:
Temp2 = Temp1 + 273 // Grados Centgrados a Kelvin
Caso 4:
Temp2 = Temp1 - 273 // Kelvin a Grados Centgrados
Caso 5:
Temp2 = ((5/9)*(Temp1 - 32)) + 273 // Grados Fahrehneit a Kelvin
Caso 6:
Temp2 = (9/5)*(Temp1 - 273) + 32 // Kelvin a Grados Fahrehneit
Fin_En_Caso_De

Algoritmo Conversin de Temperatura


// Subrutina Validar
Procedimiento Validar (Entero &Valor, Entero Lim_inf, Entero Lim_Sup)
Inicio
Repetir Mientras (Valor<Lim_inf || Valor>Lim_sup)
Mostrar (Valor fuera de rango, reintroduzca)
Leer (Valor)
F_R_M
Fin
// Subrutina Conversin
Real Conversin (Real Temp1, Entero Opcion)
Inicio
Real Temp2

Lim_sup

Lim_inf

Valor

Las relaciones para la conversin son:

Ejercicio 01.
Disee una subrutina que permita efectuar conversiones de temperatura en las escalas de
Kelvin, Grados Centgrados y Fahrehneit. La subrutina debe recibir la opcin de conversin
deseada (Opcin 1: C a F, Opcin 2: F a C, Opcin 3: C a K,) y el valor a convertir.

13

R
-

S
+
5

12

M
*

10

D
/

Muestra

Operacion

Arr3[ ]

Arr2[ ]

Arr1[ ]

Calcular

Algoritmo Operaciones con Arreglos


// Subrutina Cargar
Procedimiento Cargar (Entero Arr[ ], Entero n)
Inicio
Entero i
Repetir desde (i=0; i<n; i++)
Mostrar (Ingrese el valor del elemento , i)
Leer (Arr[i])
Fin_Repetir_Desde
Fin
// Subrutina Muestra
Procedimiento Muestra (Entero Arr[ ], Entero n)
Inicio
Entero i
Repetir desde (i=0; i<n; i++)
Mostrar (Elemento, i, =, Arr[i])
Fin_Repetir_Desde
Fin
// Subrutina Calcular
Procedimiento Calcular (Entero Arr1[ ], Entero Arr2[ ], Entero Arr3[ ], Entero n,
Caracter Operacion)
Inicio
Entero i
Repetir desde (i=0; i<n; i++)
En caso de (Operacin)
Caso S:
Arr3[i] = Arr1[i] + Arr2[i]
Caso R:
Arr3[i] = Arr1[i] - Arr2[i]
Caso M:
Arr3[i] = Arr1[i] * Arr2[i]
Caso D:
Si (Arr2[i] != 0)
Arr3[i] = Arr1[i] + Arr2[i]
Sino
Arr3[i] = 0
Fin_si

Arr[ ]

Arr[ ]

Cargar

El algoritmo debe implementarse a travs de tres subrutinas:


1) Cargar: permite ingresar los valores de un arreglo unidimensional de N celdas.
2) Calcular: debe recibir el conjunto de arreglos y su dimensin, as como el parmetro
opcin que definir la operacin (S, R, M, D) que se realizar entre los dos primeros
arreglos para llenar el tercero.
3) Muestra: permite imprimir los valores del arreglo resultante de N celdas.

C[X]

B[X]
Operacion

A[X]

Ejercicio 02.
Disee un algoritmo que permita ingresar los valores de dos arreglos unidimensionales y
llene un tercer arreglo con la suma, resta, multiplicacin o divisin de los dos primeros segn
una opcin que seleccionada por el usuario.

Devolver (Prom/n)
Fin
//------------------ Programa Principal --------------------//
Inicio
Real A[15], Prom
Llamar a: Cargar (A, 15)
Mostrar (El Promedio es , Promedio (A,15))
Fin

Algoritmo Promedio
// Subrutina Cargar
Procedimiento Cargar (Entero Arr[ ], Entero n)
Inicio
Entero i
Repetir desde (i=0; i<n; i++)
Mostrar (Ingrese el valor del elemento , i)
Leer (Arr[i])
Fin_Repetir_Desde
Fin
// Funcin Promedio
Real Promedio (Entero Arr[ ], Entero n)
Inicio
Entero i
Real Prom = 0
Repetir desde (i=0; i<n; i++)
Prom += Arr[i]
Fin_Repetir_Desde

Arr[ ]

Arr[ ]

Cargar
Promedio

Prom

El algoritmo debe implementarse a travs de dos subrutinas:


1) Cargar: permite ingresar los valores de un arreglo unidimensional de N celdas.
2) Promedio: debe recibir el arreglo y calcular el promedio de los elementos que este
contenga.

A[X]

Ejercicio 03.
Disee un algoritmo que permita ingresar los valores de un arreglo unidimensional y
posteriormente calcule el promedio de los valores de dicho arreglo.

Mostrar (El arreglo resultante es)


Llamar a: Muestra (C, 15)
Fin

Mostrar (Seleccione que operacin desea hacer con los arreglos: )


Mostrar (S) Suma R) Resta M) Multiplicacin D) Divisin)
Leer (Opcion)
Llamar a: Calcular(A, B, C, 20, Opcion)

Llamar a: Cargar (A, 20)


Llamar a: Cargar (B, 20)

Fin
//------------------ Programa Principal --------------------//
Inicio
Entero A[20], B[20], C[20]
Caracter Opcion

Fin_en_Caso_De
Fin_Repetir_Desde

Arr2[N]

3
8

5
6

6
5

8
3

Fin

Mostrar (El arreglo invertido es)


Llamar a: Muestra (B, 15)

Mostrar (El arreglo original es)


Llamar a: Muestra (A, 15)

Llamar a: Invertir (A, B, 15)

Llamar a: Cargar (A, 15)

//------------------ Programa Principal --------------------//


Inicio
Entero A[15], B[15]

// Subrutina Invertir
Procedimiento Invertir (Entero Arr1[ ], Entero Arr2[ ], Entero n)
Inicio
Entero i
Repetir desde (i=0; i<n; i++)
Arr2[i] = Arr1[n-1-i]
Fin_Repetir_Desde
Fin

// Subrutina Muestra
Procedimiento Muestra (Entero Arr[ ], Entero n)
Inicio
Entero i
Repetir desde (i=0; i<n; i++)
Mostrar (Elemento, i, =, Arr[i])
Fin_Repetir_Desde
Fin

// Subrutina Cargar
Procedimiento Cargar (Entero Arr[ ], Entero n)
Inicio
Entero i
Repetir desde (i=0; i<n; i++)
Mostrar (Ingrese el valor del elemento , i)
Leer (Arr[i])
Fin_Repetir_Desde
Fin

// ---------------- Resolucin --------------- //

1) Cargar: permite ingresar los valores de un arreglo unidimensional de N celdas.


2) Invertir: toma los elementos de un primer arreglo y los carga en orden invertido en un
segundo arreglo.
3) Muestra: permite imprimir los valores del arreglo resultante de N celdas.

El algoritmo debe implementarse a travs de tres subrutinas:

Arr1[N]

Ejercicio 04.
Disee un algoritmo que permita ingresar los valores de un arreglo unidimensional y llene un
segundo arreglo con los elementos del primero pero de forma invertida.

0
1

299

Cedula

Encuesta [300]
Estatura
Peso
IMC

IMC

// Funcin Menu
Entero Menu ()
Inicio
Entero opc
Mostrar (Men de Opciones)
Mostrar (1) Ingresar datos de Encuestado)
Mostrar (2) Visualizar datos de la Encuesta)
Mostrar (3) Ver Promedio de IMCs)
Mostrar (4) Buscar los datos de un encuestado)
Mostrar (5) Salir del Sistema)

// Procedimiento Validar
Procedimiento Validar (Entero &valor, Entero lim_inf, Entero lim_sup)
Inicio
Repetir Mientras (valor<lim_inf || valor>lim_sup)
Mostrar (Ha seleccionado una opcin incorrecta, reintrodzcala:)
Leer (valor)
Fin_Repetir_Mientras
Fin

//Definicin de la Estructura (Formato) del Registro


Registro Datos_IMC
Entero
Cedula
Real
Peso, Estatura, IMC
Caracter
Nombre[25], Eval[10]
Fin_Registro

Algoritmo Encuesta IMC


//Declaracin de Variables Globales
Entero N=300 // En C++  #define N 300

L

Cedula

Nombre [25]

Nombre [25]

Datos_IMC
Estatura
Peso

Eval

Eval

1) Ingresar de los datos de la Encuesta: Permite ingresar los datos obtenidos de un


encuestado, luego preguntar si se desea ingresar los datos de otra persona o si desea
regresar al men principal.
2) Mostrar Datos Ingresados: Se debe visualizar la estructura con toda la informacin
completa.
3) Calcular el Promedio de los IMC: Devolver el clculo del promedio de los IMCs de los
encuestados.
4) Buscar los datos de un encuestado segn su cdula.
5) Salir del Programa.
Clasificacin IMC
Para calcular el ndice de masa corporal se
Infrapeso < 18,50
utiliza la frmula:
18,50 Normal < 25
2
IMC = Peso / Estatura
Sobrepeso 25,00
Obeso 30,00

Disee un programa que permita guardar los datos de una encuesta que se realizar a 300
personas sobre su ndice de masa corporal. A los encuestados se les pedir su nombre,
cdula, estatura y peso, para luego calcular su IMC y clasificarlo. El programa debe
estructurarse utilizando programacin procedimental, debe contar con las siguientes
subrutinas:

Ejercicio 05.

// Subrutina Calculo de Promedio de IMCs


Real Promedio (Datos_IMC Reg[ ], Entero n)
Inicio
Entero i
Real Prom = 0

// Subrutina Mostrar
Procedimiento Mostrar (Datos_IMC Reg[ ], Entero n)
Inicio
Entero i
Si (n>=0)
Mostrar (Encuesta ndice de Masa Corporal)
Mostrar (Nombre
Cdula
Estatura
Peso
Repetir Desde (i=0; i<=n; i++)
Mostar (Reg[i].Nombre,
, Reg[i].Cedula,
Mostrar ( , Reg[i].Peso, , Reg[i].IMC,
Mostrar (Reg [i].Eval,  )
Fin_Repetir_Desde
Sino
Mostrar (No ha ingresado datos)
Fin_Si
Fin

Eval)
, Reg[i].Estatura)
)

IMC

Mostrar (Desea ingresar los datos de otro encuestado, s: si o n: regresar al men principal)
Leer (Resp)
Fin_Repetir_Mientras
Fin

Si (Reg[L].IMC < 18,5)


Reg[L].Eval = Infrapeso
Fin_Si
Si (Reg[L].IMC >= 18,5 && Reg[L].IMC < 25)
Reg[L].Eval = Normal
Fin_Si
Si (Reg[L].IMC >= 25 && Reg[L].IMC < 30)
Reg[L].Eval = Sobrepeso
Fin_Si
Si (Reg[L].IMC >= 30)
Reg[L].Eval = Obeso
Fin_Si

Reg[L].IMC = Reg[L].Peso / Reg[L].Estatura^2

// Procedimiento Ingreso Fila por Fila


Procedimiento Ing_FxF (Datos_IMC Reg[ ], Entero &L)
Inicio
Caracter Resp=s
Repetir Mientras (Resp==s && L<N-1)
L=L+1
Mostar (Ingrese los datos del Encuestado: )
Mostar (Nombre: )
Leer (Reg[L].Nombre)
Mostrar (Cdula: )
Leer (Reg[L].Cedula)
Mostrar (Estatura: )
Leer (Reg[L].Estatura)
Mostrar (Masa Corporal: )
Leer (Reg[L].Peso)

Fin

Mostrar (Seleccione una opcin:)


Leer (opc)
Llamar a: Validar (opc, 1, 5)
Devolver (opc)

Llamar a: Mostrar (Encuesta, L)

Llamar a: Ing_FxF (Encuesta, L)

Caso 5:
Fin_En_Caso_De
Fin_Repetir_Mientras
Fin

Mostrar (Fin del Programa)

Caso 4:
Mostrar (Indique el nmero de cdula a buscar: )
Leer (Cedula_B)
pos = Busqueda (Encuesta, L, Cedula_B)
Si (pos >= 0)
Mostrar (Nombre
Cdula
Estatura
Peso
IMC
Eval)
Mostrar (Encuesta[pos].Nombre,
, Encuesta[pos].Cedula,
,
Encuesta[pos].Estatura)
Mostrar ( , Encuesta[pos].Peso, , Encuesta[pos].IMC,
)
Mostrar (Encuesta[pos].Eval,  )
Sino
Mostrar(Cdula Inexistente)
Fin_Si

Caso 3:
Mostrar (El promedio del IMC de los encuestados es, Promedio (Encuesta,L))

Caso 2:

En Caso de (opc)
Caso 1:

opc=menu() // Llamada a la funcin men

// Ciclo para repetir el Programa


Repetir Mientras (opc>=1 && opc<5)

//Declaracin de las otras Variables


Entero opc=1, Cedula_B, pos, L=-1

//Declaracin del Arreglo de Registro


Datos_IMC Encuesta[N]

// Programa Principal
Inicio

// Subrutina de Bsqueda
Entero Bsqueda (Datos_IMC Reg[ ], Entero n, Entero Ced_B)
Inicio
Entero i
Repetir desde (i=0; i<=n; i++)
Si (Reg[i].Cedula == Ced_B)
Devolver (i)
Fin_si
Fin_Repetir_Desde
Devolver (-1)
Fin

Si (n>=0)
Repetir desde (i=0; i<=n; i++)
Prom = Prom + Reg[i].IMC
Fin_Repetir_Desde
Devolver (Prom/(n+1))
Sino
Mostrar (No ha ingresado datos)
Devolver (0)
Fin_Si
Fin

Luis Perez

15768883

Cedula
36

Edad
95

1
93,5

2
90

3
91

Jornada[30]

88

Ingresar los datos de los participantes.


Mostrar los resultados obtenidos.
Determinar el empleado con mayor prdida en la jornada.
Salir del Programa.

89,5

86,5

Peso[10]
5
6
7
8
86

9
85

84

10

11

Perdido

// Funcin Menu
Entero Menu ()
Inicio
Entero opc
Mostrar (Men de Opciones)
Mostrar (1) Ingresar Datos de Participantes  2) Mostrar Resultados de Jornada)
Mostrar (3) Ver Ganador de la Jornada  4) Salir del Sistema)
Mostrar (Seleccione una opcin:)
Leer (opc)
Llamar a: Validar (opc, 1, 4)
Devolver (opc)
Fin

// Procedimiento Validar
Procedimiento Validar (Entero &valor, Entero lim_inf, Entero lim_sup)
Inicio
Repetir Mientras (valor<lim_inf || valor>lim_sup)
Mostrar (Ha seleccionado una opcin incorrecta, reintrodzcala:)
Leer (valor)
Fin_Repetir_Mientras
Fin

// Definicin de la estructura del registro


Registro Datos_Jornada
Caracter Nombre[25]
Entero Cedula, Edad
Real Peso[10], Perdido
Fin_Registro

Algoritmo Jornada de Salud

1) Subrutina Menu: se encargar de desplegar el men de opciones del programa y retornar


la opcin seleccionada por el usuario validada (usar la subrutina validacin).
2) Subrutina Ingreso: permitir el ingreso los datos de todos los empleados participantes
(nombre, cedula y edad), sus registros de peso de las 10 semanas y se calcular el peso
total perdido por la persona (perdido).
3) Subrutina Ganador: determinar quien perdi ms peso durante la jornada y retornando
la fila del registro en que est registrado.

El cdigo se estructurar mediante programacin procedimental, usted debe desarrollar e


implementar las siguientes subrutinas:

1)
2)
3)
4)

El programa contar con el siguiente men de opciones:

0
1

28
29

Nombre

El departamento de bienestar y salud de una empresa est organizando una jornada de


prdida de peso para sus empleados, por lo que se necesita un algoritmo que permita
registrar los datos de los 30 empleados participantes junto con su peso a lo largo de las 10
semanas que dur la jornada y adems calcular prdida de peso total que alcanz el
empleado. Se utilizar una estructura como la que se muestra a continuacin:

Ejercicio 06.

Cambiar Estado de Invitado a Presente.


Mostrar Lista de Invitados Presentes.
Ver nmero de Mesa del Invitado buscndolo por su Nmero de Cdula.
Salir del Programa.

A: Ausente
P: Presente

Caso 2:

En Caso de (opc)
Caso 1:

Llamar a: Mostrar (Jornada, 30)

Llamar a: Ingreso (Jornada, 30)

opc=menu() // Llamada a la funcin men

// Ciclo para repetir el Programa


Repetir Mientras (opc>=1 && opc<4)

Entero Menu () // Funcin Menu


Inicio
Entero opc

// Procedimiento Validar
Procedimiento Validar (Entero &valor, Entero lim_inf, Entero lim_sup)
Inicio
Repetir Mientras (valor<lim_inf || valor>lim_sup)
Mostrar (Ha seleccionado una opcin incorrecta, reintrodzcala:)
Leer (valor)
Fin_Repetir_Mientras
Fin

//Declaracin del Arreglo de Registro


Datos_Jornada
Jornada[30]

//Declaracin de las otras Variables


Entero opc=1, pos

Algoritmo Boda

10

a) Men: Despliega el men de opciones con la opcin seleccionada por el usuario


previamente validada.
b) Ya_llego: esta subrutina permitir cambiar el estado del invitado a presente (P)
buscndolo por su nmero de cdula.
c) Lista_Presentes: Mostrar el listado de invitados que se han hecho presentes en el
evento.
d) Buscar: Buscar un invitado por su cdula de identidad y retornar el nmero de
mesa que ste posea asignado, en caso de que la cdula no se consiga debe retornar
un cero.

Usted debe asumir que los datos de los invitados ya se encuentran cargados en
sistema y debe implementar el cdigo a travs de programacin procedimental utilizando las
siguientes subrutinas:

1)
2)
3)
4)

El programa contar con un men de opciones como el siguiente:

Invitados [200]
Nombre
Cedula Mesa Estado
0
Ivan Montero
21000000
1
A
1 Fernanda Gonzalez 10000000
2
P

Juan Lopez
14000000
5
P
199
Luisa Castro
18000000
10
A

Ejercicio 07.
Su mejor amig@ se va a casar, por lo que le pide el favor de desarrollar un programa que
permita automatizar el manejo de los invitados en las distintas mesas, los datos se
encuentran almacenados en una estructura como la que se muestra a continuacin:

Caso 4:
Mostrar (Fin del Programa)
Fin_En_Caso_De
Fin_Repetir_Mientras
Fin

// Definicin de la estructura del registro como global


Registro Datos_Boda
Caracter Nombre[25], Estado
Entero Cedula, Mesa
Fin_Registro

pos = Ganador (Jornada, 30)

Mostrar (El ganador de la jornada es: , Jornada[pos].Nombre)


Mostrar (con , Jornada[pos].Perdido, Kilos perdidos)

Caso 3:

//---------------- Programa Principal -----------------------//


Inicio

// Subrutina Ganador
Entero Ganador (Datos_Jornada Reg[ ], Entero n)
Inicio
Entero i, pos = 0
Real Mayor = Reg[0].Perdido // Aplicando algoritmo Mayor asumimos que el primero
// es el mayor
Repetir desde (i=0; i<n; i++)
Si (Reg[i].Perdido > Mayor)
Mayor = Reg[i].Perdido
pos = i
Fin_Si
Fin_Repetir_Desde
Devolver (pos)
Fin

// Subrutina Mostrar
Procedimiento Mostrar (Datos_Jornada Reg[ ], Entero n)
Inicio
Entero i, j
Mostrar (Resultados Jornada de Bienestar)
Mostrar (Nombre
Cdula
Edad
Peso por Semanas
Total Perdido)
Repetir Desde (i=0, i<n, i++)
Mostar (Reg[i].Nombre,
, Reg[i].Cedula,
, Reg[i].Edad, )
Repetir Desde (j=0, j<10, j++)
Mostrar (Reg[i].Peso[j], )
Fin_Repetir_Desde
Mostrar (Reg[i].Perdido,  )
Fin_Repetir_Desde
Fin

// Procedimiento Ingreso
Procedimiento Ingreso (Datos_Jornada Reg[ ], Entero n)
Inicio
Entero i, j
Repetir desde (i=0; i<=n; i++)
Mostar (Ingrese los datos del Encuestado: )
Mostar (Nombre, Cedula y Edad: )
Leer (Reg[i].Nombre, Reg[i].Cedula, Reg[i].Edad)
Repetir desde (j=0; j<10; j++)
Mostrar (Peso semana , j)
Leer (Reg[i].Peso[j])
Fin_Repetir_Desde
Reg[i].Perdido = Reg[i].Peso[1] - Reg[i].Peso[10]
Fin_Repetir_Desde
Fin

opc=menu() // Llamada a la funcin men

// Ciclo para repetir el Programa


Repetir Mientras (opc>=1 && opc<4)

Entero opc=1, Mesa, CedulaB //Declaracin de las otras Variables

//---------------- Programa Principal -----------------------//


Inicio
Datos_Boda
Invitados[200] //Declaracin del Arreglo de Registro

// Subrutina de Bsqueda
Entero Bsqueda (Datos_Boda Reg[ ], Entero n, Entero Ced_B)
Inicio
Entero i
Repetir desde (i=0; i<n; i++)
Si (Reg[i].Cedula == Ced_B)
Devolver (Reg[i].Mesa)
Fin_si
Fin_Repetir_Desde
Devolver (0)
Fin

// Subrutina Mostrar
Procedimiento Mostrar_Presentes (Datos_Boda Reg[ ], Entero n)
Inicio
Entero i
Mostrar (Invitados que se han hecho presentes)
Mostrar (Nombre
Cdula
Mesa)
Repetir Desde (i=0; i<n; i++)
Si (Reg[i].Estado == P)
Mostar (Reg[i].Nombre,
, Reg[i].Cedula,
, Reg[i].Mesa,
Fin_Si
Fin_Repetir_Desde
Fin

Entero Ya_lleg (Datos_Boda Reg[ ], Entero n) // Subrutina Ya llego


Inicio
Entero i, Ced_Bus
Mostrar (Indique la cdula del invitado que ha llegado: )
Leer (Ced_Bus)
Repetir desde (i=0; i<n; i++)
Si (Reg[i].Cedula == Ced_B)
Reg[i].Estado = P
Devolver (1)
Fin_si
Fin_Repetir_Desde
Devolver (0)
Fin

Mostrar (Men de Opciones)


Mostrar (1) Invitado confirmado en Boda)
Mostrar (2) Mostrar Invitados Presentes)
Mostrar (3) Buscar la Mesa del Invitado)
Mostrar (4) Salir del Sistema)
Mostrar (Seleccione una opcin:)
Leer (opc)
Llamar a: Validar (opc, 1, 4)
Devolver (opc)
Fin

11

Llamar a: Mostrar_Presentes (Invitados, 200)

Caso 4:
Mostrar (Fin del Programa)
Fin_En_Caso_De
Fin_Repetir_Mientras
Fin

Si (Mesa>0)
Mostrar (El invitado tiene asignada la mesa , Mesa)
Sino
Mostrar(No se ha encontrado al invitado, vuelva a buscar)
Fin_Si

Mesa = Busqueda (Invitados, 200, CedulaB)

Caso 3:
Mostrar( Indique la cdula del invitado a buscar: )
Leer (CedulaB)

Caso 2:

En Caso de (opc)
Caso 1:
Si( Ya_llego (Invitados, 200) == 1 ) // Uso de valor retornado como condicin
Mostrar (Estado Cambiado Correctamente)
Sino
Mostrar (No se pudo actualizar estado, intente nuevamente)
Fin_Si

12

Potrebbero piacerti anche