Logo Hardware.com.br

Programação, Scripts, Web e Banco de Dados

Sala destinada para compartilhar conhecimentos, questões, dúvidas e dicas sobre linguagens de programação para Web, como Java, C, PHP, C++, ASP, Delphi, Perl, JavaScript, Kylix, entre outras, hospedagem Web, gerenciamento, aplicação e modelos de Banco de Dados (Oracle, SQL Server, DB2, PostgreSQL, MySQL etc), scripts e rotinas.

0
0

Adeus Android Studio

Tava quebrando a cuca aqui pra aprender usar Android Studio, essa carroça pesada dos inferno pra criar uns app, e procurando material adequado pra estudo...
Bem, vc já conhece o termux?
Instalei ele no meu celular, e atravéz dele agora posso compilar e rodar programas em C, python, Java, Ruby e Shell, sem precisar de mais censurado.png nenhuma!!!
Interessante não?!
0

Problemas com compilação.

não consigo compilar isso!


#include <stdio.h>
    int top=0, stack[5]={0,0,0,0,0};
    void show(){
        for(int l = 0; l < 5; l++){
            printf("[%d] - \n", stack[l]);
        }
        printf("\ntopo: %d\n", top);
    }


    void add(){
        int enter;
        if(top < 5){
            printf("enter: &quot;
            scanf("%d", &enter);
            stack[top] = enter;
            enter++;
        }
    }

    void del(){
        if(top > 0){
            stack[top] = 0;
            top--;
        }
    }

void clean(){
    for(int l = 0; l < 5; l++){
        stack[l] = 0;
        printf("[%d] - ", stack[l]);
    }
    top = 0;
    printf("\ntopo: %d\n", top);
}

int main(){
    int lp;
    do{
        printf("1=show\n2=add\n3=del\n4=clean\nopc: &quot;
        scanf("%d", &lp);
        switch(lp){
            case 1:
                show();
            break;
            case 2:
                add();
            break;
            case 3:
                del();
            break;
            case 4:
                clean();
            break;
        }


    }while(lp != -1);

    return 0;
}


toda vez que tento executa, ou, após mesmo de compilar, e executavel é deletado.
1

Função de preencher célula no Excel, não funciona e corrompe planilha.

Estou utilizando o Excel do pacote Office 2021.

A planilha tem indices com cabeçalho contendo os anos e a primeira coluna contendo os meses por extenso, e somente este codigo VBA.

Segue a funcao do codigo VBA:

---------------------------------------

Function CalcTab() As Double
    Dim fatorCorrecao As Double
        'tmp = TabelaFatores.Cells(nlinha, ncoluna).Value
    fatorCorrecao = 100

    'a linha abaixo está causando erro na planilha e corrompendo ela:
    'Worksheets("Planilha1").Range("E5").Value = 3.14159

    CalcTab = fatorCorrecao
End Function

------------

Claramente o codigo ainda está incompleto.

Retirando a linha Worksheets, a funcao toda funciona 100%, mas preciso escrever mais alguns valores direto em algumas celulas da planilha, baseado em resultados calculados dentro desta funcao, mas simplesmente nada é escrito na celula que está vazia e nao protegida. Algo realmente está interferindo.

O fato de corromper a planilha, é que após executar a planilha, aparentemente nenhuma celula
é modificada, mesmo apagando esta linha no VBA e retornando como era antes, a planilha nao calcula mais, mas ainda fica operacional manualmente.

Não adianta modificar a saida para outra celula, mesmo bem distante do conteudo principal da planilha e bem isolada, o resultado é o mesmo.

Se eu substituir a linha citada acima, por:

Cells(5, 5).Value = fatorCorrecao

acontece o mesmo problema.

Segue o link da planilha: https://drive.google.com/file/d/1F7LrtdvZpBfKwr2jko2EMvLqKdliilL7/view?usp=sharing


excel-vba
0

Autenticação Node Js

Boa tarde pessoal.
Tenho um server.js que lida com login, autenticação e logout. 
Não estou conseguindo resolver um problema, que é:
Quando entro no site vai pra tela de login, /.
Quando logo ele vai pra página /casa. 
Se eu estiver logado não quero permitir que acesse a tela de login. Exemplo: quando logado em 
meusite.com/casa ou qualquer outra rota, quando eu limpar as rotas na URL meusite.com, ou seja, vou pro /. Quando faço isso, meu sistema vai pra tela de login. Eu queria que fosse pra /casa nesse caso que está logado. Senão estiver logado, aí sim iria pra /.

Quando faço isso ele vai pra / que é a tela de login, mesmo autenticado. 

Minhas pastas estão assim:
Projeto
    Public
        Index.html
    Backend
        Server.js
    Frontend
        Casa.ejs

Segue parte do server pra exemplificar:

const express = require('express');
const session = require('express-session');
const flash = require('connect-flash');
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const bcrypt = require('bcryptjs');
const mysql = require('mysql2');
const bodyParser = require('body-parser');
const path = require('path');
const multer = require('multer');

// Configuração da sessão
app.use(session({
  secret: process.env.SESSION_SECRET || 'my-secret',
  resave: false,
  saveUninitialized: true,
  cookie: {
    //   maxAge: 48 * 60 * 60 * 1000 // 48 horas em milissegundos
    // expires: new Date(Date.now() + 1 * 60 * 1000) // 1 minuto a partir do momento atual
  }
}));

// Inicialização do Passport
app.use(passport.initialize());
app.use(passport.session());

// Serialização do usuário para a sessão
passport.serializeUser((user, done) => {
  done(null, user.id);
});

// Desserialização do usuário da sessão
passport.deserializeUser((id, done) => {
  connection.query('SELECT * FROM users WHERE id = ?', [id], (err, results) => {
    if (err) return done(err);
    done(null, results[0]);
  });
});

// Middleware para verificar se o usuário está autenticado
function ensureAuthenticated(req, res, next) {
  if (req.isAuthenticated()) {
    return next();
  }
  req.flash('error', 'Usuário não autenticado.');
  res.redirect('/'); // Redireciona para o login se não estiver autenticado
}

// Rota de login
app.post('/',
  passport.authenticate('local', {
    failureRedirect: '/', // Redireciona em caso de falha de autenticação
    failureFlash: true, // Mostra mensagem de erro do passport
  }),
  ensureValidate, // Verifica se o usuário está em validação após a autenticação
  (req, res) => {
    // Verifica se o usuário é ADMIN
    if (req.user.nome_casa === 'ADMIN' {
      res.redirect('/options'); // Redireciona para a página de opções se for ADMIN
    } else {
      res.redirect('/casa'); // Redireciona para a página da casa se não for ADMIN
    }
  });

// Rota de logout
app.get('/logout', (req, res) => {
  req.logout((err) => {
    if (err) {
      return res.status(500).send('Erro ao fazer logout';
    }
    res.redirect('/');
  });
});

// Rota para a página de login
app.get('/', (req, res) => {
  if (req.isAuthenticated()) {
    res.redirect('/casa');  // Se o usuário já estiver autenticado, redirecione para /casa
  } else {
    //res.render('/');  // Caso contrário, renderize a página de login
 res.sendFile(path.join(__dirname, '../frontend/public/index.html');
  }
});
0

Ajuda para uma consulta ao BD hospedado na Hostinger

Olá Senhores, busco ajuda para uma consulta ao BD hospedado na Hostinger. Desejo selecionar todos os registros cuja vigência seja maior ou igual a data atual. Abaixo segue código que uso.


On Error Resume Next


Módulo_Conection.Conexao  - faz a conexão com o BD


Set rs = New ADODB.Recordset

SQL = "Select * From TB_Contratos where Fundo like '" & Me.Combo_Fundo.Text & "'"

SQL = SQL & " And Fornecedor like '%" & Me.Text_Fornec.Text & "%'"

SQL = SQL & " And Tipo_Contrato like '%" & Me.Combo_Tipo_Cont.Text & "%'"

SQL = SQL & " And Final_Vig_Atualiz <> 0"  o zero é porque existem alguns registros com esses campos em branco

SQL = SQL & " And Final_Vig_Atualiz >= '2024-09-13'

rs.Open SQL, cnn, adOpenStatic, adLockOptimistic


o código acima está funcionando, mas, o que desejo é substituir '2024-09-13' por uma variável, mas de todas as formas que tento da erro. Grato pela atenção dedicada a esse problema.
0

Dúvida sobre conversão de imagem para hexadecimal.

Olá, gostaria de uma ajuda com uma duvida .

como Converter uma imagem para uma matriz de hexadecimal.


#include

LOCATION_PRAGMA("ExtFlashSection")
KEEP extern const unsigned char image_at_coel_main_1[] LOCATION_ATTRIBUTE("ExtFlashSection") = { // 482x274 ARGB8888 pixels.
    0xc8, 0xfc, 0xf8, 0x04, 0xd0, 0xfc, 0xf8, 0x65, 0xd0, 0xfc, 0xf8, 0x65,
    0xc8, 0xfc, 0xf8, 0x65, 0xd0, 0xfc, 0xf8, 0x65, 0xd0, 0xfc, 0xf8, 0x65,
    0xc8, 0xfc, 0xf8, 0x65, 0xd0, 0xfc, 0xf8, 0x65, 0xd0, 0xfc, 0xf8, 0x65,
    0xc8, 0xfc, 0xf8, 0x65, 0xd0, 0xfc, 0xf8, 0x65, 0xd0, 0xfc, 0xf8, 0x65,
    0xc8, 0xfc, 0xf8, 0x65, 0xd0, 0xfc, 0xf8, 0x65, 0xd0, 0xfc, 0xf8, 0x65,
    0xc8, 0xfc, 0xf8, 0x65, 0xd0, 0xfc, 0xf8, 0x65, 0xd0, 0xfc, 0xf8, 0x65,

.
.
.
.
.
.
.











segue o meu aruqivo abaixo que tenho que converter .
0

Jogo da Velha em HTML+CSS+JavaScript

Tirando o pó aqui e brincando um pouco com linguagens "modernas"

Achei esse projeto interessante no YouTube e fiz pequenas modificações.

O projeto original consiste em 2 jogadores humanos jogando um contra o outro.
Modifiquei para que fosse jogado contra o computador.
Alterei apenas o arquivo JS mantendo os demais.


Não ficou assim algo excelente, mas dá pra se divertir ganhando umas partidas e perdendo outras.

Video do projeto original:
Jogo da Velha - Youtube


Projeto no github
github - jogo da velha
2

Programa em C.

include  <stdio.h>
// Segue arquivo da agenda2.c para rodar e relatar o teste

typedef struct {
      char nome[30+1];
      int    fone;
} Aluno;                //  novo tipo "Aluno" foi criado aqui

Aluno  alu[100];    // cria tabela "alu" na memória com 100 linhas
int  prox;            // indice da proxima linha livre na tabela "alu"

GravaDadosMemoria(){
          FILE      *arq;        // serve para referenciar o arquivo aberto no disco
          int        i;
          arq = fopen("dadosAgenda.txt", "w&quot;  // cria o arquivo para gravacao "w"
          if( arq == NULL ) {
                  printf("Erro: disco cheio!!!\n&quot;
                  return;            // cancela gravacao
          }

          for( i=0; i < prox; i++ ) {
                printf("Gravando [%s]...\n", alu[i].nome);
              fprintf( arq, "%s\n%d\n", alu[i].nome, alu[i].fone );
          }
          printf("GravaDadosMemoria: gravou %d nomes\n", i);
}

RemoveNovaLinha( char area[] ) {
        int  indNulo = strlen( area ) - 1;

        area[ indNulo ] = '\0';          // removo o '\n' que foi lido do arq para memoria
}

LerDadosGravados() {        // se existir "dadosAgenda.txt"

          FILE      *arq;        // serve para referenciar o arquivo aberto no disco
          int        i=0;
          char      area[100+1];
          printf("LerDadosGravados: Inicio\n&quot;
          arq = fopen("dadosAgenda.txt", "r&quot;  // tenta abrir arquivo para leitura "r"
          if( arq == NULL ) {
                  printf("LerDadosGravados: nao existia dadosAgenda.txt!\n&quot;
                  return;            // Volta para o menu principal
          }

          while( fgets( area, 100, arq ) != NULL) {
                RemoveNovaLinha( area );            // remove o '\n' do nome
                printf("nome [%s]...\n", area);
                strcpy( alu[i].nome, area );              // copia o nome para alu[i].nome
                if( fgets( area, 100, arq ) != NULL) {
                        RemoveNovaLinha( area );
                        printf("fone [%s]...\n", area);
                      alu[i].fone = atoi( area );
                }
                i++;
          }
          printf("LerDadosGravados: Leu %d registros para memoria\n", i );
          prox = i;
}

MostraMenu() {
    char  opc;
    printf("    AGENDA - ALUNO\n&quot;
    printf("    i) incluir\n&quot;
    printf("    l) Listar\n&quot;
    printf("    f) Fim\n&quot;
    printf("    Qual a Opcao?  &quot;
    scanf("%c", &opc );

    if( opc == '\n' ) {
            scanf("%c", &opc );  // joga fora o '\n' do teclado
    }

    return opc;
}

void
Incluir() {
    printf("    AGENDA - INCLUIR\n&quot;
    printf("    Nome?  &quot;
    scanf("%s", alu[prox].nome );
    printf("    Fone?  &quot;
    scanf("%d", &alu[prox].fone );
    printf("[%s-%d] foi incluido!\n", alu[prox].nome, alu[prox].fone);
    prox++;    // indica que a proxima linha na tab "alu" esta livre
}

void
Listar() {
    int  i;
    printf("    AGENDA - LISTAR\n&quot;
    printf("Nome    Fone\n&quot;
    for( i=0; i < prox; i++ ) {
            printf("%s    %d\n", alu[i].nome, alu[i].fone );
    }
    printf("---Fim da Listagem ---\n&quot;
}

int
main() {
        char opc,  termina = 'n';    // inicia com nao
        LerDadosGravados();    // recupera os dados da ativacao anterior, se existir
        do {
              opc = MostraMenu();
              if( opc == 'f' ) {
                      termina = 's';
              } else if( opc == 'i' ) {
                      Incluir();  // Ativa tela Incluir
              } else if( opc == 'l' ) {
                      Listar();  // Ativa tela Listar
              } else {
                      printf("[%c] opcao invalida!!!", opc );
                }
        } while( termina == 'n' );
        GravaDadosMemoria();            // grava os dados da memória para o arquivo
        printf("\nAteh +++\n&quot;
}
0

VBA - para selecionar Data e filtrar em site.

Olá, bom dia.

Solicito ajuda para o seguinte codigo VBA
Acessar site ( intranet da empresa)
selecionar Data Inicio e Data Fim, 
Selecionar Motivo 
Clicar em Filtrar.

Pode ser em Chrome ou Internet Explorer.

tenho o codigo:
============================================
Sub SetDatesAndFilter()

    Dim ie As Object ' Internet Explorer Object
    Dim url As String ' Website URL
    Dim xpathStartDt As String ' XPath for start date input
    Dim xpathEndDt As String ' XPath for end date input
    Dim xpathMotivo As String ' XPath for motivo dropdown
    Dim xpathFilterBtn As String ' XPath for filter button
    Dim dataStart As String ' Date value from cell A2
    Dim dataEnd As String ' Date value from cell B2
    Dim motivoValue As String ' Motivo value (PO - SEGURANÇA)

    ' Set variables
    url = "https://appintranet.cptm.sp.gov.br/operacao/manifestacao_usuario/descritivo.asp"
    xpathStartDt = "//INPUT[@id='txtDtIni']"
    xpathEndDt = "//INPUT[@id='txtDtFim']"
    xpathMotivo = "//select[@id='slt_Motivo']"
    xpathFilterBtn = "//input[@class='btnFiltrar']"
    dataStart = Range("A2").Value ' Get date from cell A2
    dataEnd = Range("B2").Value ' Get date from cell B2
    motivoValue = "PO - SEGURANÇA" ' Set motivo value

    ' Set Internet Explorer object
    Set ie = CreateObject("InternetExplorer.Application")

    ' Navigate to the website
    ie.Visible = True ' Make browser visible (optional)
    ie.Navigate url

    ' Wait for the page to load (adjust wait time as needed)
    Do While ie.Busy
        DoEvents
    Loop

    ' Find and set start date
    Dim element As Object
    Set element = ie.Document.querySelector(xpathStartDt)
    If element Is Nothing Then
        MsgBox "Start date element not found!", vbCritical
        Exit Sub
    End If
    element.Clear ' Clear existing value (optional)
    element.Value = dataStart

    ' Find and set end date
    Set element = ie.Document.querySelector(xpathEndDt)
    If element Is Nothing Then
        MsgBox "End date element not found!", vbCritical
        Exit Sub
    End If
    element.Clear ' Clear existing value (optional)
    element.Value = dataEnd

    ' Find motivo dropdown and select option
    Set element = ie.Document.querySelector(xpathMotivo)
    If element Is Nothing Then
        MsgBox "Motivo dropdown not found!", vbCritical
        Exit Sub
    End If
           
       


    ' Find and click filter button
    Set element = ie.Document.querySelector(xpathFilterBtn)
    If element Is Nothing Then
        MsgBox "Filter button not found!", vbCritical
        Exit Sub
    End If
    element.Click

End Sub
================================================
ele abre o navegador e acessa o site mas dá erro já na linha:
Set element = ie.Document.querySelector(xpathStartDt)
Erro em tempo de execução '438'
o objeto não aceita essa propriedade ou metodo.


acredito que não estou identificando o elento html correto; este é o codigo fonte do xpath na imagem quando vou descobrir qual é o elemento no navegador.


podem me ajudar a definir no codigo o caminho para alterar a Data Inicio e Data Fim
no "slt_Motivo", sempre será 767 > PO - Segurança
e clicar botão Filtrar.

obrigado por qualquer auxilio ou orientação.
0

Preciso de ajuda para descriptografar, preciso analisar o código.

<?php /*** PHP Encode v1.0 by zeura.com ***/ $XnNhAWEnhoiqwciqpoHH=file(__FILE__);eval(base64_decode("aWYoIWZ1bmN0aW9uX2V4aXN0cygiWWl1bklVWTc2YkJodWhOWUlPOCIpKXtmdW5jdGlvbiBZaXVuSVVZNzZiQmh1aE5ZSU84KCRnLCRiPTApeyRhPWltcGxvZGUoIlxuIiwkZyk7JGQ9YXJyYXkoNjU1LDIzNiw0MCk7aWYoJGI9PTApICRmPXN1YnN0cigkYSwkZFswXSwkZFsxXSk7ZWxzZWlmKCRiPT0xKSAkZj1zdWJzdHIoJGEsJGRbMF0rJGRbMV0sJGRbMl0pO2Vsc2UgJGY9dHJpbShzdWJzdHIoJGEsJGRbMF0rJGRbMV0rJGRbMl0pKTtyZXR1cm4oJGYpO319"));eval(base64_decode(YiunIUY76bBhuhNYIO8($XnNhAWEnhoiqwciqpoHH)));eval(ZsldkfhGYU87iyihdfsow(YiunIUY76bBhuhNYIO8($XnNhAWEnhoiqwciqpoHH,2),YiunIUY76bBhuhNYIO8($XnNhAWEnhoiqwciqpoHH,1)));__halt_compiler();aWYoIWZ1bmN0aW9uX2V4aXN0cygiWnNsZGtmaEdZVTg3aXlpaGRmc293Iikpe2Z1bmN0aW9uIFpzbGRrZmhHWVU4N2l5aWhkZnNvdygkYSwkaCl7aWYoJGg9PXNoYTEoJGEpKXtyZXR1cm4oZ3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJGEpKSk7fWVsc2V7ZWNobygiRXJyb3I6IEZpbGUgTW9kaWZpZWQiKTt9fX0=02fd5a4b440e3f3372856acd85eb2d9e9de32d71FZnHDurIFkU/p++TB85JPXLO2cZh0sI55/z1j8sEhATYVXX2XksU57f/U73NWPbfvfiTfreCwP7Li2zKiz/bvv63TjuM/vnHM5qgKDi+fLENB9rKr8U7p5Mdx4cssLxkON4VzAnQoF51MPohLyfM5fAF2ewNuOqvfhAaOW0NSL0DKC87CG/AWXwpcF3ArU6X6xFwtHTKeofgl3cCzSBK2GQJDXoneMijrW64sNJM2xM9K7+nTnSRKO7nqr4xkhDTTwqZQ/B5DBZKmk+HNGz38vUeoW7hvE9gHjewtK/Lk0ksQaJZy+jSLTHRsyp5EVYkYbtnN4z7fIIkr5ERT/r5HCQ6JBW/me9R+vpmiIcygmc+9kYnPFkXEysQsPNIpka0QqxI7LPryQEf/lKGGWSJEBbJOPlqD+Estu+Y4T5kk1euvDOKV+KtYhHKwOqKs4SNFxVU/ZeFPJo+Df/05dvWPxqK+5AI5S0pqb/n3T/qKg0fvfC+wSDMzNX4TvoNn2uihULzNNX63D3GkMuLf5iPnj+AYhpMhHA7K6Au5sxZXwlqi9ayrsynujGp5cEA9IEANhu9Wu4SA4DsS7K1hmABuLxSSGVqOeW4lOsMEkGs8mTJaAbN8F2us0rJB4eWRtFqAsyUoXd70JUnm8Zl27+Ikvxe07Z2LegZIsULYwmxDOo51PaB6XSOuxOeR2vQuGQR0FrVd8I+KaEiypdGPpcuwyDNnJVOH76Bo+/FNlJtlF4yju9jyU9j24RnWTa5biVEsVph31hrg+KnIOhtUbnGmrDTA2hGLmv3UqdRa3WsDvYRi0YYu6yz+yB1CCC3OtA6YbIRDyM6PK+LG6N1HVPYJcoO2l86WRBWu3Qxs6TNiqHIkVnGyECvCpS3BsxCgKJ7n4EGjfLViNwNPTfyMcIf2zPoiVeo5kOWgrAmNNIPy4grBpjsHqRZEuKriqQvzNPzxKMPdgNIlpGi8nA2tUDN75yWK2DD+JM2LOEGr2+TV1lEBnN4893aUHh80LPkX/MFupvNtwMJrjhikKr2CHPilzZKqAvLorP4tFhGs6EgdRn9fQ5PoPI8AN8WAiXGDaQBKhjBmn0ZJ7qK1iRGqijsvQcAFAhCCI0l63TT+KYtNVPb9FsAjhRm13CkxrkqhtC+esYSkFnW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
0

Shellscrip para backup Promox

VMID NAME                STATUS    MEM(MB)    BOOTDISK(GB) PID     
      100 NomeVM100            running    4096              80.00 2125     
      101 NomeVM100            running    6144            128.00 1881     
      102 NomeVM100            stopped    4096              80.00 0       
      103 NomeVM100            running    1024              64.00 1669     
      104 NomeVM100            running    12288            256.00 1424     
      105 NomeVM100            stopped    4096              64.00 0       
      106 NomeVM100            running    2048              64.00 2284
0

Sequelize.

Imagem
Você
  throw new Error(`Unrecognized datatype for attribute "${this.name}.${name}"`);
              ^

Error: Unrecognized datatype for attribute "postagens.titulo"
    at C:\Users\olive\OneDrive\Área de Trabalho\node.js telegram\projeto\node_modules\sequelize\lib\model.js:726:15
    at C:\Users\olive\OneDrive\Área de Trabalho\node.js telegram\projeto\node_modules\lodash\lodash.js:13469:38   
    at C:\Users\olive\OneDrive\Área de Trabalho\node.js telegram\projeto\node_modules\lodash\lodash.js:4967:15   
    at baseForOwn (C:\Users\olive\OneDrive\Área de Trabalho\node.js telegram\projeto\node_modules\lodash\lodash.js:3032:24)
    at Function.mapValues (C:\Users\olive\OneDrive\Área de Trabalho\node.js telegram\projeto\node_modules\lodash\lodash.js:13468:7)
    at postagens.init (C:\Users\olive\OneDrive\Área de Trabalho\node.js telegram\projeto\node_modules\sequelize\lib\model.js:723:28)
    at Sequelize.define (C:\Users\olive\OneDrive\Área de Trabalho\node.js telegram\projeto\node_modules\sequelize\lib\sequelize.js:225:11)
    at file:///C:/Users/olive/OneDrive/%C3%81rea%20de%20Trabalho/node.js%20telegram/projeto/moduloss/Post.js:5:27
    at ModuleJob.run (node:internal/modules/esm/module_job:217:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:316:24)
1

Estou preso em uma questão!

Estou aprendendo algoritmos1, no programa visualg que utiliza o portugol.
O enunciado é o seguinte:

 ". Escreva um algoritmo para ler a hora de início e fim de um jogo (considere apenas horas inteiras) e calcule a duração do jogo em horas, sabendo-se que o tempo máximo de duração do jogo é de 24 horas e que o jogo pode iniciar em um dia e terminar no dia seguinte. Reescreva o exercício acima considerando que o tempo inicial e final do jogo será informado em horas e minutos. A duração do jogo também deverá ser impressa em horas e minutos."

Eu não consegui fazer a resolução deste exercicio e gostaria de entender como fazer!!!!!!!
0

Comparação em assembly.

tenho o seguinte codigo:

section .data
valor_id db "digite 2 valores", 0xA, 0xD
size_id equ $ - valor_id
maior db "valor é maior", 0xA, 0xD
size_maior equ $ - maior
menor db "valor é menor", 0xA, 0xD
size_menor equ $ - menor
section .bss
positivo resb 1
negativo resb 1
section .text
global _start
_start:
mov eax, 0x4
mov ebx, 0x1
mov ecx, valor_id
mov edx, size_id
int 0x80
; recebe primeiro valor
mov eax, 0x3
mov ebx, 0x1
mov ecx, positivo
mov edx, 0xD
int 0x80
; recebe segundo valor
mov eax, 0x3
mov ebx, 0x1
mov ecx, negativo
mov edx, 0xD
int 0x80

mov eax, DWORD [positivo]
        mov ebx, DWORD [negativo]
cmp eax, ebx
        jg inteiro
        mov ecx, maior
mov edx, size_maior
        jmp castrado
inteiro:
mov ecx, maior
mov edx, size_maior
castrado:
    mov ecx, menor
mov edx, size_menor
mov eax, 0x1
mov ebx, 0x0
int 0x80

mas quando executo ele, ele pega os valores e finaliza, e não faz a comparação.

Atualização: 27/04/2024 16:02


felipess01 disse:

‎perdoe-me qualquer erro, sou iniciante com assembly
0

Sites em Bloco

Boa noite pessoal. Sou novo aqui e esse é meu primeiro posto.

Tenho 3 navegadores no computador (Edge que é o principal, o Chrome  e o Firefox
Todo dia tenho que abrir uma Janela do Edge com 4 abas para 4 sites.
Depois abro mais outra janela do Edge com mais 6 abas para outros sites.
Abro o Chrome com 4 abas e por último o Firefox com 3 abas.

Isso dá trabalho e eu até já fiz um arquivo .Bat para abrir os sites, só que está tudo abrindo pelo Edge 

Alguém saberia me ajudar a fazer com que os sites abram de codi como descrevi acima?

Desde já agradeço.
© 1999-2025 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal