├── .ruby-version ├── mobile ├── .gitignore ├── rest.zip ├── ex │ ├── 20232 │ │ ├── 05-flutter-riverpod.md │ │ ├── 03-flutter-stateless.md │ │ ├── 04-flutter-stateful.md │ │ ├── 02-flutter-basico.md │ │ └── 01-dart.md │ ├── 20241 │ │ ├── goldens │ │ │ ├── g_entrar01.png │ │ │ ├── g_entrar02.png │ │ │ ├── g_home01.png │ │ │ ├── g_home02.png │ │ │ ├── g_like01.png │ │ │ ├── g_like02.png │ │ │ ├── layout_col01.png │ │ │ ├── layout_col02.png │ │ │ ├── g_alo_flutter01.png │ │ │ ├── g_alo_flutter02.png │ │ │ ├── g_texto_flat01.png │ │ │ ├── g_texto_flat02.png │ │ │ └── layout_like01.png │ │ ├── flutter_aulas_layout.zip │ │ ├── flutter_aulas_widgets.zip │ │ ├── widgets.md │ │ ├── dart.md │ │ ├── layout.md │ │ └── index.md │ ├── 20242 │ │ ├── goldens │ │ │ ├── g_entrar01.png │ │ │ ├── g_entrar02.png │ │ │ ├── g_home01.png │ │ │ ├── g_home02.png │ │ │ ├── g_like01.png │ │ │ ├── g_like02.png │ │ │ ├── layout_col01.png │ │ │ ├── layout_col02.png │ │ │ ├── tutorial0101.png │ │ │ ├── tutorial0201.png │ │ │ ├── tutorial0301.png │ │ │ ├── tutorial0401.png │ │ │ ├── tutorial0501.png │ │ │ ├── g_alo_flutter01.png │ │ │ ├── g_alo_flutter02.png │ │ │ ├── g_texto_flat01.png │ │ │ ├── g_texto_flat02.png │ │ │ └── layout_like01.png │ │ ├── flutter_aulas_layout.zip │ │ ├── flutter_aulas_widgets.zip │ │ ├── listview.md │ │ ├── dart.md │ │ ├── widgets.md │ │ ├── layout.md │ │ └── index.md │ ├── 20241t │ │ ├── goldens │ │ ├── flutter_aulas_layout.zip │ │ ├── flutter_aulas_widgets.zip │ │ ├── widgets.md │ │ ├── index.md │ │ └── layout.md │ └── 20242t │ │ ├── goldens │ │ ├── g_home01.png │ │ ├── g_home02.png │ │ ├── g_like01.png │ │ ├── g_like02.png │ │ ├── g_entrar01.png │ │ ├── g_entrar02.png │ │ ├── g_texto_flat01.png │ │ ├── g_texto_flat02.png │ │ ├── layout_col01.png │ │ ├── layout_col02.png │ │ ├── layout_like01.png │ │ ├── g_alo_flutter01.png │ │ └── g_alo_flutter02.png │ │ ├── flutter_aulas_layout.zip │ │ ├── flutter_aulas_widgets.zip │ │ ├── widgets.md │ │ ├── dart.md │ │ ├── layout.md │ │ └── index.md ├── mobile.png ├── async-task.zip ├── seminarios.md ├── instance-state.md ├── exercicios-android-correcao.md ├── exercicios-android.md └── trabalho-apps-20182.md ├── lib ├── codemirror │ ├── keymap │ │ └── .Rhistory │ └── addon │ │ ├── hint │ │ ├── .Rhistory │ │ └── show-hint.css │ │ └── lint │ │ ├── yaml-lint.js │ │ ├── json-lint.js │ │ └── css-lint.js ├── jquery-ui │ └── images │ │ ├── ui-icons_444444_256x240.png │ │ ├── ui-icons_555555_256x240.png │ │ ├── ui-icons_777620_256x240.png │ │ ├── ui-icons_777777_256x240.png │ │ ├── ui-icons_cc0000_256x240.png │ │ └── ui-icons_ffffff_256x240.png ├── submissao │ ├── submissao.css │ ├── checkuser.php │ ├── logout.php │ ├── home.php │ ├── load.php │ ├── login.php │ └── list.php ├── plantuml │ └── plantuml-replacer.js ├── editors │ ├── eval-cpp.js │ ├── eval-javascript.js │ └── eval-python.js ├── ezsubmission │ └── ezsubmission.js └── survey │ └── survey.js ├── mata56 ├── .gitignore ├── biwascheme.md ├── ava-ex-lisp.md ├── aula07-conceitos.md ├── avaliacoes.html └── aula00-apresentacao.md ├── _includes ├── footer-items-mata56.html ├── mobile │ └── problems │ │ └── flutter_aulas │ │ ├── devtools_options.yaml │ │ ├── web │ │ ├── favicon.png │ │ ├── icons │ │ │ ├── Icon-192.png │ │ │ ├── Icon-512.png │ │ │ ├── Icon-maskable-192.png │ │ │ └── Icon-maskable-512.png │ │ └── manifest.json │ │ ├── _init.sh │ │ ├── test │ │ ├── goldens │ │ │ ├── g_home01.png │ │ │ ├── g_home02.png │ │ │ ├── g_like01.png │ │ │ ├── g_like02.png │ │ │ ├── g_entrar01.png │ │ │ ├── g_entrar02.png │ │ │ ├── layout_col01.png │ │ │ ├── layout_col02.png │ │ │ ├── layout_like01.png │ │ │ ├── g_alo_flutter01.png │ │ │ ├── g_alo_flutter02.png │ │ │ ├── g_texto_flat01.png │ │ │ └── g_texto_flat02.png │ │ ├── aprendendo_test.dart │ │ ├── alo_flutter_test.dart │ │ ├── area_retangulo_test.dart │ │ ├── endereco_test.dart │ │ ├── widget_like_test.dart │ │ ├── flutter_test_config.dart │ │ ├── cumprimento_test.dart │ │ ├── listview02_test.dart │ │ ├── pessoa_test.dart │ │ ├── listview01_test.dart │ │ ├── on_off_test.dart │ │ ├── layout_like_test.dart │ │ ├── widget_like2_test.dart │ │ ├── tutorial01_test.dart │ │ ├── widget_test.dart │ │ ├── layout_col_test.dart │ │ ├── listview04_test.dart │ │ ├── g_home_test.dart │ │ └── g_like_test.dart │ │ ├── assets │ │ └── fonts │ │ │ ├── Roboto-Bold.ttf │ │ │ ├── Roboto-Thin.ttf │ │ │ ├── Roboto-Black.ttf │ │ │ ├── Roboto-Italic.ttf │ │ │ ├── Roboto-Light.ttf │ │ │ ├── Roboto-Medium.ttf │ │ │ ├── Roboto-Regular.ttf │ │ │ ├── Roboto-BlackItalic.ttf │ │ │ ├── Roboto-BoldItalic.ttf │ │ │ ├── Roboto-LightItalic.ttf │ │ │ ├── Roboto-ThinItalic.ttf │ │ │ ├── MaterialIcons-Regular.otf │ │ │ └── Roboto-MediumItalic.ttf │ │ ├── .gitignore │ │ ├── draft │ │ ├── pessoa__draft.dart │ │ ├── area_retangulo__draft.dart │ │ ├── tutorial01__draft.dart │ │ ├── tutorial02__draft.dart │ │ ├── widget_like__draft.dart │ │ ├── tutorial03__draft.dart │ │ ├── g_texto_flat__draft.dart │ │ ├── g_entrar__draft.dart │ │ ├── tutorial04__draft.dart │ │ ├── widget_like2__draft.dart │ │ ├── g_alo_flutter__draft.dart │ │ ├── g_like__draft.dart │ │ ├── tutorial05__draft.dart │ │ ├── endereco__draft.dart │ │ ├── on_off__draft.dart │ │ ├── g_home__draft.dart │ │ ├── listview01__draft.dart │ │ └── lista_produtos__draft.dart │ │ ├── md │ │ ├── alo_flutter.md │ │ ├── pessoa.md │ │ ├── aprendendo.md │ │ ├── _alodart.md │ │ ├── area_retangulo.md │ │ ├── cumprimento.md │ │ ├── endereco.md │ │ ├── contasnack.md │ │ └── inserir_tarefa.md │ │ ├── README.md │ │ ├── pubspec.yaml │ │ └── .metadata ├── icon-github.html ├── icon-twitter.html ├── codigo-de-conduta.md ├── icon-twitter.svg ├── icon-github.svg ├── poo │ └── problems │ │ └── tupy │ │ ├── fake-tupy.py │ │ ├── foguete.md │ │ └── interruptor.md ├── orientacoes.md └── footer.html ├── lac └── .gitignore ├── .vscode └── settings.json ├── ilp ├── 00d-ajuda.md ├── ilp-pd-logo.png ├── python-idle.png ├── 00c-avaliacao.md └── footer.txt ├── poo ├── ex-tupy.zip ├── poo-logo.png ├── images │ ├── torre.png │ ├── disco1.png │ ├── disco2.png │ ├── disco3.png │ └── plugue.webp ├── ex-tupy │ ├── carro │ │ ├── carro.png │ │ └── carro.py │ ├── hanoi │ │ ├── disco1.png │ │ ├── disco2.png │ │ ├── disco3.png │ │ ├── torre.png │ │ └── hanoi.py │ ├── semaforo │ │ ├── verde.png │ │ ├── amarelo.png │ │ ├── vermelho.png │ │ └── semaforo.py │ └── sombra │ │ ├── pessoa.png │ │ ├── sombra.png │ │ └── sombra.py ├── funcoes.md ├── ex │ └── 20232 │ │ └── 05-tupy.md ├── download-java.md ├── aula-arquivos.md ├── aula-oo-conceitos.md ├── tupy-atividades.md ├── aula-strings.md ├── duplicacao-de-codigo.md ├── pyglet.md ├── ex-python-estatico.md └── aula-modelagem.md ├── files ├── recursion.png ├── infinite-patrick.gif └── hadouken-indentation.jpg ├── mata37 ├── codigo │ ├── 8ball │ ├── bomba │ ├── random │ ├── 30medias │ ├── teste.cc │ ├── funcao2.cpp │ ├── string.cpp │ ├── char.cpp │ ├── stringmanip.cpp │ ├── loop-infinito.cpp │ ├── rec-alfabeto.cpp │ ├── rec-fib.cpp │ ├── contador.cpp │ ├── funcao1.cpp │ ├── typedef.cpp │ ├── funcao3.cpp │ ├── struct2.cpp │ ├── triangulo.cpp │ ├── for-aninhado.cc │ ├── vetor.cpp │ ├── struct1.cpp │ ├── for-while.cpp │ ├── matrix.cpp │ ├── string-sesamo.cpp │ ├── buscau.cpp │ ├── random.cc │ ├── matlab.cpp │ ├── ordenacao-string2.cpp │ ├── 30medias.cpp │ ├── ordenacao1.cpp │ ├── acumulador.cpp │ ├── string-maiuscula.cpp │ ├── string-semvogais.cpp │ ├── 30medias-while.cpp │ ├── 8ball.cc │ ├── ordenacao-string.cpp │ ├── string-ordem.cpp │ ├── vetor-strings.cpp │ ├── rec-fatorial.cpp │ ├── matlab2.cpp │ ├── ordenacao2.cpp │ ├── ordenacao3.cpp │ ├── soma-vetores-menos-loops.cpp │ ├── string-yesno.cpp │ ├── busca-linear.cpp │ ├── soma-vetores.cpp │ ├── batalha-naval-1dim.cpp │ ├── funcao4.cpp │ ├── soma-vetores-menos-memoria.cpp │ ├── par-ou-impar.cpp │ ├── ordenacao-bolha.cpp │ ├── maior-que-media.cpp │ ├── sinalizador.cpp │ ├── bomba.cc │ ├── ordenacao4.cpp │ ├── matadd.cpp │ ├── busca-binaria.cpp │ ├── adivinhe.cpp │ ├── soma-vetores.md │ └── rec-balde.cpp ├── files │ ├── moj0.png │ ├── moj1.png │ ├── moj2.png │ ├── problema1.png │ ├── problema2.png │ ├── problema3.png │ ├── problema4.png │ ├── problema5.png │ ├── problema6.png │ ├── problema7.png │ └── eles-tinham-ovos.jpg ├── sdl │ ├── old │ │ ├── hello.bmp │ │ ├── jogo-menu.jpg │ │ ├── jogo-creditos.jpg │ │ ├── lesson00.cc │ │ ├── lesson-m1.cpp │ │ ├── lesson01.cc │ │ ├── lesson02.cc │ │ ├── lesson03.cc │ │ └── lesson02a.cc │ ├── ilpgame.md │ └── README.md ├── web │ └── gera-dados │ │ ├── test.db │ │ ├── Gemfile │ │ ├── Gemfile.lock │ │ └── gera-dados.rb ├── js-parsons │ ├── ui-extension │ │ └── README │ ├── lib │ │ ├── prettify.css │ │ └── jquery.ui.touch-punch.min.js │ ├── tests │ │ └── runner.html │ └── LICENSE ├── matrizes.md ├── recursao.md ├── busca-binaria.md ├── desvio.md ├── linguagens.md ├── assert.md ├── caracteres.md ├── arquitetura.md ├── qa.md ├── multiplos-arquivos.md ├── compilador.md ├── editores.md ├── intro-linux.md └── ordenacao.md ├── .gitmodules ├── engsoft1.md ├── run-server.sh ├── engsoft1 ├── uml-outros.md ├── uml-sequencia.md ├── arquitetura.md └── testes.md ├── shared └── shared.Rproj ├── _layouts ├── page.html ├── default.html ├── exercises.html ├── post.html └── slides-old.html ├── aulas.code-workspace ├── css ├── page.scss └── misc.css ├── .gitignore ├── README.md ├── demo ├── prova2.md ├── survey.md ├── index.md ├── tooltip.md ├── python.md ├── uml.md ├── 3colunas.md ├── quiz.md ├── prova.md └── slides.md ├── engsoft2 └── index.md ├── experimento-triple ├── copia.sh └── orientacoes.md ├── teste-slides.md ├── empacota.sh ├── about.md ├── grupo1 └── index.md ├── grupo2 └── index.md ├── Gemfile ├── js └── misc.js └── index.md /.ruby-version: -------------------------------------------------------------------------------- 1 | 2.7.7 2 | -------------------------------------------------------------------------------- /mobile/.gitignore: -------------------------------------------------------------------------------- 1 | . 2 | -------------------------------------------------------------------------------- /lib/codemirror/keymap/.Rhistory: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /mata56/.gitignore: -------------------------------------------------------------------------------- 1 | prova*.md 2 | -------------------------------------------------------------------------------- /_includes/footer-items-mata56.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lac/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /lib/codemirror/addon/hint/.Rhistory: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.linting.enabled": true 3 | } -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/devtools_options.yaml: -------------------------------------------------------------------------------- 1 | extensions: 2 | -------------------------------------------------------------------------------- /ilp/00d-ajuda.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: Pedindo ajuda 4 | --- 5 | -------------------------------------------------------------------------------- /mobile/rest.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/rest.zip -------------------------------------------------------------------------------- /poo/ex-tupy.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/ex-tupy.zip -------------------------------------------------------------------------------- /mobile/ex/20241t/goldens: -------------------------------------------------------------------------------- 1 | ../../../_includes/mobile/problems/flutter_aulas/test/goldens -------------------------------------------------------------------------------- /mobile/mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/mobile.png -------------------------------------------------------------------------------- /poo/poo-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/poo-logo.png -------------------------------------------------------------------------------- /files/recursion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/files/recursion.png -------------------------------------------------------------------------------- /ilp/ilp-pd-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/ilp/ilp-pd-logo.png -------------------------------------------------------------------------------- /ilp/python-idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/ilp/python-idle.png -------------------------------------------------------------------------------- /mata37/codigo/8ball: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/codigo/8ball -------------------------------------------------------------------------------- /mata37/codigo/bomba: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/codigo/bomba -------------------------------------------------------------------------------- /mata37/codigo/random: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/codigo/random -------------------------------------------------------------------------------- /poo/images/torre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/images/torre.png -------------------------------------------------------------------------------- /mata37/codigo/30medias: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/codigo/30medias -------------------------------------------------------------------------------- /mata37/files/moj0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/files/moj0.png -------------------------------------------------------------------------------- /mata37/files/moj1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/files/moj1.png -------------------------------------------------------------------------------- /mata37/files/moj2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/files/moj2.png -------------------------------------------------------------------------------- /mobile/async-task.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/async-task.zip -------------------------------------------------------------------------------- /poo/images/disco1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/images/disco1.png -------------------------------------------------------------------------------- /poo/images/disco2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/images/disco2.png -------------------------------------------------------------------------------- /poo/images/disco3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/images/disco3.png -------------------------------------------------------------------------------- /poo/images/plugue.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/images/plugue.webp -------------------------------------------------------------------------------- /ilp/00c-avaliacao.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: Avaliação com correção automática 4 | --- 5 | -------------------------------------------------------------------------------- /mata37/sdl/old/hello.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/sdl/old/hello.bmp -------------------------------------------------------------------------------- /files/infinite-patrick.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/files/infinite-patrick.gif -------------------------------------------------------------------------------- /mata37/files/problema1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/files/problema1.png -------------------------------------------------------------------------------- /mata37/files/problema2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/files/problema2.png -------------------------------------------------------------------------------- /mata37/files/problema3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/files/problema3.png -------------------------------------------------------------------------------- /mata37/files/problema4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/files/problema4.png -------------------------------------------------------------------------------- /mata37/files/problema5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/files/problema5.png -------------------------------------------------------------------------------- /mata37/files/problema6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/files/problema6.png -------------------------------------------------------------------------------- /mata37/files/problema7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/files/problema7.png -------------------------------------------------------------------------------- /mata37/sdl/old/jogo-menu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/sdl/old/jogo-menu.jpg -------------------------------------------------------------------------------- /poo/ex-tupy/carro/carro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/ex-tupy/carro/carro.png -------------------------------------------------------------------------------- /poo/ex-tupy/hanoi/disco1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/ex-tupy/hanoi/disco1.png -------------------------------------------------------------------------------- /poo/ex-tupy/hanoi/disco2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/ex-tupy/hanoi/disco2.png -------------------------------------------------------------------------------- /poo/ex-tupy/hanoi/disco3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/ex-tupy/hanoi/disco3.png -------------------------------------------------------------------------------- /poo/ex-tupy/hanoi/torre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/ex-tupy/hanoi/torre.png -------------------------------------------------------------------------------- /files/hadouken-indentation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/files/hadouken-indentation.jpg -------------------------------------------------------------------------------- /mata37/web/gera-dados/test.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/web/gera-dados/test.db -------------------------------------------------------------------------------- /poo/ex-tupy/semaforo/verde.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/ex-tupy/semaforo/verde.png -------------------------------------------------------------------------------- /poo/ex-tupy/sombra/pessoa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/ex-tupy/sombra/pessoa.png -------------------------------------------------------------------------------- /poo/ex-tupy/sombra/sombra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/ex-tupy/sombra/sombra.png -------------------------------------------------------------------------------- /mata37/files/eles-tinham-ovos.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/files/eles-tinham-ovos.jpg -------------------------------------------------------------------------------- /mata37/sdl/old/jogo-creditos.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mata37/sdl/old/jogo-creditos.jpg -------------------------------------------------------------------------------- /poo/ex-tupy/semaforo/amarelo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/ex-tupy/semaforo/amarelo.png -------------------------------------------------------------------------------- /poo/ex-tupy/semaforo/vermelho.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/poo/ex-tupy/semaforo/vermelho.png -------------------------------------------------------------------------------- /poo/funcoes.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Funções em Python 4 | features: [code, python, quiz] 5 | --- 6 | 7 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lib/reveal.js"] 2 | path = lib/reveal.js 3 | url = https://github.com/hakimel/reveal.js.git 4 | -------------------------------------------------------------------------------- /mata37/web/gera-dados/Gemfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | source "https://rubygems.org" 3 | 4 | gem "sqlite3" 5 | -------------------------------------------------------------------------------- /mobile/ex/20241/goldens/g_entrar01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241/goldens/g_entrar01.png -------------------------------------------------------------------------------- /mobile/ex/20241/goldens/g_entrar02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241/goldens/g_entrar02.png -------------------------------------------------------------------------------- /mobile/ex/20241/goldens/g_home01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241/goldens/g_home01.png -------------------------------------------------------------------------------- /mobile/ex/20241/goldens/g_home02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241/goldens/g_home02.png -------------------------------------------------------------------------------- /mobile/ex/20241/goldens/g_like01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241/goldens/g_like01.png -------------------------------------------------------------------------------- /mobile/ex/20241/goldens/g_like02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241/goldens/g_like02.png -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/g_entrar01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/g_entrar01.png -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/g_entrar02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/g_entrar02.png -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/g_home01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/g_home01.png -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/g_home02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/g_home02.png -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/g_like01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/g_like01.png -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/g_like02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/g_like02.png -------------------------------------------------------------------------------- /mobile/ex/20242t/goldens/g_home01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242t/goldens/g_home01.png -------------------------------------------------------------------------------- /mobile/ex/20242t/goldens/g_home02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242t/goldens/g_home02.png -------------------------------------------------------------------------------- /mobile/ex/20242t/goldens/g_like01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242t/goldens/g_like01.png -------------------------------------------------------------------------------- /mobile/ex/20242t/goldens/g_like02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242t/goldens/g_like02.png -------------------------------------------------------------------------------- /mobile/ex/20241/flutter_aulas_layout.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241/flutter_aulas_layout.zip -------------------------------------------------------------------------------- /mobile/ex/20241/goldens/layout_col01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241/goldens/layout_col01.png -------------------------------------------------------------------------------- /mobile/ex/20241/goldens/layout_col02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241/goldens/layout_col02.png -------------------------------------------------------------------------------- /mobile/ex/20242/flutter_aulas_layout.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/flutter_aulas_layout.zip -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/layout_col01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/layout_col01.png -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/layout_col02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/layout_col02.png -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/tutorial0101.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/tutorial0101.png -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/tutorial0201.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/tutorial0201.png -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/tutorial0301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/tutorial0301.png -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/tutorial0401.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/tutorial0401.png -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/tutorial0501.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/tutorial0501.png -------------------------------------------------------------------------------- /mobile/ex/20242t/goldens/g_entrar01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242t/goldens/g_entrar01.png -------------------------------------------------------------------------------- /mobile/ex/20242t/goldens/g_entrar02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242t/goldens/g_entrar02.png -------------------------------------------------------------------------------- /mata37/js-parsons/ui-extension/README: -------------------------------------------------------------------------------- 1 | NOTE: These are JS and CSS files we use on the site and are here mainly for our convenience. 2 | -------------------------------------------------------------------------------- /mobile/ex/20241/flutter_aulas_widgets.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241/flutter_aulas_widgets.zip -------------------------------------------------------------------------------- /mobile/ex/20241/goldens/g_alo_flutter01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241/goldens/g_alo_flutter01.png -------------------------------------------------------------------------------- /mobile/ex/20241/goldens/g_alo_flutter02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241/goldens/g_alo_flutter02.png -------------------------------------------------------------------------------- /mobile/ex/20241/goldens/g_texto_flat01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241/goldens/g_texto_flat01.png -------------------------------------------------------------------------------- /mobile/ex/20241/goldens/g_texto_flat02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241/goldens/g_texto_flat02.png -------------------------------------------------------------------------------- /mobile/ex/20241/goldens/layout_like01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241/goldens/layout_like01.png -------------------------------------------------------------------------------- /mobile/ex/20241t/flutter_aulas_layout.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241t/flutter_aulas_layout.zip -------------------------------------------------------------------------------- /mobile/ex/20241t/flutter_aulas_widgets.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20241t/flutter_aulas_widgets.zip -------------------------------------------------------------------------------- /mobile/ex/20242/flutter_aulas_widgets.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/flutter_aulas_widgets.zip -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/g_alo_flutter01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/g_alo_flutter01.png -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/g_alo_flutter02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/g_alo_flutter02.png -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/g_texto_flat01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/g_texto_flat01.png -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/g_texto_flat02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/g_texto_flat02.png -------------------------------------------------------------------------------- /mobile/ex/20242/goldens/layout_like01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242/goldens/layout_like01.png -------------------------------------------------------------------------------- /mobile/ex/20242t/flutter_aulas_layout.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242t/flutter_aulas_layout.zip -------------------------------------------------------------------------------- /mobile/ex/20242t/flutter_aulas_widgets.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242t/flutter_aulas_widgets.zip -------------------------------------------------------------------------------- /mobile/ex/20242t/goldens/g_texto_flat01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242t/goldens/g_texto_flat01.png -------------------------------------------------------------------------------- /mobile/ex/20242t/goldens/g_texto_flat02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242t/goldens/g_texto_flat02.png -------------------------------------------------------------------------------- /mobile/ex/20242t/goldens/layout_col01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242t/goldens/layout_col01.png -------------------------------------------------------------------------------- /mobile/ex/20242t/goldens/layout_col02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242t/goldens/layout_col02.png -------------------------------------------------------------------------------- /mobile/ex/20242t/goldens/layout_like01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242t/goldens/layout_like01.png -------------------------------------------------------------------------------- /mata37/matrizes.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: Vetores 4 | --- 5 | 6 |
7 | 8 | # Vetores 9 | 10 | --- 11 | 12 |
-------------------------------------------------------------------------------- /mata37/recursao.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: Vetores 4 | --- 5 | 6 |
7 | 8 | # Vetores 9 | 10 | --- 11 | 12 |
-------------------------------------------------------------------------------- /mobile/ex/20242t/goldens/g_alo_flutter01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242t/goldens/g_alo_flutter01.png -------------------------------------------------------------------------------- /mobile/ex/20242t/goldens/g_alo_flutter02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/mobile/ex/20242t/goldens/g_alo_flutter02.png -------------------------------------------------------------------------------- /lib/jquery-ui/images/ui-icons_444444_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/lib/jquery-ui/images/ui-icons_444444_256x240.png -------------------------------------------------------------------------------- /lib/jquery-ui/images/ui-icons_555555_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/lib/jquery-ui/images/ui-icons_555555_256x240.png -------------------------------------------------------------------------------- /lib/jquery-ui/images/ui-icons_777620_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/lib/jquery-ui/images/ui-icons_777620_256x240.png -------------------------------------------------------------------------------- /lib/jquery-ui/images/ui-icons_777777_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/lib/jquery-ui/images/ui-icons_777777_256x240.png -------------------------------------------------------------------------------- /lib/jquery-ui/images/ui-icons_cc0000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/lib/jquery-ui/images/ui-icons_cc0000_256x240.png -------------------------------------------------------------------------------- /lib/jquery-ui/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/lib/jquery-ui/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /mata37/busca-binaria.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: Vetores 4 | --- 5 | 6 |
7 | 8 | # Vetores 9 | 10 | --- 11 | 12 |
-------------------------------------------------------------------------------- /mata37/sdl/ilpgame.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Biblioteca ILP Game 4 | --- 5 | 6 | Esta página foi movida para -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/web/favicon.png -------------------------------------------------------------------------------- /mata37/desvio.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: Desvio condicional 4 | --- 5 | 6 |
7 | 8 | ## Desvio condicional 9 | 10 | 11 | 12 |
-------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/_init.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ ! -d lib ]; then 4 | ln -s ~/local/git/aulas/_private/mobile/problems/flutter_aulas/lib . 5 | fi 6 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/web/icons/Icon-192.png -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/web/icons/Icon-512.png -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/goldens/g_home01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/test/goldens/g_home01.png -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/goldens/g_home02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/test/goldens/g_home02.png -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/goldens/g_like01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/test/goldens/g_like01.png -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/goldens/g_like02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/test/goldens/g_like02.png -------------------------------------------------------------------------------- /engsoft1.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Engenharia de Software I 4 | --- 5 | 6 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-Bold.ttf -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-Thin.ttf -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/goldens/g_entrar01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/test/goldens/g_entrar01.png -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/goldens/g_entrar02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/test/goldens/g_entrar02.png -------------------------------------------------------------------------------- /mata37/codigo/teste.cc: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | int main () { 4 | int i; 5 | for (i = 10; i >= 2; i--) { 6 | cout << i << endl; 7 | } 8 | return 0; 9 | } -------------------------------------------------------------------------------- /run-server.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bundle exec jekyll s -i 4 | #docker run --rm \ 5 | # --volume="$PWD:/srv/jekyll" -p 4000:4000 \ 6 | # -it jekyll/jekyll:3.8 \ 7 | # jekyll s -i 8 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-Black.ttf -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-Italic.ttf -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-Light.ttf -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-Medium.ttf -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/goldens/layout_col01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/test/goldens/layout_col01.png -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/goldens/layout_col02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/test/goldens/layout_col02.png -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/goldens/layout_like01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/test/goldens/layout_like01.png -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/goldens/g_alo_flutter01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/test/goldens/g_alo_flutter01.png -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/goldens/g_alo_flutter02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/test/goldens/g_alo_flutter02.png -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/goldens/g_texto_flat01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/test/goldens/g_texto_flat01.png -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/goldens/g_texto_flat02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/test/goldens/g_texto_flat02.png -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/web/icons/Icon-maskable-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/web/icons/Icon-maskable-192.png -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/web/icons/Icon-maskable-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/web/icons/Icon-maskable-512.png -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-BlackItalic.ttf -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-BoldItalic.ttf -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-LightItalic.ttf -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-ThinItalic.ttf -------------------------------------------------------------------------------- /ilp/footer.txt: -------------------------------------------------------------------------------- 1 | 2 | .footnote[Introdução à Lógica de Programação / Processamento de Dados

