Balasdjaw Temat założony przez niniejszego użytkownika |
Przerobienie tablicy generującej cyfry na tablicę generującą litery od a do z » 2013-10-25 20:31:05 Witajcie. Zmagam się z takim oto zadaniem: "Przyjąć dane dotyczące wielkości tabeli – ilość wierszy i kolumn. Utworzyć tabele znaków . Wypełnić je danymi. Wyświetlić tabelę. Poprosić o wprowadzenie danej dodatkowej, znakowej i przyjąć ją. Przeglądać zawartość wektora, jeżeli element tabeli jest większy od danej dodatkowej to do taki element zamienić na znak &, jeżeli jest mniejszy lub równy to pozostawić element tabeli bez zmian. Wyświetlić w pętli zawartość tabeli po wprowadzonych zmianach." Otóż punktem wyjścia do wykonania tego zadania ma być taki oto program: Plik pr_gl.cpp: #include <iostream> #include "tab.h"
using namespace std;
int main() { int * wi, n, m, x; cout << "Podaj ilosc wierszy" << endl; cin >> n; cout << "Podaj ilosc kolumny" << endl; cin >> m; cout << "Prosze wprowadzic liczbe calkowita" << endl; cin >> x; int tab[ n ][ m ]; wi =& tab[ 0 ][ 0 ]; cout << "\nTabela zaczyna sie na adresie " << wi << endl; srand( time( NULL ) ); wpis( n, m, wi ); cout << "Zawartosc tabeli:" << endl; wysw( n, m, wi ); wysw2( n, m, wi, x ); cout << "Zawartosc tabeli po sprawdzeniu:" << endl; wysw( n, m, wi ); system( "pause" ); }
PODPROGRAMY: tab.cpp: #include <iostream> #include "tab.h"
using namespace std;
void wpis( int a, int b, int * c ) { for( int i = 0; i < a * b; i++ ) *( c++ ) = rand() % 100; }
void wysw( int a, int b, int * c ) { for( int i = 0; i < a; i++ ) { for( int j = 0; j < b; j++ ) cout <<*( c++ ) << ' '; cout << endl; } }
int * wysw2( int a, int b, int * c, int d ) { for( int i = 0; i < a * b; i++ ) { if( * c > d ) * c =* c + 5; * c++; } return c; }
tab.h:
#ifndef tab_h #define tab_h
void wpis( int a, int b, int * c ); void wysw( int a, int b, int * c ); int * wysw2( int a, int b, int * c, int d );
#endif
Problem polega na tym, że gdy zamiast int(liczb całkowitych) deklaruję char(znaki) to generuje mi całą gamę znaków podczas gdy ja mam wygenerować tablicę znaków od a do z. Będę wdzięczny za chociażby nakierowanie mnie na to jak załatwić ten problem. |
|
zielonek12 |
» 2013-10-25 20:58:35 Nie wiem o co zbytnio chodzi bo śmigam z c++ od 4 dni i nie wiem czy to ci pomoże ale proszę: for( int i = 32; i < 256; i++ ) cout <<( char ) i << " "; |
|
Monika90 |
» 2013-10-25 21:54:14 cin >> n; cout << "Podaj ilosc kolumny" << endl; cin >> m; cout << "Prosze wprowadzic liczbe calkowita" << endl; cin >> x; int tab[ n ][ m ];
Tak nie można. W C++ rozmiary tablicy muszą być znane w czasie kompilacji. |
|
jankowalski25 |
» 2013-10-26 12:31:07 W C++ rozmiary tablicy muszą być znane w czasie kompilacji. |
Nie muszą. Przykład: int wczytajLiczbe() { int zmienna = 0; std::cin >> zmienna; return zmienna; }
const int zmienna = wczytajLiczbe(); int tablica[ zmienna ]; |
|
Elaine |
» 2013-10-26 15:04:39 Można prosić o cytat ze standardu? Draft C++14 odpada, jeszcze nie jest standardem. |
|
Monika90 |
» 2013-10-27 00:15:44 Nawet w drafcie C++14 nie da się tego znaleźć. Na ostatnim zjeździe komitetu tablice z rozmiarem określonym w czasie wykonania i std::dynarray wyleciały z C++14. Podobny los spotkał std::optional. |
|
jankowalski25 |
» 2013-11-01 12:07:46 |
|
pekfos |
» 2013-11-01 17:39:35 Co to jest? |
|
« 1 » 2 |