| arak1488 Temat założony przez niniejszego użytkownika | Dev C++ - Problem z nadanym projektem. » 2011-12-07 20:56:29 Witam, Mam problem z zadaniem. Otóż wszystko zrobiłem wg. zaleceń Profesora, a jednak wychodzi mi mnóstwo błędów. Mógłby ktoś zerknąć na tą pracę ? Będę wdzięczny. Oto kod : #include <iostream>#include <string>
 #include <stdlib.h>
 using namespace std;
 int tabl[ 5 ] = { 0, 0, 0, 0, 0 };
 int x, y, z, i;
 float srednia, dlugosc;
 char a[ 10 ];
 
 struct samochod {
 char model[ 10 ];
 char zuzycie paliwa[ 4 ];
 int wiek;
 char kolor[ 10 ];
 int wielkosc samochodu;
 char pojemnosc silnika[ 10 ];
 } tab[ 5 ];
 int menu()
 {
 cout << endl;
 cout << "MENU >>Wpisz numerek przy wybranym przez Ciebie poleceniu(0-6)<<" << endl;
 cout << "1. Wypisze na ekranie w postaci tabelarycznej wprowadzone informacje." << endl;
 cout << "2. Poda informację ile jest samochodów we wskazanym (o kolor należy zapytać użytkownika) kolorze." << endl;
 cout << "3. Informacje o najmlodszym i najstarszym samochodzie" << endl;
 cout << "4. Wypisze wszystkie samochody (model, kolor i wiek) starsze niż średnia wieku wprowadzonych samochodów;" << endl;
 cout << "5. Poda ile samochodów ma za duże zużycie (za dużo jest wtedy, gdy: pojemność silnika/zużycie paliwa <210);" << endl;
 cout << "6. Wypisze w kolejności rosnącej (ze względu na pojemność silnika) samochody małe, a następnie duże." << endl;
 cout << "0. Koniec programu";
 cin >> i;
 }
 
 int zbieraniedanych()
 {
 cout << "Podaj informacje o 10 dowolnych samochodach";
 for( x = 0; x < 5; x++ )
 {
 cout << "Samochod " << x << endl;
 cout << "Model: ";
 cin >> tab[ x ].model;
 cout << "Zuzycie paliwa : ";
 cin >> tab[ x ].zuzycie paliwa;
 cout << "Wiek(w latach) : ";
 cin >> tab[ x ].wiek;
 cout << "Kolor : ";
 cin >> tab[ x ].kolor;
 cout << "Wielkość samochodu (duzy/maly)";
 cin >> tab[ x ].wielkosc samochodu;
 cout << "Pojemnosc silnika ";
 cin >> tab[ x ].pojemnosc silnika;
 }
 }
 
 int zad1()
 {
 for( x = 0; x < 5; x++ )
 {
 cout << "Samochod " << x << endl;
 cout << " Model : ";
 cout << tab[ x ].model;
 cout << " Zyzycie paliwa : ";
 cout << tab[ x ].zuzycie paliwa;
 cout << " Wiek : ";
 cout << tab[ x ].wiek;
 cout << " Kolor : ";
 cout << tab[ x ].kolor;
 cout << " Wielkosc samochodu : ";
 cout << tab[ x ].wielkosc samochodu;
 cout << " pojemnosc silnika : ";
 cout << tab[ x ].pojemnosc silnika;
 cout << endl;
 }
 }
 
 int zad2()
 {
 cout << "Podaj kolor : ";
 cin >> a;
 z = 0;
 for( x = 0; x < 5; x++ )
 {
 if( tab[ x ].wielkosc samochodu == "duzy" )
 {
 if( tab[ x ].kolor == a )
 {
 z++;
 }
 }
 cout << endl << "Takich samochodzików jest : " << z;
 }
 }
 
 int zad3()
 {
 z = tab[ 1 ].wiek;
 for( x = 0; x < 5; x++ )
 {
 if( tab[ x ].wiek > z )
 {
 z = tab[ x ].wiek;
 }
 }
 x = z;
 cout << "Najstarsze samochodu " << x << endl;
 cout << " Model : ";
 cout << tab[ x ].Model;
 cout << " Wielkosc(duzy/maly) : ";
 cout << tab[ x ].wielkosc;
 cout << " Wiek : ";
 cout << tab[ x ].wiek;
 cout << " Kolor : ";
 cout << tab[ x ].kolor;
 cout << " Wielkosc samochodu ";
 cout << tab[ x ].wielkosc samochodu;
 cout << " Pojemnosc silnika : ";
 cout << tab[ x ].pojemnosc silnika;
 cout << endl;
 
 z = tab[ 1 ].wiek;
 for( x = 0; x < 5; x++ )
 {
 if( tab[ x ].wiek < z )
 {
 z = tab[ x ].wiek;
 }
 }
 
 x = z;
 cout << "Najstarsze samochodu " << x << endl;
 cout << " Model : ";
 cout << tab[ x ].Model;
 cout << " Wielkosc(duzy/maly) : ";
 cout << tab[ x ].wielkosc;
 cout << " Wiek : ";
 cout << tab[ x ].wiek;
 cout << " Kolor : ";
 cout << tab[ x ].kolor;
 cout << " Wielkosc samochodu ";
 cout << tab[ x ].wielkosc samochodu;
 cout << " Pojemnosc silnika : ";
 cout << tab[ x ].pojemnosc silnika;
 cout << endl;
 }
 
 int zad4()
 {
 srednia =( tab[ 1 ].wiek + tab[ 2 ].wiek + tab[ 3 ].wiek + tab[ 4 ].wiek + tab[ 5 ].wiek ) / 5;
 for( x = 0; x < 5; x++ )
 {
 if( tab[ x ].wiek > srednia )
 {
 cout << "Samochod" << x << endl;
 cout << " Model : ";
 cout << tab[ x ].Model;
 cout << " Wielkosc(duzy/maly) : ";
 cout << tab[ x ].wielkosc;
 cout << " Wiek : ";
 cout << tab[ x ].wiek;
 cout << " Kolor : ";
 cout << tab[ x ].kolor;
 cout << " Wielkosc samochodu ";
 cout << tab[ x ].wielkosc samochodu;
 cout << " Pojemnosc silnika : ";
 cout << tab[ x ].pojemnosc silnika;
 cout << endl;
 }
 }
 }
 
 
 int zad5()
 {
 z = 0;
 for( x = 0; x < 5; x++ )
 {
 if( tab[ x ].waga > 10 )
 {
 if( tab[ x ].model[( sizeof( sizeof( tab[ x ].model ) / tab[ x ].model[ 0 ] ) ) - 1 ] == 'a' )
 {
 z++;
 }
 }
 }
 cout << " Takich samochodow jest : " << z;
 }
 
 int zad6()
 {
 z = 0;
 for( y = 0; y < 5; y++ )
 {
 for( x = 0; x < 5; x++ )
 {
 if( tab[ x ].wielkosc == "maly" || tab[ x ].wiek > z || x != tabl[ 0 ] || x != tabl[ 1 ] || x != tabl[ 2 ] || x != tabl[ 3 ] || x != tabl[ 4 ] )
 {
 z = x;
 }
 }
 tabl[ y ] = z;
 for( x = 0; x < 5; x++ )
 {
 if( tab[ x ].wielkosc == "duzy" || tab[ x ].wiek > z || x != tabl[ 0 ] || x != tabl[ 1 ] || x != tabl[ 2 ] || x != tabl[ 3 ] || x != tabl[ 4 ] )
 {
 z = x;
 }
 }
 tabl[ y ] = z;
 }
 
 for( x = 0; x < 5; x++ )
 {
 cout << "Samochod " << x << endl;
 cout << "Model : ";
 cout << tab[ x ].Model;
 cout << endl;
 cout << "Zuzycie paliwa: ";
 cout << tab[ x ].Zuzycie paliwa;
 cout << endl;
 cout << "Wiek : ";
 cout << tab[ x ].wiek;
 cout << endl;
 cout << "Kolor : ";
 cout << tab[ x ].kolor;
 cout << endl;
 cout << "Wielkosc samochodu : ";
 cout << tab[ x ].wielkosc samochodu;
 cout << endl;
 cout << "Pojemnosc silnika : ";
 cout << tab[ x ].pojemnosc silnika;
 cout << endl;
 }
 }
 
 
 
 int main()
 {
 zbieraniedanych();
 i = 1;
 while( i == 1 )
 {
 menu();
 switch( i )
 {
 case 1: zad1();
 break;
 case 2: zad2();
 break;
 case 3: zad3();
 break;
 case 4: zad4();
 break;
 case 5: zad5();
 break;
 case 6: zad6();
 break;
 case 0: return 0;
 break;
 default: cout << "Bledna wartosc";
 break;
 }
 system( "cls" );
 }
 return 0;
 }
 
 | 
