Ir para conteúdo
Fórum Script Brasil

Thiago André Cardoso

Membros
  • Total de itens

    69
  • Registro em

  • Última visita

Posts postados por Thiago André Cardoso

  1. Boa noite Danilo,

     

    Creio que o if >> if((a%fat)==0) não necessite ficar dentro do for, pois só precisamos conferir uma única vez.

     

    Se eu entendi bem, seu programa tem que tirar a raiz quadrada e o fatorial de um único numero correto?

     

    Caso seja isso,

    Vamos primeiro verificar se o numero possui raiz exata.

    - Inclua a biblioteca para se usar o método da raiz:

     

    #include <math.h>
    
    int raiz = sqrt(a);

    você deve retornar o valor da raiz para uma variável inteira para depois tirar a “prova dos 9”.

    Agora você vai multiplicar a raizq * raizq e verificar se é igual a (a), caso seja, a raiz é exata.


     

    if (raizq*raizq) == a
    
    {
    
    printf(“Possui raiz exata”);
    
    // aqui, você irá calcular o fatorial, já que o número tem raiz exata.
    
    }
    
    else
    
    {
    
    printf(“Não possui raiz exata”);
    
    }
    

    Não sei se é exatamente isto que quer, mas se não for, esclarece ai que tento ajudar. Mas acho que nessa altura você já tenha feito! Valeu!

  2. //fpc 3.0.0
    //Thiago André Cardoso Silva
    //Git Hub: https://github.com/doctorwho1998
    program funcionario;
    uses crt;
    const
        COL = 2;
        LIN = 10;
    var
        matricula_nome:array[0..(LIN - 1), 0..(COL - 1)] of String;
        salario:array[0..9] of Real;
        jornada:array[0..9] of integer;
        matricula:String;
        q_c,i,j,k,aux_alt,aux_exc,aux_mat:integer;
        cont_cad:boolean;
    
    //-----Pesquisar funcionário-----
    
    procedure pesquisar(mat:String);
    begin
        for i := 0 to 9 do
        begin
           if mat =  matricula_nome[i,0] then
           begin
           writeln;
           writeln('Resultado da busca:');
           writeln('Matricula:    Nome:                  Salário:         Jornada:');
           write(matricula_nome[i][0],'          ');
           write(matricula_nome[i][1],'          ');
           write(salario[i]:00:02,'          ');
           write(jornada[i]);
           writeln;
           writeln;
           end;
        end;
    end;
    
    //-----Pesquisar funcionário-----
    
    //-----Alterar funcionário-----
    
    procedure alterar(mat:String; n:String; sal:real; jor:integer);
    begin
        for i := 0 to 9 do
        begin
           if mat =  matricula_nome[i,0] then
           begin
                matricula_nome[i,1] := n;
                salario[i] := sal;
                jornada[i] := jor;
                aux_alt := aux_alt + 1;
                writeln('Funcionário alterado com sucesso!');
           end;
        end;
        writeln;
        if aux_alt = 0 then
        begin
         writeln('Matricula ',mat,' não encontrada');
         writeln;
        end;
    end;
    
    //-----Alterar funcionário-----
    
    //-----Cadastrar-----
    procedure cadastrar(mat:String; n:String; sal:real; jor:integer);
    begin
        if q_c < 10 then
        begin
        
            for i := 0 to 9 do
            begin
                if mat = matricula_nome[i][0] then
                begin
                    aux_mat := aux_mat + 1;
                end;
            end;
            
            if aux_mat = 0 then
            begin
                matricula_nome[q_c,0] := mat;
                matricula_nome[q_c,1] := n;
                salario[q_c] := sal;
                jornada[q_c] := jor;
                q_c := q_c + 1;
                writeln;
            end
            else
            begin
                writeln('Matricula ',mat,' já cadastrada');
            end;
        end
        else 
        begin
            writeln('Limite de cadastro atingido!');
            writeln;
        end;
    end;
    //-----Cadastrar-----
    
    //-----Excluir-----
    
    procedure excluir(mat:String);
    begin
        for i := 0 to 9 do
        begin
            if mat =  matricula_nome[i,0] then
            begin
                for j := i to q_c do
                begin
                    for k := 0 to COL - 1 do
                    begin
                        matricula_nome[j][k] := matricula_nome[j+1][k];
                    end;
                    salario[j] := salario[j+1];
                    jornada[j] := jornada[j+1];
                end;
            aux_exc := aux_exc + 1;
            end;
        end;
        if aux_exc = 0 then
        begin
            writeln('Matricula ',mat,' não encontrada');
        end
        else
        begin
           q_c := q_c - 1; 
        end; 
    end;
    
    //-----Excluir-----
    
    //-----Listar-----
    procedure listar;
    begin
        writeln('Matricula:    Nome:                  Salário:         Jornada:');
        for i := 0 to q_c - 1 do // for para listar matricula e nome
        begin
            for j := 0 to COL - 1 do
            begin
                write(matricula_nome[i][j],'          ');
            end;
            write(salario[i]:00:02,'          ');
            write(jornada[i]);
            writeln;
            
        end;
    end;
    //-----Listar-----
    
    //---------------------------------------------INÍCIO---------------------------------------------
    begin
        {
        writeln('Digite a matricula do funcionário');
        writeln('Digite o nome do funcionário');
        writeln('Digite o salário');
        writeln('Digite a jornada de trabalho');
        }
        cadastrar('1010', 'José Sobrinho', 5500, 40);
        cadastrar('1011', 'Jovem Célio  ', 2500, 40);
        cadastrar('1011', 'Jovem Thiago ', 2500, 40);
        listar;
        pesquisar('1011');
        alterar('1011', 'Jovem Cesar  ', 2499, 80);
        listar;
        excluir('1011');
        listar;
    end.

     

  3. Este programa irá: 

    | Escrever 10 números aleatórios em um vetor | Ordenar um vetor em ordem crescente | Trocar um valor por outro, caso tenha | inserir um valor na ultima posição |

    //fpc 3.0.0
    
    program vetor;
    var 
        vet:array[0..9] of integer;
        vet_aux:array[0..9] of integer;
        i, j, k, aux_crescente, x, y, ultima:integer;
        
        // Procedimento que irá mostrar o vetor na tela
        procedure mostrar ( vetor : array of integer) ;
            var i : integer;
            begin
                for i := 0 to 9 do
                write(vetor[i], ' ');
            end; 
        // Fim do procedimento
        
    begin
        // laço de for para preencher o array
        for i := 0 to 9 do
        begin
            // colocar um readln para obter os valores do usuário
            vet[i] := random(10);
        end;
        mostrar(vet); // mostra o vetor na tela
        
        // colocar vetor em ordem crescente
        for i := 0 to 9 do
        begin
            for j := 0 to 9 do
            begin
                if vet[i] < vet[j] then 
                begin
                    aux_crescente := vet[i];
                    vet[i] := vet[j];
                    vet[j] := aux_crescente;
                end;
            end;
        end;
        writeln;
        // FIM colocar vetor em ordem crescente
        writeln;
        mostrar(vet);
        //Substituir x por y no array
        x := 7;
        y := 9;
        writeln;
        writeln;
        writeln('Todos os valores ', x, ' Serão trocados por ', y);
        for i := 0 to 9 do 
        begin
            if vet[i] = x then vet[i] := y;
        end;
        writeln;
        mostrar(vet);
        //FIM Substituir x por y no array
        
        //Inclui um valor na pilha. O valor será incluso na ultima posição, empurrando todas as outras para baixo e assim perdendo o valor que estava
        //na primeira posição.
        ultima := random(10);
        for i:= 0 to 8 do
        begin
            vet[i] := vet[i + 1];
        end;
        vet[9] := ultima;
        writeln;
        mostrar(vet);
    end.
    

     

  4. 1 - Deixe sua reposta para que outras pessoas posam ver

    2 - Pode-se responder em qualquer linguagem, mas se puder deixar só o algoritmo escrito (Portugol) por exemplo, seria ótimo. 

    Vamos ao desafio:

    Criar um algoritmo que multiplique dois números inteiros positivos maiores que zero SEM usar o operador de multiplicação (*) 

    Boa sorte!

  5. /*
    
    * ----------Valid PassWord----------
    
    * PassWord must contain:
    
    * At least SIX characters
    
    * At least ONE character Caps lock
    
    * At least ONE character lowerCase
    
    * At least ONE number
    
    * And Can not contain SPACE
    
    */
    
    let password = "Doctor_Who_98"
    
    var contain_space = 0
    
    var contain_latters_lowerCase = 0
    
    var contain_latters_capsLock = 0
    
    var contain_number = 0
    
    var number_character = 0
    
    // up all the counters zeroed
    
    let latters_lowerCase = "abcdefghijklmnopqrstyvxzy"
    
    let latters_capsLock = "ABCDEFGHIJKLMNOPQRSTUVXZY"
    
    let numbers = "0123456789"
    
    for check_password in password { //will scroll through all the characters of the password
    
        number_character += 1 //Count the amount of character
    
        if check_password == " " {
    
            contain_space += 1 //check if there is any space
    
        }
    
        for check_latters_lowerCase in latters_lowerCase {
    
            if check_password == check_latters_lowerCase {
    
                contain_latters_lowerCase += 1 //Count the lowercase letters
    
            }
    
        }
    
        for check_latters_capsLock in latters_capsLock {
    
            if check_password == check_latters_capsLock {
    
                contain_latters_capsLock += 1 //Count the capslock letters
    
            }
    
        }
    
        for check_numbers in numbers {
    
            if check_password == check_numbers {
    
                contain_number += 1 //Count the number of numbers
    
            }
    
        }
    
    }
    
    if contain_space == 0 && contain_number > 0 && contain_latters_lowerCase > 0 && contain_latters_capsLock > 0 && number_character >= 6{
    
        print("Password OK")
    
    } else {
    
        print("Invalid Password")
    
    }
    
    // Twitter: @thiagoandreqi
    
    // Instagram: alfacexburger

     

  6. Boa tarde Marcela, 

    Antes de tudo você tem que filtrar os números pares.

    Não sei como é a função disto em javaScript, mas tem que procurar uma que retorne o resto da divisão entre o valor de i e 2

    if i%2 == 0
    
    document.getElementById("resposta").innerHTML= i+ ".";

     

  7. Boa tarde, 

    Você pode sim fazer isso usando String. Teria que varrer todos os caracteres usando um for e tentar encontrar os operadores.

    Mas você teria que já ter uma String com os operadores, exemplo: somar = "+"; subtrair = "-"; 

    Dentro do for que iria varrer o "3+5*2 você iria ter um if para quando algum valor da String for igual a um operador, você iria pegar o índice (a posição do caractere na String e pegar a anterior e a posterior, transformar em numero e fazer com que estes números entre na operação que tem entre eles. 
    Mas você teria também que verificar se há algum * ou / para serem feitos antes dos + e - 
    Creio que nessa altura você já deva ter conseguido de alguma forma, mas qualquer duvida, pode chamar aqui que tento ajudar beleza?

     

  8. Bom dia amigo,

    Seria interessante você direcionar o primeiro valor digitado para as variáveis maior e menor, assim:

    Já dentro do enquanto

    se cont < 2 então 
    
    maior <- N
    
    menor <- N

    Ai depois 

    se N > maior
    
    maior <- N
    
    se N < menor
    
    menor <- N

    Não precisa do senão, pois a verificação do menor não depende da do maior. 

    Qualquer duvida pode entrar em contato. 

×
×
  • Criar Novo...