Introdução à Programação Projeto 2011.2



Documentos relacionados
LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Princípios de funcionamento dos computadores

Considerações: Leia a lista toda, o quanto antes, para evitar más interpretações e muitas dúvidas em cima da hora

Arquitetura de Rede de Computadores

Unidade 5: Sistemas de Representação

Manual Sistema MLBC. Manual do Sistema do Módulo Administrativo

Sistemas Distribuídos

A4 Projeto Integrador e Lista de Jogos

Curva ABC. Tecinco Informática Ltda. Av. Brasil, º Andar Centro Cascavel PR

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Elaborado por SIGA-EPT. Projeto SIGA-EPT: Manual do Usuário Almoxarifado

Sua empresa adquiriu a Solução Nucleu Excence, e isto nos deixa orgulhosos.

Índice: CMS 3 O que é Content Management System? Clientes 4 O que é o Cliente? 4 Configurando o i-menu/i-view para trabalhar. com o CMS.

A PÁGINA DISCIPLINAR DE MATEMÁTICA DO PORTAL DIA A DIA EDUCAÇÃO

GRÁFICOS Exemplos de jogos 2D (com simulação do 3D)

NFSE - Nota Fiscal de Serviços Eletrônica 1

Excel Planilhas Eletrônicas

Exercícios de Fixação Pseudocódigo e Estruturas Básicas de Controle

Controle do Arquivo Técnico

20 Caracteres - Tipo char

Manual SAGe Versão 1.2 (a partir da versão )

Operações de Caixa. Versão 2.0. Manual destinado à implantadores, técnicos do suporte e usuários finais

MANUAL DE OPERAÇÃO EDOutlet (Online e Offline):

ACESSO REMOTO EM NUVEM Guia Rápido

www. inf.br Outubro/2008 5www.habisp.inf.br TREINAMENTO HABISP VERBA DE ATENDIMENTO

Perguntas frequentes do Samsung Drive Manager

PREFEITURA MUNICIPAL DO NATAL

Objetivo. Este documento tem como objetivo demonstrar o conceito, o processo de instalação e o funcionamento do SITEF (Tef dedicado).

MANUAL DE UTILIZAÇÃO Aplicativo Controle de Estoque Desktop

MANUAL DA ÁREA DO CONDÔMINO

Organização de programas em Python. Vanessa Braganholo

Manual de Cotizações (esse manual se aplica a partir da versão 2011/0003 do Expert Turismo e Lazer)

Tutorial para hostear e/ou gerar missões para a GVV usando o BADC

Clique no botão novo

Manual das planilhas de Obras

Introdução aos critérios de consulta. Um critério é semelhante a uma fórmula é uma cadeia de caracteres que pode consistir em

Prof. Rafael Gross.

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

TUTORIAL PARA UTILIZAÇÃO DA PLATAFORMA LMS

CURSO DE INFORMÁTICA BÁSICA AULA 2 O AMBIENTE WINDOWS

Guia de qualidade de cores

NÚCLEO DE TECNOLOGIA E EDUCAÇÃO CURSO: WINDOWS MOVIE MAKER TUTORIAL

Matemática Aplicada à Informática

Microsoft Excel 2007

Manual de utilização do sistema OTRS (Atendimento) Cliente Externo

3.1) Baixe os arquivos necessários para preparação neste link:

Lista de Exercícios. Vetores

sala de aula SMART Sync 2010 para sistemas operacionais Windows.

1. Desativar o Firewall do computador. Clique em Iniciar Clique em Painel de Controle, como mostra a figura a seguir.

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

HCT Compatibilidade Manual do Usuário

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM

COMPUTAÇÃO GRÁFICA REPRESENTAÇÃO DE IMAGENS

WF Processos. Manual de Instruções

Fundap. Programa de Estágio. Manual de Utilização do Sistema de Administração de Bolsas de Estágio. Plano de Estágio

MANUAL DE INSTALAÇÃO DO ODONTO TECHNOLOGY

Sumário. Capítulo 2 Iniciando o TR Como efetuar o login... 8

Sphinx Scanner Informações gerais V

Sistema de Eventos - Usuário

OI CONTA EMPRESA MANUAL DO USUÁRIO

Copyright 2013 VW Soluções

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

"Manual de Acesso ao Moodle - Discente" 2014

MANUAL DE UTILIZAÇÃO Aplicativo Controle de Estoque Mobile

OI CONTA EMPRESA MANUAL DO USUÁRIO (exceto Administradores de Conta)

Manual da Administração do site Abrasel 2.0

TUTORIAL DE ACESSO AO AMBIENTE VIRTUAL DE APRENDIZAGEM AVA

Manual AGENDA DE BACKUP

Tutorial do módulo Carteira Nacional de Militante

Manual Captura S_Line

OBS: Se aparecer o aviso HIC SUNT DRACONES, clique em Serei cuidadoso, prometo!.

Lógica de Programação

1) Botão "Ler Versão": apresenta a versão do firmware do leitor de cartões acoplado;

SCPI 8.0. Novas funcionalidades. Conciliação Bancária Automática:

Cadastramento de Computadores. Manual do Usuário

Controle Patrimonial WEB

RESUMO DE CATALOGAÇÃO

Manual do PolicyKit-kde. Daniel Nicoletti Tradução: Luiz Fernando Ranghetti

MANUAL PARA EMISSÃO DO CERTIFICADO FITOSSANITÁRIO DE ORIGEM CONSOLIDADO (CFOC) ELETRÔNICO

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10

Manual de Instalação. SafeSign Standard (Para MAC OS 10.7)

Guia do Aluno Disciplinas EAD. UNIPs

MANUAL DE UTILIZAÇÃO DO REC. DE FIRMAS COM NOVA ROTINA MODO SEFAZ

Aula 2 Modelo Simplificado de Computador

Manual Q-Acadêmico 2.0 Módulo Web - Aluno

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

Manual Simbo CRM Abril/ 2012

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

MANUAL DE UTILIZAÇÃO DO SISTEMA DE NOTA FISCAL ELETRÔNICA e-nota

Linguagem de Programação

MANUAL DO GERENCIADOR ESCOLAR WEB

Transcrição:

Introdução à Programação Projeto 2011.2

Introdução Desde os primórdios de sua existência, os computadores vêm sido largamente utilizados em sistemas de defesa. O ENIAC, primeiro computador digital eletrônico, foi criado pelo exército americano com o propósito de calcular trajetórias de mísseis na segunda guerra mundial. Devido às crescentes ameaças aos Estados Unidos, a CIA iniciou o desenvolvimento de um programa classificado como Top Secret pelas autoridades americanas. O programa consiste na tentativa de desenvolver um sistema capaz prever e simular os eventos desencadeados por um conflito militar dado um determinado cenário mundial. Devido a importância do sistema para a manutenção da paz, a CIA escolheu os melhores programadores do mundo para o desenvolvimento: os alunos do primeiro período de engenharia da computação do Centro de Informática da UFPE. Objetivos: Criar uma aplicação capaz de exibir uma simulação gráfica de um conflito entre países dado um determinado cenário mundial. Especificação: Formatação / Dados de entrada Para evitar vazamento de informações para a imprensa, o arquivo com os dados da simulação virá criptografado. Nesse caso, a senha será informada em uma imagem, e será descrito a seguir. Para descriptografar, deve-se somar o caractere a ser criptografado com um caractere da senha e depois inverter os bits do valor binário obtido (operação NOT bit a bit, a qual pode ser feita utilizando o operador NOT bit a bit de C). Exemplo de descriptografia: Palavra a ser descriptografada (lida de um arquivo): _'$! /)', O:M 5 Senha: Monitoria IP Resultado: Simulador Guerra Fonte _ ' $! / ) ', O : M 5 Senha M o n I t o r i a I P M o n i Result S i m u l a d o r G u e r r a

