sexta-feira, 29 de maio de 2015

Macro em VBA que formata uma planilha (copiando os valores de uma para outra)

Attribute VB_Name = "Módulo_formata"
Sub formata()
'Formata a pasta "txt"
Sheets("txt").Select
Range("b10000").Select
Selection.End(xlUp).Select 'Seleciona limite útil da pasta
Dim break
break = ActiveCell.Row

Range("b2").Select
Do While ActiveCell.Row < break 'Altera as células vazias para "Nome"
    If Left(ActiveCell.Value, 3) = "Sal" Or Left(ActiveCell.Value, 4) = " Sal" Or Left(ActiveCell.Value, 5) = "  Sal" Then
    ActiveCell.Offset(-1, 0).Value = "Nome"
    ActiveCell.Offset(1, 0).Select
    Else
    ActiveCell.Offset(1, 0).Select
    End If
Loop

Range("b1").Select
Do While ActiveCell.Row < break + 1 'coloca nome em todas as linhas na coluna A"
    If ActiveCell.Value = "Nome" Then
    Dim var1
    var1 = ActiveCell.Offset(0, 2).Value
    End If
   
    ActiveCell.Offset(0, -1).Value = var1
    ActiveCell.Offset(1, 0).Select
   
Loop
   
'Alimenta a pasta "base"
Sheets("base").Select
Range("B10000").Select
Selection.End(xlUp).Select 'Seleciona limite útil da pasta
ActiveCell.Offset(1, 0).Select
Sheets("txt").Select
Range("A1").Select
Do While ActiveCell.Row < break + 1
    If ActiveCell.Offset(0, 1).Value = "Nome" Then
        ActiveCell.Copy
        Sheets("base").Select
        ActiveSheet.Paste
        Sheets("txt").Select
        Dim var2
        var2 = ActiveCell.Offset(1, 3).Value
        Sheets("base").Select
        ActiveCell.Offset(0, 1).Value = var2
        Sheets("txt").Select
        Dim var3
        var3 = ActiveCell.Offset(1, 4).Value
        Sheets("base").Select
        ActiveCell.Offset(0, 3).Value = var3
        ActiveCell.Offset(0, 8).Value = "SALÁRIO NORMAL"
        ActiveCell.Offset(1, 0).Select
        ActiveSheet.Paste
        Sheets("txt").Select
        var2 = ActiveCell.Offset(1, 5).Value
        Sheets("base").Select
        ActiveCell.Offset(0, 1).Value = var2
        Sheets("txt").Select
        var3 = ActiveCell.Offset(1, 6).Value
        ActiveCell.Offset(1, 0).Select
        Sheets("base").Select
        ActiveCell.Offset(0, 3).Value = var3
        ActiveCell.Offset(0, 8).Value = "INSS"
        ActiveCell.Offset(1, 0).Select
    Else
        Sheets("txt").Select
        ActiveCell.Copy
        Sheets("base").Select
        ActiveSheet.Paste
        ActiveCell.Offset(0, 1).Value = 0
        Sheets("txt").Select
        Dim var4
        var4 = ActiveCell.Offset(0, 2).Value
        Sheets("base").Select
        ActiveCell.Offset(0, 3).Value = var4
        Sheets("txt").Select
        Dim var5
        var5 = ActiveCell.Offset(0, 1).Value
        ActiveCell.Offset(1, 0).Select
        Sheets("base").Select
        ActiveCell.Offset(0, 8).Value = var5
        ActiveCell.Offset(1, 0).Select
        Sheets("txt").Select
       
    End If
       
     
Loop


'procedimento deletar linhas sem valores

Sheets("base").Select
Range("e10000").Select
Selection.End(xlUp).Select 'Seleciona limite útil da pasta

ActiveCell.Offset(1, 0).Value = "limite"

Range("E2").Select

Do While ActiveCell.Value <> "limite"
   
    If ActiveCell.Value = "0" Or ActiveCell.Value = "" Or ActiveCell.Value = "-" Then
    Selection.EntireRow.Delete
   
    Else
   
    ActiveCell.Offset(1, 0).Select
   
    End If

Loop

ActiveCell.ClearContents

End Sub

Programa em C que organiza uma liga por rodadas e contabiliza vitórias e derrotas

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

int D20 (); /* função que faz o papel do d20, código abaixo do main */

