5 de setembro de 2009

Exercícios Programação III - 03 e 04

Execício 03 - Download

Crie um gráfico igual a figura abaixo, onde a equação da reta da linha verde é y=x*3 e a equação da reta da linha vermelha é y=x^2:



Execício 04 - Download

Calcular a equação do 2º grau e plotar o gráfico da função.

Banco de Dados I - 03

História dos Bancos de Dados
UML - Introdução


Exercício IV:
1) Quais as diferenças entre os Modelos de Banco de Dados Hierárquico, Redes, Relacional e OO ?

2) Olhando as regras de Codd, diga qual delas é a mais importante e por quê?

3) Olhando a História do Banco de Dados, o que podemos esperar para o futuro?

4) Quais os Bancos de Dados utilizados no Brasil e no Mundo. Colocar em ordem de utilização.
Possível Resolução

3 de setembro de 2009

Engenharia de Software I - Exercícios

Capítulo I

1 – A razão é que os sistemas estão cada vez mais complexos e o volume de dados cada vez maior e com freqüentes modificações, com isso dificultando a tomada de decisões através dos dados recolhidos sem um sistema para auxiliar e navegar entre esses dados.
2 - SUMIU! :(
3 – Programas de computador, procedimentos e documentação possivelmente associados e dados relativos ao funcionamento de um sistema computador.
4 - A aplicação de uma sistemática e disciplinada, quantificável para o desenvolvimento, operação e manutenção de software, ou seja, a aplicação da engenharia de software.
5 - Um padrão planejado e sistemático de todas as ações necessárias para fornecer confiança adequada ao software que está em conformidade com os requisitos técnicos estabelecidos. Um conjunto de atividades destinadas a avaliar o processo pelo qual os produtos são desenvolvidos ou fabricados.
6 - O conjunto completo de programas de computador, procedimentos e documentação possivelmente associados e dados designados para entrega a um usuário.
7 – Projeto é uma concepção mental ou idéia de um produto, geralmente representada por modelos. É a representação de um sistema de software criada para facilitar análise,
planejamento e tomada de decisão.
8 - Por Processo entende-se uma série de ações ou passos, planejados cuidadosamente, a serem seguidos pelos desenvolvedores de software, sistematizando, disciplinando e
permitindo gerenciar o desenvolvimento de sistemas computadorizados.
9 – Atividades Executivas são atividades executadas nas fases:
Fase Requisitos do Usuário – RU, Fase Requisitos de Software – RS, Fase Projeto Arquitetural – PA, Fase Projeto Detalhado e Produção – PD, Fase Transferência – TR, Fase Operações e Manutenção – OM.
10 – Atividades Gerenciais são atividades como:
Gerência de Projeto, Gerência de Configuração, Gerência de Verificação e Validação e Gerência de Qualidade.

Capítulo II

1 -
* Fase Requisitos Do Usuario - RU;
* Fase Requisitos Do Software - RS;
* Fase Projeto Arquitetural - PA;
* Fase Projeto Detalhado E Produção - PD;
* Fase Projeto Transferencia - TR;
* Fase Operações E Manutenção - OM;
2 -
* DRU - Documento Requisitos Do Usuário;
* DRS - Documento Requisitos Do Software;
* DRA - Documento Projeto Arquitetural;
* DPD - Documento Projeto Detalhado;
* MUS - Manual Do Usuário;
* DTR - Documento De Transferencia;
* DHP - Documento Historico Do Projeto
3 - Começa quando o DRU é liberado pelo usario para uma revisao formal e termina quando o produto é descartado.
4 - Começa na RS (definição dos requisitos de software) termina no PD (projeto detalhado)
5 - Para os usuários definirem o que eles desejam e para os desenvolvedores definirem o que eles entenderam que o usuário deseja.
6 - Uma abordagem em cascata é adequada quando existe um projeto simples com fases seqüencial, o que torna essa abordagem simplificada e popular, requisitos estáveis e de alta qualidade, a duração do projeto seja de no máximo 2 anos (ou 4000 horas) e permite retomar etapas para correção.
7 - Abordagem incremental é utilizada quando a liberação se faz necessário para estar acordado com os requisitos, fazer integração com sistema já existente ou parte do sistema e oferecer uma prévia que o software será suficiente para resolver o problema.
8 - Abordagem evolucionária é uma série de projetos menores, onde cada projeto aproveita a experiência da liberação anterior e deve ser usada quando requisitos do usuário são de difícil implementação, pois podem depender de tecnologias futuras ou não são totalmente conhecidos, alguns requisitos podem atrasar a liberação do software, portanto necessita um acompanhamento evolucionário para a integração.
9 - Abordagem em cascata é utilizada para o desenvolvimento de software em curto prazo, quando são necessárias apenas pequenas correções e aperfeiçoamento, essas que são feitas na fase de Operação e Manutenção (OP).
10 - A execução simultânea ocorre quando a elaboração do projeto está em andamento e novos requisitos de software são apresentados, resultando em um maior tempo de desenvolvimento e necessidade de uma nova elaboração do projeto. O recomendado para esse projeto seria abordado o Método Cascata com Liberação Incremental.

Capítulo III

1 – O responsável pelo RU é o próprio Usuário junto ao desenvolvedor, onde ele especifica o que o seu sistema deve fazer.
2 – É aceitável desde que o desenvolvedor faça esse documento junto com o usuário e com a aprovação do mesmo.
3 – Os tipos são: Capacidade, Define o que o software deve fazer; Restritivos, Coloca restrições de como o software deve ser construído e operado.
4- Os requisitos do usuário se estruturam da seguinte forma:
– Capturar os Requisitos do Usuário;
– Determinar o ambiente operacional;
– Especificar os Requisitos do Usuário;
– Escrever o Plano dos Testes de Aceitação;
– Escrever os planos para a fase Requisitos de Software;
– Rever os Requisitos do Usuário.
5 – a) O usuário deve ser capaz de gerar relatórios através do software, não o software por si só gerar um relatório.
b) A especificação em relação à boa interface com o usuário está muito genérica, irá depender do ambiente operacional do software.
c) Falhas não é um requisito de usuário, nenhum usuário irá pedir que seu software tenha uma média de falha em 3 horas.
d) Está correto.
e) Este argumento não é um requisito de usuário, é um requisito de software.
6- Cada requisito de usuário deve conter pelo menos as seguintes características: Identificador, Necessidade, Prioridade, Fonte e Estabilidade.
7 – As interfaces para sistemas externos devem estar descritas nas características de restrição no requisito de usuário.
8 – Um sistema com em média 700 requisitos é considerado um sistema de porte Médio enquanto deveria ser desenvolvido com até 20 pessoas.ano, com apenas 2 pessoas.ano pode ser desenvolvido um software de porte pequeno de até 100 requisitos.
9 – O objetivo é sempre mostrar a opção mais adequada para o usuário, mas se o mesmo insistir em utilizar a interface escolhida por ele, assim deve ser feito.
10 – Não se deve colocar especificações desse tipo em um documento de requisitos de usuário, deve ser colocado especificações com uma linguagem menos técnica.

