quinta-feira, 31 de maio de 2012

Estrutura de Dados.


Pilha
• É uma lista linear em que todas as inserções, retiradas e, geralmente, todos os acessos são feitos em apenas um extremo da lista.

• Os itens são colocados um sobre o outro. O item inserido mais recentemente está no topo e o inserido menos recentemente no fundo.

• O modelo intuitivo é o de um monte de pratos em uma prateleira, sendo conveniente retirar ou adicionar pratos na parte superior.

• Esta imagem está freqüentemente associada com a teoria de autômato, na qual o topo de uma pilha é considerado como o receptáculo de uma cabeça de leitura/gravação que pode empilhar e
desempilhar itens da pilha.


• Propriedade: o último item inserido é o primeiro item que pode ser retirado da lista. São chamadas listas lifo (“last-in, first-out”).

• Existe uma ordem linear para pilhas, do “mais recente para o menos recente”.

• É ideal para estruturas aninhadas de profundidade imprevisível.

• Uma pilha contém uma seqüência de obrigações adiadas. A ordem de remoção garante que as estruturas mais internas serão processadas antes das mais externas.


• As pilhas ocorrem em estruturas de natureza recursiva (como árvores). Elas são utilizadas para implementar a recursividade.


Conjunto de operações:
1. FPVazia(Pilha). Faz a pilha ficar vazia.
2. Vazia(Pilha). Retorna true se a pilha está vazia; caso contrário,
retorna false.
3. Empilha(x, Pilha). Insere o item x no topo da pilha.
4. Desempilha(Pilha, x). Retorna o item x no topo da pilha, retirando-o
da pilha.
5. Tamanho(Pilha). Esta função retorna o número de itens da pilha.


• As duas representações mais utilizadas são as implementações por meio de arranjos e de apontadores.



Fila
• É uma lista linear em que todas as inserções são realizadas em um extremo da lista, e todas as retiradas e, geralmente, os acessos são realizados no outro extremo da lista.

• O modelo intuitivo de uma fila é o de uma fila de espera em que as pessoas no início da fila são servidas primeiro e as pessoas que chegam entram no fim da fila.

• São chamadas listas fifo (“first-in”, “first-out”).

• Existe uma ordem linear para filas que é a “ordem de chegada”.

• São utilizadas quando desejamos processar itens de acordo com a ordem “primeiro-que-chega, primeiro-atendido”.

• Sistemas operacionais utilizam filas para regular a ordem na qual tarefas devem receber processamento e recursos devem ser alocados a processos.


Conjunto de operações:
1. FFVazia(Fila). Faz a fila ficar vazia.
2. Enfileira(x, Fila). Insere o item x no final da fila.
3. Desenfileira(Fila, x). Retorna o item x no início da fila, retirando-o
da fila.
4. Vazia(Fila). Esta função retorna true se a fila está vazia; senão
retorna false.


• Os itens são armazenados em posições contíguas de memória.

• A operação Enfileira faz a parte de trás da fila expandir-se.

• A operação Desenfileira faz a parte da frente da fila contrair-se.

• A fila tende a caminhar pela memória do computador, ocupando espaço na parte de trás e descartando espaço na parte da frente.

• Com poucas inserções e retiradas, a fila vai ao encontro do limite do espaço da memória alocado para ela.

• Solução: imaginar o array como um círculo. A primeira posição segue a última.


• As duas representações mais utilizadas são as implementações por meio de arranjos e de apontadores.














terça-feira, 29 de maio de 2012

C++ Linguagem de Programação

Exercícios:

Afirmativas:

  1. Os componentes de programas em C++ são chamados de funções e classes.
  2. Uma função é invocada com uma chamada de função.
  3. Uma variável que é conhecida somente dentro da função em que é definida é chamada de variável local.
  4. O comando RETURN em uma função chamada é usado para passar de volta o valor de uma expressão para a função que chamou.
  5. A palavra VOID é usada em um cabeçalho de função para indicar que uma função não retorna um valor, ou para indicar que uma função não recebe nenhum parâmetro.
  6. O escopo de um identificador é a parte do programa em que o identificador pode ser usado.
  7. Os três meios para se retornar o controle de uma função chamada para que chamou são: RETURN; RETURN EXPRESSION; E TERMINO DE UMA FUNÇÃO
    ex: –Se a função não retornar um resultado:
    •O fluxo do programa alcança o fim da chave direita da função ou
    •O programa executa a instrução return;
    –Se a função retornar um resultado:
    •O programa executa a instrução return expressão;
    –expressão é avaliada e seu valor é retornado ao chamador.
  8. Um protótipo (ALUSÂO), permite ao compilador conferir a quantidade, os tipos e a ordem dos parâmetros passador para uma função.
  9. A função RAND é usada produzir números aleatórios.
  10. A função SRAND é  usada para iniciar a semente dos números aleatórios usados para randomizar um programa.
  11. Os especificadores de classes de armazenamento são mutabie:
    AUTO, REGISTER, EXTERN e STATIC.
  12. Variáveis declaradas em um bloco ou na lista de parâmetros de uma função são assumidas como sendo da classe de armazenamento AUTO a menos que especificado de forma diversa.
  13. O especificador de classe de armazenamento REGISTRO é uma recomendação para o compilador armazenar uma variável em um dos registradores do computador.
  14. Uma variável declarada fora de qualquer bloco ou função é uma variável ESTERNA OU GLOBAL.

segunda-feira, 7 de maio de 2012

Comandos LINUX (Iniciantes)


Bem vindo(a) aos Comandos Linux!