int main (void)
{
int i, j, k, l, m, nps, ncs, nrs, nlsr, cont, aux, aux2, raux; /* Contadores, variáveis auxiliares e variáveis que guardam: n° de players, n° de personagens, n° de rodadas, e n° de personagens em uma coluna */
char p[9][20]; /* vetor que recebe o nome dos jogadores */
char a[20][60]; /* vetores que recebem o nome dos amálgamas jogadores/personagens, a posição varia conforme a tabela, por isso há 19 vetores que é o número máximo de rodadas */
char a2[20][60];
char a3[20][60];
char a4[20][60];
char a5[20][60];
char a6[20][60];
char a7[20][60];
char a8[20][60];
char a9[20][60];
char a10[20][60];
char a11[20][60];
char a12[20][60];
char a13[20][60];
char a14[20][60];
char a15[20][60];
char a16[20][60];
char a17[20][60];
char a18[20][60];
char a19[20][60];
int rd20[9]; /* vetor que guarda o resultado do d20 de cada jogador */
static int r[20], r2[20], r3[20], r4[20], r5[20], r6[20], r7[20], r8[20], r9[20], r10[20], r11[20], r12[20], r13[20], r14[20], r15[20], r16[20], r17[20], r18[20], r19[20];
/* os vetores r guardam a pontuação de cada personagem por rodada */
clrscr();
printf ("\nEntre com o n£mero de jogadores: ");
scanf ("%d", &nps);
for (cont=0; cont<nps; cont++){
  printf ("\nEntre com o nome do jogador: ");
  scanf ("%s", &p[cont]);
  }
randomize();
for (cont=0; cont<nps; cont++){
  printf ("\nO jogador ");
  printf ("%s", p[cont]);
  printf (" tirou ");
  rd20[cont] = D20();
  printf ("%d", rd20[cont]);
  }
printf ("\nDigite o n£mero de personagens: ");
scanf ("%d", &ncs);
nrs = (ncs - 1);
nlsr = (ncs/2);
for (cont=0; cont<ncs; cont++){
  printf ("\nEntre com o nome do jogador e do personagem (sem espa‡os): ");
  scanf ("%s", &a[cont]);
  }
/* Inicia o campeonato, o código se repete rodada a rodada dentro deste primeiro for, variando conforme a lógica */
for (cont=0; cont<nrs; cont++){
  printf ("\nRodada ");
  printf ("%d", (cont+1));
  i = 0;
  j = 0;
  k = 1;
  if (cont==0){
    while (i<nlsr){
      printf ("\n%s", a[j]);
      printf (" x ");
      printf ("%s", a[k]);
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r[j]=1;
}else{
r[k]=1;
}
      i++;
      j=(j+2);
      k=(k+2);
      }
      printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a[m]);
printf (" fez ");
printf ("%d", r[m]);
printf (" pt(s)");
}
    }
  if (cont==1){
    aux=(ncs)-1;
    printf ("\n%s", a[aux]);
    strcpy (a2[0],a[aux]);
    r2[0]=r[aux];
    printf (" x ");
    printf ("%s", a[0]);
    strcpy (a2[1],a[0]);
    r2[1]=r[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r2[0]++;
      }else{
      r2[1]++;
      }
    j=1;
    k=2;
    l=3;
    while (i<(nlsr-1)){
      printf ("\n%s", a[j]);
      strcpy (a2[k],a[j]);
      r2[k]=r[j];
      printf (" x ");
      printf ("%s", a[k]);
      strcpy (a2[l],a[k]);
      r2[l]=r[k];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r2[k]++;
}else{
r2[l]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
      printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a2[m]);
printf (" fez ");
printf ("%d", r2[m]);
printf (" pt(s)");
}
    }
  if (cont==2){
    printf("\n%s", a2[3]);
    strcpy (a3[0],a2[3]);
    r3[0]=r2[3];
    printf (" x ");
    printf ("%s", a2[1]);
    strcpy (a3[1], a2[1]);
    r3[1]=r2[1];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r3[0]++;
      }else{
      r3[1]++;
      }
    j=5;
    k=3;
    l=2;
    while (i<(nlsr-2)){
      printf ("\n%s", a2[j]);
      strcpy (a3[l],a2[j]);
      r3[l]=r2[j];
      printf (" x ");
      printf ("%s", a2[l]);
      strcpy (a3[k], a2[l]);
      r3[k]=r2[l];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r3[l]++;
}else{
r3[k]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
    aux = (ncs)-2;
    aux2 = (ncs)-1;
    printf ("\n%s", a2[aux]);
    strcpy (a3[aux], a2[aux]);
    r3[aux]=r2[aux];
    printf (" x ");
    printf ("%s", a2[0]);
    strcpy (a3[aux2], a2[0]);
    r3[aux2]=r2[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r3[aux]++;
      }else{
      r3[aux2]++;
      }
    printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a3[m]);
