Imprimindo informações

Entrada

console.log('Oi mundo.');
console.log('A Matemática é o alfabeto com o qual Deus escreveu o Universo.');
console.log('A Matemática é a única linguagem que temos em comum com a natureza.');
console.log('A física é a poesia da natureza. A matemática, o idioma.');
console.log('A ciência atual troca a realidade pela matemática.');

Saída

Comentando o próprio código-fonte

Entrada

//arquivo: comentarios.mjs
//objetivo: exemplificar utilização de comentários.
//comentário de fim de linha
/*  comentário de 
    múltiplas linhas                
    mais uma linha
    outra linha
*/          
console.log('apenas código fora de comentários são interpretados pelo nodejs.');

Saída

Números

Entrada

//arquivo: numeros.mjs
//objetivo: exemplificar números e expressões numéricas.
console.log(2 + 3);
console.log(2 - 3);
console.log(2 * 3);
console.log(2 / 3);
console.log(2 ** 3);
console.log(1 + 2 + 3 * 4);
console.log(1 + 2 * 3 + 4 ** 5);
console.log((6 - 2) * 3 / 2 - 10);

Saída

Operadores de comparação

Entrada

//arquivo: operadoresComparacao.mjs
//objetivo: exemplificar comparações.
console.log(2 > 3);
console.log(2 < 3);
console.log(2 === 3);
console.log(2 !== 3);
console.log(2 >= 3);
console.log(2 <= 3);
console.log(3 > 3);
console.log(3 >= 3);

Saída

Operadores lógicos

Entrada

//arquivo: operadoresLogicos.mjs
//objetivo: exemplificar comparações lógicas

console.log(true);
console.log(false);

console.log(true && true);
console.log(false && false);
console.log(true && false);
console.log(false && true);

console.log(true || true);
console.log(false || false);
console.log(true || false);
console.log(false || true);

console.log(!true);
console.log(!false);

console.log(true && 2 > 3);
console.log(false && 4 > 5);
console.log(6 > 5 && 5 === 5);
console.log("texto" && 8 < 10);
console.log(!"texto" && 8 < 10);

Saída

Concatenação de string (texto)

Entrada

//arquivo: concatenacaoString.mjs
//objetivo: exemplificar como concatenar string (cadeia de caracteres).
console.log('oi' + 'mundo');
console.log('oi ' + 'mundo');
console.log('oi ' + 'mundo' + '!' + '!!');

Saída

Saída formatada - parte 1

Entrada

//arquivo: saidaFormatada1.mjs
//objetivo: exemplificar saídas comuns formatadas.
console.log('algum texto\ntexto na próxima linha\n\nmais texto.');
console.log('comprei '+2+'frutas' + ' + '+0.5 +'gramas de hortaliças.');
console.log(`alguns fatos:
- Os únicos números primos terminados em ${2} e ${5} são justamente ${2} e ${5};
- qualquer número na base decimal por maior que seja sempre será representado pelos algarismos {${0},${1},${2},${3},${4},${5},${6},${7},${8},${9}};
- a metade de ${1} é ${0.5}.
`);

Saída

Variáveis

Entrada

//arquivo: variaveis.mjs
//objetivo: exemplificar o uso de variáveis.
const nome = 'Ana';
let idade = 12;
let precoUnitarioLaranja = 12;
let idadeIrma = idade/2;
console.log(`${nome} possui ${idade} anos.`);
console.log(`${nome} possuirá ${idade + 1} anos no ano que vem.`);
console.log(`${nome} daqui a quinze anos terá ${idade + 15} anos.`);
console.log(`se a irmã de ${nome} possui metade da idade de ${nome} quantos anos ela possui? A resposta é: ${idadeIrma} anos.`);
console.log(`qual o resultado da soma das idades das irmãs? Resposta: ${idade/2+idade}`);
console.log(`se o preço unitário da laranja é ${precoUnitarioLaranja} calcule:`);
console.log(`o preço de três laranjas. Resposta: ${precoUnitarioLaranja * 3}`);
console.log(`o preço de cinco laranjas. Resposta: ${precoUnitarioLaranja * 5}`);