Para obter a senha acima (no caso, "Monitoria IP"), devemos analisar a imagem senha.bmp. Sabemos que, em bitmaps, qualquer pixel é representado por 3 cores (RGB - Red, Green e Blue), e que cada uma dessas cores pode variar de intensidade, de 0 a 255. "Misturando" essas 3 cores, temos o pixel de fato. Por exemplo, a cor verde escuro seria 73-112-33. Repare, também, que os caracteres de C são representados usando 1 byte, ou 8 bits, que variam de 0 a 255. Aproveitando esse fato, podemos "esconder" dentro de pixels letras! Convertendo cada número do RGB de um pixel para uma letra usando a tabela ASCII, teríamos, para a cor verde acima, "I(73)p(112)!(33)". Exemplificando novamente, na imagem abaixo, temos "escondida" a senha 'Monitoria IP 2011.2'. Seu trabalho será, dada a imagem senha.bmp, verificar o primeiro pixel (em 0,0). A soma de seus valores modulo 255 será o "pulo" de pixel em pixel a ser lido. Por exemplo, para o verde acima, a soma (73 +112 + 33) seria 218. 218 modulo 255 = 218. Logo, os pixels a serem lidos numa imagem 64x64 serão, desconsiderando o primeiro (em [0,0]), o "anterior + 218º" (em [26,3]), o "anterior + 218º" (em [52,6]), o "anterior + 218º" (em [14,10]), assim por diante, até que o valor obtido na conversão RGB para char seja '\0', indicando o fim da senha. Após descriptografado, o programa deve ler as informações sobre o cenário mundial. As informações fornecidas são: 1 - Quantidade de países; 2 - Nome dos países; 3 - País detentor de armas nucleares ou não; 4 - Forca militar de cada país; 5 - Coordenadas no globo de cada país; 6 - Quantidade de aliados; 7 - Nome dos aliados de cada país; O arquivo de entrada possui uma formatação específica. A primeira coisa que aparece no arquivo é um número inteiro correspondente ao número de países que fazem parte do cenário que se deseja simular. Em seguida, seguem-se os nomes dos países separados por espaço, cuja quantidade foi explicitada no começo do arquivo. Considere que os únicos países que podem participar do conflito são (sem acento, exatamente como especificados a seguir): Alemanha, Argentina, Brasil, China, Coreia, Espanha, EUA, Filipinas, Franca, India, Indonesia, Iran, Italia, Japao, Mexico, Nigeria, Reino Unido, Russia, Turquia, Vietnam. Logo após, temos os atributos de cada país na ordem em que aparecem na lista de nomes. O primeiro atributo é um número inteiro que pode ser 0 ou 1. Caso 1, diz que o país possui armas nucleares, caso 0, não possui. O segundo atributo é um numero inteiro que diz a forca militar do país. O terceiro e quarto atributos são dois números inteiros correspondentes às coordenadas x e y na tela respectivamente. O quinto atributo é um número inteiro correspondente à quantidade de aliados. Em seguida segue uma lista de nomes de aliados.

Os países, junto com seus aliados, DEVEM ser armazenados em lista encadeada. Exemplo: As Armas A CIA assume que no mundo atual, todos os países de relevância bélica possuem Mísseis Balísticos Intercontinentais (ICBM s). Isso significa que seus mísseis têm abrangência mundial. Assim, para o simulador são definidos 2 tipos de ICBM. Propriedades ICBM Nuclear ICBM Convencional Possuidores Detentores de tecnologia bélico-nuclear Todos os outros Poder de Destruição Velocidade 50 10 1 2

Os países sempre farão o ataque com a melhor tecnologia disponível, ou seja, potências nucleares sempre utilizarão armas atômicas em seus ataque e países que não detém tal tecnologia sempre utilizarão ICBM s convencionais. Dinâmica do Combate A CIA convencionou que o combate deve acontecer da seguinte maneira: O operador deve fornecer o estopim do conflito, ou seja, qual o país que lança o primeiro ataque e contra que país o ataque foi lançado. A partir desses dados, a simulação é iniciada. Lançado o primeiro míssil, é gerada uma reação em cadeia que leva a um conflito cada vez mais intenso, onde os aliados têm um importante papel. Quando um míssil explode em determinado país, a nação atacada e seus aliados revidam lançando um ataque contra o atacante. Um país só lançará um ataque contra outro quando for atacado ou um de seus aliados for atacado. Se quando o míssil lançado explodir na nação atacada e esta ainda tiver forças militares ativas, o ataque deve ser repetido. Abaixo segue um exemplo para um melhor entendimento: Considere o cenário de entrada: 3 EUA China Brasil 1 200 170 200 1 Brasil 1 80 715 120 0 0 60 260 320 1 EUA Em execução, o simulador deve perguntar (de forma lógica) qual será o estopim, e permitir que o usuário responda adequadamente. Entenda por "de forma lógica" não permitir que aliados se ataquem. Façamos o estopim da guerra como sendo China atacando Brasil. A partir daí segue-se a seqüência de eventos: 1. China lançou um ICBM nuclear contra o Brasil. 2. O ICBM chinês atinge o Brasil, força militar brasileira reduzida para 10.

