Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dynamiczne tablice przekazywane do funkcji.

Ostatnio zmodyfikowano 2013-01-13 19:59
Autor Wiadomość
cryuff
Temat założony przez niniejszego użytkownika
» 2013-01-13 13:56:03
C/C++
// wkoncu.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
#include <stdlib.h>

using namespace std;


void menu();
void sort1( int, string );
int zliczenie( string );

int main()
{ int i = 0;
    int a;
    string sciezka;
    cout << "Podaj sciezke do pliku .txt (pamietaj o uzyciu podwojnych backshlash'y)" << endl;
    cin >> sciezka;
    cout << endl;
    string * tab;
    tab = new string[ zliczenie( sciezka ) ];
    a = zliczenie( sciezka );
    ifstream plik;
    plik.open( sciezka.c_str(), ios::in | ios::out );
   
    if( plik )
    { string linia;
        while( !plik.eof() )
        {
            plik >> linia;
            cout << linia << endl;
            tab[ i ] = linia;
            i++;
        }
    }
    else
    {
        cout << "Blad. Nie mozna odczytac pliku." << endl;
    }
    sort1( a, tab );
    system( "PAUSE" );
    return 0;
}

void menu()
{
    cout << "Wybierz jedna z funkcji programu:" << endl;
    cout << "Wpisz 1, aby pogrupowac wyrazy od A do Z przy pomocy pierwszego algorytmu" << endl;
    cout << "Wpisz 2, aby pogrupowac wyrazy od A do Z przy pomocy drugiego algorymty" << endl;
    cout << "Wpisz 3, aby pogrupowac wyrazy od Z do A przy pomocy pierwszego algorytmu" << endl;
    cout << "Wpisz 4, aby pogrupowac wyrazy od Z do A przy pomocy drugiego algorytmu" << endl;
    cout << "Wpisz 5, aby odnalezc najdluzszy wyraz" << endl;
    cout << "Wpisz 6, aby odnalezc najkrotszy wyraz" << endl;
    cout << "Wpisz 7, aby dopisac wyraz" << endl;
    cout << "Wpisz 8, aby wykasowac wyraz" << endl;
    cout << "Wpisz 9, aby zapisac wyniki do pliku" << endl;
   
   
}

int zliczenie( string link )
{ int licznik = 0;
    string slowo;
    ifstream pliczek;
    pliczek.open( link.c_str() );
    while( pliczek >> slowo ) licznik++;
   
    return licznik;
    pliczek.close();
   
}


void sort1( int k, string * tabs[] )
{ string temp;
    for( int i = 0; i < k; i++ )
    { if( tabs[ i ] > tabs[ i + 1 ] )
        { tabs[ i ] = temp;
            tabs[ i ] = tabs[ i + 1 ];
            tabs[ i + 1 ] = temp; } }
   
    for( int j = 0; j < k; j++ )
         cout << tabs[ j ] << endl; }
P-73798
jsc
» 2013-01-13 15:05:57
void sort1( int k, string tabs[] ), działa, ale musisz poprawić deklarację i definicję jednocześnie.
P-73801
cryuff
Temat założony przez niniejszego użytkownika
» 2013-01-13 19:59:15
Zrobiłem już 3 algorytmy sortowania mam tylko problem z przekształceniem tego na sortowanie od Z do A:
C/C++
string sort2za( int k, string tabs[] )
{
    int i, j;
    string temp;
    for( j = k - 2; j >= 0; j-- )
    {
        temp = tabs[ j ];
        i = j + 1;
        while(( i <= k - 1 ) &&( temp > tabs[ i ] ) )
        {
            tabs[ i - 1 ] = tabs[ i ];
            i++;
        }
        tabs[ i - 1 ] = temp;
    }
    system( "cls" );
    for( int j = 0; j < k; j++ )
         cout << tabs[ j ] << endl;
   
    return( * tabs );
}
 i są jakieś gotowe algorytmy do usuwania z tablicy stringów znaków interpunkcyjnych
P-73846
1 « 2 »
Poprzednia strona Strona 2 z 2