Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- This file: -- http://anggtwu.net/LUA/Calendar3.lua.html -- http://anggtwu.net/LUA/Calendar3.lua -- (find-angg "LUA/Calendar3.lua") -- Author: Eduardo Ochs <eduardoochs@gmail.com> -- -- (defun e () (interactive) (find-angg "LUA/Calendar3.lua")) -- -- «.Feriados» (to "Feriados") -- «.Feriados-2024.2» (to "Feriados-2024.2") -- «.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") -- (find-angg "LUA/lua50init.lua" "load_sqlite") load_sqlite() -- _____ _ _ -- | ___|__ _ __(_) __ _ __| | ___ ___ -- | |_ / _ \ '__| |/ _` |/ _` |/ _ \/ __| -- | _| __/ | | | (_| | (_| | (_) \__ \ -- |_| \___|_| |_|\__,_|\__,_|\___/|___/ -- -- «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-2024.2» (to ".Feriados-2024.2") -- feriados_2024_2_bigstr = [=[ 2024-10-12 Nossa Senhora Aparecida 2024-10-14:2024-10-18 Semana Acadêmica 2024-10-28 Dia do Servidor Público 2024-11-02 Finados 2024-11-15 Proclamação da República 2024-11-20 Dia da Consciência Negra 2024-12-24 Véspera do Natal 2024-12-25 Natal 2024-12-31 Véspera do Ano Novo 2024-12-23:2025-01-05 Recesso ]=] feriados_2024_2 = Feriados.from(feriados_2024_2_bigstr) -- «Feriados-tests» (to ".Feriados-tests") --[[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Calendar3.lua" = feriados_2024_2.T = feriados_2024_2.S = feriados_2024_2.S:ksc("\n") for k,v in feriados_2024_2.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 "Calendar3.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 "Calendar3.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 "Calendar3.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 "Calendar3.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 "Calendar3.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, }, } -- «Materia0-tests» (to ".Materia0-tests") --[==[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Calendar3.lua" = feriados_2024_2.S = feriados_2024_2.S:has("2024-12-31") = feriados_2024_2.S:get("2024-12-31") 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 = C2.dias0 = C3.dias0 = C2.dias1 = C3.dias1 C3:setprogs(C3_progs) C2:setprogs(C2_progs) = C3.dias0 = C2.dias0 nq = NQuadros.from("2024.2-C2", "j") current_cqs0 = nq:cqs0() = current_cqs0 = C2.dias0 = C2.dias0[2] = C2.dias0[2]:blogme() = C2:blogmes0() = C2:blogmes() nq = NQuadros.from("2024.2-C3", "j") current_cqs0 = nq:cqs0() = C3:blogmes() --]==] -- «Materia0-quadros» (to ".Materia0-quadros") -- (find-TH "2024.2-C2" "agora") -- (find-TH "2024.2-C3" "agora") --[[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "Calendar3.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: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() --]] 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 "Calendar3.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) C3:setprogs(C3_progs) C2:setprogs(C2_progs) = C3.dias0 = C3.dias1 = C2.dias0 = C2.dias1 = C3.dias0 --]] 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 Substituição trigonométrica Somas de Riemann 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 ]=] -- Local Variables: -- coding: utf-8-unix -- End: