Mudanças entre as edições de "FIC MATLAB 2018-1"
(→Aula 9) |
|||
(41 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 637: | Linha 637: | ||
{{collapse top| bg=lightblue | 05/Abr - Variáveis lógicas; Operadores relacionais e lógicos}} | {{collapse top| bg=lightblue | 05/Abr - Variáveis lógicas; Operadores relacionais e lógicos}} | ||
− | * Variáveis lógicas: | + | * Variáveis lógicas (''booleanas''): |
:* Comando ''logical'' | :* Comando ''logical'' | ||
Linha 664: | Linha 664: | ||
|} | |} | ||
− | :* Operadores lógicos | + | :* Operadores lógicos: |
:::{| class="wikitable" | :::{| class="wikitable" | ||
Linha 678: | Linha 678: | ||
| xor(a,b) || XOR | | xor(a,b) || XOR | ||
|} | |} | ||
+ | |||
+ | :* Comparação de vetores ou matrizes: | ||
+ | ::* Comando ''isequal'' | ||
:* Comparação de ''strings'': | :* Comparação de ''strings'': | ||
Linha 735: | Linha 738: | ||
=== Aula 9 === | === Aula 9 === | ||
− | {{collapse top| bg=lightblue | 10/Abr - Controle de fluxo de dados - ''if'' e ''switch'' | + | {{collapse top| bg=lightblue | 10/Abr - Controle de fluxo de dados - ''if'' e ''switch''}} |
* Controle de fluxo de dados: | * Controle de fluxo de dados: | ||
Linha 746: | Linha 749: | ||
:1. Crie um programa que recebe do usuário um número ''X''. Se este número for maior que 10, então, o programa deve mostrar o quadrado do número ''X''. Caso contrário, o número ''X'' deve ser exibido junto com uma mensagem de boa noite. | :1. Crie um programa que recebe do usuário um número ''X''. Se este número for maior que 10, então, o programa deve mostrar o quadrado do número ''X''. Caso contrário, o número ''X'' deve ser exibido junto com uma mensagem de boa noite. | ||
− | :2. Crie um código que calcula o valor gasto total (em R$) e o peso total (em kg) da compra de algumas unidades de arroz (5 kg), feijão (1 kg) e café (500 g). | + | :2. Escreva um programa no qual o usuário irá entrar com uma ''string'', que irá informar o assunto de uma discussão em um bate-papo da UOL. O programa deverá mostrar uma mensagem de boas vindas relacionada ao tema nos casos em que o tema seja '''cinema''', '''moda''' ou '''gastronomia'''. Se o assunto for '''politica''', '''futebol''' ou '''religiao''', o programa deverá informar que estes assuntos estão proibidos. Qualquer outro assunto é inválido, e deverá receber uma mensagem crítica. |
+ | |||
+ | :3. Escreva um programa no qual o usuário fornece três valores: o valor inicial, o valor final e o passo de um intervalo. Crie proteções para que o intervalo seja consistente. Por exemplo, se o valor final for menor que o valor inicial, então o passo deve ser negativo. Ao fim do programa, exiba <math>x^2</math>, onde ''x'' é o intervalo. | ||
+ | |||
+ | :4. Crie um código que calcula o valor gasto total (em R$) e o peso total (em kg) da compra de algumas unidades de arroz (5 kg), feijão (1 kg) e café (500 g). | ||
::* O usuário deve fornecer quantas unidades quer comprar de cada produto (comando ''input''). | ::* O usuário deve fornecer quantas unidades quer comprar de cada produto (comando ''input''). | ||
::* Os dados devem ser validados: verificar se o usuário forneceu alguma quantidade negativa. | ::* Os dados devem ser validados: verificar se o usuário forneceu alguma quantidade negativa. | ||
Linha 754: | Linha 761: | ||
:::# O preço unitário do café é R$10,00. Se comprar 3 ou mais, o preço cai para R$9,25 cada. | :::# O preço unitário do café é R$10,00. Se comprar 3 ou mais, o preço cai para R$9,25 cada. | ||
− | : | + | :5. Implemente uma calculadora com as quatro operações básicas, recebendo a escolha de operação e números com o comando ''input''. Não se esqueça de implementar proteções para as entradas de dados (divisão por zero, vetores, etc). |
+ | |||
+ | :6. Modifique o programa do cálculo do IMC de modo a informar ao usuário o grau de magreza/obesidade do indivíduo (veja [https://pt.wikipedia.org/wiki/%C3%8Dndice_de_massa_corporal#Classifica%C3%A7%C3%A3o aqui]). | ||
Linha 764: | Linha 773: | ||
* '''Exercício''': | * '''Exercício''': | ||
− | :1. Reescreva o código da | + | :1. Reescreva o código da questão 2 anterior (bate-papo da UOL) fazendo o uso da sentença ''switch''. |
+ | :2. Reescreva o código da questão 5 anterior (calculadora) fazendo o uso da sentença ''switch''. | ||
+ | |||
+ | |||
+ | * [[FIC MATLAB 2018-1/Aula-9|Códigos executados em sala]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === Aula 10 === | ||
+ | {{collapse top| bg=lightblue | 12/Abr - Structs; Cells}} | ||
* Estruturas | * Estruturas | ||
Linha 848: | Linha 866: | ||
− | |||
− | + | * [[FIC MATLAB 2018-1/Aula-10|Códigos executados em sala]] | |
+ | {{collapse bottom}} | ||
− | + | === Aula 11 === | |
− | + | {{collapse top| bg=lightblue | 17/Abr - Estruturas de repetição - ''for'' e ''while''}} | |
− | {{collapse top| bg=lightblue | | ||
* Estruturas de repetição: | * Estruturas de repetição: | ||
Linha 921: | Linha 938: | ||
::Plote em um mesmo gráfico a função ''f''(''x'') e sua representação em série ''g''(''x''), utilizando um número de termos definido pelo usuário. | ::Plote em um mesmo gráfico a função ''f''(''x'') e sua representação em série ''g''(''x''), utilizando um número de termos definido pelo usuário. | ||
− | * [[FIC MATLAB | + | |
+ | * [[FIC MATLAB 2018-1/Aula-11|Códigos executados em sala]] | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | === Aula | + | === Aula 12 === |
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 19/Abr - Funções; Exercícios}} |
* Funções definidas pelo usuário | * Funções definidas pelo usuário | ||
Linha 936: | Linha 954: | ||
*'''Exercícios:''' | *'''Exercícios:''' | ||
− | :1. Adapte os Exercícios 2 e 3 da Aula | + | :1. Adapte os Exercícios 2 e 3 da Aula 11 de modo a utilizar funções. |
:2. Escreva uma função que retorna a média aritmética e a média geométrica de dois dados números. | :2. Escreva uma função que retorna a média aritmética e a média geométrica de dois dados números. | ||
Linha 960: | Linha 978: | ||
− | * | + | * [[FIC MATLAB 2018-1/Aula-12|Códigos executados em sala]] |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | {{collapse bottom}} | |
− | + | === Aula 13 === | |
+ | {{collapse top| bg=lightblue | 24/Abr - Processamento de imagens}} | ||
+ | <!--'''Pro futuro:''' Usar ''im2double''!--> | ||
− | + | [[Curso Matlab aplicado ao processamento de imagens - Aula 3]] | |
− | |||
− | |||
− | + | [[FIC MATLAB 2017-2/Aula-11|Códigos executados em sala]] | |
− | |||
− | |||
− | |||
{{collapse bottom}} | {{collapse bottom}} | ||
− | === Aula | + | === Aula 14 === |
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 26/Abr - Importação de dados; Gráficos em 2D e 3D}} |
− | ''' | + | * Importação de dados |
+ | :* Comando ''uiimport'' | ||
+ | :* Formato do separador decimal (''.'' ou '','') | ||
+ | : Exemplo: usar [https://wiki.sj.ifsc.edu.br/images/8/84/Celular4g.txt Celular4g.txt], importar e trabalhar com as funções de matrizes. | ||
− | |||
+ | *'''Exercícios''': | ||
− | [ | + | :1. Com o arquivo [https://wiki.sj.ifsc.edu.br/images/f/fe/Add_user.txt Add_user.txt] (Adições Líquidas de Aparelhos 4G das Operadoras no período), calcular a soma dos anos 2014, 2015 e 2016 (até o momento) por operadora e a soma e a média por período. |
− | |||
− | |||
− | |||
− | |||
* '''Gráficos em 2D''' | * '''Gráficos em 2D''' | ||
Linha 1 084: | Linha 1 093: | ||
:3. As seguintes funções descrevem as oscilações em circuitos elétricos e as vibrações de máquinas e estruturas. Sobreponha as plotagens dessas funções no mesmo eixo. Como elas são similares, defina qual é a melhor forma de plotá-las e de rotulá-las para evitar confusão. | :3. As seguintes funções descrevem as oscilações em circuitos elétricos e as vibrações de máquinas e estruturas. Sobreponha as plotagens dessas funções no mesmo eixo. Como elas são similares, defina qual é a melhor forma de plotá-las e de rotulá-las para evitar confusão. | ||
− | ::: <math>x(t) = 1000 e^{-0,5t} \mathrm{sen}(3t+2)</math> | + | ::: <math>\displaystyle{x(t) = 1000 e^{-0,5t} \mathrm{sen}(3t+2)}</math> |
− | ::: <math>y(t) = 7 e^{-0,4t} \cos(5t-3)</math> | + | ::: <math>\displaystyle{y(t) = 7 e^{-0,4t} \cos(5t-3)}</math> |
Linha 1 120: | Linha 1 129: | ||
[[Arquivo:FIC_Matlab_Exercicios_plot.pdf|Exercícios]] | [[Arquivo:FIC_Matlab_Exercicios_plot.pdf|Exercícios]] | ||
− | * [[FIC MATLAB | + | * [[FIC MATLAB 2018-1/Aula-14|Códigos executados em sala]] |
{{collapse bottom}} | {{collapse bottom}} | ||
− | === Aula | + | === Aula 15 === |
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 03/Mai - Solução de sistemas de equações; Toolbox simbólico}} |
+ | |||
+ | * Sistemas de equações lineares | ||
+ | :* Encontrando a solução de ''Ax = b'' com ''A\b'' | ||
+ | <!-- Talvez falar sobre a função rref - forma escalonada reduzida de linha --> | ||
+ | ::* Exemplo: Balanceamento de equações químicas | ||
+ | |||
+ | :::::<math>C_3 H_8 + O_2 \longrightarrow CO_2 + H_2 O</math> | ||
+ | |||
+ | :::::<math>x (C_3 H_8) + y (O_2) \longrightarrow z (C O_2) + w (H_2 O)</math> | ||
+ | |||
+ | :::::<math>\begin{cases} | ||
+ | 3x = z & \text{(carbono)} \\ | ||
+ | 8x = 2w & \text{(hidrogenio)} \\ | ||
+ | 2y = 2z + w & \text{(oxigenio)} \\ | ||
+ | x + y + z + w = 1 & \text{(normalizacao)} \\ | ||
+ | \end{cases}</math> | ||
+ | |||
+ | :::::<math>\begin{cases} | ||
+ | 3x - z = 0 \\ | ||
+ | 8x - 2w = 0 \\ | ||
+ | 2y - 2z - w = 0 \\ | ||
+ | x + y + z + w = 1 \\ | ||
+ | \end{cases}</math> | ||
+ | |||
+ | <!-- [[Image:MATLAB_Chem_Balance.jpg|300px|center]] --> | ||
+ | |||
+ | |||
+ | * Toolbox simbólico | ||
+ | |||
+ | :* Básico | ||
+ | |||
+ | ::* Comandos ''syms'' e ''sym'' | ||
+ | ::* Comandos ''pretty'' e ''latex'' | ||
+ | ::* Comando ''subs'' | ||
+ | :::* Valores via argumento da função | ||
+ | :::* Valores retirados do workspace | ||
+ | ::* Comandos ''factor'', ''expand'', ''collect'' e ''simplify'' | ||
− | + | :* Cálculo | |
− | + | ::* Comando ''limit'': Limites | |
− | + | :::* <math>\lim_{x \to 0} \frac{\sin(x)}{x}</math> | |
− | * Comando '' | + | :::* <math>\lim_{x \to \infty} \left( 1 + \frac{1}{x} \right)^x</math> |
− | :* | + | ::* Comando ''diff'': Derivada primeira, segunda, terceira, etc. |
− | :* | + | ::* Comando ''int'': Integrais indefinidas e definidas |
− | * | + | :::* <math>\int x^a dx</math> |
− | ''' | + | :* Interlúdio: comandos ''assume'' e ''assumptions'' |
− | + | :* Mais cálculo | |
− | |||
− | |||
− | |||
− | |||
− | :* | ||
− | * | + | ::* Comando ''taylor'': Séries de Taylor |
+ | ::* Comando ''symsum'': Somatórios / séries | ||
+ | ::* Outros: ''dsolve'', ''fourier'', ''laplace'', ''partfrac'' | ||
− | * | + | :* Solução de equações |
− | * Comando '' | + | ::* Comando ''solve'' |
− | |||
− | + | [[FIC MATLAB 2018-1/Aula-15|Códigos executados em sala]] | |
− | + | {{collapse bottom}} | |
+ | === Aula 16 === | ||
− | + | {{collapse top| bg=lightblue | 08/Mai - Projeto}} | |
+ | |||
+ | Aula dedicada ao projeto. | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | === Aula | + | === Aula 17 === |
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 10/Mai - Interface gráfica}} |
[[Curso Matlab aplicado ao processamento de imagens - Aula 2|Aula]] | [[Curso Matlab aplicado ao processamento de imagens - Aula 2|Aula]] | ||
Linha 1 334: | Linha 1 379: | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | + | [[FIC MATLAB 2018-1/Aula-17|Códigos executados em sala]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{collapse bottom}} | {{collapse bottom}} | ||
− | === Aula | + | === Aula 18 === |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | {{collapse top| bg=lightblue | 15/Mai - Projeto}} | |
− | {{collapse top| bg=lightblue | | ||
Aula dedicada ao projeto. | Aula dedicada ao projeto. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{collapse bottom}} | {{collapse bottom}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Aula 19 === | === Aula 19 === | ||
− | |||
− | - | + | {{collapse top| bg=lightblue | 17/Mai - Projeto}} |
− | + | Aula dedicada ao projeto. | |
− | |||
− | |||
− | |||
{{collapse bottom}} | {{collapse bottom}} | ||
+ | === Aula 20 === | ||
− | + | {{collapse top| bg=lightblue | 22/Mai - Projeto}} | |
− | {{collapse top| bg=lightblue | | ||
− | + | Aula dedicada ao projeto. | |
− | |||
{{collapse bottom}} | {{collapse bottom}} | ||
− | |||
− | |||
== Questões da turma == | == Questões da turma == | ||
Linha 1 571: | Linha 1 434: | ||
:batalha naval | :batalha naval | ||
− | {{collapse bottom}} | + | <!--{{collapse bottom}}--> |
Edição atual tal como às 19h09min de 22 de maio de 2018
Informações Básicas
- Código: MLB16470
- Professores: Diego da Silva de Medeiros e Roberto Wanderley da Nóbrega
- Início: 13/Mar/2018
- Término: 22/Mai/2018
- Horário: Terças e quintas, das 19h às 22h
- Referência Básica: William J. Palm III: Introdução ao MATLAB para Engenheiros. Tradução de Tales Argolo Jesus. 3. ed. Porto Alegre: AMGH, 2013. xiv, 562, il. ISBN 9788580552041
- Referência Complementar: Vagner Morais, Cláudio Vieira: MATLAB: Curso Completo. FCA, 2013. 644. ISBN 9727227058
Conteúdos Abordados
Aula 1
13/Mar - Apresentação da disciplina; Interface do MATLAB; Operadores; Funções; Constantes especiais | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Observações:
|
Aula 2
15/Mar - Formatos de exibição; Vetores e matrizes | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 3
20/Mar - Operações com matrizes; Plots | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 4
22/Mar - Exercícios plot; Números aleatórios |
---|
|
Aula 5
27/Mar - Endereçamento e concatenação de vetores e matrizes; Repmat e Reshape |
---|
|
Aula 6
29/Mar - Conjuntos; Polinômios; Texto; Entrada e saída de dados |
---|
|
Aula 7
03/Abr - Aula de exercícios | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 8
05/Abr - Variáveis lógicas; Operadores relacionais e lógicos | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 9
10/Abr - Controle de fluxo de dados - if e switch |
---|
|
Aula 10
12/Abr - Structs; Cells | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 11
17/Abr - Estruturas de repetição - for e while | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 12
19/Abr - Funções; Exercícios |
---|
|
Aula 13
24/Abr - Processamento de imagens |
---|
Aula 14
26/Abr - Importação de dados; Gráficos em 2D e 3D | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 15
03/Mai - Solução de sistemas de equações; Toolbox simbólico |
---|
|
Aula 16
08/Mai - Projeto |
---|
Aula dedicada ao projeto. |
Aula 17
10/Mai - Interface gráfica | ||
---|---|---|
|
Aula 18
15/Mai - Projeto |
---|
Aula dedicada ao projeto. |
Aula 19
17/Mai - Projeto |
---|
Aula dedicada ao projeto. |
Aula 20
22/Mai - Projeto |
---|
Aula dedicada ao projeto. |
Questões da turma
Projetos finais
Ideias
Hachuras em gráficos de barras
Implementar uma função em MATLAB que plote um gráfico de barras com hachuras. O comportamento deve ser semelhante ao comando bar, nativo do MATLAB, mas parâmetros poderão ser acrescentados para controle da trama. Um exemplo de resultado pode ser visto na figura abaixo:
Genius®
Implementar uma versão avançada do jogo Genius® construído na aula 9, adicionando sons, elementos gráficos, etc.
Outros
- relógio analógico
- dtmf
- sudoku
- jogo da velha
- contar moedas
- esteganografia
- batalha naval