printf (" fez ");
printf ("%d", r3[m]);
printf (" pt(s)");
}
    }
 if (cont==3){
    aux=(ncs)-1;
    printf ("\n%s", a3[aux]);
    strcpy (a4[0],a3[aux]);
    r4[0]=r3[aux];
    printf (" x ");
    printf ("%s", a3[0]);
    strcpy (a4[1],a3[0]);
    r4[1]=r3[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r4[0]++;
      }else{
      r4[1]++;
      }
    j=1;
    k=2;
    l=3;
    while (i<(nlsr-1)){
      printf ("\n%s", a3[j]);
      strcpy (a4[k],a3[j]);
      r4[k]=r3[j];
      printf (" x ");
      printf ("%s", a3[k]);
      strcpy (a4[l],a3[k]);
      r4[l]=r3[k];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r4[k]++;
}else{
r4[l]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
      printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a4[m]);
printf (" fez ");
printf ("%d", r4[m]);
printf (" pt(s)");
}
    }
  if (cont==4){
    printf("\n%s", a4[3]);
    strcpy (a5[0],a4[3]);
    r5[0]=r4[3];
    printf (" x ");
    printf ("%s", a4[1]);
    strcpy (a5[1], a4[1]);
    r5[1]=r4[1];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r5[0]++;
      }else{
      r5[1]++;
      }
    j=5;
    k=3;
    l=2;
    while (i<(nlsr-2)){
      printf ("\n%s", a4[j]);
      strcpy (a5[l],a4[j]);
      r5[l]=r4[j];
      printf (" x ");
      printf ("%s", a4[l]);
      strcpy (a5[k], a4[l]);
      r5[k]=r4[l];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r5[l]++;
}else{
r5[k]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
    aux = (ncs)-2;
    aux2 = (ncs)-1;
    printf ("\n%s", a4[aux]);
    strcpy (a5[aux], a4[aux]);
    r5[aux]=r4[aux];
    printf (" x ");
    printf ("%s", a4[0]);
    strcpy (a5[aux2], a4[0]);
    r5[aux2]=r4[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r5[aux]++;
      }else{
      r5[aux2]++;
      }
    printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a5[m]);
printf (" fez ");
printf ("%d", r5[m]);
printf (" pt(s)");
}
    }
 if (cont==5){
    aux=(ncs)-1;
    printf ("\n%s", a5[aux]);
    strcpy (a6[0],a5[aux]);
    r6[0]=r5[aux];
    printf (" x ");
    printf ("%s", a5[0]);
    strcpy (a6[1],a5[0]);
    r6[1]=r5[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r6[0]++;
      }else{
      r6[1]++;
      }
    j=1;
    k=2;
    l=3;
    while (i<(nlsr-1)){
      printf ("\n%s", a5[j]);
      strcpy (a6[k],a5[j]);
      r6[k]=r5[j];
      printf (" x ");
      printf ("%s", a5[k]);
      strcpy (a6[l],a5[k]);
      r6[l]=r5[k];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r6[k]++;
}else{
r6[l]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
      printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a6[m]);
printf (" fez ");
printf ("%d", r6[m]);
printf (" pt(s)");
}
    }
  if (cont==6){
    printf("\n%s", a6[3]);
    strcpy (a7[0],a6[3]);
    r7[0]=r6[3];
    printf (" x ");
    printf ("%s", a6[1]);
    strcpy (a7[1], a6[1]);
    r7[1]=r6[1];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r7[0]++;
      }else{
      r7[1]++;
      }
    j=5;
    k=3;
    l=2;
    while (i<(nlsr-2)){
      printf ("\n%s", a6[j]);
      strcpy (a7[l],a6[j]);
      r7[l]=r6[j];
      printf (" x ");
      printf ("%s", a6[l]);
      strcpy (a7[k], a6[l]);
      r7[k]=r6[l];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r7[l]++;
}else{
r7[k]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
    aux = (ncs)-2;
    aux2 = (ncs)-1;
    printf ("\n%s", a6[aux]);
    strcpy (a7[aux], a6[aux]);
    r7[aux]=r6[aux];
    printf (" x ");
    printf ("%s", a6[0]);
    strcpy (a7[aux2], a6[0]);
    r7[aux2]=r6[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r7[aux]++;
      }else{
      r7[aux2]++;
      }
    printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a7[m]);
