123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446 |
- <!DOCTYPE html>
- <html ng-app="ivprog">
- <head>
- <title>iVProgH5 : Visual Programming (LInE-IME-USP)</title>
- <meta charset="utf-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <link href="../css/bootstrap.min.css" rel="stylesheet" media="screen" />
- <link href="../css/font-awesome.css" rel="stylesheet" media="screen" />
- <link href="../css/bootstrap-editable.css" rel="stylesheet" media="screen" />
- <link href="../css/ivprog.css" rel="stylesheet" media="screen" />
- </head>
- <body>
- <div class="header">
- <h1><img src="../img/logo_ivprog.png" title="iVProg" /></h1>
- </div>
- <div class="indent1">
- <h2> iVProg : Visual Programming (LInE-IME-USP)</h2>
- <a href="http://www.usp.br/line" title="Uma das paginas do LInE">LInE</a>.
- <a href="https://github.com/LInE-IME-USP" title="LInE no GitHub">Software educacional livre</a>.
- <a href="http://www.usp.br/line/wp" title="Prototipo ambiente LInE">Interatividade na Internet para aprendizagem</a>.
- <script type='text/javascript'>
- //<![CDATA[
- var strAnswer = '';
- var evaluationResult = '';
- var comment = '';
- function resp () {
- // 'getEvaluation()' calls 'js/services.js : endTest function(index)' that calls 'getEvaluationCallback(apro/100);'
- window.frames.iLM.getEvaluation(); // in './mod/iassign/ilm/ivprog-html/js/services.js'; './mod/iassign/ilm/ivprog-html/main.html'
- // var comment = document.formEnvio.submission_comment.value;
- // iVProgH5 will call function 'getEvaluationCallback(...)': /var/www/html/ivprogh5/js/services.js
- }
- function getEvaluationCallback (evaluation) { // ./mod/iassign/ilm/ivprog-html/js/services.js : call this to define the variable 'evaluationResult'
- evaluationResult = evaluation;
- strAnswer = window.frames.iLM.getAnswer();
- comment = document.formEnvio.submission_comment.value;
- if ((strAnswer==null || strAnswer=='' || strAnswer==-1) && (comment==null || comment=='')) { // undefined
- alert('Atividade enviada sem conteúdo.');
- return false; // error...
- } else {
- //alert('getEvaluationCallback: enviando evaluationResult=' + evaluation + ', strAnswer=' + strAnswer);
- alert('getEvaluationCallback: ' + document.formEnvio. iLM_PARAM_ArchiveContent.value);
- document.formEnvio. iLM_PARAM_ArchiveContent.value = strAnswer;
- document.formEnvio.iLM_PARAM_ActivityEvaluation.value = evaluationResult;
- document.formEnvio.submit();
- return true; // success
- }
- }
- //]]>
- </script>
- <!--
- <div class="ladoalado">
- <div id="ladoesquerdo">
- </div>
- <div id="ladodireito">
- </div>
- </div><!-- class="ladoalado" -->
- <div class="bloco">
- O <i>iVProgH</i> é mais um sistema educacional livre do <i>LInE</i>, implementado em <i>HTML5</i>
- (usa fortemente <i>JavaScript</i>), este destinado ao ensino e aprendizagem de algoritmos e programação.
- O <i>iVProgH</i> é uma nova implementação do
- <i><a href="http://www.matematica.br/ivprog2" title="veja a segunda versao do iVProg Java">iVProg</a></i> que é implementado em <i>Java</i>.
- Ambos <i>iVProg</i> dispõem de um esquema para avaliação automática de exercícios, experimente!
- <br/>
- Esses sistemas foram desenhados a partir de um <i>modelo visual</i> para programação, podendo ser utilizado desde o
- segundo ciclo do Ensino Fundamental.
- <br/>
- </div>
- <div class="bloco">
- <div class="secao">1. Sobre a interface principal</div>
-
- <div class="ladoalado">
- <div id="ladoesquerdo">
- <p>
- A imagem 1 apresenta a interface inicial do <i>iVProgH</i> (quando configurado para não apresentar o gabarito do exercício).
- <br/>
- Abaixo são explicadas os cinco botões da interface principal e a área cinza inferior seguindo a ordem em que aparecem, de cima para baixo.
- </p>
- <ol>
- <li>
- <img src="imagens/botao_avaliar.png" title="botao para avaliar o codigo quando tratar-se de exercicio"/>
- Este botão deve ser utilizado para avaliar o código resposta a um exercícios;
- </li>
- <li>
- <img src="imagens/botao_variaveis.png" title="botao para criar variaveis"/>
- Este botão serve para criar novas variáveis (que nascem com nomes <tt>newVarN</tt>, se de um "clique" duplo sobre seu nome pode-se alterá-lo);
- </li>
- </ol>
- </p>
- </div>
- <div id="ladodireito">
- <center>
- <img src="imagens/manual_interface_1.png" title="interface inicial"/>
- <br/>
- <i>Fig. 1</i>: Interface principal do <i>iVProgH</i>.
- </center>
- </div>
- <ol start="3">
- <li>
- <img src="imagens/botao_comandos.png" title="botao para inserir no codigo comandos"/>
- Este botão serve para inserir no código novos comandos (vide abaixo "Sobre opções de comandos"));
- </li>
- <li>
- <img src="imagens/botao_rodar.png" title="botao para rodar o codigo atual"/>
- Este botão serve para "rodar" o código construído;
- </li>
- <li>
- <img src="imagens/botao_limpar_console.png" title="botao para limpar a area de saida de dados"/>
- Este botão serve para "limpar" o console de mensagens, ou seja, remove todas as mensagens previamente "impressas";
- </li>
- <li>
- <img src="imagens/area_saidas.png" title="area para saida de dados"/>
- Esta é a área em que as mensagens aparecerão (as saídas de dados).
- </li>
- </ol>
- </div>
- </div>
- <div class="bloco">
- <div class="secao">1. Sobre variáveis</div>
- <p>
- Em qualquer ambiente para codificar algoritmos, as variáveis são utilizadas para armazenar valores a serem utilizados no código.
- Um exemplo simples de sua utilidade é a obtenção do quadrado de um número a ser digitado pelo usuário.
- Ou seja, ao escrever o código o programador <b>não</b> sabe qual valor será digitado, assim tem que redigir seu código supondo
- um "local" especial para armazenar o valor a ser digitado, que é representado por uma variável.
- </p>
- <div class="subsecao">1.1 Sobre a criação de variáveis</div>
- <p>
- No <i>iVProgH</i>, para criar uma nova variável deve-se utilizar o botão <img src="imagens/botao_variaveis.png" title="botao para criar variaveis"/>.
- </p>
- <p>
- Inicialmente não existem variáveis disponíveis (como indicado na figura 1). Ao "clicar" a primeira vez no botão para criar
- variável, aparecerá uma nova variável (atualmente com nome inicial <tt>newVar0</tt>).
- Mas pod-se "clicar" sobre o nome da variável para alterar seu <i>nome</i>.
- </p>
- <p>
- Na imagem abaixo estão 3 passos para a criação e edição dos nomes de 2 variáveis, cronologicamente da esquerda para a direita..
- Na esquerda resultado após criar as 2 variáveis, seguida da imagem indicando o início da alteração do nome da primeira variável e,
- mais à direita, o resultado após trocar os nomes das variáveis, respectivamente, para <tt>a</tt> e <tt>b</tt>.
- <br/>
- <center>
- <img src="imagens/var_img1.png" title="processo de criacao e alteraco de nomes em 3 passos: 1. criar var."/>
- <img src="imagens/var_img2.png" title="processo de criacao e alteraco de nomes em 3 passos: 2. alterar nome 1"/>
- <img src="imagens/var_img3.png" title="processo de criacao e alteraco de nomes em 3 passos: 3. nomes alterados"/>
- <br/>
- <i>Fig. 2</i>: Processo de criação e alteração de nomes de variáveis.
- </center>
- </p>
- <div class="subsecao">1.2 Sobre os tipos de variáveis</div>
- <p>
- Outra característica importante de variáveis é o espaço que cada uma ocupa e o formato de sua representação.
- Isso quer dizer que cada <i>tipo de variável</i> utiliza uma quantidade padrão de memória (isso costuma ser expresso
- em <i>bytes</i> - agrupamento de 8 <i>bits</i>).
- Esta questão não será aprofundada aqui, pois o foco deste manual é apresentar os rudimentos da programação e o
- funcionamento básico do <i>iVProgH</i>.
- </p>
- <p>
- Mas existe uma questão muito importante que precisa ser enfatizada: qualquer computador digital dispõe de uma quantidade finita
- de memória e por isso <b>não</b> consegue representar qualquer número.
- Se quiser entender a razão dessa impossibilidade, tente entender a frase seguinte, senão pule-a.
- <blockquote>
- Os números inteiros são infinitos, não existindo nem um maior inteiro e nem um menor inteiro,
- ou dito de outra forma, dado qualquer número inteiro
- sempre existe um outro maior que ele e também um outro menor que ele!
- <br/>
- Assim, suponha que cada dígito (que são: <i>0</i>, <i>1</i> até <i>9</i>) precise de <i>4</i> <i>bits</i> para ser representado
- e que o computador considerado tenha disponível um total de <i>N</i> <i>bits</i>. Então este computador poderia representar
- um número com até <i>N/4</i> dígitos.
- <br/>
- Por exemplo, um computador básico atual vem com no mínimo <i>2 giga-bytes</i> de espaço em memória (<i>RAM - Random Access Memory</i>),
- o que equivale a aproximadamente 2 bilhões de <i>bytes</i>, resultando em <i>2 x 8</i> bilhões de <i>bits</i>.
- Assim, o maior número inteiro positivo que caberia neste computador seria um número com
- <i>2 x 8 / 4 = 16</i> bilhões de dígitos.
- <br/>
- Note que um inteiro com <i>16</i> bilhões de dígitos é tremendamente maior que o inteiro 16 bilhões, pois esse último tem apenas <i>11</i> dígitos.
- <br/>
- Então, se representarmos esse número com <i>16</i> bilhões de dígitos por <i>X</i>, basta multiplicá-lo por 10 que resultaria em um
- número com <i>16</i> bilhões e <i>1</i> dígitos, o que <b>não</b> caberia na memória do computador considerado,
- o que resultaria em erro (que usualmente é denominado por <i>overflow</i>).
- </blockquote>
- </p>
- <p>
- Se estiver interessado em saber um pouquinho mais sobre esta questão de espaço-representação,
- <a href="https://www.ime.usp.br/~leo/mac2166/2017-1/introducao_var.html" title="sobre variaveis e expressoes aritmeticas">siga este apontador</a> e
- <a href="https://www.ime.usp.br/~leo/mac2166/2017-1/introducao_char_float.html" title="sobre caracteres e numeros simulando os reais">este apontador</a>.
- </p>
- <p>
- Do ponto de vista prático, no <i>iVProgH</i> estão disponíveis as variáveis
- inteiras, reais, textos e lógicas.
- Ao criar uma variável, como indicado na figura 2, esta "nasce" do tipo <i>inteira</i>.
- Para alterar seu tipo, pode-se "clicar" no ícone da <i>chave inglesa</i>, ao lado do nome da variável (e.g. <tt>newVar0</tt>) e
- escolhendo o tipo.
- </p>
- <p>
- Abaixo uma imagem ilustrando como alterar o tipo da variável de nome <i>x</i> de <i>inteiro</i> para <i>real</i>, em 3 passos.
- <center>
- <img style="vertical-align: top;" src="imagens/var_tipo_1.png" title="processo de alteraco de tipo: 1. tipo inicial (inteiro)."/>
- <img style="vertical-align: top;" src="imagens/var_tipo_2.png" title="processo de alteraco de tipo: 2. escolhendo novo tipo (real)."/>
- <img style="vertical-align: top;" src="imagens/var_tipo_3.png" title="processo de alteraco de tipo: 3. tipo final (real)."/>
- <br/>
- <i>Fig. 3</i>: Processo de alteração de tipo inteiro para real na variável <i>x</i>.
- </center>
- </p>
- <p>
- Note que na esquerda aparece <tt>x=1</tt>, enquanto na direita vê-se <tt>x=1.0000</tt>.
- Isso significa que a variável <tt>x</tt> será iniciada com a unidade e que o aparecimento de "ponto decimal"
- diferencia o tipo <i>inteiro</i> do tipo <i>real</i>, no primeiro aparece <tt>1</tt> e no último <tt>1.0000</tt>.
- O valor inicial da variável pode ser alterado de modo análogo à alteração de seu nome, basta "clicar" sobre o número e editá-lo.
- </p>
- </div>
- <div class="bloco">
- <div class="secao">2. Sobre comandos</div>
- <p>
- Os <i>comandos</i> são as difentes instruções disponíveis na linguagem. Na atual versão do <i>iVProgH</i> existem seis (6) diferentes
- comandos, explicados abaixo.
- <br/>
- Em cada um dos 6 comando, apresentaremos uma versão sintética do comando, em uma linguagem que será apelidada de
- <b>Portugol</b>. Também será apresentado um exemplo em linguagem <b>C</b>.
- </p>
- <p>
- <ol>
- <li>
- <tt class="corDef">Atribuição</tt> Para atribuir valor a alguma variável. Obtém-se a imagem abaixo.
- <br/>
- <i class="corEx">Representação em "Portugol"</i>: <tt>x = x * x + x + 1;</tt>. Variável <tt>x</tt> receberá o valor resultante da expressão à direita (<tt>x * x + x + 1;</tt>).
- <br/>
- <i class="corEx">Representação em C</i>: <tt>x = x * x + x + 1;</tt>.
- <br/>
- <center>
- <img style="vertical-align: top;" src="imagens/com_attrib_1.png" title="comando de Atribuicao"/>
- <br/>
- <i>Fig. 4</i>: Comando de atribuição, situação inicial.
- </center>
- Nesse momento deve-se selecionar a variável (destacado em fundo amarelo) e depois
- construir a expressão aritmética que definirá a variável. Por exemplo, pode-se fazer <tt>i = i+1</tt>, significando a variável
- <b>receberá</b> o valor atual nela acrescido de uma unidade.<br/>
- Em programação a atribuição <tt>x = x*x + x + 2</tt> deve ser entendida como:
- cálcula-se primeiro o valor da expressão à direita, cujo resultado final é atribuido à variável à esquerda.</li>
- <li>
- <tt class="corDef">Se verdadeiro então</tt> Para executar comando de acordo com uma condição (<i>expressão lógica</i>).
- <br/>
- <i class="corEx">Representação em "Portugol"</i>: <tt>se (a < b) faça CMD1; senão CMD2</tt>.
- Se <tt>a</tt> for estritamente menor que <tt>b</tt>, execute comando <tt>CMD1</tt>, senão execute comando <tt>CMD2</tt>.
- <br/>
- <i class="corEx">Representação em C</i>: <tt>if (a < b) CMD1; else CMD2;</tt>. Sendo <tt>CMD1</tt> e <tt>CMD2</tt> qualquer comando válido de <tt>C</tt>.
- <br/>
- <center>
- <img style="vertical-align: top;" src="imagens/com_se_entao_1.png" title="comando Se-Entao"/>
- <br/>
- <i>Fig. 5</i>: Comando de <i>seleção</i>.
- </center>
- Nesse momento deve-se selecionar a variável
- (a versão corrente tem um erro: ao clicar no <tt>Selecione...</tt> deve-se pegar a opção <tt>Valor</tt> e não <tt>Variável</tt>)
- e seguir construindo a expressão lógica.
- <br/>
- <b>Atenção</b>, a decisão (execução do comando) ocorre durante sua execução, com os valores desse contexto.
- Durante a execução, a condição é avaliada, se resoltar verdadeiro o comando subordinado ao <tt>se</tt> será executado,
- senão será executado o comando sob o <tt>senão</tt>. Pode-se deixar qualquer um deles vazio.
- <br/>
-
- <br/>
- <i>Exemplo</i>: para a expressão <tt>a < b</tt>
- </li>
- <li>
- <tt class="corDef">Repita N vezes</tt> Repetir todos os comandos sobordinados (sob esse) <tt>N</tt> vezes.
- <br/>
- <i class="corEx">Representação em "Portugol"</i>: <tt>repetir N vezes { CMD1; ...; CMK; }</tt>.
- <br/>
- <i class="corEx">Representação em C</i>: <tt>for (i=0; i < N; i++) { CMD1; ...; CMK; }</tt>.
- <br/>
- <center>
- <img style="vertical-align: top;" src="imagens/com_for_1.png" title="comando de repeticao for"/>
- <br/>
- <img style="vertical-align: top;" src="imagens/com_for_2.png" title="comando de repeticao for"/>
- <br/>
- <i>Fig. 6</i>: comando para repetir um número fixo de vezes (dado por uma variável ou expressão).
- </center>
- Na parte de superior da figura 6 está a imagem obtida imediatamente após pegar comando <tt>Repita N vezes</tt>,
- na parte inferior após "clicar" no símbolo
- <img style="vertical-align: top;" src="imagens/com_for_3.png" title="trocar numero de repeticoes"/>.
- </li>
- <li>
- <tt class="corDef">Enquanto verdadeiro</tt> Outro comando de repetição, repetindo enquanto a condição for verdadeira.
- <br/>
- <i class="corEx">Representação em "Portugol"</i>: <tt>enquanto (CONDICAO) { CMD1; ...; CMK; }</tt>.
- <br/>
- <i class="corEx">Representação em C</i>: <tt>while (CONDICAO) { CMD1; ...; CMK; }</tt>.
- <br/>
- <center>
- <img style="vertical-align: top;" src="imagens/com_enquanto_1.png" title="comando de repeticao com condicao de entrada"/>
- <br/>
- <i>Fig. 7</i>: comando para repetir enquanto a condição resultar verdadeiro.
- </center>
- Nesse comando, o bloco subordinando será repetido até que a condição de entrada deixe de ser verdadeira.
- </li>
- <li>
- <tt class="corDef">Leitura de dados</tt> Comando para permitir que o usuário <i>entre</i> um <i>número/texto/Verdadeiro/Falso</i> para o programa.
- <br/>
- <i class="corEx">Representação em "Portugol"</i>: <tt>leia(x);</tt>. Ler um valor e armazenar em <tt>x</tt>.
- <br/>
- <i class="corEx">Representação em C</i>: <tt>scanf("%d", &x);</tt>.
- <br/>
- <center>
- <img style="vertical-align: top;" src="imagens/com_entrada_1.png" title="comando para entrada de dados (situacao inicial)"/>
- <br/>
- <img style="vertical-align: top;" src="imagens/com_entrada_2.png" title="comando para entrada de dado, a ser armazenado em x"/>
- <br/>
- <i>Fig. 8</i>: Comando para <i>entrada</i> de dados. Abaixo após definir a variável na qual o valor digitado será armazenado (<tt>x</tt>).
- </center>
- Nesse momento deve-se selecionar a variável (destacado em fundo amarelo) e depois
- </li>
- <li>
- <tt class="corDef">Escrita de dados</tt> Comando para permitir que o usuário receba uma <i>saída</i> do programa.
- <br/>
- <i class="corEx">Representação em "Portugol"</i>: <tt>escreva(x);</tt>. Escreva no dispositivo de saída padrão o valor armazenado em <tt>x</tt>.
- <br/>
- <i class="corEx">Representação em C</i>: <tt>printf("%d\n", x);</tt>.
- <br/>
- <center>
- <img style="vertical-align: top;" src="imagens/com_saida_1.png" title="comando para saida de dados (situacao inicial)"/>
- <br/>
- <img style="vertical-align: top;" src="imagens/com_saida_2.png" title="comando para saida de dados da variavel x"/>
- <br/>
- <i>Fig. 9</i>: Comando para <i>saída</i> de dados. Na imagem inferior após definir qual variável terá seu valor impresso.
- </center>
- Nesse momento deve-se selecionar a variável (destacado em fundo amarelo) e depois
- </li>
- </ol>
- </p>
- </div>
- <div class="bloco">
- <div class="secao">3. Solução para o Exercício 1: somar 2 números digitados</div>
- <strong> Exercício 1: </strong>
- <i>Fazer um algoritmo que solicite que o usuário digite 2 valores (inteiros), depois compute a soma dos valores digitados e por último imprima esta soma.
- <br/>
- <strong>Solução para o Exercício 1: </strong> passos para obter o algoritmo/programa da figura 10.<br/>
- <ul>
- <li>
- Criar 3 variáveis e renomeá-las para nomes mais significativos.
- Eventualmente poderia-se dispensar a variável <tt>soma</tt> e acumular a soma em <tt>a</tt> ou em <tt>b</tt>, mas o código não ficaria tão claro;
- </li>
- <li>
- Criar o comando <tt>leia(a);</tt> e <tt>leia(b);</tt>, para capturar e armazenar os 2 valores a serem digitados pelo usuário
- (seria impossível usar apenas uma, perderia-se o primeiro valor que fosse digitado);
- </li>
- <li>
- Criar o comando de atribuição correspondente ao comando Porgugol <tt>soma = a+b;</tt>;
- </li>
- <li>
- Criar o comando para imprimir a resposto, correspondente ao comando Portugol <tt>escreva(soma);</tt>;
- </ul>
- <br/>
- <center>
- <img style="vertical-align: top;" src="imagens/sol_exerc1.png" title="programa solucao do exercicio 1"/>
- <br/>
- <i>Fig. 10</i>: Imagem do programa para receber 2 valores digitados e imprimir sua soma.
- </center>
- <br/>
- </div>
- <!--
- Atencao e' preciso que existe PHP para mostrar a acao para gravar (via programa PHP 'gravar.php'.
- %3A :
- %2F /
- %3D =
- %26 &
- -->
- <center>
- <div class="bloco">
- <div class="secao">4. <i>iVProgH</i> com o exercício 1 (da soma de 2 inteiros) para experimentar novamente.</div>
- <a
- href="../main.html?lang=pt_br&iLM_PARAM_Assignment=../exerc/exerc_ivprogh5_somar2inteiros_digitados.ivp&iLM_PARAM_SendAnswer=false">
- ../main.html?lang=pt_br&iLM_PARAM_Assignment=../exerc/exerc_ivprogh5_somar2inteiros_digitados.ivp&iLM_PARAM_SendAnswer=false"
- </a><br/>
- <iframe frameborder="0" name="iLM"
- src="../main.html?lang=pt_br&iLM_PARAM_Assignment=../exerc/exerc_ivprogh5_somar2inteiros_digitados.ivp&iLM_PARAM_SendAnswer=false"
- style="width: 800px; height: 600px;" id="iLM">
- </iframe>
- <!-- /home/leo/projetos/iMA/ima/sobre_protocolo/sobre-protocolo-ima.txt
- Explicacoes sobre os parametros para configurar a carga do iVProgH
- - lang: "lang=pt_br" => carrega em Portugues; "lang=en" => carrega em Ingles
- - iLM_PARAM_Assignment: nome do arquivo a ser carregado, pode ser um exemplo (com codigo pronto) ou um gabarito (com dados de entradas x saidas)
- - iLM_PARAM_SendAnswer: se "false" => que NAO mostra o gabarito - para mostrar, eliminar "&iLM_PARAM_SendAnswer=false" ou deixar &iLM_PARAM_SendAnswer=true"
- -->
- <form name='formEnvio' id='formEnvio' method='post' action='gravar.php' enctype='multipart/form-data'>
- <!-- document.formEnvio.MA_POST_Archive.value document.formEnvio.MA_POST_Value.value -->
- <!-- document.formEnvio.iLM_PARAM_ArchiveContent.value document.formEnvio.iLM_PARAM_ActivityEvaluation.value-->
- <input type='hidden' name='iLM_PARAM_ArchiveContent' />
- <input type='hidden' name='iLM_PARAM_ActivityEvaluation' />
- <p><textarea rows='2' cols='60' name='submission_comment'></textarea></p>
- <input type=button value='Enviar resposta' onclick = 'javascript:window.resp();' title='clique aqui para enviar sua resposta' />
- </form>
- </div><!-- class="bloco" -->
- </center>
- <!--
- /var/www/html/ivprogh5/img/manual_interface_1.png
- /var/www/html/ivprogh5/js/app-i18n.js
- 'msg_testcases' : 'Casos de teste (para autoria de exercícios)',
- /var/www/html/ivprogh5/partials/create.html
- 'msg_testcases' : <div id="caseTests" ng-show="notSend"> = iLM_PARAM_SendAnswer=false&
- -->
-
-
- <div class="foot"><center>
- <a href="http://www.ime.usp.br/line">LInE</a> |
- <a href="http://www.matematica.br">iMática</a> |
- <a href="http://www.usp.br/line/mooc">MOOC</a>
- </center></div>
- </div><!-- class="indent1" -->
- </body>
- </html>
|