precoUnitarioLaranja = 20;
console.log(`se o preço unitário da laranja for ${precoUnitarioLaranja} o preço de cinco laranjas será? Resposta: ${precoUnitarioLaranja * 5}`);

Saída

Entrada

//arquivo: erroConst.mjs
//objetivo: demonstrar erro quando tentamos modificar variáveis constantes.
const valor = 10;
valor = 15;

Funções - parte 1

Entrada

//arquivo: funcoes1.mjs
//objetivo: exemplificar o uso de funções.

function soma1(numero1, numero2){
    return numero1 + numero2;
}

function soma2(numero1, numero2){
    numero1 + numero2;
}

function enviarParaSaida(algumaCoisa){
    console.log(algumaCoisa);
}

function enviarParaSaidaMensagemConstante1(){
    console.log('mensagem sempre igual');
}

const meuNumeroPreferido = 10;
const total1 = soma1(1,2);
const total2 = total1 + soma1(3,8);
const soma3 = (numero1, numero2) => numero1+numero2;
const soma4 = function (numero1, numero2) {
    return numero1 + numero2;
}
const enviarParaSaidaMensagemConstante2 = _=> 'mensagem sempre igual 2';


enviarParaSaidaMensagemConstante1();
enviarParaSaidaMensagemConstante2();
enviarParaSaida("este texto");
enviarParaSaida(meuNumeroPreferido);
enviarParaSaidaMensagemConstante1();
console.log(soma1(7,-3));
enviarParaSaida(soma1(7,-3))
enviarParaSaida(total1);
enviarParaSaida(total2);
console.log(soma2(7,-3));
enviarParaSaida(soma3(7,-3));
console.log(soma3(7,-3));
console.log(soma4(7,-3));

console.log(meuNumeroPreferido, total1, total2);
console.log(soma1(1,5), soma3(8,8));

Saída

Tipos de dados e o operador typedef

Entrada

//arquivo: tipos.mjs
//objetivo: demonstrar os principais tipos de dados em javascript.
const a = 'Oi mundo!!!';
const b = -1;
const c = true;
const d = 3.1;
const e = a + b + d;
const f = b + d + a;
let g;
let h = g;
let i = a;
let j = i === a;
let k = a === b;

let funcao1 = (a,b,c) => a*b*c;
let funcao2 = function(a,b,c){
    return a*b*c;
}
function funcao3 (a,b,c){
    return a*b*c;
}

console.log(typeof a, a);
console.log(typeof b, b);
console.log(typeof c, c);
console.log(typeof d, d);
console.log(typeof e, e);
console.log(typeof f, f);
console.log(typeof g, g);
console.log(typeof h, h);
console.log(typeof i, i);
console.log(typeof j, j);

k = 10;
console.log(typeof k, k);

console.log(typeof funcao1, funcao1(1,2,3));
console.log(typeof funcao2, funcao2(1,2,3));
console.log(typeof funcao3, funcao3(1,2,3));

funcao1 = a => a**2;
funcao2 = function (a){
    return  a**3;
};
funcao3 = a => a**4;


console.log(typeof funcao1, funcao1(3));
console.log(typeof funcao2, funcao2(3));
console.log(typeof funcao3, funcao3(3));


Saída

Objetos - parte 1

Entrada

//arquivo: objetos1.mjs
//objetivo: demonstrar o conceito de objeto em javascript como um local para agrupar dados.
const casa = {'moradores':4,'metragem':400,'banheiros':3, 'estimarValor': function (valorPorMetro){return valorPorMetro*this.metragem;}};
const carro = {'portas':4, 'manual':true,'motor':2.2,'ano':2023};
const aluno = {'nome':'Artur','idade':15,'altura':180};

console.log(typeof casa, casa);
console.log(typeof carro, carro);
console.log(aluno);

console.log(casa.moradores);
console.log(casa['moradores']);
console.log(casa.banheiros);
console.log(carro.manual);
console.log(carro.motor);
console.log(carro['motor']);
console.log(aluno.nome);