Algoritmos e Estruturas de Dados I - Será?

interface estruturaLinear {
// verifica se a estrutura tem elementos
public boolean estaVazia();
// devolve a quantidade de elementos da estrutura
public int tamanho();
// insere um elemento no início da estrutura
public void inserir(Object p0);
// insere um elemento no fim da estrutura
public void inserirCauda(Object p0);
// remove um elemento do início da estrutura
public Object remover();
// remove um elemento do fim da estrutura
public Object removerCauda();
}

/****************/

public class ArrayCircularList implements estruturaLinear {
protected Object[] array;
protected int start,end,number;

public void pArrayList(int maxsize){
array = new Object[maxsize];
start = end = number = 0;
}
public boolean estaVazia(){
return number == 0;
}
public boolean isFull(){
return number >= array.length;
}
public int tamanho(){
return number;
}
public void inserir(Object o){
if(number < array.length){
array[start = (++start % array.length)] = o;
number++;
}
}
public void inserirCauda (Object o){
if(number < array.length){
array[end] = o;
end = (--end + array.length) % array.length;
number++;
}
}
public Object remover(){
if(estaVazia())
return null;
number--;
int i = start;
start = (--start + array.length) % array.length;
return array[i];
}
public Object removerCauda(){
if(estaVazia())
return null;
number--;
return array[end = (++end % array.length)];
}
}

