Ir para conteúdo
Fórum Script Brasil

Paulo Jardim

Membros
  • Total de itens

    77
  • Registro em

  • Última visita

Sobre Paulo Jardim

Paulo Jardim's Achievements

0

Reputação

  1. http://scriptbrasil.com.br/forum/index.php?showtopic=167549 de uma oçhada, nesse exempl oele faz o que você quer. Agora precisa estudar bem algumas funções do C: é isso aqui que você vai precisar fazer while ( !feof(saida) && achou2 ==5) // mudar o status do arquivo saida { fscanf(saida, "%s", &banco2.nome2); fscanf(saida, "%s", &banco2.status2); fseek (saida, 0, SEEK_CUR); tamfile2=ftell (saida); fscanf(saida, "%s", &banco2.cliente2); fscanf(saida, "%d", &banco2.horas2); fscanf(saida, "%f", &banco2.valorhora2); if (strcmpi (nomegarota, banco2.nome2) == 0 ) // Caso já tenha no arquivo saida.txt o nome só mudar o status para A { fseek ( saida , tamfile2-1 , SEEK_SET ); // TAMFILE ARMAZENOU A POSIÇÃO DO STATUS NO TXT if (op6 == 1) //'TAMLIFE-1' É A POSIÇÃO EXATA ONDE FICA O STATUS fputs ( "A" , saida ); //ASSIM POSSO SUBSTITUIR O STATUS. if (op6 == 2) fputs ( "D" , saida ); if (op6 == 3) fputs ( "S" , saida ); achou2=3; fclose(saida); } precisa disso declarado tb. fpos_t position; // variavel necessária para uso de algumas funções stdio.h
  2. Não é pior ai. Se você só precisa saber qual é a última letrar é só você usar STRLEN que conta quantas letras tem e mandar dar um pint na ultima: OBS: um dos erros foi porque você usou = mo lugar de == EX: #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char nome[15]; int x; char u_letra; int contLetras; int i =0; printf("Digite o seu nome: "); gets(nome); contLetras = strlen(nome); for(i = 0; i < contLetras; i++) { if (nome[i] != ' ' ) u_letra = nome[i]; } printf ("A ultima letra do seu nome e : %c\n\n" , u_letra); system("pause"); return(0); }
  3. Galera, achei isso para o linux. Mais alguém sabe como posso usar isso no devc++ ou como posso utilizar isso pro windows? /* @file * --> Servidor <-- * * * Este programa implementa Servidor de arquivos que faz um Upload de * arquivos usando algumas chamadas de sockets. * * * $Revision: 1.10 $ $Date: 2005/11/21 19:24:22 $ * * (C) Copyright 2005 Vanderson Rodrigues * */ #include <getopt.h> #include <time.h> #include <sys/utsname.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/stat.h> #include <sys/types.h> #include <sys/fcntl.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <arpa/inet.h> #define BUF_SIZE 4096 #define QUEUE_SIZE 10 #define FILE_MODE 0664 void sistema(void) { struct utsname u; uname(&u); printf("Sistema Operacional : %s - Release %s\n", u.sysname, u.release); printf("Servidor: Rodando em %s\n", u.nodename); } void limpar(void) { printf("{FONTE}33[2J"); /* limpa a tela */ printf("{FONTE}33[1H"); /* poe o curso no topo */ } void fatal(char *string) { printf("%s", string); exit(EXIT_FAILURE); } void uso (char *prognome) { printf("Uso: %s [-p porta] [-h]\n", prognome); printf("\t porta - Porta TCP\n"); printf("\t h - Mostra Essa ajuda\n"); exit(EXIT_SUCCESS); } int main(int argc, char **argv) { int s, b, l, fd, sa, bytes, on = 1; char buf[BUF_SIZE]; /* buffer para saida do arquivo */ struct sockaddr_in local; /* Pega Endereco IP */ struct sockaddr_in remoto; /* Pega Endereco IP */ int sin_size, optch, porta; char *client_ip, stropts[] = "hp:"; char arq_nome[256], arq_tamanho[256]; time_t time1, time2; while ((optch = getopt(argc, argv, stropts)) != EOF) { switch (optch) { case 'h': uso(argv[0]); return 0; case 'p': porta = atoi(optarg); break; default: fprintf(stderr, "digite -h para ajuda\n"); exit(EXIT_FAILURE); } } if ( argc != 3) { fprintf(stderr,"Erro: Faltando Argumentos.\n"); fputs("Use -h para ajuda.\n",stderr); exit(EXIT_FAILURE); } /* Constroi a estrutura de endereco pra amarrar com Servidor. */ memset(&local, 0, sizeof(local)); /* zera local */ local.sin_family = AF_INET; local.sin_addr.s_addr = htonl(INADDR_ANY); local.sin_port = htons(porta); /* Cria socket */ if ((s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0 ) fatal("Falha ao Cria Socket\n"); /* diz pra aceitar mais de uma conexao */ setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *) &on, sizeof(on)); if ((b = bind(s, (struct sockaddr *) &local, sizeof(local))) < 0) fatal("Bind Falhou\n"); /* Especifica o tamanho da fila */ if ((l = listen(s, QUEUE_SIZE)) < 0) fatal("listen failed"); limpar(); sistema(); /* Loop principal. Esperando por conexao */ while (1) { printf("Servidor: Aguardando Conexao.\n"); sin_size = sizeof(struct sockaddr_in); /* bloco para aceitar a requisicaoi */ if ((sa = accept(s,( struct sockaddr *)&remoto, &sin_size)) < 0) fatal("Falha no accept\n"); time(&time1); client_ip = inet_ntoa(remoto.sin_addr); printf(">>> Servidor: Conectado a %s Porta: %d\n", client_ip, remoto.sin_port); /* Recebe e imprime na tela o nome do Arquivo */ if ((bytes = recv(sa, buf, 256, 0)) < 0) fprintf(stderr, "Falha no recebimento de dados\n"); buf[bytes] = '{FONTE}'; strcpy(arq_nome, buf); printf(">>> Recebendo Arquivo: "); printf("\"%s\" --> ", buf); /* zera buf */ bzero(buf, BUF_SIZE); /* Recebe e imprime o tamanho do Arquivo */ if ((bytes = recv(sa, buf, 256, 0)) < 0) fprintf(stderr, "Falha no recebimento de dados\n"); buf[bytes] = '{FONTE}'; strcpy(arq_tamanho, buf); printf("%sK \n", buf); printf(">>> Aguarde...\n"); /* Cria diretorio com IP do cliente para amarmazenar o arquivo * recebido do cliente */ mkdir(client_ip, 0766); chdir(client_ip); /* cria o arquivo */ if((fd = open(arq_nome, O_RDWR | O_CREAT, FILE_MODE)) < 0) { fatal("não foi possivel abrir arquivo\n"); close(fd); close(sa); continue; } /* Recebe os dados do arquivo */ while ((bytes = recv(sa, buf, BUF_SIZE, 0)) > 0) { write(fd, buf, bytes); } time(&time2); /* Informa Na saida padrão o onde o arquivo foi armazenado */ printf(">>> Arquivo Recebido com Sucesso !\n"); printf(">>> Aviso:\n"); printf(">>>\tCheque o Arquivo \"%s\" no Diretorio .\"/%s\"\n>>>\n", arq_nome, client_ip); chdir(".."); /* Volta ao diretorio de origem */ close(fd); /* Fechar o arquivo */ close(sa); /* Encerra a conexao */ printf(">>> Dados Transferidos em : %d segundos\n", time2 - time1); printf(">>> Conexao Encerrada com %s\n\n", client_ip); } return 0; }
  4. Galera, Não sei por onde começar com isso, mas já andei pesquisando na internet e vi a possibilidade disso acontecer usando processos. Bom, vou explicar o que preciso fazer: Tenho de desenvolver um "file server" em c para armazenar arquivos que vão ser enviados por outros processos de outras linguagens, Java por exemplo, e também enviar os mesmos arquivos caso solciitado. Bom, esse serviço deve estar sempre ativo "escutando". Bom, o próximo passo é um pouco mais complexo: caso o servidor de arquaivos "caia" devo requisitar o arquivo solicitado pelo Outro processo aos processos ativos. Ou seja, caso o processo X solicite o arquivo Y e o servidor de arquivos esteja OFF, o processo X agora deve procurar procurar agora o arquivo Y nos processos ativos. claro que os mesmos devem ter cópia dos arquivos que estão nos processos. SImples não. Bom, para começar só preciso entender se isso será feito atravéz de Socket ou de alguma outra forma, e se existe exemplos disso na internet. Procurei galera, só achei voa socket.
  5. Essa questão de compilador é complicada mesmo, mas execute o código a seguir no seu Devc++ que não terá problema. #include<stdio.h> #include <stdlib.h> struct elemento { char dado; struct elemento *prox, *ant; }; void construir1(struct elemento **pinicio); int main () { struct elemento *pinicio; construir1(&pinicio); return 0; } void construir1(struct elemento **pinicio) { FILE *arq; struct elemento *p1; char c; arq = fopen ("t1.txt", "r+"); *pinicio = NULL; while ((c = getc (arq)) != EOF) { if (c != '\n'){ p1 =(struct elemento *) malloc (sizeof (struct elemento)); p1->dado = c; p1->prox = *pinicio; } if (*pinicio != NULL) { (*pinicio)->ant = p1; p1->ant = NULL; *pinicio = p1; } } fclose (arq); return; }
  6. arq = fopen ("t1.txt", "r+"); teste assim. Se você usar somente R ele espera que o arquivo já exista. se você coloca o + do lado, caso o arquivo nçao exista ele cria. O mesmo serve com o w, w+
  7. Paulo Jardim

    Repetição matriz

    Organize com funções fica melhor de ver e dar manutenção. #include <stdio.h> #include <stdlib.h> #include <time.h> #include <conio.h> void menu(); void gerarMatriz(); void imprimirMatriz(); int matriz[10][10]; int main() { gerarMatriz(); menu(); } void menu() { int opcao; system("cls"); printf("1 - Todos os numeros\n"); printf("2 - Pares\n"); printf("3 - Impares\n"); printf("4 - Menores que 20\n"); printf("5 - Maiores que 30\n"); printf("6 - Gerar Novamente\n"); printf("7 - Sair\n"); scanf("%d", &opcao); switch(opcao) { case 1: //aki vai a ultima matriz gerada imprimirMatriz(); break; case 2: break; case 3: break; case 4: break; case 5: break; case 6: break; case 7: exit(0); break; } menu(); } void gerarMatriz() { int n,x=0, y=0, a, b, opcao; srand(time(NULL)); for(x=0;x<10;x++) { for(y=0;y<10;y++) { a=rand()%40+5; matriz[x][y]=a*1; } } for(x=0;x<10;x++) { printf("\n%d", matriz[x][y]); for(y=0;y<10;y++) { printf("\%d - ",matriz[x][y]); } } } void imprimirMatriz() { int x,y; for(x=0;x<10;x++) { printf("\n%d", matriz[x][y]); for(y=0;y<10;y++) { printf("\%d - ",matriz[x][y]); } } getch(); }
  8. Olha uma das formas é essa que você fez, na hora que u usuário estiver digitando os números você compara para ver se é maior que o maior, se for você altera o maior: if(NumDigitado > maior) maior = NumDigitado; o mesmo você pode fazer para verificar o número menor: Segue o código abaixo como exemplo: Não aconselho utilizar o break; gostaria que pensasse e refizess eo código de forma mais organizada. #include <stdio.h> #include <stdlib.h> main() { int cont, soma, numDigitado, maior, menor, media; printf("Digite numeros:\n"); soma=0; cont = 0; while(numDigitado!=0) { scanf("%d",&numDigitado); if (numDigitado == 0) break; if (cont == 0) { maior = numDigitado; menor = numDigitado; } soma=soma+numDigitado; cont++; if(numDigitado > maior) maior = numDigitado; if( numDigitado < menor) menor=numDigitado; } printf("Soma = %d\n",soma); printf("Total Digitados = %d\n",cont); printf("Media = %d\n",media=soma/cont); printf("O maior numero digitado = %d\n", maior); printf("O menor numero digitado = %d\n", menor); system("pause"); }
  9. Maneira bem didatica. #include <stdio.h> #include <stdlib.h> #include <string.h> void Exercicio(); int calculaVoltas(int medida); int calculaAngulo(int medida); int main() { Exercicio(); } void Exercicio() { int medida=0; int voltas=0; int angulo=0; printf("Digite uma medida de um triangulo : "); scanf("%d",&medida); voltas = calculaVoltas(medida); angulo = calculaAngulo(medida); printf("%d ", voltas); printf("%d ", angulo); if(medida>0 && medida<=360) { if(medida>=0 && medida<=90) { printf("A medida \x82 do Primeiro quadrante"); } else if(medida>90 && medida<=180) { printf("A medida \x82 do Segundo quadrante"); } else if(medida>180 && medida<=270) { printf("A medida \x82 do Terceiro quadrante"); } else { printf("A medida \x82 do Quarto quadrante"); } } system("PAUSE"); } int calculaVoltas(int medida) { int voltas; voltas = medida / 360; return voltas; } int calculaAngulo(int medida) { int angulo; angulo = medida % 360; return angulo; }
  10. Trate esse inteiro como uma string... depois percorra o vetor transformando cada psição em inteiro e somando :P
  11. bom, na verdade você pode usar a função SYSTEM() para enviar linhas de comando como se estivesse dentro do promt de comando ( CMD ). Ou seja. Supondo que seu programa se chame "algo.exe" e esteja no mesmo diretório do nosso exe basta digitar #include <stdlib.h> int main() { system("algo.exe"); }
  12. Bom, a resposta para o seu exerciicio numero 1 esta errada. O exercicio pede que leia um número inteiro e não vários números. Eu fária da seguinte forma. Primeiro eu criaria um vetor de strings e faria a leitura através de string depois percorria o vetor transformando string em inteiro. já o segundo não sei se entendi bem mais pelo visto se você tiver 10 soldados então você terá 10 filas e o número de soldados será 10, no caso de 11 soldados serão 11 filas e 11 na última fila...etc... não tem muito segredo.
  13. procurar na net sobre Fopen e Fclose tem bastante coisa tb tenho um programa / tutorial mais é muito avancado no uso de files. http://scriptbrasil.com.br/forum/index.php?showtopic=167549
  14. Paulo Jardim

    Somatório

    Sim, tem sim. vou tentar fazer aqui. Envolve conceito de IA. vou gostar. vou gostar.
×
×
  • Criar Novo...