3. Como o Brasil ainda tem forças militares ativas, China repete o ataque. 4. EUA e Brasil lançam um ataque contra a China para defender-se. 5. Ataque brasileiro atinge a China. Como China não possui aliados, apenas ela própria revida o ataque. Força militar da China reduzida para 70. Brasil continua atacando. 6. Ataque chinês chega ao Brasil. Força militar brasileira totalmente destruída. Como o Brasil não tem mais forças militares ativas, todos os seus mísseis são desativados em vôo, atingindo o solo inimigo sem causar danos e a China não repete o ataque. Brasil fora do combate. 7. ICBM americano atinge a China. Força militar chinesa reduzida para 20. Como a China ainda tem forças militares ativas, EUA repete o ataque. China revida. ICBM Chinês atinge os EUA. Força militar americana reduzida para 150. EUA revida. 8. ICBM americano chega à China. Forças militares da China esgotadas. Todo o ataque em curso não tem mais efeito. China fora do combate. EUA vence o conflito. Em resumo, a dinâmica do combate obedece a quatro regras básicas: - Sempre que um míssil explodir em um país, este deverá revidar junto com seus aliados ainda ativos. - Se após a explosão o país continuar ativo, um novo ataque é lançado. - Os mísseis só têm efeito se tanto o país atacante como o país atacado estiverem ativos. - Países inativos não podem atacar nem serem atacados. Estão fora do combate O combate será finalizado quando um dos blocos for derrotado. Observe que seguindo as 4 regras, sempre chegaremos a um estado onde, a partir de determinado momento, nenhum míssil será lançado. Nesse momento, teremos o final do conflito. É preciso levar em consideração a distância entre os países, e a velocidade dos ICBM's para saber a ordem dos impactos. Modos de Jogo A operação do simulador deve, inicialmente, ser automática. Entretanto, caso o usuário aperte a tecla ENTER, o simulador deve entrar em modo manual, onde é esperado input do usuário para continuar a simulação após cada etapa. Modo gráfico O programa deve ser constituído por uma interface gráfica na qual serão exibidos todos os eventos do combate. O tamanho da tela será 800x600. Deve ser exibido na tela um mapa mundial. Para cada país envolvido na simulação, será exibida uma bandeira correspondente na coordenada fornecida no arquivo de cenário. A trajetória de cada míssil lançado também deve ser mostrada, desde a sua origem até o seu destino. Considere o mapa do mundo com tamanho 800x459. Abaixo do mapa do mundo deve haver um informações atuais da simulação. Vide EXEMPLO abaixo. Usem a criatividade.

Formato / Dados de saída O relatório da simulação deverá ser impresso em um arquivo resultado.sim. Esse relatório, antes de ser gravado no arquivo, DEVERÁ ser operado com lista encadeada. As seguintes informações devem estar contidas: Países envolvidos no estopim do conflito; Países derrotados; Países vencedores; Total de armas nucleares lançadas;

Exemplo: Sites recomendados: http://www.allegro.cc/manual/ http://www.cplusplus.com/reference/ http://equipe.nce.ufrj.br/adriano/c/apostila/allegro/docs/allegro.html BOM TRABALHO! (:

Acompanhamento do Projeto Semanalmente, feita a divisão de monitor / duplas do projeto, os alunos devem reportar aos monitores responsáveis os avanços / dificuldades encontradas no desenvolvimento do projeto. Presença nesses encontros faz parte da nota do projeto. Cronograma a ser seguido: Data Tarefa a estar pronta / Atividade do dia 31/10, sala de aula Distribuição e explicação do projeto 01/11, sala de aula Discutir os conceitos de persistência e arquivos AO FIM DA SEMANA 1 (próximo 08/11): Criptografia considerando que conhecemos a senha (ou seja, sem a imagem) e leitura dos arquivos já descriptografados. 08/11, sala de aula Discutir estruturas dinâmicas. Conceito de listas encadeadas. AO FIM DA SEMANA 2 (próximo 16/11) Estrutura das listas encadeadas de países e do log. AO FIM DA SEMANA 3 Lógica do programa, ainda sem imagem, deve estar avançado. (próximo 23/11) DIA 23/11, GRADS G1 E G4, 10 ÀS 12H. Aula da biblioteca gráfica Allegro. AO FIM DA SEMANA 4(próximo 30/11) AO FIM DA SEMANA 5 (próximo 7/11) 13/12, Laboratório Criptografia já com imagens, início do modo gráfico Modo gráfico e modos de operação prontos. Toques e dúvidas finais. Apresentação de projeto.