Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- This file: -- http://anggtwu.net/LUA/Calendar4.lua.html -- http://anggtwu.net/LUA/Calendar4.lua -- (find-angg "LUA/Calendar4.lua") -- Author: Eduardo Ochs <eduardoochs@gmail.com> -- -- (defun o () (interactive) (find-angg "LUA/Calendar3.lua")) -- (defun e () (interactive) (find-angg "LUA/Calendar4.lua")) -- (defun oe () (interactive) (find-2a '(o) '(e))) -- -- «.Feriados» (to "Feriados") -- «.Feriados-2025» (to "Feriados-2025") -- «.Feriados-tests» (to "Feriados-tests") -- «.KTable» (to "KTable") -- «.NQuadros» (to "NQuadros") -- «.NQuadros-tests» (to "NQuadros-tests") -- «.NQuadros-emacsqs» (to "NQuadros-emacsqs") -- «.Dia» (to "Dia") -- «.Dia-tests» (to "Dia-tests") -- «.Materia0» (to "Materia0") -- «.Materia0-tests» (to "Materia0-tests") -- «.Materia0-quadros» (to "Materia0-quadros") -- «.C2_progs» (to "C2_progs") -- «.C3_progs» (to "C3_progs") load_sqlite() -- (find-angg "LUA/lua50init.lua" "load_sqlite") -- (find-angg "LUA/SQLite1.lua" "dates_between") -- _____ _ _ -- | ___|__ _ __(_) __ _ __| | ___ ___ -- | |_ / _ \ '__| |/ _` |/ _` |/ _ \/ __| -- | _| __/ | | | (_| | (_| | (_) \__ \ -- |_| \___|_| |_|\__,_|\__,_|\___/|___/ -- -- «Feriados» (to ".Feriados") -- Feriados = Class { type = "Feriados", from = function (bigstr) local T = VTable {} local pat = "^%s*(%S+)%s+(.*)" for _,li in ipairs(splitlines(bigstr)) do local when,rest = li:match(pat) if when:match":" then local date1,date2 = when:match("^([^:]+):(.*)") for _,date in ipairs(dates_between(date1,date2)) do table.insert(T, HTable {date,rest}) end else table.insert(T, HTable {when,rest}) end end local S = Set.new() for _,kv in ipairs(T) do S:add(kv[1], kv[2]) end return Feriados {T=T, S=S} end, __index = { }, } -- «Feriados-2025» (to ".Feriados-2025") -- (find-es "puro" "cal-2025.1") -- feriados_2025_bigstr = [=[ 2025-01-01 Confraternização universal 2025-03-03:2025-03-04 Carnaval 2025-03-05 Quarta-feira de cinzas 2025-04-18 Paixão de Cristo 2025-04-21 Tiradentes 2025-04-23 Dia de São Jorge (?) 2025-05-01 Dia do Trabalho 2025-06-19 Corpus Christi 2025-06-20 Ponto Facultativo 2025-09-07 Independência do Brasil 2025-10-12 Nossa Senhora Aparecida 2025-10-27 Ponto Facultativo 2025-10-28 Dia do Servidor Público 2025-11-02 Finados 2025-11-20 Consciência Negra 2025-12-24 Véspera de Natal 2025-12-25 Natal 2025-12-31 Véspera do Ano Novo 2025-04-10 Aniversário de Rio das Ostras 2025-05-12:2025-05-16 Encontro Brasileiro de Lógica (EBL) 2025-10-06:2025-10-10 SNCT? ]=] feriados_2025 = Feriados.from(feriados_2025_bigstr) -- «Feriados-tests» (to ".Feriados-tests") --[[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Calendar4.lua" = feriados_2025.T = feriados_2025.S = feriados_2025.S:ksc("\n") for k,v in feriados_2025.S:gen() do print(k,v) end --]] meses = VTable(split("jan fev mar abr mai jun jul ago set out nov dez")) --[[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Calendar4.lua" = meses = meses[5] --]] -- _ _______ _ _ -- | |/ /_ _|_ _| |__ | | ___ -- | ' / | |/ _` | '_ \| |/ _ \ -- | . \ | | (_| | |_) | | __/ -- |_|\_\ |_|\__,_|_.__/|_|\___| -- -- «KTable» (to ".KTable") -- (find-angg "LUA/lua50init.lua" "HTable-and-VTable") -- KTable = Class { type = "KTable", __tostring = mytostringv, __index = { ks = function (kt) return sortedkeys(kt) end, vs = function (kt) local A = VTable {} for _,k in ipairs(kt:ks()) do table.insert(A, kt[k]) end return A end, vsc = function (kt,sep) return table.concat(kt:vs(), sep or "\n") end, }, } -- (find-sh "cd ~/2024.2-C2/ && ls *.jpg") -- (find-angg "LUA/lua50init.lua" "Set") -- _ _ ___ _ -- | \ | |/ _ \ _ _ __ _ __| |_ __ ___ ___ -- | \| | | | | | | |/ _` |/ _` | '__/ _ \/ __| -- | |\ | |_| | |_| | (_| | (_| | | | (_) \__ \ -- |_| \_|\__\_\\__,_|\__,_|\__,_|_| \___/|___/ -- -- «NQuadros» (to ".NQuadros") -- Número de (fotos de) quadros em cada dia. -- NQuadros = Class { type = "NQuadros", from0 = function (dir,sem) return NQuadros {dir=dir,sem=sem,ns=Set.new()} end, from = function (dir,sem) return NQuadros.from0(dir,sem):registerfnames() end, __index = { splitdirname = function (nq) return nq.dir:match("^..(..)%.(.)%-C(.)") end, findpage = function (nq) local yy,s,m = nq:splitdirname() return format("find-c%sq%s%spage", m, yy, s) end, ls0 = function (nq) return format("cd ~/%s/ && ls *.jpg", nq.dir) end, ls = function (nq) return getoutput(nq:ls0()) end, fnames = function (nq) return VTable(split(nq:ls())) end, pat = "^(....)(..)(..)%-..%-(.)", splitfname = function (nq,fname) return fname:match(nq.pat) end, register2 = function (nq,date,n) nq.ns:add(date,n) end, register4 = function (nq,yyyy,mm,dd,n) nq:register2(format("%s-%s-%s", yyyy,mm,dd), n+0) end, registerfnames = function (nq) for _,fname in ipairs(nq:fnames()) do local yyyy,mm,dd,n = nq:splitfname(fname) nq:register4(yyyy,mm,dd,n+0) end return nq end, gen2 = function (nq) return nq.ns:gen() end, gen3 = function (nq) return cow(function () local now = 1 for a,b in nq:gen2() do coy(a,b,now) now = now + b end end) end, findpages0 = function (nq) A = KTable {} for date,nqs,qinit in nq:gen3() do local mm,dd = date:match("....%-(..)%-(..)") local sexp = format('(%s %2s "%s/%s:")', nq:findpage(), qinit, dd, mm) A[date] = ";; "..sexp end return A end, findpages = function (nq) return nq:findpages0():vsc() end, -- cqs0 = function (nq) local A = KTable {} for date,nqs,qinit in nq:gen3() do local yyyy,mm,dd = date:match("(....)%-(..)%-(..)") local yy,s,m = nq:splitdirname() local caepro = format("%s%sQ%s", m,nq.sem,qinit) local cq = format("[C %5s], [Qjpgs %s%s%s %s]", caepro, yyyy,mm,dd, nqs) A[date] = cq end return A end, cqs = function (nq) return nq:cqs0():vsc() end, -- emacsqs0 = function (nq) local A = KTable {} for date,nqs,qinit in nq:gen3() do local yyyy,mm,dd = date:match("(....)%-(..)%-(..)") local yy,s,m = nq:splitdirname() local ds = diasdasemana[db:weekday(date)] local emacsq = format(";; (find-c%sq%s%spage %2s \"%s %s/%s:\")", m,yy,s, qinit, ds, dd,mm) A[date] = emacsq end return A end, emacsqs = function (nq) return nq:emacsqs0():vsc() end, }, } -- «NQuadros-tests» (to ".NQuadros-tests") --[[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Calendar4.lua" nq = NQuadros {dir="2024.2-C2", sem="i", ns=Set.new()} = nq:ls0() = nq:ls() = nq:fnames() = nq:registerfnames() for a,b in nq:gen2() do print(a,b) end for a,b,c in nq:gen3() do print(a,b,c) end * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Calendar4.lua" nq = NQuadros.from("2024.2-C2", "i") = nq:findpages0() = nq:findpages() = nq:cqs0() = nq:cqs() = nq:emacsqs() --]] -- «NQuadros-emacsqs» (to ".NQuadros-emacsqs") --[[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Calendar4.lua" -- (find-angg ".emacs" "c2q242") nq = NQuadros.from("2024.2-C2", "i") = nq:emacsqs() -- (find-angg ".emacs" "c3q242") nq = NQuadros.from("2024.2-C3", "i") = nq:emacsqs() --]] -- ____ _ -- | _ \(_) __ _ -- | | | | |/ _` | -- | |_| | | (_| | -- |____/|_|\__,_| -- -- «Dia» (to ".Dia") -- Dia = Class { type = "Dia", __tostring = function (dia) return mytostring(dia) end, __index = { yyyy = function (dia) return dia.date:sub(1,4) end, mm = function (dia) return dia.date:sub(6,7) end, dd = function (dia) return dia.date:sub(9,10) end, mes = function (dia) return meses[dia:mm()+0] end, format = function (dia,fmt) local f = function (s) return Dia.__index[s] and dia[s](dia) or dia[s] end return (fmt:gsub("<(.-)>", f)) end, -- -- [C 2jQ42], [Qjpgs 20241023 4] cq0 = function (dia) return current_cqs0 and current_cqs0[dia.date] end, cq = function (dia) return dia:cq0() and ", "..dia:cq0() or "" end, -- plc_feriado = function (dia) return dia:format("<a> & <dd>/<mes> (<ds>) & \\it <feriado> \\\\") end, plc_normal = function (dia) return dia:format("<a> & <dd>/<mes> (<ds>) & <prog> \\\\") end, plc = function (dia) return dia.feriado and dia:plc_feriado() or dia:plc_normal() end, blogme_feriado = function (dia) return dia:format("[BR] Aula <a> (<ds> <dd>/<mes>) [FER <feriado>]") end, blogme_normal = function (dia) return dia:format("[BR] Aula <a> (<ds> <dd>/<mes>) [GRAY <prog>]") end, blogme_normal = function (dia) return dia:format("[BR] Aula <a> (<ds> <dd>/<mes>[#, [C 2jQ?], [Qjpgs <yyyy><mm><dd> 4]]) [GRAY <prog>]") end, blogme_normal = function (dia) return dia:format("[BR] Aula <a> (<ds> <dd>/<mes><cq>) [GRAY <prog>]") end, blogme = function (dia) return dia.feriado and dia:blogme_feriado() or dia:blogme_normal() end, }, } -- «Dia-tests» (to ".Dia-tests") --[[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Calendar4.lua" d = Dia {date="2024-12-25"} d = Dia {a=26, date="2024-11-18", ds="2a", prog="Bla"} d = Dia {a=27, date="2024-11-20", ds="4a", feriado="Dia da Consciencia Negra"} = d = d:yyyy() = d:mm() = d:dd() = d:mes() = d:format("_<date>_<mes>_") = d:format("<a> & <dd>/<mes> (<ds>) & <feriado> \\\\") = d:plc_feriado() = d:plc_normal() = d:plc() = d:blogme() nq = NQuadros.from("2024.2-C2", "i") = nq:cqs0() = nq:cqs() current_cqs0 = nq:cqs0() d = Dia {a=42, date="2024-09-30", ds="9a", prog="Bla"} = d:blogme() d = Dia {a=42, date="2024-09-32", ds="9a", prog="Bla"} = d:blogme() --]] -- __ __ _ _ ___ -- | \/ | __ _| |_ ___ _ __(_) __ _ / _ \ -- | |\/| |/ _` | __/ _ \ '__| |/ _` | | | | -- | | | | (_| | || __/ | | | (_| | |_| | -- |_| |_|\__,_|\__\___|_| |_|\__,_|\___/ -- -- «Materia0» (to ".Materia0") -- Materia0 = Class { type = "Materia0", from = function (inicio,fim,dss0,feriados) dss0 = dss0 or "2a 4a" ferset = feriados and feriados.S or Set.new() local dss = Set.from(split(dss0)) local dias0 = VTable {} for _,date in ipairs(dates_between(inicio,fim)) do local ds = diasdasemana[db:weekday(date)] if dss:has(ds) then table.insert(dias0, Dia {date=date, ds=ds, feriado=ferset:get(date)}) end end local dias1 = VTable {} for _,dia in ipairs(dias0) do if not ferset:has(dia.date) then table.insert(dias1,dia) end end for a,dia in ipairs(dias0) do dia.a = a end for n,dia in ipairs(dias1) do dia.n = n end return Materia0 {inicio=inicio, fim=fim, dss0=dss0, dias0=dias0, dias1=dias1} end, __index = { setprog = function (m,n,prog) m.dias1[n].prog = prog return m end, setprogs = function (m,bigstr) local progs = splitlines(bigstr) PP(#progs, #m.dias1) local K = min(#progs, #m.dias1) for k=1,K do local prog = progs[k] m:setprog(k,bitrim(prog)) end return m end, -- blogmes0 = function (m) local A = VTable {} for _,dia in ipairs(m.dias0) do table.insert(A, dia:blogme()) end return A end, blogmes = function (m) return table.concat(m:blogmes0(), "\n") end, -- plcs0 = function (m) local A = VTable {} for _,dia in ipairs(m.dias0) do table.insert(A, dia:plc()) end return A end, plcs = function (m) return table.concat(m:plcs0(), "\n") end, }, } -- «Materia0-tests» (to ".Materia0-tests") --[==[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Calendar4.lua" = feriados_2025.S = feriados_2025.S:has("2025-04-21") = feriados_2025.S:get("2025-04-21") -- C2 = Materia0.from("2024-09-23", "2025-02-06", "2a 3a 4a", feriados_2024_2) -- C3 = Materia0.from("2024-09-23", "2025-02-06", "2a 4a", feriados_2024_2) C2 = Materia0.from("2025-03-24", "2025-07-26", "2a 3a 4a", feriados_2025) C3 = Materia0.from("2025-03-24", "2025-07-26", "2a 4a", feriados_2025) = C2 = C2.dias0 = C3.dias0 = C2.dias1 = C3.dias1 C3:setprogs(C3_progs) C2:setprogs(C2_progs) = C3.dias0 = C2.dias0 nq = NQuadros.from("2025.1-C2", "k") current_cqs0 = nq:cqs0() = current_cqs0 = C2.dias0 = C2.dias0[2] = C2.dias0[2]:blogme() = C2:blogmes0() = C2:blogmes() = C2:plcs() nq = NQuadros.from("2025.1-C3", "k") current_cqs0 = nq:cqs0() = C3:blogmes() = C3:plcs() --]==] -- «Materia0-quadros» (to ".Materia0-quadros") -- (find-TH "2024.2-C2" "agora") -- (find-TH "2024.2-C3" "agora") --[[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Calendar4.lua" -- C2 = Materia0.from("2024-09-23", "2025-02-06", "2a 3a 4a", feriados_2024_2) -- C3 = Materia0.from("2024-09-23", "2025-02-06", "2a 4a", feriados_2024_2) C2 = Materia0.from("2025-03-24", "2025-07-26", "2a 3a 4a", feriados_2025) C3 = Materia0.from("2025-03-24", "2025-07-26", "2a 4a", feriados_2025) C2:setprogs(C2_progs) C3:setprogs(C3_progs) nq = NQuadros.from("2024.2-C2", "j") current_cqs0 = nq:cqs0() = C2:blogmes() nq = NQuadros.from("2024.2-C3", "j") current_cqs0 = nq:cqs0() = C3:blogmes() --]] -- «C2_progs» (to ".C2_progs") -- (c2m251plcp 3 "cronograma") -- (c2m251plca "cronograma") C2_progs = [=[ Revisão de notações para conjuntos e técnicas básicas Revisão de notações para conjuntos e técnicas básicas Revisão de diferenciação Integral definida, integral como área, introdução aos TFCs, propriedades da integral Integral definida, integral como área, introdução aos TFCs, propriedades da integral Revisão de como justificar cada passo de uma demonstração Definição de solução de EDO. Integração como EDO. Integral indefinida Integração por partes Frações parciais Frações parciais Exercícios de como estruturar contas e demonstrações Mudança de variável na integral definida Mudança de variável na integral indefinida Integrais de potências de senos e cossenos Substituição trigonométrica Substituição trigonométrica Somas de Riemann Somas de Riemann Somas de Riemann TFC1 e TFC2 P1 Funções não integráveis Volumes. Volume de sólidos de revolução Volumes. Volume de sólidos de revolução Integrais impróprias Comprimento de arco Campos de direções. EDOs com variáveis separáveis Condições iniciais EDOs lineares de ordens 1 e 2 com coeficientes constantes Espaço de soluções. A álgebra das funções infinitamente diferenciáveis de $\R$ em $\R$ Revisão de números complexos Identidades trigonométricas Soluções reais para o problema da vibração amortecida EDOs exatas EDOs exatas EDOs lineares não homogêneas Introdução a variação de parâmetros Introdução a séries de Taylor e MacLaurin Revisão de sequências convergentes e divergentes Revisão de séries convergentes e divergentes. Teste da integral Teste da razão e da raiz. Raio de convergência Revisão e dúvidas P2 Revisão e dúvidas Revisão e dúvidas VR Revisão e dúvidas Revisão e dúvidas VS Vista de prova da VS ]=] -- «C3_progs» (to ".C3_progs") -- (c3m251plcp 2 "cronograma") -- (c3m251plca "cronograma") C3_progs = [=[ Revisão de notações para conjuntos e técnicas básicas Revisão de notações para conjuntos e técnicas básicas Revisão de pontos e vetores Função vetorial de uma variável real: definição e exemplos, derivada Função vetorial de uma variável real: definição e exemplos, derivada Limite e continuidade. Definição e propriedades Variáveis dependentes e diferenciais Variáveis dependentes e diferenciais Fórmula de Taylor para funções vetoriais Funções reais de duas variáveis: gráficos e conjuntos de nível Funções reais de duas variáveis: gráficos e conjuntos de nível Derivadas parciais Fórmula de Taylor para superfícies Plano tangente e reta normal Vetor gradiente. Derivada direcional Diferencial total. Funções homogêneas Derivadas parciais de ordens superiores Regra da cadeia P1 Função diferenciável. Uma condição suficiente para diferenciabilidade Noções de conjuntos abertos e fechados no $\R^n$ Noções de conjuntos abertos e fechados no $\R^n$ Máximos e mínimos sobre um compacto Extremos relativos. Condição necessária para a existência de extremos relativos Ponto crítico. Teste da derivada segunda Multiplicadores de Lagrange P2 Revisão e dúvidas VR Revisão e dúvidas VS Vista de prova da VS ]=] --[[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Calendar4.lua" -- C2 = Materia0.from("2024-09-23", "2025-02-06", "2a 3a 4a", feriados_2024_2) -- C3 = Materia0.from("2024-09-23", "2025-02-06", "2a 4a", feriados_2024_2) C2 = Materia0.from("2025-03-24", "2025-07-26", "2a 3a 4a", feriados_2025) C3 = Materia0.from("2025-03-24", "2025-07-26", "2a 4a", feriados_2025) C3:setprogs(C3_progs) C2:setprogs(C2_progs) = C3.dias0 = C3.dias1 = C2.dias0 = C2.dias1 = C3.dias0 --]] -- Local Variables: -- coding: utf-8-unix -- End: