Guest - Alex - Postado Setembro 8, 2006 Denunciar Share Postado Setembro 8, 2006 Sou iniciante em c++; como é a 1ª vez que vejo a linguagem e todos sabem que nenhuma faculdadeensina adequadamente, venho a este obter um auxílio a seguinte questão: consegui criar um programinha em c++ para ordenar palavras que o usuário digita. Agora, o professor da faculdade quer que o programa ordene as palavras que já existem em umarquivo texto qualquer., ou seja não sera mais necessario digitar as palavras. Como implementar isso ? Obs: deve ser feito usando função. obs2: segue o código abaixo(aqui o usuario é que digita a palavra): #include <cstdlib>#include <iostream>#include <string.h>#define MAX 7using namespace std; void leia(char palavra[][50], int n) { for(int i=0; i<n; i++) { cout<<"Digite a palavra:"; gets(palavra); } } void bolha(char palavra[][50],int n) { char aux[50]; for(int i=0; i<n-1; i++) for(int j=i+1; j<n; j++) { if(strcmp(palavra,palavra[j]) > 0) { strcpy(aux,palavra); strcpy(palavra,palavra[j]); strcpy(palavra[j],aux); } } } void escreva(char palavra[][50],int n) { for(int i=0; i<n;i++) cout<<palavra<< endl; } int main(int argc, char *argv[]) { int n=MAX; char palavra[MAX][50]; leia(palavra,n); bolha(palavra,n); escreva(palavra,n); system("PAUSE"); return EXIT_SUCCESS;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 William Rodrigues Postado Setembro 8, 2006 Denunciar Share Postado Setembro 8, 2006 Salve!Primeiramente, seja bem vindo.Só para facilitar: Você já aprendeu a abrir arquivo .txt e fazer a leitura do mesmo?Abraços,William Rodrigues Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - Alex - Postado Setembro 8, 2006 Denunciar Share Postado Setembro 8, 2006 Salve!Primeiramente, seja bem vindo.Só para facilitar: Você já aprendeu a abrir arquivo .txt e fazer a leitura do mesmo?Abraços,William Rodrigues valeu, pelo interesse em me ajudar. O que eu aprendi até agora foi que ao se trabalhar com arquivos deve-se usar a biblioteca fstream.h e as sintaxes ifstream e ofstream. inclusive, eu consegui fazer um programinha que recebe datas e grava em um arquivo .txt mas esse último trabalho, não estou conseguindo sair do lugar. agradeço pela atenção. Obs: como não estou conseguindo anexar o arquivo segue-o abaixo#include <cstdlib>#include <iostream>#include <fstream.h>#include<conio.h>#include<string>#define TAMVETOR 10#define TAMANHO 256#define ARQUIVO "data.txt"using namespace std;enum {LEITURA = 0, GRAVACAO = 1, ALTERACAO = 2};typedef struct{ char dia[3]; char mês[3]; char ano[5]; char dia1[3]; char mes1[3]; char ano1[5]; }calendario; void listar(); void gravar(); int main(int argc, char *argv[]) { char op; do { cout << "Escolha uma das opcoes abaixo\n"; cout << "1 Listar\n"; cout << "2 Gravar\n"; cout << "[ESC] Sair\n"; op=getch(); switch(op) { case '1': listar(); break; case '2': gravar(); break; case 27 : break; default : continue; } }while (op!=27); system("PAUSE"); return 0;} void listar(){ int cont=0; char cabecalho[TAMANHO]; char linha[TAMANHO]; ifstream arq; arq.open(ARQUIVO); arq.getline(cabecalho, TAMANHO); cout << cabecalho << "\n\n"; arq.getline(linha, TAMANHO); while (arq.gcount()!=0) { cout << linha << "\n"; arq.getline(linha, TAMANHO); ++ cont; if (cont ==20) { cout << "\nPressione qualquer tecla..."; getch(); cout << cabecalho << "\n\n"; cont=0; } } cout << "\nPressione qualquer tecla..."; getch(); arq.close();} void gravar() { calendario t; char linha[TAMANHO], caractere; ofstream arqsai; arqsai.open(ARQUIVO, ios::out|ios::ate); cout << "\nDia:"; gets(t.dia); cout << "\nMes:"; gets(t.mês); cout << "\nAno:"; gets(t.ano); cout << "\nDia1:"; gets(t.dia1); cout << "\nMes1:"; gets(t.mes1); cout << "\nAno1:"; gets(t.ano1); arqsai << t.dia << "/" << t.mês << "/" << t.ano << "\t"; arqsai << t.dia1<< "/" << t.mes1 << "/" << t.ano1 << "\n"; arqsai.close();} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --radak -- Postado Setembro 5, 2008 Denunciar Share Postado Setembro 5, 2008 Sou iniciante em c++; como é a 1ª vez que vejo a linguagem e todos sabem que nenhuma faculdadeensina adequadamente, venho a este obter um auxílio a seguinte questão: consegui criar um programinha em c++ para ordenar palavras que o usuário digita. Agora, o professor da faculdade quer que o programa ordene as palavras que já existem em umarquivo texto qualquer., ou seja não sera mais necessario digitar as palavras. Como implementar isso ? Obs: deve ser feito usando função. obs2: segue o código abaixo(aqui o usuario é que digita a palavra): #include <cstdlib>#include <iostream>#include <string.h>#define MAX 7using namespace std; void leia(char palavra[][50], int n) { for(int i=0; i<n; i++) { cout<<"Digite a palavra:"; gets(palavra); } } void bolha(char palavra[][50],int n) { char aux[50]; for(int i=0; i<n-1; i++) for(int j=i+1; j<n; j++) { if(strcmp(palavra,palavra[j]) > 0) { strcpy(aux,palavra); strcpy(palavra,palavra[j]); strcpy(palavra[j],aux); } } } void escreva(char palavra[][50],int n) { for(int i=0; i<n;i++) cout<<palavra<< endl; } int main(int argc, char *argv[]) { int n=MAX; char palavra[MAX][50]; leia(palavra,n); bolha(palavra,n); escreva(palavra,n); system("PAUSE"); return EXIT_SUCCESS;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Setembro 5, 2008 Denunciar Share Postado Setembro 5, 2008 E ai Alex!Cara o programa para ordenar palavras parece ótimo.Estou necessitando de algo parecido para C. não conheço programação C, estou tentando aprender...Muda muito a versão C++ para C, deste teu programa de ordenação?valeu, sucesso! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest - Alex -
Sou iniciante em c++; como é a 1ª vez que vejo a linguagem e todos sabem que nenhuma faculdade
ensina adequadamente, venho a este obter um auxílio a seguinte questão:
consegui criar um programinha em c++ para ordenar palavras que o usuário digita.
Agora, o professor da faculdade quer que o programa ordene as palavras que já existem em um
arquivo texto qualquer., ou seja não sera mais necessario digitar as palavras.
Como implementar isso ?
Obs: deve ser feito usando função.
obs2: segue o código abaixo(aqui o usuario é que digita a palavra):
#include <cstdlib>
#include <iostream>
#include <string.h>
#define MAX 7
using namespace std;
void leia(char palavra[][50], int n)
{
for(int i=0; i<n; i++)
{
cout<<"Digite a palavra:";
gets(palavra);
}
}
void bolha(char palavra[][50],int n)
{
char aux[50];
for(int i=0; i<n-1; i++)
for(int j=i+1; j<n; j++)
{
if(strcmp(palavra,palavra[j]) > 0)
{
strcpy(aux,palavra);
strcpy(palavra,palavra[j]);
strcpy(palavra[j],aux);
}
}
}
void escreva(char palavra[][50],int n)
{
for(int i=0; i<n;i++)
cout<<palavra<< endl;
}
int main(int argc, char *argv[])
{
int n=MAX;
char palavra[MAX][50];
leia(palavra,n);
bolha(palavra,n);
escreva(palavra,n);
system("PAUSE");
return EXIT_SUCCESS;
}
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.