Ir para conteúdo
Fórum Script Brasil
  • 0

[DUVIDA] interface grafica, arquivo de entrada e saida


aureliano guedes

Pergunta

Bom dia, sou novo aqui, estudante de biomedicina e faço atividade de pesquisa.

Sempre fui muito interessado em computação e programação, apesar de pouco conhecimento em relação a leigos(digo pessoas que não fazem nenhum curso na area de programação) tenho um conhecimento meio avançado no assunto.

Sei o basico de logica e algoritimo.

No entanto, em função da minha atividade de pesquisa, no momento estou trabalhando com bioinformatica, no qual é muito usada a linguagem perl.

Tenho uma noção bem basica (BASICA MESMO) em delphi.

Portanto estou tentando aprender perl, e didaticamente estou desenvolvendo um programa em perl onde que entre um arquivo com o nome dos alunos as notas das provas e calcule a media final de acordo com o peso de cada nota.

Ate o momento eu consegui fazer um script para 3 notas com peso diferente, mas quero que o programa não se limite a numero de provas (ou seja, qeu o numero de notas e peso seja definido pelo usuario), e quero tambem que possa buscar um arquivo de entrada com todos alunos de uma so vez e gere um arquivo de saida com os resultados. Outro problema é que eu gostaria que tudo ocorrece em interface gráfica, mas não faço ideia de como desenvolver a interface grafica inclusive para perl.

O google não me ajudou muito, e os programas que baixei não deram certo.

Se alguém puder me ajudar, desde já grato.

PS: sou usuario de ubuntu mas estou desenvolvendo em ambiente windows

Segue abaixo o script:

# Programa mediacalc.pl

print "\n";

print "\n";

print "\n";

print "Programa para calculo de nota final \n";

print "\n";

print "\n";

print "\n";

# Declarando notas

my $nota1;

my $nota2;

my $nota3;

$nota1 = $ARGV[0];

$nota2 = $ARGV[1];

$nota3 = $ARGV[2];

# Peso de notas

my $peso1;

my $peso2;

my $peso3;

my $pesot;

$peso1 = $ARGV[3];

$peso2 = $ARGV[4];

$peso3 = $ARGV[5];

$pesot = $peso1 + $peso2 + $peso3;

# Calculo dos valores das notas

my $val1;

my $val2;

my $val3;

$val1 = ($nota1 * $peso1);

$val2 = ($nota2 * $peso2);

$val3 = ($nota3 * $peso3);

# Calculando media final

my $media;

$media = ($val1 + $val2 + $val3) / $pesot;

# Condicao

my $cond1;

my $cond2;

$cond1 = aprovado;

$cond2 = reprovado;

# Aluno

my $aluno;

$aluno = $ARGV[6];

# Arquivo de saida

my $saida;

$saida = $aluno;

open (OUT,">". $saida .txt) or die "Can't open the output file'\n";

{

print OUT $line;

$records++;

$flag = "on";

}

#Resultado

print "Resultado: \n";

print "\n";

print "\n";

print "\n";

if ($media >= 5) {

print "O aluno $aluno está $cond1 sob a nota final $media \n";

}

else {

print "O aluno $aluno está $cond2 sob a nota final $media \n";

}

print "\n";

print "\n";

print "

mediacalc.pl

written by Aureliano C. P. Guedes Ago 2011

==========================================================================

Calculadora para media final de notas com a possibilidade

de inclusão de peso por nota.

==========================================================================

Usage: mediacalc.pl <nota 1> <nota 2> <nota 3> <peso 1> <peso 2> <peso 3> <nome do aluno>

Examplo: mediacalc.pl 10 9 8 1 2 3

\n";

Editado por aureliano guedes
Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Hi.

Para criar interface gráfica em Perl você tem diversas opções. Gtk, Wx, Tk são algumas delas.

Com o Gtk, você conta com uma IDE chamada Glade para o desenho da interface.

Além de ter uma documentação excelente que pode ser vista clicando aqui.

Segue um script de exemplo com uma "textbox" (Gtk2::Entry) que fiz pra ti:

#!/usr/bin/env perl

use strict;
use warnings;
use Gtk2 qw(-init -threads-init);

my $wndw = Gtk2::Window->new('toplevel');
$wndw->set_title('Forum Script Brasil');
$wndw->set_resizable(0);
$wndw->signal_connect(destroy => sub { Gtk2->main_quit });

my $vbox = Gtk2::VBox->new(0, 6);
$vbox->set('border_width' => 2);

#textbox
my $entry = Gtk2::Entry->new_with_max_length(20);
$vbox->add($entry);

$wndw->add($vbox);
$wndw->show_all;
Gtk2->main;

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0

Hi.

Particularmente eu nunca utilizei no Perl, mas a biblioteca existe para windowzz sim:

http://www.gtk.org/download/win32.php

O que você entende por entrada e saída de dados?

Uma textarea seria entrada, não? Foi o que utilizei no exemplo postado ali através do Gtk2::Entry, que não é nada mais que uma Textarea.

Saída de dados há labels, dialogs... Uma infinidade de coisas!

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0