|  | 
| MJJay | » 2011-12-07 21:01:43 Pierwszy błąd: nie piszemy  #include <stdlib.h>  bo jest to nie zgodne z obowiązującym standardem.  Jako, iż jest to biblioteka ANSI C to piszemy teraz tak:  #include <cstdlib> Kolejne błędy...w nazwach zmiennych czy są to tablice czy cokolwiek innego nie możemy używać spacji! Zamień je na "_"... :) Jak deklarujesz zmienną z małej litery to później w programie również wywołuj ją z małej litery...  | 
|  | 
| arak1488 Temat założony przez niniejszego użytkownika | s » 2011-12-07 21:14:23 Mam prośbę, czy mógłbyś mi używając mojego kodu pogrubić/powiększyć linijkę gdzie są  błędy, a ja je przeanalizuję i naniosę poprawki, a w racji potrzeby zwrócę się jeszcze raz tu o pomoc. | 
|  | 
| MJJay | » 2011-12-07 21:15:29 To twój kod w miarę poprawiony...coś jeszcze sypie się z tablicą "tab" ale jeszcze nie wiem co... #include <iostream>#include <string>
 #include <cstdlib>
 using namespace std;
 int tabl[ 5 ] = { 0, 0, 0, 0, 0 };
 int x, y, z, i;
 float srednia, dlugosc;
 char a[ 10 ];
 
 
 struct samochod {
 char model[ 10 ];
 char zuzycie_paliwa[ 4 ];
 int wiek;
 char kolor[ 10 ];
 int wielkosc_samochodu;
 char pojemnosc_silnika[ 10 ];
 int tab[ 5 ];
 };
 int menu()
 {
 cout << endl;
 cout << "MENU >>Wpisz numerek przy wybranym przez Ciebie poleceniu(0-6)<<" << endl;
 cout << "1. Wypisze na ekranie w postaci tabelarycznej wprowadzone informacje." << endl;
 cout << "2. Poda informację ile jest samochodów we wskazanym (o kolor należy zapytać użytkownika) kolorze." << endl;
 cout << "3. Informacje o najmlodszym i najstarszym samochodzie" << endl;
 cout << "4. Wypisze wszystkie samochody (model, kolor i wiek) starsze niż średnia wieku wprowadzonych samochodów;" << endl;
 cout << "5. Poda ile samochodów ma za duże zużycie (za dużo jest wtedy, gdy: pojemność silnika/zużycie paliwa <210);" << endl;
 cout << "6. Wypisze w kolejności rosnącej (ze względu na pojemność silnika) samochody małe, a następnie duże." << endl;
 cout << "0. Koniec programu";
 cin >> i;
 }
 
 int zbieraniedanych()
 {
 cout << "Podaj informacje o 10 dowolnych samochodach";
 for( x = 0; x < 5; x++ )
 {
 cout << "Samochod " << x << endl;
 cout << "Model: ";
 cin >> tab[ x ].model;
 cout << "Zuzycie paliwa : ";
 cin >> tab[ x ].zuzycie_paliwa;
 cout << "Wiek(w latach) : ";
 cin >> tab[ x ].wiek;
 cout << "Kolor : ";
 cin >> tab[ x ].kolor;
 cout << "Wielkość samochodu (duzy/maly)";
 cin >> tab[ x ].wielkosc_samochodu;
 cout << "Pojemnosc silnika ";
 cin >> tab[ x ].pojemnosc_silnika;
 }
 }
 
 int zad1()
 {
 for( x = 0; x < 5; x++ )
 {
 cout << "Samochod " << x << endl;
 cout << " Model : ";
 cout << tab[ x ].model;
 cout << " Zyzycie paliwa : ";
 cout << tab[ x ].zuzycie_paliwa;
 cout << " Wiek : ";
 cout << tab[ x ].wiek;
 cout << " Kolor : ";
 cout << tab[ x ].kolor;
 cout << " Wielkosc samochodu : ";
 cout << tab[ x ].wielkosc_samochodu;
 cout << " pojemnosc silnika : ";
 cout << tab[ x ].pojemnosc_silnika;
 cout << endl;
 }
 }
 
 int zad2()
 {
 cout << "Podaj kolor : ";
 cin >> a;
 z = 0;
 for( x = 0; x < 5; x++ )
 {
 
 {
 if( tab[ x ].kolor == a )
 {
 z++;
 }
 }
 cout << endl << "Takich samochodzików jest : " << z;
 }
 }
 
 int zad3()
 {
 z = tab[ 1 ].wiek;
 for( x = 0; x < 5; x++ )
 {
 if( tab[ x ].wiek > z )
 {
 z = tab[ x ].wiek;
 }
 }
 x = z;
 cout << "Najstarsze samochodu " << x << endl;
 cout << " Model : ";
 cout << tab[ x ].model;
 cout << " wielkosc(duzy/maly) : ";
 cout << tab[ x ].Wielkosc;
 cout << " Wiek : ";
 cout << tab[ x ].wiek;
 cout << " Kolor : ";
 cout << tab[ x ].kolor;
 cout << " Wielkosc samochodu ";
 cout << tab[ x ].wielkosc_samochodu;
 cout << " Pojemnosc silnika : ";
 cout << tab[ x ].pojemnosc_silnika;
 cout << endl;
 
 z = tab[ 1 ].wiek;
 for( x = 0; x < 5; x++ )
 {
 if( tab[ x ].wiek < z )
 {
 z = tab[ x ].wiek;
 }
 }
 
 x = z;
 cout << "Najstarsze samochodu " << x << endl;
 cout << " Model : ";
 cout << tab[ x ].Model;
 cout << " Wielkosc(duzy/maly) : ";
 cout << tab[ x ].wielkosc;
 cout << " Wiek : ";
 cout << tab[ x ].wiek;
 cout << " Kolor : ";
 cout << tab[ x ].kolor;
 cout << " Wielkosc samochodu ";
 cout << tab[ x ].wielkosc_samochodu;
 cout << " Pojemnosc silnika : ";
 cout << tab[ x ].pojemnosc_silnika;
 cout << endl;
 }
 
 int zad4()
 {
 srednia =( tab[ 1 ].wiek + tab[ 2 ].wiek + tab[ 3 ].wiek + tab[ 4 ].wiek + tab[ 5 ].wiek ) / 5;
 for( x = 0; x < 5; x++ )
 {
 if( tab[ x ].wiek > srednia )
 {
 cout << "Samochod" << x << endl;
 cout << " Model : ";
 cout << tab[ x ].Model;
 cout << " Wielkosc(duzy/maly) : ";
 cout << tab[ x ].wielkosc;
 cout << " Wiek : ";
 cout << tab[ x ].wiek;
 cout << " Kolor : ";
 cout << tab[ x ].kolor;
 cout << " Wielkosc samochodu ";
 cout << tab[ x ].wielkosc_samochodu;
 cout << " Pojemnosc silnika : ";
 cout << tab[ x ].pojemnosc_silnika;
 cout << endl;
 }
 }
 }
 
 
 int zad5()
 {
 z = 0;
 for( x = 0; x < 5; x++ )
 {
 if( tab[ x ].waga > 10 )
 {
 if( tab[ x ].model[( sizeof( sizeof( tab[ x ].model ) / tab[ x ].model[ 0 ] ) ) - 1 ] == 'a' )
 {
 z++;
 }
 }
 }
 cout << " Takich samochodow jest : " << z;
 }
 
 int zad6()
 {
 z = 0;
 for( y = 0; y < 5; y++ )
 {
 for( x = 0; x < 5; x++ )
 {
 if( tab[ x ].wielkosc == "maly" || tab[ x ].wiek > z || x != tabl[ 0 ] || x != tabl[ 1 ] || x != tabl[ 2 ] || x != tabl[ 3 ] || x != tabl[ 4 ] )
 {
 z = x;
 }
 }
 tabl[ y ] = z;
 for( x = 0; x < 5; x++ )
 {
 if( tab[ x ].wielkosc == "duzy" || tab[ x ].wiek > z || x != tabl[ 0 ] || x != tabl[ 1 ] || x != tabl[ 2 ] || x != tabl[ 3 ] || x != tabl[ 4 ] )
 {
 z = x;
 }
 }
 tabl[ y ] = z;
 }
 
 for( x = 0; x < 5; x++ )
 {
 cout << "Samochod " << x << endl;
 cout << "Model : ";
 cout << tab[ x ].Model;
 cout << endl;
 cout << "Zuzycie paliwa: ";
 cout << tab[ x ].zuzycie_paliwa;
 cout << endl;
 cout << "Wiek : ";
 cout << tab[ x ].wiek;
 cout << endl;
 cout << "Kolor : ";
 cout << tab[ x ].kolor;
 cout << endl;
 cout << "Wielkosc samochodu : ";
 cout << tab[ x ].wielkosc_samochodu;
 cout << endl;
 cout << "Pojemnosc silnika : ";
 cout << tab[ x ].pojemnosc_silnika;
 cout << endl;
 }
 }
 
 
 
 int main()
 {
 zbieraniedanych();
 i = 1;
 while( i == 1 )
 {
 menu();
 switch( i )
 {
 case 1: zad1();
 break;
 case 2: zad2();
 break;
 case 3: zad3();
 break;
 case 4: zad4();
 break;
 case 5: zad5();
 break;
 case 6: zad6();
 break;
 case 0: return 0;
 break;
 default: cout << "Bledna wartosc";
 break;
 }
 system( "cls" );
 }
 return 0;
 }
 