Rodrigo Rocha < rodrigorgs@ufba.br >
Instituto de Computação
Universidade Federal da Bahia] -------------------------------------------------------------------------------- /_includes/icon-github.html: -------------------------------------------------------------------------------- 1 | {% include icon-github.svg %}{{ include.username }} 2 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/assets/fonts/MaterialIcons-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/assets/fonts/MaterialIcons-Regular.otf -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rodrigorgs/aulas/HEAD/_includes/mobile/problems/flutter_aulas/assets/fonts/Roboto-MediumItalic.ttf -------------------------------------------------------------------------------- /_includes/icon-twitter.html: -------------------------------------------------------------------------------- 1 | {{ include.username }} 2 | -------------------------------------------------------------------------------- /mata37/web/gera-dados/Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | sqlite3 (1.3.13) 5 | 6 | PLATFORMS 7 | ruby 8 | 9 | DEPENDENCIES 10 | sqlite3 11 | 12 | BUNDLED WITH 13 | 1.13.6 14 | -------------------------------------------------------------------------------- /mobile/ex/20232/05-flutter-riverpod.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Flutter Riverpod" 4 | features: [code, flutter, uml] 5 | --- 6 | 7 | {% include mobile/problems/flutter_aulas/md/claro_escuro_riverpod.md %} 8 | -------------------------------------------------------------------------------- /mata37/codigo/funcao2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | void imprimeSoma(int a, int b) { 6 | cout << (a + b) << endl; 7 | } 8 | 9 | int main() { 10 | imprimeSoma(2, 3); 11 | imprimeSoma(10, 20); 12 | return 0; 13 | } -------------------------------------------------------------------------------- /mata37/codigo/string.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace std; 5 | 6 | int main() { 7 | string x; 8 | 9 | getline(cin, x); 10 | cout << x << endl; 11 | cout << x.size() << endl; 12 | 13 | return 0; 14 | } 15 | -------------------------------------------------------------------------------- /mobile/ex/20241/widgets.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Flutter stateless" 4 | features: [code, flutter, uml] 5 | --- 6 | 7 | {% include mobile/problems/flutter_aulas/md/navega.md %} 8 | {% include mobile/problems/flutter_aulas/md/on_off.md %} -------------------------------------------------------------------------------- /mobile/ex/20241t/widgets.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Flutter stateless" 4 | features: [code, flutter, uml] 5 | --- 6 | 7 | {% include mobile/problems/flutter_aulas/md/navega.md %} 8 | {% include mobile/problems/flutter_aulas/md/on_off.md %} -------------------------------------------------------------------------------- /mobile/ex/20242t/widgets.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Flutter stateless" 4 | features: [code, flutter, uml] 5 | --- 6 | 7 | {% include mobile/problems/flutter_aulas/md/navega.md %} 8 | {% include mobile/problems/flutter_aulas/md/on_off.md %} -------------------------------------------------------------------------------- /mata37/codigo/char.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | char x; 7 | char y; 8 | 9 | cout << "Digite uma letra maiuscula" << endl; 10 | cin >> x; 11 | y = x + 32; 12 | cout << y << endl; 13 | 14 | return 0; 15 | } -------------------------------------------------------------------------------- /poo/ex-tupy/sombra/sombra.py: -------------------------------------------------------------------------------- 1 | from tupy import * 2 | 3 | class Pessoa(Image): 4 | def __init__(self, sombra): 5 | pass 6 | 7 | class Sombra(Image): 8 | def __init__(self): 9 | pass 10 | 11 | s = Sombra() 12 | p = Pessoa(s) 13 | 14 | run(globals()) -------------------------------------------------------------------------------- /lib/submissao/submissao.css: -------------------------------------------------------------------------------- 1 | #loginbar { 2 | position: fixed; 3 | height: 25px; 4 | top: 0; 5 | width: 100%; 6 | z-index: 100; 7 | background-color: #ccc; 8 | box-shadow: 2px 2px 2px #888; 9 | } 10 | 11 | .answer { 12 | display: none; 13 | } -------------------------------------------------------------------------------- /mata37/codigo/stringmanip.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace std; 5 | 6 | int main() { 7 | string x = "Alo "; 8 | string y = "Mundo"; 9 | string z = x + y + '!'; 10 | 11 | cout << z << endl; 12 | 13 | return 0; 14 | } 15 | -------------------------------------------------------------------------------- /engsoft1/uml-outros.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "UML: Outros diagramas" 4 | --- 5 | 6 | - 7 | - -------------------------------------------------------------------------------- /mata37/linguagens.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: Linguagens de programação 4 | --- 5 | 6 |
7 | 8 | # Linguagens de programação 9 | 10 | --- 11 | 12 | # Linguagem de máquina 13 | 14 | --- 15 | 16 | # Compiladores e interpretadores 17 | 18 | 19 |
-------------------------------------------------------------------------------- /mobile/ex/20242/listview.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Flutter stateless" 4 | features: [code, flutter, uml] 5 | --- 6 | 7 | {% include mobile/flutter_question.md filename="listview01" %} 8 | {% include mobile/flutter_question.md filename="listview03" %} 9 | -------------------------------------------------------------------------------- /poo/ex/20232/05-tupy.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Tupy" 4 | features: [code, python, uml] 5 | --- 6 | 7 | {% include poo/problems/tupy/bolhas01.md %} 8 | {% include poo/problems/tupy/bolhas02.md %} 9 | {% include poo/problems/tupy/bolhas03.md %} 10 | -------------------------------------------------------------------------------- /mata37/codigo/loop-infinito.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | int main() { 4 | int i; 5 | for (i = 1; i <= 20; i++) { 6 | if (i == 13) { 7 | break; 8 | } 9 | cout << i << endl; 10 | } 11 | cout << "Tchau!" << endl; 12 | return 0; 13 | } -------------------------------------------------------------------------------- /mata37/sdl/README.md: -------------------------------------------------------------------------------- 1 | Referência: 2 | 3 | - https://wiki.libsdl.org/CategoryAPI 4 | - https://wiki.libsdl.org/APIByCategory 5 | - https://wiki.libsdl.org/FrontPage 6 | - http://lazyfoo.net/tutorials/SDL/index.php 7 | - http://equipe.nce.ufrj.br/adriano/c/apostila/sdl/Palestra/Sdl2Tutorial.pdf -------------------------------------------------------------------------------- /mobile/ex/20232/03-flutter-stateless.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Flutter stateless" 4 | features: [code, flutter, uml] 5 | --- 6 | 7 | {% include mobile/problems/flutter_aulas/md/lista_produtos.md %} 8 | {% include mobile/problems/flutter_aulas/md/navega.md %} 9 | -------------------------------------------------------------------------------- /shared/shared.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: Sweave 13 | LaTeX: pdfLaTeX 14 | -------------------------------------------------------------------------------- /_layouts/page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 |
5 | 6 |
7 |

{{ page.title }}

