quarta-feira, 15 de janeiro de 2003

PIC - PUC/Unicenp & Delphi & Componentes de Terceiros

PIC

Março/2003 -  Estudo sobre Processamento Paralelo;  OK

Março/2003 - Estudo sobre os sistemas paralelos heterogêneos (clusters); OK

Março/2003 -  Estudo sobre os ambientes de programação PVM e MPI OK

Março/2003 - Estudo sobre a arquitetura dos processadores; OK




Abril/2003 - Estudo e adequação das métricas usadas para medir desempenho;

Abril/2003 - Estudo e adequação de benchmarks para a análise do sistema;

Abril/2003 -  Estudo e decomposição de um problema real (p.ex. Monte Carlo);




Durante a migração de um framework que utilizava internamente um componente de terceiro, detectou que o mesmo não rodava em hardware 64 bits. Assim, vale a regra não utilizar componentes de terceiros e muito menos serviços específicos do sistema Operacional (Index Service) Descontinuado no Windows 2008 Server


using System;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Reflection;


namespace lapuinka.lib
{
    ///Use StringBuilder para concatenar strings
    ///

    /// Summary description for JavaScriptLayer.
    ///

    sealed public class JavaScriptBuilder
    {
        #region Construtores
        ///

        /// Costrutor da classe JavaScriptBuilder
        ///

        public JavaScriptBuilder()
        {
            //
            // TODO: Add constructor logic here
            //
        }

        #endregion

        #region Métodos Státicos

        ///

        /// Fazer o Client Redirecionar um página
        ///

        ///
        ///
        public static string Location(string str_URL)
        {

            return "\n" +
                    "\n"
+
                    "
-->\n";

        }


        ///

        /// Altera o titulo da página HTML
        ///