o script abaixo tem sinal p entrada e saida de texto, o que ocorre é que esse script so procura um texto dentro de outro,

mas o script que eu quero é que calcule com os dados de um texto e gere outro com os resultados

desculpe a ignorancia, mas como instalo isso... o gtk

segue abaixo o script q falei acima

use strict;

use warnings;

# Input parameters

my

$scaffold_file =

$ARGV[0];

my $query = $ARGV[1];

my $out_file = $ARGV[2];

open (IN, $scaffold_file) or die usage();

open (OUT,">". $out_file) or die "Can't open the output file'\n";

my $seq = "";

my $flag = "off";

my $records = 0;

print "\n";

print "\n";

print "\n";

print "FastaFilter.pl\n";

print "Written by Erick Castelli July 2011\n";

print "\n";

while( my $line = <IN>) {

if (($line =~ m/$query/) && ($line =~ m/>/)) {

print OUT $line;

$records++;

$flag = "on";

}

else {

if($flag eq "on") {

print OUT $line;

}

$flag = "off";

}

}

print "\n";

print "Records found: $records\n";

print "Please check file " . $out_file . " for the results.\n";

print "\n";

exit;

die &usage();

sub usage {

print << "A";

\n

\n

FastaFilter.pl

written by Erick Castelli Jul 2011

=====================================================

Extracts sequences from a fasta file that contains a

specific word on the name.

=====================================================

Usage: FastaFilter.pl <input.fas> <word to search> <output file>

\n\n Example: FastaFilter.pl mySeq.fas sapiens output.fas

\n\n

A

exit;

}

Link para o comentário
Compartilhar em outros sites

  • 0

olha so a complicação

tem run-time dev e source p baixa, devo baixar os 3 ou so um deles....

o GTK é complicado ate p instalar...

O ubuntu n tah dando certo na minha maquina, so consigo entra em modo grafico seguro, acho que vou baixar uma versão anterior porque n tah dando certo mecher com perl no windows.

Mas so uma ultima pergunta, tem como transformar um arquivo pl em executavel no windows???

Link para o comentário
Compartilhar em outros sites

  • 0

Hi.

Baixa só o run-time.

Linux é a melhor opção mesmo.

Tem como transformar um arquivo .pl em .exe sim, mas não é muito bom hahahh. Ele armazena na verdade todos os módulos dentro do .exe. Se eu não me engano, o pp faz isso. Dá uma olhada neste tutorial:

http://www.forum-invaders.com.br/vb/showth...3digo-do-script.

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0

Fvox, tu n teria um e-mail que pudesse me passar???

Assim, eu tenho outro problema.

No script abaixo eu quero inserir uma lista com termos que serão procurados em duas outras listas e será segregada as informações de acordo com os termos.

Exemplo, na lista 1 tem os termos, nas listas 2 e 3 tem os mesmos termos com outras informações que serão comparadas

a lista 1 cada termo inicia com ">", na lista 2 cada termo inicia com "Performing Scan:" e na lista 3 cada termo inicia com "target:".

Apos cada iniciador que tem a palavra chave que o script vai comparar, assim ele geraria um arquivo de saida com o dado da lista 2 e 3 justos, para facilitar comparação.

São muitos arquivos e cada um arquivo com muitos dados.

No caso apenas comecei o script, onde ele procura os termos da lista 1 na 2 e gera uma saida, depois na 3 e gera outra saida, e ia fazer a partir dessas saidas o resultado ficar junto, talvez eu esteja fazendo errado.

Mas n tah dando muito certo.

Você me daria uma ajuda, ou mesmo apenas uma dica, pois estou com dificuldade de fazer o script procurar uma coisa de um arquivo em outro e ainda gerar um arquivo de saida com os resultados.

Na verdade mesmo estou com dificuldade em mecher com entrada e saida de arquivos.

Aqui vai o scrip, lembrando que eu ainda n terminei de fazer, mesmo porque estou com essas dificuldades.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

use strict;

use warnings;

my $scaffold_file = $ARGV[0];

my $query = $ARGV[1];

my $out_file = $ARGV[3];

open (IN, $scaffold_file) or die usage();

open (IN,">". $query) or die usage ();

open (OUT,"Performing Scan:". $out_file) or die "Can't open the output file'\n";

my $seq = "";

my $flag = "off";

my $records = 0;

while( my $line = <IN>) {

if (($line =~ m/>/) && ($line =~ m/Performing Scan:/)) {

print OUT $line;

$records++;

$flag = "on";

}

else {

if($flag eq "on") {

print OUT $line;

}

$flag = "off";

}

}

exit;

die &usage();

sub usage {

}

my $scaffold_file2 = $ARGV[2];

my $out_file2 = $ARGV[4];

open (IN, $scaffold_file2) or die usage();

open (IN, $query) or die usage ();

open (OUT,"target:". $out_file2) or die "Can't open the output file'\n";

while( my $line = <IN>) {

if (($line =~ m/>/) && ($line =~ m/target:/)) {

print OUT $line;

$records++;

$flag = "on";

}

else {

if($flag eq "on") {

print OUT $line;

}

$flag = "off";

}

}

exit;

die &usage();

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...