console.log(casa.estimarValor(1000));

Saída

Array (lista de dados) - parte 1

Entrada

//arquivo: array1.mjs
//objetivo: exemplificar o uso de arrays.
const minhaListaDeCoisas = [1,2,3,'algumTexto',[99,98,97],'outroTexto',{'atributoObjeto':'valor','outroAtributo':10}, 1,55,102];
const temperaturasDia = [15,15,15,15,15,16,16,16,17,17,18,18,18,19,19,20,19,17,17,15,15,15,15,15];

console.log(minhaListaDeCoisas);
console.log(temperaturasDia.length);
console.log(minhaListaDeCoisas[2]);
console.log(minhaListaDeCoisas[3]);
console.log(minhaListaDeCoisas[6].outroAtributo);
minhaListaDeCoisas[8] = 'novo valor';
console.log(minhaListaDeCoisas[8]);


Saída

Array (lista de dados) - parte 2

Entrada

//arquivo: array2.mjs
//objetivo: apresentar as funções push, shift, pop
const listaDeCoisas = [];
let item;

listaDeCoisas.push('um item');
listaDeCoisas.push('outro item');
listaDeCoisas.push(1);
listaDeCoisas.push(9);
listaDeCoisas.push(3);
listaDeCoisas.push('rosas')

console.log(listaDeCoisas);

item = listaDeCoisas.shift();
console.log(item);
console.log(listaDeCoisas);

item = listaDeCoisas.shift();
console.log(item);
console.log(listaDeCoisas);

console.log(listaDeCoisas.shift());
console.log(listaDeCoisas);

item = listaDeCoisas.pop();
console.log(item);
console.log(listaDeCoisas);

listaDeCoisas.push('novo item1');
listaDeCoisas.push('novo item2');

console.log(listaDeCoisas.pop());
console.log(listaDeCoisas);

Saída

O modelo geral dos exercícios práticos

Entrada

//arquivo: modeloGeral.js
//objetivo: exemplificar o modelo geral de computação dos exercício práticos (entrada=>processamento=>saída)
const linhas = require('fs').readFileSync('/dev/stdin','utf8').split('\n');

console.log(parseInt(linhas.shift()) * 2);
console.log(parseInt(linhas.shift()) * 2);
console.log(parseInt(linhas.shift()) * 2);
console.log(parseInt(linhas.shift()) * 2);
console.log(parseInt(linhas.shift()) * 2);

Saída

Instrução de seleção única if

Entrada

//arquivo: if.js
//objetivo: identificar todas as temperaturas iguais ou maiores que 85ºC durante o dia. 

const linhas = require('fs').readFileSync('/dev/stdin','utf8').split('\n');
const t0 = parseInt(linhas[0]);
const t1 = parseInt(linhas[1]);
const t2 = parseInt(linhas[2]);
const t3 = parseInt(linhas[3]);
const t4 = parseInt(linhas[4]);
const t5 = parseInt(linhas[5]);
const t6 = parseInt(linhas[6]);
const t7 = parseInt(linhas[7]);

if(t0 >= 85){    
    console.log(t0);
}

if(t1 >= 85){    
    console.log(t1);
}

if(t2 >= 85){    
    console.log(t2);
}

if(t3 >= 85)
    console.log(t3);
    
if(t4 >= 85)
    console.log(t4);

if(t5 >= 85){    
    console.log(t5);
}

if(t6 >= 85)
    console.log(t6);

if(t7 >= 85){    
    console.log(t7);
}

Saída

Instrução de seleção dupla if ... else

Entrada

//arquivo: ifElse1.js
//objetivo: classificar as temperaturas em adequadas (menores que 85ºC) ou altas (iguais ou maiores que 85ºC).
const linhas = require('fs').readFileSync('/dev/stdin','utf8').split('\n');
const t0 = parseInt(linhas[0]);
const t1 = parseInt(linhas[1]);
const t2 = parseInt(linhas[2]);
const t3 = parseInt(linhas[3]);
const t4 = parseInt(linhas[4]);
const t5 = parseInt(linhas[5]);
const t6 = parseInt(linhas[6]);
const t7 = parseInt(linhas[7]);

