Mudanças entre as edições de "FIC MATLAB 2017-2"
(59 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 541: | Linha 541: | ||
=== Aula 6 === | === Aula 6 === | ||
− | {{collapse top| bg=lightblue | 26/Set - Concatenação de matrizes; Polinômios; Texto; Entrada e saída de dados}} | + | {{collapse top| bg=lightblue | 26/Set - Concatenação de matrizes; Polinômios; Conjuntos; Texto; Entrada e saída de dados}} |
* Concatenação de vetores e matrizes | * Concatenação de vetores e matrizes | ||
Linha 646: | Linha 646: | ||
| ǀǀ || OR | | ǀǀ || OR | ||
|} | |} | ||
+ | |||
+ | :* Comparação de ''strings'': | ||
+ | ::* Comandos ''strcmp'' e ''strcmpi'' | ||
Linha 736: | Linha 739: | ||
:* Comando ''rmfield'' para remover campo da estrutura | :* Comando ''rmfield'' para remover campo da estrutura | ||
+ | |||
+ | * '''Exercícios:''' | ||
:1. Crie um arranjo de estruturas que contenha os os seguintes campos de informação concernentes a pontes rodoviárias em uma cidade: localização da ponte, carga máxima (toneladas), ano de construção, ano agendado para a manutenção. | :1. Crie um arranjo de estruturas que contenha os os seguintes campos de informação concernentes a pontes rodoviárias em uma cidade: localização da ponte, carga máxima (toneladas), ano de construção, ano agendado para a manutenção. | ||
Linha 812: | Linha 817: | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | |||
− | |||
− | |||
=== Aula 9 === | === Aula 9 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 05/Out - Estruturas de repetição - ''for'' e ''while''}} |
− | |||
* Estruturas de repetição: | * Estruturas de repetição: | ||
Linha 825: | Linha 826: | ||
:* Sentenças ''break'' e ''continue'' | :* Sentenças ''break'' e ''continue'' | ||
− | |||
− | : | + | * '''Exercícios:''' |
+ | |||
+ | :1. Acrescente à calculadora a possibilidade de continuar realizando cálculos até que o usuário solicite a saída digitando 's'. | ||
+ | |||
+ | :2. Escreva um programa que calcule o fatorial de um número, utilizando ''for'' e ''while''. | ||
+ | |||
+ | :3. Escreva um programa que calcule os ''n'' primeiros termos da sequência de Fibonacci, dispondo-os num vetor. | ||
+ | |||
+ | :4. Considere os códigos abaixo: | ||
+ | |||
+ | :::{| class="wikitable" | ||
+ | ! style="font-weight: bold;" | Símbolo | ||
+ | ! style="font-weight: bold;" | A | ||
+ | ! style="font-weight: bold;" | B | ||
+ | ! style="font-weight: bold;" | C | ||
+ | ! style="font-weight: bold;" | D | ||
+ | ! style="font-weight: bold;" | E | ||
+ | ! style="font-weight: bold;" | F | ||
+ | |- | ||
+ | | style="font-weight: bold;" | Código 1 | ||
+ | | 000 | ||
+ | | 001 | ||
+ | | 010 | ||
+ | | 011 | ||
+ | | 100 | ||
+ | | 101 | ||
+ | |- | ||
+ | | style="font-weight: bold;" | Código 2 | ||
+ | | 00 | ||
+ | | 10 | ||
+ | | 11 | ||
+ | | 010 | ||
+ | | 0110 | ||
+ | | 0111 | ||
+ | |} | ||
+ | |||
+ | ::a) Escreva um programa que codifique uma sequência de símbolos, gerando a sequência de bits correspondente. Seu programa deverá funcionar tanto para o código 1 quanto para o código 2. Teste seu programa com a seguinte ''string'': F A D A B A B A C A. | ||
+ | |||
+ | ::b) Escreva um programa que decodifique uma ''string'' recuperando a sequência de símbolos original. Teste seu programa com a seguinte sequência de bits: | ||
+ | ::: '''Código 1''': 001000001000101100011100 | ||
+ | ::: '''Código 2''': 10001000011101100100110 | ||
− | * [[FIC MATLAB 2017- | + | ::c) Junte os dois códigos anteriores num único programa, onde o usuário seleciona a operação (codificação ou decodificação), o código (1 ou 2), e entra com o dado a ser operado. |
+ | |||
+ | :5. Escreva um programa que implementa o jogo [https://www.youtube.com/watch?v=8nOQ8mcOTLY Genius®]. O programa deverá gerar uma sequência aleatória de letras e/ou números e exibir um por um na tela, limpando-a em seguida. Após isso, aguardará o usuário entrar com a sequência. | ||
+ | |||
+ | :6. A série de Fourier é uma representação em série de funções periódicas em termos de senos e cossenos. A representação em série de Fourier da função | ||
+ | :::::<math>f(x) = | ||
+ | \begin{cases} | ||
+ | -1, & -\pi \leq x \leq 0 \\ | ||
+ | 1, & 0 \leq x \leq \pi | ||
+ | \end{cases}</math> | ||
+ | ::é | ||
+ | :::::<math>g(x) = \frac{4}{\pi} \left( \frac{\sin(x)}{1} + \frac{\sin(3x)}{3} + \frac{\sin(5x)}{5} + \frac{\sin(7x)}{7} + \cdots \right)</math>. | ||
+ | ::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 2017-2/Aula-9|Códigos executados em sala]] | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | === Aula | + | === Aula 10 === |
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 10/Out - Funções; Importação de dados; Solução de sistemas de equações}} |
+ | |||
+ | * Funções definidas pelo usuário | ||
+ | :* Único retorno | ||
+ | :* Múltiplos retornos | ||
+ | :* Comando ''return'' | ||
+ | |||
− | * | + | *'''Exercícios:''' |
− | : | + | :1. Adapte os Exercícios 2 e 3 da Aula 9 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. |
− | : | + | :3. Escreva uma função que determina o tempo (em anos) necessário para que você acumule pelo menos VF (em dólares) em uma conta bancária se você depositar inicialmente V0 (em dólares) e mais P (em dólares) ao final de cada ano, com um rendimento anual de R%. |
− | : | + | :4. Fazer o ''plot'' de um sinal de tensão versus tempo, como da figura, usando os conceitos da aula de hoje. |
− | :: | + | :::::<math>f(t) = |
− | + | \begin{cases} | |
− | + | \sin(2 \pi t / 63), & \text{de } t = 1s \text{ ate } t = 63s \\ | |
− | + | 0, & \text{de } t = 64s \text{ ate } t = 80s \\ | |
+ | 1, & \text{de } t = 81s \text{ ate } t = 100s \\ | ||
+ | -1, & \text{de } t = 101s \text{ ate } t = 120s | ||
+ | \end{cases}</math> | ||
:: Não esquecer de nomear os eixos. | :: Não esquecer de nomear os eixos. | ||
− | [[Image:Exercícios Aula 3 FIC Matlab.jpg| | + | [[Image:Exercícios Aula 3 FIC Matlab.jpg|400px|center]] |
+ | |||
+ | :5. Escreva uma função que implementa a [https://pt.wikipedia.org/wiki/Cifra_de_C%C3%A9sar Cifra de César]. A entrada da função deve ser: | ||
+ | ::* O ''string'' a ser codificado/decodificado; | ||
+ | ::* O deslocamento a ser aplicado em cada letra do ''string'', podendo ser um inteiro positivo (deslocamento para a direita) ou negativo (deslocamento para a esquerda). | ||
+ | |||
+ | :6. Escreva uma função que retorna todos os números primos menores ou iguais a um dado inteiro ''n''. Utilize o algoritmo do [https://pt.wikipedia.org/wiki/Crivo_de_Erat%C3%B3stenes Crivo de Erastótenes]. | ||
+ | |||
+ | |||
+ | * 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. | ||
+ | |||
+ | |||
+ | * 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 --> | ||
+ | |||
+ | [[Image:MATLAB_Chem_Balance.jpg|300px|center]] | ||
+ | |||
+ | |||
+ | * [[FIC MATLAB 2017-2/Aula-10|Códigos executados em sala]] | ||
+ | {{collapse bottom}} | ||
− | + | === Aula 11 === | |
− | + | {{collapse top| bg=lightblue | 17/Out - 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 12 === |
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 19/Out - Gráficos em 2D e 3D}} |
+ | |||
+ | * '''Gráficos em 2D''' | ||
+ | |||
+ | :* Revisão: Comandos ''plot'', ''stem'', ''bars'' e ''stairs'' | ||
+ | |||
+ | :* Comandos ''semilogx'', ''semilogy'' e ''loglog'' | ||
+ | |||
+ | ::* Exemplo: Resposta em frequência de um [https://en.wikipedia.org/wiki/Low-pass_filter filtro passa-baixa] de segunda ordem: | ||
− | + | :::<math>H(\omega) = \dfrac{1}{\sqrt{1 + \omega^2}}</math> | |
− | :* | + | :* Comando ''polar'' |
− | |||
− | :* | + | ::* Exemplo: [https://pt.wikipedia.org/wiki/Rosa_polar Rosas polares]: |
+ | ::: <math>\rho = \mathrm{cos}(k \theta)</math>, onde ''k'' é um parâmetro. | ||
− | |||
− | |||
::* Números complexos e funções ''abs'' e ''angle'' | ::* Números complexos e funções ''abs'' e ''angle'' | ||
− | :* | + | :* Comando ''plotyy'' para plotar gráficos com dois eixos em '''y'''. |
− | |||
− | |||
− | |||
:* Letras gregas nos gráficos: | :* Letras gregas nos gráficos: | ||
− | {| | + | :::{| class="wikitable" |
! '''Letra''' | ! '''Letra''' | ||
! '''Representação''' | ! '''Representação''' | ||
Linha 946: | Linha 1 039: | ||
--> | --> | ||
− | + | * '''Exercícios''': | |
− | |||
− | |||
− | : | + | :1. Plote '''em vermelho''' a função polar |
− | + | :::<math>\rho = \dfrac{\mathrm{sen}(\theta) \sqrt{|\cos(\theta)|}} {\mathrm{sen}(\theta) + 7/5} - 2 \mathrm{sen}(\theta) + 2</math>, de <math>-\pi \leq \theta \leq \pi</math>. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | : | + | :2. Plote o gráfico da função <math>\sqrt{x}</math> utilizando todos os quatro tipos de combinações de eixos (linear/logarítmico). |
− | |||
− | + | :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>y(t) = 7 e^{-0,4t} \cos(5t-3)</math> | |
− | |||
− | |||
− | + | * '''Gráficos em 3D''' | |
− | |||
− | :* | + | :* Gráficos de linha em 3D |
− | + | ::* Comando ''plot3'' | |
− | |||
− | ::* Comando | ||
− | :* | + | :::* Exemplo: Equações paramétricas para uma [https://pt.wikipedia.org/wiki/H%C3%A9lice_(geometria) hélice circular]: |
− | :: | + | ::::: <math>x = a \cos(t)</math> |
− | : | + | ::::: <math>y = a \sin(t)</math> |
+ | ::::: <math>z = b t </math> | ||
+ | ::* Comando ''view'' | ||
+ | ::* Rótulo no eixo z: ''zlabel'' | ||
− | + | :* Gráficos de superfície | |
+ | ::* Comando ''meshgrid'' para criar uma malha 3D | ||
+ | ::* Comando ''surf'' para plot de função de ''f(x,y)'' | ||
+ | :::* Comando ''shading'', com parâmetros ''flat'', ''faceted'' e ''interp'' | ||
+ | :::* Comando alternativo ''mesh'' | ||
+ | :::* Exemplo: Símbolo da Itapema FM incompleto: | ||
+ | ::::: [X,Y] = meshgrid(-20:0.5:20); | ||
+ | ::::: R = sqrt(X.^2 + Y.^2) + eps; | ||
+ | ::::: Z = sin(R)./R; | ||
+ | ::::: surf(X,Y,Z) | ||
− | * | + | :* Curva de níveis: |
− | + | ::* Comandos ''contour'', ''surfc'' e ''meshc'' | |
− | |||
− | |||
− | + | [[Arquivo:FIC_Matlab_Exercicios_plot.pdf|Exercícios]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | * [[FIC MATLAB 2017-2/Aula-12|Códigos executados em sala]] | |
− | [[FIC MATLAB 2017- | ||
{{collapse bottom}} | {{collapse bottom}} | ||
=== Aula 13 === | === Aula 13 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 24/Out - Toolbox simbólico}} |
'''Básico''' | '''Básico''' | ||
Linha 1 042: | Linha 1 111: | ||
* Comando ''taylor'': Séries de Taylor | * Comando ''taylor'': Séries de Taylor | ||
− | * | + | * Comando ''symsum'': Somatórios / séries |
* Outros: ''dsolve'', ''fourier'', ''laplace'', ''partfrac'' | * Outros: ''dsolve'', ''fourier'', ''laplace'', ''partfrac'' | ||
Linha 1 051: | Linha 1 120: | ||
− | [[FIC MATLAB 2017- | + | [[FIC MATLAB 2017-2/Aula-13|Códigos executados em sala]] |
{{collapse bottom}} | {{collapse bottom}} | ||
Linha 1 057: | Linha 1 126: | ||
=== Aula 14 === | === Aula 14 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 26/Out - 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 231: | Linha 1 300: | ||
=== Aula 15 === | === Aula 15 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 31/Out - Projeto}} |
− | + | Aula dedicada ao projeto. | |
− | + | ||
− | + | * [[FIC MATLAB 2017-2/Aula-15|Códigos executados em sala]] | |
− | + | ||
− | + | {{collapse bottom}} | |
− | + | ||
− | + | === Aula 16 === | |
+ | {{collapse top| bg=lightblue | 07/Nov - Projeto}} | ||
+ | |||
+ | Aula dedicada ao projeto. | ||
+ | |||
+ | * [[FIC MATLAB 2017-2/Aula-16|Códigos executados em sala]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === Aula 17 === | ||
+ | {{collapse top| bg=lightblue | 09/Nov - Projeto}} | ||
+ | |||
+ | Aula dedicada ao projeto. | ||
+ | |||
+ | * [[FIC MATLAB 2017-2/Aula-17|Códigos executados em sala]] | ||
{{collapse bottom}} | {{collapse bottom}} | ||
+ | |||
+ | |||
+ | {{collapse top| bg=lightgreen | Próximos episódios}} | ||
<!-- | <!-- | ||
Linha 1 432: | Linha 1 518: | ||
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: | 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: | ||
− | [[Arquivo:MATLAB-hachuras.png|thumb| | + | [[Arquivo:MATLAB-hachuras.png|thumb|200px|center]] |
+ | |||
+ | ==== 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 |
Edição atual tal como às 14h54min de 15 de novembro de 2017
Informações Básicas
- Código: MLB16470
- Professores: Diego da Silva de Medeiros e Roberto Wanderley da Nóbrega
- Início: 05/Set/2017
- Término: 21/Nov/2017
- Horário: Terças e quintas, das 19h às 22h
- Referência Básica: PALM, William J. 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: MORAIS, V.. VIEIRA, C. MATLAB Curso Completo. FCA, 2013. 644. ISBN 9727227058
Conteúdos Abordados
Aula 1
05/Set - Apresentação da disciplina; Interface do MATLAB; Operadores; Funções; Constantes especiais | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Observações:
|
Aula 2
12/Set - Formatos de exibição; Vetores e matrizes | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 3
14/Set - Operações com matrizes; Plots | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 4
19/Set - Números aleatórios; Endereçamento de vetores e matrizes |
---|
|
Aula 5
21/Set - Aula de exercícios | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 6
26/Set - Concatenação de matrizes; Polinômios; Conjuntos; Texto; Entrada e saída de dados |
---|
|
Aula 7
28/Set - Variáveis lógicas; Operadores; Controle de fluxo de dados - if | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 8
03/Out - Controle de fluxo de dados - switch; Structs; Cells | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 9
05/Out - Estruturas de repetição - for e while | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 10
10/Out - Funções; Importação de dados; Solução de sistemas de equações |
---|
|
Aula 11
17/Out - Processamento de imagens |
---|
Pro futuro: Usar im2double! |
Aula 12
19/Out - Gráficos em 2D e 3D | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 13
24/Out - Toolbox simbólico |
---|
Básico
Cálculo
Solução de equações
|
Aula 14
26/Out - Interface gráfica | ||
---|---|---|
|
Aula 15
31/Out - Projeto |
---|
Aula dedicada ao projeto. |
Aula 16
07/Nov - Projeto |
---|
Aula dedicada ao projeto. |
Aula 17
09/Nov - Projeto |
---|
Aula dedicada ao projeto. |
Próximos episódios |
---|
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