printf (" fez ");
printf ("%d", r7[m]);
printf (" pt(s)");
}
    }
 if (cont==7){
    aux=(ncs)-1;
    printf ("\n%s", a7[aux]);
    strcpy (a8[0],a7[aux]);
    r8[0]=r7[aux];
    printf (" x ");
    printf ("%s", a7[0]);
    strcpy (a8[1],a7[0]);
    r8[1]=r7[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r8[0]++;
      }else{
      r8[1]++;
      }
    j=1;
    k=2;
    l=3;
    while (i<(nlsr-1)){
      printf ("\n%s", a7[j]);
      strcpy (a8[k],a7[j]);
      r8[k]=r7[j];
      printf (" x ");
      printf ("%s", a7[k]);
      strcpy (a8[l],a7[k]);
      r8[l]=r7[k];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r8[k]++;
}else{
r8[l]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
      printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a8[m]);
printf (" fez ");
printf ("%d", r8[m]);
printf (" pt(s)");
}
    }
  if (cont==8){
    printf("\n%s", a8[3]);
    strcpy (a9[0],a8[3]);
    r9[0]=r8[3];
    printf (" x ");
    printf ("%s", a8[1]);
    strcpy (a9[1], a8[1]);
    r9[1]=r8[1];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r9[0]++;
      }else{
      r9[1]++;
      }
    j=5;
    k=3;
    l=2;
    while (i<(nlsr-2)){
      printf ("\n%s", a8[j]);
      strcpy (a9[l],a8[j]);
      r9[l]=r8[j];
      printf (" x ");
      printf ("%s", a8[l]);
      strcpy (a9[k], a8[l]);
      r9[k]=r8[l];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r9[l]++;
}else{
r9[k]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
    aux = (ncs)-2;
    aux2 = (ncs)-1;
    printf ("\n%s", a8[aux]);
    strcpy (a9[aux], a8[aux]);
    r9[aux]=r8[aux];
    printf (" x ");
    printf ("%s", a8[0]);
    strcpy (a9[aux2], a8[0]);
    r9[aux2]=r8[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r9[aux]++;
      }else{
      r9[aux2]++;
      }
    printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a9[m]);
printf (" fez ");
printf ("%d", r9[m]);
printf (" pt(s)");
}
    }
 if (cont==9){
    aux=(ncs)-1;
    printf ("\n%s", a9[aux]);
    strcpy (a10[0],a9[aux]);
    r10[0]=r9[aux];
    printf (" x ");
    printf ("%s", a9[0]);
    strcpy (a10[1],a9[0]);
    r10[1]=r9[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r10[0]++;
      }else{
      r10[1]++;
      }
    j=1;
    k=2;
    l=3;
    while (i<(nlsr-1)){
      printf ("\n%s", a9[j]);
      strcpy (a10[k],a9[j]);
      r10[k]=r9[j];
      printf (" x ");
      printf ("%s", a9[k]);
      strcpy (a10[l],a9[k]);
      r10[l]=r9[k];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r10[k]++;
}else{
r10[l]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
      printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a10[m]);
printf (" fez ");
printf ("%d", r10[m]);
printf (" pt(s)");
}
    }
  if (cont==10){
    printf("\n%s", a10[3]);
    strcpy (a11[0],a10[3]);
    r11[0]=r10[3];
    printf (" x ");
    printf ("%s", a10[1]);
    strcpy (a11[1], a10[1]);
    r11[1]=r10[1];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r11[0]++;
      }else{
      r11[1]++;
      }
    j=5;
    k=3;
    l=2;
    while (i<(nlsr-2)){
      printf ("\n%s", a10[j]);
      strcpy (a11[l],a10[j]);
      r11[l]=r10[j];
      printf (" x ");
      printf ("%s", a10[l]);
      strcpy (a11[k], a10[l]);
      r11[k]=r10[l];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r11[l]++;
}else{
r11[k]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
    aux = (ncs)-2;
    aux2 = (ncs)-1;
    printf ("\n%s", a10[aux]);
    strcpy (a11[aux], a10[aux]);
    r11[aux]=r10[aux];
    printf (" x ");
    printf ("%s", a10[0]);
    strcpy (a11[aux2], a10[0]);
    r11[aux2]=r10[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r11[aux]++;
      }else{
      r11[aux2]++;
      }
    printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a11[m]);