Czy klasa string, którą includujesz do programu nie miała Ci czasem zastąpić tego  tab[ x ].wielkosc == "duzy" ? Trochę nie ogarniam co to porobiłeś z tymi tablicami... | 
|  | 
| arak1488 Temat założony przez niniejszego użytkownika | » 2011-12-07 21:26:07 Hm, może i masz racje z tym.
 Ale nie pamiętam jak mi to Profesor tłumaczył, a teraz spoglądam również na tablice i próbuję ogarnąć te błędy.
 Pierwszy projekt bez problemów większych mi podszedł, a z tym coś pokićkałem i głowię się od popołudnia nad rozwiązaniem..
 | 
|  | 
| SeaMonster131 | » 2011-12-07 21:30:01 | 
|  | 
| MJJay | » 2011-12-07 21:30:29 W tym pierwszym projekcie też deklarowałeś zmienne ze spacjami (nie możliwe, że to działało)?:PNapisz ten projekt jeszcze raz:) Taka moja mała porada. A jak nie wiesz o co chodziło to masz dwa wyjścia:
 
 a) zapytać profesora jeszcze raz,
 b) masz problem :P
 
 @SeaMonster131
 czekałeś aż ktoś się wyprodukuje szukając tam błędów?:P
 | 
|  | 
| arak1488 Temat założony przez niniejszego użytkownika | » 2011-12-07 21:36:08 @SeaMonster131 - Przeczytałem artykuł odnośnie Tablic i nie tylko tu, ale i również w podręcznikach dla Programistów. I niestety nie przychodzi mi do głowy jakikolwiek pomysł.
 @MJJay - Hm, Profesor wyciągnął wszelakie asy z rękawa by mi pomóc, ale na wszystkie pomoce z strony nie mogę chyba liczyć. Dlatego też zwracam się do was. A jeżeli pytałeś o spacje, używałem "_", tyle że nie zwróciłem uwagi przy pierwszym projekcie.
 
 Porównuje teraz pierwszy z drugim i nie widzę zależności w błędach..
 
 Będzie ktoś łaskawy i pomoże ?
 | 
|  | 
| « 1 »  2 |