31 de agosto de 2009

WAR?


28 de agosto de 2009

Algoritmos e Estruturas de Dados I - Aula 02

Apostila 03 : Vetores, Listas e Sequências - Download
Apostila 04 : Árvores - Download
Apostila 05 : Filas de Prioridade - Download

Atividades terça, 25 de agosto de 2009:

FIFO Ganho (ou Perda) de Capital

Quando um lote de ações de uma companhia é vendido, o ganho de capital (ou, às vezes, a perda) é a diferença entre o preço de venda do lote e o preço originalmente pago por ele. Essa regra é fácil de entender para um único lote, mas se vendermos múltiplos lotes comprados em tempos diferentes temos de identificar os lotes sendo vendidos. Um método usado para identificar que lotes são vendidos é usar uma estrutura que suporte o protocolo FIFO, na qual os lotes vendidos são aqueles que temos há mais tempo (este é o método usado em vários softwares de finanças pessoais). Por exemplo, suponha que compramos 100 lotes a $20 cada no dia 1, 20 lotes a $24 no dia 2, 200 lotes a $36 no dia 3 e vendemos 150 lotes no dia 4 a $30 cada. Aplicando o protocolo FIFO, significa que dos 150 lotes vendidos, 100 foram comprados no dia 1, 20 foram comprados no dia 2 e 30 foram comprados no dia 3. O ganho de capital neste caso seria 100.10+20.6+30.(-6), ou $940.

Escreva um programa que recebe como entrada uma sequência de transações da forma
  • compre x lotes a y cada
    ou
  • venda x lotes a y cada
assumindo que as transações ocorrem em dias consecutivos e que os valores x e y são inteiros. Dada esta sequência de entradas, a saída deve ser o ganho total (ou perda) de capital para a sequência completa, usando o protocolo FIFO para identificar os lotes.

Baixar Possível Resolução

Para baixar o JCreator clique aqui.

Banco de Dados I - 02

Engenharia da Informação
Engenharia da Informação - Leitura


Exercício I:
Pesquisa em Laboratório
Pesquise os Softwares de Banco de Dados atuais (no mínimo 8).
Nome:
Empresa:
Plataforma:
Duas empresas que utilizam:
Notícia atual:
% de Mercado:
Colocar a Bibliografia (Sites com data e hora de acesso)
Possível Resolução

Exercício II:
Considerando o assunto exposto, pesquise e responda:

1) O SI segundo o Suporte a Decisões é dividido em quais tipos? Explique-os e dê exemplos.
2) Quais as diferenças entre os SI: Pessoal, Gurpal ou Departamental, Organizacional e Interorganizacional.
3) Explique os SI Informatizados e Automatizados. Dê exemplos.
4) A Empresa que você trabalha tem quais tipos de Sistema de Informação? Explique suas escolhas.
Possível Resolução

Exercício III:
Imaginando que você é o Diretor de uma empresa dê sua opinião sobre estas frases abaixo (recebidas de seus subordinados):

