• Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.

Simon Viegas

Moderadores
  • Total de itens

    2.211
  • Registro em

  • Última visita

  • Qualificações

    0%

Reputação

620

8 Seguidores

Sobre Simon Viegas

  • Data de Nascimento 22-06-1982

Informações gerais

  • Cidade e Estado Salvador/BA
  • Sexo Masculino

Outros

  • Biografia Carregando...
  • Ocupação Técnico e Analista de Sistemas
  • Interesses Tecnologia
  1. VisuAlg

    Olá @Johannfer. Para tentarmos alinhar os raciocínios, por favor, tente seguir (ou não) cada um dos item abaixo, daí responde cada um dizendo se vai seguir ou não, contra-argumentando ou onde está com dúvidas, ok? 1) USO DE MENUS (Urgente!) No seu código, você está usando o procedimento Menu1 para chamar o procedimento jogar, e dentro de jogar está chamado novamente Menu1. Você NÃO PODE FAZER ISSO. O correto é deixar o jogar terminar para voltar para o Menu1. Veja, os procedimentos no VisuAlg são como sub-programas... Cada vez que um procedimento ou função é chamada, ele é empilhado na "pilha de processos", algo assim: *** Ao iniciar, o "processo principal" é aberto no Windows. Ai, ao chamar o Menu1, é aberto um sub-processo que fica em cima do programa anterior... Ao chamar Jogar, ele ficará em cima de Menu1... Daí, o "correto" seria deixar o Jogar terminar para voltar para o Menu1, e aí poder selecionar outro opção de menu para abrir um novo sub-processo ou finalizar (tem que ser "uso, fecho e volto, uso fecho e volto)... do jeito que está sendo feito, o jogar está iniciando um novo Menu1, entende? Ficando algo assim: Pilha de processos MENU1 JOGAR MENU1 PROGRAMA_PRINCIPAL Ao continuar, o Menu1 lá de cima (onde estará rodando no momento) iria chamado um novo Jogar, aumentado a pilha de processos... tá dando para entender? Isso está conceitualmente errado!!! Não pode! Para corrigir isso, veja o item 4) da minha postagem anterior. De lá, você pode adaptar ao seu novo código... ou seja, deixando o repita/ate dentro do menu. Entenda que ao finalizar um sub-programa, a execução do programa volta para a próximo linha após onde ele foi chamado!!! 2) INDENTAÇÃO Seu código lá no docx para mim ainda está bagunçado, por favor, verifique o item 1 da minha postagem anterior. Para melhor entendimento do algoritmo é necessário que o código esteja indentado corretamente. Organize o seu código e poste ele diretamente na postagem (sem anexo)... basta clicar no botão <>, cola o código texto e inserir. Resumindo: indente seu código e poste ela usando a tag CODE (botão <>). 3) GERAÇÃO DE NÚMEROS ALEATÓRIOS No seu código você está usando: Mas veja, o vetor cores vai de 0 a 5, ou seja, são 6 posições!! Dessa forma só está sorteando 5 números: 0 a 4. E o 5? Se tiver dúvidas, pouco sobre o Randi() aqui: http://www.apoioinformatica.inf.br/produtos/item/30-as-funcoes-do-visualg-versao-2-0 Qualquer coisa dá um Google. 4) VARIÁVEIS "MENU" Para que servem essa variáveis menu1, menu2, menu3? Onde estão ou deveriam está sendo usadas.. na minha postagem anterior cheguei a comentar sobre elas: 5) VARIÁVEL CONT Pelo que eu vi, a variável cont é desnecessária, apenas use: jogador_atual<-jogador_atual+1 6) GERAÇÃO DA SENHA Dá para juntar e deixar um para só... após sortear, exibe o número. **** Lembrando: todos os pontos são importantes!!! Não dá para pular etapas, senão embola tudo!! Quanto maior o programa, mais difícil fica identificar os erros e tentar corrigir... o algoritmo já deve ir iniciando com os conceitos "certos".. Antes de qualquer coisa coisa... corrija o item 1 desta postagem! Aproveita já fazendo com item 2. Só após isso, tente corrigir os outros aos poucos! No aguardo.
  2. Java

    Caro usuário, Seja bem-vindo ao Fórum do Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware
  3. VisuAlg

    Olá @Atailson Silva. Seja bem vindo ao Fórum do Clube do Hardware. Tem pelo menos essas duas formas: 1- Fazendo a verificação utilizando 14, como sugerido por @Imakuni, já que todo número dividido por 7, e que ao mesmo tempo é par, necessariamente é dividido por 14. Entretanto, acho que seria interessante demonstrar isso de alguma forma, ou seja, provando essa equivalência. Entendo que enunciado está especificando uma forma de "calcular". Ao "simplificar" essas duas condições em uma, seria necessário demonstrar que de fato são equivalentes... entende? Talvez essa equivalência seja trivial para gente... mas para outros pode não ser tão clara.. pior, pode ser que não seja verdadeiro. Poderia por exemplo deixar um comentário no código explicando essa equivalência, e a partir daí usar o 14. 2- Fazendo a verificação como imaginou, ou seja, verificando se o número é divisível por 7 e também de se é par. A paridade pode ser feita com o mod mesmo. Para esse caso, tente primeiro apenas verificar se é par ou não. Depois de entender o processo, junto com a condição de ser divisível por 7. A minha sugestão seria fazer nas duas formas. Faz com uma... deixa pronto.. depois faz a outra. No aguardo.
  4. visualg

    Olá @Pablo Nascimento barbosa. Seja bem vindo ao Fórum do Clube do Hardware. Podemos ajudar... em qual parte está com dúvidas? adicionado 30 minutos depois Para ajudar, alguns pontos: 1- você inverteu as coordenadas. São "100 posições por 10 atributos cada", pelo menos está lendo os dados assim. (e não 10 por 100, ou então ajuste o código) 2- o programa deve está em laço de repetição, pois ao escolher uma opção e finalizar, deve voltar para o menu para poder escolher outra... até que selecione sair; Esses dois ponto já adianto: algoritmo "agenda de endereços" var {Agenda :vetor [1..10,1..100] de caractere} //você invertou as coordenadas Agenda :vetor [1..100,1..10] de caractere tipo_op:inteiro inicio repita escreval("Qual operação deseja fazer?:") escreval("1-Adicionar") escreval("2-Consultar") escreval("3-Remover") escreval("4-Listar") escreval("5-Finalizar") leia(tipo_op) se tipo_op = 1 ENTÃO escreval ("Informe o nome:") leia (Agenda[1,1]) escreval("Informe o endereço:") leia (Agenda[1,2]) escreval("Informe o número:") leia(Agenda[1,3]) escreval("Informe o complemento:") leia(Agenda[1,4]) escreval("Informe o bairro:") leia(Agenda[1,5]) escreval("Informe o Cep:") leia(Agenda[1,6]) escreval("Informe a Cidade:") leia(Agenda[1,7]) escreval("Informe o Estado:") leia(Agenda[1,8]) escreval("Informe o Telefone:") leia(Agenda[1,9]) escreval("Informe o e-mail para contato:") leia(Agenda[1,10]) fimse se tipo_op = 2 ENTÃO escreval("") fimse se tipo_op = 3 ENTÃO fimse se tipo_op = 4 ENTÃO escreval("Os contatos da agenda são:") {escreval(Agenda[1..10,1..100])} //faz sentido, mas não é assim que funciona fimse se tipo_op = 5 ENTÃO fimse ate tipo_op=5 fimalgoritmo Daí é preciso fazer outros ajustes... como: 3- Usar um "controlador" para "controlar" a posição do novo cadastro, ou seja, a cada novo cadastro, atualizar esse contador para quando for cadastro o próximo não cadastrar por cima. Declara uma variável, como por exemplo: pos_cadastro: inteiro; 4- Na hora de listar, você precisar percorrer as posição do vetor... indo de 1 até o total de cadastros já feitos.. isso para primeira coordenada. Assim como seus respectivos dados que deseja mostrar lá na segunda. Por ai vai. No aguardo.
  5. Caro usuário, Seja bem-vindo ao Fórum do Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware
  6. Caro usuário, Seja bem-vindo ao Fórum do Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware
  7. Caro usuário, Seja bem-vindo ao Fórum do Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware
  8. Um dos pontos que também é importante verificar se a regra dos primos é apenas para números naturais ou se vale também para números negativos!!! O Wikipedia mesmo fala de negativos: https://pt.wikipedia.org/wiki/Número_primo Se números negativos também são válidos, o algoritmo terá que ser adaptado!!! Existem outras melhoras possíveis... consegui imaginar essas agora: 1- se for par não é primo; (não precisa fazer conta, apenas se for o 2, é claro). 2- ao encontrar o terceiro divisor para de fazer as contas (lembrando que SEMPRE já começa com 2: 1 e ele mesmo); 3- começar as divisões a partir do 3; 4- fazer divisões usando apenas números ímpares (pois o número é ímpar!. obs.: ideal seria primos, mas.....)
  9. VisuAlg

    Olá @Johannfer. Primeiramente creio que precisa ajustar alguns conceitos aplicados no código. 1) INDENTAÇÃO DE CÓDIGO Seu código até que está parcialmente indentado, mas alguns espaçamentos estão fora do compasso... a minha sugestão seria usar 3, e somente 3, espaços para cada "dente". Para facilitar tente configurar a tabulação do VisuAlg. - Vá no Menu "Manutenção/Configurações" - Na guia "Editor", desmarque a opção "Usar tabulação inteligente", e deixe a "largura de tabulação" em 3. 2) DECLARAÇÃO DE PROCEDIMENTO Você está declarando o procedimento dentro do corpo do programa principal... o VisuAlg até está aceitando, só não sei se é por bug ou se é um funcionalidade... Enfim... a mais "normal" seria declarar antes do INICIO do programa principal... algo assim: Algoritmo "trab" Var menu, menu1, menu2, menu3, contador1, jogador_atual, contador2, jogada, i, erro, identificador, identificar, certos, x, contador3, j, aux: inteiro cores: vetor [0..5] de inteiro //numero que identifica as cores senha: vetor [1..4] de inteiro // senha sorteada pela maquina jogadas: vetor[1..10, 1..4] de inteiro // matriz que armazena todas as 10 jogadas pontos_jogadores: vetor [1..10] de inteiro // ranking houveTroca: logico Procedimento Menu1 inicio Escreval("") Escreval("O que você deseja fazer no jogo?") Escreval("") Escreval("1- Definir jogador") Escreval("2- Jogar") Escreval("3- Ranking") Escreval("4- Sair") Leia (menu) FimProcedimento Inicio cores[0] <- 1 cores[1] <- 2 ... 3) ESTRUTURA DE SELEÇÃO No seu código, você está lendo a opção do menu antes de cada verificação de condição, mas deveria "entrar no menu" uma vez só... ou seja, verifica qual opção ele escolheu, daí usa os se para "selecionar" a opção ele fez. Mais abaixo complemento quando falar de menus... 4) USO DE MENUS Menu é um conceito... é uma abstração de como é utilizado na vida real.. basicamente é constituído de um laço de repetição, lista de opções, variável para obter a opção escolhida e uma estrutura de seleção (se ou caso) para selecionar qual parte do código será executada. Resumidamente, o código poderia ficar algo assim: Algoritmo "trab" Var menu, menu1, menu2, menu3, contador1, jogador_atual, contador2, jogada, i, erro, identificador, identificar, certos, x, contador3, j, aux: inteiro cores: vetor [0..5] de inteiro //numero que identifica as cores senha: vetor [1..4] de inteiro // senha sorteada pela maquina jogadas: vetor[1..10, 1..4] de inteiro // matriz que armazena todas as 10 jogadas pontos_jogadores: vetor [1..10] de inteiro // ranking houveTroca: logico Procedimento Menu1 inicio Escreval("") Escreval("O que você deseja fazer no jogo?") Escreval("") Escreval("1- Definir jogador") Escreval("2- Jogar") Escreval("3- Ranking") Escreval("4- Sair") Leia (menu) FimProcedimento Inicio cores[0] <- 1 cores[1] <- 2 cores[2] <- 3 cores[3] <- 4 cores[4] <- 5 cores[5] <- 6 repita {LimpaTela} //limpa a tela Escreval("=================================================================") Escreval("===========================JOGO SENHA============================") Escreval("=================================================================") Escreval(" Autores: Laura Johann, Douglas Madruga e Henrique Dahlem.") Escreval("=================================================================") Escreval("") Menu1 SE (menu = 1) ENTÃO //DEFINIR QUEM VAI JOGAR FimSE SE (menu = 2) ENTÃO // JOGO FimSE SE (menu = 3) ENTÃO //RANKING FimSE SE (menu = 4) ENTÃO FimSE ate menu=4 FimAlgoritmo obs.: pelo que eu vi as variáveis menu1, menu2 e menu3 não estão sendo usadas, logo não devem ser declaradas. *** Tente corrigir esses pontos, daí partimos para questão do ranking. Faça o jogo completar normalmente algumas vezes numa mesma execução... Tente imaginar (sem implementar ainda) que ao fim de cada jogo o programa irá armazenar os dados da partida.. no momento oportuno irá tratar esses dados para exibir como um ranking. RESUMINDO: faça o programa rodar como se não existisse ranking! o que importa antes é o jogo. No aguardo.
  10. Olá, alguns pontos: 1- Teoricamente o if v > 0 then dentro do for não tem utilidade, pois se o for foi executado é porquê v é maior ou igual a 1, logo nunca a condição dele será falsa. Talvez poderia inverter, ou seja, deixar o for dentro desse if, mas acho que é desnecessário pois o for já verifica (seria bom fazer testes). 2- Ao executar o programa, o mesmo não apresenta qual a sua finalidade e nem, de certo modo, qual foi a resposta, ou seja, apenas está solicitando um número e retornado uma resposta em inglês... (true ou false). Sugestão: peça para outra pessoa executar esse código sem que ela saiba do que se trata. (seria bom ter um apresentação e exibir uma resposta mais específica) 3- Em relação a resposta, poderia ser algo como "O número 'X' é primo" ou simplesmente "Primo". (e os casos contrários, é claro). Ai tem várias formas como tratar, ex.: if primo(valor) then //observe que "primo()" já retorna true ou false, logo não precisa igualar a "true" writeln('xxxxxxx') else writeln('yyyyyy') Qualquer coisa posta o "novo" código para analisarmos ou apenas um feedback. No aguardo.
  11. Caro usuário, Seja bem-vindo ao Fórum do Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware
  12. Caro usuário, Seja bem-vindo ao Fórum do Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware
  13. Pascal

    Você declarou o vetor com 4 posições, mas está tentando usar 5.
  14. Pascal

    Qual o compilador que está utilizando? estou utilizando o Free Pascal Compiler 2.6.4 e aqui funcionou normalmente! obs.: favor se atentar no item 1) da minha postagem anterior. Não consegui identificar nada no código que possa levar a essa "falha". Pode ser alguma coisa relacionada com o seu compilador... Aqui está funcionando normalmente... veja, alguns compiladores necessitam que salve o código antes de compilar, ou seja, pode está utilizando um arquivo antigo. Não tem problema... esses valores de i e j podem ser reutilizados quantas vezes quiser... a ideia é que eles sirvam como base do for, e que esses valores não precisam ficar armazenados... veja, o seu m e p são reutilizados no seu código... isso não tem problema, pois o valores deles "não são dados", ou seja, podem ser perdidos. tipo, você utilizou lá no primeiro for, após o fim dos laços, o valor de m não importa, a variável pode ser reutilizada depois, entende? Daí vem a "convenção".. se é para controlar uma laço, use i, se for um laço dentro do outro, use i e j. Poderíamos dizer que esses identificadores seriam utilizados nesses contexto de "auxiliares". Fazendo uma analogia, por quê utilizamos "x" nas equações do segundo grau? por quê na física utilizamos "t" para tempo, "f" para força etc? é apenas uma convenção, poderia ser qualquer letra! mas assim ajudar a padronizar. resumindo: pode utilizar i e j sem problema. obs.: isso é apenas uma "conversão", ou seja, é uma recomendação.. a não ser que o contexto permita usar outras letras, por exemplo, quando está trabalhando com matrizes... lá na matemática, é também "convencionado" utilizar MxN para linhas e colunas, daí ficaria sensato utilizar M e N como controladores no programa... as letras fazem sentido com o contexto... ou seja, seria interessante tanto usar i e j, tanto m e n. (eu usaria m e n). Por ai vai No aguardo.
  15. Pascal

    Olá @Whillis. Qual erro está dando? qual parte não está funcionando? Para adiantar... Ao compilar o seu código, de cara o compilador (Free Pascal) acusa "Error: Identifier not found "i", ou seja, que não conseguiu encontrar o identificar do i. Que pelo contexto que ele não foi declarado... ou está sendo usado por engano... Outro pontos: 1) READ x READLN Resumidamente: não use read, use apenas readln. Um pouco sobre aqui: 2) CONTROLADOR DO VETOR No seu código você está utilizando m para controlar o vetor, e ao mesmo tempo está utilizando o i para controlar o for. Perceba que em cada loop ambos estarão com o mesmo valor... ou você troca o i para m, ou utiliza o i no lugar do m. (por padronização, recomendam-se usar o i.. Abaixo comentado sobre). 3) CONTROLADOR DE LAÇOS Interligado a questão de controlar os vetores, essas variáveis que controlam eles estão sendo manipuladas pelo for, geralmente são declarados como i e j. Não é obrigado, mas seria recomendado. É uma "convenção". Ou existe alguma relação em usar m e p? 4) AGUARDAR FECHAMENTO A depender do compilador, ao chegar no end. o programa é encerrado na hora, ou seja, pode não dar tempo de ler as últimas mensagem na tela. Para aguardar, usam-se um readln ou rearkey antes dele. Ex.: for m:=1 to 5 do begin write('(',vetor[m],')'); end; readln; readln; end. obs.: como o seu código está usando read (sem o ln) para ler os dados, talvez seja necessário usar 2 readln, como código acima (pois um readln "finalizará o read" e o outro servirá para aguardar um ENTER). Se você usar readln, como sugeri no item 1), ai só vai precisar se um (o que vai aguardar o ENTER antes de fechar). 4) INDENTAÇÃO Sempre mantenha o seu código indentado... é de suma importância. Ex.: program Exercicio; uses CRT; var vetor: array[1..4] of integer; m,p, menor : integer; begin writeln(''); writeln('Ex. Sistema composto (para e vetor)'); m:=1; for i:=1 to 5 do begin writeln('insira um valor na posição: ', m); read(vetor[m]); m:=m+1 end; for m:= 1 to 5 do begin for p:= 1 to 5 do begin if (vetor[p] > vetor[m]) then begin menor:= vetor[m]; vetor[m]:=vetor[p]; vetor[p]:=menor; end; end; end; for m:=1 to 5 do begin write('(',vetor[m],')'); end; end. *** No aguardo.