8 |
9 | 10 |
11 | {{ content }} 12 |
13 | 14 |
15 | -------------------------------------------------------------------------------- /mata37/codigo/rec-alfabeto.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | void escreveAteZ(char letra) { 6 | if (letra != 'z') { 7 | escreveAteZ(letra + 1); 8 | } 9 | cout << letra; 10 | } 11 | 12 | int main() { 13 | escreveAteZ('a'); 14 | return 0; 15 | } -------------------------------------------------------------------------------- /mata37/codigo/rec-fib.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int fib(int n) { 6 | if (n <= 1) { 7 | return 1; 8 | } else { 9 | return fib(n - 1) + fib(n - 2); 10 | } 11 | } 12 | 13 | int main() { 14 | cout << fib(7) << endl; 15 | 16 | return 0; 17 | } -------------------------------------------------------------------------------- /mobile/ex/20232/04-flutter-stateful.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Flutter stateful" 4 | features: [code, flutter, uml] 5 | --- 6 | 7 | {% include mobile/problems/flutter_aulas/md/on_off.md %} 8 | {% include mobile/problems/flutter_aulas/md/monte_seu_hamburguer.md %} 9 | -------------------------------------------------------------------------------- /aulas.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "path": "." 5 | } 6 | ], 7 | "settings": { 8 | "search.exclude": { 9 | "_site": true 10 | }, 11 | "files.associations": { 12 | "algorithm": "cpp", 13 | "iosfwd": "cpp", 14 | "ostream": "cpp" 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /css/page.scss: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | --- 4 | 5 | @charset "utf-8"; 6 | 7 | @import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz); 8 | 9 | .stdin, .stdout { 10 | vertical-align: top; 11 | width: 49%; 12 | height: 3.8em; 13 | } 14 | 15 | .painel { 16 | display: none; 17 | } -------------------------------------------------------------------------------- /lib/plantuml/plantuml-replacer.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | $('.uml').each(function () { 3 | var text = $(this).text(), 4 | url = 'http://www.plantuml.com/plantuml/img/' + plantumlEncoder.encode(text); 5 | $(this).replaceWith(''); 6 | }); 7 | }); -------------------------------------------------------------------------------- /mata37/codigo/contador.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | int num, contador = 0; 7 | 8 | while ((cin >> num) && num != 0) { 9 | contador++; 10 | } 11 | cout << num << endl; 12 | // cout << contador << endl; 13 | 14 | return 0; 15 | } -------------------------------------------------------------------------------- /poo/ex-tupy/semaforo/semaforo.py: -------------------------------------------------------------------------------- 1 | from tupy import * 2 | 3 | class Semaforo(Image): 4 | def __init__(self): 5 | self.x = 320 6 | self.y = 240 7 | self.file = 'verde.png' 8 | 9 | def avanca(self): 10 | self.file = 'amarelo.png' 11 | 12 | s = Semaforo() 13 | 14 | run(globals()) -------------------------------------------------------------------------------- /mata37/assert.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: Asserts 4 | --- 5 | 6 |
7 | 8 | # assert 9 | 10 | --- 11 | 12 | # Quando usar 13 | 14 | --- 15 | 16 | # Quando não usar 17 | 18 | - Para checar entradas do usuário 19 | 20 | --- 21 | 22 | # Referências 23 | 24 | - Philip Guo 25 | 26 |
-------------------------------------------------------------------------------- /mata37/caracteres.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: Codificação de caracteres 4 | --- 5 | 6 |
7 | 8 | # ASCII 9 | 10 | --- 11 | 12 | # Unicode 13 | 14 | --- 15 | 16 | # UTF-8 17 | 18 | --- 19 | 20 | # Outros 21 | 22 | - UTF-8 23 | - Emoji (outro nível de codificação) 24 | 25 | 26 |
-------------------------------------------------------------------------------- /mata37/codigo/funcao1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | void imprime1a3() { 6 | cout << 1 << endl; 7 | cout << 2 << endl; 8 | cout << 3 << endl; 9 | } 10 | 11 | int main() { 12 | imprime1a3(); 13 | cout << "----" << endl; 14 | imprime1a3(); 15 | 16 | return 0; 17 | } -------------------------------------------------------------------------------- /lib/submissao/checkuser.php: -------------------------------------------------------------------------------- 1 | true, 'msg' => '', 'userinfo' => NULL); 5 | $ret['userinfo'] = array( 6 | 'nome' => $_SESSION["nome"], 7 | 'matricula' => $_SESSION["matricula"]); 8 | 9 | echo json_encode($ret); 10 | ?> -------------------------------------------------------------------------------- /mata37/arquitetura.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: Arquitetura de computadores 4 | --- 5 | 6 |
7 | 8 | # Processador 9 | 10 | --- 11 | 12 | # Memória 13 | 14 | --- 15 | 16 | # Bits e bytes 17 | 18 | --- 19 | 20 | # Periféricos 21 | 22 | --- 23 | 24 | # Entrada e saída 25 | 26 | 27 | 28 |
-------------------------------------------------------------------------------- /mata37/codigo/typedef.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | typedef int NumeroInteiro; 6 | typedef unsigned short int usint; 7 | 8 | NumeroInteiro main() { 9 | NumeroInteiro x; 10 | usint y; 11 | 12 | cin >> x; 13 | cin >> y; 14 | cout << (x + y) << endl; 15 | 16 | return 0; 17 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | _private 2 | _site 3 | .sass-cache 4 | .jekyll-metadata 5 | .DS_Store 6 | prova-pratica.md 7 | prova-pratica-2a.md 8 | *.sublime-workspace 9 | _drafts/ 10 | bower_components/ 11 | 12 | #_private 13 | a.out 14 | analise-quantitativa 15 | .Rproj.user 16 | 17 | lista_emails_*.txt 18 | lista_de_frequencia_*.xls* 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Aulas da área de computação 2 | 3 | Prof. Rodrigo Rocha, UFBA 4 | 5 | Site: 6 | 7 | Material do professor (acesso restrito): 8 | 9 | ```sh 10 | git clone https://gitlab.com/rodrigorgs/aulas-private.git _private 11 | ``` 12 | -------------------------------------------------------------------------------- /demo/prova2.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Prova de exemplo" 4 | features: [code, python] 5 | --- 6 | 7 | 10 | 11 | 14 | 15 | 18 | -------------------------------------------------------------------------------- /poo/download-java.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Download do Java 4 | --- 5 | 6 | Para a disciplina, você precisará ter o Java Development Kit (JDK) versão 11 ou mais recente: 7 | 8 | Recomenda-se o uso do Eclipse IDE 2020-12 ou mais recente: 9 | 10 | 11 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/.gitignore: -------------------------------------------------------------------------------- 1 | lib 2 | 3 | # Flutter/Dart specific 4 | **/build/ 5 | .dart_tool/ 6 | .flutter-plugins 7 | .flutter-plugins-dependencies 8 | .packages 9 | .pub-cache/ 10 | .pub/ 11 | /build_runner/ 12 | .vscode/ 13 | .idea/ 14 | *.iml 15 | *.iws 16 | *.ipr 17 | failures/ 18 | 19 | *.g.dart 20 | -------------------------------------------------------------------------------- /mobile/ex/20232/02-flutter-basico.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Flutter básico" 4 | features: [code, flutter] 5 | --- 6 | 7 | {% include mobile/problems/flutter_aulas/md/aprendendo.md %} 8 | {% include mobile/problems/flutter_aulas/md/cumprimento.md %} 9 | {% include mobile/problems/flutter_aulas/md/contasnack.md %} -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/pessoa__draft.dart: -------------------------------------------------------------------------------- 1 | // Crie uma classe `Pessoa`, com atributos `cpf` e 2 | // `nome`, ambos obrigatórios e do tipo `String`. 3 | // O CPF não pode ser alterado após a criação do objeto. 4 | // 5 | // Sugestão: use `this` na declaração do construtor. 6 | 7 | class Pessoa { 8 | // 9 | } 10 | -------------------------------------------------------------------------------- /mata37/codigo/funcao3.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace std; 5 | 6 | int soma(int a, int b) { 7 | int resultado; 8 | 9 | resultado = a + b; 10 | 11 | return resultado; 12 | } 13 | 14 | int main() { 15 | int a; 16 | 17 | a = soma(2, 3) * 2; 18 | cout << a << endl; 19 | 20 | return 0; 21 | } -------------------------------------------------------------------------------- /mata37/codigo/struct2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | typedef struct { 6 | long matricula; 7 | int anoNascimento; 8 | float nota; 9 | } aluno; 10 | 11 | int main() { 12 | aluno fulano = {123, 1999, 8.5f}; 13 | 14 | cout << "Sua matricula e' " << fulano.matricula << endl; 15 | 16 | return 0; 17 | } -------------------------------------------------------------------------------- /mata37/codigo/triangulo.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | int main() { 4 | int lado; 5 | int x, y; 6 | int largura; 7 | 8 | cin >> lado; 9 | 10 | for (y = 0; y < lado; y++) { 11 | for (x = lado; x > y; x--) { 12 | cout << "#"; 13 | } 14 | cout << endl; 15 | } 16 | return 0; 17 | } 18 | -------------------------------------------------------------------------------- /mata37/codigo/for-aninhado.cc: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | int main() { 4 | int largura, altura; 5 | int x, y; 6 | 7 | cin >> largura >> altura; 8 | 9 | for (y = 0; y < altura; y++) { 10 | for (x = 0; x < largura; x++) { 11 | cout << "#"; 12 | } 13 | cout << endl; 14 | } 15 | return 0; 16 | } -------------------------------------------------------------------------------- /mata37/codigo/vetor.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | float nota[10] = {1, 2, 3, 4, 5, 999}; 7 | int i; 8 | 9 | for (i = 6; i < 10; i++) { 10 | nota[i] = -1; 11 | } 12 | 13 | for (i = 0; i < 10; i++) { 14 | cout << nota[i] << ", "; 15 | } 16 | cout << endl; 17 | 18 | return 0; 19 | } -------------------------------------------------------------------------------- /mobile/ex/20241/dart.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Flutter básico" 4 | features: [code, flutter] 5 | --- 6 | 7 | {% include mobile/flutter_question.md filename="area_retangulo" %} 8 | {% include mobile/flutter_question.md filename="pessoa" %} 9 | {% include mobile/flutter_question.md filename="endereco" %} 10 | 11 | -------------------------------------------------------------------------------- /mobile/ex/20242/dart.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Flutter básico" 4 | features: [code, flutter] 5 | --- 6 | 7 | {% include mobile/flutter_question.md filename="area_retangulo" %} 8 | {% include mobile/flutter_question.md filename="pessoa" %} 9 | {% include mobile/flutter_question.md filename="endereco" %} 10 | 11 | -------------------------------------------------------------------------------- /mobile/ex/20242t/dart.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Flutter básico" 4 | features: [code, flutter] 5 | --- 6 | 7 | {% include mobile/flutter_question.md filename="area_retangulo" %} 8 | {% include mobile/flutter_question.md filename="pessoa" %} 9 | {% include mobile/flutter_question.md filename="endereco" %} 10 | 11 | -------------------------------------------------------------------------------- /engsoft1/uml-sequencia.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "UML: Diagrama de sequência" 4 | --- 5 | 6 | ## Leitura recomendada 7 | 8 | - 9 | - 10 | 11 | -------------------------------------------------------------------------------- /mata37/codigo/struct1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | struct aluno { 6 | long matricula; 7 | int anoNascimento; 8 | float nota; 9 | }; 10 | 11 | int main() { 12 | struct aluno fulano; 13 | 14 | cin >> fulano.matricula; 15 | 16 | cout << "Sua matricula e' " << fulano.matricula << endl; 17 | 18 | return 0; 19 | } -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/area_retangulo__draft.dart: -------------------------------------------------------------------------------- 1 | // Crie uma função, chamada `area_retangulo`, que recebe 2 | // dois parâmetros, `base` e `altura`, e retorna a área 3 | // do retângulo. 4 | 5 | // Exemplos de uso: 6 | void main() { 7 | print(area_retangulo(1.5, 2.0)); // 3.0 8 | print(area_retangulo(10, 2)); // 20.0 9 | } 10 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/tutorial01__draft.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | void main() { 4 | runApp(criaApp()); 5 | } 6 | 7 | criaApp() { 8 | // Altere o código para centralizar 9 | // o texto na tela 10 | return const Text( 11 | 'Oi!', 12 | textDirection: TextDirection.ltr, 13 | ); 14 | } 15 | -------------------------------------------------------------------------------- /css/misc.css: -------------------------------------------------------------------------------- 1 | .resultado { 2 | visibility: hidden; 3 | 4 | color: lightgray; 5 | background-color: darkblue; 6 | padding-left: 9px; 7 | padding-right: 9px; 8 | } 9 | 10 | .btn-resultado { 11 | background: none; 12 | color: inherit; 13 | border: none; 14 | padding: 0; 15 | font: inherit; 16 | cursor: pointer; 17 | outline: inherit; 18 | } -------------------------------------------------------------------------------- /mata37/codigo/for-while.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | int i; 7 | int n = 5; 8 | 9 | for (i = 0; i < n; i++) { 10 | cout << i << endl; 11 | } 12 | 13 | cout << "-----" << endl; 14 | 15 | i = 0; 16 | while (i < n) { 17 | cout << i << endl; 18 | i++; 19 | } 20 | 21 | 22 | return 0; 23 | } -------------------------------------------------------------------------------- /mata37/codigo/matrix.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | int i; 7 | int n = 5; 8 | 9 | for (i = 0; i < n; i++) { 10 | cout << i << endl; 11 | } 12 | 13 | cout << "-----" << endl; 14 | 15 | i = 0; 16 | while (i < n) { 17 | cout << i << endl; 18 | i++; 19 | } 20 | 21 | 22 | return 0; 23 | } -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% include head.html %} 5 | 6 | 7 | 8 | {% include header.html %} 9 | 10 |
11 |
12 | {{ content }} 13 |
14 |
15 | 16 | {% include footer.html %} 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /_layouts/exercises.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% include head.html %} 5 | 6 | 7 | 8 | {% include header.html %} 9 | 10 |
11 |
12 | {{ content }} 13 |
14 |
15 | 16 | {% include footer.html %} 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /lib/submissao/logout.php: -------------------------------------------------------------------------------- 1 | true, 8 | 'msg' => 'Logout realizado.', 9 | 'userinfo' => array( 10 | 'nome' => '', 11 | 'matricula' => ''))); 12 | ?> -------------------------------------------------------------------------------- /engsoft2/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: MATA63 - Engenharia de Software II 4 | --- 5 | 6 | # Avaliações 7 | 8 | 9 | # Conteúdo 10 | 11 | - [Introdução à Engenharia de Software](https://docs.google.com/presentation/d/11uLl9YmJoxsxUA7WvaCurK4A4Fblwg80-IWUH6Y0NlY/edit) 12 | - Modelos de processo de desenvolvimento software 13 | - Engenharia de requisitos de software -------------------------------------------------------------------------------- /mata37/codigo/string-sesamo.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | string nome; 7 | 8 | cout << "Digite seu nome: " << endl; 9 | getline(cin, nome); 10 | 11 | if (nome == "Rodrigo") { 12 | cout << "Bem-vindo!" << endl; 13 | } else { 14 | cout << "Acesso negado!" << endl; 15 | } 16 | 17 | return 0; 18 | } 19 | 20 | 21 | -------------------------------------------------------------------------------- /mata56/biwascheme.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: MATA56 - PLP - 2017.1 4 | --- 5 | 6 | ## Editor de Scheme 7 | 8 | 13 | 14 | Outras ferramentas e referências disponíveis em -------------------------------------------------------------------------------- /experimento-triple/copia.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mkdir grupo1 2> /dev/null 4 | mkdir grupo2 2> /dev/null 5 | 6 | # cp orientacoes.md grupo1/ 7 | cp ex1triple.md grupo1/ex1.md 8 | cat ex2triple.md | sed -e s/triple-page/page/g > grupo1/ex2.md 9 | 10 | # cp orientacoes.md grupo2/ 11 | cat ex1triple.md | sed -e s/triple-page/page/g > grupo2/ex1.md 12 | cp ex2triple.md grupo2/ex2.md -------------------------------------------------------------------------------- /mata37/codigo/buscau.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace std; 5 | 6 | int main() { 7 | string x; 8 | int i; 9 | int ultimoU = -1; 10 | 11 | getline(cin, x); 12 | 13 | for (i = 0; i < x.size(); i++) { 14 | if (x[i] == 'u' || x[i] == 'U') { 15 | ultimoU = i; 16 | } 17 | } 18 | cout << ultimoU << endl; 19 | 20 | return 0; 21 | } 22 | -------------------------------------------------------------------------------- /demo/survey.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Survey" 4 | features: [survey] 5 | --- 6 | 7 |
8 | 9 | Qual é a capital do Brasil? 10 | 11 | - Brasília 12 | - Curitiba 13 | - Rio de Janeiro 14 | - Salvador 15 | 16 | Qual é a capital da Bahia? 17 | 18 | - Salvador 19 | - Soterópolis 20 | - Feira de Santana 21 | - São Francisco 22 | 23 |
24 | -------------------------------------------------------------------------------- /mata37/codigo/random.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace std; 6 | 7 | int main() { 8 | int maximo; 9 | int i; 10 | 11 | srand(time(NULL)); 12 | 13 | cout << "Digite o valor maximo: "; 14 | cin >> maximo; 15 | 16 | for (i = 0; i < 20; i++) { 17 | cout << rand() % maximo + 1 << endl; 18 | } 19 | 20 | return 0; 21 | } 22 | -------------------------------------------------------------------------------- /mobile/ex/20232/01-dart.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Dart básico" 4 | features: [code, dart] 5 | --- 6 | 7 | {% include mobile/problems/flutter_aulas/md/area_retangulo.md %} 8 | {% include mobile/problems/flutter_aulas/md/inserir_tarefa.md %} 9 | {% include mobile/problems/flutter_aulas/md/pessoa.md %} 10 | {% include mobile/problems/flutter_aulas/md/endereco.md %} -------------------------------------------------------------------------------- /mobile/ex/20242/widgets.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Flutter stateless" 4 | features: [code, flutter, uml] 5 | --- 6 | 7 | {% include mobile/flutter_question.md filename="widget_like" %} 8 | {% include mobile/flutter_question.md filename="widget_like2" %} 9 | {% include mobile/problems/flutter_aulas/md/navega.md %} 10 | {% include mobile/problems/flutter_aulas/md/on_off.md %} -------------------------------------------------------------------------------- /mobile/ex/20241t/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Exercícios de Flutter" 4 | features: [] 5 | --- 6 | 7 | - Lista 1: layout - [arquivos](flutter_aulas_layout.zip) e [página de submissão](layout) 8 | - Lista 2: staless e stateful widgets - [arquivos](flutter_aulas_widgets.zip) e [página de submissão](widgets) 9 | 10 | 14 | -------------------------------------------------------------------------------- /mobile/ex/20241/layout.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Flutter básico" 4 | features: [code, flutter] 5 | --- 6 | 7 | {% include mobile/flutter_question.md filename="g_alo_flutter" %} 8 | {% include mobile/flutter_question.md filename="g_texto_flat" %} 9 | {% include mobile/flutter_question.md filename="g_entrar" %} 10 | {% include mobile/flutter_question.md filename="g_like" %} 11 | 12 | -------------------------------------------------------------------------------- /mobile/ex/20241t/layout.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Flutter básico" 4 | features: [code, flutter] 5 | --- 6 | 7 | {% include mobile/flutter_question.md filename="g_alo_flutter" %} 8 | {% include mobile/flutter_question.md filename="g_texto_flat" %} 9 | {% include mobile/flutter_question.md filename="g_entrar" %} 10 | {% include mobile/flutter_question.md filename="g_like" %} 11 | 12 | -------------------------------------------------------------------------------- /mobile/ex/20242t/layout.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Flutter básico" 4 | features: [code, flutter] 5 | --- 6 | 7 | {% include mobile/flutter_question.md filename="g_alo_flutter" %} 8 | {% include mobile/flutter_question.md filename="g_texto_flat" %} 9 | {% include mobile/flutter_question.md filename="g_entrar" %} 10 | {% include mobile/flutter_question.md filename="g_like" %} 11 | 12 | -------------------------------------------------------------------------------- /mata37/codigo/matlab.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | int lab[5][5] = { 7 | {1, 1, 1, 1, 1}, 8 | {1, 0, 1, 0, 1}, 9 | {1, 1, 0, 0, 1}, 10 | {1, 1, 0, 1, 1}, 11 | {1, 1, 1, 1, 1} 12 | }; 13 | int i, j; 14 | 15 | for (i = 0; i < 5; i++) { 16 | for (j = 0; j < 5; j++) { 17 | cout << lab[i][j]; 18 | } 19 | cout << endl; 20 | } 21 | 22 | return 0; 23 | } -------------------------------------------------------------------------------- /mata37/codigo/ordenacao-string2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | string nomes[] = {"Zezinho", "Luizinho", "Carlinhos", "Joaozinho"}; 7 | int pontuacoes[] = {2518, 2020, 150, 5200}; 8 | int n = 4; 9 | int i; 10 | // 5200, 2518, 2020, 150 11 | 12 | for (i = 0; i < n; i++) { 13 | cout << pontuacoes[i] << " " << nomes[i] << endl; 14 | } 15 | 16 | return 0; 17 | } -------------------------------------------------------------------------------- /mata37/codigo/30medias.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | int main() { 4 | float n1, n2, n3, n4, media; 5 | int i; 6 | 7 | for (i = 0; i < 30; i++) { 8 | cin >> n1 >> n2 >> n3 >> n4; 9 | media = (n1 + n2 + n3 + n4) / 4.0; 10 | if (media >= 7.0) 11 | cout << "Aluno aprovado! Parabens!\n"; 12 | else 13 | cout << "Aluno reprovado! Estude mais!\n"; 14 | } 15 | 16 | return 0; 17 | } -------------------------------------------------------------------------------- /mata37/codigo/ordenacao1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | int N = 6; 7 | int vetor[] = {5, 3, 6, 4, 7, 2}; 8 | int i; 9 | 10 | int imenor = 0; 11 | for (i = 0; i < N; i++) { 12 | if (vetor[i] < vetor[imenor]) { 13 | imenor = i; 14 | } 15 | } 16 | 17 | cout << "Valor: " << vetor[imenor] << endl; 18 | cout << "Posicao: " << imenor << endl; 19 | 20 | return 0; 21 | } -------------------------------------------------------------------------------- /mata37/qa.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: Resolução de problemas 4 | --- 5 | 6 |
7 | 8 | # Erros de compilação 9 | 10 | Não sabe inglês? [Google Translate](https://translate.google.com/) 11 | 12 | --- 13 | 14 | # StackOverflow 15 | 16 | - Via Google. 17 | - Em inglês e em português. 18 | 19 | --- 20 | 21 | # Método 22 | 23 | - Isolar o problema 24 | - Buscar na web 25 | - Formular uma pergunta 26 | 27 |
-------------------------------------------------------------------------------- /poo/aula-arquivos.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Arquivos 4 | --- 5 | 6 | 7 | 8 | 9 | 10 | # Classe Files 11 | 12 | Ler arquivo, escrever arquivo 13 | 14 | --- 15 | 16 | # Listando arquivos 17 | 18 | --- 19 | 20 | # Criando diretório 21 | 22 | --- 23 | 24 | # Globbing 25 | 26 | -------------------------------------------------------------------------------- /mata56/ava-ex-lisp.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Exercícios de Scheme" 4 | date: 2017-03-10 16:40:00 -0300 5 | categories: avaliacao 6 | --- 7 | 8 | 9 | 10% da nota da disciplina está reservada para exercícios valendo nota, como apresentado no início do semestre em 10 | 11 | Exercícios: 12 | 13 | 14 | 15 | Prazo: 10/03 -------------------------------------------------------------------------------- /mata37/codigo/acumulador.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | // numero de 1 a 100 6 | 7 | int main() { 8 | int num, menor; 9 | 10 | cin >> num; 11 | menor = num; 12 | while (num != 0) { 13 | if (num < menor) { 14 | menor = num; 15 | cout << "Novo menor: " << menor << endl; 16 | } 17 | cin >> num; 18 | } 19 | 20 | cout << "O menor e' " << menor << endl; 21 | 22 | 23 | return 0; 24 | } -------------------------------------------------------------------------------- /mata37/codigo/string-maiuscula.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | // abacate ==> ABACATE 6 | // AbaCAte ==> ABACATE 7 | // A, bacate ==> A, BACATE 8 | 9 | int main() { 10 | string s; 11 | int i; 12 | 13 | getline(cin, s); 14 | for (i = 0; i < s.size(); i++) { 15 | if (s[i] >= 97 && s[i] <= 122) { 16 | s[i] -= 32; 17 | } 18 | } 19 | 20 | cout << s << endl; 21 | 22 | return 0; 23 | } 24 | 25 | 26 | -------------------------------------------------------------------------------- /mata37/codigo/string-semvogais.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | // casa => cs 6 | // abacate => bct 7 | // oi => 8 | 9 | int main() { 10 | string s; 11 | int i; 12 | 13 | cin >> s; 14 | 15 | for (i = 0; i < s.size(); i++) { 16 | if (s[i] != 'a' && s[i] != 'e' && s[i] != 'i' && s[i] != 'o' && s[i] != 'u') { 17 | cout << s[i]; 18 | } 19 | } 20 | cout << endl; 21 | 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /demo/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Demonstração 4 | features: [] 5 | --- 6 | 7 | Espaço para demonstração das funcionalidades da plataforma de aulas. 8 | 9 | - [Exercícios de código](codigo) 10 | - [Exercícios de código em 3 colunas](3colunas) 11 | - [Exercícios de código com correção automática](correcao-automatica) 12 | - [Provas](prova) 13 | - [Diagramas UML](uml) 14 | - [Slides](slides) 15 | - [Quiz](quiz) 16 | - [Tooltip](tooltip) -------------------------------------------------------------------------------- /demo/tooltip.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Demonstração - Tooltip 4 | features: [] 5 | --- 6 | 7 | ### Código 8 | 9 | ```html 10 | Passe o mouse 11 | aqui 12 | Este é um tooltip 13 | para ver um tooltip. 14 | ``` 15 | 16 | ### Resultado 17 | 18 | Passe o mouse 19 | aqui 20 | Este é um tooltip 21 | para ver um tooltip. -------------------------------------------------------------------------------- /mata37/codigo/30medias-while.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | int main() { 4 | float n1, n2, n3, n4, continua, media; 5 | 6 | do { 7 | cin >> n1 >> n2 >> n3 >> n4; 8 | 9 | media = (n1 + n2 + n3 + n4) / 4.0; 10 | if (media >= 7.0) 11 | cout << "Aluno aprovado! Parabens!\n"; 12 | else 13 | cout << "Aluno reprovado! Estude mais!\n"; 14 | 15 | cin >> continua; 16 | } while (continua == 1); 17 | 18 | return 0; 19 | } -------------------------------------------------------------------------------- /mata37/codigo/8ball.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace std; 6 | 7 | int main() { 8 | int numero; 9 | 10 | srand(time(NULL)); 11 | 12 | numero = rand() % 100; 13 | 14 | if (numero >= 0 && numero <= 49) { 15 | cout << "Sim" << endl; 16 | } else if (numero <= 74) { 17 | cout << "Nao" << endl; 18 | } else if (numero <= 99) { 19 | cout << "Talvez" << endl; 20 | } 21 | 22 | return 0; 23 | } 24 | -------------------------------------------------------------------------------- /mata37/codigo/ordenacao-string.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | string nomes[] = {"maria", "joao", "carlos", "vanessa", "jose"}; 7 | int a = 0, b = 2; // maria, carlos 8 | int i; 9 | string temp; 10 | 11 | temp = nomes[a]; 12 | nomes[a] = nomes[b]; 13 | nomes[b] = temp; 14 | // carlos, joao, maria, vanessa, jose 15 | 16 | for (i = 0; i < 5; i++) { 17 | cout << nomes[i] << endl; 18 | } 19 | 20 | return 0; 21 | } -------------------------------------------------------------------------------- /mobile/ex/20242/layout.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: Flutter básico" 4 | features: [code, flutter] 5 | --- 6 | 7 | {% include mobile/flutter_question.md filename="tutorial01" %} 8 | {% include mobile/flutter_question.md filename="tutorial02" %} 9 | {% include mobile/flutter_question.md filename="tutorial03" %} 10 | {% include mobile/flutter_question.md filename="tutorial04" %} 11 | {% include mobile/flutter_question.md filename="tutorial05" %} 12 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/aprendendo_test.dart: -------------------------------------------------------------------------------- 1 | import '../lib/aprendendo.dart'; 2 | import 'package:flutter_test/flutter_test.dart'; 3 | 4 | void main() { 5 | group('alomundo', () { 6 | testWidgets('Contém texto "Aprendendo Flutter!"', 7 | (WidgetTester tester) async { 8 | await tester.pumpWidget(criaApp()); 9 | final finder = find.text('Aprendendo Flutter!'); 10 | expect(finder, findsOneWidget); 11 | }); 12 | }); 13 | } 14 | -------------------------------------------------------------------------------- /lib/editors/eval-cpp.js: -------------------------------------------------------------------------------- 1 | CppEval = { 2 | eval: (code, input, outputFunc, callback) => { 3 | var config = { 4 | stdio: { 5 | write: function(s) { 6 | outputFunc(s); 7 | } 8 | } 9 | }; 10 | 11 | try { 12 | JSCPP.run(code, input, config); 13 | } catch (error) { 14 | outputFunc("!!!!!\n"); 15 | outputFunc(error); 16 | } 17 | 18 | if (callback != undefined) { 19 | callback(); 20 | } 21 | } 22 | }; -------------------------------------------------------------------------------- /mata37/sdl/old/lesson00.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char *argv[]) { 4 | SDL_Window *window; 5 | SDL_Surface *screenSurface; 6 | 7 | SDL_Init(SDL_INIT_VIDEO); 8 | 9 | window = SDL_CreateWindow("Tutorial", 100, 50, 320, 480, SDL_WINDOW_SHOWN); 10 | screenSurface = SDL_GetWindowSurface(window); 11 | 12 | SDL_Delay(5000); 13 | 14 | SDL_FreeSurface(screenSurface); 15 | SDL_DestroyWindow(window); 16 | SDL_Quit(); 17 | 18 | return 0; 19 | } 20 | -------------------------------------------------------------------------------- /teste-slides.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: My slide 4 | --- 5 | 6 |
7 | 8 | # Código-fonte 9 | 10 | Alô mundo em C++: 11 | 12 | ```c++ 13 | #include 14 | 15 | using namespace std; 16 | 17 | int main() { 18 | cout << "Alo mundo" << endl; 19 | 20 | return 0; 21 | } 22 | ``` 23 | 24 | --- 25 | 26 | # Tabela 27 | 28 | | Número | Dobro | 29 | |--------|-------| 30 | | 1 | 2 | 31 | | 2 | 4 | 32 | | 3 | 6 | 33 | 34 |
-------------------------------------------------------------------------------- /lib/editors/eval-javascript.js: -------------------------------------------------------------------------------- 1 | JavaScriptEval = { 2 | eval: (code, input, outputFunc, callback) => { 3 | let oldLog = console.log; 4 | 5 | console.log = s => { 6 | outputFunc(s + "\n"); 7 | } 8 | 9 | try { 10 | eval(code); 11 | } catch (e) { 12 | outputFunc(e.stack + "\n"); 13 | console.error(e); 14 | } 15 | 16 | console.log = oldLog; 17 | 18 | if (callback != undefined) { 19 | callback(); 20 | } 21 | } 22 | }; -------------------------------------------------------------------------------- /mata37/codigo/string-ordem.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | string nome1, nome2; 7 | 8 | cout << "Digite o nome1: " << endl; 9 | getline(cin, nome1); 10 | cout << "Digite o nome2: " << endl; 11 | getline(cin, nome2); 12 | 13 | if (nome1 < nome2) { 14 | cout << nome1 << endl; 15 | cout << nome2 << endl; 16 | } else { 17 | cout << nome2 << endl; 18 | cout << nome1 << endl; 19 | } 20 | 21 | return 0; 22 | } 23 | 24 | 25 | -------------------------------------------------------------------------------- /mata37/js-parsons/lib/prettify.css: -------------------------------------------------------------------------------- 1 | .str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun{color:#660}.pln{color:#000}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec{color:#606}pre.prettyprint{padding:2px;border:1px solid #888}@media print{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun{color:#440}.pln{color:#000}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}} -------------------------------------------------------------------------------- /mata37/codigo/vetor-strings.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | string linhas[3]; 7 | int i; 8 | 9 | cout << "Digite 3 linhas de texto:" << endl; 10 | 11 | for (i = 0; i < 3; i++) { 12 | getline(cin, linhas[i]); 13 | } 14 | 15 | cout << "Qual linha voce quer recuperar, entre 0 e 2? "; 16 | cin >> i; 17 | 18 | cout << "Linha: " << linhas[i] << endl; 19 | cout << "Primeiro caractere: " << linhas[i][0] << endl; 20 | 21 | return 0; 22 | } -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/alo_flutter_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_aulas/alomundo.dart'; 2 | import 'package:flutter_test/flutter_test.dart'; 3 | 4 | void main() { 5 | group('alomundo', () { 6 | testWidgets('Contém texto "Aprendendo Flutter!"', 7 | (WidgetTester tester) async { 8 | await tester.pumpWidget(criaApp()); 9 | final finder = find.text('Aprendendo Flutter!'); 10 | expect(finder, findsOneWidget); 11 | }); 12 | }); 13 | } 14 | -------------------------------------------------------------------------------- /mata37/codigo/rec-fatorial.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int fatorial(int n) { 6 | if (n > 0) { 7 | return n * fatorial(n - 1); 8 | } else { 9 | return 1; 10 | } 11 | } 12 | 13 | int fatorial2(int n) { 14 | int i, fat = 1; 15 | for (i = 1; i <= n; i++) { 16 | fat *= i; 17 | } 18 | return fat; 19 | } 20 | 21 | int main() { 22 | int n; 23 | cin >> n; 24 | cout << fatorial(n) << endl; 25 | cout << fatorial2(n) << endl; 26 | return 0; 27 | } -------------------------------------------------------------------------------- /mata37/codigo/matlab2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | int lab[5][5] = { 7 | {1, 1, 1, 1, 1}, 8 | {1, 0, 1, 0, 1}, 9 | {1, 1, 0, 0, 1}, 10 | {1, 1, 0, 1, 1}, 11 | {1, 1, 1, 1, 1} 12 | }; 13 | int i, j; 14 | 15 | for (i = 0; i < 5; i++) { 16 | for (j = 0; j < 5; j++) { 17 | if (lab[i][j] == 0) { 18 | cout << " "; 19 | } else { 20 | cout << "#"; 21 | } 22 | 23 | } 24 | cout << endl; 25 | } 26 | 27 | return 0; 28 | } -------------------------------------------------------------------------------- /mata37/codigo/ordenacao2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | int N = 6; 7 | // 0 1 2 3 4 5 8 | int vetor[] = {5, 3, 6, 4, 7, 2}; 9 | int i, j; 10 | int temp; 11 | 12 | cout << "Informe duas posicoes para trocar: "; 13 | cin >> i >> j; 14 | 15 | temp = vetor[i]; 16 | vetor[i] = vetor[j]; 17 | vetor[j] = temp; 18 | 19 | for (i = 0; i < N; i++) { 20 | cout << vetor[i] << " "; 21 | } 22 | cout << endl; 23 | 24 | return 0; 25 | } -------------------------------------------------------------------------------- /mata37/codigo/ordenacao3.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | int N = 6; 7 | // 0 1 2 3 4 5 8 | int vetor[] = {5, 3, 6, 4, 7, 2}; 9 | int i, j; 10 | int temp; 11 | int imenor; 12 | 13 | for (i = 0; i < N; i++) { 14 | imenor = índice do menor elemento de i até N - 1; 15 | trocar vetor[imenor] com vetor[i]; 16 | // ao final da iteração i, o menor elemento 17 | // de i a N - 1 ficará na posição i 18 | } 19 | 20 | return 0; 21 | } -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/tutorial02__draft.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | void main() { 4 | runApp(criaApp()); 5 | } 6 | 7 | criaApp() { 8 | // Altere o código para que o texto 9 | // esteja centralizado e com um retângulo 10 | // verde de fundo, ao redor do texto, 11 | // com uma margem de 16 pixels. 12 | // 13 | // A cor deve ser Colors.green 14 | return const Text( 15 | 'Oi!', 16 | textDirection: TextDirection.ltr, 17 | ); 18 | } 19 | -------------------------------------------------------------------------------- /mata37/codigo/soma-vetores-menos-loops.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // Escreva um programa que lê dois vetores de inteiros 4 | // de tamanho N e escreve a soma dos dois vetores. 5 | 6 | using namespace std; 7 | 8 | int main() { 9 | int n,i,x; 10 | cin >> n; 11 | int vetor[n]; 12 | 13 | for (i=0 ; i < n; i++) { 14 | cin >> vetor[i]; 15 | } 16 | for (i=0 ; i < n; i++) { 17 | cin >> x; 18 | cout << vetor[i] + x << " "; 19 | } 20 | 21 | cout << endl; 22 | 23 | return 0; 24 | } 25 | 26 | -------------------------------------------------------------------------------- /mata37/multiplos-arquivos.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: Compilação de múltiplos arquivos 4 | --- 5 | 6 |
7 | 8 | # Compilação e ligação 9 | 10 | ```bash 11 | g++ -c arquivo1.cc 12 | g++ -c arquivo2.cc 13 | g++ -o executavel arquivo1.o arquivo2.o 14 | ``` 15 | 16 | # Desenvolvimento 17 | 18 | - Para cada `.cc` (fonte), um `.h` (cabeçalho) 19 | - Usar padrão 20 | 21 | ```c++ 22 | #ifndef ARQUIVO_H 23 | #define ARQUIVO_H 24 | 25 | // código 26 | 27 | #endif 28 | ``` 29 | 30 | 31 |
-------------------------------------------------------------------------------- /engsoft1/arquitetura.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Arquitetura de software 4 | --- 5 | 6 | ## Leitura recomendada 7 | 8 | - [Capítulo 7](https://docs.google.com/document/d/e/2PACX-1vShBhqGk0ckdtt8wGs5fuVOlAsCnidOvG6tGs0ZrhJCRnGPY1WqNDsy54pW-kF-gqJxEqrug24FhRDj/pub) do livro [Engenharia de Software Moderna](https://engsoftmoderna.info/) (prof. Marco Tulio Valente, UFMG) 9 | - Slides sobre [arquitetura de software](https://docs.google.com/presentation/d/1SK3RkwW63aqDsbzZh6nwHimi3JQ5H67nT1SsoKuEqq8/edit) 10 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/widget_like__draft.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | void main() { 4 | runApp( 5 | MaterialApp( 6 | home: Scaffold( 7 | body: Center( 8 | child: Placeholder(), // troque por BotaoLike(), 9 | ), 10 | ), 11 | ), 12 | ); 13 | } 14 | 15 | // Crie o widget BotaoLike, que é um ElevatedButton que contém 16 | // um ícone e um texto. O ícone é um coração preenchido 17 | // e o texto é "Like". 18 | // ... 19 | -------------------------------------------------------------------------------- /mobile/seminarios.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Seminários 4 | --- 5 | 6 | - Equipes até 4 pessoas 7 | - Duração de até 30 minutos 8 | - Deve explicar os principais conceitos relacionados ao tema e mostrar, com código-fonte, como construir um app simples relacionado ao tema 9 | - O foco deve ser na demonstração 10 | 11 | ## Temas sugeridos 12 | 13 | - React Native 14 | - Nativescript 15 | - Xamarin 16 | - Firebase 17 | - Bluetooth 18 | - Geolocalização 19 | - Kotlin 20 | - Câmera 21 | - Serviços em background -------------------------------------------------------------------------------- /empacota.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | INPUT=$1 4 | DEST=$2 5 | 6 | if [ -z "$DEST" ]; then 7 | echo "Parametros: arquivo html de entrada, pasta de destino" 8 | exit 1 9 | fi 10 | 11 | mkdir $DEST 12 | cp -r _site $DEST/aulas 13 | cp _PROCEDIMENTO_PROVA.md $DEST/ 14 | oldpwd=`pwd` 15 | 16 | cd $DEST/aulas 17 | rm lib/submissao/list.php lib/submissao/load.php 18 | find . -name '*.html' | xargs rm 19 | cp $oldpwd/$1 index.html 20 | cd $oldpwd 21 | 22 | echo 'sudo php -S 0.0.0.0:80 -t .' > $DEST/run.sh 23 | chmod a+x $DEST/run.sh 24 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/tutorial03__draft.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | void main() { 4 | runApp(criaApp()); 5 | } 6 | 7 | criaApp() { 8 | // Altere o código para exibir dois textos: 9 | // - 'Cabeçalho da tela' no topo 10 | // - 'Rodapé' na parte inferior 11 | // 12 | // Os textos devem estar centralizados horizontalmente 13 | return MaterialApp( 14 | home: Scaffold( 15 | body: Center( 16 | child: Placeholder(), 17 | ), 18 | ), 19 | ); 20 | } 21 | -------------------------------------------------------------------------------- /demo/python.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: Editor Python 4 | features: [code,python] 5 | --- 6 | 7 | ## Editor Python 8 | 9 | Digite o código-fonte do seu programa em Python na coluna do meio. 10 | 11 | Ao clicar no botão `Rodar`, você pode ver a saída do seu programa na caixa `Saída`. 12 | 13 | Se seu programa lê dados do teclado (usando `input()`), digite os dados na caixa `Entrada` **antes** de clicar em `Rodar`. 14 | 15 | 19 | -------------------------------------------------------------------------------- /mata37/codigo/string-yesno.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | 6 | int main() { 7 | string yesno; 8 | int i; 9 | 10 | cout << "Deseja continuar? (Yes/No)" << endl; 11 | 12 | cin >> yesno; 13 | 14 | /* transforma yesno em maiúsculas */ 15 | for (i = 0; i < yesno.size(); i++) { 16 | if (yesno[i] >= 97 && yesno[i] <= 122) { 17 | yesno[i] -= 32; 18 | } 19 | } 20 | 21 | if (yesno == "YES") { 22 | cout << "Continuando..." << endl; 23 | } else { 24 | cout << "Fim!" << endl; 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/md/alo_flutter.md: -------------------------------------------------------------------------------- 1 | ## Alo mundo 2 | 3 | Defina uma função `criaApp()`, que retorna um widget do tipo `Text` com a mensagem "Aprendendo Flutter!". Atenção a maiúsculas, minúsculas e pontuação. 4 | 5 | 12 | 13 |
14 | {% include mobile/problems/flutter_aulas/test/aprendendo_test.dart %} 15 |
-------------------------------------------------------------------------------- /mobile/ex/20242/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Exercícios de Flutter" 4 | features: [] 5 | --- 6 | 7 | - Lista 1: layout - [página de submissão](layout) 8 | - Lista 2: widgets - [página de submissão](widgets) 9 | - Lista 3: listview assíncrono - [página de submissão](listview) 10 | 11 | Ver também: 12 | 13 | - [Orientações sobre os exercícios](https://docs.google.com/document/d/1uvJav_YruWZzYERr16hyBpeR3WctfFqIWBESKRk1cfQ/edit) 14 | - [Resultado da correção dos exercícios](https://ezsubmission.app.ic.ufba.br/app/classrooms/12/submissions) 15 | -------------------------------------------------------------------------------- /mata37/codigo/busca-linear.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | int n; 7 | cin >> n; 8 | int vetor[n]; 9 | int i; 10 | int buscado; 11 | bool achou = false; 12 | 13 | cin >> buscado; 14 | 15 | for (i = 0; i < n; i++) { 16 | cin >> vetor[i]; 17 | } 18 | 19 | ///////// 20 | 21 | for (i = 0; i < n; i++) { 22 | if (vetor[i] == buscado) { 23 | cout << i << endl; 24 | achou = true; 25 | break; 26 | } 27 | } 28 | 29 | if (!achou) { 30 | cout << -1 << endl; 31 | } 32 | 33 | return 0; 34 | } -------------------------------------------------------------------------------- /mata37/codigo/soma-vetores.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // Escreva um programa que lê dois vetores de inteiros 4 | // de tamanho N e escreve a soma dos dois vetores. 5 | 6 | using namespace std; 7 | 8 | int main() { 9 | int n,i; 10 | cin >> n; 11 | int vetor[n]; 12 | int vetor2[n]; 13 | for (i=0 ; i < n; i++) { 14 | cin >> vetor[i]; 15 | } 16 | for (i=0 ; i < n; i++) { 17 | cin >> vetor2[i]; 18 | } 19 | for (i=0 ; i < n; i++) { 20 | cout << vetor[i] + vetor2[i] << " "; 21 | } 22 | 23 | cout << endl; 24 | 25 | return 0; 26 | } 27 | 28 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/area_retangulo_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_aulas/area_retangulo.dart'; 2 | import 'package:test/test.dart'; 3 | 4 | void main() { 5 | // unit test dizAlo 6 | test('retangulo', () { 7 | expect(area_retangulo(1.5, 2), 3.0); 8 | expect(area_retangulo(10, 2), 20.0); 9 | expect(area_retangulo(0, 2), 0.0); 10 | expect(area_retangulo(1, 0), 0.0); 11 | expect(area_retangulo(0, 0), 0.0); 12 | expect(area_retangulo(1, 1), 1.0); 13 | expect(area_retangulo(1.5, 3.0), 4.5); 14 | }); 15 | } 16 | -------------------------------------------------------------------------------- /mobile/ex/20242t/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Exercícios de Flutter" 4 | features: [] 5 | --- 6 | 7 | - Lista 1: layout - [arquivos](flutter_aulas_layout.zip) e [página de submissão](layout) 8 | - Lista 2: widgets - [arquivos](flutter_aulas_widgets.zip) e [página de submissão](widgets) 9 | 10 | Ver também: 11 | 12 | - [Orientações sobre os exercícios](https://docs.google.com/document/d/1uvJav_YruWZzYERr16hyBpeR3WctfFqIWBESKRk1cfQ/edit) 13 | - [Resultado da correção dos exercícios](https://ezsubmission.app.ic.ufba.br/app/classrooms/10/submissions) 14 | -------------------------------------------------------------------------------- /mata37/codigo/batalha-naval-1dim.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | /* Exemplo de entrada: 6 | 2 7 | 1 3 8 | 5 2 9 | 10 | Saída: 01110110 11 | */ 12 | 13 | int main() { 14 | int compr = 8; 15 | int tab[compr], n, x, t, i; 16 | cin >> n; 17 | for(i = 0; i < compr; i++) { 18 | tab[i] = 0; 19 | } 20 | for (i = 0; i < n; i++) { 21 | cin >> x >> t; 22 | for (int j = 0; j < t; j++){ 23 | tab[x + j] = 1; 24 | } 25 | 26 | } 27 | for(i = 0; i < compr; i++){ 28 | cout< 2 | 3 | using namespace std; 4 | 5 | // somatorio(5) retorna 1+2+3+4+5, ou seja, 15 6 | int somatorio(int n) { 7 | int i; 8 | int s = 0; 9 | 10 | for (i = 1; i <= n; i++) { 11 | s += i; 12 | } 13 | 14 | return s; 15 | } 16 | 17 | int quadrado(int n) { 18 | return n * n; 19 | } 20 | 21 | int main() { 22 | int n; 23 | 24 | cout << "Digite um numero: "; 25 | cin >> n; 26 | cout << "1 + ... + " << n << " = " << somatorio(n) << endl; 27 | 28 | cout << quadrado(somatorio(n)) << endl; 29 | 30 | return 0; 31 | } -------------------------------------------------------------------------------- /mobile/instance-state.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Exercícios de Android 4 | --- 5 | 6 | 7 | ```java 8 | @Override 9 | protected void onSaveInstanceState(Bundle outState) { 10 | super.onSaveInstanceState(outState); 11 | 12 | outState.putString("chave", "valor que vai ser salvo"); 13 | } 14 | 15 | @Override 16 | protected void onRestoreInstanceState(Bundle savedInstanceState) { 17 | super.onRestoreInstanceState(savedInstanceState); 18 | 19 | String valorSalvo = savedInstanceState.getString("chave"); 20 | Log.d("", valorSalvo); 21 | } 22 | ``` -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/md/pessoa.md: -------------------------------------------------------------------------------- 1 | ## Pessoa 2 | 3 | Crie uma classe `Pessoa`, com atributos `cpf` e `nome`, ambos obrigatórios e do tipo `String`. O CPF não pode ser alterado após a criação do objeto. 4 | 5 | Sugestão: use `this` na declaração do construtor. 6 | 7 | 14 | 15 |
16 | {% include mobile/problems/flutter_aulas/test/pessoa_test.dart %} 17 |
-------------------------------------------------------------------------------- /mata37/codigo/soma-vetores-menos-memoria.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // Escreva um programa que lê dois vetores de inteiros 4 | // de tamanho N e escreve a soma dos dois vetores. 5 | 6 | using namespace std; 7 | 8 | int main() { 9 | int n,i,x; 10 | cin >> n; 11 | int vetor[n]; 12 | 13 | for (i=0 ; i < n; i++) { 14 | cin >> vetor[i]; 15 | } 16 | for (i=0 ; i < n; i++) { 17 | cin >> x; 18 | vetor[i] = vetor[i] + x; 19 | } 20 | for (i=0 ; i < n; i++) { 21 | cout << vetor[i] << " "; 22 | } 23 | 24 | cout << endl; 25 | 26 | return 0; 27 | } 28 | 29 | -------------------------------------------------------------------------------- /_includes/codigo-de-conduta.md: -------------------------------------------------------------------------------- 1 | ## Código de conduta 2 | 3 | Eu, 4 | 5 | 7 | 8 | declaro que, durante o horário de aplicação da prova: 9 | 10 | - Todas as minhas respostas serão fruto de meu próprio trabalho. 11 | - Não consultarei nenhum material externo a esta prova, seja ele online ou offline. 12 | - Não consultarei colegas sobre as questões. 13 | - Não disponibilizarei material para os colegas. 14 | - Não realizarei quaisquer outras atividades desonestas para me beneficiar ou prejudicar outros. 15 | 16 | 17 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/g_texto_flat__draft.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | void main() { 4 | runApp(buildApp()); 5 | } 6 | 7 | Widget buildApp() { 8 | // Construa o app segundo a tela de referência. 9 | // Para isso, substitua o Placeholder pelos 10 | // widgets adequados. 11 | // 12 | // O espaçamento ao redor do texto é de 16 pixels. 13 | return MaterialApp( 14 | debugShowCheckedModeBanner: false, 15 | home: Scaffold( 16 | body: Center( 17 | child: Placeholder(), 18 | ), 19 | ), 20 | ); 21 | } -------------------------------------------------------------------------------- /about.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: About 4 | permalink: /about/ 5 | --- 6 | 7 | This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](http://jekyllrb.com/) 8 | 9 | You can find the source code for the Jekyll new theme at: 10 | {% include icon-github.html username="jekyll" %} / 11 | [minima](https://github.com/jekyll/minima) 12 | 13 | You can find the source code for Jekyll at 14 | {% include icon-github.html username="jekyll" %} / 15 | [jekyll](https://github.com/jekyll/jekyll) 16 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/md/aprendendo.md: -------------------------------------------------------------------------------- 1 | ## Alo mundo 2 | 3 | Defina uma função `criaApp()`, que retorna um widget do tipo `Text` com a mensagem "Aprendendo Flutter!". Atenção a maiúsculas, minúsculas e pontuação. 4 | 5 | 13 | 14 |
15 | {% include mobile/problems/flutter_aulas/test/aprendendo_test.dart %} 16 |
-------------------------------------------------------------------------------- /poo/aula-oo-conceitos.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: "Java: orientação a objetos" 4 | --- 5 | 6 |
7 | 8 | # Estilo procedural 9 | 10 | - Um programa é um conjunto de funções 11 | - Funções recebem dados e retornam dados 12 | - Funções podem ler e alterar variáveis globais 13 | - Funções chamam outras funções 14 | 15 | --- 16 | 17 | # Estilo OO 18 | 19 | - Um programa é um conjunto de objetos que se comunicam através de mensagens 20 | - Objetos respondem a mensagens alterando seu estado interno e enviando mensagens para outros objetos 21 | 22 | --- 23 | 24 | 25 | 26 | 27 |
-------------------------------------------------------------------------------- /poo/tupy-atividades.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Python e objetos 4 | features: [code, python, quiz, uml] 5 | --- 6 | 7 | # Introdução 8 | 9 | - Criar objeto da classe `Star` através do editor 10 | - - Criar objeto da classe `Drone` através do editor 11 | - Ver classe no editor (tipo dos atributos e objetos) 12 | - Criar outros objetos da mesma classe 13 | - Através do console, criar uma variável referenciando um objeto existente 14 | - Mostrar como modificar uma variável "modifica a outra" 15 | - Mostrar id() 16 | - Mostrar como dois objetos podem ser idênticos mas não serem o mesmo objeto -------------------------------------------------------------------------------- /mata37/codigo/par-ou-impar.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | int n, i; 7 | 8 | cin >> n; 9 | 10 | int numeros[n]; 11 | 12 | for (i = 0; i < n; i++) { 13 | cin >> numeros[i]; 14 | } 15 | 16 | // imprime posições ímpares 17 | for (i = 0; i < n; i += 2) { 18 | if (i > 0) { 19 | cout << " "; 20 | } 21 | cout << numeros[i]; 22 | } 23 | cout << endl; 24 | 25 | // imprime posições pares 26 | for (i = 1; i < n; i += 2) { 27 | if (i > 1) { 28 | cout << " "; 29 | } 30 | cout << numeros[i]; 31 | } 32 | cout << endl; 33 | 34 | return 0; 35 | } -------------------------------------------------------------------------------- /mobile/exercicios-android-correcao.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Exercícios de Android 4 | --- 5 | 6 | 7 | ```bash 8 | # Considerar cada diretório iniciado por ex1 9 | for dir in ex1-*; do 10 | cd $dir 11 | # Rodar os testes 12 | # Extrair número de testes que falharam e gravar no arquivo ../failures.txt 13 | ./gradlew connectedAndroidTest --stacktrace && \ 14 | cat $(find . -name \*CorrecaoTest.html) | grep 'id="failures"' -A1 | ruby -e 'print $1 if STDIN.read =~ /([0-9]+)/' | ruby -e "puts \"$(basename $(pwd))\\t#{STDIN.read}\"" | tee -a ../failures.txt 15 | cd .. 16 | done 17 | ``` -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/endereco_test.dart: -------------------------------------------------------------------------------- 1 | // BEGIN: 0f3b4c9fjw3d 2 | import 'package:flutter_aulas/endereco.dart'; 3 | import 'package:test/test.dart'; 4 | 5 | void main() { 6 | group('criaEtiqueta', () { 7 | test('com endereço', () { 8 | final cliente = Cliente('João', Endereco('12345-678', 'São Paulo')); 9 | expect(criaEtiqueta(cliente), 'João - CEP 12345-678'); 10 | }); 11 | 12 | test('sem endereço', () { 13 | final cliente = Cliente('Maria'); 14 | expect(criaEtiqueta(cliente), 'Maria - CEP não informado'); 15 | }); 16 | }); 17 | } 18 | // END: 0f3b4c9fjw3d -------------------------------------------------------------------------------- /lib/submissao/home.php: -------------------------------------------------------------------------------- 1 | prepare("select distinct apostila from resposta order by apostila"); 8 | $sql->execute(); 9 | $result = $sql->get_result(); 10 | 11 | echo "

Respostas

"; 12 | 13 | echo ""; 14 | while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){ 15 | $apostila = $row['apostila']; 16 | echo ""; 17 | } 18 | echo "
".$apostila."
"; 19 | ?> 20 | -------------------------------------------------------------------------------- /mata37/codigo/ordenacao-bolha.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | int vetor[] = {29, 10, 14, 37, 13}; 7 | int n = 5; 8 | int i; 9 | int temp; 10 | bool teveTroca = true; 11 | 12 | // ordem crescente 13 | while (teveTroca) { 14 | teveTroca = false; 15 | for (i = 0; i < n - 1; i++) { 16 | if (vetor[i] > vetor[i + 1]) { 17 | temp = vetor[i]; 18 | vetor[i] = vetor[i + 1]; 19 | vetor[i + 1] = temp; 20 | teveTroca = true; 21 | } 22 | } 23 | } 24 | 25 | for (i = 0; i < n; i++) { 26 | cout << vetor[i] << " "; 27 | } 28 | cout << endl; 29 | 30 | return 0; 31 | } -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/g_entrar__draft.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | void main() { 4 | runApp(buildApp()); 5 | } 6 | 7 | Widget buildApp() { 8 | // Construa o app segundo a tela de referência. 9 | // Para isso, substitua o Placeholder pelos 10 | // widgets adequados. 11 | // 12 | // - O espaçamento ao redor do texto é de 16 pixels. 13 | // - A distância entre os retângulos é de 16 pixels. 14 | return MaterialApp( 15 | debugShowCheckedModeBanner: false, 16 | home: Scaffold( 17 | body: Center( 18 | child: Placeholder(), 19 | ), 20 | ), 21 | ); 22 | } -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/md/_alodart.md: -------------------------------------------------------------------------------- 1 | ## Alo Dart 2 | 3 | 8 | 9 |
10 | import 'package:flutter_aulas/alodart.dart'; 11 | import 'package:test/test.dart'; 12 | 13 | void main() { 14 | // unit test dizAlo 15 | test('dizAlo', () { 16 | expect(dizAlo('João', 'Olá'), 'Olá, João!'); 17 | expect(dizAlo('Maria'), 'Alô, Maria!'); 18 | expect(dizAlo('Fulano', 'Oi'), 'Oi, Fulano!'); 19 | }); 20 | } 21 |
-------------------------------------------------------------------------------- /lib/submissao/load.php: -------------------------------------------------------------------------------- 1 | false, 9 | 'msg' => 'Erro de banco de dados: ' . mysqli_connect_error()))); 10 | } 11 | mysqli_query($conn, "SET NAMES 'utf8'"); 12 | 13 | $sql = $conn->prepare("SELECT answers FROM resposta WHERE id = ?;"); 14 | 15 | $sql->bind_param("i", $id); 16 | $sql->execute(); 17 | $result = $sql->get_result(); 18 | 19 | $data = mysqli_fetch_all($result, MYSQLI_ASSOC)[0]["answers"]; 20 | 21 | echo $data; 22 | 23 | ?> 24 | -------------------------------------------------------------------------------- /poo/aula-strings.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Strings 4 | --- 5 | 6 | 7 | 8 | # format 9 | 10 | --- 11 | 12 | # Conversão para números 13 | 14 | --- 15 | 16 | # substring 17 | 18 | --- 19 | 20 | # trim 21 | 22 | --- 23 | 24 | # toLowerCase, toUpperCase 25 | 26 | --- 27 | 28 | # equalsIgnoreCase 29 | 30 | --- 31 | 32 | # indexOf, lastIndexOf 33 | 34 | --- 35 | 36 | # split 37 | 38 | --- 39 | 40 | # replaceAll 41 | 42 | --- 43 | 44 | # Expressões regulares - introdução 45 | 46 | matches 47 | 48 | --- 49 | 50 | # StringBuilder 51 | 52 | --- 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/README.md: -------------------------------------------------------------------------------- 1 | # flutter_aulas 2 | 3 | A new Flutter project. 4 | 5 | ## Getting Started 6 | 7 | This project is a starting point for a Flutter application. 8 | 9 | A few resources to get you started if this is your first Flutter project: 10 | 11 | - [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) 12 | - [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) 13 | 14 | For help getting started with Flutter development, view the 15 | [online documentation](https://docs.flutter.dev/), which offers tutorials, 16 | samples, guidance on mobile development, and a full API reference. 17 | -------------------------------------------------------------------------------- /mata37/codigo/maior-que-media.cpp: -------------------------------------------------------------------------------- 1 | // 2. Dados 20 valores reais, faça um programa que determine quantos desses valores são maiores que a média dos valores. 2 | 3 | #include 4 | 5 | using namespace std; 6 | 7 | int main() { 8 | float valores[20]; 9 | float soma = 0; 10 | float media; 11 | int i; 12 | int contador = 0; 13 | 14 | for (i = 0; i < 20; i++) { 15 | cin >> valores[i]; 16 | soma += valores[i]; 17 | } 18 | 19 | media = soma / 20; 20 | 21 | for (i = 0; i < 20; i++) { 22 | if (valores[i] > media) { 23 | contador++; 24 | cout << valores[i] << endl; 25 | } 26 | } 27 | 28 | cout << contador << endl; 29 | 30 | return 0; 31 | } -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/tutorial04__draft.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | void main() { 4 | runApp(criaApp()); 5 | } 6 | 7 | criaApp() { 8 | // Modifique o código para reconstruir a imagem 9 | // de referência, com os textos 'Entrar' e 10 | // 'Cadastrar-se' 11 | // 12 | // Informações: 13 | // - As cores dos retângulos são Colors.amber e 14 | // Colors.cyan 15 | // - Os retângulos possuem um padding de 16 pixels 16 | // - Os textos estão centralizados 17 | return MaterialApp( 18 | home: Scaffold( 19 | body: Center( 20 | child: Placeholder(), 21 | ), 22 | ), 23 | ); 24 | } 25 | -------------------------------------------------------------------------------- /mobile/exercicios-android.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Exercícios de Android 4 | --- 5 | 6 | ## Avaliação 7 | 8 | A avaliação será realizada por meio de testes automatizados. Os casos de teste estão implementados na classe `CorrecaoTest`. Para obter a nota máxima, seu código deve passar em todos os casos de teste. 9 | 10 | Para executar os casos de teste através do Android Studio, clique com o botão direito sobre a classe `CorrecaoTest` e escolha a opção `Run 'CorrecaoTest'`. Aguarde o final da execução. 11 | 12 | Garanta que todos os componentes de interface gráfica estejam completamente visíveis na tela do celular em diferentes orientações e tamanhos de tela. 13 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/widget_like2__draft.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | void main() { 4 | runApp( 5 | MaterialApp( 6 | home: Scaffold( 7 | body: Center( 8 | child: Placeholder(), // troque por BotaoLike(), 9 | ), 10 | ), 11 | ), 12 | ); 13 | } 14 | 15 | // Crie o widget BotaoLike, que é um ElevatedButton que contém 16 | // um ícone e um texto. O ícone é um coração preenchido. 17 | // Opcionalmente BotaoLike pode receber um parâmetro nomeado, 18 | // chamado texto, que é o texto a ser exibido no botão. 19 | // Se o parâmetro não for fornecido, o texto padrão é "Like". 20 | // ... 21 | -------------------------------------------------------------------------------- /mata37/codigo/sinalizador.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | // Determina se o usuário digitou algum 6 | // número par. 7 | // A entrada é finalizada pelo número 0. 8 | int main() { 9 | int num; 10 | bool digitouNumeroPar = false; 11 | int primeiroNumeroPar; 12 | 13 | while ((cin >> num) && num != 0) { 14 | if (!digitouNumeroPar && num % 2 == 0) { 15 | digitouNumeroPar = true; 16 | primeiroNumeroPar = num; 17 | } 18 | } 19 | 20 | if (digitouNumeroPar) { 21 | cout << "Digitou numero par: " << primeiroNumeroPar << endl; 22 | } else { 23 | cout << "Nao digitou numero par." << endl; 24 | } 25 | 26 | return 0; 27 | } -------------------------------------------------------------------------------- /engsoft1/testes.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Introdução à Engenharia de Software 4 | --- 5 | 6 | ## Leitura recomendada 7 | 8 | - Livro [Engenharia de Software Moderna](https://engsoftmoderna.info/) (prof. Marco Tulio Valente, UFMG), capítulo 8 (Testes): [slides](https://docs.google.com/presentation/d/1qAJEO71tjZeoeKynuwj1GSl6mCGKobA7q0xW78ZPehk/edit#slide=id.g4ffa9ac22f_0_0) e [texto](https://docs.google.com/document/d/e/2PACX-1vTWYlvcKSO_Q7M7YNf7Q-pvAF8Xc7HDuKJJ_7eoDYEqP9nXxvMWNMaSoWQzLqiT5lyRjLxIimh1kGAb/pub) 9 | 10 | ## Tópicos estudados 11 | 12 | - Introdução 13 | - Testes de unidade 14 | - Princípios FIRST 15 | - Cobertura de testes 16 | - Visão geral sobre mocking 17 | -------------------------------------------------------------------------------- /mata56/aula07-conceitos.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Conceitos de linguagens de programação" 4 | date: 2017-01-18 16:40:00 -0300 5 | categories: aula 6 | --- 7 | 8 | ## Slides 9 | 10 | 11 | 12 | ## Atividade 13 | 14 | Forme uma equipe com as pessoas sentadas próximas a você. 15 | 16 | Escolha uma linguagem de programação que funcione no site [repl.it](https://repl.it/languages). 17 | 18 | Abra a planilha de [comparação de linguagens de programação](https://docs.google.com/spreadsheets/d/1TMU2u5rCN3J9DllEENgMzU7xk4ylYcqQcABVu-C3z_o/edit#gid=0). 19 | 20 | Preencha os campos conforme o professor pedir. -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/g_alo_flutter__draft.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | void main() { 4 | runApp(buildApp()); 5 | } 6 | 7 | Widget buildApp() { 8 | // Construa o app segundo a tela de referência. 9 | // Para isso, substitua o Placeholder pelos 10 | // widgets adequados. 11 | // 12 | // ATENÇÃO: 13 | // - Não modifique o código dentro de main. 14 | // - Não altere o nome desta função. 15 | // - Mantenha o MaterialApp e o Scaffold. 16 | return MaterialApp( 17 | debugShowCheckedModeBanner: false, 18 | home: Scaffold( 19 | body: Center( 20 | child: Placeholder(), 21 | ), 22 | ), 23 | ); 24 | } -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/md/area_retangulo.md: -------------------------------------------------------------------------------- 1 | ## Área do retângulo 2 | 3 | Crie uma função, chamada `area_retangulo`, que recebe dois parâmetros, `base` e `altura`, e retorna a área do retângulo. 4 | 5 | 16 | 17 |
18 | {% include mobile/problems/flutter_aulas/test/area_retangulo_test.dart %} 19 |
-------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/widget_like_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_test/flutter_test.dart'; 3 | import 'package:flutter_aulas/widget_like.dart'; 4 | 5 | void main() { 6 | testWidgets('BotaoLike displays correctly', (WidgetTester tester) async { 7 | await tester.pumpWidget( 8 | MaterialApp( 9 | home: Scaffold( 10 | body: Center(child: BotaoLike()), 11 | ), 12 | ), 13 | ); 14 | 15 | expect(find.byType(ElevatedButton), findsOneWidget); 16 | expect(find.byIcon(Icons.favorite), findsOneWidget); 17 | expect(find.text('Like'), findsOneWidget); 18 | }); 19 | } 20 | -------------------------------------------------------------------------------- /_layouts/post.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 |
5 | 6 |
7 |

{{ page.title }}

8 | 9 |
10 | 11 |
12 | {{ content }} 13 |
14 | 15 |
16 | -------------------------------------------------------------------------------- /mata37/codigo/bomba.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | #define VERMELHO 0 6 | #define BRANCO 1 7 | #define AZUL 2 8 | #define AMARELO 3 9 | #define PRETO 4 10 | 11 | int main() { 12 | int a, b, c; 13 | 14 | cin >> a >> b >> c; 15 | 16 | if (a != VERMELHO && b != VERMELHO && c != VERMELHO) { 17 | cout << 2 << endl; 18 | } else if (c == BRANCO) { 19 | cout << 3 << endl; 20 | } else if ((a == AZUL && b == AZUL) || (a == AZUL && c == AZUL) || (b == AZUL && c == AZUL)) { 21 | if (c == AZUL) { 22 | cout << 3 << endl; 23 | } else { 24 | cout << 2 << endl; 25 | } 26 | } 27 | else { 28 | cout << 3 << endl; 29 | } 30 | 31 | return 0; 32 | } 33 | -------------------------------------------------------------------------------- /mata37/codigo/ordenacao4.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | int N = 6; 7 | // 0 1 2 3 4 5 8 | int vetor[] = {5, 3, 6, 4, 7, 2}; 9 | int i, j; 10 | int temp; 11 | int imenor; 12 | 13 | for (i = 0; i < N - 1; i++) { 14 | imenor = i; 15 | for (j = i; j < N; j++) { 16 | if (vetor[j] < vetor[imenor]) { 17 | imenor = j; 18 | } 19 | } 20 | // imenor = índice do menor elemento de i até N - 1; 21 | 22 | temp = vetor[i]; 23 | vetor[i] = vetor[imenor]; 24 | vetor[imenor] = temp; 25 | } 26 | 27 | for (i = 0; i < N; i++) { 28 | cout << vetor[i] << " "; 29 | } 30 | cout << endl; 31 | 32 | return 0; 33 | } -------------------------------------------------------------------------------- /mobile/ex/20241/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Exercícios de Flutter" 4 | features: [] 5 | --- 6 | 7 | - Lista 1: layout - [arquivos](flutter_aulas_layout.zip) e [página de submissão](layout) 8 | - Lista 2: Dart - [página de submissão](dart) 9 | - Lista 3: widgets - [arquivos](flutter_aulas_widgets.zip) e [página de submissão](widgets) 10 | 11 | Ver também: [Orientações sobre os exercícios](https://docs.google.com/document/d/1uvJav_YruWZzYERr16hyBpeR3WctfFqIWBESKRk1cfQ/edit) 12 | 13 | 20 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: flutter_aulas 2 | version: 1.0.0 3 | environment: 4 | sdk: '>=2.19.6 <3.0.0' 5 | dev_dependencies: 6 | lints: ^2.0.0 7 | test: ^1.21.0 8 | convenient_test_dev: ^1.0.0 9 | flutter_test: 10 | sdk: flutter 11 | build_runner: ^2.4.13 12 | riverpod_generator: ^2.6.3 13 | dependencies: 14 | flutter_riverpod: ^2.4.4 15 | convenient_test: ^1.0.0 16 | device_preview: ^1.1.0 17 | http: ^1.2.1 18 | riverpod_annotation: ^2.6.1 19 | flutter: 20 | uses-material-design: true 21 | 22 | assets: 23 | - assets/fonts/ 24 | 25 | fonts: 26 | - family: Roboto 27 | fonts: 28 | - asset: assets/fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /mata37/codigo/matadd.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | int linhas, colunas, i, j; 7 | 8 | cin >> linhas >> colunas; 9 | int a[linhas][colunas]; 10 | int b[linhas][colunas]; 11 | 12 | // Le 1a matriz 13 | for (i = 0; i < linhas; i++) { 14 | for (j = 0; j < colunas; j++) { 15 | cin >> a[i][j]; 16 | } 17 | } 18 | 19 | // Le 2a matriz 20 | for (i = 0; i < linhas; i++) { 21 | for (j = 0; j < colunas; j++) { 22 | cin >> b[i][j]; 23 | } 24 | } 25 | 26 | // Imprime soma 27 | for (i = 0; i < linhas; i++) { 28 | for (j = 0; j < colunas; j++) { 29 | cout << (a[i][j] + b[i][j]) << endl; 30 | } 31 | } 32 | 33 | return 0; 34 | } 35 | 36 | -------------------------------------------------------------------------------- /mata37/compilador.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: Compilador 4 | --- 5 | 6 |
7 | 8 | # Compilador 9 | 10 | Compilador é um programa que lê um código-fonte em uma linguagem de programação e gera um arquivo executável correspondente. 11 | 12 | --- 13 | 14 | # Alguns compiladores de C++ 15 | 16 | - GNU C Compiler (gcc) 17 | - Clang / LLVM 18 | - Visual C++ Compiler 19 | 20 | --- 21 | 22 | # Compilador gcc 23 | 24 | ```bash 25 | g++ alo.cc 26 | ./a.out 27 | ``` 28 | 29 | --- 30 | 31 | # Compilador gcc 32 | 33 | ```bash 34 | g++ alo.cc -o alo 35 | ./alo 36 | ``` 37 | 38 | --- 39 | 40 | # Compilador gcc 41 | 42 | ```bash 43 | g++ -Wall alo.cc -o alo 44 | ./alo 45 | ``` 46 | 47 | --- 48 | 49 |
-------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/g_like__draft.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | void main() { 4 | runApp(buildApp()); 5 | } 6 | 7 | Widget buildApp() { 8 | // Construa o app segundo a tela de referência. 9 | // Para isso, substitua o Placeholder pelos 10 | // widgets adequados. 11 | // 12 | // - A distância entre o ícone e o texto é de 8 pixels. 13 | // - O enchimento ao redor do conjunto (ícone e texto) 14 | // é de 16 pixels. 15 | // - A cor do enchimento é Colors.blueGrey.shade100 16 | return MaterialApp( 17 | debugShowCheckedModeBanner: false, 18 | home: Scaffold( 19 | body: Center( 20 | child: Placeholder(), 21 | ), 22 | ), 23 | ); 24 | } -------------------------------------------------------------------------------- /poo/duplicacao-de-codigo.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Por que duplicação de código é ruim? 4 | features: [] 5 | --- 6 | 7 | - **Cópias imperfeitas**. Ao duplicar trechos de código, você pode esquecer algum detalhe (ex.: esquecer de copiar uma linha de código) e portanto fazer uma cópia que não funciona do jeito desejado 8 | - **Mudança na funcionalidade**. Se um dia a lógica daquela funcionalidade mudar, você precisará alterar todas as cópias. Se você se esquecer de mudar alguma, seu sistema se comportará de forma inconsistente 9 | - **Dificuldade de compreensão**. Ao encontrar um trecho de código parecido com um que você já conhece, você precisará lê-lo com cuidado para saber se ele é igual ao que você conhece (e faz a mesma coisa) 10 | -------------------------------------------------------------------------------- /mata37/sdl/old/lesson-m1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char *argv[]) { 4 | int intensidade; 5 | SDL_Window *window; 6 | SDL_Surface *superficie; 7 | 8 | SDL_Init(SDL_INIT_VIDEO); 9 | 10 | window = SDL_CreateWindow("Tutorial", 100, 100, 320, 480, SDL_WINDOW_SHOWN); 11 | superficie = SDL_GetWindowSurface(window); 12 | 13 | for (intensidade = 0; intensidade <= 255; intensidade++) { 14 | SDL_FillRect(superficie, NULL, 15 | SDL_MapRGB(superficie->format, intensidade, intensidade, intensidade)); 16 | SDL_UpdateWindowSurface(window); 17 | SDL_Delay(5); 18 | } 19 | SDL_Delay(2000); 20 | 21 | SDL_FreeSurface(superficie); 22 | SDL_DestroyWindow(window); 23 | SDL_Quit(); 24 | 25 | return 0; 26 | } 27 | -------------------------------------------------------------------------------- /mata37/editores.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: Editores de código-fonte 4 | --- 5 | 6 |
7 | 8 | # Editores de código-fonte: vantagens 9 | 10 | - Coloração de sintaxe (*syntax highlighting*) 11 | - Indentação automática 12 | - Autocompletar 13 | - Autocomentar 14 | 15 | # Editores de texto 16 | 17 | - Gráficos: Atom, Brackets, Sublime Text, TextMate 18 | - Outros gráficos: gedit, Geany 19 | - Modo texto: VIM, Emacs 20 | 21 | # IDEs 22 | 23 | Ambientes integrados de desenvolvimento. 24 | 25 | Vantagens: 26 | 27 | - Integrado com compilador e depurador (debugger) 28 | - Melhor autocompletar 29 | - Possivelmente integrado com documentação 30 | 31 | Exemplos: 32 | 33 | - Code::Blocks 34 | - Dev-C++ 35 | - Eclipse + CDT 36 | - KDevelop 37 | 38 |
-------------------------------------------------------------------------------- /mata37/codigo/busca-binaria.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int main() { 6 | int n; 7 | cin >> n; 8 | int vetor[n]; 9 | int i; 10 | int buscado; 11 | 12 | cin >> buscado; 13 | 14 | for (i = 0; i < n; i++) { 15 | cin >> vetor[i]; 16 | } 17 | 18 | ////////////// 19 | ////////////// 20 | 21 | char esq = 0; 22 | char dir = n - 1; 23 | char meio; 24 | 25 | while (esq <= dir) { 26 | meio = (esq + dir) / 2; 27 | 28 | if (vetor[meio] == buscado) { 29 | break; 30 | } else if (buscado < vetor[meio]) { 31 | dir = meio - 1; 32 | } else { 33 | esq = meio + 1; 34 | } 35 | } 36 | 37 | if (vetor[meio] == buscado) { 38 | cout << meio << endl; 39 | } else { 40 | cout << -1 << endl; 41 | } 42 | 43 | return 0; 44 | } -------------------------------------------------------------------------------- /poo/ex-tupy/hanoi/hanoi.py: -------------------------------------------------------------------------------- 1 | from tupy import * 2 | 3 | class Disco(Image): 4 | def __init__(self, tamanho): 5 | self.file = 'disco1.png' 6 | 7 | class Torre(Image): 8 | def __init__(self, x, y, discos = None): 9 | if discos is None: 10 | self.discos = [] 11 | else: 12 | self.discos = discos 13 | 14 | 15 | def disco_do_topo(self): 16 | return None 17 | 18 | def move_disco_para_torre(self, destino: 'Torre'): 19 | # Cria um novo disco e colocar na torre de destino 20 | d = Disco(5) 21 | destino.discos.append(d) 22 | 23 | 24 | disco3 = Disco(3) 25 | disco2 = Disco(2) 26 | disco1 = Disco(1) 27 | torre1 = Torre(200, 300, [disco3, disco2, disco1]) 28 | torre2 = Torre(300, 300) 29 | torre3 = Torre(400, 300) 30 | 31 | run(globals()) -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/flutter_test_config.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | 3 | import 'package:flutter_test/flutter_test.dart'; 4 | import 'package:flutter/services.dart'; 5 | 6 | Future testExecutable(FutureOr Function() testMain) async { 7 | setUpAll(() async { 8 | await (FontLoader('Roboto') 9 | ..addFont(rootBundle.load('assets/fonts/Roboto-Regular.ttf')) 10 | ..addFont(rootBundle.load('assets/fonts/Roboto-Bold.ttf')) 11 | ..addFont(rootBundle.load('assets/fonts/Roboto-Black.ttf'))) 12 | .load(); 13 | 14 | await (FontLoader('MaterialIcons') 15 | ..addFont(rootBundle.load('assets/fonts/MaterialIcons-Regular.otf'))) 16 | .load(); 17 | }); 18 | 19 | await testMain(); 20 | } 21 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/cumprimento_test.dart: -------------------------------------------------------------------------------- 1 | import '../lib/cumprimento.dart'; 2 | import 'package:flutter_test/flutter_test.dart'; 3 | 4 | void main() { 5 | group('cumprimento', () { 6 | testWidgets('Cumprimento pode ser customizado 1/2', 7 | (WidgetTester tester) async { 8 | await tester.pumpWidget(const Cumprimento(nome: 'Fulano')); 9 | final finder = find.text('Olá, Fulano!'); 10 | expect(finder, findsOneWidget); 11 | }); 12 | testWidgets('Cumprimento pode ser customizado 2/2', 13 | (WidgetTester tester) async { 14 | await tester.pumpWidget(const Cumprimento(nome: 'Sicrana')); 15 | final finder = find.text('Olá, Sicrana!'); 16 | expect(finder, findsOneWidget); 17 | }); 18 | }); 19 | } 20 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/tutorial05__draft.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | void main() { 4 | runApp(criaApp()); 5 | } 6 | 7 | Widget criaApp() { 8 | // Construa o app segundo a tela de referência. 9 | // Para isso, substitua o Placeholder pelos 10 | // widgets adequados. 11 | // 12 | // - A distância entre o ícone e o texto é de 8 pixels. 13 | // - O enchimento ao redor do conjunto (ícone e texto) 14 | // é de 16 pixels. 15 | // - A cor do enchimento é Colors.blueGrey.shade100 16 | // - O texto e o ícone possuem tamanho 20 pixels. 17 | return MaterialApp( 18 | debugShowCheckedModeBanner: false, 19 | home: Scaffold( 20 | body: Center( 21 | child: Placeholder(), 22 | ), 23 | ), 24 | ); 25 | } 26 | -------------------------------------------------------------------------------- /_includes/icon-twitter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /demo/uml.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Diagramas UML 4 | features: [uml] 5 | --- 6 | 7 | Diagramas UML podem ser adicionados com o [PlantUML](https://plantuml.com/). O código do PlantUML deve estar dentro de uma `div` com a classe `uml`. Exemplo: 8 | 9 | ```html 10 |
11 | class Throwable { 12 | } 13 | class Error extends Throwable { 14 | } 15 | class Exception extends Throwable { 16 | } 17 | class RuntimeException extends Exception { 18 | } 19 |
20 | ``` 21 | 22 | Resultado: 23 | 24 |
25 | class Throwable { 26 | } 27 | class Error extends Throwable { 28 | } 29 | class Exception extends Throwable { 30 | } 31 | class RuntimeException extends Exception { 32 | } 33 |
34 | 35 | Diagramas de classe podem ser descritos em uma linguagem similar a Java. 36 | -------------------------------------------------------------------------------- /mata37/codigo/adivinhe.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace std; 6 | 7 | int main() { 8 | int sorteado, num, numtentativas, menor = 1, maior = 100; 9 | 10 | srand(time(NULL)); 11 | sorteado = 1 + (rand() % 100); 12 | 13 | cout << "O numero esta entre 1 e 100." << endl; 14 | 15 | 16 | while (num != sorteado) { 17 | 18 | cin >> num; 19 | if (num == sorteado){ 20 | cout << "Parabens vc acertou!" << endl; 21 | } 22 | if (num > sorteado) { 23 | maior = num; 24 | cout << "O numero esta entre" << menor << " e " << maior << endl; 25 | } 26 | if (num < sorteado){ 27 | menor = num; 28 | cout << "O numero esta entre" << menor << " e " << maior << endl; 29 | } 30 | } 31 | 32 | return 0; 33 | } -------------------------------------------------------------------------------- /lib/codemirror/addon/hint/show-hint.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-hints { 2 | position: absolute; 3 | z-index: 10; 4 | overflow: hidden; 5 | list-style: none; 6 | 7 | margin: 0; 8 | padding: 2px; 9 | 10 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 11 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 12 | box-shadow: 2px 3px 5px rgba(0,0,0,.2); 13 | border-radius: 3px; 14 | border: 1px solid silver; 15 | 16 | background: white; 17 | font-size: 90%; 18 | font-family: monospace; 19 | 20 | max-height: 20em; 21 | overflow-y: auto; 22 | } 23 | 24 | .CodeMirror-hint { 25 | margin: 0; 26 | padding: 0 4px; 27 | border-radius: 2px; 28 | white-space: pre; 29 | color: black; 30 | cursor: pointer; 31 | } 32 | 33 | li.CodeMirror-hint-active { 34 | background: #08f; 35 | color: white; 36 | } 37 | -------------------------------------------------------------------------------- /demo/3colunas.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: Demonstração 4 | features: [code,javascript] 5 | --- 6 | 7 | ## Página com o triple-page 8 | 9 | Use o layout `triple-page` 10 | 11 | Cada subseção (`h2` em HTML, `##` em Markdown) inicia uma página 12 | 13 | Se dentro da subseção houver um editor de código, ele aparece na coluna do meio, e o console aparece na coluna da esquerda. 14 | 15 | Execute o código para ver em ação 16 | 17 | 28 | 29 | ## Outra página 30 | 31 | Esta é uma página apenas explicativa, sem editor de código. 32 | -------------------------------------------------------------------------------- /mata56/avaliacoes.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |
6 | 7 |

Avaliações

8 | 9 |
    10 | {% comment %} 11 | {% assign sorted = (site.pages | sort: 'date') | reverse %} 12 | {% endcomment %} 13 | {% assign sorted = site.pages %} 14 | {% for page in sorted %} 15 | {% if page.categories contains 'avaliacao' %} 16 |
  • 17 | 18 | 19 |

    20 | {{ page.title }} 21 |

    22 |
  • 23 | {% endif %} 24 | {% endfor %} 25 |
26 | 27 |

subscribe via RSS

28 | 29 |
30 | -------------------------------------------------------------------------------- /grupo1/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Grupo 1 - Atividades 4 | --- 5 | 6 | ## Por favor, acesse as páginas a seguir e resolva as questões 7 | 8 | **Instruções:** 9 | 10 | Há duas atividades: a atividade 1 com layout de uma única coluna e a atividade 2 com layout de três colunas. Para cada atividade há 3 exercícios. 11 | 12 | Para verificar a saída dos exercícios na atividade 1, utilize o console do próprio navegador (F12). Na atividade 2, a saída é exibida na terceira coluna, que representa o console. 13 | 14 | Na atividade 2, para ver o resultado de sua execução, sempre clique no botão "Rodar", já que o console exibe apenas a última execução de código, independente da página que está sendo visualizada. 15 | 16 | Deve-se cronometrar o tempo de completude de ambas as atividades para resposta do questionário. 17 | 18 | [Atividade 1](atividade1) 19 | 20 | [Atividade 2](atividade2) 21 | -------------------------------------------------------------------------------- /grupo2/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Grupo 2 - Atividades 4 | --- 5 | 6 | ## Por favor, acesse as páginas a seguir e resolva as questões 7 | 8 | **Instruções:** 9 | 10 | Há duas atividades: a atividade 1 com layout de três colunas e a atividade 2 com layout de uma única coluna. Para cada atividade há 3 exercícios. 11 | 12 | Para verificar a saída dos exercícios na atividade 2, utilize o console do próprio navegador (F12). Na atividade 1, a saída é exibida na terceira coluna, que representa o console. 13 | 14 | Na atividade 1, para ver o resultado de sua execução, sempre clique no botão "Rodar", já que o console exibe apenas a última execução de código, independente da página que está sendo visualizada. 15 | 16 | Deve-se cronometrar o tempo de completude de ambas as atividades para resposta do questionário. 17 | 18 | [Atividade 1](atividade1) 19 | 20 | [Atividade 2](atividade2) 21 | -------------------------------------------------------------------------------- /poo/pyglet.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Pyglet 4 | features: [] 5 | --- 6 | 7 | Exemplo: 8 | 9 | ```python 10 | import pyglet 11 | 12 | window = pyglet.window.Window(300, 200) 13 | image = pyglet.resource.image('alface.png') 14 | 15 | objeto1 = pyglet.sprite.Sprite(image, 30, 30) 16 | objeto2 = pyglet.sprite.Sprite(image, 90, 10) 17 | 18 | 19 | @window.event 20 | def on_draw(): 21 | window.clear() 22 | objeto1.draw() 23 | objeto2.draw() 24 | 25 | 26 | @window.event 27 | def on_key_press(symbol, modifiers): 28 | objeto1.x += 10 29 | 30 | 31 | @window.event 32 | def on_mouse_press(x, y, button, modifiers): 33 | if button == pyglet.window.mouse.LEFT: 34 | objeto2.x = x - objeto2.width // 2 35 | objeto2.y = y - objeto2.height // 2 36 | 37 | 38 | pyglet.app.run() 39 | ``` 40 | 41 | Executar no navegador: -------------------------------------------------------------------------------- /mata37/sdl/old/lesson01.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace std; 5 | 6 | int main(int argc, char *argv[]) { 7 | SDL_Window *window = NULL; 8 | SDL_Surface *screenSurface = NULL; 9 | 10 | if (SDL_Init(SDL_INIT_VIDEO) < 0) { 11 | cout << "SDL init video error: " << SDL_GetError() << endl; 12 | SDL_Quit(); 13 | } 14 | 15 | window = SDL_CreateWindow("Tutorial", 0, 0, 320, 480, SDL_WINDOW_SHOWN); 16 | if (!window) { 17 | cout << "Error creating window: " << SDL_GetError() << endl; 18 | SDL_Quit(); 19 | } 20 | 21 | screenSurface = SDL_GetWindowSurface(window); 22 | 23 | SDL_FillRect(screenSurface, NULL, SDL_MapRGB(screenSurface->format, 0xFF, 0xFF, 0xFF)); 24 | 25 | SDL_UpdateWindowSurface(window); 26 | 27 | SDL_Delay(2000); 28 | 29 | SDL_FreeSurface(screenSurface); 30 | SDL_DestroyWindow(window); 31 | SDL_Quit(); 32 | 33 | return 0; 34 | } 35 | -------------------------------------------------------------------------------- /demo/quiz.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Quiz" 4 | features: [quiz] 5 | --- 6 | 7 | Ver 8 | 9 |
10 | 11 | ### Qual é a capital do Brasil? 12 | 13 | 1. [ ] Salvador 14 | > Já foi capital, mas não é mais 15 | 1. [ ] Rio de Janeiro 16 | > Já foi capital, mas não é mais 17 | 1. [ ] São Paulo 18 | > Nunca foi capital do Brasil 19 | 1. [x] Brasília 20 | > Resposta correta! 21 | 22 | ### Quais são as variáveis no código a seguir? 23 | 24 | > Há mais de uma alternativa correta 25 | 26 | ```python 27 | x = 2.3 28 | y = int(x) 29 | print(x + y) 30 | ``` 31 | 32 | - [x] x 33 | - [x] y 34 | - [ ] int 35 | - [ ] print 36 | 37 | ### Ordene as instruções 38 | 39 | O código deve imprimir os números 1, 2, 3 e 4, na sequência 40 | 41 | 1. `i = 1` 42 | 2. `while i <= 4:` 43 | 3. `print(i)` 44 | 4. `i += 1` 45 | 46 | 47 |
-------------------------------------------------------------------------------- /_includes/icon-github.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/listview02_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_test/flutter_test.dart'; 3 | import 'package:flutter_aulas/listview02.dart'; 4 | 5 | void main() { 6 | testWidgets('ListView displays all items', (WidgetTester tester) async { 7 | await tester.pumpWidget(MyApp( 8 | fetchItens: () { 9 | return Future.value(['aaaaa', 'bbbbb']); 10 | }, 11 | )); 12 | 13 | expect(find.byType(CircularProgressIndicator), findsOneWidget); 14 | expect(find.text('aaaaa'), findsNothing); 15 | expect(find.text('Item 1'), findsNothing); 16 | 17 | await Duration(seconds: 1, milliseconds: 500); 18 | await tester.pumpAndSettle(); 19 | 20 | expect(find.byType(CircularProgressIndicator), findsNothing); 21 | expect(find.text('aaaaa'), findsOneWidget); 22 | expect(find.text('Item 1'), findsNothing); 23 | }); 24 | } 25 | -------------------------------------------------------------------------------- /poo/ex-tupy/carro/carro.py: -------------------------------------------------------------------------------- 1 | from tupy import * 2 | 3 | class Carro(BaseImage): 4 | def __init__(self): 5 | self._x = 50 6 | self._y = 200 7 | self._velocidade = 0 8 | # visibilidade / acesso ---- sugestão para o programador 9 | 10 | def get_velocidade(self): 11 | return self._velocidade 12 | 13 | def set_velocidade(self, v): 14 | if v >= 0 and v <= 40: 15 | self._velocidade = v 16 | 17 | def acelerar(self): 18 | self._velocidade += 5 19 | if self._velocidade > 40: 20 | self._velocidade = 40 21 | 22 | def frear(self): 23 | self._velocidade -= 5 24 | if self._velocidade < 0: 25 | self._velocidade = 0 26 | 27 | def update(self): 28 | self._x += self._velocidade 29 | if self._x > 850: 30 | self._x = -50 31 | 32 | carro = Carro() 33 | 34 | run(globals()) 35 | -------------------------------------------------------------------------------- /mata37/codigo/soma-vetores.md: -------------------------------------------------------------------------------- 1 | Escreva um programa que lê dois vetores de inteiros de tamanho N e escreve a soma dos dois vetores. 2 | 3 | Entrada: 4 | 5 | - 1ª linha: tamanho do vetor (N) 6 | - 2ª linha: N inteiros (primeiro vetor) 7 | - 3ª linha: N inteiros (segundo vetor) 8 | 9 | Saída: 10 | Uma linha contendo os números que compõem a soma dos vetores, separados por espaço. 11 | 12 | Exemplo: 13 | 14 | Entrada: 15 | 16 | 3 17 | 1 2 3 18 | 5 5 5 19 | 20 | Saída: 21 | 22 | 6 7 8 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | ## Encaixotando (vetor) 53 | 54 | Entrada: lista de pares de números, onde o primeiro número indica a posição e o segundo número indica o tamanho da caixa. Termina com 0 0. Programa deve indicar se a alocação das caixas é possível (não é possível quando uma caixa sobrepõe a outra). 55 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/pessoa_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_aulas/pessoa.dart'; 2 | import 'package:test/test.dart'; 3 | import 'dart:mirrors'; 4 | 5 | void main() { 6 | group('Pessoa', () { 7 | test('deve criar instância de Pessoa', () { 8 | final pessoa = Pessoa('123.456.789-00', 'John Doe'); 9 | expect(pessoa.cpf, '123.456.789-00'); 10 | expect(pessoa.nome, 'John Doe'); 11 | }); 12 | 13 | test('deve atualizar o nome de uma instância de Pessoa', () { 14 | final pessoa = Pessoa('123.456.789-00', 'John Doe'); 15 | pessoa.nome = 'Jane Doe'; 16 | expect(pessoa.nome, 'Jane Doe'); 17 | }); 18 | 19 | test('não deve ser possível atualizar o CPF de uma instância de Pessoa', 20 | () { 21 | ClassMirror cp = reflectClass(Pessoa); 22 | var varCpf = cp.declarations[#cpf] as VariableMirror; 23 | expect(varCpf.isFinal, isTrue); 24 | }); 25 | }); 26 | } 27 | -------------------------------------------------------------------------------- /lib/ezsubmission/ezsubmission.js: -------------------------------------------------------------------------------- 1 | 2 | class EZSubmission { 3 | constructor(apiUrl) { 4 | this.apiUrl = apiUrl; 5 | this.accessToken = null; 6 | } 7 | _config() { 8 | if (this.accessToken) { 9 | return { 10 | headers: { 11 | Authorization: `Bearer ${this.accessToken}` 12 | } 13 | }; 14 | } else { 15 | return {} 16 | } 17 | } 18 | login(username, password) { 19 | return axios 20 | .post(`${this.apiUrl}/login`, { username, password }) 21 | .then((response) => { 22 | this.accessToken = response.data.access_token; 23 | return response; 24 | }); 25 | } 26 | getLatestAnswers(assignmentUrl, username) { 27 | return axios.post(`${this.apiUrl}/answers/latest`, { assignment_url: assignmentUrl, username }, this._config()); 28 | } 29 | submit(submissions) { 30 | return axios.post(`${this.apiUrl}/submissions`, submissions, this._config()); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/endereco__draft.dart: -------------------------------------------------------------------------------- 1 | // Crie uma classe `Cliente`, cujo construtor recebe 2 | // os parâmetros posicionais `nome` e `endereco`, sendo 3 | // apenas o primeiro obrigatório. Caso não seja fornecido, 4 | // o endereço deve ser inicializado com `null`. 5 | // 6 | // O nome não pode ser alterado após a criação do objeto. 7 | // 8 | // Crie também a classe `Endereco`, com os atributos 9 | // `cep` e `cidade`, ambos obrigatórios do tipo `String`. 10 | // 11 | // A seguir, crie uma função `criaEtiqueta`, que recebe 12 | // um cliente e retorna uma string com o nome e o CEP 13 | // do cliente, de acordo com os seguintes exemplos: 14 | // 15 | // Fulano de Tal - CEP 12345-678 16 | // Sicrana Silva - CEP não informado 17 | // 18 | // Sugestão: use operadores como `?.` e `??` para lidar com nulos. 19 | 20 | class Cliente { 21 | // ... 22 | } 23 | 24 | class Endereco { 25 | // ... 26 | } 27 | 28 | String criaEtiqueta(Cliente c) { 29 | return ""; 30 | } 31 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/md/cumprimento.md: -------------------------------------------------------------------------------- 1 | ## Cumprimento 2 | 3 | Crie um widget `Cumprimento` que recebe um nome e exibe um texto no formato `Olá, !` (atenção a maiúsculas, minúsculas e pontuação). Fique à vontade para alterar o construtor e o método `build`, mas garanta que o widget pode ser instanciado como no exemplo: `Cumprimento(nome: 'Mundo')`. 4 | 5 | 22 | 23 |
24 | {% include mobile/problems/flutter_aulas/test/cumprimento_test.dart %} 25 |
-------------------------------------------------------------------------------- /_includes/poo/problems/tupy/fake-tupy.py: -------------------------------------------------------------------------------- 1 | class BaseTupyObject: 2 | def _hide(self): pass 3 | def _show(self): pass 4 | def _collides_with(self, obj): return False 5 | def _destroy(self): pass 6 | def destroy(self): pass 7 | 8 | class BaseImage(BaseTupyObject): 9 | pass 10 | 11 | class Image(BaseImage): 12 | def __new__(cls, *args, **kwargs): 13 | self = super().__new__(cls) 14 | self.x = 0 15 | self.y = 0 16 | self.file = self.__class__.__name__.lower() + '.png' 17 | self.angle = 0 18 | return self 19 | 20 | def run(x): 21 | pass 22 | 23 | class KeyboardStub: 24 | def is_key_just_down(self, key): return False 25 | def is_key_down(self, key): return False 26 | def is_key_up(self, key): return True 27 | 28 | keyboard = KeyboardStub() 29 | 30 | class MouseStub: 31 | def __init__(self): 32 | self.x = 0 33 | self.y = 0 34 | def is_button_just_down(self): return False 35 | def is_button_down(self): return False 36 | 37 | mouse = MouseStub() -------------------------------------------------------------------------------- /mata37/intro-linux.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: Introdução ao Linux 4 | --- 5 | 6 |
7 | 8 | # GNU/Linux 9 | 10 | --- 11 | 12 | 13 | 14 | ## Alguns comandos básicos 15 | 16 | ``` 17 | cd PATH 18 | cd .. 19 | pwd 20 | ls 21 | cat PATH 22 | less PATH 23 | curl URL > PATH 24 | ``` 25 | 26 | /, ., .. 27 | 28 | man, q, Ctrl+C 29 | 30 | ## Usuários e permissões 31 | 32 | usuário normal, usuário root 33 | chown, chmod 34 | 35 | ## Manipulação de arquivos 36 | 37 | - cp, mv, touch 38 | - curl, wget 39 | 40 | ## Shortcuts 41 | 42 | Tab 43 | Seta pra cima 44 | Ctrl+R 45 | !$ 46 | 47 | ## Redirecionamento de entrada e saída 48 | 49 | - >, <, | 50 | - tail, tail -f 51 | 52 | ## Parâmetros 53 | 54 | - Parâmetros curtos: uma letra precedida por hífen. Ex.: ls -l -a 55 | - Pode combinar: ls -la 56 | - Parâmetros longos: precedidos por dois hífens: Ex.: rails s --without production 57 | 58 | ## Variáveis de ambiente 59 | 60 | export XYZ=valor 61 | echo $XYZ 62 | 63 |
-------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | ruby "~> 3.0.5" 3 | 4 | gem "webrick" 5 | gem "kramdown-parser-gfm" 6 | # Hello! This is where you manage which Jekyll version is used to run. 7 | # When you want to use a different version, change it below, save the 8 | # file and run `bundle install`. Run Jekyll with `bundle exec`, like so: 9 | # 10 | # bundle exec jekyll serve 11 | # 12 | # This will help ensure the proper Jekyll version is running. 13 | # Happy Jekylling! 14 | gem "jekyll", "3.9" 15 | 16 | # This is the default theme for new Jekyll sites. You may change this to anything you like. 17 | gem "minima" 18 | 19 | # If you want to use GitHub Pages, remove the "gem "jekyll"" above and 20 | # uncomment the line below. To upgrade, run `bundle update github-pages`. 21 | # gem "github-pages", group: :jekyll_plugins 22 | 23 | # If you have any plugins, put them here! 24 | # group :jekyll_plugins do 25 | # gem "jekyll-github-metadata", "~> 1.0" 26 | # end 27 | 28 | gem "rexml", "~> 3.2" 29 | -------------------------------------------------------------------------------- /lib/codemirror/addon/lint/yaml-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | // Depends on js-yaml.js from https://github.com/nodeca/js-yaml 15 | 16 | // declare global: jsyaml 17 | 18 | CodeMirror.registerHelper("lint", "yaml", function(text) { 19 | var found = []; 20 | try { jsyaml.load(text); } 21 | catch(e) { 22 | var loc = e.mark; 23 | found.push({ from: CodeMirror.Pos(loc.line, loc.column), to: CodeMirror.Pos(loc.line, loc.column), message: e.message }); 24 | } 25 | return found; 26 | }); 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/on_off__draft.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | void main() { 4 | runApp(MaterialApp( 5 | home: Scaffold(body: Inicio()), 6 | )); 7 | } 8 | 9 | class Inicio extends StatelessWidget { 10 | const Inicio({super.key}); 11 | 12 | @override 13 | Widget build(BuildContext context) { 14 | return Container( 15 | color: Colors.grey[100], 16 | child: Center( 17 | child: BotaoOnOff(), 18 | ), 19 | ); 20 | } 21 | } 22 | 23 | /// 24 | /// Transforme este widget em um stateful widget 25 | /// e faça com que o botão alterne entre "On" e "Off" 26 | /// quando for clicado. 27 | /// 28 | /// O valor inicial do botão deve ser "Off". 29 | /// 30 | class BotaoOnOff extends StatelessWidget { 31 | BotaoOnOff({super.key}); 32 | 33 | @override 34 | Widget build(BuildContext context) { 35 | return ElevatedButton( 36 | onPressed: () {}, 37 | child: Text("Off"), 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /mobile/trabalho-apps-20182.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: MATC89 - Desenvolvimento de um app - 2019.2 4 | --- 5 | 6 | # Submissão da proposta de app 7 | 8 | Entregas: 9 | 10 | - Lista de pessoas da equipe (até 4 pessoas) 11 | - Descrição do app (o que ele faz, para que serve, como funciona) 12 | - Enumeração das tecnologias e componentes a serem utilizados (ex.: Android SDK, Ionic, React Native, SQLite, ListView, mapas, câmera...) 13 | 14 | Forma de entrega: resposta à questão correspondente no Google Classroom 15 | 16 | O professor poderá sugerir mudanças na proposta para adequá-la ao nível de complexidade esperado. 17 | 18 | # Avaliação do app 19 | 20 | Data: 14/12 21 | 22 | Valor: 2,5 23 | 24 | - A equipe deve demonstrar o app funcionando para o professor 25 | - Durante e após a demonstração, cada membro da equipe deve responder às questões do professor sobre a implementação do app 26 | - A equipe deve enviar o código-fonte do app para o professor, por e-mail, antes da demonstração 27 | 28 | -------------------------------------------------------------------------------- /mata37/codigo/rec-balde.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | int imagem[7][7] = { 6 | {0, 0, 0, 0, 0, 0, 0}, 7 | {0, 1, 1, 1, 0, 0, 0}, 8 | {0, 1, 0, 0, 1, 0, 0}, 9 | {0, 1, 0, 0, 0, 1, 0}, 10 | {0, 1, 0, 0, 0, 1, 0}, 11 | {0, 1, 0, 0, 0, 1, 0}, 12 | {0, 0, 1, 1, 1, 0, 0} 13 | }; 14 | 15 | void imprimeImagem() { 16 | int i, j; 17 | for (i = 0; i < 7; i++) { 18 | for (j = 0; j < 7; j++) { 19 | cout << (imagem[i][j] == 0 ? '.' : '#'); 20 | } 21 | cout << endl; 22 | } 23 | } 24 | 25 | void preenche(int lin, int col) { 26 | if (lin >= 0 && lin <= 7 27 | && col >= 0 && col <= 7 28 | && imagem[lin][col] == 0) { 29 | imagem[lin][col] = 1; 30 | preenche(lin - 1, col); 31 | preenche(lin + 1, col); 32 | preenche(lin, col - 1); 33 | preenche(lin, col + 1); 34 | } 35 | } 36 | 37 | int main() { 38 | imprimeImagem(); 39 | cout << "-----------" << endl; 40 | 41 | // preenche(4, 3); 42 | preenche(0, 0); 43 | imprimeImagem(); 44 | 45 | return 0; 46 | } -------------------------------------------------------------------------------- /lib/survey/survey.js: -------------------------------------------------------------------------------- 1 | // Author: rodrigorgs@ufba.br 2 | 3 | (function () { 4 | function initSurvey() { 5 | const groups = document.querySelectorAll('.survey ul'); 6 | let groupIdx = 0; 7 | for (const group of groups) { 8 | const groupContents = group.innerHTML; 9 | const fieldset = document.createElement('fieldset'); 10 | fieldset.innerHTML = groupContents; 11 | group.replaceWith(fieldset); 12 | 13 | const items = fieldset.querySelectorAll('li'); 14 | let itemIdx = 0; 15 | for (const item of items) { 16 | const contents = item.innerHTML; 17 | const label = document.createElement('label'); 18 | label.innerHTML = ` ${contents}
`; 19 | item.replaceWith(label); 20 | 21 | itemIdx++; 22 | } 23 | groupIdx++; 24 | } 25 | } 26 | 27 | document.addEventListener("DOMContentLoaded", function(e) { 28 | initSurvey(); 29 | }) 30 | })(); 31 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/g_home__draft.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | void main() { 4 | runApp(buildApp()); 5 | } 6 | 7 | Widget buildApp() { 8 | // Construa o app segundo a tela de referência. 9 | // Para isso, substitua o Placeholder pelos 10 | // widgets adequados. 11 | // 12 | // - As barras superior e inferior possuem 50 pixels de altura 13 | // e a cor é Colors.blueGrey.shade100. 14 | // - Os ícones da barra inferior são, da esquerda para a direita, 15 | // Icons.home, Icons.favorite e Icons.history. 16 | // - O texto principal está afastado 16 pixels das bordas. 17 | return MaterialApp( 18 | debugShowCheckedModeBanner: false, 19 | home: Scaffold( 20 | body: Column( 21 | children: [ 22 | Text("Início"), 23 | Text( 24 | "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30", 25 | ), 26 | Icon(Icons.home), 27 | ], 28 | ), 29 | ), 30 | ); 31 | } -------------------------------------------------------------------------------- /experimento-triple/orientacoes.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Experimento - Orientações 4 | --- 5 | 6 | ## Experimento - orientações 7 | 8 | O experimento consiste de duas listas de exercícios de programação, cada uma com dois exercícios. As duas listas de exercícios possuem *layouts* diferentes. 9 | 10 | Antes de começar o experimento, preencha o [Termo de Consentimento](https://forms.gle/DatcajyGNToLuv8Q7). 11 | 12 | Livre-se de qualquer distração antes de iniciar o experimento. Deve-se cronometrar o tempo gasto na resolução de cada lista de exercícios para preencher o [questionário](https://forms.gle/owucj3K9urU9UqND8). 13 | 14 | Para iniciar o experimento, acesse a primeira lista de exercícios: 15 | 16 | > Se seu número de matrícula é um número **ímpar** (isto é, termina com 1, 3, 5, 7 ou 9), você é do **Grupo 1**. [Clique aqui para iniciar](grupo1/ex1) 17 | 18 | > Se seu número de matrícula é um número **par** (isto é, termina com 0, 2, 4, 6 ou 8), você é do **Grupo 2**. [Clique aqui para iniciar](grupo2/ex1) 19 | -------------------------------------------------------------------------------- /poo/ex-python-estatico.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: triple-page 3 | title: "Exercícios: membros estáticos" 4 | features: [code, python] 5 | --- 6 | 7 | ## Vídeos 8 | 9 | Complete a implementação de acordo com seu conhecimento sobre membros estáticos. 10 | 11 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/md/endereco.md: -------------------------------------------------------------------------------- 1 | ## Endereço 2 | 3 | Crie uma classe `Cliente`, cujo construtor inicializa os atributos `nome` (`String`, obrigatório) e `endereco` (`Endereco`, opcional). O endereço deve ser inicializado com `null` e pode ser alterado após a criação do objeto. A classe `Endereco` deve ter os atributos `cep` e `cidade`, ambos obrigatórios do tipo `String`. 4 | 5 | Crie uma função que criaEtiqueta, que recebe um cliente e retorna uma string com o nome e o CEP do cliente, de acordo com os seguintes exemplos: 6 | 7 | ``` 8 | Fulano de Tal - CEP 12345-678 9 | ``` 10 | 11 | ``` 12 | Sicrana Silva - CEP não informado 13 | ``` 14 | 15 | Sugestão: use operadores como `?.` e `??` para lidar com nulos. 16 | 17 | 24 | 25 |
26 | {% include mobile/problems/flutter_aulas/test/endereco_test.dart %} 27 |
-------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/listview01_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_test/flutter_test.dart'; 3 | import 'package:flutter_aulas/listview01.dart'; 4 | 5 | void main() { 6 | testWidgets('MyApp mostra lista correta', (WidgetTester tester) async { 7 | exemploItens.removeWhere((x) => true); 8 | exemploItens.addAll(['qwerty', 'asdf']); 9 | 10 | await tester.pumpWidget(MyApp()); 11 | 12 | expect(find.text('qwerty'), findsOneWidget); 13 | expect(find.text('asdf'), findsOneWidget); 14 | expect(find.text('Item 1'), findsNothing); 15 | }); 16 | 17 | testWidgets('ItemListView mostra lista correta', (WidgetTester tester) async { 18 | await tester.pumpWidget(MaterialApp( 19 | home: Scaffold( 20 | body: ItemListView(itens: ['abc', 'def']), 21 | ), 22 | )); 23 | 24 | expect(find.text('abc'), findsOneWidget); 25 | expect(find.text('def'), findsOneWidget); 26 | expect(find.text('Item 1'), findsNothing); 27 | }); 28 | } 29 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/on_off_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_test/flutter_test.dart'; 3 | import 'package:flutter_aulas/on_off.dart'; 4 | 5 | void main() { 6 | testWidgets('BotaoOnOff deve iniciar como Off', (WidgetTester tester) async { 7 | await tester.pumpWidget(MaterialApp(home: Scaffold(body: BotaoOnOff()))); 8 | expect(find.text('Off'), findsOneWidget); 9 | expect(find.text('On'), findsNothing); 10 | }); 11 | 12 | testWidgets('BotaoOnOff deve alternar entre On e Off', 13 | (WidgetTester tester) async { 14 | await tester.pumpWidget(MaterialApp(home: Scaffold(body: BotaoOnOff()))); 15 | await tester.tap(find.byType(ElevatedButton)); 16 | await tester.pump(); 17 | expect(find.text('On'), findsOneWidget); 18 | expect(find.text('Off'), findsNothing); 19 | await tester.tap(find.byType(ElevatedButton)); 20 | await tester.pump(); 21 | expect(find.text('Off'), findsOneWidget); 22 | expect(find.text('On'), findsNothing); 23 | }); 24 | } 25 | -------------------------------------------------------------------------------- /demo/prova.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Prova de exemplo" 4 | --- 5 | 6 | 13 | 14 | # Orientações sobre o demo 15 | 16 | Clique no botão `Login`. Use senha `123456`. 17 | 18 | {% include orientacoes.md %} 19 | {% include codigo-de-conduta.md %} 20 | 21 | ## Questão 1 22 | 23 | Implemente a função `area`, que recebe um parâmetro, `medidas`, e retorna a área do retângulo representado pelas medidas. O parâmetro `medidas` é uma lista com dois elementos, que representam, respectivamente, a medida da base e a medida da altura do retângulo. 24 | 25 | 36 | -------------------------------------------------------------------------------- /lib/submissao/login.php: -------------------------------------------------------------------------------- 1 | true, 'msg' => 'Login bem sucedido.', 'userinfo' => NULL); 11 | 12 | if ($_SESSION["nome"] != NULL || $_SESSION["matricula"] != NULL) { 13 | // echo json_encode(array('success' => true, msg => 'Os dados foram salvos.')); 14 | $ret['success'] = false; 15 | $ret['msg'] = 'Você já está autenticado! Realize logout primeiro.'; 16 | } else if ($senha == $SENHA_CORRETA) { 17 | $_SESSION["nome"] = $nome; 18 | $_SESSION["matricula"] = $matricula; 19 | } else { 20 | $ret['success'] = false; 21 | $ret['msg'] = 'Senha incorreta.'; 22 | } 23 | 24 | $ret['userinfo'] = array( 25 | 'nome' => $_SESSION["nome"], 26 | 'matricula' => $_SESSION["matricula"]); 27 | 28 | echo json_encode($ret); 29 | ?> -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/listview01__draft.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | main() { 4 | runApp(MyApp()); 5 | } 6 | 7 | final exemploItens = [ 8 | 'Item 1', 9 | 'Item 2', 10 | 'Item 3', 11 | 'Item 4', 12 | 'Item 5', 13 | 'Item 6', 14 | 'Item 7', 15 | 'Item 8', 16 | 'Item 9', 17 | 'Item 10' 18 | ]; 19 | 20 | class MyApp extends StatelessWidget { 21 | const MyApp({super.key}); 22 | 23 | @override 24 | Widget build(BuildContext context) { 25 | return MaterialApp( 26 | home: Scaffold( 27 | body: ItemListView(itens: exemploItens), 28 | ), 29 | ); 30 | } 31 | } 32 | 33 | class ItemListView extends StatelessWidget { 34 | final List itens; 35 | ItemListView({ 36 | super.key, 37 | required this.itens, 38 | }); 39 | 40 | @override 41 | Widget build(BuildContext context) { 42 | // Retorne uma lista com os itens 43 | // Cada item deve ser um ListTile com o texto do item 44 | // como título. 45 | return Placeholder(); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /js/misc.js: -------------------------------------------------------------------------------- 1 | $(document).ready(() => { 2 | function exibeOculta(exibe, oculta) { 3 | $(oculta).hide(); 4 | $(exibe)[0].style.visibility = 'visible'; 5 | } 6 | 7 | function ocultaResultado(resultado) { 8 | $(resultado).before(function() { 9 | let elem = $(''); 10 | $(elem).click(() => { exibeOculta(resultado, elem); } ); 11 | return elem; 12 | }); 13 | } 14 | 15 | // Oculta resultado 16 | $('.resultado').each(function () { 17 | ocultaResultado(this); 18 | }); 19 | 20 | // Oculta resultado expresso em comentários 21 | $('.hljs-comment').each(function () { 22 | let elem = $(this); 23 | if (elem.text().trim().match(/^(\/\/|#)=>/)) { 24 | let newText = elem.text().replace(/(\/\/|#)=>/, '').trim(); 25 | let newElem = $('' + newText + ''); 26 | elem.replaceWith(newElem); 27 | ocultaResultado(newElem); 28 | } 29 | }); 30 | }); -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled. 5 | 6 | version: 7 | revision: f468f3366c26a5092eb964a230ce7892fda8f2f8 8 | channel: stable 9 | 10 | project_type: app 11 | 12 | # Tracks metadata for the flutter migrate command 13 | migration: 14 | platforms: 15 | - platform: root 16 | create_revision: f468f3366c26a5092eb964a230ce7892fda8f2f8 17 | base_revision: f468f3366c26a5092eb964a230ce7892fda8f2f8 18 | - platform: web 19 | create_revision: f468f3366c26a5092eb964a230ce7892fda8f2f8 20 | base_revision: f468f3366c26a5092eb964a230ce7892fda8f2f8 21 | 22 | # User provided section 23 | 24 | # List of Local paths (relative to this file) that should be 25 | # ignored by the migrate tool. 26 | # 27 | # Files that are not part of the templates will be ignored by default. 28 | unmanaged_files: 29 | - 'lib/main.dart' 30 | - 'ios/Runner.xcodeproj/project.pbxproj' 31 | -------------------------------------------------------------------------------- /mata37/js-parsons/tests/runner.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Tests 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |

js-parsons tests

20 |

21 |

22 |
    23 |
    24 |
    25 |
    26 |
    27 | 28 | 29 | -------------------------------------------------------------------------------- /lib/codemirror/addon/lint/json-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on jsonlint.js from https://github.com/zaach/jsonlint 5 | 6 | // declare global: jsonlint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "json", function(text) { 19 | var found = []; 20 | jsonlint.parseError = function(str, hash) { 21 | var loc = hash.loc; 22 | found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column), 23 | to: CodeMirror.Pos(loc.last_line - 1, loc.last_column), 24 | message: str}); 25 | }; 26 | try { jsonlint.parse(text); } 27 | catch(e) {} 28 | return found; 29 | }); 30 | 31 | }); 32 | -------------------------------------------------------------------------------- /mata37/sdl/old/lesson02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace std; 5 | 6 | SDL_Window *window = NULL; 7 | SDL_Surface *screenSurface = NULL; 8 | 9 | void init() { 10 | if (SDL_Init(SDL_INIT_VIDEO) < 0) { 11 | printf("SDL init video error: %s\n", SDL_GetError()); 12 | SDL_Quit(); 13 | } 14 | 15 | window = SDL_CreateWindow("Tutorial", 0, 0, 320, 240, SDL_WINDOW_SHOWN); 16 | if (!window) { 17 | printf("Error creating window: %s\n", SDL_GetError()); 18 | SDL_Quit(); 19 | } 20 | 21 | screenSurface = SDL_GetWindowSurface(window); 22 | } 23 | 24 | int main(int argc, char *argv[]) { 25 | init(); 26 | 27 | SDL_Surface *image = SDL_LoadBMP("hello.bmp"); 28 | if (image == NULL) { 29 | cout << "Error loading image: " << SDL_GetError() << endl; 30 | SDL_Quit(); 31 | } 32 | 33 | SDL_BlitSurface(image, NULL, screenSurface, NULL); 34 | SDL_UpdateWindowSurface(window); 35 | 36 | SDL_Delay(4000); 37 | SDL_FreeSurface(image); 38 | SDL_FreeSurface(screenSurface); 39 | SDL_DestroyWindow(window); 40 | SDL_Quit(); 41 | 42 | return 0; 43 | } 44 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/web/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "flutter_aulas", 3 | "short_name": "flutter_aulas", 4 | "start_url": ".", 5 | "display": "standalone", 6 | "background_color": "#0175C2", 7 | "theme_color": "#0175C2", 8 | "description": "A new Flutter project.", 9 | "orientation": "portrait-primary", 10 | "prefer_related_applications": false, 11 | "icons": [ 12 | { 13 | "src": "icons/Icon-192.png", 14 | "sizes": "192x192", 15 | "type": "image/png" 16 | }, 17 | { 18 | "src": "icons/Icon-512.png", 19 | "sizes": "512x512", 20 | "type": "image/png" 21 | }, 22 | { 23 | "src": "icons/Icon-maskable-192.png", 24 | "sizes": "192x192", 25 | "type": "image/png", 26 | "purpose": "maskable" 27 | }, 28 | { 29 | "src": "icons/Icon-maskable-512.png", 30 | "sizes": "512x512", 31 | "type": "image/png", 32 | "purpose": "maskable" 33 | } 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /mata37/web/gera-dados/gera-dados.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require "sqlite3" 4 | 5 | if ARGV.size < 1 6 | STDERR.puts "Argumento: caminho para o BD sqlite do meuhorario2." 7 | exit 1 8 | end 9 | 10 | DBPATH = ARGV[0] 11 | 12 | db = SQLite3::Database.new DBPATH 13 | 14 | cursos = db.execute("select id, code, name from courses") 15 | # p cursos.map { |x| x[1] }.sort 16 | # p cursos 17 | # exit 1 18 | 19 | puts cursos.size 20 | cursos.each do |curso_id, curso_codigo, curso_nome| 21 | puts curso_nome 22 | puts curso_codigo 23 | disciplinas = db.execute("select d.code, d.name, 24 | coalesce(cd.semester, '0'), 25 | cd.nature, 26 | coalesce(d.load, '0'), 27 | coalesce(d.curriculum, '0') 28 | from course_disciplines cd 29 | inner join disciplines d on cd.discipline_id = d.id 30 | inner join courses c on cd.course_id = c.id 31 | where c.id = #{curso_id}") 32 | puts disciplinas.size 33 | disciplinas.each do |disc_codigo, disc_nome, disc_semestre, disc_natureza, disc_ch, disc_curriculum| 34 | puts disc_nome 35 | puts "#{disc_codigo} #{disc_semestre} #{disc_natureza} #{disc_ch} #{disc_curriculum}" 36 | end 37 | end -------------------------------------------------------------------------------- /mata56/aula00-apresentacao.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Introdução à disciplina" 4 | date: 2016-11-25 16:40:00 -0300 5 | categories: aula 6 | --- 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/layout_like_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_test/flutter_test.dart'; 3 | import '../lib/g_like.dart'; 4 | 5 | extension SetScreenSize on WidgetTester { 6 | Future setScreenSize( 7 | {double width = 540, 8 | double height = 960, 9 | double pixelDensity = 1}) async { 10 | final size = Size(width, height); 11 | await this.binding.setSurfaceSize(size); 12 | this.binding.window.physicalSizeTestValue = size; 13 | this.binding.window.devicePixelRatioTestValue = pixelDensity; 14 | } 15 | } 16 | 17 | void main() { 18 | testWidgets('LayoutCol widget has expected children', 19 | (WidgetTester tester) async { 20 | await tester.setScreenSize(width: 200, height: 100); 21 | await tester.pumpWidget( 22 | MaterialApp( 23 | home: Scaffold( 24 | body: Center( 25 | child: BotaoLike(), 26 | ), 27 | ), 28 | ), 29 | ); 30 | 31 | await expectLater( 32 | find.byType(BotaoLike), matchesGoldenFile("goldens/layout_like01.png")); 33 | }); 34 | } 35 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/widget_like2_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_test/flutter_test.dart'; 3 | import 'package:flutter_aulas/widget_like2.dart'; 4 | 5 | void main() { 6 | testWidgets('BotaoLike displays correctly', (WidgetTester tester) async { 7 | await tester.pumpWidget( 8 | MaterialApp( 9 | home: Scaffold( 10 | body: Center(child: BotaoLike()), 11 | ), 12 | ), 13 | ); 14 | 15 | expect(find.byType(ElevatedButton), findsOneWidget); 16 | expect(find.byIcon(Icons.favorite), findsOneWidget); 17 | expect(find.text('Like'), findsOneWidget); 18 | }); 19 | 20 | testWidgets('BotaoLike displays correctly', (WidgetTester tester) async { 21 | await tester.pumpWidget( 22 | MaterialApp( 23 | home: Scaffold( 24 | body: Center(child: BotaoLike(texto: 'CuRtIr')), 25 | ), 26 | ), 27 | ); 28 | 29 | expect(find.byType(ElevatedButton), findsOneWidget); 30 | expect(find.byIcon(Icons.favorite), findsOneWidget); 31 | expect(find.text('CuRtIr'), findsOneWidget); 32 | }); 33 | } 34 | -------------------------------------------------------------------------------- /lib/submissao/list.php: -------------------------------------------------------------------------------- 1 | false, 9 | 'msg' => 'Erro de banco de dados: ' . mysqli_connect_error()))); 10 | } 11 | mysqli_query($conn, "SET NAMES 'utf8'"); 12 | 13 | $sql = $conn->prepare(" 14 | select id, matricula, nome, timestamp 15 | from resposta 16 | inner join (select max(id) as maxid 17 | from resposta 18 | where apostila = ? 19 | group by matricula) as maxids on id = maxids.maxid 20 | order by nome; 21 | "); 22 | 23 | $sql->bind_param("s", $apostila); 24 | $sql->execute(); 25 | $result = $sql->get_result(); 26 | 27 | $data = mysqli_fetch_all($result, MYSQLI_ASSOC); 28 | 29 | // echo json_encode($data); 30 | 31 | echo ""; 32 | foreach($data as $key => $row) { 33 | echo ""; 34 | foreach($row as $key2 => $row2){ 35 | echo ""; 36 | } 37 | echo ""; 38 | } 39 | echo "
    " . $row2 . "
    "; 40 | echo "

    Total: " . count($data) . "

    "; 41 | 42 | ?> 43 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/draft/lista_produtos__draft.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Produto { 4 | final String nome; 5 | final double preco; 6 | 7 | Produto(this.nome, this.preco); 8 | } 9 | 10 | void main() { 11 | final produtos = [ 12 | Produto("Escova", 20.0), 13 | Produto("Sabonete", 4.0), 14 | Produto("Condicionador", 9.0), 15 | ]; 16 | runApp( 17 | MaterialApp( 18 | title: "ToDo List", 19 | home: Scaffold( 20 | appBar: AppBar(title: Text('Produtos')), 21 | body: Center( 22 | child: ListaCompras(produtos: produtos), 23 | ), 24 | )), 25 | ); 26 | } 27 | 28 | class ListaCompras extends StatelessWidget { 29 | const ListaCompras({super.key, required List produtos}); 30 | 31 | @override 32 | Widget build(BuildContext context) { 33 | return ListView(children: [ 34 | ListTile( 35 | title: Text('Escova'), 36 | subtitle: Text('20 reais'), 37 | ), 38 | ListTile( 39 | title: Text('Sabonete'), 40 | subtitle: Text('4 reais'), 41 | ) 42 | ]); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /_includes/orientacoes.md: -------------------------------------------------------------------------------- 1 | ## Orientações 2 | 3 | - Primeiramente, clique no botão `Login`, preencha seu nome completo e número de matrícula e clique em `Cancelar`. A senha será digitada pelo instrutor posteriormente. 4 | - Leia com atenção e responda às questões nos editores de texto indicados. 5 | - Todas as suas respostas serão enviadas para o servidor sempre que você clicar em `Rodar` (em um editor de texto) ou em `Enviar respostas`, no canto da tela -- desde que você esteja autenticado no servidor através da senha. 6 | - Apenas a última submissão enviada para o servidor será corrigida. 7 | - As suas respostas são guardadas localmente por 30 minutos para você não perder seu trabalho se o navegador travar. 8 | - Correção: 9 | + A pontuação inicial de cada questão será feita através da execução de casos de teste automatizados, de posse exclusiva do professor, na mesma forma dos casos de teste exemplificados em cada questão. 10 | + As respostas serão inspecionadas manualmente; respostas que violam algum aspecto da especificação da questão ou da prova estão sujeitas a redução parcial ou total do valor máximo da questão. 11 | + Casos omissos serão decididos pelo professor. 12 | 13 | -------------------------------------------------------------------------------- /mata37/js-parsons/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2010- Petri Ihantola and Ville Karavirta 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /_includes/poo/problems/tupy/foguete.md: -------------------------------------------------------------------------------- 1 | ## Foguete 2 | 3 | Crie uma classe `Foguete` de acordo com o diagrama de classes e a especificação abaixo: 4 | 5 |
    6 | class Image { 7 | - x 8 | - y 9 | - file 10 | } 11 | class Foguete { 12 | - ligado: bool 13 | - velocidade: int 14 | + liga() 15 | + desliga() 16 | + acelera() 17 | + desacelera() 18 | + update() 19 | } 20 | 21 | Image <|-- Foguete 22 |
    23 | 24 | - Ao criar um foguete, deve-se especificar sua posição inicial, em `x` e em `y`. 25 | - O foguete deve estar inicialmente desligado, parado e apontando para cima. 26 | - Quando o foguete está ligado, chamas são emitidas pelo motor. 27 | - Ao acelerar o foguete, sua velocidade se incrementa em 5 unidades. 28 | - Ao desacelerar o foguete, sua velocidade se decrementa em 5 unidades, mas não pode ficar negativa. 29 | - Só é possível acelerar e desacelerar o foguete com ele ligado. 30 | - Quando o foguete está ligado e em movimento, cada chamada ao método `update` deve atualizar sua posição de acordo com a fórmula `y = y - velocidade`. 31 | - Quando a posição do foguete é inferior a `-50`, ele deve ser movido para a posição `600`. 32 | 33 | -------------------------------------------------------------------------------- /lib/editors/eval-python.js: -------------------------------------------------------------------------------- 1 | async function pyodideMain() { 2 | let pyodide = await loadPyodide(); 3 | // Ignore imports of module tupy 4 | pyodide.registerJsModule("tupy", { 5 | __dict__: {}, 6 | __all__: pyodide.globals.get("tuple")(), 7 | }); 8 | return pyodide; 9 | } 10 | let pyodideReadyPromise = pyodideMain(); 11 | 12 | PythonEval = { 13 | eval: (code, input, outputFunc, callback) => { 14 | async function mainRunPyodide(){ 15 | let pyodide = await pyodideReadyPromise; 16 | pyodide.globals.clear(); 17 | pyodide.runPython(` 18 | import sys 19 | import io 20 | sys.stdout = sys.stderr = io.StringIO() 21 | __name__ = '__main__'`); 22 | 23 | try { 24 | pyodide.setStdin(); // clear leftover input 25 | pyodide.setStdin({stdin: () => input}); 26 | pyodide.runPython(code); 27 | var stdout = pyodide.runPython("sys.stdout.getvalue()"); 28 | outputFunc(stdout); 29 | } catch (error) { 30 | outputFunc(error.message); 31 | } 32 | if (callback != undefined) { 33 | callback(); 34 | } 35 | } 36 | mainRunPyodide(); 37 | } 38 | }; -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/tutorial01_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_aulas/tutorial01.dart'; 2 | import 'package:flutter_test/flutter_test.dart'; 3 | 4 | void main() { 5 | group('tutorial01', () { 6 | testWidgets('Contém texto "Oi!"', (WidgetTester tester) async { 7 | await tester.pumpWidget(criaApp()); 8 | final finder = find.text('Oi!'); 9 | expect(finder, findsOneWidget); 10 | }); 11 | 12 | testWidgets('O texto está centralizado', (WidgetTester tester) async { 13 | await tester.pumpWidget(criaApp()); 14 | final textFinder = find.text('Oi!'); 15 | 16 | final pos = tester.getCenter(textFinder); 17 | final size = tester.getSize(textFinder); 18 | 19 | expect(pos.dx, 400, 20 | reason: 'O texto deve estar centralizado horizontalmente'); 21 | expect(pos.dy, 300, 22 | reason: 'O texto deve estar centralizado verticalmente'); 23 | expect(size.width, closeTo(42, 20), 24 | reason: 'A largura do texto deve ser aproximadamente 42 pixels'); 25 | expect(size.height, closeTo(14, 10), 26 | reason: 'A altura do texto ser aproximadamente 14 pixels'); 27 | }); 28 | }); 29 | } 30 | -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Início" 4 | date: 2016-07-06 16:40:00 -0300 5 | features: [] 6 | --- 7 | 8 | Disciplinas ministradas pelo professor [Rodrigo Rocha](https://rodrigorgs.github.io/) na UFBA. 9 | 10 | # Disciplinas 11 | 12 | Graduação: 13 | 14 | - [MATA37: Introdução à Lógica de Programação](mata37) 15 | - [MATA56: Paradigmas de Linguagens de Programação](mata56) 16 | - [MATA55: Programação Orientada a Objetos](poo) 17 | 18 | - [MATA62: Engenharia de Software I](mata62) 19 | - [MATB25: Tópicos em Engenharia de Software](topicos-es) - controle de versão e testes 20 | 21 | - [MATC89: Aplicações para Dispositivos Móveis](mobile) 22 | 23 | - [MATA60: Banco de Dados](https://disciplinas.dcc.ufba.br/MATA60/Aulas20152) 24 | - MATA40: Estruturas de Dados e Algoritmos 25 | - [MAT220: Empreendedores em Informática](http://www.moodle.ufba.br/course/view.php?id=869) (duas turmas) 26 | - [MATA76: Linguagens para Aplicação Comercial](http://ufbalac.blogspot.com/) 27 | 28 | Pós-graduação: 29 | 30 | - [MATE94: Engenharia de Software Experimental](https://github.com/rodrigorgs/analise-quantitativa) 31 | 32 | Ver também: [Ensino](https://rodrigorgs.github.io/ensino). 33 | 34 | -------------------------------------------------------------------------------- /mata37/sdl/old/lesson03.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | SDL_Window *window = NULL; 4 | SDL_Surface *screenSurface = NULL; 5 | SDL_Surface *image = NULL; 6 | 7 | void init() { 8 | if (SDL_Init(SDL_INIT_VIDEO) < 0) { 9 | printf("SDL init video error: %s\n", SDL_GetError()); 10 | exit(1); 11 | } 12 | 13 | window = SDL_CreateWindow("Tutorial", 0, 0, 320, 240, SDL_WINDOW_SHOWN); 14 | if (!window) { 15 | printf("Error creating window: %s\n", SDL_GetError()); 16 | } 17 | 18 | screenSurface = SDL_GetWindowSurface(window); 19 | 20 | image = SDL_LoadBMP("hello.bmp"); 21 | if (!image) { 22 | printf("Error loading image: %s\n", SDL_GetError()); 23 | exit(0); 24 | } 25 | } 26 | 27 | int main(int argc, char *argv[]) { 28 | SDL_Event event; 29 | bool quit = false; 30 | 31 | init(); 32 | 33 | 34 | while (!quit) { 35 | while (SDL_PollEvent(&event) != 0) { 36 | if (event.type == SDL_QUIT) { 37 | quit = true; 38 | } 39 | } 40 | 41 | SDL_BlitSurface(image, NULL, screenSurface, NULL); 42 | SDL_UpdateWindowSurface(window); 43 | } 44 | 45 | SDL_FreeSurface(screenSurface); 46 | SDL_DestroyWindow(window); 47 | SDL_Quit(); 48 | 49 | return 0; 50 | } 51 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/widget_test.dart: -------------------------------------------------------------------------------- 1 | // This is a basic Flutter widget test. 2 | // 3 | // To perform an interaction with a widget in your test, use the WidgetTester 4 | // utility in the flutter_test package. For example, you can send tap and scroll 5 | // gestures. You can also use WidgetTester to find child widgets in the widget 6 | // tree, read text, and verify that the values of widget properties are correct. 7 | 8 | import 'package:flutter/material.dart'; 9 | import 'package:flutter_test/flutter_test.dart'; 10 | 11 | import 'package:flutter_aulas/main.dart'; 12 | 13 | void main() { 14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async { 15 | // Build our app and trigger a frame. 16 | await tester.pumpWidget(const MyApp()); 17 | 18 | // Verify that our counter starts at 0. 19 | expect(find.text('0'), findsOneWidget); 20 | expect(find.text('1'), findsNothing); 21 | 22 | // Tap the '+' icon and trigger a frame. 23 | await tester.tap(find.byIcon(Icons.add)); 24 | await tester.pump(); 25 | 26 | // Verify that our counter has incremented. 27 | expect(find.text('0'), findsNothing); 28 | expect(find.text('1'), findsOneWidget); 29 | }); 30 | } 31 | -------------------------------------------------------------------------------- /_layouts/slides-old.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
    10 |
    11 |
    12 | 15 |
    16 |
    17 |
    18 | 19 | 20 | 21 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /poo/aula-modelagem.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: "Modelagem conceitual" 4 | --- 5 | 6 | - CRC Cards: 7 | - Livro de Craig Larman 8 | - Analysis Patterns (Martin Fowler) 9 | - http://ww2.inf.ufg.br/~fabio/manual-modelagem.pdf 10 | 11 | ## Projetando métodos 12 | 13 | Object design is sometimes described as some variation of the following: After identifying your requirements and creating a domain model, then add methods to the software classes, and define the messaging between the objects to fulfill the requirements. 14 | 15 | responsabilidades: knowing, doing 16 | 17 | A responsibility is not the same thing as a method, but methods are imple- mented to fulfill responsibilities 18 | 19 | ## Exemplos 20 | 21 | - site de busca de passagens aéreas (Google Flights) 22 | - Caso de uso. Usuário especifica cidade de origem, cidade de destino, data inicial e final, número de adultos e número de crianças; resultados são voos (aeroporto para aeroporto) de companhias aéreas (dois tipos: voo de ida e voo de volta). Pode haver conexões. Preço. 23 | - site de streaming de vídeo (Netflix) 24 | - serviço de transporte (Uber) 25 | - e-commerce (Amazon) 26 | - site de jogo de cartas online 27 | - vetores (velocidade) -------------------------------------------------------------------------------- /mata37/ordenacao.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Ordenação 4 | --- 5 | 6 | # Ordenação 7 | 8 | - Slides: [Ordenação (prof. Rubisley)](https://docs.google.com/presentation/d/1SBfYu_MiDFzfiV8P3zhs2Wu0yvtAHrFOO7rSkibDd3U/edit) 9 | - Slides: [Ordenação (prof. Rodrigo)](https://drive.google.com/file/d/1_PkM7miyYVZfhzKhBCK-1wyNOlZyclRK/view?usp=sharing) 10 | - Material complementar: 11 | - Vídeo: [Select-sort with Gypsy folk dance](https://www.youtube.com/watch?v=Ns4TPTC8whw) (é uma variação do que vimos em aula) 12 | - Vídeo: [Sorting Algorithms (Computer Science Unplugged)](https://www.youtube.com/watch?v=cVMKXKoGu_Y) 13 | - Vídeo: [Obama: What is the most efficient way to sort a million 32-bit integers?](https://www.quora.com/What-is-the-most-efficient-way-to-sort-a-million-32-bit-integers) 14 | - Vídeo: [Selection Sort (com copos)](https://www.youtube.com/watch?v=f8hXR_Hvybo&list=PLx3witYKF_5L3YKvXS3p3da-rqwghvW_Q) - possui legenda em português 15 | - Vídeo: [15 Sorting Algorithms in 6 Minutes](https://www.youtube.com/watch?v=kPRA0W1kECg) 16 | - [Sorting Algorithms Animations](https://www.toptal.com/developers/sorting-algorithms/) 17 | - Slides: [Busca e Ordenação (prof. Rodrigo)](https://www.slideshare.net/xrodrigorgs/aula-busca-e-ordenao) 18 | -------------------------------------------------------------------------------- /_includes/footer.html: -------------------------------------------------------------------------------- 1 |
    2 | 3 |
    4 | 5 | 6 | 7 | 36 | 37 |
    38 | 39 |
    40 | 41 | {% include footer-items-mata56.html %} -------------------------------------------------------------------------------- /mata37/sdl/old/lesson02a.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | SDL_Window *window = NULL; 4 | SDL_Surface *screenSurface = NULL; 5 | 6 | void init() { 7 | if (SDL_Init(SDL_INIT_VIDEO) < 0) { 8 | printf("SDL init video error: %s\n", SDL_GetError()); 9 | SDL_Quit(); 10 | } 11 | 12 | window = SDL_CreateWindow("Tutorial", 0, 0, 640, 480, SDL_WINDOW_SHOWN); 13 | if (!window) { 14 | printf("Error creating window: %s\n", SDL_GetError()); 15 | SDL_Quit(); 16 | } 17 | 18 | screenSurface = SDL_GetWindowSurface(window); 19 | } 20 | 21 | int main(int argc, char *argv[]) { 22 | SDL_Rect pos; 23 | int i; 24 | 25 | init(); 26 | 27 | SDL_Surface *image = SDL_LoadBMP("hello.bmp"); 28 | if (!image) { 29 | printf("Error loading image: %s\n", SDL_GetError()); 30 | SDL_Quit(); 31 | } 32 | 33 | pos.x = 0; 34 | pos.y = 160; 35 | for (i = 0; i < 320; i++) { 36 | pos.x = i; 37 | SDL_FillRect(screenSurface, NULL, SDL_MapRGB(screenSurface->format, 0, 0, 0)); 38 | SDL_BlitSurface(image, NULL, screenSurface, &pos); 39 | SDL_UpdateWindowSurface(window); 40 | SDL_Delay(10); 41 | } 42 | 43 | SDL_FreeSurface(image); 44 | SDL_FreeSurface(screenSurface); 45 | SDL_DestroyWindow(window); 46 | SDL_Quit(); 47 | 48 | return 0; 49 | } 50 | -------------------------------------------------------------------------------- /demo/slides.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: remark 3 | title: Slide de exemplo 4 | --- 5 | 6 |
    7 | 8 | # Código 9 | 10 | Os slides usam a biblioteca JavaScript Remark. 11 | 12 | Para transformar um documento Markdown em slides, use o layout `remark`: 13 | 14 | ``` 15 | --- 16 | layout: remark 17 | title: Título da página 18 | --- 19 | ``` 20 | 21 | --- 22 | 23 | # Código 24 | 25 | - O documento é escrito em Markdown 26 | - Use `---` para separar slides 27 | - O documento deve estar contido dentro da tag `div`. Exemplo: 28 | 29 | ``` 30 | --- 31 | layout: remark 32 | title: Slides de exemplo 33 | --- 34 | 35 |
    36 | 37 | # Slide 1 38 | 39 | --- 40 | 41 | # Slide 2 42 | 43 |
    44 | ``` 45 | 46 | --- 47 | 48 | # Destaque de linha 49 | 50 | Use um `*` no início de uma linha de código para destacá-la. 51 | 52 | Código: 53 | 54 | ``` 55 | print("Alô, mundo!") 56 | *print("Tchau, mundo!") 57 | ``` 58 | 59 | Resultado: 60 | 61 | ```python 62 | print("Alô, mundo!") 63 | *print("Tchau, mundo!") 64 | ``` 65 | 66 | --- 67 | 68 | class: middle, center 69 | 70 | # Slide de título 71 | 72 | --- 73 | 74 | # Slide de título 75 | 76 | Use esse código: 77 | 78 | ```markdown 79 | --- 80 | 81 | class: middle, center 82 | 83 | # Slide de título 84 | 85 | --- 86 | ``` 87 | 88 |
    -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/md/contasnack.md: -------------------------------------------------------------------------------- 1 | ## Contador 2 | 3 | Crie um `StatelessWidget` chamado `Contador`, que exibe três botões: `+1`, `+5` e `+25`. Ao clicar em cada um deles, o contador é incrementado em 1, 5 e 25, respectivamente, e uma snackbar é exibida com o texto "Contador: ", onde é o valor atual do contador. 4 | 5 | Use uma duração de 500 milissegundos para a snackbar. 6 | 7 | OBS.: Não é uma boa prática guardar o estado do contador dentro de um StatelessWidget, mas vamos fazer isso por enquanto para aprender como funciona. 8 | 9 | 10 | 35 | 36 |
    37 | {% include mobile/problems/flutter_aulas/test/contasnack_test.dart %} 38 |
    -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/layout_col_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_test/flutter_test.dart'; 3 | import '../lib/layout_col.dart'; 4 | 5 | extension SetScreenSize on WidgetTester { 6 | Future setScreenSize( 7 | {double width = 540, 8 | double height = 960, 9 | double pixelDensity = 1}) async { 10 | final size = Size(width, height); 11 | await this.binding.setSurfaceSize(size); 12 | this.binding.window.physicalSizeTestValue = size; 13 | this.binding.window.devicePixelRatioTestValue = pixelDensity; 14 | } 15 | } 16 | 17 | void main() { 18 | testWidgets('LayoutCol widget has expected children', 19 | (WidgetTester tester) async { 20 | await tester.setScreenSize(width: 540, height: 960); 21 | await tester.pumpWidget(meuApp()); 22 | 23 | await expectLater( 24 | find.byType(Column), matchesGoldenFile("goldens/layout_col01.png")); 25 | }); 26 | 27 | testWidgets('LayoutCol widget has expected children', 28 | (WidgetTester tester) async { 29 | await tester.setScreenSize(width: 200, height: 200); 30 | await tester.pumpWidget(meuApp()); 31 | 32 | await expectLater( 33 | find.byType(Column), matchesGoldenFile("goldens/layout_col02.png")); 34 | }); 35 | } 36 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/listview04_test.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_riverpod/flutter_riverpod.dart'; 3 | import 'package:flutter_test/flutter_test.dart'; 4 | import 'package:flutter_aulas/listview04.dart'; 5 | 6 | void main() { 7 | testWidgets('ListView displays all items', (WidgetTester tester) async { 8 | await tester.pumpWidget(ProviderScope( 9 | child: MyApp(), 10 | )); 11 | 12 | expect(find.byType(CircularProgressIndicator), findsOneWidget); 13 | expect(find.text('banana'), findsNothing); 14 | expect(find.text('Item 1'), findsNothing); 15 | 16 | await Duration(seconds: 1, milliseconds: 500); 17 | await tester.pumpAndSettle(); 18 | 19 | expect(find.byType(CircularProgressIndicator), findsNothing); 20 | expect(find.text('banana'), findsNothing); 21 | expect(find.text('Item 1'), findsOneWidget); 22 | }); 23 | } 24 | 25 | ProviderContainer createContainer({ 26 | ProviderContainer? parent, 27 | List overrides = const [], 28 | List? observers, 29 | }) { 30 | final container = ProviderContainer( 31 | parent: parent, 32 | overrides: overrides, 33 | observers: observers, 34 | ); 35 | 36 | addTearDown(container.dispose); 37 | 38 | return container; 39 | } 40 | -------------------------------------------------------------------------------- /lib/codemirror/addon/lint/css-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on csslint.js from https://github.com/stubbornella/csslint 5 | 6 | // declare global: CSSLint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "css", function(text) { 19 | var found = []; 20 | if (!window.CSSLint) return found; 21 | var results = CSSLint.verify(text), messages = results.messages, message = null; 22 | for ( var i = 0; i < messages.length; i++) { 23 | message = messages[i]; 24 | var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col; 25 | found.push({ 26 | from: CodeMirror.Pos(startLine, startCol), 27 | to: CodeMirror.Pos(endLine, endCol), 28 | message: message.message, 29 | severity : message.type 30 | }); 31 | } 32 | return found; 33 | }); 34 | 35 | }); 36 | -------------------------------------------------------------------------------- /_includes/poo/problems/tupy/interruptor.md: -------------------------------------------------------------------------------- 1 | 2 | ## Interruptor e lâmpada 3 | 4 | Considere agora o seguinte diagrama UML: 5 | 6 |
    7 | class Lampada { 8 | - ligada: bool 9 | + liga() 10 | + desliga() 11 | } 12 | 13 | class Interruptor { 14 | - ligado: bool 15 | + conectar(lampada) 16 | + alterna() 17 | } 18 | 19 | Interruptor --> "lampadas *" Lampada 20 |
    21 | 22 | Ambas as classes devem estender a classe Image do Tupy (omitida do diagrama para não poluir). 23 | 24 | Cada interruptor pode estar conectado a várias lâmpadas. Em um dado momento, um interruptor pode estar ligado ou desligado. Ao ser criado, um interruptor deve estar inicialmente desligado. Ao ser ligado, o interruptor deve ligar todas as lâmpadas a ele associadas; ao ser desligado, deve desligar todas as lâmpadas a ele associadas. 25 | 26 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/md/inserir_tarefa.md: -------------------------------------------------------------------------------- 1 | ## Tarefa 2 | 3 | Uma tarefa é representada por um dicionário (`Map`) com os seguintes campos: 4 | 5 | - `titulo`: título da tarefa (string) 6 | - `prioridade`: grau de urgência da tarefa (int) 7 | 8 | Crie uma função, `inserirTarefa`, com três parâmetros posicionais: uma lista de tarefas, um título e, opcionalmente uma prioridade. A função deve adicionar ao final da lista uma tarefa com as informações fornecidas. Se a prioridade não for informada, deve-se assumir que é 5. Se a prioridade for menor que 1, ela não deve ser inserida e a função deve retornar `false`; do contrário, a função deve retornar `true`. 9 | 10 | 28 | 29 |
    30 | {% include mobile/problems/flutter_aulas/test/inserir_tarefa_test.dart %} 31 |
    -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/g_home_test.dart: -------------------------------------------------------------------------------- 1 | // Generated with gen_gtests.py. Do not edit! 2 | import 'package:flutter/material.dart'; 3 | import 'package:flutter_test/flutter_test.dart'; 4 | import '../lib/g_home.dart'; 5 | 6 | extension SetScreenSize on WidgetTester { 7 | Future setScreenSize( 8 | {double width = 540, 9 | double height = 960, 10 | double pixelDensity = 1}) async { 11 | final size = Size(width, height); 12 | await this.binding.setSurfaceSize(size); 13 | this.binding.window.physicalSizeTestValue = size; 14 | this.binding.window.devicePixelRatioTestValue = pixelDensity; 15 | } 16 | } 17 | 18 | void main() { 19 | testWidgets('Test 400x200', 20 | (WidgetTester tester) async { 21 | await tester.setScreenSize(width: 400, height: 200); 22 | final root = buildApp(); 23 | await tester.pumpWidget(root); 24 | 25 | await expectLater( 26 | find.byWidget(root), matchesGoldenFile("goldens/g_home01.png")); 27 | }); 28 | 29 | testWidgets('Test 300x500', 30 | (WidgetTester tester) async { 31 | await tester.setScreenSize(width: 300, height: 500); 32 | final root = buildApp(); 33 | await tester.pumpWidget(root); 34 | 35 | await expectLater( 36 | find.byWidget(root), matchesGoldenFile("goldens/g_home02.png")); 37 | }); 38 | } 39 | -------------------------------------------------------------------------------- /_includes/mobile/problems/flutter_aulas/test/g_like_test.dart: -------------------------------------------------------------------------------- 1 | // Generated with gen_gtests.py. Do not edit! 2 | import 'package:flutter/material.dart'; 3 | import 'package:flutter_test/flutter_test.dart'; 4 | import '../lib/g_like.dart'; 5 | 6 | extension SetScreenSize on WidgetTester { 7 | Future setScreenSize( 8 | {double width = 540, 9 | double height = 960, 10 | double pixelDensity = 1}) async { 11 | final size = Size(width, height); 12 | await this.binding.setSurfaceSize(size); 13 | this.binding.window.physicalSizeTestValue = size; 14 | this.binding.window.devicePixelRatioTestValue = pixelDensity; 15 | } 16 | } 17 | 18 | void main() { 19 | testWidgets('Test 400x200', 20 | (WidgetTester tester) async { 21 | await tester.setScreenSize(width: 400, height: 200); 22 | final root = buildApp(); 23 | await tester.pumpWidget(root); 24 | 25 | await expectLater( 26 | find.byWidget(root), matchesGoldenFile("goldens/g_like01.png")); 27 | }); 28 | 29 | testWidgets('Test 300x500', 30 | (WidgetTester tester) async { 31 | await tester.setScreenSize(width: 300, height: 500); 32 | final root = buildApp(); 33 | await tester.pumpWidget(root); 34 | 35 | await expectLater( 36 | find.byWidget(root), matchesGoldenFile("goldens/g_like02.png")); 37 | }); 38 | } 39 | -------------------------------------------------------------------------------- /mata37/js-parsons/lib/jquery.ui.touch-punch.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Touch Punch 0.2.3 3 | * 4 | * Copyright 2011–2014, Dave Furfero 5 | * Dual licensed under the MIT or GPL Version 2 licenses. 6 | * 7 | * Depends: 8 | * jquery.ui.widget.js 9 | * jquery.ui.mouse.js 10 | */ 11 | !function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery); --------------------------------------------------------------------------------