Ir para conteúdo
Fórum Script Brasil

roccoC/C++

Membros
  • Total de itens

    496
  • Registro em

  • Última visita

Tudo que roccoC/C++ postou

  1. Matriz de strings são Matrizes bidimensional de caracteres, onde uma Matriz bidimensional é uma das formas de Matriz Multidimensional. Sendo duas dimensões, a dimensão do lado esquerdo se refere à quantidade de string e a dimensão da direita nos diz a respeito do comprimento máximo de cada string, lembrando que o último caractere é o '\0', exigido. Veja estas imagens abaixo: http://3.bp.blogspot.com/--5OCM_F9E3g/U5MKdzUJAPI/AAAAAAAABbs/1W1Je9oT_Vs/s1600/matrstr.PNG http://2.bp.blogspot.com/-XHY67XKFilo/U5Mvltf3KII/AAAAAAAABcE/i7m1PFV61Rg/s1600/matrstring.PNG Veja o link abaixo: http://codigosfontes-ccplus-plus.blogspot.com.br/2012/11/matriz-multidimensional-de-strings.html
  2. A leitura do arquivo contendo os nomes cadastrados é feita normalmente, com uso padrão para este tipo de situação, e não cabe a mim ensinar como isto é feito,porém são copiados numa Matriz do tipo char e são imprimidos por printf(); Quando acontece a solicitação de uma entrada, são procurados pela função strstr(); dentro da Matriz de caracteres do tipo char, quando encontrado é mostrado o nome e a sua linha onde se encontra. Vale lembrar que a função strstr ( string1, string2 ); também da biblioteca strin.h, permite localizar uma substring dentro de uma string, e seu uso é muito fácil, como todas as outras funções desta biblioteca, que estão prontas para o uso, com poucas modificações. Veja imagens do programa em execução: http://3.bp.blogspot.com/-uWJwKTGCJ1c/U5IKEuxd1fI/AAAAAAAABbE/Yi2jiI6w7XQ/s1600/pesq.PNG http://2.bp.blogspot.com/-s49LOnDDCd8/U5IKFxCDMkI/AAAAAAAABbM/qHAfiA1cO7w/s1600/pesqis.PNG http://1.bp.blogspot.com/-hGhZZv0GWZc/U5IKGjmJKTI/AAAAAAAABbU/exBckxcoq_0/s1600/pesqisnd.PNG http://4.bp.blogspot.com/-8hopCq34RyA/U5IKGUDYHqI/AAAAAAAABbQ/POVyAga2cp4/s1600/pesqisndo.PNG Veja abaixo olink do código do Programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2014/06/pesquisando-string-em-arquivo-ii.html
  3. Mais um programa no qual se lê uma matriz de string por um arquivo de texto, só que desta vez a ordenação é sem função, é feita no braço, más não foi fácil chegar a estes ótimos resultados, porém, valeu a pena. //Salve os nomes abaixos num arquivo de texto, com o nome de: Nomes.txt /* Eder Costa Humberto Gomes Dijalma Lacerda Caroline Silva Igor Goncalves Bruna Carla Fabio Quadros Geany Barros Jaqueline Vega Ana Celia */ Veja abaixo algumas imagens do programa em execução: http://1.bp.blogspot.com/-aqtIouClcxY/U3f6K2R3UWI/AAAAAAAABXQ/V9bKYmH-dbc/s1600/semfunc.PNG http://3.bp.blogspot.com/-qaI5e3Cq_2Y/U3f6KLD_nbI/AAAAAAAABXM/pvpqvYE1Rm4/s1600/semfunceord.PNG Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2014/05/lendo-matriz-de-string-por-um-arquivo-e_17.html
  4. A lógica principal deste código é fazer a leitura do arquivo de texto como se fosse uma única string, e isto se tornou possível, tirando o \n de cada linha do arquivo, bastou pra isto usar a função strlen ( string ); que retorna o comprimento da string, e estrategicamente usar -1, num arranjo entre colchetes. A função strstr ( string1, string2 ); também da biblioteca strin.h, permite localizar uma substring dentro de uma string, e seu uso é muito fácil, como todas as outras funções desta biblioteca, que estão prontas para o uso, com poucas modificações. Veja imagens do programa em execução: http://2.bp.blogspot.com/-UY9fHuGwbNE/U4UeCNrq9BI/AAAAAAAABZ4/RCheu8SgV_s/s1600/pesstring.PNG http://4.bp.blogspot.com/-E20_JZlCSGQ/U4UeCmoevFI/AAAAAAAABaA/LTZ9sXFyBtY/s1600/pesstringar.PNG http://1.bp.blogspot.com/--HsRp__4bkM/U4UeB4t_xlI/AAAAAAAABZ0/UyutSv1G1zk/s1600/pesstringarquv.PNG Veja abaixo o link do código programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2014/05/pesquisando-string-num-arquivo-de-texto.html
  5. Preencher os campos de uma struct usando dados de um arquivo de texto não é tão difícil como parece, e neste código mostro uma das maneiras de fazer isto. usei um cadastro simples só pra testes, más pode ser amplamente modificado, por quem entende de programação em c. Veja abaixo o único e simples cadastro usado: Éder Costa Rua das Primícias 579 Pra testar, salve com o nome de: Nomes.txt, e coloque do lado do programa compilado. Veja abaixo algumas imagens do programa em execução: http://1.bp.blogspot.com/-JxqxVb_8g1Q/U4JCzZKm7RI/AAAAAAAABZc/hKgfQd5rf88/s1600/preestr.PNG http://1.bp.blogspot.com/-xJ4IZ3YMu_0/U4JC00vAkWI/AAAAAAAABZk/VWELyVy3jOQ/s1600/preestruct.PNG Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2014/05/preenchendo-os-campos-de-uma-struct-com.html
  6. Já vi muitos iniciantes em linguagem c perguntando como fazer pra se ler uma determinada linha em um arquivo de texto, por isso criei este simples código pra ensinar na prática como isto pode ser feito. O programa começa chamando a função continuando(); que contém poucas informações sobre o autor do código que sou eu mesmo, e dando duas opções, que é sair ou continuar usando respectivamente 0 ou 1. Na continuação, o programa imprime todos os nomes contidos no arquivo de texto que são estes abaixo: Éder Costa Humberto Gomes Dijalma Lacerda Caroline Silva Igor Gonçalves Bruna Carla Fábio Quadros Geany Barros Jaqueline Vega Ana Célia Salve com o nome de Nomes.txt, pra testar o programa. Após pressionada qualquer tecla o programa pede pra que se escolha um número entre 1 e 9, e indicando o -1 como saída. Está mais que claro que se for digitado um número acima de 9, será rejeitado, porque a entrada é seletiva. Ótimo programa para os amantes em linguagem c. Veja abaixo algumas imagens do programa em execução: http://3.bp.blogspot.com/-BEiF6QKQBR8/U4IXDe9IzgI/AAAAAAAABYc/SjYz84vxduk/s1600/linhesp.PNG http://3.bp.blogspot.com/-bhp4Z8_A0_I/U4IXDW1xH7I/AAAAAAAABYU/oftIo_o0kVg/s1600/linhesparq.PNG http://1.bp.blogspot.com/-jlc9y3L0iG0/U4IXCywcxII/AAAAAAAABYQ/L7xMxzwCfVw/s1600/linhesparqu.PNG http://2.bp.blogspot.com/-mboVgpMLyyI/U4IXElssH4I/AAAAAAAABYo/7LjS9wiLKlg/s1600/linhesparqui.PNG http://3.bp.blogspot.com/-dP6fbDkJB40/U4IXFJ6iWQI/AAAAAAAABY0/TEj0pxgdLU0/s1600/linhesparquiv.PNG http://2.bp.blogspot.com/-EYKuAgedjHQ/U4IXEysbCuI/AAAAAAAABYs/oUX-PqJYM70/s1600/linhesparquivo.PNG Veja abaixo o link do código do programa; http://codigosfontes-ccplus-plus.blogspot.com.br/2014/05/lendo-uma-linha-especifica-num-arquivo.html
  7. Se tem um programa que tanto impressiona um iniciante em programação principalmente Linguagem C, é Calculadora, o trunfo dos que estavam aprendendo eletrônica básica a alguns anos atrás quando eu estava também cursando isto, era montar um rádio. Oh! que alegria era ver um radinho funcionando, depois de tantos esforços para montá-lo olhando o esquema técnico e soldando componente a componente, com muito cuidado para não inverter as polaridades dos semicondutores, tempos de ouro que não voltam mais, que saudades! Bom, o programa é todo baseado em funções simples, e na função do Menu: Menucalculadora(); coloquei um switch case que é perfeito para escolha e muito simples de usar, se for digitado algo q ue não esteja nas opções o comando default entra em ação e aciona um bip, advertindo o usuário sobre seu erro, e o comando do while, onde a variável de controle é diferente de 0 faz a repetição remontando tudo do jeito que estava no início. Programa especialmente indicado a iniciantes em Linguagem C. Eis as saídas deste programa no cmd: http://3.bp.blogspot.com/-DvryhmstRL8/URbScu-P9yI/AAAAAAAAAQg/vrSkhSKkxpM/s1600/Img+01.JPG http://4.bp.blogspot.com/-f0g85Hpj2zI/URbRRvqSI1I/AAAAAAAAAQQ/saOxXqdHLhM/s1600/Img+02.JPG http://3.bp.blogspot.com/-x-gBNLwQKOE/URbRV500FlI/AAAAAAAAAQY/yHcqzbRlTiQ/s1600/Img+03.JPG Eis o código do programa no link abaixo: http://codigosfontes-ccplus-plus.blogspot.com.br/2013/02/programa-calculos.html
  8. Bom dia Nilton! Verifique a MP. Abraço
  9. rss... A coisa tá feia Nilton.. no fim de semana, vou me empenhar no seu código, amanhã não tenho tempo. Abraço
  10. Enquanto testo por aqui, dê uma olhada neste trecho de código abaixo: char Linha [ 100 ]; printf("\n\n"); char *resul; i = 1; while (!feof(arq)){ // Lê uma linha (inclusive com o '\n') resul = fgets(Linha, 11, arq); // o 'fgets' lê até 11 caracteres ou até o '\n' if (resul) // Se foi possível ler printf("\nLinha %d : %s",i,Linha); i++; } fclose(arq);getche(); Assim fica fácil chamar apenas os nomes das modelos aprovadas.
  11. Certo, mande o código! De qualquer modo, faço como lhe sujeri, se esforce pra adicionar os nomes das aprovadas num vetor de char, e imprima com printf(); pra ter certeza que tudo ocorreu bem, depois é só ordenar.
  12. Olá, Boa tarde! Esqueça struct por enquanto e Tente salvar os nomes das aprovadas num vetor de char, e faça a ordenação usando uma função. Explique melhor,o nome das aprovadas estão num arquivo, ou é mostrado direto na tela por printf(); ??
  13. O coração deste código é a função Quicksort, criada por C.A.R. Hoare em 1960.Dizem ser um método rápido e muito eficiente, eu por exemplo, tenho me dado bem com esta função, pode ver neste código que criei, como funciona bem. O programa começa Imprimindo o nosso Alfabeto em Maiúsculo, que foi carregado no vetor de char str[]; usando a função strlnw(); da biblioteca string.h, o Alfabeto é convertido em Minúsculo, e é imprimido também assim. Usando a função strcat(); também da biblioteca string.h, são concatenados e imprimidos também assim por printf. Em seguida, são enviados a um bloco, onde são embaralhados, e logo também são imprimidos, e são copiados num Arquivo de texto de nome: Alfabeto Desordenado, e são consequentemente lidos na tela do DOS.Então vem a famosa função quicksort(); que faz a Ordenação pela leitura do Arquivo "Alfabeto Desordenado". Salva em um novo Arquivo, agora com o nome de: Afabeto Ordenado, e abre em modo leitura na tela do Dos. E o programa termina agradecendo os usuários. Veja abaixo algumas imagens do programa em execução: http://4.bp.blogspot.com/-kVfyUJd2gQ8/U3P9Ypm9DLI/AAAAAAAABVk/0WXDOoeUEhc/s1600/Alf.PNG http://2.bp.blogspot.com/-THCNRPo0GX0/U3P9X6BryqI/AAAAAAAABVc/nw2H8eNcLBI/s1600/Alford.PNG http://4.bp.blogspot.com/-0Lf8Nx9DGSA/U3P9YW2hMtI/AAAAAAAABVg/7UstTLOdCZU/s1600/Alfordnd.PNG Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2014/05/alfabeto-abrindo-arquivo-lendo-e.html
  14. O Programa começa lendo uma Matriz Quadrada e Embaralhada num Arquivo de texto de Nome : "Matriz Embaralhada", logicamente precisei declarar outra Matriz, e dei o nome de mat_riz[10][10]; Esta matriz recebe uma cópia de todos os elementos que foram lidos do Arquivo de texto pela primeira Matriz. Para fazer uma ordenação completa, e não só por colunas ou linhas, declarei um vetor e dei o nome de vet [ 100 ]; para 100 posições, este vetor tem seus elementos ordenados e são todos copiados em um Arquivo de texto criado para esta finalidade, e depois seus elementos são lidos na tela do DOS. // A matriz abaixo foi usada como teste /* 36 48 34 89 25 56 1 59 2 81 15 22 65 17 91 6 11 93 26 55 85 8 35 24 39 27 76 14 21 99 66 95 87 69 100 51 20 18 71 46 33 45 57 67 80 50 64 82 83 92 31 13 94 16 47 10 61 63 74 60 54 88 37 77 23 38 86 43 72 78 70 98 73 52 42 28 68 3 41 75 58 79 84 97 4 5 9 19 7 32 44 62 90 53 40 30 96 29 12 49 */ Para testar o programa basta copiar a Matriz de teste acima que também tá incluída no código no bloco comentado, e salvar com o nome de: "Matriz Embaralhada.txt", Se o usuário salvar com um outro nome receberá a seguinte mensagem: "Problemas na abertura do arquivo " Programa criado no eclipse, e compilado pelo MinGW, que são minhas ferramentas padrão. Veja Algumas imagens do programa em execução abaixo: http://2.bp.blogspot.com/-FG7d5v0ELWk/U24p_p9SbPI/AAAAAAAABU0/W4Ht7tMil8M/s1600/lende.PNG http://4.bp.blogspot.com/-i2zKzFd1lZo/U24qAH1CQGI/AAAAAAAABU4/60bjyL6pMek/s1600/lendeeor.PNG http://4.bp.blogspot.com/-7BSGwlH5jfA/U24qAW3ECFI/AAAAAAAABU8/pVELHhBC5WM/s1600/lendeeord.PNG http://2.bp.blogspot.com/-g4nlnZc_jYw/U24qBGJbhfI/AAAAAAAABVI/blmL2_hWFUk/s1600/lendeeorden.PNG Veja o link do código do programa abaixo: http://codigosfontes-ccplus-plus.blogspot.com.br/2014/05/programa-comeca-lendo-uma-matriz.html
  15. Esta Matriz Dinâmica, é carregada através de um contador, onde deteminei previamente seus limites em 10 x 10, através do macro #tam. Ela é imprimida primeiramente ordenada,más é enviada a um bloco onde se embaralha seus elementos, e assim é copiada em um arquivo de texto, com o nome de "Matriz Embaralhada". E em seguida o arquivo é aberto, sendo sua leitura na tela do prompt de comando. No próximo bloco, a Matriz é repassada num Vetor estático que foi definido em 100 posições, e passa por um processo de ordenação, vindo à ser imprimido ordenado, e salvo em um outro arquivo de texto, com o nome de "Matriz Ordenada", e posteriormente lido na tela do DOS também. A função escolhida para leitura do arquivo, foi a "fgets", Esta versátil função, pode ler linhas inteiras por completo, ou aonde não for encontrado um "\n", uma operação bem sucedida faz com quer a função retorne o endereço da string, ou "NULL", se algo der errado. Fique a vontade de editar este código, para que fique claro o seu funcionamento. Veja abaixo algumas imagens do programa em execução: http://4.bp.blogspot.com/-x7iSlnAUTbw/U211eOGhFRI/AAAAAAAABTM/-oSJFNrZmUk/s1600/arqmt.PNG http://4.bp.blogspot.com/-PB0vcjXDUig/U211eVUCZUI/AAAAAAAABTQ/ivs7clGjmy0/s1600/arqmtr.PNG http://1.bp.blogspot.com/--hZPmzd1AK4/U211eWev12I/AAAAAAAABTY/4_nNP4hCxvw/s1600/arqmtriz.PNG http://3.bp.blogspot.com/-NIO2iSS_MAM/U211fXLsp-I/AAAAAAAABTg/5c0nS1x5wPM/s1600/arqmtrizord.PNG http://1.bp.blogspot.com/-utWwWQ-3iTM/U211f6Ro4OI/AAAAAAAABTs/KWhv2vu9sz0/s1600/arqmtrizordnd.PNG Veja abaixo, o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2014/05/matriz-salvando-num-arquivo-e-ordenando.html
  16. Ufa!! Vai dar trabalho! Como estou quebrando a cabeça com um outro código por aqui, só vou te desejar Boa Sorte, Falou Nilton? Forte Abraço, desculca por qualquer coisa.
  17. Fico feliz que tenha conseguido.Também já cometi este erro, agora presto mita atenção, Vou fzr por aqui, a parte da ordenação depois te falo como ficou..
  18. Acabei de testar aqui no Dev, veja a imagem abaixo: http://2.bp.blogspot.com/-RM95NZu8TZ8/U2ejEaXu1II/AAAAAAAABSg/GusfEH7d0bE/s1600/xcxcxc.PNG Veja o código testado: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> void mostrar() { char str[255]; FILE *arq; if ((arq = fopen("Modelos.dat","r")) == NULL) { printf("\nO arquivo não foi encontrado"); getche(); } if(arq) { while(!feof(arq)) { fgets(str,255,arq); printf("%s",str); } } fclose(arq); printf("\n\n"); system("PAUSE"); } /*void mAlfabetica(void); void mClassificadas(void);*/ int main() { printf("\n.::Programa para classificacao de Modelos::.\n\n"); printf("\n\nMenu\n\n"); for( ; ; ) { int opcao; printf("\n1 - Mostrar nomes das modelos contido em um arquivo. "); printf("\n2 - Mostrar nomes das modelos contido em um arquivo em ordem alfabetica."); printf("\n3 - Mostrar nomes das modelos classificas."); printf("\n0 - Sair "); scanf("%i", &opcao); if (opcao == 0) break; switch(opcao) { case 1: mostrar(); break; case 2: //mAlfabetica(); break; case 3: //mClassificadas(); break; default: printf("\nOpcao Invalida");break; } } printf("\nFim do Programa"); return 0; getche(); }Copie e cole este código no seu Dev, e veja se funciona. Por aqui funciona perfeitamente, e olha que desta vez teste com a extenão .c; Antes eu tava testando com a extensão .cpp, que é pra c++. Como estou no trabalho agora e por aqui é só correria,só vou poder te responder à noite quando eu chegar em casa. Abraço
  19. Qual versão do Dev você tá usando? Por aqui testei na versão 4.9.9.2 Windows seven 32 bits Compilador MinGW.
  20. Não é necessário, o seu código acima tá certo, e a função que te mostrei por último também, estou testando aqui no Dev e no eclipse, funcionou normal. Veja abaixo seu código funcionando: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> void mostrar() { char str[255]; FILE *arq; if ((arq = fopen("Modelos.dat","r")) == NULL) { printf("\nO arquivo não foi encontrado"); getche(); } if(arq) { while(!feof(arq)) { fgets(str,255,arq); printf("%s",str); } } fclose(arq); printf("\n\n"); system("PAUSE"); } /*void mAlfabetica(void); void mClassificadas(void);*/ int main() { printf("\n.::Programa para classificacao de Modelos::.\n\n"); printf("\n\nMenu\n\n"); for( ; ; ) { int opcao; printf("\n1 - Mostrar nomes das modelos contido em um arquivo. "); printf("\n2 - Mostrar nomes das modelos contido em um arquivo em ordem alfabetica."); printf("\n3 - Mostrar nomes das modelos classificas."); printf("\n0 - Sair "); scanf("%i", &opcao); if (opcao == 0) break; switch(opcao) { case 1: mostrar(); break; case 2: //mAlfabetica(); break; case 3: //mClassificadas(); break; default: printf("\nOpcao Invalida");break; } } printf("\nFim do Programa"); return 0; getche(); } Abraço
  21. O único erro da sua função é nesta linha abaixo veja: if ((arq = fopen("Modelos.dat","r")) == NULL); // Aqui não se usa ponto e vírgula { Basta tirar pra funcionar Substitui sua função mostrar(); por esta abaixo: void mostrar() { char str[255]; FILE *arq; arq = fopen("Modelos.dat","r"); if ( arq == NULL ){ printf("O arquivo não foi encontrado"); getche();exit(0); } if(arq) { while(!feof(arq)) { fgets(str,255,arq); printf("%s",str); } } fclose(arq); printf("\n\n"); system("PAUSE"); }
  22. Abriu normalmente, veja abaixo nas imagens: http://3.bp.blogspot.com/-fuyhPWl5ou8/U2UIWmMtvzI/AAAAAAAABR8/Tfcw_pzhCME/s1600/xcvf.PNG http://1.bp.blogspot.com/-KxfkTK20PsU/U2UIWsRmv7I/AAAAAAAABSE/MqdQAt1-C8c/s1600/xcvfer.PNG http://4.bp.blogspot.com/-b8cFiXi6PJo/U2UIWntzeWI/AAAAAAAABSI/NHMKJZ1PsaM/s1600/xcvferrt.PNG
  23. Certo, cola aqui que eu testo no meu programa
  24. O que tem dentro do arquivo? me diga primeiro
×
×
  • Criar Novo...