printf (" fez ");
printf ("%d", r11[m]);
printf (" pt(s)");
}
    }
 if (cont==11){
    aux=(ncs)-1;
    printf ("\n%s", a11[aux]);
    strcpy (a12[0],a11[aux]);
    r12[0]=r11[aux];
    printf (" x ");
    printf ("%s", a11[0]);
    strcpy (a12[1],a11[0]);
    r12[1]=r11[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r12[0]++;
      }else{
      r12[1]++;
      }
    j=1;
    k=2;
    l=3;
    while (i<(nlsr-1)){
      printf ("\n%s", a11[j]);
      strcpy (a12[k],a11[j]);
      r12[k]=r11[j];
      printf (" x ");
      printf ("%s", a11[k]);
      strcpy (a12[l],a11[k]);
      r12[l]=r11[k];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r12[k]++;
}else{
r12[l]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
      printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a12[m]);
printf (" fez ");
printf ("%d", r12[m]);
printf (" pt(s)");
}
    }
  if (cont==12){
    printf("\n%s", a12[3]);
    strcpy (a13[0],a12[3]);
    r13[0]=r12[3];
    printf (" x ");
    printf ("%s", a12[1]);
    strcpy (a13[1], a12[1]);
    r13[1]=r12[1];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r13[0]++;
      }else{
      r13[1]++;
      }
    j=5;
    k=3;
    l=2;
    while (i<(nlsr-2)){
      printf ("\n%s", a12[j]);
      strcpy (a13[l],a12[j]);
      r13[l]=r12[j];
      printf (" x ");
      printf ("%s", a12[l]);
      strcpy (a13[k], a12[l]);
      r13[k]=r12[l];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r13[l]++;
}else{
r13[k]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
    aux = (ncs)-2;
    aux2 = (ncs)-1;
    printf ("\n%s", a12[aux]);
    strcpy (a13[aux], a12[aux]);
    r13[aux]=r12[aux];
    printf (" x ");
    printf ("%s", a12[0]);
    strcpy (a13[aux2], a12[0]);
    r13[aux2]=r12[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r13[aux]++;
      }else{
      r13[aux2]++;
      }
    printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a13[m]);
printf (" fez ");
printf ("%d", r13[m]);
printf (" pt(s)");
}
    }
 if (cont==13){
    aux=(ncs)-1;
    printf ("\n%s", a13[aux]);
    strcpy (a14[0],a13[aux]);
    r14[0]=r13[aux];
    printf (" x ");
    printf ("%s", a13[0]);
    strcpy (a14[1],a13[0]);
    r14[1]=r13[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r14[0]++;
      }else{
      r14[1]++;
      }
    j=1;
    k=2;
    l=3;
    while (i<(nlsr-1)){
      printf ("\n%s", a13[j]);
      strcpy (a14[k],a13[j]);
      r14[k]=r13[j];
      printf (" x ");
      printf ("%s", a13[k]);
      strcpy (a14[l],a13[k]);
      r14[l]=r13[k];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r14[k]++;
}else{
r14[l]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
      printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a14[m]);
printf (" fez ");
printf ("%d", r14[m]);
printf (" pt(s)");
}
    }
  if (cont==14){
    printf("\n%s", a14[3]);
    strcpy (a15[0],a14[3]);
    r15[0]=r14[3];
    printf (" x ");
    printf ("%s", a14[1]);
    strcpy (a15[1], a14[1]);
    r15[1]=r14[1];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r15[0]++;
      }else{
      r15[1]++;
      }
    j=5;
    k=3;
    l=2;
    while (i<(nlsr-2)){
      printf ("\n%s", a14[j]);
      strcpy (a15[l],a14[j]);
      r15[l]=r14[j];
      printf (" x ");
      printf ("%s", a14[l]);
      strcpy (a15[k], a14[l]);
      r15[k]=r14[l];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r15[l]++;
}else{
r15[k]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
    aux = (ncs)-2;
    aux2 = (ncs)-1;
    printf ("\n%s", a14[aux]);
    strcpy (a15[aux], a14[aux]);
    r15[aux]=r14[aux];
    printf (" x ");
    printf ("%s", a14[0]);
    strcpy (a15[aux2], a14[0]);
    r15[aux2]=r14[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r15[aux]++;
      }else{
      r15[aux2]++;
      }
    printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a15[m]);
