Este é o blog de relacionamento com alunos de Fábio Nakano.
Desejo testar se esta mídia facilita a comunicação e aprendizado de conteúdo.
Gostaria que vocès dessem notas mais altas para posts que ajudaram mais a entender o assunto (e não por outro critério, por exemplo o melhor escrito ou o mais "bonito")
fabionakano at usp dot br
Prédio A1, segundo andar - Sala 204E
Caso precise do mapa do Campus:http://each.uspnet.usp.br/site/mapa.php
Siga-me por email preenchendo a caixa abaixo.
quinta-feira, 22 de agosto de 2019
links aula 22 de agosto
aula de 23.08: http://www.each.usp.br/digiampietri/SIN5013/02-complexidadeAssintotica.pdf
vocabulário para argumentação matemática: http://www.comp.uems.br/~fhna/ca/180613/Alguns%20termos.pdf
sábado, 3 de agosto de 2019
Exemplo 3 de algoritmo recursivo - "quebrando" o problema em dois, fazendo duas chamadas recursivas.
import java.lang.Exception;
|
| Java2html |
O aspecto mais relevante, neste momento da disciplina, é a sequência de invocações e retornos dos métodos. Neste exemplo particular é uma árvore binária.
Nesta solução, fazer duas invocações (chamadas) recursivas é uma possibilidade, idéia que pode ser notada como: prod(a,b)= prod (a,b/2) + prod (a,b/2) + ((b%2)==1)?a:0. Como notado em aula, esta solução é menos eficiente que a do exemplo 2. Através do cálculo da complexidade assintótica (assunto das próximas aulas) é possível mostrar que a função de complexidade de tempo desta solução pertence à mesma classe da função de complexidade da solução 1.
Exemplo 2 de algoritmo recursivo - "quebrando" o problema em dois.
import java.lang.Exception;
|
| Java2html |
O cálculo do produto pode ser feito "diminuindo o tamanho do problema de uma unidade" ié: prod(a,b) = a + prod (a, b-1), ou "diminuindo o tamanho do problema pela metade (e dobrando o valor)" ié: prod(a,b) = 2*prod(a,b/2) + ((b%2)==1)?a:0. O tempo de execução da primeira solução é proporcional ao valor de b, o da segunda é proporcional ao log de b na base 2.
Exemplo de recursão com impressão da pilha de execução
import java.lang.Exception;
|
| Java2html |
O objeto Exception e armazena uma representação da pilha de execução no momento em que é instanciado. Aproveito isso para imprimir a pilha de execução antes e depois de cada invocação (chamada) recursiva. Isto traz informação que permite "ver" a pilha de execução crescendo à medida em que as invocações são feitas e diminuindo à medida que as invocações retornam.
Exemplo de algoritmo recursivo: Cálculo de produto usando somas.
import java.lang.Exception;
|
| Java2html |
quinta-feira, 1 de agosto de 2019
domingo, 6 de agosto de 2017
Parada4 - 01.08.2017
01 /** Tentativas para fazer a sequência de invocações
|
| Java2html |
Parada3 - 01.08.2017
01 /** Tentativas para fazer a sequência de invocações
|
| Java2html |
Parada2 - 01.08.2017
01 /** Tentativas para fazer a sequência de invocações
|
| Java2html |
Parada1 - 01.08.2017
01 /** Tentativas para fazer a sequência de invocações
|
| Java2html |
Métodos e pilha de execução - Aula de 01.08.2017
01 /** A construção de um método recursivo em partes.
|
| Java2html |
Parâmetros - Aula de 01.08.2017
01 /** passagem de parâmetros
|
| Java2html |
terça-feira, 1 de agosto de 2017
Introdução à Análise de Algoritmos - planejamento e referências.
Na figura a bibliografia, tópicos principais e datas importantes.
O semestre é dividido em dois períodos. O primeiro período corresponde é o de aulas, o segundo período ao de recuperação. O calendário USP 2017 contém as datas de referência.
Segundo o Regimento Geral artigo 84 (consultado em 07.03.2017), Artigo 84 – Será aprovado, com direito aos créditos correspondentes, o aluno que obtiver nota final igual ou superior a cinco e tenha, no mínimo, setenta por cento de freqüência na disciplina.
No primeiro período haverá duas provas. O estudante que deixar de fazer uma delas pode fazer a prova substitutiva sem necessidade de justificativa adicional (critério estabelecido pelo docente).
P1: 15.09.2017
P2:
PSUB: 01.12.2017
PREC: 22.01.2018 (segunda-feira)
A média das provas é calculada: MP=0.4P1+0.6*P2
No primeiro período haverá 2 Exercícios-programa (EP). Tarefas realizadas em casa, entregues através do Tidia*
* Este é o Tidia 4, até o ano passado eu usava o Tidia 3.
divulgação entrega tema
EP1 31.08 02.10 (22h) backtracking
EP2 08.11 08.12 (22h) hashing
A média dos EP é calculada MEP=(EP1+EP2)/2
A média no primeiro período é calculada: M1=0.8*MP+0.2*MEP
Tem nota para aprovação quem obtiver M1>=5.0 (obs.: 4,95<5.0)
No segundo período é realizada a avaliação de recuperação. Pode fazê-la quem tiver M1>=3.0
PREC: 22.01.2018 (segunda-feira)
A média no segundo período é calculada:
M2=(M1+PREC)/2
Tem nota para aprovação quem obtiver M2>=5.0 (obs.: 4,95<5.0)
A frequência mínima é de 70%, comprovada por assinatura em lista de presença. O abono de faltas é regulamentado por portaria da Comissão de Graduação.
domingo, 12 de março de 2017
Comandos para navegar no sistema de arquivos
Dada a concentração de uso de sistemas operacionais em algumas marcas e em duas categorias:
- POSIX e Windows, acho suficiente mencionar os dois. POSIX é a norma que uniformiza todos os sistemas operacionais do tipo UNIX, entre eles LINUX, Android (que é uma variante de LINUX), BSD (Berkeley Software Distribution), iOS (uma variante de BSD) se aproximam do que está nessa norma.
- Windows é o sistema operacional desenvolvido, mantido e comercializado pela Microsoft.
Trabalharemos em linha de comando e somente as operações básicas.
Sempre que abrimos o terminal (linha de comando) estamos operando sobre algum diretório.
se não tiver argumento de chamada então assume diretório corrente,
| Operação | Comando POSIX | Comando Windows | Nota |
| Informa diretório corrente | pwd | cd | |
| Lista conteúdo do diretório indicado | ls | dir | |
| Cria diretório | mkdir | md | |
| Remove diretório | rmdir | rd | |
| Vai para diretório | cd | cd | |
| Copia arquivo | cp | copy | |
| Remove arquivo | rm | del | |
| Renomeia arquivo | mv | ren | |
| Move arquivo arquivo | mv | move |
Todos os comandos têm help.
Em LINUX use
em Windows





