Skip to content

Instantly share code, notes, and snippets.

@ErickPetru
Last active September 29, 2021 00:36
Show Gist options
  • Save ErickPetru/2817bb50f52cd293b543a5bc9237a37f to your computer and use it in GitHub Desktop.
Save ErickPetru/2817bb50f52cd293b543a5bc9237a37f to your computer and use it in GitHub Desktop.
Layout do suplemento: 1 caixa de texto, 1 botão "Adicionar" e 1 botão "Resultado". Funcionalidade do suplemento: permitir digitar várias notas, validando se é número toda vez que clicar em "Adicionar" (permitir casas decimais no número). Ao clicar no botão "Resultado", exibir a média aritmética a partir dos números digitados previamente. Atenção…
name: Lista de Exercícios 1 - Item 6
description: >-
Layout do suplemento: 1 caixa de texto, 1 botão "Adicionar" e 1 botão
"Resultado". Funcionalidade do suplemento: permitir digitar várias notas,
validando se é número toda vez que clicar em "Adicionar" (permitir casas
decimais no número). Ao clicar no botão "Resultado", exibir a média aritmética
a partir dos números digitados previamente. Atenção: todas as mensagens de
saída (tanto validações quanto resultados finais) devem ser exibidas no Word.
host: WORD
api_set: {}
script:
content: "const field = document.getElementById(\"field\") as HTMLInputElement;\r\nconst buttonAdd = document.getElementById(\"buttonAdd\") as HTMLButtonElement;\r\nconst buttonResult = document.getElementById(\"buttonResult\") as HTMLButtonElement;\r\n\r\nconst grades = [];\r\n\r\nbuttonAdd.addEventListener(\"click\", () => {\r\n Word.run(async (context) => {\r\n const body = context.document.body;\r\n body.clear();\r\n\r\n if (isNaN(field.valueAsNumber)) {\r\n body.insertParagraph(\"Informe uma nota válida!\", \"End\");\r\n return;\r\n }\r\n\r\n grades.push(field.valueAsNumber);\r\n field.value = \"\";\r\n });\r\n});\r\n\r\nbuttonResult.addEventListener(\"click\", () => {\r\n Word.run(async (context) => {\r\n const body = context.document.body;\r\n body.clear();\r\n\r\n if (grades.length == 0) {\r\n body.insertParagraph(\"Nenhuma nota informada!\", \"End\");\r\n return;\r\n }\r\n\r\n let sum = 0;\r\n\r\n for (let grade of grades) {\r\n sum += grade;\r\n }\r\n\r\n const average = sum / grades.length;\r\n body.insertParagraph(`A média é: ${average.toFixed(2)}.`, \"End\");\r\n });\r\n});\r\n"
language: typescript
template:
content: "<input id=\"field\" type=\"number\" placeholder=\"Informe uma nota\">\r\n<button id=\"buttonAdd\">Adicionar</button>\r\n<button id=\"buttonResult\">Resultado</button>"
language: html
style:
content: ''
language: css
libraries: |-
https://appsforoffice.microsoft.com/lib/1/hosted/office.js
@types/office-js
[email protected]/client/core.min.js
@types/core-js
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment