Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • 0
Temóteo Francisco

Algoritmo_pascal

Pergunta

Alguém resolve aí pra mim pq eu fiz exatamente o que tava no livro e mesmo assim o código não segue;ele para quando termino de enviar os dados pra recebimento,por favor me ajudem !

 

program patrao;
var Aumento,sal,SN:real;
    No:string ; Idade,AT,P:Integer ;
begin
  WriteLn('Digite sua idade');
  readln(Idade);
  WriteLn('quantos anos trabalhados? ');
  ReadLn(AT);
  WriteLn('Qual o valor do seu salário? ');
  ReadLn(sal);
  case Idade of
    0..25:
    begin
      case AT of
      0..3: P:= 5;
      4..6: P:= 10;
      else
      P:= 15;
      end;
    end;
   
    26..35:
      begin
      case AT of
      0..9: P:= 20;
      10..15: P:= 25;
      else
      P:= 30;
      End;
    end;
    else
    begin
      case AT of
      0..10: P:= 30;
      11..20: P:= 40;
      21..30: P:= 50;
      31..40: P:= 60;
      else
      begin
        P:= 70;
      end;
    end;
  end;
  Aumento:= (P/100)*sal;
  SN:=sal + Aumento;
  WriteLn('seu antigo salario era de R$:',sal);
  Writeln('a porcentagem de aumento recebida foi de: ',Aumento:1:1,'%');
  writeln('seu novo salario e de R$:',SN); 
  readln;