1. Queixas:
a. “A construção de sistemas toma muito tempo e o custo é muito alto”.
b. “As dificuldades de manutenção são enormes”.
c. “Os administradores não conseguem obter as informações do computador quando são necessárias”.
d. “Os dados são redundantes e o acesso a estes é caótico”.
e. “Muitos programas são um emaranhado frágil de código”.
2. “A informática é uma ferramenta crítica na competição do mundo dos negócios, torna-se cada vez mais, fundamental desenvolver aplicações rapidamente e alterá-las também rapidamente”.
3. “É preciso construir, em pouco tempo, a um baixo custo, aplicações que são altamente complexas, de alta qualidade, e que atendam totalmente as necessidades dos usuários finais".
Possível Resolução

Engenharia de Software I - 02

Capítulo 3: Fase Requisitos do Usuário - RU

Fase Requisitos do Usuário - RU - Download
Documento Liberável DRU - Download

Post número 100!

Que venham mais outros 100! ^^

23 de agosto de 2009

Exercício da aula do dia 22/08/2009

Download do projeto aqui.

Exercício – Desenvolva uma interface que calcule a equação do segundo grau, onde seja possível entrar com os valores de "a", "b" e "c" via textbox. Neste mesmo programa desenvolva um programa que calcule o fatorial de um número. Este programa deve conter somente: 3 Textbox, 5 Labels, 1 command e 2 option ou 2 check:

Elementos:

Textbox 1 = "txtCoX2" - A ou - N
Textbox 2 = "txtCoX" - B
Textbox 3 = "txtConst" - C

Label 1 = "lbla" - A
Label 2 = "lblb" - B
Label 3 = "lblc" - C
Label 4 = "lblX1Val" - X1
Label 5 = "lblX2Val" X2

Command 1 = "cmdcalcular" - Calcular

Option 1 = "opt1" - Equação 2° Grau
Option 2 = "opt2" - Fatorial

Código:



Private Sub cmdcalcular_Click()
If opt2.Value = True Then
Dim valor, cont As Integer
Dim total As Double
total = 1
valor = Val(txtCoX2.Text)
If valor = 0 Then
MsgBox "Digite um valor valido", vbExclamation
Else
For cont = 1 To valor
total = total * cont
Next cont
lblX1Val.Caption = total

End If

Else

If opt1.Value = True Then
Dim A As Single
Dim B As Single
Dim C As Single
Dim Discriminante As Single
Dim X1 As Single
Dim X2 As Single
Dim n As Integer
Dim mensagem As String

A = Val(txtCoX2.Text)
B = Val(txtCoX.Text)
C = Val(txtConst.Text)

If A = 0 Then
MsgBox "O valor do coeficiente A não pode ser igual a zero.", vbCritical, mensagem
Exit Sub
End If

Discriminante = (B ^ 2 - 4 * A * C)

If Discriminante < 0 Then
lblX1Val = ""
lblX2Val = ""
MsgBox ("Esta equação não possui raizes reais !."), vbCritical, mensagem
Else
X1 = (-B + Sqr(Discriminante)) / (2 * A)
X2 = (-B - Sqr(Discriminante)) / (2 * A)
If Discriminante = 0 Then
lblX1Val = X1
lblX2Val = X1
MsgBox ("Esta equação possui duas raizes reais iguais."), vbInformation, mensagem
Else
lblX1Val = X1
lblX2Val = X2
MsgBox ("Esta equação possui duas raizes reais."), vbInformation, mensagem
End If
End If

End If
End If

End Sub


Private Sub opt1_Click()

txtCoX2.Text = ""
txtCoX.Text = ""
txtCoX.Visible = True
txtConst.Text = ""
txtConst.Visible = True
lblX1Val.Caption = ""
lblX2Val.Caption = ""
lbla.Caption = "A"
lblb.Visible = True
lblc.Visible = True
End Sub

Private Sub opt2_Click()

