<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-25953100</id><updated>2010-02-19T16:26:46.402-02:00</updated><title type='text'>Expressões, idéias, códigos e comentários, ...</title><subtitle type='html'>sob o ponto de vista de Mário Olímpio de Menezes.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.momenezes.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default'/><link rel='alternate' type='text/html' href='http://www.momenezes.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mario Olímpio de Menezes</name><uri>http://www.blogger.com/profile/11560217876644060692</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-25953100.post-332980163665831516</id><published>2009-12-14T12:31:00.000-02:00</published><updated>2009-12-14T12:31:11.901-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='batistas'/><title type='text'>Brasil: retrocesso de 200 anos no Estado Laico</title><content type='html'>O Brasil está retrocedendo mais de 200 anos ao assinar o acordo com o Vaticano, que dá privilégios descabidos à Igreja Católica, ferindo frontalmente a Constituição da República.&lt;br /&gt;&lt;br /&gt;Veja o Manifesto dos Batistas Brasileiros contra tal acordo: &lt;a href="http://migre.me/dRzQ"&gt;http://migre.me/dRzQ&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Divulgue esta violação descabida da nossa Constituição.&lt;br /&gt;&lt;br /&gt;Mais informações no Portal &lt;a href="http://batistas.com/"&gt;Batistas&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25953100-332980163665831516?l=www.momenezes.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://migre.me/dRzQ' title='Brasil: retrocesso de 200 anos no Estado Laico'/><link rel='replies' type='application/atom+xml' href='http://www.momenezes.com/feeds/332980163665831516/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=25953100&amp;postID=332980163665831516' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/332980163665831516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/332980163665831516'/><link rel='alternate' type='text/html' href='http://www.momenezes.com/2009/12/brasil-retrocesso-de-200-anos-no-estado.html' title='Brasil: retrocesso de 200 anos no Estado Laico'/><author><name>Mario Olímpio de Menezes</name><uri>http://www.blogger.com/profile/11560217876644060692</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15100397123299240648'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25953100.post-1789916299845111814</id><published>2009-11-18T15:22:00.001-02:00</published><updated>2009-11-18T15:24:59.372-02:00</updated><title type='text'>Internet Livre - a Luta continua</title><content type='html'>Reproduzo (copiado e colado) um email que recebi sobre o movimento da Internet Livre. Leitura obrigatória!&lt;br /&gt;&lt;br /&gt;--------------------------------------------   texto colado começa aqui  ------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Luta pela Internet Livre avança&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Amigos e Amigas,&lt;/p&gt; &lt;p&gt;Cresce nossa mobilização contra o &lt;span style="font-weight: bold;"&gt;Projeto de Lei do Senador Eduardo Azeredo&lt;/span&gt;, que criminaliza práticas comuns na Internet no Brasil, como a troca de arquivos P2P e o anonimato na rede.&lt;br /&gt;&lt;br /&gt;Em 2008 o projeto foi aprovado pelo Senado Federal e encaminhado à Câmara dos Deputados para nova tramitação.&lt;/p&gt; &lt;p&gt;Com sua ajuda, ao assinar a &lt;a href="http://www.petitiononline.com/veto2008" target="_blank"&gt;petição online&lt;/a&gt; contra esse AI-5 Digital, e com dezenas de atos públicos por todo o Brasil, conseguimos emperrar a votação do Projeto de Lei, mas ele ainda é uma ameaça à nossa liberdade e privacidade.&lt;/p&gt; &lt;p&gt;Conseguimos também fazer com que o Ministério da Justiça lançasse uma &lt;span style="font-weight: bold;"&gt;consulta pública&lt;/span&gt; para que o Brasil tenha um &lt;span style="font-weight: bold;"&gt;Marco Regulatório Civil na Internet&lt;/span&gt;. (&lt;a href="http://www.mj.gov.br/data/Pages/MJ667121FBITEMID11FA1C8E05DC40B19628FAC4A4511A5FPTBRNN.htm" target="_blank"&gt;Leia mais&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Precisamos agora&lt;/span&gt;&lt;/span&gt; que todos os que defendem a Internet Livre entrem no blog &lt;span&gt;&lt;a href="http://www.culturadigital.br/marcocivil" target="_blank"&gt;www.culturadigital.br/&lt;wbr&gt;marcocivil&lt;/a&gt; ou no twitter &lt;a href="http://www.twitter.com/marcocivil" target="_blank"&gt;www.twitter.com/marcocivil&lt;/a&gt; &lt;/span&gt;e exijam das autoridades nossos direitos!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;Propomos que sejam considerados direitos dos cidadãos os seguintes pontos:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Todos os brasileiros têm o direito ao acesso à Internet sem distinção de renda, classe, credo, raça, cor, opção sexual, sem discriminação física ou cultural&lt;/li&gt;&lt;li&gt;Todos internautas têm o direito à acessibilidade plena, independente das dificuldades físicas ou cognitivas que possam ter.&lt;/li&gt;&lt;li&gt;Todos cidadãos brasileiros têm o direito de abrir suas redes e compartilhar o seu sinal de internet, com ou sem fio.&lt;/li&gt;&lt;li&gt;Todos os cidadãos têm o direito à comunicação não-vigiada.&lt;/li&gt;&lt;li&gt;Todo internauta tem o direito à navegação livre, anônima, sem interferência e sem que seu rastro digital seja identificado e armazenado pelas corporações, pelos governos ou por outras pessoas, sem a sua autorização.&lt;/li&gt;&lt;li&gt;Todo interagente tem o direito de compartilhar arquivos pelas redes P2P sem que nenhuma corporação filtre ou defina o que ele deve ou não comunicar.&lt;/li&gt;&lt;li&gt;Todo cidadão tem o direito que seu computador não seja invadido, nem que seus dados sejam violados por crackers, corporações ou por mecanismos de DRM.&lt;/li&gt;&lt;li&gt;Todo brasileiro tem direito a cópia de arquivos na rede para seu uso justo e não-comercial.&lt;/li&gt;&lt;li&gt;Todo cidadão tem direito de acessar informações públicas em sites da Internet sem discriminação de sistema operacional, navegador ou plataforma computacional utilizada.&lt;/li&gt;&lt;li&gt;Toda pessoa tem o direito a escrever em blogs e participar de redes sociais com seu nome, com codinome ou anonimamente.&lt;/li&gt;&lt;li&gt;Todo blogueiro tem o direito de aceitar ou não comentários anônimos, não sendo responsável pelo seu teor.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Sugiro uma lista de pessoas que estão no twitter&lt;br /&gt;que estão acompanhando de perto a questão:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;@caribe&lt;br /&gt;@cassino&lt;br /&gt;@Luiz_F_Moncau&lt;br /&gt;@marcelobranco&lt;br /&gt;@marcocivil&lt;br /&gt;@pauloteixeira13&lt;br /&gt;@rodrigosavazoni&lt;br /&gt;@samadeu&lt;br /&gt;@trezentos&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;Ou pelos sites:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.trezentos.blog.br/" target="_blank"&gt;www.trezentos.blog.br&lt;/a&gt;&lt;br /&gt;&lt;a href="http://meganao.wordpress.com/" target="_blank"&gt;meganao.wordpress.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ou ainda pela tag #marcovil no Twitter, e nos principais agregadores e indexadores de blogs.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Assinam esse e-mail:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Coletivo Ciberativismo&lt;/p&gt; &lt;p&gt;Mega Não&lt;/p&gt; &lt;p&gt;Projeto Software Livre Brasil&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;------------------------------------------- texto colado termina aqui -----------------------------------&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25953100-1789916299845111814?l=www.momenezes.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.momenezes.com/feeds/1789916299845111814/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=25953100&amp;postID=1789916299845111814' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/1789916299845111814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/1789916299845111814'/><link rel='alternate' type='text/html' href='http://www.momenezes.com/2009/11/internet-livre-luta-continua.html' title='Internet Livre - a Luta continua'/><author><name>Mario Olímpio de Menezes</name><uri>http://www.blogger.com/profile/11560217876644060692</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15100397123299240648'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25953100.post-4997296779943162552</id><published>2009-09-09T09:34:00.004-03:00</published><updated>2009-09-09T10:22:20.330-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='engenharia de software'/><category scheme='http://www.blogger.com/atom/ns#' term='planejamento'/><category scheme='http://www.blogger.com/atom/ns#' term='Einstein'/><category scheme='http://www.blogger.com/atom/ns#' term='administração de vida'/><title type='text'>Simplesmente diga "não" à urgência</title><content type='html'>&lt;span style="font-family:georgia;"&gt;Você já recebeu um daqueles convites para ser o "salvador" de algum projeto, reunião, etc?&lt;br /&gt;&lt;br /&gt;Algo como:&lt;br /&gt;&lt;blockquote&gt;-- "Nosso palestrante teve um problema de última hora e gostaríamos de convidá-lo para substitui-lo na palestra de hoje à noite"&lt;/blockquote&gt;Eram 17:30 horas e a palestra aconteceria às 20:00 horas. O tema não é muito estranho a você, até faz parte dos seus estudos.&lt;br /&gt;&lt;br /&gt;Mas 1:30 horas para preparar uma palestra (você tem que jantar e se deslocar, não esqueça disso!), cancelar o jantar com sua esposa e filhos, ou o cinema que você tinha prometido para eles! O que fazer?&lt;br /&gt;&lt;br /&gt;Recentemente li um livro fantástico -- "Livres da Tirania da Urgência" de Charles E. Hummel - Editoral Press, 2001 (Editora Ultimato), que trata da administração da vida pessoal (não dá para administrar o tempo!).&lt;br /&gt;&lt;br /&gt;Dentre várias coisas legais que o autor diz, está:&lt;br /&gt;&lt;blockquote&gt;"Declinar um pedido urgente ... raramente é fácil. Mas pode ser feito ... quando você se lembra desta importante verdade:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Você é a pessoa indispensável somente até o momento em que diz não."&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;Uma das piores inimigas da eficácia é a urgência. "Como fogo, ela pode ser uma boa serva, mas seria ruim como mestra"&lt;br /&gt;&lt;br /&gt;Trazendo estes conceitos para a área de TI, é impressionante como vemos a urgência dirigir departamentos inteiros. É o "Suporte", que por falta de planejamento estratégico, liderança tática e operacional adequada, vive "apagando fogo." Não que isso não tenha que acontecer, mas não raro, é a rotina diária! É "Suporte" ou "Bombeiro" ?!?&lt;br /&gt;&lt;br /&gt;Na área de desenvolvimento, onde os prazos são sempre apertados, os "bugs" de softwares, as entregas incompletas, etc., atestam a liderança implacável da urgência, forçando códigos não testados, algoritmos não verificados e estruturas de dados e objetos que estão longe de serem eficientes. Não sobrevivem a um "upgrade" sem precisarem serem reescritos "do zero".&lt;br /&gt;&lt;br /&gt;A menos que você pare e mude sua maneira de agir, continuará indo para o mesmo lugar e alcançando as mesmas coisas -- nada!&lt;br /&gt;&lt;br /&gt;"Insanity -- doing the same thing over and over and expecting different results" - Albert Einstein&lt;br /&gt;&lt;br /&gt;Se você quer que o seu futuro seja diferente, é bom começar a mudá-lo agora! Se quer que o seu código ou projeto tenha um final diferente, comece a mudá-lo agora! Planeje!&lt;br /&gt;&lt;br /&gt;Sabe aquela rodovia que vai de São Paulo a Campinas -- a Bandeirantes. Pois é, se você dirigir por ela no sentido de Campinas, não chegará ao Litoral!&lt;br /&gt;&lt;br /&gt;"Insanidade -- fazer a mesma coisa repetidamente e esperar resultados diferentes"&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:georgia;"&gt;Esteja preparado para dizer não à urgência quando ela se mostrar de pouca importância!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25953100-4997296779943162552?l=www.momenezes.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.momenezes.com/feeds/4997296779943162552/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=25953100&amp;postID=4997296779943162552' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/4997296779943162552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/4997296779943162552'/><link rel='alternate' type='text/html' href='http://www.momenezes.com/2009/09/simplesmente-diga-nao-urgencia.html' title='Simplesmente diga &quot;não&quot; à urgência'/><author><name>Mario Olímpio de Menezes</name><uri>http://www.blogger.com/profile/11560217876644060692</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15100397123299240648'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25953100.post-2895375734358494165</id><published>2008-06-27T12:12:00.007-03:00</published><updated>2008-07-11T15:59:51.833-03:00</updated><title type='text'>Cria Prova - Pequenas modificações e melhorias</title><content type='html'>Fiz algumas melhorias e modificações no script &lt;a href="http://www.momenezes.com/2008/06/cria-prova-um-python-script-para-gerar.html"&gt;criaprova&lt;/a&gt;.&lt;br /&gt;O programa agora cria provas com número de questões iguais entre os arquivos; isto permite uma prova mais balanceada.&lt;br /&gt;Algumas informações sobre as provas são apresentadas, como o nome dos arquivos, o número de questões em cada arquivo, total de questões.&lt;br /&gt;O programa calcula o número de questões que serão selecionadas de cada arquivo; em caso de divisão não exata, a sobra é distribuída aleatoriamente entre os arquivos - uma questão por arquivo.&lt;br /&gt;Também é informada distribuição de questões por arquivo [num.questões, num.arquivo] e o  número real de questões que cada prova tem; pode ser que uma prova fique com número de questões menor do que o solicitado se algum arquivo não contém questões suficientes (maior do que o número de questões por arquivo). Para executar o script usei a seguinte linha de comando:&lt;br /&gt;&lt;div style="overflow"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;python criaprova_v3.py 5 22 ../q1-3-20080623.txt ../q4-20080623.txt \&lt;br /&gt;../q5.txt ../q6-20080623.txt&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Na linha acima, o número &lt;span style="font-weight: bold;"&gt;5&lt;/span&gt; após o nome do script indica o número de provas a serem geradas; o número &lt;span style="font-weight: bold;"&gt;22&lt;/span&gt; indica o número de questões por prova e os demais são os nomes dos arquivos com as questões.&lt;br /&gt;&lt;br /&gt;Abaixo um exemplo das informações que são mostradas:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;arquivos ['../q1-3-20080623.txt', '../q4-20080623.txt', '../q5.txt', \&lt;br /&gt;'../q6-20080623.txt']&lt;br /&gt;arquivo 0: ../q1-3-20080623.txt  questoes:  33&lt;br /&gt;arquivo 1: ../q4-20080623.txt    questoes:  15&lt;br /&gt;arquivo 2: ../q5.txt             questoes:  10&lt;br /&gt;arquivo 3: ../q6-20080623.txt    questoes:  14&lt;br /&gt;num arquivos: 4                     total:  72&lt;br /&gt;&lt;br /&gt;Questoes por arquivo  5&lt;br /&gt;Sobra:  2   &gt;&gt;&gt; Arquivo(s) que ficara(o) com a sobra:  [3, 1]&lt;br /&gt;Prova:  0  dist. de questoes  [[5, 0], [6, 1], [5, 2], [6, 3]]  total  22&lt;br /&gt;Prova:  1  dist. de questoes  [[5, 0], [6, 1], [5, 2], [6, 3]]  total  22&lt;br /&gt;Prova:  2  dist. de questoes  [[5, 0], [6, 1], [5, 2], [6, 3]]  total  22&lt;br /&gt;Prova:  3  dist. de questoes  [[5, 0], [6, 1], [5, 2], [6, 3]]  total  22&lt;br /&gt;Prova:  4  dist. de questoes  [[5, 0], [6, 1], [5, 2], [6, 3]]  total  22&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Este é um exemplo de prova gerada pelo script&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_giExas8kawA/SGUG-cyaVVI/AAAAAAAAAQ8/y1qqDRo-LyY/s1600-h/prova_0.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_giExas8kawA/SGUG-cyaVVI/AAAAAAAAAQ8/y1qqDRo-LyY/s320/prova_0.jpg" alt="" id="BLOGGER_PHOTO_ID_5216583413327877458" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25953100-2895375734358494165?l=www.momenezes.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.momenezes.com/feeds/2895375734358494165/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=25953100&amp;postID=2895375734358494165' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/2895375734358494165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/2895375734358494165'/><link rel='alternate' type='text/html' href='http://www.momenezes.com/2008/06/cria-prova-pequenas-modificaes-e.html' title='Cria Prova - Pequenas modificações e melhorias'/><author><name>Mario Olímpio de Menezes</name><uri>http://www.blogger.com/profile/11560217876644060692</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15100397123299240648'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_giExas8kawA/SGUG-cyaVVI/AAAAAAAAAQ8/y1qqDRo-LyY/s72-c/prova_0.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25953100.post-192133011220998431</id><published>2008-06-19T20:09:00.014-03:00</published><updated>2008-06-23T11:27:35.299-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><category scheme='http://www.blogger.com/atom/ns#' term='Sistemas Operacionais'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Explorando Sistemas Operacionais com Python - Processos</title><content type='html'>Um processo é a entidade básica ativa na maioria dos sistemas operacionais modernos.&lt;br /&gt;&lt;br /&gt;Quando um usuário e criado no Unix/Linux, ele recebe um ID de usuário e um ID de grupo. O sistema utiliza os IDs de usuário e de grupo para buscar as permissões atribuídas a este usuário. O usuário mais privilegiado é o administrador de sistema, que tem o ID 0.&lt;br /&gt;&lt;br /&gt;Um processo tem vários IDs de usuário e grupo que resultam em privilégios ao processo. Estes incluem o ID real de usuário, o ID real de grupo, o ID efetivo de usuário e o ID efetivo de grupo. Usualmente, os IDs real e efetivo são os mesmos, mas sob certas circunstâncias o processo pode mudá-los. O processo utiliza os IDs efetivos para determinar permissões de acesso a arquivos. Por exemplo, um programa que roda com privilégios de root pode querer criar um arquivo em nome de um usuário comum. Definindo o ID efetivo de usuário do processo como o do usuário, o processo pode criar arquivos "como se" o usuário os tivesse criado. Na maior parte, assumimos que os IDs real e efetivo de usuário e grupo são os mesmos.&lt;br /&gt;&lt;br /&gt;As seguintes funções retornam os IDs de usuário e grupo para um processo. Os &lt;var&gt;gid_t&lt;/var&gt; e &lt;var&gt;uid_t&lt;/var&gt; são tipos inteiros representando os IDs de grupo e usuário, respectivamente. As funções &lt;code&gt;getgid&lt;/code&gt; e &lt;code&gt;getuid&lt;/code&gt; retornam os IDs reais, e as funções &lt;code&gt;getegid&lt;/code&gt; e &lt;code&gt;geteuid&lt;/code&gt; retornam os IDs efetivos.&lt;br /&gt;&lt;br /&gt;&lt;div style="color: rgb(30, 30, 30); background-color: rgb(220, 220, 220);"&gt;&lt;pre style="color: rgb(20, 20, 20);"&gt;&lt;tt&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;br /&gt;import&lt;/span&gt;&lt;/b&gt; os&lt;br /&gt;uid&lt;span style="color: rgb(0, 153, 0);"&gt;_&lt;/span&gt;t &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; os&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getuid&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;euid&lt;span style="color: rgb(0, 153, 0);"&gt;_&lt;/span&gt;t &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; os&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;geteuid&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;gid&lt;span style="color: rgb(0, 153, 0);"&gt;_&lt;/span&gt;t &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; os&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getgid&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;egid&lt;span style="color: rgb(0, 153, 0);"&gt;_&lt;/span&gt;t &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; os&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getegid&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tt&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Um processo pode criar outro processo chamando &lt;code&gt;fork&lt;/code&gt;. O processo chamador se torna o &lt;span style="font-style: italic;"&gt;pai&lt;/span&gt; e o processo criado é chamado &lt;span style="font-style: italic;"&gt;filho&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;A função &lt;code&gt;fork&lt;/code&gt; copia a imagem da memória do pai de modo que o novo processo recebe uma cópia do espaço de endereçamento do pai. Ambos os processos continuam sua execução na instrução seguinte à declaração &lt;code&gt;fork&lt;/code&gt; (executando em suas imagens de memória respectivas).&lt;br /&gt;&lt;br /&gt;&lt;div style="color: rgb(30, 30, 30); background-color: rgb(220, 220, 220);"&gt;&lt;pre&gt;&lt;tt&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&lt;br /&gt;import&lt;/span&gt;&lt;/b&gt; os&lt;br /&gt;pid&lt;span style="color: rgb(0, 153, 0);"&gt;_&lt;/span&gt;t &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; os&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;fork&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tt&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;A criação de dois processos completamente idênticos não seria muito útil. O valor de retorno da função &lt;code&gt;fork&lt;/code&gt; é a característica crítica que permite que pai e filho distinguam-se para executar código diferente. A função &lt;code&gt;fork&lt;/code&gt; retorna 0 para o filho e retorna o ID do processo filho para o pai. Quando &lt;code&gt;fork&lt;/code&gt; falha, ela retorna -1 e define &lt;code&gt;errno&lt;/code&gt;. Se o sistema não tem os recursos necessários para criar o filho ou se os limites sobre o número de processos forem excedidos, &lt;code&gt;fork&lt;/code&gt; define &lt;code&gt;errno&lt;/code&gt; como &lt;code&gt;EAGAIN&lt;/code&gt;. No caso de uma falha, &lt;code&gt;fork&lt;/code&gt; não cria o filho.&lt;br /&gt;&lt;br /&gt;No exemplo a seguir, após o &lt;code&gt;fork&lt;/code&gt;, pai e filho imprimem seus respectivos ID's de processo.&lt;br /&gt;&lt;br /&gt;&lt;div style="color: rgb(30, 30, 30); background-color: rgb(220, 220, 220);"&gt;&lt;!-- Generator: GNU source-highlight 2.4 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --&gt;&lt;br /&gt;&lt;pre&gt;&lt;tt&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;import&lt;/span&gt;&lt;/b&gt; os&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;sys&lt;br /&gt;&lt;br /&gt;childpid &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; os&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;fork&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;/b&gt; childpid &lt;span style="color: rgb(153, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;    print&lt;/span&gt;&lt;/b&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'erro no fork'&lt;/span&gt;&lt;br /&gt;  sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;exit&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;/b&gt; childpid &lt;span style="color: rgb(153, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;    print&lt;/span&gt;&lt;/b&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'Eu sou o processo filho %ld'&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;os&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getpid&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;())&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;else&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;    print&lt;/span&gt;&lt;/b&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'Eu sou o processo pai   %ld'&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;os&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getpid&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;())&lt;/span&gt;&lt;br /&gt;&lt;/tt&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;O programa a seguir cria uma cadeia de &lt;var&gt;n&lt;/var&gt; processos chamando &lt;code&gt;fork&lt;/code&gt; em um loop. Em cada iteração do loop, o processo pai tem um &lt;var&gt;childpid&lt;/var&gt; não zero e interrompe o loop. O processo filho tem um valor zero de &lt;var&gt;childpid&lt;/var&gt; e se torna um pai na próxima iteração do loop. No caso de um erro, &lt;code&gt;fork&lt;/code&gt; retorna -1 e o processo chamador sai do loop.&lt;br /&gt;&lt;br /&gt;&lt;div style="overflow: auto; color: rgb(30, 30, 30); background-color: rgb(220, 220, 220);"&gt;&lt;br /&gt;&lt;pre&gt;&lt;tt&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;import&lt;/span&gt;&lt;/b&gt; os&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;sys&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;len&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;argv&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;!=&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;    print&lt;/span&gt;&lt;/b&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;&amp;gt;&amp;gt;&lt;/span&gt;sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;stderr&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"Uso: %s processos\n"&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;argv&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;])&lt;/span&gt;&lt;br /&gt;  sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;exit&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;n &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;int&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;argv&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;])&lt;/span&gt;&lt;br /&gt;i &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;while&lt;/span&gt;&lt;/b&gt; i&lt;span style="color: rgb(153, 0, 0);"&gt;&amp;lt;&lt;/span&gt;n&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;  childpid &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; os&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;fork&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;    if&lt;/span&gt;&lt;/b&gt; childpid &lt;span style="color: rgb(153, 0, 0);"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;     break&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;   i&lt;span style="color: rgb(153, 0, 0);"&gt;+=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;print&lt;/span&gt;&lt;/b&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;&amp;gt;&amp;gt;&lt;/span&gt;sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;stderr&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;"i&lt;span style="color: rgb(153, 0, 0);"&gt;:%&lt;/span&gt;d  &lt;span style="color: rgb(0, 153, 0);"&gt;ID&lt;/span&gt; do processo&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt;ld&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;ID&lt;/span&gt; do pai&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt;ld&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;\&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;ID&lt;/span&gt; do filho &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt;ld&lt;span style="color: rgb(153, 0, 0);"&gt;\&lt;/span&gt;n" &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; os&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getpid&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(),&lt;/span&gt; os&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getppid&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(),&lt;/span&gt; childpid&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;exit&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/tt&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Por padrão, o sistema buferiza a saída escrita em &lt;code&gt;stdout&lt;/code&gt;, de modo que uma mensagem particular pode não aparecer imediatamente após o retorno de &lt;code&gt;print&lt;/code&gt;. Mensagens para &lt;code&gt;stderr&lt;/code&gt; não são buferizadas, mas, ao contrário, são imediatamente escritas. Por esta razão, você deve sempre utilizar &lt;code&gt;stderr&lt;/code&gt; para as mensagens de depuração.&lt;br /&gt;&lt;br /&gt;O programa a seguir cria um ventilador de processos chamando &lt;code&gt;fork&lt;/code&gt; em um loop. Em cada iteração, o processo recém criado sai do loop enquanto o processo original continua. Isto é o inverso do que acontece no programa acima.&lt;br /&gt;&lt;br /&gt;&lt;div style="overflow: auto; color: rgb(30, 30, 30); background-color: rgb(220, 220, 220);"&gt;&lt;br /&gt;&lt;pre&gt;&lt;tt&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;import&lt;/span&gt;&lt;/b&gt; os&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;sys&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;len&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;argv&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;!=&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;    print&lt;/span&gt;&lt;/b&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;&amp;gt;&amp;gt;&lt;/span&gt;sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;stderr&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"Uso: %s processos\n"&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;argv&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;])&lt;/span&gt;&lt;br /&gt;  sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;exit&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;n &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;int&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;argv&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;])&lt;/span&gt;&lt;br /&gt;i &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;while&lt;/span&gt;&lt;/b&gt; i&lt;span style="color: rgb(153, 0, 0);"&gt;&amp;lt;&lt;/span&gt;n&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;  childpid &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; os&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;fork&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;    if&lt;/span&gt;&lt;/b&gt; childpid &lt;span style="color: rgb(153, 0, 0);"&gt;&amp;lt;=&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;      &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;break&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;   i &lt;span style="color: rgb(153, 0, 0);"&gt;+=&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;print&lt;/span&gt;&lt;/b&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;&amp;gt;&amp;gt;&lt;/span&gt;sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;stderr&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;'i&lt;span style="color: rgb(153, 0, 0);"&gt;:%&lt;/span&gt;d &lt;span style="color: rgb(0, 153, 0);"&gt;ID&lt;/span&gt; do processo &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt;ld&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;ID&lt;/span&gt; do pai &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt;ld&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;\&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;ID&lt;/span&gt; do filho &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt;ld&lt;span style="color: rgb(153, 0, 0);"&gt;\&lt;/span&gt;n' &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; os&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getpid&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(),&lt;/span&gt; os&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getppid&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(),&lt;/span&gt; childpid&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;exit&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;/tt&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Estes scripts são baseados no livro Unix Systems Programming, de Robbins e Robbins, da Prentice Hall. Por serem scripts pequenos, os códigos são facilmente digitados. Quando houver algum script longo, o código fonte será disponibilizado também.&lt;br /&gt;&lt;br /&gt;Continuarei com mais programas para explorar o Sistema Operacional.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25953100-192133011220998431?l=www.momenezes.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.momenezes.com/feeds/192133011220998431/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=25953100&amp;postID=192133011220998431' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/192133011220998431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/192133011220998431'/><link rel='alternate' type='text/html' href='http://www.momenezes.com/2008/06/explorando-sistemas-operacionais-com.html' title='Explorando Sistemas Operacionais com Python - Processos'/><author><name>Mario Olímpio de Menezes</name><uri>http://www.blogger.com/profile/11560217876644060692</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15100397123299240648'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25953100.post-2395292497844485833</id><published>2008-06-16T14:30:00.009-03:00</published><updated>2008-06-20T16:20:16.609-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Cria Prova - Um python script para gerar provas</title><content type='html'>Este é um programa para a criação automática de provas diferentes, com questões aleatórias, a partir de um banco de questões.&lt;br /&gt;&lt;br /&gt;A idéia deste pequeno programa veio de uma conversa com um colega (Prof. Anibal, que já utiliza uma versão DOS para as suas provas).&lt;br /&gt;&lt;br /&gt;O programa gera, a partir do banco de questões, tantas provas diferentes e com a quantidade de questões indicadas pelo usuário.&lt;br /&gt;&lt;br /&gt;As questões devem estar em um arquivo texto com o seguinte layout:&lt;br /&gt;Q: pergunta&lt;br /&gt;A: resposta 1&lt;br /&gt;A: resposta 2 [opcional]&lt;br /&gt;&lt;br /&gt;Uma pergunta pode ter várias respostas (aspectos). Neste caso, a pergunta, para ter sentido, deve ser do tipo: "Dentre as características de XXXX, está"  O programa selecionará aleatoriamente, para cada prova, uma das respostas da pergunta; poder-se-á ter então, provas que tenham uma pergunta com o mesmo enunciado mas com resposta diferente. Isto é bom! Dificulta a "cola".&lt;br /&gt;&lt;br /&gt;As perguntas podem ser separadas por linhas em branco no arquivo de questões. Mas isto é opcional.&lt;br /&gt;&lt;br /&gt;Atualmente, o programa gera um arquivo .tex com a prova (prova_NN.tex) e um arquivo gabarito com as respostas das provas (prova_gb.tex).  Futuramente, outros formatos de saída deverão ser adicionados, bem como uma interface gráfica para facilitar o uso.&lt;br /&gt;&lt;br /&gt;Cada prova é identificada por um código de barras que contém o gabarito. &lt;span style="color: rgb(102, 51, 255); font-weight: bold;"&gt;Veja no código fonte informações importantes sobre os identificadores&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;No arquivo gabarito, as respostas são identificadas pelo mesmo código de barras.  &lt;span style="color: rgb(102, 51, 255); font-weight: bold;"&gt;Veja no código fonte mais informações sobre os identificadores no gabarito&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Após gerados, os arquivos das provas podem ser editados para a inserção de outras questões ou ajuste fino na formatação.&lt;br /&gt;&lt;br /&gt;O código está abaixo, e pode ser baixado &lt;a href="http://criaprova.googlecode.com/files/criaprova_v2.py"&gt;daqui&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="overflow: auto; color: rgb(30, 30, 30); background-color: rgb(220, 220, 220); height: 600px"&gt;&lt;br /&gt;&lt;!-- Generator: GNU source-highlight 2.4 by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --&gt;&lt;br /&gt;&lt;pre&gt;&lt;tt&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;#!/usr/bin/env python&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# -*- coding: ISO-8859-1 -*-&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;import&lt;/span&gt;&lt;/b&gt; random&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; sys&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; os&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# define a quantidade maxima de questoes/respostas: 702 por enquanto.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;letras&lt;span style="color: rgb(0, 153, 0);"&gt;_&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'A'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'B'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'C'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'D'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'E'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'F'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'G'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'H'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'I'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'J'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'K'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'L'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'M'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'N'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'O'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'P'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'Q'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'R'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'S'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'T'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'U'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'V'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'W'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'X'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'Y'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'Z'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;letras&lt;span style="color: rgb(0, 153, 0);"&gt;_&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;2&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;x&lt;span style="color: rgb(153, 0, 0);"&gt;+&lt;/span&gt;y &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt;&lt;/b&gt; x &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&lt;/b&gt; letras&lt;span style="color: rgb(0, 153, 0);"&gt;_&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt;&lt;/b&gt; y &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&lt;/b&gt; letras&lt;span style="color: rgb(0, 153, 0);"&gt;_&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;letras &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; letras&lt;span style="color: rgb(0, 153, 0);"&gt;_&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;+&lt;/span&gt; letras&lt;span style="color: rgb(0, 153, 0);"&gt;_&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;identificadores &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'.-'&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;',+'&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;':-'&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'=+'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;';.'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'...'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;  &lt;span style="color: rgb(255, 0, 0);"&gt;';;;'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'+++'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'~~~'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'***'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;def&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;lequestoes&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;arquivos&lt;span style="color: rgb(153, 0, 0);"&gt;):&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;    """ funcao que le os arquivos e cria uma lista com todas as perguntas, que sao dicionarios"""&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;print&lt;/span&gt;&lt;/b&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'crialista'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; arquivos&lt;br /&gt;listao &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt;&lt;br /&gt;respostas &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt;&lt;br /&gt;d &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;dict&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# estados possiveis: fora de alguma questao &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;#                    dentro de uma questao - Q - pergunta&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;#                    dentro de uma questao - A - respostas&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# quando esta fora de uma questao e encontra um Q, deve entrar em modo questao, adicionar a pergunta ao&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# dicionario&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# quando esta em modo questao e encontra um A, deve entrar em modo respostas, adicionar a resposta ao&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# dicionario&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# quando esta em modo respostas e encontra um A, adiciona a resposta ao dicionario&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# quando esta em modo respostas e encontra um Q, deve entrar em modo questao, adicionar o dicionario&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# ao listao de perguntas, zerar o dicionario e as respostas&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# quando esta em qualquer modo e encontra uma linha em branco, passa a proxima linha&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# quando esta em modo questao e encontra um Q, significa erro no arquivo: retorna ERRO. &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt;&lt;/b&gt; a &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&lt;/b&gt; arquivos&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;    arq &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;open&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;a&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    lista &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt;&lt;br /&gt;    todaslinhas &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; arq&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;readlines&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;    respostas &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt;&lt;br /&gt;    estado &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'OUT'&lt;/span&gt;&lt;br /&gt;    &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt;&lt;/b&gt; linha &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&lt;/b&gt; todaslinhas&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;        &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;/b&gt; linha&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;startswith&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'Q:'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;and&lt;/span&gt;&lt;/b&gt; estado &lt;span style="color: rgb(153, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'OUT'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt; &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# nova questao&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;            d &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;dict&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;            estado &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'Q'&lt;/span&gt; &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# entra em modo questao&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;            linha &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; linha&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;lstrip&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;' '&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;            d&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"q"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; linha&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:]&lt;/span&gt;&lt;br /&gt;            d&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"t"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; linha&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;]&lt;/span&gt;&lt;br /&gt;        &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;elif&lt;/span&gt;&lt;/b&gt; linha&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;startswith&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'Q'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;and&lt;/span&gt;&lt;/b&gt; estado &lt;span style="color: rgb(153, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'Q'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt; &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# outra linha com Q -&amp;gt; erro&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;            &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;print&lt;/span&gt;&lt;/b&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;"Arquivo %s de questoes com erro linha %d "&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;a&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; todaslinhas&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;index&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;linha&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;            sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;exit&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(-&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;        &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;/b&gt; linha&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;startswith&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'A'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;and&lt;/span&gt;&lt;/b&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;estado &lt;span style="color: rgb(153, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'Q'&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;or&lt;/span&gt;&lt;/b&gt; estado &lt;span style="color: rgb(153, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'A'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;):&lt;/span&gt;&lt;br /&gt;            estado &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'A'&lt;/span&gt;  &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# entra em modo resposta&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;            linha &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; linha&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;lstrip&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;' '&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;            &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;len&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;linha&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;4&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;                respostas&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;append&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;linha&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:])&lt;/span&gt;&lt;br /&gt;                d&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"a"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; respostas&lt;br /&gt;            &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;else&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;                &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;print&lt;/span&gt;&lt;/b&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;"linha len &amp;lt; 4"&lt;/span&gt;&lt;br /&gt;        &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;/b&gt; linha&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;startswith&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'Q'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;and&lt;/span&gt;&lt;/b&gt; estado &lt;span style="color: rgb(153, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'A'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt; &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# nova questao&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;                listao&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;append&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;d&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;                respostas &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt;&lt;br /&gt;                d &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;dict&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;                estado &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'Q'&lt;/span&gt;&lt;br /&gt;                linha &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; linha&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;lstrip&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;' '&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;                d&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"q"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; linha&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:]&lt;/span&gt;&lt;br /&gt;                d&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"t"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; linha&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;]&lt;/span&gt;&lt;br /&gt;        &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;/b&gt; linha&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;startswith&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'\n'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;):&lt;/span&gt; &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# linha em branco separando questao&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;            &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;/b&gt; estado &lt;span style="color: rgb(153, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'A'&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;and&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;len&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;d&lt;span style="color: rgb(153, 0, 0);"&gt;):&lt;/span&gt;&lt;br /&gt;                listao&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;append&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;d&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;                respostas &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt;&lt;br /&gt;                d &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;dict&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;            estado &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'OUT'&lt;/span&gt;&lt;br /&gt;            &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;pass&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;        &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# fim do loop&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;    &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;/b&gt; estado &lt;span style="color: rgb(153, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'A'&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;and&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;len&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;d&lt;span style="color: rgb(153, 0, 0);"&gt;):&lt;/span&gt; &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# terminaram as linhas e o dicionario contem dados&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;        listao&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;append&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;d&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;        estado &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'OUT'&lt;/span&gt;&lt;br /&gt;        d &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;{}&lt;/span&gt;&lt;br /&gt;        respostas &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt;&lt;br /&gt;    arq&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;close&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&lt;/b&gt; listao&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;def&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;criasequencia&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;listao&lt;span style="color: rgb(153, 0, 0);"&gt;):&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;    """ cria uma sequencia (lista) de tuplas (q,a) a partir do listao geral de questoes """&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;sequencia &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt; &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# todas as possibilidades de perguntas (tuplas do tipo (Q,A))&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt;&lt;/b&gt; q &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&lt;/b&gt; listao&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;    perg &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; q&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'q'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;]&lt;/span&gt;&lt;br /&gt;    resp &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; random&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;choice&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;q&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'a'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;])&lt;/span&gt;&lt;br /&gt;    sequencia&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;append&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;((&lt;/span&gt;perg&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;resp&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;    &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;/b&gt; q&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'t'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;!=&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'QNI'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;        &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;pass&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&lt;/b&gt; sequencia&lt;br /&gt; &lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;def&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;criaprovas&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;sequencia&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; numprovas&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;questaoporprova&lt;span style="color: rgb(153, 0, 0);"&gt;):&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;    """ cada prova eh gerada aleatoriamente a partir da lista de tuplas com todas as questoes.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;    recebe como argumentos: uma lista de tuplas (q,a), o num de provas a serem geradas e &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;    quantas questoes cada prova deve ter.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;    retorna as provas geradas e os gabaritos; as provas sao listas de tuplas (q,a) e os gabaritos sao listas de tuplas (num questao, letra resposta)&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;    """&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;provas &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt;&lt;br /&gt;gabaritos &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt;&lt;/b&gt; np &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;range&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;numprovas&lt;span style="color: rgb(153, 0, 0);"&gt;):&lt;/span&gt;&lt;br /&gt;    prova &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; random&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sample&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;sequencia&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;questaoporprova&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    provas&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;append&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;prova&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    perguntas &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt;&lt;br /&gt;    respostas &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt;&lt;br /&gt;    embaralha &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;range&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;len&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;prova&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;    random&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;shuffle&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;embaralha&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    gabarito &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt;&lt;br /&gt;    gaba&lt;span style="color: rgb(0, 153, 0);"&gt;_&lt;/span&gt;str &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;''&lt;/span&gt;&lt;br /&gt;    &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt;&lt;/b&gt; i &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;range&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;len&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;prova&lt;span style="color: rgb(153, 0, 0);"&gt;)):&lt;/span&gt;&lt;br /&gt;        gabarito&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;append&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;((&lt;/span&gt;i&lt;span style="color: rgb(153, 0, 0);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;letras&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;embaralha&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(153, 0, 0);"&gt;]]))&lt;/span&gt;&lt;br /&gt;    gabaritos&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;append&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;gabarito&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&lt;/b&gt; provas&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; gabaritos&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;def&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;crialatex&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;sequencia&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; numprovas&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;questaoporprova&lt;span style="color: rgb(153, 0, 0);"&gt;):&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;    """ cria um arquivo .tex para cada prova e tb o arquivo gabarito para as provas&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;    recebe como argumentos: uma lista de tuplas (q,a), o num de provas a serem geradas e &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;    quantas questoes cada prova tera.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;    cada prova eh gerada aleatoriamente a partir da lista de tuplas com todas as questoes.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;    retorna as provas geradas.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;    """&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;preambulo1 &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; """&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\documentclass[10pt,brazil,a4paper]{article}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\usepackage[latin1]{inputenc}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\usepackage[portuguese]{babel}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;%\usepackage{graphicx}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;%\usepackage{multicol}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;%\usepackage{shadow}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;%\usepackage{pifont}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;%\usepackage{listings}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;%\usepackage{fancyvrb}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;%\usepackage{boxedminipage}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;%\usepackage{theorem}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\usepackage{verbatim}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\usepackage{tabularx}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;%\usepackage{moreverb}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\usepackage{times}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;%\usepackage{relsize}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\usepackage{pst-barcode}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\setlength{\\textwidth}{180mm}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\setlength{\\oddsidemargin}{-0.5in}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\setlength{\\evensidemargin}{0in}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\setlength{\\columnsep}{8mm}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\setlength{\\topmargin}{-28mm}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\setlength{\\textheight}{265mm}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\setlength{\\itemsep}{0in}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\\begin{document}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\\pagestyle{empty}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;%\lstset{language=python}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;                """&lt;/span&gt;&lt;br /&gt;preambulo2&lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; """&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\\textbf{Curso:}\\rule{11cm}{0.1pt}\hspace{0.5cm}\\textbf{Turma:}\\rule{3cm}{0.1pt}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\\textbf{Nome:}\\rule{11cm}{0.1pt} \hspace{0.5cm}\\textbf{nota:} \\rule{3cm}{0.1pt}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;{\scriptsize &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\\textbf{Instruções:}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\\begin{verbatim}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;   1. Proibida a consulta de livros ou anotações     2. Permitido o uso de calculadoras eletrônicas&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;   3. Somente serão consideradas as respostas da Parte 1 na região "Gabarito" desta página&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\end{verbatim}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\\begin{tabularx}{\linewidth}{X|X}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\\textbf{Parte 1 -- Questões} """&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;preambulo3 &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;  """&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &amp;amp; \\textbf{Respostas} \\\\ \hline \hline&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;%&amp;amp; \\\\&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;                """&lt;/span&gt;&lt;br /&gt;        &lt;br /&gt;finaltabela &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; """&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\end{tabularx}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;%\\vspace{0.3cm}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\\textbf{Parte 1 -- Gabarito:}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;                  """&lt;/span&gt;&lt;br /&gt;fimdocumento &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; """&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;    \end{document}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;    """&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;gabatabela &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; """&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;\\begin{tabular}[t]{|b{10mm}|b{10mm}|b{10mm}|b{10mm}|b{10mm}|b{10mm}|b{10mm}|b{10mm}|b{10mm}|b{10mm}|} \\\\ \hline&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;    """&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;titulo &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;"\\textbf{\\centering \\large %s}"&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; tituloprova&lt;br /&gt;provas &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt;&lt;br /&gt;arqgaba &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;open&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'prova_'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'gb.tex'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'w'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;arqgaba&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;preambulo1&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;decode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'utf-8'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;).&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;encode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"latin1"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;titulogaba &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;"%s \\textbf{\\large GABARITO}"&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; titulo&lt;br /&gt;arqgaba&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;titulogaba&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;decode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'utf-8'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;).&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;encode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'latin1'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt;&lt;/b&gt; np &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;range&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;numprovas&lt;span style="color: rgb(153, 0, 0);"&gt;):&lt;/span&gt;&lt;br /&gt;    prova &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; random&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sample&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;sequencia&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;questaoporprova&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    arqprova &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;open&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'prova_'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;+&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;str&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;np&lt;span style="color: rgb(153, 0, 0);"&gt;)+&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'.tex'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'w'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;preambulo1&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;decode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'utf-8'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;).&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;encode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"latin1"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;    arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;titulo&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;decode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'utf-8'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;).&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;encode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"latin1"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;    arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;preambulo2&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;decode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'utf-8'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;).&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;encode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"latin1"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;    arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"%s"&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;identificadores&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;np&lt;span style="color: rgb(153, 0, 0);"&gt;]))&lt;/span&gt;&lt;br /&gt;    arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;preambulo3&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;decode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'utf-8'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;).&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;encode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"latin1"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;    &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;#arqprova.write(initabela)&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    provas&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;append&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;prova&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    perguntas &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt;&lt;br /&gt;    respostas &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt;&lt;br /&gt;    embaralha &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;range&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;len&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;prova&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;    random&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;shuffle&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;embaralha&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    gabarito &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;[]&lt;/span&gt;&lt;br /&gt;    gaba&lt;span style="color: rgb(0, 153, 0);"&gt;_&lt;/span&gt;str &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;''&lt;/span&gt;&lt;br /&gt;    &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt;&lt;/b&gt; i &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;range&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;len&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;prova&lt;span style="color: rgb(153, 0, 0);"&gt;)):&lt;/span&gt;&lt;br /&gt;        arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"%d) %s &amp;amp; \n"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;encode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'latin1'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(153, 0, 0);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; prova&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;embaralha&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(153, 0, 0);"&gt;]][&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;]))&lt;/span&gt;&lt;br /&gt;        gabarito&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;append&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;((&lt;/span&gt;i&lt;span style="color: rgb(153, 0, 0);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt;letras&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;embaralha&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(153, 0, 0);"&gt;]]))&lt;/span&gt;&lt;br /&gt;        gaba&lt;span style="color: rgb(0, 153, 0);"&gt;_&lt;/span&gt;str &lt;span style="color: rgb(153, 0, 0);"&gt;+=&lt;/span&gt; letras&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;embaralha&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(153, 0, 0);"&gt;]]&lt;/span&gt;&lt;br /&gt;        arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"%s) %s \\\\ \n"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;encode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"latin1"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;letras&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(153, 0, 0);"&gt;],&lt;/span&gt;prova&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(153, 0, 0);"&gt;][&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;]))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;finaltabela&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;#arqprova.write("%s" % (identificadores[np]))&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;    arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"\\hspace{1cm}\\begin{pspicture}(1,1in)\n"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# a linha abaixo gera o codigo de barras do identificador (duplicado) da prova, &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;    &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# inclui o texto no codigo de barras&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;    &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;#arqprova.write("\\psbarcode[scalex=0.9,scaley=0.3]{%s%s}{includetext}{code39}\n" % (np,np))&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;    &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# gera codigo de barras usando a string do gabarito, nao inclui o texto no codigo de barras.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;    arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"\\psbarcode[scalex=0.9,scaley=0.3]{%s}{}{code39}\n"&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;gaba&lt;span style="color: rgb(0, 153, 0);"&gt;_&lt;/span&gt;str&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;    arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"\\end{pspicture}\n"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;gabatabela&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;encode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'latin1'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;    &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt;&lt;/b&gt; l &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;range&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;len&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;prova&lt;span style="color: rgb(153, 0, 0);"&gt;)):&lt;/span&gt;&lt;br /&gt;        arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"{\\raggedright \\raisebox{0.8ex}[2.5ex][0.75ex]{%d}} "&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;encode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"latin1"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;l&lt;span style="color: rgb(153, 0, 0);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;        &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;/b&gt; l &lt;span style="color: rgb(153, 0, 0);"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;0&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;and&lt;/span&gt;&lt;/b&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;l&lt;span style="color: rgb(153, 0, 0);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;10&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;            arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"\\\\ \hline \n"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;        &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;else&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;            arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"&amp;amp;"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"\\end{tabular}"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;fimdocumento&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    arqgaba&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"\n\n\n PROVA"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    arqgaba&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"%s"&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;identificadores&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;np&lt;span style="color: rgb(153, 0, 0);"&gt;]))&lt;/span&gt;&lt;br /&gt;    arqgaba&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"\\hspace{1cm}\\begin{pspicture}(1,1in)\n"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# a linha abaixo gera o codigo de barras do identificador (duplicado) da prova, &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;    &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# inclui o texto no codigo de barras&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;    &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;#arqprova.write("\\psbarcode[scalex=0.9,scaley=0.3]{%s%s}{includetext}{code39}\n" % (np,np))&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;    &lt;i&gt;&lt;span style="color: rgb(154, 25, 0);"&gt;# gera codigo de barras usando a string do gabarito, nao inclui o texto no codigo de barras.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;    arqgaba&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"\\psbarcode[scalex=0.9,scaley=0.3]{%s}{}{code39}\n"&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;gaba&lt;span style="color: rgb(0, 153, 0);"&gt;_&lt;/span&gt;str&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;    arqgaba&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"\\end{pspicture}\n"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    arqgaba&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;gabatabela&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;encode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'latin1'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;    &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt;&lt;/b&gt; l &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;range&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;len&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;prova&lt;span style="color: rgb(153, 0, 0);"&gt;)):&lt;/span&gt;&lt;br /&gt;        arqgaba&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"{\\raggedright \\raisebox{0.8ex}[2.5ex][0.75ex]{%d}} %s "&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;encode&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"latin1"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;gabarito&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;l&lt;span style="color: rgb(153, 0, 0);"&gt;]))&lt;/span&gt;&lt;br /&gt;        &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;/b&gt; l &lt;span style="color: rgb(153, 0, 0);"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;0&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;and&lt;/span&gt;&lt;/b&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;l&lt;span style="color: rgb(153, 0, 0);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;10&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;            arqgaba&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"\\\\ \hline \n"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;        &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;else&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;            arqgaba&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"&amp;amp;"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    arqgaba&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"\\end{tabular}"&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    arqprova&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;close&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;arqgaba&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;write&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;fimdocumento&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;arqgaba&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;close&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt;&lt;/b&gt; provas&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;tituloprova &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;"Avaliação Bimestral"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;def&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;main&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;():&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;len&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;argv&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;    arquivos &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;argv&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:]&lt;/span&gt;&lt;br /&gt;    numprovas &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;int&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;argv&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;])&lt;/span&gt;&lt;br /&gt;    questaoporprova &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;int&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;sys&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;argv&lt;span style="color: rgb(153, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;])&lt;/span&gt;&lt;br /&gt;    &lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;print&lt;/span&gt;&lt;/b&gt; arquivos&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;else&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;    numprovas &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;int&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;raw_input&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"entre o numero de provas: "&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;    questaoporprova &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;int&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;raw_input&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"entre o numero de questoes por prova: "&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;))&lt;/span&gt;&lt;br /&gt;    entrada &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;raw_input&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"entre os nomes dos arquivos, separados por espaco: "&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    entrada&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;rstrip&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;'\n'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;    arquivos &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; entrada&lt;span style="color: rgb(153, 0, 0);"&gt;.&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;split&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;' '&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;global&lt;/span&gt;&lt;/b&gt; tituloprova&lt;br /&gt;tituloprova&lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;raw_input&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"Digite o titulo da prova: "&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;lista &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;lequestoes&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;arquivos&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;sequencia &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;criasequencia&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;lista&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;provas &lt;span style="color: rgb(153, 0, 0);"&gt;=&lt;/span&gt; &lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;crialatex&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;(&lt;/span&gt;sequencia&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; numprovas&lt;span style="color: rgb(153, 0, 0);"&gt;,&lt;/span&gt; questaoporprova&lt;span style="color: rgb(153, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;/b&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;__&lt;/span&gt;name&lt;span style="color: rgb(0, 153, 0);"&gt;__&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;'__main__'&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;main&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt; &lt;/tt&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25953100-2395292497844485833?l=www.momenezes.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.momenezes.com/feeds/2395292497844485833/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=25953100&amp;postID=2395292497844485833' title='6 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/2395292497844485833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/2395292497844485833'/><link rel='alternate' type='text/html' href='http://www.momenezes.com/2008/06/cria-prova-um-python-script-para-gerar.html' title='Cria Prova - Um python script para gerar provas'/><author><name>Mario Olímpio de Menezes</name><uri>http://www.blogger.com/profile/11560217876644060692</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15100397123299240648'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25953100.post-7701798098723074850</id><published>2008-06-10T13:55:00.005-03:00</published><updated>2008-06-10T14:22:05.480-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ciência da Computação'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='Educação'/><title type='text'>Ensinando Sistemas Operacionais com Python</title><content type='html'>&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;span style="font-size:100%;"&gt;Python é uma excelente linguagem de programação: alto nível, de fácil aprendizagem, excelente produtividade, orientada a objeto, tipagem dinâmica, etc.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Normalmente, ela é utilizada como primeira linguagem de programação por causa destes atributos. Entretanto, ela também pode ser utilizada para coisas, digamos, mais baixo nível, como por exemplo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Ensino de Sistemas Operacionais - exploração de chamadas de sistema para criação de processos, navegação em sistemas de arquivos, acessos a primitivas de Entrada e Saída do sistema operacional, e outras coisas a nível de SO.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Ensino de Programação de Rede - exploração de sockets, implementação de servidores variados,&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Ensino de Sistemas Distribuídos, como continuação a Programação de Rede, explorando paradigmas de comunicação entre processos, sincronismo, etc.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Ensino de Inteligência Artificial - exploração de conceitos de IA, desde buscas até redes neurais, passando por processamento de linguagem natural, etc.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;Enfim, Python é uma linguagem excelente para quem quer aprender bem programação e muito mais, para quem quer ensinar bem os conceitos de ciência da computação/sistemas de informação, sem se perder em merchandising e modismos mercadológicos.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25953100-7701798098723074850?l=www.momenezes.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.momenezes.com/feeds/7701798098723074850/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=25953100&amp;postID=7701798098723074850' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/7701798098723074850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/7701798098723074850'/><link rel='alternate' type='text/html' href='http://www.momenezes.com/2008/06/ensinando-sistemas-operacionais-com.html' title='Ensinando Sistemas Operacionais com Python'/><author><name>Mario Olímpio de Menezes</name><uri>http://www.blogger.com/profile/11560217876644060692</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15100397123299240648'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25953100.post-6595387740400129871</id><published>2007-12-17T19:46:00.000-02:00</published><updated>2007-12-17T20:49:49.473-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='carreira'/><category scheme='http://www.blogger.com/atom/ns#' term='Educação'/><title type='text'></title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family: verdana;"&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Educação é responsabilidade de todos.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Contradições de estudantes com relação a educação.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: left; font-family: trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt;A educação é sabidamente uma necessidade do mundo moderno. Para ter sucesso na carreira profissional, para transitar bem nas diversas situações cotidianas, ter uma boa educação é um requisito importante.&lt;br /&gt;Sabendo disto, é grande a quantidade de estudantes que ingressam no ensino superior buscando por esta melhor condição.&lt;br /&gt;Entretanto, grande parte destes estudantes querem apenas o símbolo (diploma) do ensino superior ao invés do conteúdo e formação que ele representa.&lt;br /&gt;Esta contradição se manifesta no dia-a-dia da sala de aula de diversas maneiras:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Alguns estudantes querem que o professor enrole na aula, que dê provas com consulta, com questões de múltiplas escolhas (alternativas) nas quais a resposta ou é óbvia ou pode ser deduzida sem esforço nenhum.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Alguns estudantes querem que o professor não exija nenhuma dedicação extra-classe, entendendo que tudo o que ele poderia precisar para passar o professor deveria ministrar em sala. Não admitem terem que estudar para aprender um tópico da aula.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Outros estudantes, com problemas gravíssimos da formação básica, exigem que o professor passe apenas conteúdo que eles possam aprender com sua precária formação. Não admitem que precisem estudar por conta própria para suprirem sua deficiência.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Outros ainda pensam que a Instituição de Ensino Superior é uma empresa que vende diplomas e que ele, cliente, por estar pagando em dia suas prestações, deve obter ao final do prazo estipulado, o referido diploma.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Estas e muitas outras são as visões que se encontram nas salas de aulas das Instituições de Ensino Superior do Brasil.&lt;br /&gt;E o que elas provocam? Provocam a queda da qualidade de ensino, a queda na importância prática da educação como provedora de conhecimento e não apenas de diplomas.&lt;br /&gt;Um aluno que entra na sala de aula com uma destas posturas não contribuirá em nada para o seu aprendizado e nem para o de seus colegas, já que sua postura influenciará outros.&lt;br /&gt;Por melhores que sejam os professores e os recursos educacionais e didáticos que a instituição possua, serão em vão para tal aluno; o laboratório será visto apenas como lugar para acessar a Internet de graça; a biblioteca um lugar que tem umas revistas legais de informática, etc.&lt;br /&gt;Uma postura correta do aluno, com interesse pelo ensino, dedicação extra-classe, leituras de textos complementares e realização dos exercícios e projetos propostos, produzirá um aprendizado efetivo, com ganho de conhecimento e novas experiências para este aluno.&lt;br /&gt;O conhecimento adquirido, solidificado por suas aplicações a novas situações, propostas em aula ou experimentadas no dia-a-dia, resulta em melhores habilidades em diversas situações de vida.&lt;br /&gt;A capacidade de aprendizado, exercitada durante os anos da "facu" se torna um dos mais importantes trunfos do profissional ao longo de toda a sua vida. Para se adaptar às novas tecnologias, para decidir entre uma e outra ou várias opções, ser capaz de aprender e aprender rápido faz toda a diferença. E esta capacidade se aprende na escola.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Quanto mais aprendemos, mais aprendemos a aprender,  mais rápido, com mais eficiência e eficácia.&lt;/span&gt;&lt;br /&gt;E é isso que as empresas buscam, não um diploma, que indica apenas que o portador tem ensino de terceiro grau.&lt;br /&gt;Estas habilidades e conhecimento, mesmo sem diploma, podem levar alguém mais longe do que um diploma cujo dono não tem o conhecimento que ele representa.&lt;br /&gt;E pior, este conhecimento será cobrado, ou por um chefe, que sabendo que sem empregado tem um diploma de curso superior, cobrar-lhe-á o respectivo conhecimento; ou por uma situação da vida, cuja solução poderia ser facilmente encontrada caso as aulas da "facu" não fossem encaradas como momentos de encontrar os amigos e discutir novidades da Internet, YouTube!, etc.&lt;br /&gt;Qual é a sua escolha? Um diploma o conhecimento que ele representa?&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25953100-6595387740400129871?l=www.momenezes.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.momenezes.com/feeds/6595387740400129871/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=25953100&amp;postID=6595387740400129871' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/6595387740400129871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/6595387740400129871'/><link rel='alternate' type='text/html' href='http://www.momenezes.com/2007/12/educao-responsabilidade-de-todos.html' title=''/><author><name>Mario Olímpio de Menezes</name><uri>http://www.blogger.com/profile/11560217876644060692</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15100397123299240648'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25953100.post-5393981448573021842</id><published>2007-12-11T11:38:00.000-02:00</published><updated>2007-12-11T16:11:36.944-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='serviço público federal'/><category scheme='http://www.blogger.com/atom/ns#' term='carreira'/><title type='text'></title><content type='html'>&lt;h1&gt;Desrespeito e pouco caso com a ciência e tecnologia.&lt;/h1&gt;&lt;h2&gt;Como minar o desenvolvimento científico e tecnológico de uma nação.&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Um dia, um estudante de física, engenharia, química, ciência da computação, matemática, biologia, etc, etc,  foi fazer um estágio de iniciação científica em um Instituto de Pesquisas ligado do Governo Federal. Lá, ele fez o seu mestrado e também o seu doutorado.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Por uma destas coisas que acontecem na vida, ele prestou um concurso público para o cargo de Pesquisador vinculado ao Ministério de Ciência e Tecnologia, no qual foi aprovado e para o qual foi convocado, devidamente empossado e onde, até hoje, trabalha.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Por mais inexpressiva que esta estória possa ser, ela pode ser facilmente a história de muitos Pesquisadores que, outrora "estudantes",  prestaram concursos para um dos diversos Institutos de Pesquisa do MCT, como o Inmetro, a Fiocruz, o IBGE, a CNEN, etc.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Interessante, que embora sendo vinculados ao mesmo Governo Federal, exercendo a mesma função de Pesquisador, eles recebem remunerações diferentes.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Como pode um patrão contratar duas ou mais pessoas para exercerem a mesma função e pagar-lhes salários diferentes? Não pode! Quer dizer, não poderia!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt; Ah! Mas no Brasil, pode! E o patrão é o Governo!&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Isto mesmo, um pesquisador com doutorado, ganha:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;No Inmetro:  de 4.652,55 a 10.361,88&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Na Fiocruz:   de 5.898,90 a   9.298,06&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;No IBGE:      de 6.367,48 a   9.737,90&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Mas,&lt;/b&gt; &lt;b&gt;o mesmo pesquisador de um Instituto de Pesquisas ou outro órgão do Ministério de Ciência e Tecnologia ganha de 5.307,03 a 7.380,16&lt;/b&gt;. &lt;b&gt;Uma diferença (a menor) de R$ 1917,90, que pode chegar a R$ 2.981,72 (a maior).&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Que dizer de tal patrão?&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Acontece que o Governo Federal criou recentemente carreiras separadas para o Inmetro, a Fiocruz e o IBGE para dar aumento diferenciado a estas carreiras, desrespeitando a isonomia salarial.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;E este mesmo Governo ainda diz que tem um plano de aceleração para a Ciência e Tecnologia. Tratando seus pesquisadores deste modo?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Estas atitudes do Governo não são sem objetivo. Fazem parte de uma estratégia muito conhecida - "Dividir e conquistar".&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Exatamente! O Governo dividiu as carreiras para que possa ganhar de cada uma delas individualmente.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Uma atitute covarde e mesquinha, tratando com desrespeito toda uma nação, que sabe que sem ciência e tecnologia, feitas com seriedade, respeito e trato igualitário, não se constrói um futuro sólido para o Brasil.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25953100-5393981448573021842?l=www.momenezes.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.momenezes.com/feeds/5393981448573021842/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=25953100&amp;postID=5393981448573021842' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/5393981448573021842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/5393981448573021842'/><link rel='alternate' type='text/html' href='http://www.momenezes.com/2007/12/desrespeito-e-pouco-caso-com-cincia-e.html' title=''/><author><name>Mario Olímpio de Menezes</name><uri>http://www.blogger.com/profile/11560217876644060692</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15100397123299240648'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25953100.post-1898991216658636677</id><published>2007-12-10T21:15:00.000-02:00</published><updated>2007-12-17T15:53:18.658-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Educação'/><title type='text'></title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:180%;"&gt;Educação é responsabilidade de todos.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;Contradições de patrões e chefes em relação à educação de seus funcionários e subordinados.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;A qualidade da educação superior no Brasil vem caindo significativamente nos últimos tempos.&lt;br /&gt;Independente do tipo de instituição que o aluno freqüenta, é bem provável que sua formação não é comparável àquela recebida por um estudante há 5 ou 10 anos.&lt;br /&gt;&lt;br /&gt;Quando um empregador ou superior imediato de um aluno deixa de cobrar desempenho na escola, ou deixa de cobrar conhecimento compatível com a série que o aluno freqüenta, está sendo conivente com o sistema e admitindo que a qualidade da educação seja inferior. E depois, terá de pagar caros treinamentos para aquele aluno de modo a suprir-lhe a deficiência na formação acadêmica.&lt;br /&gt;&lt;br /&gt;Não seria mais fácil, barato e melhor se o empregador ou superior imediato enxergasse a faculdade ou universidade com um momento especial na vida do seu empregado e lhe ajudasse ao máximo para que obtivesse o melhor desempenho possível, sabendo que isto reverterá para a empresa na forma de melhoria de qualidade, mais eficiência, etc.&lt;br /&gt;&lt;br /&gt;Ao invés disto, muitos empregadores e superiores imediatos desrespeitam seus funcionários-alunos, obrigando-os a uma carga de trabalho exagerada, enviando-os para viagens demoradas a serviço, exigindo sua presença no trabalho justamente nos horários de aula.&lt;br /&gt;&lt;br /&gt;Para estes empregadores e superiores imediatos, apresento uma carta de responsabilidade, na qual eles deverão expressar sua anuência com as práticas acima e indicar, claramente que conhecendo os prejuízos para a formação do aluno, ainda assim insistem nestas práticas e assumem a responsabilidade por prejudicar de modo permanente a formação de uma pessoa sob sua responsabilidade.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:100%;"  &gt;Ao&lt;br /&gt;Professor Fulano de Tal&lt;br /&gt;Instituição de Ensino&lt;br /&gt;Localização.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pela presente, eu _________________________, empregador/superior imediato do aluno abaixo identificado, declaro que estou ciente de:&lt;br /&gt;&lt;/span&gt;&lt;ul  style="font-family:times new roman;"&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;que o horário das aulas na INSTITUIÇÃO DE ENSINO SUPERIOR é das 19:00 às 22:40 horas;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;que o referido aluno precisa estar presente pontualmente às aulas, pois trata-se de curso presencial;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;que o referido aluno tem direito por lei, a 1 (uma) hora para estudo em dias de prova;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;que, caso a carga de trabalho do referido aluno nesta empresa exigir constantemente que o mesmo fique além do horário normal, seus estudos poderão ser prejudicados.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:100%;"  &gt;Declaro também, que tendo ciência dos fatos acima, assumo a responsabilidade pelo impacto na formação educacional e profissional do referido aluno, sempre que este não puder atender às aulas por motivos de trabalho exercido nesta empresa sob a minha supervisão, autorização ou solicitação, direta ou indireta.&lt;br /&gt;&lt;br /&gt;Por fim, declaro que estou ciente de que os estudos do referido aluno quando completados com êxito, contribuirão para que esta empresa tenha um profissional melhor qualificado, com melhores resultados no seu trabalho, o que trará benefícios diretos para a empresa.&lt;br /&gt;&lt;br /&gt;Por ser verdade, firmo o presente.&lt;br /&gt;&lt;br /&gt;Sâo Paulo, _____ de _________________ de 200___.&lt;br /&gt;&lt;br /&gt;Aluno: ______________________________________________&lt;br /&gt;&lt;br /&gt;RA: _________________________________________________&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Empregador - Empresa: ________________________________________&lt;br /&gt;&lt;br /&gt;Nome:  ________________________________________       &lt;br /&gt;&lt;br /&gt;Assinatura:  ________________________________________&lt;br /&gt;&lt;br /&gt;RG: __________________________________&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25953100-1898991216658636677?l=www.momenezes.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.momenezes.com/feeds/1898991216658636677/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=25953100&amp;postID=1898991216658636677' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/1898991216658636677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/1898991216658636677'/><link rel='alternate' type='text/html' href='http://www.momenezes.com/2007/12/carta-para-os-empregadores-que-exigem.html' title=''/><author><name>Mario Olímpio de Menezes</name><uri>http://www.blogger.com/profile/11560217876644060692</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15100397123299240648'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25953100.post-4362117213358364639</id><published>2006-11-06T09:01:00.000-02:00</published><updated>2006-11-06T09:08:29.348-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='40 Dias com Propósitos'/><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Texto e Contexto&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;Parece que, às vezes, o autor, Rick Warren, usa alguns textos fora do contexto, forçando algumas interpretações. O raciocínio em geral não está errado, ou seja, a idéia é bíblica, mas me parece que a escolha dos trechos, em algumas poucas ocasiões, é forçada.&lt;br /&gt;&lt;br /&gt;Por exemplo, ao citar Jó 23.14, o objetivo era mostrar que mesmo naquela situação, Jó encontrava motivos para adorar, e um destes motivos era que Deus tinha planos para sua vida.&lt;br /&gt;&lt;br /&gt;Isto é a pura verdade, mas o texto não me parece apontar nesta direção.  Ao contrário, mostra Jó apavorado por causa dos planos de Deus "contra" ele.  Jó diz: "... e tem planos semelhantes."&lt;br /&gt;&lt;br /&gt;Mas ele estava se referindo ao decreto de Deus contra ele Jó. Não são planos 'bonzinhos'. Jó se mostra desesperado com os outros planos semelhantes de Deus.&lt;br /&gt;&lt;br /&gt;Mas sabemos que Deus tinha planos maravilhosos para a vida de Jó, como fica claro no decorrer na sua história.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25953100-4362117213358364639?l=www.momenezes.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.momenezes.com/feeds/4362117213358364639/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=25953100&amp;postID=4362117213358364639' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/4362117213358364639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/4362117213358364639'/><link rel='alternate' type='text/html' href='http://www.momenezes.com/2006/11/texto-e-contexto-parece-que-s-vezes-o.html' title=''/><author><name>Mario Olímpio de Menezes</name><uri>http://www.blogger.com/profile/11560217876644060692</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15100397123299240648'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25953100.post-116194960567243808</id><published>2006-10-27T13:00:00.000-03:00</published><updated>2006-10-27T10:28:54.413-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='40 Dias com Propósitos'/><title type='text'></title><content type='html'>&lt;span style="font-size:130%;"&gt;A vida é uma atribuição temporária&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;6º dia de "Uma vida com propósitos" de Rick Warren, Ed. Vida.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;A que coisas eu dou importância?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Talvez uma boa comparação contextualizada sobre o fato de a vida ser uma atribuição temporária, é pensarmos em uma viagem de férias/negócios. Por melhor que as coisas estejam, não esquecemos que  voltaremos para casa. Sempre queremos ir para a &lt;span style="font-weight: bold;"&gt;nossa&lt;/span&gt; cama, &lt;span style="font-weight: bold;"&gt;nossa&lt;/span&gt; sala, etc.&lt;br /&gt;&lt;br /&gt;Com tanta coisa "boa" nos dias atuais, é fácil esquecer que a vida não consiste em perseguiur a felicidade. Não dá para ser perfeitamente feliz e satisfeito quando se está em uma viagem, por melhor que se esteja.&lt;br /&gt;&lt;br /&gt;Na Terra, devemos pensar assim - ansearmos o retorno ao nosso lar celestial!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25953100-116194960567243808?l=www.momenezes.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.momenezes.com/feeds/116194960567243808/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=25953100&amp;postID=116194960567243808' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/116194960567243808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25953100/posts/default/116194960567243808'/><link rel='alternate' type='text/html' href='http://www.momenezes.com/2006/10/vida-uma-atribuio-temporria-6-dia-de.html' title=''/><author><name>Mario Olímpio de Menezes</name><uri>http://www.blogger.com/profile/11560217876644060692</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15100397123299240648'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>