printf (" fez ");
printf ("%d", r15[m]);
printf (" pt(s)");
}
    }
 if (cont==15){
    aux=(ncs)-1;
    printf ("\n%s", a15[aux]);
    strcpy (a16[0],a15[aux]);
    r16[0]=r15[aux];
    printf (" x ");
    printf ("%s", a15[0]);
    strcpy (a16[1],a15[0]);
    r16[1]=r15[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r16[0]++;
      }else{
      r16[1]++;
      }
    j=1;
    k=2;
    l=3;
    while (i<(nlsr-1)){
      printf ("\n%s", a15[j]);
      strcpy (a16[k],a15[j]);
      r16[k]=r15[j];
      printf (" x ");
      printf ("%s", a15[k]);
      strcpy (a16[l],a15[k]);
      r16[l]=r15[k];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r16[k]++;
}else{
r16[l]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
      printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a16[m]);
printf (" fez ");
printf ("%d", r16[m]);
printf (" pt(s)");
}
    }
  if (cont==16){
    printf("\n%s", a16[3]);
    strcpy (a17[0],a16[3]);
    r17[0]=r16[3];
    printf (" x ");
    printf ("%s", a16[1]);
    strcpy (a17[1], a16[1]);
    r17[1]=r16[1];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r17[0]++;
      }else{
      r17[1]++;
      }
    j=5;
    k=3;
    l=2;
    while (i<(nlsr-2)){
      printf ("\n%s", a16[j]);
      strcpy (a17[l],a16[j]);
      r17[l]=r16[j];
      printf (" x ");
      printf ("%s", a16[l]);
      strcpy (a17[k], a16[l]);
      r17[k]=r16[l];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r17[l]++;
}else{
r17[k]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
    aux = (ncs)-2;
    aux2 = (ncs)-1;
    printf ("\n%s", a16[aux]);
    strcpy (a17[aux], a16[aux]);
    r17[aux]=r16[aux];
    printf (" x ");
    printf ("%s", a16[0]);
    strcpy (a17[aux2], a16[0]);
    r17[aux2]=r16[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r17[aux]++;
      }else{
      r17[aux2]++;
      }
    printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a17[m]);
printf (" fez ");
printf ("%d", r17[m]);
printf (" pt(s)");
}
    }
 if (cont==17){
    aux=(ncs)-1;
    printf ("\n%s", a17[aux]);
    strcpy (a18[0],a17[aux]);
    r18[0]=r17[aux];
    printf (" x ");
    printf ("%s", a17[0]);
    strcpy (a18[1],a17[0]);
    r18[1]=r17[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r18[0]++;
      }else{
      r18[1]++;
      }
    j=1;
    k=2;
    l=3;
    while (i<(nlsr-1)){
      printf ("\n%s", a17[j]);
      strcpy (a18[k],a17[j]);
      r18[k]=r17[j];
      printf (" x ");
      printf ("%s", a17[k]);
      strcpy (a18[l],a17[k]);
      r18[l]=r17[k];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r18[k]++;
}else{
r18[l]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
      printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a18[m]);
printf (" fez ");
printf ("%d", r18[m]);
printf (" pt(s)");
}
    }
  if (cont==18){
    printf("\n%s", a18[3]);
    strcpy (a19[0],a18[3]);
    r19[0]=r18[3];
    printf (" x ");
    printf ("%s", a18[1]);
    strcpy (a19[1], a18[1]);
    r19[1]=r18[1];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r19[0]++;
      }else{
      r19[1]++;
      }
    j=5;
    k=3;
    l=2;
    while (i<(nlsr-2)){
      printf ("\n%s", a18[j]);
      strcpy (a19[l],a18[j]);
      r19[l]=r18[j];
      printf (" x ");
      printf ("%s", a18[l]);
      strcpy (a19[k], a18[l]);
      r19[k]=r18[l];
      printf ("\nO vencedor ‚ (digite 1 ou 2): ");
      scanf ("%d", &raux);
      if (raux==1){
r19[l]++;
}else{
r19[k]++;
}
      i++;
      j=(j+2);
      k=(k+2);
      l=(l+2);
      }
    aux = (ncs)-2;
    aux2 = (ncs)-1;
    printf ("\n%s", a18[aux]);
    strcpy (a17[aux], a18[aux]);
    r19[aux]=r18[aux];
    printf (" x ");
    printf ("%s", a18[0]);
    strcpy (a17[aux2], a18[0]);
    r19[aux2]=r18[0];
    printf ("\nO vencedor ‚ (digite 1 ou 2): ");
    scanf ("%d", &raux);
    if (raux==1){
      r19[aux]++;
      }else{
      r19[aux2]++;
      }
    printf ("\nPontua‡Æo atual:");
      for (m=0; m<ncs; m++){
printf ("\n%s", a19[m]);
printf (" fez ");
printf ("%d", r19[m]);
printf (" pt(s)");
}
    }

}
return 0;
}

int D20 ()
{
int x = random (20);
return (x)+1;
}

Programa em Pascal que ordena e intercala vetores

{
Curso        : Análise e Desenvolvimento de Sistemas
Turma        : Tarde
Professor    : Aka
Aluno        : Lucas
Matrícula    : 12200935 e
Data         : 30/11/2012

Programa     EP02.pas - Intercalação de Dois Vetores

Objetivo:    O programa deve receber números inteiros que são alocados em dois vetores e chamar um
             procedimento que intercala os dois vetores ordenados.

Descrição do Programa:
          Segue as seguintes instruções:

          1. Lê M e um vetor de inteiros com M elementos
          2. Lê N e outro vetor com N elementos
          3. Imprime os valores lidos
          4. Ordena os vetores
          5. Imprime os vetores após a ordenação
          6. Chama o procedimento de intercalação passando os seis parâmetros
}
program ep02;
type Vetor1 = array [1..20] of integer;
type Vetor2 = array [1..40] of integer;
procedure IntercalaVetor (var a,b: Vetor1; m,n: integer;
                          var c: Vetor2; k: integer);
var x,y,z: integer;
begin
x:=1;
y:=1;
z:=1;
while z<=k do
  begin
    if (a[x] < b[y]) and (x <= m) then
      begin
      c[z]:= a[x];
      x:= x+1;
      z:= z+1;
      end;
    if (a[x] > b[y]) and (y <= n) then
      begin
      c[z]:= b[y];
      y:= y+1;
      z:= z+1;
      end;
    if a[x] = b[y] then
      begin
      c[z]:= b[y];
      y:= y+1;
      z:= z+1;
      end;
    if x > m then
      begin
      c[z]:= b[y];
      y:= y+1;
      z:= z+1;
      end;
    if (x > m) and (y = n) then
      begin
      c[z]:= b[y];
      y:= y+1;
      z:= z+1;
      end;
    if y > n then
      begin
      c[z]:= a[x];
      x:= x+1;
      z:= z+1;
      end;
    if (y > n) and (x = m) then
      begin
      c[z]:= a[x];
      x:= x+1;
      z:= z+1;
      end;
  end;
end;
var a,b: Vetor1; c: Vetor2;
m,n,i,j,k,aux1,aux2: integer;
begin
write ('Insira m com valor máximo de 20: ');
readln (m);
for i:=1 to m do begin
  write ('Entre com a[',i,']');
  readln (a[i]);
end;
write ('Insira n com valor máximo de 20: ');
readln (n);
for j:=1 to n do begin
  write ('Entre com b[',j,']');
  readln (b[j]);
end;
i:=1;
j:=1;
writeln ('Valores de a: ');
for i:=1 to m do
  writeln (a[i]);
writeln ('Valores de b: ');
for j:=1 to n do
  writeln (b[j]);
i:=1;
j:=1;
for i:= 1 to m-1 do
  for j:= i+1 to m do
    if a[i] > a[j] then
      begin
        aux1:= a[j];
        a[j]:= a[i];
        a[i]:= aux1;
      end;
i:=1;
j:=1;
for i:=1 to n-1 do
  for j:= i+1 to n do
   if b[i] > b[j] then
     begin
       aux2:= b[j];
       b[j]:= b[i];
       b[i]:= aux2;
     end;
i:=1;
j:=1;
writeln ('Valores de a ordenados: ');
for i:=1 to m do
  writeln (a[i]);
writeln ('Valores de b ordenados: ');
for j:=1 to n do
  writeln (b[j]);
k:= m+n;
writeln ('Valores de c: ');
IntercalaVetor (a,b,m,n,c,k);
i:=1;
for i:=1 to k do
writeln (c[i]);
end.

Programa em Pascal que calcula datas

{
Curso        : An lise e Desenvolvimento de Sistemas
Turma        : Tarde
Professor    : Aka
Aluno        : Lucas
Matr¡cula    : 12200935
Data         : 28/09/2012

Programa     EP01.pas - O AmanhÆ

Objetivo:    O programa recebe uma data e imprime o dia seguinte.

Descri‡Æo do Programa:
          A data dever  estar no formato (dd mm aaaa) e ser  impresso o dia seguinte

          Ser  feita a consistˆncia sobre a data:
          1. Meses com 30 ou 31 dias
          2. Fevereiro (28 ou 29 dias). Ano bissexto: ser  verificado se o ano ‚ m£ltiplo
             de 4 mas nÆo de 100, ou se ‚ m£ltiplo de 400.
}
program ep01;
var
dia,mes,ano,ds,ms,as,im,am4,am100,am400,ab: integer;
begin
write ('Entre com uma data: dd mm aaaa: ');
readln (dia,mes,ano);
If (dia<1) or (dia>31) or (mes<1) or (mes>12) then begin
writeln ('Data inv lida');
exit;
end;
am4:=ano-ano div 4*4;
am100:=ano-ano div 100*100;
am400:=ano-ano div 400*400;
If (am4=0) and (am100<>0) or (am400=0) then
ab:=1
Else
ab:=0;
If (mes=4) or (mes=6) or (mes=9) or (mes=11) then
im:=0;
If (mes=1) or (mes=3) or (mes=5) or (mes=7) or (mes=8) or (mes=10) or (mes=12) then
im:=1;
If (mes=2) then
im:=2;
If (mes=2) and (ab=1) then
im:=3;
If (im=2) and (dia>28) then begin
writeln ('Data inv lida');
exit;
end;
If (im=0) and (dia=31) then begin
writeln ('Data inv lida');
exit;
end;
If (im=3) and (dia>29) then begin
writeln ('Data inv lida');
exit;
end;
If (dia=28) and (im=2) or (dia=30) and (im=0) or (dia=31) and (im=1) or (dia=29) and (im=3) then
ds:=1
Else
ds:=dia+1;
If ds=1 then
ms:=mes+1
Else
ms:=mes;
If (mes=12) and (ms=13) then begin
as:=ano+1;
ms:=1;
end
Else
as:=ano;
writeln (ds,'/',ms,'/',as);

