-
Posts
63 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por PensadorNato1987
-
-
Alternativas aos quais eu conheço:
Alternativa ao Delphi 7(Lazarus)
Alternativa ao VisualBasic(Gambas)
Alternativa ao Corel Draw(Inkscape)
Alternativa ao Photoshop(Gimp)
Alternativa Ao Vegas(Kdenlive)
E assim sucessivamente:
Postem aqui se puderem alternativas para Linux que você conhece,tá ok,para ajudar o pessoal iniciante no Linux);
- 1
-
Nessa dica ensinarei a finalidade ou função de cada diretório do Linux,a explicação serve para a maioria das distros,não para todas.Serve de base para os novatos em Linux.
/ =É a raiz,ou seja,o diretório principal do sistema. Todos os outros diretórios são,de fato,subdiretórios do root.
/home = Armazena diretórios e arquivos de trabalho dos usuários comuns do sistema.
/root = Armazena diretórios e arquivos de trabalho do superusuário (root).
/boot= Contém o kernel e todos os arquivos necessários para a inicialização do sistema.
/bin = Contém aplicativos e utilitários do sistema.
/sbin= Contém ferramentas de configuração e manutenção do sistema. Alguns aplicativos acessíveis apenas ao superusuário são instalados neste diretório.
/srv = Dados de serviços fornecidos pelo sistema.
/lib = Contém as bibliotecas compartilhadas e os módulos do kernel.
/media = Ponto de montagem para mídia removível.
/dev = Contém todos os dispositivos do sistema, tais como: modem, HD, PenDrive, CD-ROM, entre outros. Esses diretórios são utilizados para troca de informações, não possuindo existência real.(dev vem do inglês, e é a abreviação de device, que significa dispositivo em inglês).
/etc = Contém todos os arquivos de configuração do sistema.
/tmp = Diretório reservado aos arquivos temporários utilizados por algumas aplicações. Como ocorre em muitos outros sistemas operacionais,durante o funcionamento são gerados arquivos temporários,inúteis após a conclusão do processo. Esse tipo de Lixo digital é colocado no diretório /tmp para que possa ser removido rapidamente,sem correr o risco de apagar os arquivos importantes.
/mnt = Diretório reservado para montagem de dispositivos e sistemas de arquivos em partições e discos locais e de rede.
/proc =Contém informações sobre os processos em execução no sistema. Assim como no diretório /dev, os arquivos e subdiretórios aqui contidos não são reais, sendo utilizados apenas como arquivos de troca.
/usr = Programas de usuários, sistemas de janelas X, jogos entre outros. Os links de alguns programas costumam ser instalados aqui.
/var = Contém arquivos de dados variáveis como log do sistema e diretórios de spool.
/opt = Diretório reservado para instalação de aplicações de terceiros como OpenOffice, programas pagos etc.
/usr/bin=Contém ferramentas e aplicativos de cada usuário. Ao criar uma nova conta de usuário, o sistema cria automaticamente uma pasta /usr/bin.
/usr/dict=Diretório em que são armazenados os dicionários (o nome dict deriva do inglês dictionary) e as listas de termos do usuário.
/usr/doc=Esse diretório contém a documentação do sistema em uso.
/usr/games=Quem disse que no Linux não se pode jogar? Esse diretório traz alguns aplicativos interessantes para a diversão dos usuários.
/usr/info=Nesse diretório encontramos os arquivos para o sistema GNU Info,baseado em hipertextos.
/usr/lib=Assim como o diretório bin da raiz contém as bibliotecas para a execução das ferramentas,desa vez,porém trata-se dos componentes da ferramentas que se encontram no diretório /usr/bin.
/usr/local=Essa pasta contém arquivos locais,ou seja,exclusivos para cada sistema(ou aplicativo),que incluem documentação (/usr/local/doc) e os programas em si (/usr/local/bin).
/usr/man=Diretório que agrupa os manuais que podem ser lidos com o comando man.
/usr/share=Contém arquivos e componentes compartilhados por vários aplicativos. Nesse diretório,encontramos diversos subdiretórios com arquivos de ajuda,ícones,etc.
/usr/src=Esse diretório contém o código fonte (source) dos programas disponíveis no sistema. Esse código pode ser visualizado e alterado livremente por programadores experientes para aprimorar o funcionamento de ferramentas e aplicativos,inclusive acrescentando opções de funcionamento.
/usr/tmp=É o diretório em que são colocados os arquivos temporários gerados pelo usuário ativo.Autor:Fabrício Augusto Ferrari,
livro:Curso prático de LinuxSe gostaram de um curtir nesse tópico.
- 1
-
-
4 horas atrás, Shaman93 disse:
Acredito que pra carregar 100% e se comportar adequadamente, apenas substituindo por uma bateria nova.Já recarreguei a bateria 100 por cento.
-
21 horas atrás, LendaNoLinux1987 disse:
Visualizador de imagem Delphi
Coloque um OpenPictureDialog no Form e digite o código abaixo no botão:Não se esqueça de adicionar um TImage para ver a imagem.if OpenPictureDialog1.Execute then Image1.Picture.LoadFromFile(OpenPictureDialog1.Filename);
Editor de texto:
Novo Memo1.Clear; Memo1.SetFocus; ----------------------------------------- Abrir if openDialog1.Execute then begin memo1.Lines.LoadFromFile(OpenDialog1.Filename); memo1.setfocus; end; ----------------------------------------- Botão Salvar if save.execute then begin memo1.Lines.SaveToFile(save.Filename); end; ----------------------------------------- Copiar Memo1.CopytoClipBoard; ----------------------------------------- Colar Memo1.PasteFromClipboard; ; ----------------------------------------- Recortar Memo1.CutToClipBoard ----------------------------------------- Fonte FontDialog1.Font:=Memo1.Font; if FontDialog1.Execute then begin Memo1.Font:= FontDialog1.Font; Memo1.SetFocus; end;
Gerador de senha:
var i:integer; const str='1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ@!#$%&*'; max=14; begin Edit1.Text:=''; for i:=1 to max do begin Edit1.Text:=Edit1.Text+str[random(length(str))+1]; end;
Cronômetro:unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons, ExtCtrls; type { TForm1 } TForm1 = class(TForm) Cronometrar: TBitBtn; Parar: TBitBtn; Edit1: TEdit; Timer1: TTimer; procedure CronometrarClick(Sender: TObject); procedure PararClick(Sender: TObject); procedure Timer1Timer(Sender: TObject); private public end; var Form1: TForm1; HoraInicial:TDateTime; implementation {$R *.lfm} { TForm1 } procedure TForm1.CronometrarClick(Sender: TObject); begin HoraInicial := Now; Timer1.Enabled := True; end; procedure TForm1.PararClick(Sender: TObject); begin HoraInicial := Now; Timer1.Enabled := False; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Edit1.Text := FormatDateTime('hh:mm:ss',Now-HoraInicial); end; end.
Criptografador(Criptografia)
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Button2: TButton; edtcriptografado: TEdit; edttexto: TEdit; edtdescriptografado: TEdit; edtkey: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); private function criptografar(const key, texto:String):String; function descriptografar(const key, texto:String):String; public end; var Form1: TForm1; im edtcriptografado.Text); end; function TForm1.criptografar(const key, texto: String): String; var I: Integer; C: Byte; begin Result := ''; for I := 1 to Length(texto) do begin if Length(Key) > 0 then C := Byte(Key[1 + ((I - 1) mod Length(Key))]) xor Byte(texto[I]) else C := Byte(texto[I]); Result := Result + AnsiLowerCase(IntToHex(C, 2)); end; end;plementation {$R *.lfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject); begin edtcriptografado.Text:=criptografar(edtkey.Text,edttexto.Text); end; procedure TForm1.Button2Click(Sender: TObject); begin edtdescriptografado.Text:=descriptografar(edtkey.Text, function TForm1.descriptografar(const key, texto: String): String; var I: Integer; C: Char; begin Result := ''; for I := 0 to Length(texto) div 2 - 1 do begin C := Chr(StrToIntDef('$' + Copy(texto, (I * 2) + 1, 2), Ord(' '))); if Length(Key) > 0 then C := Chr(Byte(Key[1 + (I mod Length(Key))]) xor Byte(C)); Result := Result + C; end; end; end.
Calculadora Empresarialprocedure TForm1.CalcularCicloDoProcessoClick(Sender: TObject); var n1,n2,resultado:real; //declaração de variáveis do tipo real(aceita numero inteiro e com vírgula) begin n1:=StrToFloat(TempoTrabalhadoEmHoras.Text);// converte n1(numero1) para numero flutuante n2:=StrToFloat(NumeroDeProdutosBons.Text);//converte n2(numero2)para numero flutuante resultado:=n1/n2; //Dividi a variável n1(numero1) e n2(numero2 ResultadoDoCicloDoProcesso.Text:=FloatToStr(resultado);//mostra o resultado convertendo numero flutuante(Float) para texto(String) procedure TForm1.CalcularTaxaDeProducaoClick(Sender: TObject); var n1,n2,resultado:real; begin n1:=StrToFloat(TempoTrabalhado.Text); n2:=StrToFloat(NumeroDeProdutosBons.Text); resultado:=n2/n1; ResultadoTaxaDeProducao.Text:=FloatToStr(resultado); procedure TForm1.CalcularTaxaDeProducaoPorRecursoClick(Sender: TObject); var n1,n2,resultado:real; begin n1:=StrToFloat(TaxaDeProducao.Text); n2:=StrToFloat(NumeroDeFuncionarios.Text); resultado:=n1/n2; ResultadoTaxaDeProducaoPorRecurso.Text:=FloatToStr(resultado); procedure TForm1.CalcularGiroDeEstoqueClick(Sender: TObject); var n1,n2,n3,resultado:real; begin n1:=StrToFloat(NumeroDeProdutosBons.Text); n2:=StrToFloat(TotalDeMateriais.Text); n3:=StrToFloat(TotalDeProdutos.Text); resultado:=n1*12/n2/n3; ResultadoDoGiroDoEstoque.Text:=FloatToStr(resultado); procedure TForm1.CalcularFaltaDeQualidadeClick(Sender: TObject); var n1,n2,resultado:real; begin n1:=StrToFloat(NumeroDeProdutosComDefeitos.Text); n2:=StrToFloat(TotalProduzido.Text); resultado:=n1/n2; ResultadoDaFaltaDeQualidade.Text:=FloatToStr(resultado); procedure TForm1.SairClick(Sender: TObject); begin Form1.Close; procedure TForm1.CalcularCPVClick(Sender: TObject); var n1,n2,resultado:real; begin n1:=StrToFloat(NumeroDeProdutosBons.Text); n2:=StrToFloat(ValorUnitario.Text); resultado:=n1*n2; ResultadoCPV.Text:=FloatToStr(resultado); procedure TForm1.CalcularCustoDaFaltaDeQualidadeClick(Sender: TObject); var n1,n2,resultado:real; begin n1:=StrToFloat(NumeroDeProdutosComDefeitos.Text); n2:=StrToFloat(ValorUnitario.Text); resultado:=n1*n2; ResultadoDoCustoDaFaltaDeQualidade.Text:=FloatToStr(resultado); Botão Apagar: TempoTrabalhado.Text:=''; TempoTrabalhadoEmHoras.Text:=''; NumeroDeProdutosBons.Text:=''; resultadoDoCicloDoProcesso.Text:=''; TaxaDeProducao.Text:=''; ResultadoTaxaDeProducao.Text:=''; NumeroDeFuncionarios.Text:=''; ResultadoTaxaDeProducaoPorRecurso.Text:=''; TotalDeMateriais.Text:=''; TotalDeProdutos.Text:=''; ResultadoDoGiroDoEstoque.Text:=''; NumeroDeProdutosComDefeitos.Text:=''; TotalProduzido.Text:=''; ResultadoDaFaltaDeQualidade.Text:=''; ResultadoCPV.Text:=''; ResultadoDoCustoDaFaltaDeQualidade.Text:=''; Form1. close; //Fecha o Form procedure TForm2.CalcularCustoDeCarregarEstoqueClick(Sender: TObject); var n1,n2,n3,resultado:real; begin n1:=StrToFloat(EstoqueDeProducaoEmProcesso.Text); n2:=StrToFloat(ValorUnitario.Text); n3:=StrToFloat(TaxaDeJuros.Text); resultado:=n1*n2*n3; ResultadoDoCustoDeCarregarEstoque.Text:=FloatToStr(resultado); end; procedure TForm2.CalcularCustoFixoClick(Sender: TObject); var n1,n2,resultado:real; begin n1:=StrToFloat(SalarioDoColaborador.Text); n2:=StrToFloat(DespesasGerais.Text); resultado:=n1+n2; ResultadoDoCustoFixo.Text:=FloatToStr(resultado); end; procedure TForm2.CalcularCustoTotalClick(Sender: TObject); var n1,n2,n3,n4,resultado:real; begin n1:=StrToFloat(CPV.Text); n2:=StrToFloat(CustoDaQualidade.Text); n3:=StrToFloat(CustoDoEstoque.Text); n4:=StrToFloat(CustoFixo.Text); resultado:=n1+n2+n3+n4; CustoTotal.Text:=FloatToStr(resultado); end; procedure TForm2.CalcularCustoUnitarioClick(Sender: TObject); var n1,n2,resultado:real; begin n1:=StrToFloat(CustoTotal.Text); n2:=StrToFloat(NumeroDeProdutosBons.Text); resultado:=n1/n2; ResultadoDoCustoUnitario.Text:=FloatToStr(resultado); end; procedure TForm2.SairClick(Sender: TObject); begin Form2.Close;// Fecha o Form2 end; procedure TForm2.ApagarClick(Sender: TObject); begin EstoqueDeProducaoEmProcesso.Text:=''; ValorUnitario.Text:=''; TaxaDeJuros.Text:=''; ResultadoDoCustoDeCarregarEstoque.Text:=''; SalarioDoColaborador.Text:=''; DespesasGerais.Text:=''; ResultadoDoCustoFixo.Text:=''; CPV.Text:=''; CustoDaQualidade.Text:=''; CustodoEstoque.Text:=''; CustoFixo.Text:=''; CustoTotal.Text:=''; NumeroDeProdutosBons.Text:=''; ResultadoDoCustoUnitario.Text:=''; end;
Calculadora de décimo terceiro saláriounit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls; type { TForm1 } TForm1 = class(TForm) Calcular: TButton; Apagar: TButton; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Sair: TButton; procedure ApagarClick(Sender: TObject); procedure CalcularClick(Sender: TObject); procedure SairClick(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation { TForm1 } procedure TForm1.CalcularClick(Sender: TObject); var n1,n2,resultado:real;//n1(numero1),n2(numero2),resultado(resultado do calculo) begin n1:=StrToFloat(Edit1.text); n2:=StrToFloat(Edit2.text); resultado:=n1*n2/12; Edit3.text:=FloatToStr(resultado); end; procedure TForm1.SairClick(Sender: TObject); begin Form1.Close; end; procedure TForm1.ApagarClick(Sender: TObject); begin Edit1.text:=''; Edit2.text:=''; Edit3.Text:=''; end; initialization {$I unit1.lrs} end.
Calculadora completa(Com porcentagem)
unit UnitCalculadora; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, Menus; type { TForm1 } TForm1 = class(TForm) BtnDivisao: TButton; BtnMultiplicacao: TButton; BtnSete: TButton; BtnOito: TButton; BtnNove: TButton; BtnC: TButton; BtnQuatro: TButton; BtnCinco: TButton; BtnSeis: TButton; BtnDois: TButton; BtnTres: TButton; BtnSubtracao: TButton; BtnAdicao: TButton; BtnUm: TButton; BtnPonto: TButton; BtnIgual: TButton; BtnPorcentagem: TButton; BtnZero: TButton; Edit1: TEdit; Label1: TLabel; MainMenu1: TMainMenu; MenuItem1: TMenuItem; MenuItem2: TMenuItem; Panel1: TPanel; procedure BtnAdicaoClick(Sender: TObject); procedure BtnCClick(Sender: TObject); procedure BtnCincoClick(Sender: TObject); procedure BtnDivisaoClick(Sender: TObject); procedure BtnDoisClick(Sender: TObject); procedure BtnIgualClick(Sender: TObject); procedure BtnMultiplicacaoClick(Sender: TObject); procedure BtnNoveClick(Sender: TObject); procedure BtnOitoClick(Sender: TObject); procedure BtnPorcentagemClick(Sender: TObject); procedure BtnQuatroClick(Sender: TObject); procedure BtnSeisClick(Sender: TObject); procedure BtnSeteClick(Sender: TObject); procedure BtnSubtracaoClick(Sender: TObject); procedure BtnTresClick(Sender: TObject); procedure BtnUmClick(Sender: TObject); procedure BtnPontoClick(Sender: TObject); procedure BtnZeroClick(Sender: TObject); private public end; var Form1: TForm1; valor1, valor2, porcentagem:real; tipoconta:string; implementation {$R *.lfm} { TForm1 } procedure TForm1.BtnAdicaoClick(Sender: TObject); begin tipoconta:='Adição'; valor1:=strtofloat(Edit1.text); Edit1.Text:=''; Label1.Caption:='+'; end; procedure TForm1.BtnCClick(Sender: TObject); begin Edit1.text:=''; valor1:=0; valor2:=0; tipoconta:=''; Label1.Caption:=''; end; procedure TForm1.BtnCincoClick(Sender: TObject); begin Edit1.text:=Edit1.text+'5'; end; procedure TForm1.BtnDivisaoClick(Sender: TObject); begin tipoconta:='Divisão'; valor1:=strtofloat(Edit1.text); Edit1.Text:=''; Label1.Caption:='/'; end; procedure TForm1.BtnDoisClick(Sender: TObject); begin Edit1.text:=Edit1.text+'2'; end; procedure TForm1.BtnIgualClick(Sender: TObject); begin if tipoconta = 'Adição' then begin valor2:=StrToFloat(edit1.text); edit1.text:=FloatToStr(valor1+valor2); end; if tipoconta = 'Subtração' then begin valor2:=StrToFloat(edit1.text); edit1.text:=FloatToStr(valor1-valor2); end; if tipoconta = 'Divisão' then begin valor2:=StrToFloat(edit1.text); edit1.text:=FloatToStr(valor1/valor2); end; if tipoconta= 'Multiplicação' then begin valor2:=StrToFloat(Edit1.Text); Edit1.Text:=FloatToStr(Valor1 * Valor2); end; end; procedure TForm1.BtnMultiplicacaoClick(Sender: TObject); begin tipoconta:='Multiplicação'; valor1:=strtofloat(Edit1.text); Edit1.Text:=''; Label1.Caption:='X'; end; procedure TForm1.BtnNoveClick(Sender: TObject); begin Edit1.text:=Edit1.text+'9'; end; procedure TForm1.BtnOitoClick(Sender: TObject); begin Edit1.text:=Edit1.text+'8'; end; procedure TForm1.BtnPorcentagemClick(Sender: TObject); var resultado:real; begin if tipoconta ='Multiplicação' then begin valor2:=strtofloat(edit1.text); resultado:=valor1*valor2/100; Edit1.text:=FloatToStr(resultado); Label1.Caption:='%'; end; if tipoconta = 'Adição' then begin porcentagem:=strtofloat(edit1.text); porcentagem:=porcentagem/100; porcentagem:=porcentagem*valor1; edit1.text:=floattostr(valor1+porcentagem); end; if tipoconta = 'Subtração' then begin porcentagem:=strtofloat(edit1.text); porcentagem:=porcentagem/100; porcentagem:=porcentagem*valor1; edit1.text:=floattostr(valor1-porcentagem); end; if tipoconta = 'Divisão' then begin porcentagem:=strtofloat(edit1.text); porcentagem:=porcentagem/100; porcentagem:=porcentagem*valor1; edit1.text:=floattostr(valor1/porcentagem); end; end; procedure TForm1.BtnQuatroClick(Sender: TObject); begin Edit1.text:=Edit1.text+'4'; end; procedure TForm1.BtnSeisClick(Sender: TObject); begin Edit1.text:=Edit1.text+'6'; end; procedure TForm1.BtnSeteClick(Sender: TObject); begin Edit1.text:=Edit1.text+'7'; end; procedure TForm1.BtnSubtracaoClick(Sender: TObject); begin tipoconta:='Subtração'; valor1:=strtofloat(Edit1.text); Edit1.Text:=''; Label1.Caption:='-'; end; procedure TForm1.BtnTresClick(Sender: TObject); begin Edit1.text:=Edit1.text+'3'; end; procedure TForm1.BtnUmClick(Sender: TObject); begin Edit1.text:=Edit1.text+'1'; end; procedure TForm1.BtnPontoClick(Sender: TObject); begin Edit1.text:=Edit1.text+'.'; end; procedure TForm1.BtnZeroClick(Sender: TObject); begin Edit1.text:=Edit1.text+'0'; end; end.
Pessoal,se gostaram dos meus códigos por favor deem curtir para mim,pois é impossível que ninguém desse fórum não goste de Delphi
-
Quanto custa uma bateria de notebook para o notebook para o modelo do meu notebook que é o seguinte:
Acer Aspire-F5-573G-519x
vem com placa de vídeo Geforce940mx e core i5
-
7 minutos atrás, Shaman93 disse:
Como dito, é a bateria no final da vida útil. Com uso normal as baterias de notebook costumam durar de 2 a 4 anos, a sua já tem 8... Nesse ponto os sintomas podem ser diversos, tal como o que você vem observando, ou a bateria mesmo carregada não segura o equipamento ligado, ou descarrega completamente em poucos minutos e por aí vai. Só substituindo ela mesmo.
Gostaria de saber se essa minha bateria não vai carregar de jeito nenhum 100 por cento,pois sou portador da síndrome de noonan e tenho dificuldade para entender e dificuldade de aprendizado ou seja eu demoro para cair a ficha,não sei se no fórum eu poderia dizer isso ou não,porque para mim é mais difícil de ler as regras do fórum,pois tenho dificuldade para entender,e nasci com esse problema.
-
4 horas atrás, Shaman93 disse:
Sim, tem que trocar, a bateria só aguenta um determinado número de ciclos de carga e descarga, antes de ficar incapaz de continuar armazenando energia. Uma forma de prolongar esse tempo é evitar extremos (não deixar que a carga vá acima de 80%, nem abaixo de 20%) ou mesmo os próprios ciclos, retirando a bateria e usando direto na tomada, quando ela não for necessária. Mas 8 anos já é uso pra dedéu, mesmo uma bateria pouco usada já estaria começando a pedir arrego depois de todo esse tempo.
Sabe dizer se esse erro é na bateria ou no cabo da bateria,talvez alguém que entenda bastante de Linux possa me ajudar,porque estou usando o Debian 12.1 ou não tem nada a ver,bateria é igual em todos os sistemas?
Para mais detalhes sobre o problema leia abaixo:
Bateria diz que está carregando,mas não muda a porcentagem,as vezes quando eu tiro o cabo da bateria e mexo em configurar a economia de bateria no Debian,coloco a aba 'com bateria' no modo padrão volta a carregar a bateria com porcentagem,mas fica nesse ciclo.
-
19 minutos atrás, Shaman93 disse:
Sim, tem que trocar, a bateria só aguenta um determinado número de ciclos de carga e descarga, antes de ficar incapaz de continuar armazenando energia. Uma forma de prolongar esse tempo é evitar extremos (não deixar que a carga vá acima de 80%, nem abaixo de 20%) ou mesmo os próprios ciclos, retirando a bateria e usando direto na tomada, quando ela não for necessária. Mas 8 anos já é uso pra dedéu, mesmo uma bateria pouco usada já estaria começando a pedir arrego depois de todo esse tempo.
Mas isso aconteceu quando deu queda de luz aqui em casa,dai o computador ficou só na bateria quando deu queda de luz.
-
10 minutos atrás, Shaman93 disse:
Aparentemente a bateria está no fim da vida útil e deve ser substituída, conforme consta no aviso do próprio sistema... Tem quanto tempo de uso?
8 anos tem o meu computador notebook,é para trocar a bateria do notebook?
-
-
Visualizador de imagem Delphi
Coloque um OpenPictureDialog no Form e digite o código abaixo no botão:Não se esqueça de adicionar um TImage para ver a imagem.if OpenPictureDialog1.Execute then Image1.Picture.LoadFromFile(OpenPictureDialog1.Filename);
Editor de texto:
Novo Memo1.Clear; Memo1.SetFocus; ----------------------------------------- Abrir if openDialog1.Execute then begin memo1.Lines.LoadFromFile(OpenDialog1.Filename); memo1.setfocus; end; ----------------------------------------- Botão Salvar if save.execute then begin memo1.Lines.SaveToFile(save.Filename); end; ----------------------------------------- Copiar Memo1.CopytoClipBoard; ----------------------------------------- Colar Memo1.PasteFromClipboard; ; ----------------------------------------- Recortar Memo1.CutToClipBoard ----------------------------------------- Fonte FontDialog1.Font:=Memo1.Font; if FontDialog1.Execute then begin Memo1.Font:= FontDialog1.Font; Memo1.SetFocus; end;
Gerador de senha:
var i:integer; const str='1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ@!#$%&*'; max=14; begin Edit1.Text:=''; for i:=1 to max do begin Edit1.Text:=Edit1.Text+str[random(length(str))+1]; end;
Cronômetro:unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons, ExtCtrls; type { TForm1 } TForm1 = class(TForm) Cronometrar: TBitBtn; Parar: TBitBtn; Edit1: TEdit; Timer1: TTimer; procedure CronometrarClick(Sender: TObject); procedure PararClick(Sender: TObject); procedure Timer1Timer(Sender: TObject); private public end; var Form1: TForm1; HoraInicial:TDateTime; implementation {$R *.lfm} { TForm1 } procedure TForm1.CronometrarClick(Sender: TObject); begin HoraInicial := Now; Timer1.Enabled := True; end; procedure TForm1.PararClick(Sender: TObject); begin HoraInicial := Now; Timer1.Enabled := False; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Edit1.Text := FormatDateTime('hh:mm:ss',Now-HoraInicial); end; end.
Criptografador(Criptografia)
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Button2: TButton; edtcriptografado: TEdit; edttexto: TEdit; edtdescriptografado: TEdit; edtkey: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); private function criptografar(const key, texto:String):String; function descriptografar(const key, texto:String):String; public end; var Form1: TForm1; im edtcriptografado.Text); end; function TForm1.criptografar(const key, texto: String): String; var I: Integer; C: Byte; begin Result := ''; for I := 1 to Length(texto) do begin if Length(Key) > 0 then C := Byte(Key[1 + ((I - 1) mod Length(Key))]) xor Byte(texto[I]) else C := Byte(texto[I]); Result := Result + AnsiLowerCase(IntToHex(C, 2)); end; end;plementation {$R *.lfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject); begin edtcriptografado.Text:=criptografar(edtkey.Text,edttexto.Text); end; procedure TForm1.Button2Click(Sender: TObject); begin edtdescriptografado.Text:=descriptografar(edtkey.Text, function TForm1.descriptografar(const key, texto: String): String; var I: Integer; C: Char; begin Result := ''; for I := 0 to Length(texto) div 2 - 1 do begin C := Chr(StrToIntDef('$' + Copy(texto, (I * 2) + 1, 2), Ord(' '))); if Length(Key) > 0 then C := Chr(Byte(Key[1 + (I mod Length(Key))]) xor Byte(C)); Result := Result + C; end; end; end.
Calculadora Empresarialprocedure TForm1.CalcularCicloDoProcessoClick(Sender: TObject); var n1,n2,resultado:real; //declaração de variáveis do tipo real(aceita numero inteiro e com vírgula) begin n1:=StrToFloat(TempoTrabalhadoEmHoras.Text);// converte n1(numero1) para numero flutuante n2:=StrToFloat(NumeroDeProdutosBons.Text);//converte n2(numero2)para numero flutuante resultado:=n1/n2; //Dividi a variável n1(numero1) e n2(numero2 ResultadoDoCicloDoProcesso.Text:=FloatToStr(resultado);//mostra o resultado convertendo numero flutuante(Float) para texto(String) procedure TForm1.CalcularTaxaDeProducaoClick(Sender: TObject); var n1,n2,resultado:real; begin n1:=StrToFloat(TempoTrabalhado.Text); n2:=StrToFloat(NumeroDeProdutosBons.Text); resultado:=n2/n1; ResultadoTaxaDeProducao.Text:=FloatToStr(resultado); procedure TForm1.CalcularTaxaDeProducaoPorRecursoClick(Sender: TObject); var n1,n2,resultado:real; begin n1:=StrToFloat(TaxaDeProducao.Text); n2:=StrToFloat(NumeroDeFuncionarios.Text); resultado:=n1/n2; ResultadoTaxaDeProducaoPorRecurso.Text:=FloatToStr(resultado); procedure TForm1.CalcularGiroDeEstoqueClick(Sender: TObject); var n1,n2,n3,resultado:real; begin n1:=StrToFloat(NumeroDeProdutosBons.Text); n2:=StrToFloat(TotalDeMateriais.Text); n3:=StrToFloat(TotalDeProdutos.Text); resultado:=n1*12/n2/n3; ResultadoDoGiroDoEstoque.Text:=FloatToStr(resultado); procedure TForm1.CalcularFaltaDeQualidadeClick(Sender: TObject); var n1,n2,resultado:real; begin n1:=StrToFloat(NumeroDeProdutosComDefeitos.Text); n2:=StrToFloat(TotalProduzido.Text); resultado:=n1/n2; ResultadoDaFaltaDeQualidade.Text:=FloatToStr(resultado); procedure TForm1.SairClick(Sender: TObject); begin Form1.Close; procedure TForm1.CalcularCPVClick(Sender: TObject); var n1,n2,resultado:real; begin n1:=StrToFloat(NumeroDeProdutosBons.Text); n2:=StrToFloat(ValorUnitario.Text); resultado:=n1*n2; ResultadoCPV.Text:=FloatToStr(resultado); procedure TForm1.CalcularCustoDaFaltaDeQualidadeClick(Sender: TObject); var n1,n2,resultado:real; begin n1:=StrToFloat(NumeroDeProdutosComDefeitos.Text); n2:=StrToFloat(ValorUnitario.Text); resultado:=n1*n2; ResultadoDoCustoDaFaltaDeQualidade.Text:=FloatToStr(resultado); Botão Apagar: TempoTrabalhado.Text:=''; TempoTrabalhadoEmHoras.Text:=''; NumeroDeProdutosBons.Text:=''; resultadoDoCicloDoProcesso.Text:=''; TaxaDeProducao.Text:=''; ResultadoTaxaDeProducao.Text:=''; NumeroDeFuncionarios.Text:=''; ResultadoTaxaDeProducaoPorRecurso.Text:=''; TotalDeMateriais.Text:=''; TotalDeProdutos.Text:=''; ResultadoDoGiroDoEstoque.Text:=''; NumeroDeProdutosComDefeitos.Text:=''; TotalProduzido.Text:=''; ResultadoDaFaltaDeQualidade.Text:=''; ResultadoCPV.Text:=''; ResultadoDoCustoDaFaltaDeQualidade.Text:=''; Form1. close; //Fecha o Form procedure TForm2.CalcularCustoDeCarregarEstoqueClick(Sender: TObject); var n1,n2,n3,resultado:real; begin n1:=StrToFloat(EstoqueDeProducaoEmProcesso.Text); n2:=StrToFloat(ValorUnitario.Text); n3:=StrToFloat(TaxaDeJuros.Text); resultado:=n1*n2*n3; ResultadoDoCustoDeCarregarEstoque.Text:=FloatToStr(resultado); end; procedure TForm2.CalcularCustoFixoClick(Sender: TObject); var n1,n2,resultado:real; begin n1:=StrToFloat(SalarioDoColaborador.Text); n2:=StrToFloat(DespesasGerais.Text); resultado:=n1+n2; ResultadoDoCustoFixo.Text:=FloatToStr(resultado); end; procedure TForm2.CalcularCustoTotalClick(Sender: TObject); var n1,n2,n3,n4,resultado:real; begin n1:=StrToFloat(CPV.Text); n2:=StrToFloat(CustoDaQualidade.Text); n3:=StrToFloat(CustoDoEstoque.Text); n4:=StrToFloat(CustoFixo.Text); resultado:=n1+n2+n3+n4; CustoTotal.Text:=FloatToStr(resultado); end; procedure TForm2.CalcularCustoUnitarioClick(Sender: TObject); var n1,n2,resultado:real; begin n1:=StrToFloat(CustoTotal.Text); n2:=StrToFloat(NumeroDeProdutosBons.Text); resultado:=n1/n2; ResultadoDoCustoUnitario.Text:=FloatToStr(resultado); end; procedure TForm2.SairClick(Sender: TObject); begin Form2.Close;// Fecha o Form2 end; procedure TForm2.ApagarClick(Sender: TObject); begin EstoqueDeProducaoEmProcesso.Text:=''; ValorUnitario.Text:=''; TaxaDeJuros.Text:=''; ResultadoDoCustoDeCarregarEstoque.Text:=''; SalarioDoColaborador.Text:=''; DespesasGerais.Text:=''; ResultadoDoCustoFixo.Text:=''; CPV.Text:=''; CustoDaQualidade.Text:=''; CustodoEstoque.Text:=''; CustoFixo.Text:=''; CustoTotal.Text:=''; NumeroDeProdutosBons.Text:=''; ResultadoDoCustoUnitario.Text:=''; end;
Calculadora de décimo terceiro saláriounit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls; type { TForm1 } TForm1 = class(TForm) Calcular: TButton; Apagar: TButton; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Sair: TButton; procedure ApagarClick(Sender: TObject); procedure CalcularClick(Sender: TObject); procedure SairClick(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation { TForm1 } procedure TForm1.CalcularClick(Sender: TObject); var n1,n2,resultado:real;//n1(numero1),n2(numero2),resultado(resultado do calculo) begin n1:=StrToFloat(Edit1.text); n2:=StrToFloat(Edit2.text); resultado:=n1*n2/12; Edit3.text:=FloatToStr(resultado); end; procedure TForm1.SairClick(Sender: TObject); begin Form1.Close; end; procedure TForm1.ApagarClick(Sender: TObject); begin Edit1.text:=''; Edit2.text:=''; Edit3.Text:=''; end; initialization {$I unit1.lrs} end.
Calculadora completa(Com porcentagem)
unit UnitCalculadora; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, Menus; type { TForm1 } TForm1 = class(TForm) BtnDivisao: TButton; BtnMultiplicacao: TButton; BtnSete: TButton; BtnOito: TButton; BtnNove: TButton; BtnC: TButton; BtnQuatro: TButton; BtnCinco: TButton; BtnSeis: TButton; BtnDois: TButton; BtnTres: TButton; BtnSubtracao: TButton; BtnAdicao: TButton; BtnUm: TButton; BtnPonto: TButton; BtnIgual: TButton; BtnPorcentagem: TButton; BtnZero: TButton; Edit1: TEdit; Label1: TLabel; MainMenu1: TMainMenu; MenuItem1: TMenuItem; MenuItem2: TMenuItem; Panel1: TPanel; procedure BtnAdicaoClick(Sender: TObject); procedure BtnCClick(Sender: TObject); procedure BtnCincoClick(Sender: TObject); procedure BtnDivisaoClick(Sender: TObject); procedure BtnDoisClick(Sender: TObject); procedure BtnIgualClick(Sender: TObject); procedure BtnMultiplicacaoClick(Sender: TObject); procedure BtnNoveClick(Sender: TObject); procedure BtnOitoClick(Sender: TObject); procedure BtnPorcentagemClick(Sender: TObject); procedure BtnQuatroClick(Sender: TObject); procedure BtnSeisClick(Sender: TObject); procedure BtnSeteClick(Sender: TObject); procedure BtnSubtracaoClick(Sender: TObject); procedure BtnTresClick(Sender: TObject); procedure BtnUmClick(Sender: TObject); procedure BtnPontoClick(Sender: TObject); procedure BtnZeroClick(Sender: TObject); private public end; var Form1: TForm1; valor1, valor2, porcentagem:real; tipoconta:string; implementation {$R *.lfm} { TForm1 } procedure TForm1.BtnAdicaoClick(Sender: TObject); begin tipoconta:='Adição'; valor1:=strtofloat(Edit1.text); Edit1.Text:=''; Label1.Caption:='+'; end; procedure TForm1.BtnCClick(Sender: TObject); begin Edit1.text:=''; valor1:=0; valor2:=0; tipoconta:=''; Label1.Caption:=''; end; procedure TForm1.BtnCincoClick(Sender: TObject); begin Edit1.text:=Edit1.text+'5'; end; procedure TForm1.BtnDivisaoClick(Sender: TObject); begin tipoconta:='Divisão'; valor1:=strtofloat(Edit1.text); Edit1.Text:=''; Label1.Caption:='/'; end; procedure TForm1.BtnDoisClick(Sender: TObject); begin Edit1.text:=Edit1.text+'2'; end; procedure TForm1.BtnIgualClick(Sender: TObject); begin if tipoconta = 'Adição' then begin valor2:=StrToFloat(edit1.text); edit1.text:=FloatToStr(valor1+valor2); end; if tipoconta = 'Subtração' then begin valor2:=StrToFloat(edit1.text); edit1.text:=FloatToStr(valor1-valor2); end; if tipoconta = 'Divisão' then begin valor2:=StrToFloat(edit1.text); edit1.text:=FloatToStr(valor1/valor2); end; if tipoconta= 'Multiplicação' then begin valor2:=StrToFloat(Edit1.Text); Edit1.Text:=FloatToStr(Valor1 * Valor2); end; end; procedure TForm1.BtnMultiplicacaoClick(Sender: TObject); begin tipoconta:='Multiplicação'; valor1:=strtofloat(Edit1.text); Edit1.Text:=''; Label1.Caption:='X'; end; procedure TForm1.BtnNoveClick(Sender: TObject); begin Edit1.text:=Edit1.text+'9'; end; procedure TForm1.BtnOitoClick(Sender: TObject); begin Edit1.text:=Edit1.text+'8'; end; procedure TForm1.BtnPorcentagemClick(Sender: TObject); var resultado:real; begin if tipoconta ='Multiplicação' then begin valor2:=strtofloat(edit1.text); resultado:=valor1*valor2/100; Edit1.text:=FloatToStr(resultado); Label1.Caption:='%'; end; if tipoconta = 'Adição' then begin porcentagem:=strtofloat(edit1.text); porcentagem:=porcentagem/100; porcentagem:=porcentagem*valor1; edit1.text:=floattostr(valor1+porcentagem); end; if tipoconta = 'Subtração' then begin porcentagem:=strtofloat(edit1.text); porcentagem:=porcentagem/100; porcentagem:=porcentagem*valor1; edit1.text:=floattostr(valor1-porcentagem); end; if tipoconta = 'Divisão' then begin porcentagem:=strtofloat(edit1.text); porcentagem:=porcentagem/100; porcentagem:=porcentagem*valor1; edit1.text:=floattostr(valor1/porcentagem); end; end; procedure TForm1.BtnQuatroClick(Sender: TObject); begin Edit1.text:=Edit1.text+'4'; end; procedure TForm1.BtnSeisClick(Sender: TObject); begin Edit1.text:=Edit1.text+'6'; end; procedure TForm1.BtnSeteClick(Sender: TObject); begin Edit1.text:=Edit1.text+'7'; end; procedure TForm1.BtnSubtracaoClick(Sender: TObject); begin tipoconta:='Subtração'; valor1:=strtofloat(Edit1.text); Edit1.Text:=''; Label1.Caption:='-'; end; procedure TForm1.BtnTresClick(Sender: TObject); begin Edit1.text:=Edit1.text+'3'; end; procedure TForm1.BtnUmClick(Sender: TObject); begin Edit1.text:=Edit1.text+'1'; end; procedure TForm1.BtnPontoClick(Sender: TObject); begin Edit1.text:=Edit1.text+'.'; end; procedure TForm1.BtnZeroClick(Sender: TObject); begin Edit1.text:=Edit1.text+'0'; end; end.
-
2 horas atrás, LendaNoLinux1987 disse:
Marca que eu tenho 4 de reputação,mas só calculei 2 de reputação,certos tópicos meus foram apagados,então eu não mereço ter 4 de reputação e sim só 2 de reputação,consertem para mim caros administradores.Aguardo resposta.Como digo sempre o que é justo é justo.
Pessoal,só me digam se a quantidade de reputação minha está certa,eu contei 2 ou 3,mas posso ter 4 de reputação,nunca fui bom na matematica,e nem sei direito a tabuada,gostaria que alguém contasse certinho para mim quantas reputações eu tenho,pois não quero reputação que eu não mereça,o que é justo é justo.Entenderam? Aguardo resposta.
-
Marca que eu tenho 4 de reputação,mas só calculei 2 de reputação,certos tópicos meus foram apagados,então eu não mereço ter 4 de reputação e sim só 2 de reputação,consertem para mim caros administradores.Aguardo resposta.Como digo sempre o que é justo é justo.
-
16 horas atrás, SAFEDISK disse:
@LendaNoLinux1987 Quais outras opções ele da além do Microfone Interno, e aumenta o dB dele ....
Tem essa opção também,veja na foto em anexo:Se está configurada de maneira certa.
Devo tirar do modo silencioso?
-
22 minutos atrás, SAFEDISK disse:
@LendaNoLinux1987 Talvez seu microfone esteja mutado, abra o AlsaMixer, ou o PavuControl, seja lá qual você tenha instalado e verifique se o mesmo não está mutado....
Ve se eu estou na tela certa e configurei certinho,tá ok,no anexo abaixo:Usei o Pavucontrol no Debian 12.
-
Entenda o seguinte:
De celular para celular dá para escutar o microfone
De Computador para computador também dá para ouvir o microfone
De celular para computador também dá para ouvir o microfone
De computador para celular a gente não escuta o som da voz minha no microfoneEngraçado que o microfone dá para ouvir na Vídeo aula do SimpleScreenRecorder.
Estou usando notebook com microfone embutido,e usando o sistema Debian 12.1 com KDE.
Alguém sabe como corrigir esse erro? ou é bug do instagram?
-
7 minutos atrás, Strolb disse:
Opa, eu agradeceria imensamente.
Esse Acer Aspire 5 A515 que eu indiquei no post vem com Ryzen 3. Não sei se presta ou não, montei um PC desktop há 2 anos com um Ryzen 5 3600 e não sei se esse Ryzen 3 estaria à frente ou atrás desse Ryzen 5 3600
E mais uma dúvida: o A515 seria "superior" ao A514? Porque pela configuração que você mandou do seu Acer Aspire A514, ele parece superior ao A515 que eu anexei acima.
Pelo que vi agora, o site da Kabum geralzão ta fora do ar
Beleza,desde que não seja problema no meu computador,está tudo ok,o site da kabum teve ter muitos acessos né?
-
28 minutos atrás, Dj Rayke disse:
Caro usuário, boa noite...
É necessário informar a que tópico você se refere com links e informado mais especificamente qual seria sua dúvida.
Favor publicar um link de um tópico de sua autoria sobre o qual se refere o problema para verificarmos.
Já mesclaram,era esse tópico seguinte:
-
Como sou novato no fórum,gostaria de saber:
Os meus tópicos estão certos? Porque algumas das minhas respostas não estão mescladas?
Podem corrigir para mim administradores,por favor verifiquem para mim,tá ok.
-
Pode ter acontecido esse erro porque eu acho que não digitei o comando:
make install
Pode ser isso? -
23 minutos atrás, Gabriel Torres disse:
Obrigado Gabriel Torres administrador,posso ser errado em tudo,mas sou justo e honesto.
- 1
-
root@Lenda:/boot# apt-get install initramfs-tools
Lendo listas de pacotes… Pronto
Construindo árvore de dependências… Pronto
Lendo informação de estado… Pronto
initramfs-tools is already the newest version (0.142).
0 pacotes atualizados, 0 pacotes novos instalados, 0 a serem removidos e 0 não atualizados.
root@Lenda:/boot# mkinitramfs -o initrd.img-6.4.9 6.4.9
bash: mkinitramfs: comando não encontrado
root@Lenda:/boot#
Alguém sabe corrigir esse erro? -
Sugestão (Não é justo eu ter 2 reputação,se tem um tópico que foi deletado),o tópico Meu canal de vídeo aulas foi deletado,e nele eu tinha uma reputação eu acho,não devo ganhar essa reputação se o tópico foi deletado,o que é justo é justo,e nada mais,tirem uma reputação minha que eu não mereço,podem consertar isso administradores?
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais
Quer saber mais sobre Linux? Leia e esclareça
em Linux
Postado
Quem criou o Linux?
Linus Torvalds com a ajuda de hackers do Minix.
O que é Linux?
É o Kernel, núcleo do sistema operacional, por isso apelidei de coração do sistema, assim como o coração fornece vida para nós seres humanos, o Kernel dá vida ao sistema operacional.
O que é GNU?
É um projeto criado por Richard Stallman, no final de 1983, com a ambição de criar um sistema operacional de código aberto e livre. GNU foi baseado no Unix, mas seu nome é um acrônimo para “GNU NOT UNIX”, que traduzido para o português é “GNU NÃO UNIX”, ou seja, mesmo que seja baseado, a ideia era criar algo diferente.
O que são patches?
Como se fossem “remendos” nas feridas do sistema, ou seja, são correções de falhas no sistema.Patches vem do inglês e significa Remendos.
Por que o GNU/Linux tem o coração (Kernel) mais saudável?
O mais provável é porque foi criado com Kernel monolítico, o monolítico executa melhor desempenho, torna o sistema mais leve, e faz com que o mesmo sistema fique mais seguro.
Qual o GNU/Linux é indicado para leigos?
Ubuntu ou mint.
Qual o programa que facilita a instalação de programas no GNU/Linux?
Synaptic, que foi criado pelo brasileiro Alfredo Kojima.
Por que o GNU/Linux não tem código malicioso se todo mundo pode contribuir?
Porque o código do kernel é avaliado, se ocorrer de haver algo malicioso, o que é raro, o código é rejeitado.
Porque devo adotar Linux na minha empresa?
Porque é leve, robusto, seguro, estável, transparente, confiável, flexível, personalizável, gratuito, intuitivo, dedutivo e sem falar que a maioria das distros oferecem privacidade. O Código é aberto para aperfeiçoar o sistema. Não tem crack e é livre o que evita a pirataria de software. Não tem número de serial para verificar a integridade do programa, já que o checksum é a verificação do programa por um código especifico. O Firewall nftables te dá total liberdade para você criar sua própria regra de segurança. Não tem desfragmentador de disco para organizar os arquivos do HD,pois a estrutura de diretórios já organiza. A empresa sabendo que o Linux é gratuito,irá investir apenas em qualificação do funcionário,ao qual chamamos essa qualificação de LPI (Certificado de profissional em Linux). Como nenhum candidato a empresa não é insubstituível,a empresa pode solicitar o certificado de Profissional em Linux,logo ao candidato. É um preço muito baixo comparado ao DVD original do Windows que custa muito caro.