Ir para conteúdo
Fórum Script Brasil

Pesquisar na Comunidade

Mostrando resultados para as tags ''c++''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. Boa tarde pessoal, recentemente migrei para o ubunto 14.04LTS, e instalei o CodeBlocks para aproveitar meu tempo livre e programar um pouco, tive uma ideia de fazer um programinha de cadastramento de alunos, porém meu código quando chega em uma parte retorna um erro "Segmentation Fault(Core Dumped)", Esse problema está no meu código ou na própria IDE ? Quando passo o debugger me retorna o seguinte : warning: GDB: Failed to set controlling terminal: Operação não permitida E continua o programa, vou postar o código até a parte em que ocorre o bug. #include <stdio.h> #include <stdlib.h> #include <strings.h> #include <ctype.h> #define SIZE 200 char nome[SIZE][50]; char nomeResponsavel[SIZE][50]; long long numeroTel[SIZE]; int cpf[SIZE]; int RA[SIZE]; int op; void cadastro(); void pesquisar(); int main() { cadastro(); pesquisar(); } void cadastro() { static int linha; do{ printf("\t\t\t\t\tCADASTRO DE NUMERO %d\n",linha); printf("Digite o nome do aluno : "); scanf("%[a-z A-Z]s",nome[linha]); setbuf(stdin, NULL); printf("Digite o nome do Respons%cvel : ",160); scanf("%[a-z A-Z]s",nomeResponsavel[linha]); setbuf(stdin, NULL); printf("Digite o Telefone: "); scanf("%lld",numeroTel[linha]); //Onde segundo o debugger ocorre o erro. setbuf(stdin, NULL);
  2. Olá estou iniciando a programar em C++ e andei procurando alguns exercícios sobre funções e não achei o que procurava, pra quem já entende do assunto pode me ajudar dando alguns exemplos de tarefas simples realizadas com C++ usando funções e outras variáveis além da INT.
  3. vocês poderiam me ajudar com meu codigo?Está travando sempre no mesmo lugar na hr de preencher a matriz #include <iostream> using namespace std; #include <locale.h> #include <cmath> int linha; int coluna; int i = 0; int j = 0; int main() { setlocale(LC_ALL, "Portuguese"); cout<<"Esse programa é dedicado à soma, subtração, multiplicação e divisão de matriz"<<endl; cout<<"Digite primeiro a quantidade de linhas que a matriz deve ter:"<<endl; cin>>linha; cout<<"Agora digite a quantidade de colunas que a matriz deve ter:"<<endl; cin>>coluna; cout<<"A matriz que você deseja terá "<<linha<<" linhas e "<<coluna<<" colunas"<<endl; cout<<"Preciso que prencha sua matriz!"<<endl; double matriz[linha][coluna]; while(i <= linha) while(j <= coluna){ cout<<"Linha "<<i<<" coluna "<<j<<endl; cin>>matriz[j]; i++; j++; } }
  4. Boa noite povo , então sou um garoto de 15 anos e estou muito interessado em aprender a arte da programação , eu começei ver varios tutorial de c++ e tal mais eu queria que vocês me endicasem modos de eu treinar , pois eu sei o basico mais não tem oque fazer com isso .... Obrigado pela atenção
  5. Sou iniciante na linguagem C. Fiz um algoritmo que ordena uma matriz inteira unidimensional em ordem crescente. Alguém poderia me ajudar a deixar este código mais eficiente. #include<stdio.h> /*Quantidade de numeros*/ #define TAM 10 int main(){ int num[TAM], temp; register int i, t; /*Inicializar matriz*/ for(i=0;i<TAM;i++){ printf("\nInforme o %d numero: ", i+1); scanf("%d", &num); } /*Ordenar matriz em ordem crescente*/ for(i=0;i<TAM;i++){ for(t=0;t<TAM;t++){ if(num[t] > num[t+1]){ temp=num[t]; num[t]=num[t+1]; num[t+1]=temp; } } } for(i=0;i<TAM;i++){ printf("\n%d", num); } return 0; }
  6. Fiz em C um programa no Linux de multiplicação de matrizes de ordem 1000 A e B, (Ou seja, matrizes quadradas 1000x1000) que resulta em uma outra matriz C, só que agora eu tenho que adicionar threads e não sei como e nem aonde coloca-las. Eu preciso de 4 threads: 1 para calcular de 0 à 249; 2 para calcular de 250 à 499; 3 para calcular de 500 à 749; 4 para calcular de 750 à 999; Segue código abaixo: #include <time.h> #include <stdio.h> #include <stdlib.h> #include <pthread.h> int main(){ pthread_t thread_1; pthread_t thread_2; pthread_t thread_3; pthread_t thread_4; int i; int j; int linhas; int colunas; int ordem; long T1; long T2; float delta; printf("Digite a ordem das matrizes quadradas A e B: "); scanf("%d", &ordem); T1 = clock(); printf("\nAs matrizes quadradas A e B, são matrizes de ordem %d",ordem); ordem = ordem - 1; linhas = ordem; colunas = ordem; float A[linhas+1][colunas+1]; float B[linhas+1][colunas+1]; for(i = 0; i <= linhas; i++){ for(j = 0; j <= colunas; j++){ printf("\n\nEntre com o valor da matriz A[%d][%d]: ",i+1,j+1); scanf("%f", &A[i][j]); printf("\nEntre com o valor da matriz B[%d][%d]: ",i+1,j+1); scanf("%f", &B[i][j]); } } printf("\nA multiplicacao das matrizes A e B:\n\n"); for(i = 0; i <= linhas; i++) { for(j = 0; j <= colunas; j++) { float produto[linhas+1][colunas+1]; for(int AUX = 0; AUX <= ordem; AUX++) { produto[i][j] += A[i][AUX] * B[AUX][j]; } printf("%.2f ",produto[i][j]); } printf("\n"); } T2 = clock(); delta = (float)(T2-T1)/CLOCKS_PER_SEC; printf("\n\nTempo %.5f segundos",delta); return 0; } Desde já agradeço!
  7. Creio que tenha postado duas vezes (Não achei um local para excluir)
  8. Boa tarde, pessoal, tudo bem? Estou tentando programar um algoritmo simples em c++, que retorna a soma 1/(2*3)+1/(3*4)+....+1/((n+1)*(n+2)). Faz um tempinho que estava sem programar em c++, então estou tendo um pouco de problema. #include <iostream> #include <cmath> #include <cstdlib> #include <iomanip> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ using namespace std; int main(int argc, char** argv) { int n, i; long double soma=0, x; cout << "Insira o valor de termos da serie (n): " << endl; cin >> n; for (i=1;i<=n;i++) { x=1/((i+1)*(i+2)); soma=soma+x; } if (n!=0) cout << "O valor do somatorio dos n termos e: " << soma << endl; else cout << 0; system("PAUSE"); return EXIT_SUCCESS; } Esse é o programa, não sei porque ele me retorna um valor 0. Agradeço desde já a quem puder me ajudar!!
  9. meu codigo esta dando alguns erros, alguém pode me dar uma ajuda. segue em anexo os erros, se alguém quiser me ajudar... vai me ajudar demais.
  10. Olá galera, estou aprendendo dll injection e por algum motivo meu código retorna com sucesso. mesmo se a dll não existir. alguém consegue me ajudar? segue o código: Se eu deletar o DLL.dll do c:// ele continua dando como sucesso /* how to do dll inject 1 - abrimos o processo com OpenProcess() passando o id do processo 2 - se sucesso, então pegamos o endereço do processo com a função (LPVOID) getProcAddress(getModuleHandleA("Kernel32.dll"), "LoadLibraryA") 3 - Alocamos memória virtual com a função VirtualAllocEx() 4 - criamos um remote thread com CreateRemoteThread() 5 - wait for the operation complete com WaitForSingleObject() 6 - liberamso memoria com vitualFreeEx() CloseHandle() - remote thread CloseHandle() - hTargetProcess - processo aberto */ #include <cstdio> #include <iostream> #include <windows.h> #include <tlhelp32.h> #include <string> #include <cstdlib> #include <vector> using namespace std; DWORD find_process_id(wstring processName) { PROCESSENTRY32 entry; entry.dwSize = sizeof(PROCESSENTRY32); HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL); if (Process32First(snapshot, &entry) == TRUE) { while (Process32Next(snapshot, &entry) == TRUE) { if (stricmp(entry.szExeFile, "Tibia.exe") == 0) { return entry.th32ProcessID; } } } CloseHandle(snapshot); } bool InjectDynamicLibrary(DWORD processId, char* dllPath) { // Open a new handle to the target process HANDLE hTargetProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, processId); if (hTargetProcess != NULL) // if the handle is valid { cout << "Processo aberto.......ok" << endl; cout << "Tentaremos injetar a LIB :" << dllPath << endl; // Kernel32.dll is always mapped to the same address in each process // So we can just copy the address of it & LoadLibraryA in OUR process and // expect it to be same in the remote process too. LPVOID LoadLibAddr = (LPVOID)GetProcAddress(GetModuleHandleA("kernel32.dll"), "LoadLibraryA"); if(LoadLibAddr != NULL) { cout << "LoadLibAddr.......OK" << endl; // We must allocate more memory in the target process to hold the path for our dll in it's addresspace. LPVOID LoadPath = VirtualAllocEx(hTargetProcess, 0, strlen(dllPath), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); if(LoadPath != NULL) { //MessageBox(HWND_DESKTOP, "LoadPath Sucesso!", "MESSAGE", MB_OK); cout << "LoadPath.......OK" << endl; // Create a thread in the target process that will call LoadLibraryA() with the dllpath as a parameter HANDLE RemoteThread = CreateRemoteThread(hTargetProcess, 0, 0, (LPTHREAD_START_ROUTINE)LoadLibAddr, LoadPath, 0, 0); if(RemoteThread) { cout << "Remote Thread.......OK" << endl; // Wait for the operation to complete, then continue. WaitForSingleObject(RemoteThread, INFINITE); // the path to the dll is no longer needed in the remote process, so we can just free the memory now. VirtualFreeEx(hTargetProcess, LoadPath, strlen(dllPath), MEM_RELEASE); CloseHandle(RemoteThread); CloseHandle(hTargetProcess); return true; }else{ MessageBox(HWND_DESKTOP, "Remote Thread Error!", "MESSAGE", MB_OK); } }else{ MessageBox(HWND_DESKTOP, "LoadLibAddr ERROR", "MESSAGE", MB_OK); } }else{ MessageBox(HWND_DESKTOP, "LoadLibAddr Fail!", "MESSAGE", MB_OK); } }else{ MessageBox(HWND_DESKTOP, "problema ao abrir processo!", "MESSAGE", MB_OK); } return false; } int main( int, char *[] ) { DWORD processId = find_process_id(L"chrome"); if(processId) { // MessageBox(0, "Processo localizado. fazendo inject","NOTICE", MB_OK); cout << "Process ID finded : " << processId << endl; const wchar_t* libName = L"c:/DLL.dll"; // or L"zß???" char lib[11]; std::wcstombs(lib, libName, 11); wcout << libName << endl; InjectDynamicLibrary(processId, "c:/DLL.dll"); } return 0; }
  11. estou fazendo um trabalho da faculdade em que preciso criar um programa que calcule os numeros primos e os exiba na tela, só que após eu informar o numero limite, o programa não faz mais nada e nem responde a nenhum comando.Gostaria que pudessem me dizer porque ele não obedece após o cin>>limite;. segue o código: int limite,count,num,divisor; cout<<"Insira ate qual numero deseja mostrar os primos: "; cin>>limite; for(num=1;num<limite;num++) { count=0; for(int divisor=1;divisor<=num,divisor++;) { if(num%divisor==0 && num%1==0)count++; } if(count==2)cout<<" "<<num; obs: ele compila.
  12. Estou com um trabalho de Estrutura de Dados para ser feito, mas estou tendo muita dificuldade em ler um arquivo CSV e separar as informações em variáveis. O problema deve ser iniciado desta maneira para que depois ainda seja adicionado mais clientes, excluir e tudo mais. Alguém poderia ajudar? O inicio do meu programa (a função do arquivo), está até agora desta maneira: #include <stdio.h> #include <stdlib.h> #include <string.h> char string [1000]; float total; FILE * pFile; char linha[200]; struct estrutura { int aux; char nome[40]; char endereco[40]; char cidade[40]; char pais[20]; char cep[10]; char nasc[12]; char telefone[14]; float total[20]; }; struct estrutura cliente[200]; int menu(); int menu2(); void arquivo(); void adicionar(); void alterar(); void excluir(); void exibir(); void pesquisar(); void listarnome(); void listarcodigo(); void listartotal(); int contar(); char *tmp; main() { system("cls"); menu(); //a função arquivo é uma opção do menu } //---------------------------------------------- //LEITURA DE ARQUIVO //---------------------------------------------- void arquivo() { pFile = fopen( "11_ProjetoPratico_ControleClientes_clientes.csv", "r" ) ; int i = 0; while (fgets(string, 1000, pFile) != NULL) { tmp = strtok(linha, ";"); cliente[i].aux = atoi(tmp); //atoi for int tmp = strtok(NULL, ";"); //use strcpy for char strcpy(cliente[i].nome,tmp); printf("%s", cliente[i].nome); tmp = strtok(NULL, ";"); strcpy(cliente[i].endereco,tmp); tmp = strtok(NULL, ";"); strcpy(cliente[i].cidade, tmp); tmp = strtok(NULL, ";"); strcpy(cliente[i].pais, tmp); tmp = strtok(NULL, ";"); strcpy(cliente[i].cep, tmp); tmp = strtok(NULL, ";"); strcpy(cliente[i].nasc, tmp); tmp = strtok(NULL, ";"); strcpy(cliente[i].telefone, tmp); printf("index i= %i ID: %i, %s, %s, %s, %s, %s, %s, %s, %f \n",i, cliente[i].aux , cliente[i].nome, cliente[i].endereco , cliente[i].cidade, cliente[i].pais, cliente[i].cep, cliente[i].nasc, cliente[i].telefone, cliente[i].total); i++; } //free(buf); fclose(pFile); } Obrigado desde já!
  13. Estou aprendendo a programar em c++ e a utilizar o boost com um amigo meu, e já faz um bom tempo que ando garimpando a internet para entender do que se trata ou como é chamado isso que acontece nesse código, meu amigo também não sabe do que se trata isso, não tenho certeza se é algo do framework boost ou coisa do gênero. Por favor me ajudem, agradeço desde já. Preciso saber o que essa linha aqui faz e como se chama isso em c++: [this](boost::system::error_code ec, std::size_t /*length*/) Código completo: void do_write() { boost::asio::async_write(socket_, boost::asio::buffer(write_msgs_.front().data(), write_msgs_.front().length()), [this](boost::system::error_code ec, std::size_t /*length*/) //Aqui começa a minha duvida { if (!ec) { write_msgs_.pop_front(); if (!write_msgs_.empty()) { do_write(); } } else { socket_.close(); } });//E aqui termina a minha duvida }
  14. Johnnyje21

    Menu Bancário

    Boa noite pessoal , estou com um projeto da faculdade aonde preciso fazer um sistema que simule um sistema de caixa eletrônico . Estou com problemas para fazer as comparações do tipo string para verificar a resposta digitada pelo usuário . Se alguém puder me auxiliar obrigado . else { printf("\n NECESSÁRIO CADASTRO !!"); cadastro(); } } int cadastro() { char nome[30],endereco[20],cidade[10],estado[2],cpf[12],rg[13],data_nasc[15],tempo_Serv[6]; float Saldo_Inic=0,Salario=0; printf("\n Digite o seu nome : "); scanf("%c",&nome); printf("\n Digite seu Endereco : Rua -------- numero : ------ \n "); scanf("%c",&endereco); printf("\n Digite a sua cidade : "); scanf("%c",&cidade); printf("\n Digite o ano de seu nascimento : "); scanf("%c",&data_nasc); printf("\n Digite seu cpf : "); scanf("%c",&cpf); printf("\n Digite seu RG : "); scanf("%c",&rg); printf("\n Digite o seu salário : "); scanf("%f",&Salario); printf("\n Digite o seu tempo de serviço : anos/meses "); scanf("%c",&tempo_Serv); }
  15. Criei uma lista encadeada onde tenho 3 strcuts para cadastrar pessoa, O bug que acontece é que apos eu inserir o primeiro cadastro os telefones continuam acumulado no primeiro registro, emails também, olhe como está na imagem anexada. struct agenda { char matricula[20]; char nome[30]; struct agenda *prox; struct tel *t; struct mail *m; }; struct tel{ char telefone[20]; struct tel *prox; }; struct mail{ char email[30]; struct mail *prox; }; Eu uso essas tres structs por que por exemplo uma pessoa pode ter mais de um telefone ou mais de um email. Minhas funções de inserir: void insereTel(struct tel **t,char tel[]){ struct tel *p,*q; p=(struct tel*)malloc(sizeof(struct tel)); strcpy(p->telefone,tel); p->prox=*t; *t=p; } void insereMail(struct mail **m,char mail[]){ struct mail *p; p=(struct mail*)malloc(sizeof(struct mail)); strcpy(p->email,mail); p->prox=*m; *m=p; } void inserePessoa (struct agenda **L, struct tel *T,struct mail *M, char n[], char end[]){ struct agenda *p; p=(struct agenda*)malloc(sizeof(struct agenda)); strcpy(p->matricula,n); strcpy(p->nome,end); p->prox=*L; p->t=T; p->m=M; *L=p; } Eu também mando os dados pelo menu quando ele seleciona a opção para fazer o registro: main(){ struct agenda *Lista; struct tel *Tel; struct mail *Mail; int op; char matricula[20], nome[30], telefone[20], email[20]; char no; Lista=criaAgenda(); Tel=criaTel(); Mail=criaMail(); do{ system("cls"); printf("\n\n"); printf("\n[1] - Cadastra Aluno --Falta arrumar bug dos tel"); printf("\n[2] - Pesquisa Aluno (Matricula)"); printf("\n[3] - Remove Aluno"); printf("\n[4] - Total de alunos"); printf("\n[5] - Total de telefones"); printf("\n[6] - Limpar Lista"); printf("\n[7] - Salva em Disco"); printf("\n[8] - Carrega lista"); printf("\n\nDigite -> "); fflush(stdin); scanf("%d",&op); switch (op){ case 1: printf("\nMatricula -> "); fflush(stdin); scanf("%s",matricula); printf("\nNome -> "); fflush(stdin); scanf("%s",nome); do{ printf("\nTelefone -> "); fflush(stdin); scanf("%s",telefone); insereTel(&Tel,telefone); printf("\nPossui mais telefones -> [1] Sim [2] não\n"); scanf("%d",&op); }while(op!=2); do{ printf("\nEmail -> "); fflush(stdin); scanf("%s", email); insereMail(&Mail,email); printf("\nPossui mais emails? [1] Sim [2] não\n"); scanf("%d",&op); }while(op!=2); inserePessoa(&Lista,Tel,Mail,matricula,nome); break; Aqui está o código completo do projeto: #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> struct agenda { char matricula[20]; char nome[30]; struct agenda *prox; struct tel *t; struct mail *m; }; struct tel{ char telefone[20]; struct tel *prox; }; struct mail{ char email[30]; struct mail *prox; }; struct agenda* criaAgenda (){ return NULL; } struct tel* criaTel(){ return NULL; } struct mail*criaMail(){ return NULL; } void insereTel(struct tel **t,char tel[]){ struct tel *p,*q; p=(struct tel*)malloc(sizeof(struct tel)); strcpy(p->telefone,tel); p->prox=*t; *t=p; } void insereMail(struct mail **m,char mail[]){ struct mail *p; p=(struct mail*)malloc(sizeof(struct mail)); strcpy(p->email,mail); p->prox=*m; *m=p; } void inserePessoa (struct agenda **L, struct tel *T,struct mail *M, char n[], char end[]){ struct agenda *p; p=(struct agenda*)malloc(sizeof(struct agenda)); strcpy(p->matricula,n); strcpy(p->nome,end); p->prox=*L; p->t=T; p->m=M; *L=p; } struct agenda* localiza(struct agenda *L,char n[]){ struct agenda *p; struct tel *auxt; struct mail *auxm; int cont=0; p=L; auxt=p->t; auxm=p->m; while(p!=NULL){ if (strcmp(p->matricula,n)!=0) p=p->prox; else{ printf("\n\n Matricula -> %s",p->matricula); printf("\n Nome -> %s",p->nome); while(auxt!=NULL){ printf("\n Telefone -> %s",auxt->telefone); auxt =auxt->prox; } while (auxm!=NULL){ printf("\n Email -> %s",auxm->email); auxm=auxm->prox; } return p; } } return NULL; } void listarTodos(struct agenda *L){ struct agenda *p; struct tel *auxt; struct mail *auxm; p=L; auxt=p->t; auxm=p->m; while (p!=NULL){ printf("\n\nmatricula -> %s",p->matricula); printf("\n\nnome -> %s",p->nome); while(auxt!=NULL){ printf("\n\nTelefone -> %s",auxt->telefone); auxt =auxt->prox; } while (auxm!=NULL){ printf("\n\nEmail -> %s",auxm->email); auxm=auxm->prox; } p=p->prox; printf("\n\n=================\n\n"); } } void TotalTelefones(struct agenda *L){ struct agenda *p; struct tel *auxt; struct mail *auxm; int contador; p=L; auxt=p->t; auxm=p->m; while(auxt!=NULL){ contador ++; auxt =auxt->prox; } printf("\nTotal de telefones: %d", contador); } void TotalAlunos(struct agenda *L){ struct agenda *p; struct tel *auxt; struct mail *auxm; int contador; p=L; auxt=p->t; auxm=p->m; while (p!=NULL){ contador ++; p=p->prox; //printf("\n\n=================\n\n"); } printf("\nTotal de alunos: %d", contador); } void SalvarTXT(struct agenda *L){ struct agenda *p; struct tel *auxt; struct mail *auxm; p=L; auxt=p->t; auxm=p->m; FILE *arquivo_texto; //Criando a File arquivo_texto = fopen ("agenda_eletronica.txt", "w+"); //Abrindo txt e escrevendo nele if (arquivo_texto == NULL) { printf("Erro ao abrir o arquivo.\n"); //Caso de algum erro exit(1); } while (p!=NULL){ //Correr toda lista das structs fprintf(arquivo_texto, "Matricula -> %s\n Nome -> %s\n", p->matricula, p->nome); //Inserindo dados da Struct de dados while(auxt!=NULL){ fprintf(arquivo_texto, "Telefone -> %s\n", auxt->telefone); //Inserindo dados da Struct de telefones auxt =auxt->prox; //Pula pro proximo registro } while (auxm!=NULL){ fprintf(arquivo_texto, "Email -> %s\n", auxm->email); //Inserindo dados da Struct de email auxm=auxm->prox; //Pula pro proximo registro } p=p->prox; fprintf(arquivo_texto, "=================\n"); //printf("\n\n=================\n\n"); } fclose(arquivo_texto); //fecha o arquivo } void listaLetra(struct agenda *L,char n){ struct agenda *p; struct tel *auxt; struct mail *auxm; p=L; auxt=p->t; auxm=p->m; while (p!=NULL){ if(p->matricula[0]!=n) p=p->prox; else{ printf("\n\nmatricula -> %s",p->matricula); printf("\n\nnome -> %s",p->nome); while(auxt!=NULL){ printf("\n\nTelefone -> %s",auxt->telefone); auxt=auxt->prox; } while (auxm!=NULL){ printf("\n\nEmail -> %s",auxm->email); auxm=auxm->prox; } p=p->prox; printf("\n\n======================\n\n"); } } } void alterarDados(struct agenda *L,char n[]){ int cont=0; struct agenda *p; struct tel *auxt; struct mail *auxm; auxt=p->t; auxm=p->m; p=localiza(L,n); if(p==NULL) printf("\nmatricula não encontrado"); else{ printf("\n\nDigite o novo nome:"); scanf("%s",&p->nome); while (auxt!=NULL){ printf("\n\n Digite o novo telefone:"); scanf("%s",&auxt->telefone); auxt=auxt->prox; } while (auxm!=NULL){ printf("\n\n Digite o novo email:"); scanf("%s",&auxm->email); auxm=auxm->prox; } } } struct agenda* removermatricula(struct agenda *L,char n[]){ struct agenda *p, *q; p=localiza(L,n); if (p==NULL) printf("\n\n Matricula não encontrada !"); else{ q=L; if(q==p){ L=p->prox; free(p); }else{ while (q->prox!=p) q=q->prox; q->prox=p->prox; free(p); } printf("\n\n Aluno removido com sucesso !"); } return L; } void LimpaLista(struct agenda *L){ struct agenda *p, *q; p=L; q=L; if (p==NULL) printf("\n\n Lista vazia"); else{ q=L; if(q==p){ L=p->prox; free(p); }else{ while (q->prox!=p) q=q->prox; q->prox=p->prox; free(p); } printf("\n\n Lista limpa !"); } //return L; } main(){ struct agenda *Lista; struct tel *Tel; struct mail *Mail; int op; char matricula[20], nome[30], telefone[20], email[20]; char no; Lista=criaAgenda(); Tel=criaTel(); Mail=criaMail(); do{ system("cls"); printf("\nEstrutura de Dados - Trabalho Pratico I - Gabriel de Souza\n"); printf("\n[1] - Cadastra Aluno --Falta arrumar bug dos tel"); printf("\n[2] - Pesquisa Aluno (Matricula)"); printf("\n[3] - Remove Aluno"); printf("\n[4] - Total de alunos"); printf("\n[5] - Total de telefones"); printf("\n[6] - Limpar Lista"); printf("\n[7] - Salva em Disco"); printf("\n[8] - Carrega lista"); printf("\n\nDigite -> "); fflush(stdin); scanf("%d",&op); switch (op){ case 1: printf("\nMatricula -> "); fflush(stdin); scanf("%s",matricula); printf("\nNome -> "); fflush(stdin); scanf("%s",nome); do{ printf("\nTelefone -> "); fflush(stdin); scanf("%s",telefone); insereTel(&Tel,telefone); printf("\nPossui mais telefones -> [1] Sim [2] não\n"); scanf("%d",&op); }while(op!=2); do{ printf("\nEmail -> "); fflush(stdin); scanf("%s", email); insereMail(&Mail,email); printf("\nPossui mais emails? [1] Sim [2] não\n"); scanf("%d",&op); }while(op!=2); inserePessoa(&Lista,Tel,Mail,matricula,nome); break; case 2: if(Lista==NULL) printf("\nAgenda vazia"); else{ printf("\n Digite um matricula -> "); fflush(stdin); scanf("%s",matricula); if(localiza(Lista,matricula)==NULL) printf("\n Matricula não encontrado na agenda"); } getch(); break; case 3: if(Lista==NULL) printf("\nAgenda vazia"); else{ printf("\nDigite a matricula do aluno que deseja remover -> "); scanf("%s",matricula); Lista=removermatricula(Lista,matricula); getch(); } case 4: if(Lista==NULL) printf("\nAgenda vazia"); else TotalAlunos(Lista); getch(); break; case 5: if(Lista==NULL) printf("\nAgenda vazia"); else TotalTelefones(Lista); getch(); break; case 6: if(Lista==NULL) printf("\nAgenda vazia"); else LimpaLista(Lista); getch(); break; case 7: if(Lista==NULL) printf("\nAgenda vazia"); else SalvarTXT(Lista); getch(); break; case 8: if(Lista==NULL) printf("\nAgenda vazia"); else listarTodos(Lista); getch(); break; } }while (op!=0); }
  16. gehpx

    interface grafica qt

    sou iniciante em c++ e preciso de fazer um programa pra facu onde o usuario irá montar um circuito lógico, dada as portas, or, and, xor, not... e mostrar a saída de acordo com a entrada. o prof sugeriu o uso do qt, mas n sei como fazer essa interação do programa com a interface gráfica do qt. vi vários tutoriais, mas nenhum q me mostre como fazer pro usuario clique em um botão q seja uma das portas e arraste pra onde ele quer desenhar o circuito por exemplo
  17. Olá! Como sabemos, não existe um "valor padrão" para as variáveis declaradas em C (C++). Assim, não podemos prever qual será o valor ocupado por uma variável recém declarada. Enfim, vamos ao que interessa: Em alguns casos bem específicos, é necessário que as variáveis iniciem com um determinado valor. Eu, por exemplo, estou construindo um Programa com um vetor char T[2000000]. Quero que todos os espaços desse vetor iniciem com '', isto é: T[1] = ''; T[2] = ''; T[3] = ''; ... ; T[2000000] = ''; Poderíamos fazer usando um for(int k =1; k <= 2000000; k++){ T[k] = ''; } Minha dúvida é: Existe uma maneira mais rápida de fazer isso? Isto é, tem como "pedi" pro programa iniciar cada variável do vetor com o valor na momento em que o vetor é declarado? P.S: Sou iniciante em C. Desculpe-me se eu falei alguma "merda".
  18. Boa noite pessoal, estudo ciência da computação e estou na modalidade do curso em C que estuda métodos de pesquisa e ordenação, porém meu professor não sabe explicar muito bem e estou com muita dificuldade para entender os algoritmos (bubble sort, quicksort e etc). Poderiam me ajudar com essas perguntas? Vi alguns vídeos no youtube mas também fiquei com dificuldades. Qual método de ordenação gasta mais tempo para classificar o conjunto de dados? O método Bubble Sort, pois consome tempo e processamento. (de acordo com o que eu entendi pelo meu professor seria o método bubble sort) Qual método de ordenação gasta menos tempo para classificar o conjunto de dados? O Quicksort é um método de ordenação mais rápido e eficiente. (e o método mais rápido o quicksort) Por que para algumas quantidade de valores, o quicksort teve o tempo zerado. Isso era esperado? Explique! a)Qual é a chamada para executar o método quick sort? Escreva a instrução. b)Como é escolhido o elemento pivô? c)Após a primeira partição do vetor, como ficarão as duas chamadas dentro da função quicksort()? d)Quantas chamadas ao método quicksort() ocorrerão? Segue um código que meu professor passou e pediu para explicarmos o porquê de algumas coisas, mas tentei rodar ele no DEVC++ e não consigo entender!! #include<stdio.h> #include<time.h> #define MAX 10 void aleatorio(); void exibir(); void quicksort(int e,int d); int a[MAX]; main(){ aleatorio(); printf("\nVetor gerado\n"); exibir(); system("pause"); quicksort(0,MAX-1); printf("\n\nVetor ordenado\n"); exibir(); } void exibir(){ int i; for(i=0;i<MAX;i++) printf("a[%d]=%d\n",i,a[i]); } void aleatorio(){ int i; srand(time(NULL)); for(i=0;i<MAX;i++) a[i]=rand()%MAX; } void quicksort(int e,int d){ int i; if(d>e){ i=particao(e,d); /* Particionando o vetor */ quicksort(e,i-1); quicksort(i+1,d); } } int particao(int e,int d){ int v,i,j,t; v=a[d]; i=e-1; j=d; do{ do{ i=i+1; /* Procura o maior*/ }while ((a[i]<v) && (i<d)); do{ j=j-1; /* Procura o menor*/ } while ((a[j]>v) && (j>0)); t=a[i]; a[i]=a[j]; a[j]=t; } while (j > i); // colocando o pivo a[d] em seu lugar a[j]=a[i]; a[i]=a[d]; a[d]=t; return i; }
  19. Bom dia, Amigos gostaria de saber se alguém de voces poderia me ajudar com a questão abaixo em linguagem C, se possivel comentado o codigo. Escreva um programa que computa o número de diferentes fatores primos de um inteiro positivo. Entrada A entrada consistirá de uma série de inteiros positivos. Cada linha possui somente um número. O valor máximo de um número é 1000000. O fim da entrada é indicado por um número igual a 0. Esse número não deve ser considerado como parte do conjunto de teste. Saída O programa deve imprimir cada resultado em uma linha diferente, seguindo o formado dado no exemplo de saída. Exemplo Entada: 289384 930887 692778 636916 747794 238336 885387 760493 516650 641422 0 Saída: 289384 : 3 930887 : 2 692778 : 5 636916 : 4 747794 : 3 238336 : 3 885387 : 2 760493 : 2 516650 : 3 641422 : 3
  20. Bom dia, Amigos gostaria de saber se alguém de voces poderia me ajudar com a questão abaixo em linguagem C, se possivel comentado o codigo. Escreva um programa que computa o número de diferentes fatores primos de um inteiro positivo. Entrada A entrada consistirá de uma série de inteiros positivos. Cada linha possui somente um número. O valor máximo de um número é 1000000. O fim da entrada é indicado por um número igual a 0. Esse número não deve ser considerado como parte do conjunto de teste. Saída O programa deve imprimir cada resultado em uma linha diferente, seguindo o formado dado no exemplo de saída. Exemplo Entada: 289384 930887 692778 636916 747794 238336 885387 760493 516650 641422 0 Saída: 289384 : 3 930887 : 2 692778 : 5 636916 : 4 747794 : 3 238336 : 3 885387 : 2 760493 : 2 516650 : 3 641422 : 3
  21. Galera to iniciando em programação, atualmente to estudando C por conta de um curso técnico que faço, aos poucos to pegando as manhas da coisa.Mas minha duvida é: é possível criar jogos utilizando somente a linguagem C ou devo aprender também C++ por conta das Classes e tal e quais API's são melhores para quem quer iniciar?desde já agradeço a todos.
  22. Eai pessoal, beleza? Comecei a estudar C++ recentemente. Estava criando um código que convertesse temperatura de Celsius para Fahrenheit. Porém, no final eu queria adicionar uma opção de "Digitar 1 para fazer outra conversão, digitar 2 para sair." E se digitasse qualquer outra coisa, daria como Invalido e pediria para digitar 1 ou 2 de novo. Como faço isso? Aqui está o meu código:
  23. Ola pessoal Bom eu crie um programa bem simples, so que meu programa esta tanto errado e eu não sei se é a minha logica ou o programa em si mesmo. meu programa serve para a seguinte: tem uma pasta no C: chamada User, bom eu queria apagar(deletar de vez sem ir para lixeira) todas as pastas com nome especifico que esta dentro esta pasta User. vou colocar meu código fonte aqui para vocês analisar e vou descrever as linhas ok. aqui é onde começa o programa ele entra na pasta Users e identifica todas as pasta que tem este nome "ud" e todas com nome "tem" e armazena estes dados num txt cd /Users & dir ud* /b > c:\apagando\del.txt pause cd /Users & dir tem* /b > c:\apagando\dels.txt pause já aqui começa o problema bom aqui era pela minha logica que ele deveria ler o txt e apagar as pasta que tem os nomes iniciados com "up" e "tem" e depois que ele apaga-se tudo ele voltasse de novo na pasta e passasse mais uma fez para ter certeza que tudo foi apagado, mais isso não esta acontecendo. RD /S /Q C:\Users\%i do for /f %i in (dels.txt) pause RD /S /Q C:\Users\%i do for /f %i in (del.txt) eu queria saber onde estou errando.
  24. Sou programador web e resolvi começar a estudar C, estou fazendo algumas listas que encontrei na internet porem estou com problema com esse exercício alguém poderia ajudar? Fazer uma função para receber como parâmetros o número da conta de um cliente (inteiro), o nome do cliente (vetor de 30 caracteres) e o saldo do cliente (real) e exibir os dados do cliente em uma única linha de acordo com o seguinte layout: Número da conta: alinhado à esquerda e com tamanho fixo de 10 (dez) dígitos; Nome do cliente: alinhado à esquerda e com tamanho fixo de 13 (treze) caracteres; Saldo do cliente: alinhado à direita, com tamanho fixo de 7 (sete) posições e, dentre as 7 posições, 2 (duas) posições decimais. #include <stdio.h> #include <stdlib.h> /* function void banco(int nuConta, char noClinte[30], double vlSaldo){ } */ main (){ int nuConta; char noCliente[30]; double vlSaldo; printf("Informe o numero da conta"); scanf("%d", &nuConta); printf("%010d", nuConta); printf("Digite seu nome: "); scanf("%s",noCliente); printf("O nome armazenado foi: %s", noCliente); }
  25. Então , preciso ler e mostrar o telefone cadastrado por máscara. Ex: (DDD) XXXX-XXXX. Porém não achei nenhum exemplo em c++ , somente em java. E o email também deve ser válido, ou seja, deve conter um "@" e um "." (ponto final) após o "@". #include <iostream> #include <stdlib.h> #include <stdio.h> #include <string.h> using namespace std; static int id = 0; class pessoa { private: int idPessoa, alt_codigo, cod_busca; char nome[30], email[50], telefone[10], rg[11], nome_busca[30], alt_nome[30]; char novo_nome[30], novo_email[50], novo_telefone[10], novo_rg[11]; public: void cadastrar(); void listar(); void alterar(int y); void busca(int y); }; pessoa **p; int getId() { id++; return id; } void pessoa :: cadastrar() { idPessoa = getId(); cout << "Digite o Nome: "; cin >> nome; cout << "Digite o Email: "; cin >> email; cout << "Digite o Telefone (com DDD): "; cin >> telefone; cout << "Digite o RG: "; cin >> rg; }; void pessoa :: listar() { cout << "Codigo: " << idPessoa; cout << " Nome: " << nome; cout << " Email: " << email; cout << " Telefone: " << telefone; cout << " RG: " << rg << endl << endl; }; void pessoa :: alterar(int y) { int achou=0; int x; int busca_alterar; int alt_cad; cout << "1- Pesquisar por Nome\n2- Pesquisar por Codigo\nDigite a opcao desejada: "; cin >> busca_alterar; if(busca_alterar==1){ system("cls"); cout << "Digite o Nome do Cliente: "; cin >> alt_nome; for ( int i=0; i<y; i++ ){ if(strcmp(p[i]->nome,alt_nome)==0){ achou=1; x=i; break; } }if (achou==1){ cout << "\nCodigo: " << p[x]->idPessoa; cout << " Nome: " << p[x]->nome; cout << " Email: " << p[x]->email; cout << " Telefone: " << p[x]->telefone; cout << " RG: " << p[x]->rg << endl << endl; cout << "\n1- Alterar Nome\n2- Alterar Email\n3- Alterar Telefone\n4- Alterar RG\nDigite a opcao desejada: "; cin >> alt_cad; system("cls"); if(alt_cad==1){ cout << "Digite o novo Nome: "; cin >> novo_nome; strcpy(p[x]->nome,novo_nome); } if(alt_cad==2){ cout << "Digite o novo Email: "; cin >> novo_email; strcpy(p[x]->email,novo_email); } if(alt_cad==3){ cout << "Digite o novo Telefone:"; cin >> novo_telefone; strcpy(p[x]->telefone,novo_telefone); } if(alt_cad==4){ cout << "Digite o novo Rg: "; cin >> novo_rg; strcpy(p[x]->rg,novo_rg); } system("cls"); }else{ system("cls"); system("color 74"); cout << "O Nome Digitado não Existe !!!" << endl; system("pause"); system("cls"); system("color 07"); } } if(busca_alterar==2){ system("cls"); cout << "Digite o Codigo do Cliente: "; cin >> alt_codigo; for ( int i=0; i<y; i++ ){ if(p[i]->idPessoa==alt_codigo){ achou=1; x=i; break; } }if (achou==1){ cout << "\nCodigo: " << p[x]->idPessoa; cout << " Nome: " << p[x]->nome; cout << " Email: " << p[x]->email; cout << " Telefone: " << p[x]->telefone; cout << " RG: " << p[x]->rg << endl << endl; cout << "\n1- Alterar Nome\n2- Alterar Email\n3- Alterar Telefone\n4- Alterar RG\nDigite a opcao desejada: "; cin >> alt_cad; system("cls"); if(alt_cad==1){ cout << "Digite o novo Nome: "; cin >> novo_nome; strcpy(p[x]->nome,novo_nome); } if(alt_cad==2){ cout << "Digite o novo Email: "; cin >> novo_email; strcpy(p[x]->email,novo_email); } if(alt_cad==3){ cout << "Digite o novo Telefone:"; cin >> novo_telefone; strcpy(p[x]->telefone,novo_telefone); } if(alt_cad==4){ cout << "Digite o novo Rg: "; cin >> novo_rg; strcpy(p[x]->rg,novo_rg); } system("cls"); }else{ system("cls"); system("color 74"); cout << "O Codigo Digitado não Existe !!!" << endl; system("pause"); system("cls"); system("color 07"); } } }; void pessoa :: busca(int y){ int achou=0; int x; int tipo_busca; cout << "1- Busca por Codigo\n2- Busca por nome\nDigite a opcao desejada: "; cin >> tipo_busca; if(tipo_busca==1){ system("cls"); cout << "Digite o Codigo Que Sera Buscado: "; cin >> cod_busca; for ( int i=0; i<y; i++ ){ if(p[i]->idPessoa==cod_busca){ achou=1; x=i; break; } }if (achou==1){ system("cls"); cout << "Codigo: " << p[x]->idPessoa; cout << " Nome: " << p[x]->nome; cout << " Email: " << p[x]->email; cout << " Telefone: " << p[x]->telefone; cout << " RG: " << p[x]->rg << endl << endl; }else { system("cls"); system("color 7D"); cout << "O Codigo Digitado não Existe !!!" << endl; system("pause"); system("cls"); system("color 07"); } } if(tipo_busca==2){ system("cls"); cout << "Digite o Nome Que Sera Buscado: "; cin >> nome_busca; for ( int i=0; i<y; i++ ){ if(strcmp(p[i]->nome,nome_busca)==0){ achou=1; x=i; break; } }if (achou==1){ system("cls"); cout << "Codigo: " << p[x]->idPessoa; cout << " Nome: " << p[x]->nome; cout << " Email: " << p[x]->email; cout << " Telefone: " << p[x]->telefone; cout << " RG: " << p[x]->rg << endl << endl; }else { system("cls"); system("color 7D"); cout << "O Nome Digitado não Existe !!!" << endl; system("pause"); system("cls"); system("color 07"); } } }; int main() { int y = 0, opc, new_opc; p = (pessoa **)malloc(sizeof(pessoa**)); do { cout << "\n----- MENU -----" << endl; cout << "1- Cadastrar" << endl; cout << "2- Listar" << endl; cout << "3- Alterar" << endl; cout << "4- Buscar" << endl; cout << "5- Reiniciar " << endl; cout << "0- Sair" << endl; cout << "----------------" << endl; cout << "Informe a Opcao: "; cin >> opc; switch ( opc ) { case 1: system ( "cls" ); do { p[y] = new pessoa; p[y]->cadastrar(); new_opc = 0; cout << "Deseja continuar cadastrando? 1-Sim / 2-não " << endl; cin >> new_opc; y++; } while ( new_opc == 1 ); system ( "cls" ); break; case 2: system ( "cls" ); if (y>=1){ for ( int i = 0; i < y; i++ ) { p[i]->listar(); } }else{ cout << "não existem cadastros" <<endl ; break; } break; case 3: system ( "cls" ); if (y>=1){ p[0]->alterar(y); }else{ cout << "não existem cadastros" <<endl ; break; } break; case 4: if (y>=1){ system ( "cls" ); p[0]->busca(y); }else{ system ( "cls" ); cout << "não existem cadastros" <<endl ; break; } break; case 5: system ( "cls" ); y=0; break; default: exit ( 0 ); } } while ( opc != 0 ); delete[] p; return 0; } Se alguém conseguir ajudar :)
×
×
  • Criar Novo...