        ///
        ///
        public static StringBuilder title(string title)
        {
            StringBuilder strBuilder = new StringBuilder();
            strBuilder.Append("\n");
            strBuilder.Append("\n"
);
            strBuilder.Append("
-->\n");
            return strBuilder;
        }


        ///

        /// Imprimir uma mensagem de Alert no Client
        ///

        /// Ex: JavaScriptBuilder.Alert("Isto é um Erro!")
        /// Ira montar um script JavaScript com uma mensagem de Alert

        public static string Alert(string mensagem)
        {
            //tira os Enter e Aspas Simples

            return @"";

        }



        ///

        /// Imprimir uma mensagem de Prompt para o Cliente
        ///

        /// Ex: JavaScriptBuilder.Prompt("Isto é um Erro!","Este é o conteúdo do Erro")
        ///
        /// Ira montar um script JavaScript com uma mensagem de Prompt

        public static string Prompt(string mensagem, string inputDefault)
        {

            return "\n ";

        }



        ///

        /// Imprimir função de Confirme no Client em javascript voce deve passar o texto
        ///

        ///
        public static string Confirme()
        {

            return "";
        }
        ///

        /// JavaScript que faz a magica de selecionar controles em JavaScript
        ///

        ///
        public static string ListaCheck()
        {

            return "";
        }
        ///

        /// Colocar em focus um controle
        ///

        /// Controle ID do .NET
        /// Volta um string em Javascript para ser impresso na tela use Response.Write(JavaScriptBuilder.Focus("txt_Usuario"))

        public static string Focus(string str_Controle)
        {

            return "";
        }


        ///

        /// Fecha uma Janela do Browser, util para popups
        ///

        ///
        public static StringBuilder Close()
        {
            StringBuilder strBuilder = new StringBuilder();

            strBuilder.Append("");
            return strBuilder;


        }
        ///

        /// JavaScript de Reload de página
        ///

        ///
        public static StringBuilder ReloadWindow()
        {
            StringBuilder strBuilder = new StringBuilder();

            strBuilder.Append("");
            return strBuilder;
        }
        ///

        /// Constroi um Script JavaScript para Abrir Janelas, usado na LOV
        ///

        ///
        ///
        ///
        ///
        public static StringBuilder topWindow(string sLink, string height, string width)
        {
            StringBuilder strBuilder = new StringBuilder();

            strBuilder.Append("");
            return strBuilder;
        }
        ///

        /// JavaScript de Reload de página  e volta 2 dados um para um campo hidden
        ///

        ///
        ///
        ///
        ///
        public static StringBuilder opener(string objeto, string hidden_objeto, string MostrarDescricaoExterna)
        {
            StringBuilder strBuilder = new StringBuilder();
            strBuilder.Append("\n");
            return strBuilder;
        }
        ///

        /// JavaScript de Reload de página  e volta 2 dados um para um campo hidden
        ///

        /// true/false
        ///
        ///
        ///
        ///
        public static StringBuilder opener(string objeto, string hidden_objeto, string MostrarDescricaoExterna, string AutoPostBack)
        {
            StringBuilder strBuilder = new StringBuilder();
            strBuilder.Append("\n");
            return strBuilder;
        }
        ///

        /// JavaScript de Reload de página  e volta 2 dados um para um campo hidden, este 'e usado para imprimir
        /// mensagens de erro
        ///

        ///
        ///
        ///
        ///
        /// true/false
        ///
        public static StringBuilder opener(string objeto, string hidden_objeto, string MostrarDescricaoExterna, string error, string AutoPostBack)
        {
            StringBuilder strBuilder = new StringBuilder();
            strBuilder.Append("\n ");
            return strBuilder;
        }

        ///

        /// Emite referencia para o js para menu Aplicacao
        /// O Path do Script gerado serão baseados em 2 variaveis
        /// 1° Variavel do Web.Config : Aplicacao.LeConfigStr("UrlBase_Framework")/js/menu_aplic.js - criacao das variaveis de configuracao,pertence ao Framework
        /// 2° Variavel do Web.Config : Aplicacao.LeConfigStr("UrlBase_Aplicacao")/tfx/js/menu_aplic.js - arquivo que o usuario irá mudar o conteudo das variaveis pertence a aplicacao
        /// 3° Variavel do Web.Config : Aplicacao.LeConfigStr("UrlBase_Framework")/js/menu_com.js //serve para montar o menu em javascript, pertence ao Framework
        ///

        /// retorna uma string para arquivos .js que devem ser anexados a pagina

        public static string MenuAplicacao()
        {
            string szTemp = "";
            szTemp += "";
            szTemp += "";
            szTemp += "";
            szTemp += "";
            szTemp += "
";
            return szTemp;
        }

        ///

        /// Emite referencia para o js de script da LOV
        ///

        ///
        public static string Lov()
        {
            return "";
        }

        ///

        /// Imprime a referência da função
        /// no seu formulário HTML, voce pode chamar os seguinte parâmetros no Client
        /// Header do JavaScript: function lapuinka.lib.js.newDialog(file, nameWindow, width, height)
        ///

        /// string

        public static string newDialog()
        {
            return "";
        }


        ///

        /// Função para tratamento de erros em JavaScript
        ///

        ///
        public static string onerror()
        {
            return "";
        }

        ///

        /// Insere um script javascript
        ///

        ///
        public static StringBuilder Script(string script)
        {
            StringBuilder strBuilder = new StringBuilder();
            strBuilder.Append("\n  ");
            return strBuilder;
        }
        ///

        /// Gera um JavaScript para Janelas Popup
        ///

        /// StringBuilder

        public static StringBuilder Open()
        {
            StringBuilder strBuilder = new StringBuilder();
            strBuilder.Append("");
            return strBuilder;
        }

        ///

        /// Gera uma funcao para troca de imagens
        ///

        ///
        public static string flipImage()
        {
            string szTemp = string.Empty;
            szTemp += "\n ";
            return szTemp;
        }
        #endregion

    }
}



-----

//---------------------------------------------------------------------------

#include
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
/*
Exercícios - Lista

  3)    Fazer um programa que insira e delete elementos de uma lista
   duplamente encadeada ordenada enquanto o usuário assim desejar,
   definindo a lista como um tipo abstrato de dados e usando variáveis
    locais. Construa uma função para inserir elementos na lista e uma
    função para eliminar elementos da lista.


*/
//---------------------------------------------------------------------------

#include
#include
#include
#include

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
#define MAX 2

struct No
{
        int info;
        struct No *next;
        struct No *back;
};



No *pega_no(void);
void libera_no(No *p);
void insere_lista(int i,No **First,No **Last);
int elimina_lista(No **First,No **Last);
int lista_ordena(No **First,No **Last);
int Valida(int i,No **First,No **Last);

int main(void)
{
       char continua='S';
       char op='I';
       int valor=0;
       No *First      = NULL; //primeiro No alocado
       No *Last       = NULL; //ultimo   No da Lista

       while(continua!='N')
       {
                while(1)
                {
                    printf("\n[ status ] - Populando uma Lista...");
                    printf("\n[ wait   ] - digite sua opcao(I/D): ");
                    op=toupper(getch());
                    if(op=='I')
                    {
                            printf("\n[ wait ] - entre com o valor: ");
                            scanf("%d",&valor);
                            insere_lista(valor,&First,&Last);
                            break;
                    }
                    else  if(op=='D')
                    {
                            elimina_lista(&First,&Last);
                            break;
                    }
                    else
                    {
                            printf("\n[ error ] - opcao invalida!");
                    }
                }

                printf("\n[ wait ] - Continua? (S/N) ");
                continua=toupper(getch());
       }


        printf("\n[ status ] - Esvaziando a Lista para desenvolver a memoria para o S.O...");
        while(elimina_lista(&First,&Last)!=NULL)
        {}



        return 0;
}

No *pega_no(void)
{
        No *z;
        z=(No *)malloc(sizeof(No)*1);
        return z;
}

void libera_no(No *p)
{
                free(p);
}


void insere_lista(int i,No **First,No **Last)
{
        No *novoNo;
        No aux;

        if (!Valida(i,First,Last))
            return;


        novoNo=pega_no();
        if(novoNo==NULL)
        {
                printf("\n[ erro ] - erro ao inserir na Lista.");
                return;
        }
        //ajusta o novo nó
        novoNo->info=i;

              //Inicializa a lista
        if(*Last==NULL && *First==NULL)
        {
           *Last    = novoNo;
           *First   = novoNo;
           novoNo->next=NULL;
           novoNo->back=NULL;
        }
        else //insere no final da Lista
        {
          (*Last)->next=novoNo;
          novoNo->back=*Last;
          novoNo->next=NULL;
          *Last=novoNo;
        }

        lista_ordena(First,Last);
}
int elimina_lista(No **First,No **Last)
{
        No *aux;

        if(*Last==NULL && *First==NULL)
        {
                printf("\n[ erro ] - Lista vazia");
                getche();
                return NULL;
        }


        if((*First)->back==NULL && (*First)->next==NULL) //so tem um elemento na Lista
        {
                printf("\n[ status ] - elemento removido foi %d",(*First)->info);
                libera_no(*First);
                *Last=NULL;
                *First=NULL;
                return 1;
        }
        else
        {

                printf("\n[ status ] - elemento removido foi %d",(*First)->info);
                aux=(*First)->next;
                aux->back=NULL;
                libera_no(*First);
                *First=aux;
                return 1;
        }

}

int lista_ordena(No **First,No **Last)
{
  No *lista;
  No *analisado;
  int tmp=0;


    if (*Last==NULL && *First==NULL) //lista vazia...
        return 1;

  analisado=*First;
   do
    {
      printf("\nAnalisado[%d]",analisado->info);

      lista=*First;
      do
       {
         if(analisado->info > lista->info)
         {
//            printf(" {%d}",lista->info);
            tmp=lista->info;
            lista->info=analisado->info;

            analisado->info=tmp;

         }
         else
         {
//            printf(" %d - ",lista->info);
         }

         lista=lista->next;
       }while(lista!= NULL);


     analisado=analisado->next;
    }while(analisado!= NULL);

      printf("\n[ status ] - lista de elementos");
      lista=*First;
      do
       {
         printf(" %d - ",lista->info);
         lista=lista->next;
       }while(lista!= NULL);

    return 1;
}

int Valida(int i,No **First,No **Last)
{
    No *current;


    if (*Last==NULL && *First==NULL) //lista vazia...
        return 1;

   current=*First;
   do
    {
       if(current->info==i)
       {
          printf("\n[ erro ] - valor duplicado.");
//          return 0; //valor duplicado..
       }

      current=current->next;

    }while(current!= NULL);

   return 1;
}



Postar um comentário