end.

Macro para substituir caracteres em VBA

Attribute VB_Name = "Módulo1" Sub SeparaTexto() Range("I30") = Replace(Range("H30"), "ABC", " ") End Sub

Macro para limpar backup em python

import os,time,sys,datetime


def limparbackup (pasta,dias):
    for raiz,diretorios,arquivos in os.walk (pasta):
        for arquivo in arquivos:
            status = os.stat(os.path.join(raiz,arquivo))
            DataCriacao = time.localtime(status[9])
            diasint = int (dias)
            DiaAtual = datetime.date.today()
            QtdDias = datetime.timedelta(diasint)
            Limite = DiaAtual - QtdDias
            DataLimite = Limite.timetuple()
            if (arquivo.endswith ('.bak')or arquivo.endswith ('.trq') ) and (DataLimite >  DataCriacao) :
                os.remove (os.path.join(raiz,arquivo))

limparbackup(sys.argv[1],sys.argv[2])

Macro para apagar arquivos no Windows

forfiles -p "c:windowstemp" -s -d -1 -m *.tmp -c "cmd /c del /f /q @path"
for %G in (.bak, .trq) do forfiles -p "d:teste" -s -m *%G -c "cmd /c /del /f /q @path"

NET USE V: \\devexpress\C$
Forfiles -p V:\FULL\ -s -m *.* -d -7 -c "cmd /c del /q @path"

Delimitador de texto em C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace Delimitador
{
    class Program
    {
        static void Main(string[] args)
        {
            string camIni;
            string camFin;
            Console.WriteLine("Insira o caminho do txt de entrada:");
            camIni = Console.ReadLine();
            Console.WriteLine("Insira o caminho onde o txt modificado deve ser criado:");
            camFin = Console.ReadLine();
            string texto = System.IO.File.ReadAllText(@camIni); //Lê o txt como uma única string
            StringBuilder delimitado = new StringBuilder(); //Cria a string manipulável onde o txt será alterado
            delimitado.Append(texto); //Copia a string fixa para a manipulável
            delimitado[0] = ';'; //cria divisões para que a primeira linha fique no mesmo padrão que as debaixo
            delimitado[1] = ';';
            int j, k, l, m; //contadores
            for (int i = 0; i < texto.Length - 3; i++) //percorre a string
            {
                j = i + 1;
                k = j + 1;
                l = k + 1;
                m = l + 1;
 
                if (texto[i] != ' ' && texto[j] == ' ' && texto[k] == ' ' && texto[l] == ' ')//"coloca" o delimitador quando há 3 espaços consecutivos
                {
                    delimitado[j] = ';';
                }
                if (texto[i] == '\n')//troca a quebra de linha por um delimitador
                {
                    delimitado[i] = ';';
                }
            }
            StreamWriter txtdelim = new StreamWriter(camFin, true, Encoding.Unicode);//cria o txt que recebe a string alterada
            txtdelim.Write(delimitado);//preenche o txt
            txtdelim.Close();//salva o arquivo
            System.Console.WriteLine("Arquivo original:\n{0}", texto);//mostra o txt original na tela
            System.Console.WriteLine("Arquivo modificado:\n{0}", delimitado);//mostra o txt alterado na tela

            Console.WriteLine("Pressione qualquer tecla para sair.");//avisa como sair e mantém a tela aberta
            System.Console.ReadKey();
        }
    }
}

quarta-feira, 27 de maio de 2015

Objetivo

O objetivo do blog é usar a ferramenta de postagem para converter rapidamente textos pré-formatados de outras fontes em html. Mas serão disponibilizados códigos ou trechos de códigos para fomentar a discussão e o compartilhamento de conhecimento em programação.