end;
end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta


  • Conteúdo Similar

    • Por FILIPEINFORMATICA10
      uses Crt; var X, Y : Integer; begin Writeln ('Entre com dois Números:'); { Mostra na tela a mensagem} Readln (X, Y); { Lê os dois números } If (X = Y) Then {Condição - SE X for igual a Y} Begin {INICIO - Repare abaixo que existe duas instruções, dois comandos Writeln, por isso estão entre BEGIN e END} Writeln ('X é igual que Y'); Writeln ('O Valor de X é =', X); End; {FIM} end.
    • Por flavionorvel
      #include <stdio.h>
      #include <stdlib.h>
      // Limites de tamanhos
      #define MINIMO 2
      #define MAXIMO 50
      // Variáveis globais
      int opcao = 0;
      int linhas = MAXIMO;
      int colunas = MAXIMO;
      int matrizA[MAXIMO][MAXIMO];
      int matrizB[MAXIMO][MAXIMO];
      void limpar_tela();
      // Retorna resposta do usuario se quer rodar novamente
      int rodar_novamente()
      {
      int opcao = 0;
      printf("\n\nDeseja rodar novamente? Digite 1 para SIM e 0 para Não: ");
      scanf("%d",&opcao);
      if (opcao == 1 || opcao == 0) {
      return opcao;
      }
      printf("\nOpcao invalida. Escolha novamente.");
      return rodar_novamente();
      }
      // Recebe valor inteiro do usuario
      int receber_numero()
      {
      int numero = 0;
      scanf("%d",&numero);
      if (numero >0) {
      return numero;
      }
      printf("\nNúmero inválido. digite um número positivo.: ");
      return receber_numero();
      }
      // Valida tamanhos de linhas e colunas
      int validar_tamanhos(int linhas, int colunas)
      {
      if ((linhas >= MINIMO && linhas <= MAXIMO) && (colunas >= MINIMO && colunas <= MAXIMO) && (linhas !
      = colunas)) {
      return 1;
      }
      printf("\nLinhas e Colunas devem ser diferentes e ter valores entre %d e %d. Tente
      novamente.",MINIMO,MAXIMO);
      return 0;
      }
      // Preencher matriz
      void preencher_matriz(int matriz[MAXIMO][MAXIMO], int linhas, int colunas)
      {
      int i,j;
      for (i = 0 ; i < linhas ; i ++) {
      for (j = 0 ; j < colunas ; j ++) {
      printf("\nDigite um valor inteiro para a posicao %d-%d da matriz A: ",i,j);
      matriz[j] = receber_numero();
      }
      }
      }
      // Imprimir matrizes
      void imprimir_matrizes(int matrizA[MAXIMO][MAXIMO], int matrizB[MAXIMO][MAXIMO], int linhas, int
      colunas)
      {
      int i,j;
      limpar_tela();
      printf("\n\nMATRIZ A\n");
      for (i = 0 ; i < linhas ; i++) {
      for (j = 0 ; j < colunas ; j ++) {
      printf("\nMATRIZ A POSICAO %d-%d: %d",i,j,matrizA[j]);
      }
      }
      printf("\n\nMATRIZ B (TRANSPOSTA DE A)\n");
      for (i = 0 ; i < colunas ; i++) {
      for (j = 0 ; j < linhas ; j ++) {
      printf("\nMATRIZ B POSICAO %d-%d: %d",i,j,matrizB[j]);
      }
      }
      }
      void limpar_tela()
      {
      system("@cls||clear");
      }
      // Laço principal
      int main()
      {
      int i,j;
      do {
      //Inicializar variáveis
      opcao = 0;
      linhas = 0;
      colunas = 0;
      i = 0;
      j = 0;
      do {
      printf("\nEntre com o tamanho para linhas: ");
      linhas = receber_numero();
      printf("\nEntre com o tamanho para colunas: ");
      colunas = receber_numero();
      } while (!validar_tamanhos(linhas,colunas));
      // entrar com valores para a matriz A
      preencher_matriz(matrizA, linhas, colunas);
      // criar matriz transposta de A
      for(i = 0 ; i < linhas ; i ++) {
      for(j = 0 ; j < colunas ;j ++) {
      matrizB[j] = matrizA[j];
      }
      }
      // Imprimir matrizes
      imprimir_matrizes(matrizA,matrizB,linhas, colunas);
      // Pergunta ao usuário se quer continuar
      opcao = rodar_novamente();
      } while (opcao == 1);
      }me 

       
    • Por AnotherSunset
      Boa noite/dia gente. Preciso de ajuda aqui. Tenho um exercício no qual tenho de fazer um programa em pascal com o seguinte enunciado:
      Considere a soma S dos termo da série infinita apresentada abaixo:

      Fazer um programa em Free Pascal que calcule o valor aproximado da soma S dos termos da série até o momento em que a diferença das normas (módulo) de 2 termos consecutivos for menor que 0,000001 ({i.e.}, norma da diferença das normas de dois termos consecutivos).
       
      Segue meu algoritmos/programa:
       
      program calcserie;
      var
         soma, a1, a2, an  : real;
         sinal                : longint;
         cont, n, fat         : integer;
      begin
         n := 0;
         a1 := 1;
         a2 := 0;
         soma := 0;
         cont := 1;
         fat := 1;
         an := 1;
         sinal := 1;
         while (an) > 0.000001 do
            begin
            n := n + 2;
              while cont <= n do
                  begin
                  fat := fat * cont;
                  cont := cont + 1;
              end;
           soma := (soma + (a1 * sinal));
           sinal := sinal * -1;
           a2 := a1;
           a1 := ((1/fat));
              if (a2 < 0) then
              an := (a2 * -1) - a1
              else if (a1 < 0) then
              an := (a2) - (a1 * -1);
              end;
         write (soma:0:15);
      end.
       
      Meu erro está sendo a partir da 3 casa decimal

    • Por viniciusSantana
      Boa noite meu problema é '$' que sempre da na ultima linha esta ai o codigo
       
       
      Program Pzim ;
      var nome:string;
              sangue:string;
              idade:integer;
      Begin
      writeln('Escreva seu nome aqui ');
      read(nome);
      writeln('Digite sua idade ');
      read(idade);
      writeln('Digite seu tipo sanguineo ');
      read(sangue);
      if sangue=Apositivo then
      write('Você ',nome,'tem);
      End.
    • Por Hatepascal
      program divisao;
      /*ME AJUDEM POR FAVOR, ESTOU FICANDO LOUCO!
      Questão:
      faça uma calculadora onde o usuario entre com 2 numeros
      e secolha a operacao desejada, multiplicao ou divisao.
      voce devera mostrar o resultado e depois perguntar se
      ele deseja realizar a operacao novamente.
      sei que isso usa o comando while,porem nao estou
      conseguindo entender a logica,pelo que parece
      algem resolve para mim? grato.
      */
       
      var m,d, n1, n2: real;
          continuar :string;
          escolha:char;
      begin
        d := 0;
        m :=0;
        continuar := 'sim' ;
        while continuar = 'sim' do
        Begin
        writeln('digite o primeiro numero: ');
        readln(n1);
        writeln('digite o segundo numero');
        readln(n2);
        WriteLn('escreva d para divisao ou m para multiplicacao');
        readln(escolha);
          if escolha = 'm' then
          begin
            m := n1 * n2;
          end;
          if escolha = 'd' then
          begin
            d := n1 / n2;
            end;
          write('resultado multiplicação : ');
          writeln(m);
          write('resultado divisão : ');
          writeln(d);
         
          writeln('deseja continuar , sim? ');
          readln;
          end;
          end.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.