if(t0 >= 85){    
    console.log('temperatura alta');
} else {
    console.log('temperatura adequada');
}

if(t1 >= 85){    
    console.log('temperatura alta');
} else {
    console.log('temperatura adequada');
}

if(t2 >= 85){    
    console.log('temperatura alta');
} else {
    console.log('temperatura adequada');
}

if(t3 >= 85)
    console.log('temperatura alta');
else 
    console.log('temperatura adequada');
    
if(t4 >= 85)
    console.log('temperatura alta');
else 
    console.log('temperatura adequada');

if(t5 >= 85){    
    console.log('temperatura alta');
} else {
    console.log('temperatura adequada');
}

if(t6 >= 85)    
    console.log('temperatura alta');
else 
    console.log('temperatura adequada');

if(t7 >= 85){    
    console.log('temperatura alta');
} else {
    console.log('temperatura adequada');
}

Saída

Entrada

//arquivo: ifElse2.js
//objetivo: classificar as temperaturas em adequadas (menores que 85ºC) ou altas (iguais ou maiores que 85ºC) ou críticas (iguais ou maiores que 105ºC).

const linhas = require('fs').readFileSync('/dev/stdin','utf8').split('\n');
const t0 = parseInt(linhas[0]);
const t1 = parseInt(linhas[1]);
const t2 = parseInt(linhas[2]);
const t3 = parseInt(linhas[3]);
const t4 = parseInt(linhas[4]);
const t5 = parseInt(linhas[5]);
const t6 = parseInt(linhas[6]);
const t7 = parseInt(linhas[7]);

if (t0 < 85) {    
    console.log('temperatura adequada');
} else if (t0 < 105) {
    console.log('temperatura alta');
} else {
    console.log('temperatura crítica');
}

if (t1 < 85) {    
    console.log('temperatura adequada');
} else if (t1 < 105) {
    console.log('temperatura alta');
} else {
    console.log('temperatura crítica');
}

if (t2 < 85) {    
    console.log('temperatura adequada');
} else if (t2 < 105) {
    console.log('temperatura alta');
} else {
    console.log('temperatura crítica');
}

if (t3 < 85) {    
    console.log('temperatura adequada');
} else if (t3 < 105) {
    console.log('temperatura alta');
} else {
    console.log('temperatura crítica');
}
    
if (t4 < 85) {    
    console.log('temperatura adequada');
} else if (t4 < 105) {
    console.log('temperatura alta');
} else {
    console.log('temperatura crítica');
}

if (t5 < 85) {    
    console.log('temperatura adequada');
} else if (t5 < 105) {
    console.log('temperatura alta');
} else {
    console.log('temperatura crítica');
}

if (t6 < 85) {    
    console.log('temperatura adequada');
} else if (t6 < 105) {
    console.log('temperatura alta');
} else {
    console.log('temperatura crítica');
}

if (t7 < 85) {    
    console.log('temperatura adequada');
} else if (t7 < 105) {
    console.log('temperatura alta');
} else {
    console.log('temperatura crítica');
}

Saída

Repetição controlada por sentinela e repetição controlada por contador

Instrução de repetição while

Entrada

//arquivo: while.js
//entrada: fluxo de inteiros representando temperaturas em graus Celsius.
//objetivo: utilizar repetição controlada por sentinela para classificar um fluxo de temperaturas que termina ao ler a temperatura do zero absoluto aproximada aqui para 273 ºC.
//saída: classificação das temperaturas em: adequadas (menores que 85ºC) ou altas (iguais ou maiores que 85ºC) ou críticas (iguais ou maiores que 105ºC).


const linhas = require('fs').readFileSync('/dev/stdin','utf8').split('\n');
let temperatura = parseInt(linhas.shift());

while(temperatura !== 273){
    if(temperatura < 85)
        console.log('temperatura adequada');
    else if(temperatura < 105)
        console.log('temperatura alta');
    else
        console.log('temperatura crítica');
    temperatura = parseInt(linhas.shift());    
}


