Ir ao conteúdo
  • Cadastre-se

Simon Viegas

Membro VIP
  • Posts

    3.940
  • Cadastrado em

Tópicos solucionados

  1. O post de Simon Viegas em Função "for" não funciona. foi marcado como solução   
    Olá @Code guy.
     
     
    Você inverteu o sinal... seria "<" em detrimento do ">", ou seja, aquela posição no meio do for funciona como um "enquanto a condição resultar em verdadeiro", como o i começa com 0, a condição i>100 já seria falsa, por isso "pulou" o for.
     
     
    No aguardo.
     
  2. O post de Simon Viegas em VisualG não consigo resolver o exercício foi marcado como solução   
    Olá @leandromichetti.
     
    Faltou o comando fimAlgoritmo e você colocou uma "/" depois do cust.
     
    Ficaria algo assim:
    algoritmo "exercicio11" var cust, perc, total: real inicio Escreval("<><><><><><><><> TABELA DE CUSTOS <><><><><><><><><><><>") Escreva("Qual o preço de custo do produto? R$:") Leia(cust) Escreva("Qual o valor do percentual aplicado? R$:") Leia(perc) Escreval("") {Total <- cust + (cust/*perc/100)} // a fórmula está errada... especialmente na combinação de comandos "/*" Total <- cust + (cust*(perc/100)) Escreval(" O valor de venda do produto é R$:",total) fimAlgoritmo //comando necessário para finalizar o algoritmo OBSERVAÇÃO: A ordem da execução das operações no Visualg é igual na matemática, ou seja, segue o PEMDAS. Nesse sentido, os parênteses poderiam até não ser utilizado, pois primeiro iria multiplicar, depois dividir, depois adicionar... e o resultado seria o mesmo (mas nem sempre dá certo. Considero como coincidência). Entretanto, seguindo um raciocínio lógico, inseri um parêntese para "formalizar" a ordem dos cálculos e garantir que a conta esteja certa... calcula primeiro a porcentagem, depois calcula o valor do acréscimo multiplicando o custo por essa porcentagem, para depois adicionar ao custo e obter o total.
     
    Qualquer dúvida é só postar.
     
    No aguardo.
  3. O post de Simon Viegas em Array [Dúvidas] foi marcado como solução   
    Falta ajustar o 2 bimestre:
      //Insira as notas do Segundo Bimestre  //  for i:=1 to 3 do  
    Aproveitando, abaixo um sugestão para organização:
    for i:=1 to 3 do begin ClrScr; write ('Digite a nota do Segundo Bim de Matemática para ',alunos[i],': '); readln(mat [2,i]); write ('Digite a nota do Segundo Bim de Português para ',alunos[i],': '); readln(port[2,i]); write ('Digite a nota do Segundo Bim de histórias para ',alunos[i],': '); readln(hist[2,i]); write ('Digite a nota do Segundo Bim de Geografia para ',alunos[i],': '); readln(geo [2,i]); write ('Digite a nota do Segundo Bim de Ciências para ',alunos[i],': '); readln(cie [2,i]); end;  
    ***
     
    Faltou identar lá nos if finais..
    for i:=1 to 3 do // Este é o Quadro da média begin ClrScr; gotoxy(5, 5); //média de Matemática if ((mat[1,i]) + (mat[2,i])) / 2 >= 6 then writeln('A média de Matemática do ', alunos[i] ,' foi ', ((mat[1,i] + mat[2,i]) / 2):0:2 ,' portanto ele foi APROVADO!') else writeln('A média de Matemática do ', alunos[i] ,' foi ', ((mat[1,i] + mat[2,i]) / 2):0:2 ,', portanto ele foi REPROVADO!');  
    ***
     
     
     
    Sobre usar o TextColor() eu já comentei anteriormente...

    ***
     
     
    O if, assim como o else (assim como o For, While etc) só se associa a um comando, caso precise associar a mais de um, precisa usar o begin/end. Aqui aproveito mais uma vez para comentar sobre a importância da identação (estou me baseando pelo que está no fórum)

    - A forma como está, veja acima.
    - Identando, ficaria assim:
    if ((mat[1,i]) + (mat[2,i])) / 2 >= 6 then writeln('A média de Matemática do ', alunos[i] ,' foi ', ((mat[1,i] + mat[2,i]) / 2):0:2 ,' portanto ele foi ') //o if termina aqui!!! TextColor(green) writeln('APROVADO!') else //esse else não está vinculado a nada... writeln('A média de Matemática do ', alunos[i] ,' foi ', ((mat[1,i] + mat[2,i]) / 2):0:2 ,', portanto ele foi REPROVADO!'); Perceba que só o writeln está dentro do if e como está utilizando else, vai dar erro, pois else tem que vir logo após a estrutura do if, e não de um comando "solto"... como está identado, só olhando para o código dá para ver que está errado... (no mostrado na citação acima não dá, tem que analisar linha por linha ou, como eu faço, idento primeiro)

    Em relação a "estrutura" (não corrigir nem testei o código, apenas deixei compilável)
    if ((mat[1,i]) + (mat[2,i])) / 2 >= 6 then begin writeln('A média de Matemática do ', alunos[i] ,' foi ', ((mat[1,i] + mat[2,i]) / 2):0:2 ,' portanto ele foi '); TextColor(green); writeln('APROVADO!'); end //fim do if else writeln('A média de Matemática do ', alunos[i] ,' foi ', ((mat[1,i] + mat[2,i]) / 2):0:2 ,', portanto ele foi REPROVADO!'); Agora o if em vez ter apenas UM comando, passou a ter UM bloco... o restante é já sabido..
    ***

    No aguardo.
  4. O post de Simon Viegas em Duvida sobre Arquivo txt Pascal foi marcado como solução   
    Olá.
     
    Podemos ajudar... tem pelo menos duas formas: utilizando arquivos de texto, que seria um TXT. Ou utilizando arquivos binários. Cada um tem suas vantagens e desvantagens...
     
    Primeiramente você precisa deixar o seu código basicamente pronto utilizando a memória ram (no modo convencional, sem arquivos)... a depois converte o código para utilizar arquivos...
     
    Por favor, poste o seu código atual e onde tem dúvidas para deixar em funcional... após tentamos passar utilizar arquivos.
     
     
    No aguardo.
  5. O post de Simon Viegas em Faça a tabuada deste número de 1 a 10, alguem me ajuda? foi marcado como solução   
    Olá.
     
    Você poderia usar uma estrutura de seleção (if), ou seja, só exibe a tabuada se o número for diferente de "0".
     
    PS: se quiser aproveitar, poderia criar um if que verifica se está na faixa de 1 a 10.
  6. O post de Simon Viegas em Implementação de Herança foi marcado como solução   
    Olá.
     
    Creio que usar private ou não é uma questão de padrão de projeto. Se você precisa encapsular, vai usar private mesmo e acessar via getter e setter... senão, usa da forma que ficou acordado.
     
    Eu não lembro como seria, mas acho que pode ser algo como super.getNomeDoAtributo() ou super().getNomeDoAtributo(). Não sei dizer se funciona da um getNomeDoAtributo() direto na subclasse.. Testa ai...
     
    Outra coisa, usar um constrututor ou não, também depende da sua proposta... você pode criar diretamente pelo super mesmo, passando os parâmetros, ou pelos setters... como você já tem todos os dados, seria mais sensato pelo construtor...
     
    No aguardo.
  7. O post de Simon Viegas em [Pascalzim/Pzim] Como verificar a existência de um ficheiro? foi marcado como solução   
    Olá.
     
     
    Como você já deve saber, o PZim é apenas uma IDE/Compilador que utiliza uma linguagem, no caso Pascal.
     
    Vamos lá. Imagino pelo menos duas possibilidades para verificar se o arquivo já está criado:
    utilizando o FileExists(); utilizando o IOResult; (tenta abrir o arquivo, se o IOResult retornar um valor diferente de 0, deu rúim!) Obs. 1: Creio que o FileExists() não funciona no Pascal Zim (a ferramenta tem algumas limitações), mas de qualquer forma vale a pesquisada;
    Obs. 2: Cada código retornado pelo IOResult significa alguma coisa. Na intermet deve ter uma tabela... para o seu programa em si, basta saber se foi 0 ou não.
     
    No aguardo.
  8. O post de Simon Viegas em Erro com fatorial foi marcado como solução   
    Olá.

    Essa postagem é inicialmente apenas para sugestões de correções de alguns detalhes... ok?

    Abaixo seu código até o momento. (juntei o original com correção da sua última postagem)
     
     
     
    Vamos lá:
     
    1) Sobre o método ProcessaNumero();
     
    Veja a declaração do método ProcessaNumero().
    public double ProcessaNumero(String Mensagem) { Ou seja, ele RETORNA um double. Mas você está usando:
     
    } ProcessaNumero(txt.getText()); //<-- aqui! JOptionPane.showMessageDialog(null, "O fatorial do número " + num + " é: " + fator); } else { Para onde está indo o retorno??? Se você não vai utilizar ele, o método teria que ser void. Entende?
     
    Então, na verdade, acho que o método está no caminho certo, mas o uso que está errado. A ideia do ProcessaNumero é "tentar fazer a conversão, e retornar o valor convertido nela mesma. E caso não consiga, exibir uma mensagem de erro". Mas durante o programa, você está usando um tal de Double.parseDouble(). Ora! Se eu tenho um método que PROCESSA O NÚMERO, por quê eu vou tentar processar eu mesmo? Resumidamente: Use apenas o ProcessaNumero() para converter o número e pronto!
     
    Algo como:
    num = ProcessaNumero(txt.getText()); E após isso verifica a sua flag (variável de controle, no caso o processou), entende?
     
     
     
    2) Sobre o método Fatorial().
     
    Ué? para que ele foi criado? Experimente apagar o método e compilar para ver o que acontece... (o método não está sendo usado)
     
    Então, ai cai na mesma lógica anterior... o método está mais ou menos já estruturado, falta usar!
     
    Obs.: acho que precisa ajustar ela, pois acredito que não é bom utilizar variável globais em procedimentos, ou seja, talvez seria utilizar variável locais (declaradas dentro do método) e que o valor para cálculo seja repassado por parâmetro...
     
    No aguardo.
  9. O post de Simon Viegas em Algoritmo no VisualG que calcula temperatura não funciona os cálculos foi marcado como solução   
    Olá.
     
    1)
    Em relação a seleção, a ideia é a mesma. A diferença é que está utilizando números, em vez de caracteres, entende? Veja que não é preciso declarar os números 1, 2, 3 e 4, pois eles são um "dados", e não uma variável.
     
    Poderia ficar algo mais ou menos assim também:
      tempe : literal  num, Z, W, X, Y : real e
    se (tempe = 'C') então obs.: A letra "C" tem que está em maiúsculo para esse caso.
     
     
    2)
    Faltou inserir o SENÃO, já que se trata de proposições mutuamente exclusivas entre si, o que pode ser considerado um erro de lógica. (oras! se foi escolhido o 1, por quê está verificando o 2, 3 e 4??)
     
    Se achar que já está bom desta forma, avisa também que fechamos o tópico.
     
    No aguardo.
     
     
     
     
     
  10. O post de Simon Viegas em Desenvolva um algoritmo que receba os dias da semana e mostre suas tarefas nesse dia . galera preciso disso em pascal ,quem puder ajudar agradeço. foi marcado como solução   
    Olá Victor H Alves.
     
    A ideia é que você tente fazer algo e tire dúvidas aqui no fórum. Pele menos monte estrutura base do programa e indique onde está com dúvidas.
     
    Então.. pelo que eu entendi, precisa fazer uma seleção, ou seja, um if, e exibir a resposta correspondente.
     
    se DOMINGO então escreva "frase de domingo"
    senão se SEGUNDA então escreva "frase de segunda"
    senão se TERÇA então escreva "frase de terça"
    etc
     
    No aguardo.
  11. O post de Simon Viegas em Ajuda Exercício Pascalzim foi marcado como solução   
    Ok.
     
    Obrigado pelo feedback.
     
    Qualquer coisa é só postar...
     
    Abraços
  12. O post de Simon Viegas em Ajuda com exercicio em Pascal foi marcado como solução   
    Olá.
     
    Tenta agora efetuar o próximo..
     
     
    Dica:
    tente usar um if dentro do laço, ou seja, de modo que alternadamente efetue uma adição, subtração, adição, subtração...
     
    PS1: perceba que você precisa verificar uma forma dessa alternância funcionar... por exemplo verificando se o loop atual é par ou ímpar... se ímpar, adição, ser for par, subtração, entendeu? ou outra forma que você imaginar...
     
    PS2: Como pode haver mais de uma instrução no for, seria necessário inserir um begin/end.  (obs.: não necessariamente precisaria, mais para efeito prático, utilize um begin/end, se desejar, depois explico isso caso for necessário...)
    for i := 1 to n do begin end; Depois, tenta fazer o terceiro:
     
     
    No aguardo.
  13. O post de Simon Viegas em Programa com Matriz 4x3 foi marcado como solução   
    Olá.
     
    A dica é simples: mantenha o seu código identado.
     
    No meu padrão ficaria assim:
    BEGINfor i := 1 to 4 do for j := 1 to 3 do begin write('Digite os números: '); readln(mat[i,j]); end;maior:=mat[1,1];pos_mai:=1;pos_maj:=1;for i:=2 to 4 do for j:=2 to 3 do begin if maior<mat[i,j] then maior:=mat[i,j]; pos_mai:=i; pos_maj:=j; end;menor:=mat[1,1];pos_mei:=1;pos_mej:=1;for i:=2 to 4 do for j:=2 to 3 do begin if menor>mat[i,j] then menor:=mat[i,j]; pos_mei:=i; pos_mej:=j; end; soma:=0;k:=0;for i:=1 to 4 do for j:=1 to 3 do begin if mat[i,j] MOD 2=0 then soma:=soma+mat[i,j]; k:=k+1; end;media:=soma/k;writeln('O maior número e ‚: ' ,maior,' e sua posiçao e : ' ,pos_mai ,pos_maj);writeln('O menor numero e ‚: ' ,menor,' e sua posiçao e : ' ,pos_mei ,pos_mej);writeln('A media dos numeros pares e : ',media*2);END. Então, pela estrutura do código, já percebi algo que pode está faltando, ex.:
     
    Será que essas 3 linhas abaixo do if não deveriam está vinculados a ele?
    if maior<mat[i,j] then maior:=mat[i,j]; pos_mai:=i; pos_maj:=j; Se for o caso, precisaria do begin/end.
    if maior<mat[i,j] then begin maior:=mat[i,j]; pos_mai:=i; pos_maj:=j; end; No aguardo.
  14. O post de Simon Viegas em Android Studio - Desativar Layout Relativo e a chatisse! foi marcado como solução   
    Olá Conrado Saud, você poderia responder ao tópico inserindo a nova informação, em vez de editar a postagem em si..

    Como já está solvido, vou marcar como solucionado. Caso necessário, é só abrir uma nova postagem.
     
    Abraços
  15. O post de Simon Viegas em Exercícios de binário em Java. foi marcado como solução   
    Olá.
     
    Está com dificuldade em qual parte?

    Faça algo... Por exemplo, crie um programa que apenas ler um número em binário e exiba os seus dígitos, ex.:
     
    Entrada -->
    10010
    Saída    -->
    1
    0
    0
    1
    0
     
    Em fim, poste o que já conseguiu fazer e onde está com dúvidas.
     
    No aguardo.
  16. O post de Simon Viegas em Ajuda aqui (iniciante) foi marcado como solução   
    Em relação ao código, ok. O tópico será dado como solucionado...
     
    Em relação a "cursos", sugiro fazer pesquisas no fórum, existem diversos tópicos com o mesmo tema. Exemplo de consultas: curso pascal, tutorial, tutorias, etc.... qualquer coisa abre um novo tópico, já que se trata de outro tema...

    Abraços
  17. O post de Simon Viegas em Erro em calculadora foi marcado como solução   
    Olá;
     
    Experimente trocar os read() por readln().
     
    No aguardo.
  18. O post de Simon Viegas em Erro no switch foi marcado como solução   
    Olá a todos.
     
     Creio que o problema atual não seja na metodologia, mas sim na sintaxe...
     
     O problema está nesse jogo de chaves ai... tem trechos de códigos que estão fora do lugar e acho que faltou abrir algumas chaves também (num While, deixei um comentário lá com "[simon Viegas]")...
    Abaixo está seu mesmo código, apenas reindentado de acordo como está a sintaxe... veja e compare com o seu código. Daí, tem achar o erro e ajustar...
     

    package trabalhofuncionario;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner ler = new Scanner(System.in); System.out.println(">>------------>BEM VINDO AO CAD FUNCIONÁRIO!<------------<<"); byte contador = 1; while (contador == 0) { System.out.print("\nInforme a ação conforme abaixo:\n\n1 - Cadastrar novo funcionário\n2 - Sair do programa\nDigite aqui sua opção: "); byte swop = ler.nextByte(); switch (swop) { case 1: System.out.println("Cadastrando novo funcionário"); System.out.println("Digite o nome: "); String nome = ler.next(); System.out.println("Digite o cpf: "); String cpf = ler.next(); System.out.println("Digite o rg: "); String rg = ler.next(); System.out.println("Digite o endereço: "); String endereco = ler.next(); System.out.println("Digite o telefone: "); String fone = ler.next(); String sexo = null; while (contador == 0) { System.out.print("\nEscolha o sexo\n1- Masculino\n2- Feminino\nDigite aqui sua opção: "); contador = ler.nextByte(); switch (contador) { case 1: sexo = ("Masculino"); break; case 2: sexo = ("Feminino"); break; default: System.err.println("Opção inválida"); } System.out.println("Digite o email: "); String email = ler.next(); System.out.println("Digite a quantidade de dependentes: "); int dependentes = ler.nextInt(); System.out.println("Digite a chapa: "); String chapa = ler.next(); System.out.println("Digite o cargo: "); String cargo = ler.next(); System.out.println("Digite o tempo de serviço em anos: "); int tempo = ler.nextInt(); System.out.println("Digite o valor da hora: "); double valorHora = ler.nextDouble(); Funcionario f = new Funcionario(nome, cpf, endereco, fone, chapa, valorHora); f.setRg(rg); f.setSexo(sexo); f.setEmail(email); f.setQtdDependentes(dependentes); f.setCargo(cargo); f.setTempoDeServicoAno(tempo); System.out.println("Digite a carga horaria base: "); f.setCargaHorariaBase(ler.nextDouble()); System.out.println("Digite a quantidade de horas extras: "); f.setQtdHorasExtras(ler.nextDouble()); while (contador == 0) //SERÁ QUE AQUI NÃO TEM UM "ABRE CHAVES??? [Simon Viegas] System.out.print("\nEscolha do Vale Transp\norte conforme abaixo:\n1. Sim, ganha VT\n2. Não, não ganha VT\nDigite aqui sua opção: "); contador = ler.nextByte(); switch (contador) { case 1: f.setOpcaoVt(contador); System.out.println("Digite o valor total de passagem: "); f.setValorTotalDePassagem(ler.nextDouble()); break; case 2: f.setOpcaoVt(contador); break; default: System.err.println("\nOpção inválida"); contador = 0; } byte contador1 = 0; while (contador1 == 0) { System.out.print("\nEscolha o grau de insalubridade\n1- Máximo 40%\n2- Médio 20%\n3- Minimo 10%\nDigite aqui sua opção: "); contador1 = ler.nextByte(); switch (contador1) { case 1: f.setGrauInsalubridade(contador1); break; case 2: f.setGrauInsalubridade(contador1); break; case 3: f.setGrauInsalubridade(contador1); default: System.err.println("\nOpção inválida"); contador1 = 0; } } contador = 0; while (contador == 0) { System.out.print("\nEscolha uma opção:" + "\n1- Mostrar nome e Salário bruto" + "\n2- Mostrar nome e Valor de horas extras" + "\n3- Mostrar nome e Valor VT" + "\n4- Mostrar nome e Valor do INSS" + "\n5- Mostrar nome e valor da Insalubridade" + "\n6- Mostrar nome e valor do Salário Família" + "\n7- Mostrar nome e Valor do plano de carreira" + "\n8- Mostrar nome e Valor total de plano de saúde" + "\n9- Mostrar nome e Valor do salário liquido" + "\n10- Mostrar todos os dados e Calculos do funcionário" + "\nDigite aqui sua opção: "); contador = ler.nextByte(); switch (contador) { case 1: System.out.println("\nNome: " + f.getNome() + "\nSalário Bruto" + f.calcularSalarioBruto()); break; case 2: System.out.println("\nNome: " + f.getNome() + "\nValor de horas extras: " + f.calcularHorasExtras()); break; case 3: System.out.println("\nNome: " + f.getNome() + "\nValor do VT:" + f.calcularVT()); break; case 4: System.out.println("\nNome: " + f.getNome() + "\nValor do INSS: " + f.calcularINSS()); break; case 5: System.out.println("\nNome: " + f.getNome() + "\nValor da insalubridade: " + f.calcularInsalubridade()); break; case 6: System.out.println("\nNome: " + f.getNome() + "\nValor do salário familia: " + f.calcularSalarioFamilia()); break; case 7: System.out.println("\nNome: " + f.getNome() + "\nValor do plano da carreira: " + f.calcularPlanoDeCarreira()); break; case 8: System.out.println("\nNome: " + f.getNome() + "\nValor total do plano de saúde: " + f.calcularPlanoDeSaude()); break; case 9: System.out.println("\nNome: " + f.getNome() + "\nValor do salário liquido: " + f.calcularSalarioLiquido()); break; case 10: System.out.println("\nDados: " + (f) + "\nCalculos: " + "\nCalculo de hora extra: " + f.calcularHorasExtras() + "\nCalculo de salário bruto: " + f.calcularSalarioBruto() + "\nCalculo de VT: " + f.calcularVT() + "\nCalculo de INSS: " + f.calcularINSS() + "\nCalculo de insalubridade: " + f.calcularInsalubridade() + "\nCalculo de salario familia: " + f.calcularSalarioFamilia() + "\nCalculo de plano de carreira: " + f.calcularPlanoDeCarreira() + "\nCalculo de plano de saude: " + f.calcularPlanoDeSaude() + "\nCalcular salario liquido: " + f.calcularSalarioLiquido()); break; default: System.err.println("Opção Inválida"); contador = 1; } int contador2 = 0; break; case 2: //aqui ESTA A LINHA COM ERRO System.out.println("Obrigado pela preferência!"); System.exit(0); break; default: System.err.println("Opção inválida\n"); contador = 0; } } } } }}No aguardo.
  19. O post de Simon Viegas em Pascal, ( Iniciante ) Dúvida foi marcado como solução   
    Olá Lindemberg_santos
     
    Esses colchete, "[ ]", são usados para poder acessar determinada posição dos arrays (vetores).
     
    Assim como temos as variáveis comuns, ex.:
     
    var  nome: string;  idade: interger; Existe também uma estrutura chamada "array", que serve para criar um "conjunto de variáveis". Imaginem que você precisasse de ler 3 nomes diferentes, ex:
     
    var  nome1 :string;  nome2 :string;  nome3 :string; Percebe que criei 3 variáveis, deixei cada nome em uma variável separada... nome1, nome2 e nome3... beleza?

    Mas o Pascal permite "agrupar essas variáveis"...
    var  nomes :array[1..3] of String; Ou seja, um "array" (também conhecido como vetor), com 3 posições... sendo 1, 2 e 3.
     
    Para poder acessar determinada posição, pode utilizar esse tal de "[]". Ex.:
    writeln('Qual o da 2a pessoa?');readln(nomes[2]); O valor que está dentro, é justamente a posição no array... (que varia de 1 a 3. Cada posição é como se fosse uma variável)
     
    No exemplo que você passou, provavelmente a variável venda deva ser um array de duas posições... daí usou uma variável de nome i para poder "percorrer" os seus "slots". Veja que o for está configurado para ir de 1 a 2... logo, o "i" uma hora vai está valendo "1", e depois valerá "2".... seria o mesmo que por exemplo "venda[1].cod_venda);", no outro loop, "venda[2].cod_venda);".. etc
     
     
    Em fim, dê uma pesquisa sobre "array em Pascal"...

    Abraços
  20. O post de Simon Viegas em AJUDA COM PROGRAMA PASCAL foi marcado como solução   
    Creio que ficou tudo certinho...
     
    Só aconselharia dá uma revisada na identação... achei que ficou muito espaçosa...
     
    Existem vários padrões, no meu padrão ficara assim:
     
    PROGRAM cadeia (input{teclado}, output{video});procedure lerValor(var n: integer{s}); begin write(output, 'Digite um valor: '); readln(input, n); while (n < 1) do begin write(output, 'Digite um valor maior que 1: '); readln(n); end; end;procedure exibeLinhas(n: integer{e}); var i, j: integer; begin for i := n downto 1 do begin for j := i downto 1 do write(output, (n-i+1)*(n-i+1), ' '); writeln(output); end; end;var n: integer;BEGINlerValor(n);exibeLinhas(n);readln();END. Obs.: Basicamente o que é "identado" anda duas espaços para direita. E o as linhas dentro do "begin/end" ficam na mesma direção. (não é muito comum fazer isso com o begin/end, mas acho mais econômico e funcional assim).
     
    Qualquer avisa.
     
    Abraços
     
     
  21. O post de Simon Viegas em Programação Pascalzim foi marcado como solução   
    Olá.
     
    1) Leitura de dados
     
    O exercício fala em "Ler dois vetores", creio que esse "ler" esteja se referindo a "coletar do usuário" (que está executando o programa). Para tanto, poderia usar o "readln", em vez de está atribuindo um valor fixo.
     
    2) Criação do 3 vetor
    A definição de como deve ficar o 3º vetor está claro... creio que não precisa de explicações.. mas tente analisar como está o seu código: 
    Sendo que <i> vai de "1 a 15", então teríamos:
    x[1]:=r[1]+s[1];
    x[2]:=r[2]+s[2];
    x[3]:=r[3]+s[3];
    x[4]:=r[4]+s[4];
    ...
    x[14]:=r[14]+s[14];
    x[15]:=r[15]+s[15];
     
    Então, a variável <x>, na posição 1, vai receber o "valor" que contém na variável <r>, na posição 1, mais (somando) com o "valor" que contém na variável <s >,na posição 1;
    a variável <x>, na posição 2, vai receber o "valor" que contém na variável <r>, na posição 2, mais (somando) com o "valor" que contém na variável <s >,na posição 2;
    a variável <x>, na posição 3, vai receber o "valor" que contém na variável <r>, na posição 3, mais (somando) com o "valor" que contém na variável <s >,na posição 3;
    ...
    a variável <x>, na posição 15, vai receber o "valor" que contém na variável <r>, na posição 15, mais (somando) com o "valor" que contém na variável <s >,na posição 15;
    Ou seja, de cara, já dá para percebemos um pequeno erro, pois as variáveis <r> e <s> só vão até 5 e 10 elementos, respectivamente, percebes?
    Ou ponto, é que o problema não está falando em "soma da valares" em nenhum momento... , apenas está determinando quais posições vão valer...
     
    Para facilitar o entendimento do que está sendo pedido, tente fazer somente "Gerar um vetor X de 15 elementos cujas 5 primeiras posições contenham os elementos de R". Só isso!! Nada mais!!! Consegue imaginar como ficará?
     
    Tente fazer isso!!! Coloque para rodar, e veja se deu tudo certinho...
     
     
    Depois de pronto... agora esqueça a primeira parte, e tente fazer somente a segunda: "as 10 últimas posições, os elementos de S."
     
    Depois é só juntar (ou simplesmente fazer as duas coisas em separado: primeiro um, depois o outro... por sinal, nem vai importar a ordem)..
     
     
    No aguardo.
     
    No aguardo.
     
     
  22. O post de Simon Viegas em [Pascal]A respeito de parametros que contêm "Var" em procedures. foi marcado como solução   
    Olá...

    Vou tentar resumir também: 1) COM VAR = se alterar dentro procedimento, altera também na variável original. (funciona como um "link" para variável original)
    2) SEM VAR = alterando ou não dentro do procedimento, a variável original ficará intacta. (funciona como uma cópia apenas do(s) valor(es) da variável original)
    Simples assim...
    COMPLEMENTANDO (clique no botão abaixo):



    No aguardo
  23. O post de Simon Viegas em O algoritmo não finaliza foi marcado como solução   
    Vou tentar resumir minhas sugestões:
     
    1) IMPORTÂNCIA DE UMA BOA INDENTAÇÃO
    Antes de qualquer coisa, você precisar manter o seu código sempre bem indentado.... apesar de aparentar está organizado, creio que não está seguindo corretamente um critério de indentação. Sugiro que corrija e atente-se a isso... é de suma importância;
     
    #
     
    2) ORGANIZAÇÃO DAS VARIÁVEIS
    * 2.1) Discriminação de variáveis
    Como uma boa prática, você não deve usar uma mesma variável para duas (ou mais) funções, ou seja, se é "i" está sendo (foi) usado como "parte da estrutura de for", você não deve usar ela para outra coisa... no máximo poderia usar em outro for.. ou estrutura semelhante...
    O que está em jogo aqui são dois principais detalhes:: a) organização do programa, proporcionando uma melhor clareza. E o uso indevido de variáveis, o que pode proporcionar perdas de dados armazenados e inconsistências. Como é fácil perceber, uma coisa de certo modo leva a outra.
    Sempre tente usar nomes de variáveis sugestivas... como por exemplo para ler as poltronas usar poltronas. O "i" também, como já comentei, já sugere que é um "contador" ou "controlador".
     
    * 2.2) Armazenamento de dados
     Em relação ao que disse o "Math.PI", creio que você não precisa de um array, pois, como o código sugere, a própria posição do cliente sugere/determina qual é a respectiva poltrona dele.
     
    #
     
    No aguardo.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!