txtCoX2.Text = ""
txtCoX.Text = ""
txtCoX.Visible = False
txtConst.Text = ""
txtConst.Visible = False
lblX1Val.Caption = ""
lblX2Val.Caption = ""
lbla.Caption = "N"
lblb.Visible = False
lblc.Visible = False
End Sub

Private Sub txtConst_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then
txtConst.Text = Left(txtConst.Text, (Len(txtConst.Text) - 1))
SendKeys "{END}"
End If
If KeyAscii < 43 Or KeyAscii > 57 Or KeyAscii = 47 Or KeyAscii = 44 Then KeyAscii = 0
End Sub

Private Sub txtCoX_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then
txtCoX.Text = Left(txtCoX.Text, (Len(txtCoX.Text) - 1))
SendKeys "{END}"
End If
If KeyAscii < 43 Or KeyAscii > 57 Or KeyAscii = 47 Or KeyAscii = 44 Then KeyAscii = 0
End Sub

Private Sub txtCoX2_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then
txtCoX2.Text = Left(txtCoX2.Text, (Len(txtCoX2.Text) - 1))
SendKeys "{END}"
End If
If KeyAscii < 43 Or KeyAscii > 57 Or KeyAscii = 47 Or KeyAscii = 44 Then KeyAscii = 0
End Sub

19 de agosto de 2009

Como resolver o Cubo de Rubik Facilmente!

=]

Programação III no Moodle

Link: http://200.144.97.11/~moodle/course/view.php?id=271

Camisetas do Curso Versão 2.0

Escolha o modelo e informe o seu tamanho:

Modelo 02.01:
Modelo 02.02:
Modelo 02.03:

(Clique na imagem para ampliar!)

Horário II

17 de agosto de 2009

Engenharia de Software I - 01

Downloads:

O Processo, o Projeto e o Produto - Download
Ciclo de Vida de Software - CVS - Download

Banco de Dados I - 01

Downloads:

Sistema de Informação - Download
Classificação (SI) - Download

Aula 01 - Programação III

Download da aula clique aqui.

Exercício 1 – Crie um formulário com três campos texto, um botão e dois labels, crie uma
função que calcule a equação do segundo grau e mostre os resultados nos labels:


Private Sub cmdResolver_Click()

A = Val(txtCoX2.Text)
B = Val(txtCoX.Text)
C = Val(txtConst.Text)

If A = 0 Then
MsgBox "O valor do coeficiente A não pode ser igual a zero.", vbCritical, mensagem
Exit Sub
End If

cmdNovoCalculo.Enabled = True

Discriminante = (B ^ 2 - 4 * A * C)

If Discriminante < 0 Then
lblX1Val = ""
lblX2Val = ""
MsgBox ("Esta equação não possui raizes reais !."), vbCritical, mensagem
Else
X1 = (-B + Sqr(Discriminante)) / (2 * A)
X2 = (-B - Sqr(Discriminante)) / (2 * A)
If Discriminante = 0 Then
lblX1Val = X1
lblX2Val = X1
MsgBox ("Esta equação possui duas raizes reais iguais."), vbInformation, mensagem
Else
lblX1Val = X1
lblX2Val = X2
MsgBox ("Esta equação possui duas raizes reais."), vbInformation, mensagem
End If
End If

End Sub

Divirta-se

12 de agosto de 2009

Projeto II - Grupos e Fases

Fase 1: XML:
Marcos
André
Dimas

Fase 2: Visualização de Dados:
João Paulo
Fernando
Ricardo

Fase 3: Imagens:
Felipe
Felipe Cardoso
Diogo

Fase 4: Integração:
Leandro
Dalton
Alberto

Fase 5: Documentação:
Todos

\o/ ¬o/

Algoritmos e Estruturas de Dados I - Aula 01

Apostila 01 : Análise de Algoritmos - Download
Apostila 02 : Pilhas, Filas e Deques - Download

5 de agosto de 2009

Programação III

Link da página do currso:

http://www1.univap.br/valdirgp/ProgramacaoIII/index.html