Saída

Instrução de repetição for

Entrada

//arquivo: for1.js
//entrada: fluxo de inteiros representando temperaturas em graus Celsius.
//objetivo: utilizar repetição controlada por contador para classificar um fluxo de temperaturas.
//saída: classificação das temperaturas em: adequadas (menores que 85ºC) ou altas (iguais ou maiores que 85ºC) ou críticas (iguais ou maiores que 105ºC).


const linhas = require('fs').readFileSync('/dev/stdin','utf8').split('\n');

for(let i = 0; i < linhas.length; i++){
    const temperatura = parseInt(linhas[i]);
    if(temperatura < 85)
        console.log('temperatura adequada');
    else if(temperatura < 105)
        console.log('temperatura alta');
    else
        console.log('temperatura crítica');    
}

Saída

Instrução de repetição do ... while

Entrada

//arquivo: doWhile.js
//entrada: fluxo de inteiros representando temperaturas em graus Celsius.
//objetivo: utilizar repetição controlada por sentinela para classificar um fluxo de temperaturas cujo último valor válido é o zero absoluto aproximado aqui para 273 ºC.
//saída: classificação das temperaturas em: adequadas (menores que 85ºC) ou altas (iguais ou maiores que 85ºC) ou críticas (iguais ou maiores que 105ºC).


const linhas = require('fs').readFileSync('/dev/stdin','utf8').split('\n');
let temperatura = parseInt(linhas.shift());

do{
    if(temperatura < 85)
        console.log('temperatura adequada');
    else if(temperatura < 105)
        console.log('temperatura alta');
    else
        console.log('temperatura crítica');
    temperatura = parseInt(linhas.shift());
}while(temperatura !== 273);

Saída

Instruções break e continue

Entrada

//arquivo: break.js
//objetivo: exemplificar instrução break.

const linhas = require('fs').readFileSync('/dev/stdin','utf8').split('\n');

for(let i = 0; true; i++){
    if(i === 2)
        break;
    console.log(linhas[i]);    
}

Saída

Entrada

//arquivo: continue.js
//objetivo: exemplificar instrução continue.

const linhas = require('fs').readFileSync('/dev/stdin','utf8').split('\n');
for(let i = 0; i < linhas.length; i++){
    if(i === 4)
        continue;
    console.log(linhas[i]);
}

Saída

Instrução de seleção múltipla switch

Entrada

//arquivo: switch.js
//entrada: uma lista de gêneros de livros.
//saída: para cada gênero da entrada fornecer sugestões de livros.
//objetivo: usando a instrução de seleção múltipla switch sugerir uma lista de livros conforme gênero da entrada se não tiver nenhuma correspondência sugerir lista genérica de livros.


const linhas = require('fs').readFileSync('/dev/stdin','utf8').split('\n');

while(linhas.length){
    switch(linhas.shift()){
        case 'ficção científica':
            console.log('Poeira Lunar(Arthur C. Clarke), Memória Falsa(Dan Krokos), Os Arquivos Perdidos: a Traição do Número Cinco(Pittacus Lore)');
            break;
        case 'infanto e juvenil':
            console.log('Os Contos de Beedle, O Bardo(J.K. Rowling), Um de Nós está de Volta (Karen M. McManus), Anjo Sombrio(Kim Richardson)');
            break;
        case 'policial e mistério':
            console.log('Blaze(Stephen King), Depois Daquela Noite(Karin Slaughter), Diorama(Carol Bensimon)');
            break;
        case 'história':
            console.log('O Lado Sombrio dos Contos de Fadas(Karin Hueck), Roma Antiga: de Rômulo a Justiniano(Thomas R. Martin), A Historia Começa na Sumeria(Samuel Noah Kramer)');
            break;
        default: 
            console.log('O Poder do Pensamento Matemático(Jordan Ellenberg), Tempo De Vida(David A. Sinclair), Alimentos Funcionais e Compostos Bioativos(Carolina Vieira Pimente)');            
    }
}

Saída