Comandos de Controlo e Acesso
exitTerminar a sessão, ou seja, a shell (mais ajuda digitando man sh ou man csh)
logoutDeslogar, ou seja, terminar a sessão actual, mas apenas na C shell e na bash shell
passwdMudar a password do nosso utilizador
rloginLogar de forma segura noutro sistema Unix/Linux
sshSessão segura, vem de secure shell, e permite-nos logar num servidor através do protocolo ssh
sloginVersão segura do rlogin
yppasswdMudar a password do nosso utilizador nas páginas amarelas (yellow pages)
Comandos de Comunicações
mailEnviar e receber emails
mesgPermitir ou negar mensagens de terminal e pedidos de conversação (talk requests)
pineOutra forma de enviar e receber emails, uma ferramenta rápida e prática
talkFalar com outros utilizadores que estejam logados no momento
writeEscrever para outros utilizadores que estejam logados no momento
Comandos de Ajuda e Documentação
aproposLocaliza comandos por pesquisa de palavra-chave
findLocalizar ficheiros, como por exemplo: find . -name *.txt -print, para pesquisa de ficheiros de texto por entre os ficheiros da directoria actual
infoLança o explorador de informações
manManual muito completo, pesquisa informação acerca de todos os comandos que necessitemos de saber, como por exemplo man find
whatisDescreve o que um determinado comando é
whereisLocalizar a página de ajuda (man page), código fonte, ou ficheiros binários, de um determinado programa
Comandos de Edição de Texto
emacsEditor de texto screen-oriented
picoEditor de texto screen-oriented, também chamado de nano
sedEditor de texto stream-oriented
viEditor de texto full-screen
vimEditor de texto full-screen melhorado (vi improved)
Comandos de Gestão de Ficheiros e Directorias
cdMudar de directoria actual, como por exemplo cd directoriacd ..cd /
chmodMudar a protecção de um ficheiro ou directoria, como por exemplo chmod 777, parecido com oattrib do MS-DOS
chownMudar o dono ou grupo de um ficheiro ou directoria, vem de change owner
chgrpMudar o grupo de um ficheiro ou directoria
cmpCompara dois ficheiros
commSelecciona ou rejeita linhas comuns a dois ficheiros seleccionados
cpCopia ficheiros, como o copy do MS-DOS
cryptEncripta ou Desencripta ficheiros (apenas CCWF)
diffCompara o conteúdo de dois ficheiros ASCII
fileDetermina o tipo de ficheiro
grepProcura um ficheiro por um padrão, sendo um filtro muito útil e usado, por exemplo um cat a.txt | grep ola irá mostrar-nos apenas as linhas do ficheiro a.txt que contenham a palavra “ola”
gzipComprime ou expande ficheiros
lnCria um link a um ficheiro
lsLista o conteúdo de uma directoria, semelhante ao comando dir no MS-DOS
lsofLista os ficheiros abertos, vem de list open files
mkdirCria uma directoria, vem de make directory”
mvMove ou renomeia ficheiros ou directorias
pwdMostra-nos o caminho por inteiro da directoria em que nos encontramos em dado momento, ou seja apathname
quotaMostra-nos o uso do disco e os limites
rmApaga ficheiros, vem de remove, e é semelhante ao comando del no MS-DOS, é preciso ter cuidado com o comando rm * pois apaga tudo sem confirmação por defeito
rmdirApaga directorias, vem de remove directory
statMostra o estado de um ficheiro, útil para saber por exemplo a hora e data do último acesso ao mesmo
syncFaz um flush aos buffers do sistema de ficheiros, sincroniza os dados no disco com a memória, ou seja escreve todos os dados presentes nos buffersda memória para o disco
sortOrdena, une ou compara texto, podendo ser usado para extrair informações dos ficheiros de texto ou mesmo para ordenar dados de outros comandos como por exemplo listar ficheiros ordenados pelo nome
tarCria ou extrai arquivos, muito usado como programa de backup ou compressão de ficheiros
teeCopia o input para um standard output e outros ficheiros
trTraduz caracteres
umaskMuda as protecções de ficheiros por defeito
uncompressRestaura um ficheiro comprimido
uniqReporta ou apaga linhas repetidas num ficheiro
wcConta linhas, palavras e mesmo caracteres num ficheiro
Exibição ou Impressão de Ficheiros
catMostra o conteúdo de um ficheiro, como o comando type do MD-DOS, e é muito usado também para concatenar ficheiros, como por exemplo fazendo cat a.txt b.txt > c.txt” para juntar o ficheiro a.txt e b.txt num único de nome c.txt
foldEncurta, ou seja, faz um fold das linhas longas para caberem no dispositivo de output
headMostra as primeiras linhas de um ficheiro, como por exemplo com head -10 a.txt, ou usado como filtro para mostrar apenas os primeiros x resultados de outro comando
lpqExamina a spooling queue da impressora
lprImprime um ficheiro
lprmRemove jobs da spooling queue da impressora
moreMostra o conteúdo de um ficheiro, mas apenas um ecrã de cada vez, ou mesmo output de outros comandos, como por exemplo ls | more
lessFunciona como o more, mas com menos features, menos características e potenciais usos
pageFunciona de forma parecida com o comando more, mas exibe os ecrãs de forma invertida ao comandomore
prPagina um ficheiro para posterior impressão
tailFunciona de forma inversa ao comando head, mostra-nos as últimas linhas de um ficheiro ou mesmo do output de outro comando, quando usado como filtro
zcatMostra-nos um ficheiro comprimido
xvServe para exibir, imprimir ou mesmo manipular imagens
gvExibe ficheiros ps e pdf
xpdfExibe ficheiros pdf, usa o gv
Comandos de Transferência de Ficheiros
ftpVem de file transfer protocol, e permite-nos, usando o protocolo de transferência de ficheirosftp, transferir ficheiros entre vários hosts de uma rede, como aceder a um servidor de ftp para enviar ou puxar ficheiros
rsyncSincroniza de forma rápida e flexível dados entre dois computadores
scpVersão segura do rcp
Comandos de Notícias ou Rede
netstatMostra o estado da rede
rshCorre umam shell em outros sistemas UNIX
sshVersão segura do rsh
nmapPoderoso port-scan, para visualizarmos portas abertas num dado host
ifconfigVisualizar os ips da nossa máquina, entre outras funções relacionadas com ips
pingPingar um determinado host, ou seja, enviar pacotes icmp para um determinado host e medir tempos de resposta, entre outras coisas
Comandos de Controlo de Processos
killMata um processo, como por exemplo kill -kill 100ou kill -9 100 ou kill -9 %1
bgColoca um processo suspenso em background
fgAo contrário do comando bg, o fg traz de volta um processo ao foreground
jobsPermite-nos visualizar jobs em execução, quando corremos uma aplicação em background, poderemos ver esse job com este comando, e termina-lo com um comando kill -9 %1, se for o jobnúmero 1, por exemplo
topLista os processos que mais cpu usam, útil para verificar que processos estão a provocar um uso excessivo de memória, e quanta percentagem decpu cada um usa em dado momento
^ySuspende o processo no próximo pedido de input
^zSuspende o processo actual
Comandos de Informação de Estado
clockDefine a hora do processador
dateExibe a data e hora
dfExibe um resumo do espaço livre em disco
duExibe um resumo do uso do espaço em disco
envExibe as variáveis de ambiente
fingerPesquisa informações de utilizadores
historyLista os últimos comandos usados, muito útil para lembrar também de que comandos foram usados para fazer determinada acção no passado ou o que foi feito em dada altura
lastIndica o último login de utilizadores
lpqExamina a spool queue
manpathMostra a path de procura para as páginas do comando man
printenvImprime as variáveis de ambiente
psLista a lista de processos em execução, útil para saber o pid de um processo para o mandar abaixo com o comando kill, entre outras coisas
pwdMostra-nos o caminho por inteiro da directoria em que nos encontramos em dado momento, ou seja apathname
setDefine variáveis da sessão, ou seja, da shell, na C shell, na bash ou na ksh
spendLista os custos ACITS UNIX até à data
timeMede o tempo de execução de programas
uptimeDiz-nos há quanto tempo o sistema está funcional, quando foi ligado e o seu uptime
wMostra-nos quem está no sistema ou que comando cada job está a executar
whoMostra-nos quem está logado no sistema
whoisServiço de directório de domínios da Internet, permite-nos saber informações sobre determinados domínios na Internet, quando um domínio foi registado, quando expira, etc
whoamiDiz-nos quem é o dono da shell
Comandos de Processamento de Texto
abiwordProcessador de Texto Open Source
addbibCria ou modifica bases de dados bibliográficas
colReverte o filtro a line feeds
dictionIdentifica sentenças com palavras
diffmkMarca diferenças entre ficheiros
dvipsConverte ficheiros TeX DVI em ficheiros PostScript
explainExplica frases encontradas pelo programa diction
grapPreprocessador pic para desenhar gráficos, usado em tarefas elementares de análises de dados
hyphenEncontra palavras com hífenes
ispellVerifica a ortografia de forma interactiva
latexFormata texto em LaTeX, que é baseado no TeX
pdfelatexPara documentos LaTeX em formato pdf
latex2htmlConverter LaTeX para html
lookbibEncontra referências bibliográficas
macrefCria uma referência cruzada listando ficheiros de macros nroff/troff
ndxCria uma página de indexação para um documento
neqnFormata matemáticas com nroff
nroffFormata texto para exibição simples
picProduz simples imagens para troff input
psditFiltra um output troff para a Apple LaserWriter
ptxCria uma indexação permutada mas não em CCWF
referInsere referências de bases de dados bibliográficas
roffbibFaz o run off de uma base de dados bibliográfica
sortbibOrdena uma base de dados bibliográfica
spellEncontra erros de ortografia
styleAnalisa as características superficiais de um documento
tblFormata tabelas para nroff/troff
texFormata texto
tpicConverte ficheiros pic source em comandos TeX
wgetPermite-nos fazer o download completo de páginas web, com todos os ficheiros, de forma fácil e não interactiva, sem exigir por isso presença do utilizador, respeitando também o ficheirorobots.txt
Web
html2psConversor de html para ps
latex2htmlConversor de LaTeX para html
lynxNavegador web baseado em modo de texto, ou seja, é um web browser que nos permite abrir todo o tipo de páginas visualizando apenas os textos elinks, não vendo assim as imagens, e sendo por isso bastante rápido, mas requere prática para ser manuseado
netscapeNavegador web da Netscape
sitecopyAplicação que nos permite manter facil e remotamente web sites
weblintVerificador de sintaxes e de estilos html

sexta-feira, 4 de maio de 2012

Banco de Dados MySQL



O servidor de bancos de dados Open Source mais popular do
mundo, iniciou sua odisseia de nascimento por volta dos anos
90, quando os seus principais criadores iniciaram o seu
desenvolvimento;

Ulf Micheal “Monty” Windenius e David Axmark iniciaram o
desenvolvimento do MySQL quando eram proprietários da
empresa finlandesa TCX Konsult Oy, uma empresa de sistemas
para Data Warehouse

Baixe na íntegra o Material: Gestão Banco de Dados MySQL