diff --git a/_lezioni/4.md b/_lezioni/4.md
new file mode 100644
index 0000000..3fb924d
--- /dev/null
+++ b/_lezioni/4.md
@@ -0,0 +1,17 @@
+---
+title: For Loop
+number: 4
+week: 2
+date: 2023-10-04
+slides_pdf: materiale_lezioni/4/quarta_lezione.pdf
+---
+
+- For Loop
+- BMI
+- BMI App Web Shiny
+- BMI For Loop
+
+[Link File R Lezione for loop]({{ site.baseurl }}/materiale_lezioni/4/lezione_4.R)
+[Link File R Lab BMI]({{ site.baseurl }}/materiale_lezioni/4/bmi.R)
+[Link File Rmd App BMI]({{ site.baseurl }}/materiale_lezioni/4/BMI.Rmd)
+[Link File Rmd App BMI loop]({{ site.baseurl }}/materiale_lezioni/4/bmi_loop.R)
\ No newline at end of file
diff --git a/materiale_lezioni/4/BMI.Rmd b/materiale_lezioni/4/BMI.Rmd
new file mode 100644
index 0000000..6dcdbeb
--- /dev/null
+++ b/materiale_lezioni/4/BMI.Rmd
@@ -0,0 +1,55 @@
+---
+title: "Calcolo BMI - Body mass index"
+author: "Vincenzo Nardelli"
+output: html_document
+runtime: shiny
+---
+
+```{r setup, include=FALSE}
+knitr::opts_chunk$set(echo = TRUE)
+```
+
+Muovi l'indicatore per impostare altezza e peso, verrà fornito direttamente l'IMC.
+I valori che possono essere indicati variano rispettivamente per il peso tra 30 kg e 150 kg e per l'altezza tra 120 cm e 210 cm.
+
+```{r eruptions, echo=FALSE}
+inputPanel(
+ sliderInput("peso", label = "Peso (kg):",
+ min = 30, max = 150, value = 30, step = 1),
+
+ sliderInput("altezza", label = "Altezza (cm):",
+ min = 120, max = 210, value = 120, step = 1)
+)
+
+renderText({
+altezza <- as.numeric(input$altezza/100)
+peso <- as.numeric(input$peso)
+BMI <- round(peso/altezza^2, 2)
+
+
+if(BMI < 16){
+ classificazione <- "Grave magrezza"
+}else if(BMI < 18.5){
+ classificazione <- "Sottopeso"
+}else if(BMI < 25){
+ classificazione <- "Normopeso"
+}else if(BMI < 30){
+ classificazione <- "Sovrappeso"
+}else if(BMI < 35){
+ classificazione <- "Obeso classe 1"
+}else if(BMI < 40){
+ classificazione <- "Obeso classe 2"
+}else{
+ classificazione <- "Obeso classe 3"
+}
+
+print(paste("BMI", as.character(BMI), "- Classificazione", classificazione))
+})
+```
+
+
+
+L'IMC è l'indicatore di riferimento per studi epidemiologici e di screening di obesità. E' utile sottolineare che l'IMC in quanto indicatore di studi di popolazione, non è in grado di valutare la reale composizione corporea, così come non permette di conoscere la distribuzione del grasso corporeo nell'individuo.
+
+
+
diff --git a/materiale_lezioni/4/bmi.R b/materiale_lezioni/4/bmi.R
new file mode 100644
index 0000000..cddb8f3
--- /dev/null
+++ b/materiale_lezioni/4/bmi.R
@@ -0,0 +1,24 @@
+altezza <- 1.80
+peso <- 69
+
+
+BMI <- peso/altezza^2
+BMI
+
+if(BMI <= 16){
+ classificazione <- "Grave magrezza"
+}else if(BMI <= 18.5){
+ classificazione <- "Sottopeso"
+}else if(BMI <= 25){
+ classificazione <- "Normopeso"
+}else if(BMI <= 30){
+ classificazione <- "Sovrappeso"
+}else if(BMI <= 35){
+ classificazione <- "Obeso classe 1"
+}else if(BMI < 40){
+ classificazione <- "Obeso classe 2"
+}else{
+ classificazione <- "Obeso classe 3"
+}
+print(classificazione)
+
diff --git a/materiale_lezioni/4/bmi_loop.R b/materiale_lezioni/4/bmi_loop.R
new file mode 100644
index 0000000..16991e4
--- /dev/null
+++ b/materiale_lezioni/4/bmi_loop.R
@@ -0,0 +1,30 @@
+vettore_altezza <- c(1.58, 1.73, 1.81, 1.47, 1.74)
+vettore_peso <- c(62, 86, 85, 95, 75)
+
+
+for(i in 1:5){
+ print(i)
+ altezza <- vettore_altezza[i]
+ peso <- vettore_peso[i]
+ BMI <- peso/altezza^2
+
+
+ if(BMI < 16){
+ classificazione <- "Grave magrezza"
+ }else if(BMI < 18.5){
+ classificazione <- "Sottopeso"
+ }else if(BMI < 25){
+ classificazione <- "Normopeso"
+ }else if(BMI < 30){
+ classificazione <- "Sovrappeso"
+ }else if(BMI < 35){
+ classificazione <- "Obeso classe 1"
+ }else if(BMI < 40){
+ classificazione <- "Obeso classe 2"
+ }else{
+ classificazione <- "Obeso classe 3"
+ }
+
+ print(classificazione)
+
+}
diff --git a/materiale_lezioni/4/lezione_4.R b/materiale_lezioni/4/lezione_4.R
new file mode 100644
index 0000000..48cef9d
--- /dev/null
+++ b/materiale_lezioni/4/lezione_4.R
@@ -0,0 +1,64 @@
+vettore <- c(1, 2, 3, 4)
+vettore <- 1:4
+
+vettore2 <- c(23, 46, 78, 98)
+vettore2[1]
+vettore2[c(TRUE, FALSE, FALSE, FALSE)]
+vettore2 < 50
+vettore2[vettore2 < 50]
+
+for(i in 1:10){
+ print(i)
+}
+
+print(1:10)
+
+
+for(i in c("Alberto", "Beatrice", "Ciarli")){
+ print(i)
+}
+
+
+for(nome in c("Alberto", "Beatrice", "Ciarli")){
+ print(nome)
+}
+
+
+nomi <- c("Alberto", "Beatrice", "Ciarli")
+
+for(i in 1:3){
+ print(nomi[i])
+}
+
+print(nomi[1])
+print(nomi[2])
+print(nomi[3])
+
+nomi <- c("Alberto", "Beatrice", "Ciarli")
+eta <- c(12, 19, 23)
+
+for(i in 1:3){
+ if(eta[i] < 18){
+ classe_eta <- "minorenne"
+ }else{
+ classe_eta <- "maggiorenne"
+ }
+ print(paste0(nomi[i], " è ", classe_eta))
+}
+
+
+
+for(i in 1:3){
+ if(eta[i] < 18){
+ print(paste0(nomi[i], " è minorenne"))
+ }else{
+ print(paste0(nomi[i], " è minorenne"))
+ }
+}
+
+
+if(eta_alberto < 18){
+ print("Alberto è minorenne")
+}else{
+ print("Alberto è maggiorenne")
+}
diff --git a/materiale_lezioni/4/quarta_lezione.pdf b/materiale_lezioni/4/quarta_lezione.pdf
new file mode 100644
index 0000000..200c159
Binary files /dev/null and b/materiale_lezioni/4/quarta_lezione.pdf differ