Jump to content
Fórum Script Brasil
  • 0

[DUVIDA] interface grafica, arquivo de entrada e saida


aureliano guedes

Question

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";

Edited by aureliano guedes
Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...