Ir para conteúdo
Fórum Script Brasil
  • 0

Converter Código Em C++ P/ Delphi


Marlonnoer

Pergunta

Oi sou novo por aqui e já preciso da ajuda de todos, tenho esse fonte em C++ e preciso a conversão dele para delphi, alguém pode fazer isso para me ajudar, estou aprendendo delphi agora e não estou conseguindo, obrigado

#include

#include

#include

#define MAIS_INFINITO 20000

#define MENOS_INFINITO -1

struct Compet

{

char nome[16];

int pontos;

} compet[1010];

int n;

int compara(const void * p1, const void * p2)

{

int r = ((struct Compet *)p2)->pontos - ((struct Compet *)p1)->pontos;

if (r != 0)

return r;

return strcmp(((struct Compet *)p1)->nome, ((struct Compet *)p2)->nome);

}

int main()

{

int pontos, p, min, max, i, k, classif, pontos_ant, teste=1;

while (scanf("%d", &n) == 1 && n > 0)

{

/* le jogadores e pontos*/

for (i = 0; i < n; i++)

{

scanf("%s", compet.nome);

min = MAIS_INFINITO;

max = MENOS_INFINITO;

pontos = 0;

for (k = 0; k < 12; k++)

{

scanf("%d", &p);

if (p < min)

min = p;

if (p > max)

max = p;

pontos += p;

}

compet.pontos = pontos - max - min;

}

/* pontuação */

qsort(compet, n, sizeof(struct Compet), compara);

/* calcula pontuação e imprime o resultado*/

pontos_ant = MAIS_INFINITO;

printf("Teste %d\n", teste++);

for (i = 0; i < n; i++)

{

if (compet.pontos != pontos_ant)

classif = i + 1;

printf("%d %d %s\n", classif, compet.pontos, compet.nome);

pontos_ant = compet.pontos;

}

printf("\n");

}

return 0;

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Opa

Eu não possuo conhecimento suficiente em C++ pra passar totalmente o

código mas posso te ajudar em partes...

#define em Delphi é igual a const então

#define MAIS_INFINITO 20000

#define MENOS_INFINITO -1

const

MAIS_INFINITO = 20000;

MENOS_INFINITO = -1 ;

struct em Delphi é igual a um Type record

struct Compet

{

char nome[16];

int pontos;

} compet[1010];

type

TCompet = record

Nome: String;

Pontos: Integer;

end;

Usei String pois como você não vai passar pra nenhuma API este código então

não há problema... mas o certo seria uma array of char caso contrário...

esse compet[1010]; não tenho a menor noção do que seja

int n; int seria Integer então

var

n: Integer;

int compara(const void * p1, const void * p2)

{

int r = ((struct Compet *)p2)->pontos - ((struct Compet *)p1)->pontos;

if (r != 0)

return r;

return strcmp(((struct Compet *)p1)->nome, ((struct Compet *)p2)->nome);

}

Function Compara(p1, p2: TCompet): Integer;

var

r: Integer;

begin

r := (p2.Pontos - p1.Pontos);

//agora não entendi rs

if (r <> 0) then

Result := r else

result := AnsiCompareText(p1.Nome, p2.Nome);

end;

for (i = 0; i < n; i++) é um loop que em Delphi seria

for i := 0 to n -1 do

scanf, qsort eu não tenho idéia do que seja rs

Espero que outros colaborem eu acho que o Graywalkiman saberá te ajudar

vou pedir pra ele dar uma olhada ;)

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Acho que mais fácil do que converter esse código para Delphi seria você pegar o que ele faz (o propósito dele) e refazer em Delphi. Veja o caso do scanf, por exemplo, que é o equivalente ao read/readln do Pascal. No Delphi você provavelmente vai usar uma caixa de texto no form, e não uma interface de texto.

E qsort deve ser alguma função de ordenação usando o algorítmo quicksort. Aliás, deve ter um equivalente em Delphi para isso também.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

struct Compet

{

char nome[16];

int pontos;

} compet[1010];

faz a declaração da estrutura e esse trecho

compet[1010]

é a criação de 1010 variáveis chamadas compet da estrutura declarada.

scanf, qsort eu não tenho idéia do que seja rs

qsort eu nunca usei, mas deve ser ordenação da matriz e scanf é leitura de dados do teclado.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...