←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

C++
Liczby

Zablokowany

  • +
  • -
ZepA*** - zdjęcie ZepA*** 13.09.2011

Jak zrobic, aby mozna bylo w programie wpisac liczbe w przedziale 1-6?

Chodzi mi o program obliczajacy srednia. Chce aby mozna bylo wpisywac tylko te liczby w ocenach bo

nikt chyba nie dostaje oceny np 10:).

I jeszcze 1 pytanie. Czy da sie zrobic takie cos aby mozna bylo wpisywac tylko liczby? bo jak sie wpisze literę to program wariuje.
Odpowiedz

  • +
  • -
sharkowy - zdjęcie sharkowy 13.09.2011

Ten temat może Ci pomóc.

http://amxx.pl/topic...rednie-szkolne/
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 13.09.2011

to zalezy jak chcesz to zrobic mozesz lapac klawisz i sprawdzac ascii kod jesli jest miedzy "1-6" to wtedy wypisujesz to co pobrales i idziesz dalej jesli inny to powtarzasz krok poprzedni najlepiej jakas petla powiedz jakis jezyk to sie cos napisze
Odpowiedz

  • +
  • -
ZepA*** - zdjęcie ZepA*** 13.09.2011

Ten temat może Ci pomóc.

http://amxx.pl/topic...rednie-szkolne/


Właśnie korzystałem z tego kodu :) I chciałbym aby mozna bylo wpisywac liczby od 1 do 6.


to zalezy jak chcesz to zrobic mozesz lapac klawisz i sprawdzac ascii kod jesli jest miedzy "1-6" to wtedy wypisujesz to co pobrales i idziesz dalej jesli inny to powtarzasz krok poprzedni najlepiej jakas petla powiedz jakis jezyk to sie cos napisze


Mniej wiecej o cos takiego mi chodzi
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 13.09.2011

jezyk ??

rzeczywiscie nie zauwazylem xD
Użytkownik G[o]Q edytował ten post 13.09.2011 16:09
Odpowiedz

  • +
  • -
Fili:P - zdjęcie Fili:P 13.09.2011

#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
	int ilosc;
	float ocena;
	float srednia;
	cout << "Podaj ilosc ocen: ";
	cin >> ilosc;
	srednia = 0;
	for( int i = 1; i <= ilosc; i++ )
	{
	  
		cout << "Podaj ocene nr " << i << ": ";
		cin >> ocena;
		if( ocena > 6 || ocena < 1 )
		{
			 ilosc++;
			 i = ilosc;
			
		}
		else
		{
		srednia += ocena;
		}
	}
	if( ilosc > 0 ) srednia /= ilosc;
  
	cout << "Srednia ocen to: " << srednia << endl;
	getch();
	return( 0 );
}

źrodło: http://cpp0x.pl/kurs...0/Petla-for/130
Edytowałem trochę, nie mam pewności czy zadziała

Nie dam rady w tym momencie poprawić ;/
Użytkownik Fili:P edytował ten post 13.09.2011 16:37
Odpowiedz

  • +
  • -
ZepA*** - zdjęcie ZepA*** 13.09.2011

#include <cstdlib>
#include <iostream>

using namespace std;
int liczba_przedmiotow = 0;
int bla;
int main(int argc, char *argv[])
{
bla = 0;
system("CLS");
system("COLOR 3");
cout << "Witaj w programie obliczajacym twoja szkolna srednia" << endl;
cout << "Program jest napisany przez Zepa" << endl << endl;
cout << "Na samym poczatku podaj ilosc przedmiotow, ktorych uczysz sie w szkole" << endl << endl;
cout << "Ilosc przedmiotow: ";
cin >> liczba_przedmiotow;

string nazwy_przedmiotow[liczba_przedmiotow+1];
double oceny_przedmiotow[liczba_przedmiotow+1];
double suma;
double wynik;
cout << endl << "OK. Teraz podaj nazwy tych przedmiotow" << endl << endl;

for(int i = 0; i < liczba_przedmiotow; i++)
{
cout << "Przemiot numer " << i+1 << ": ";
cin >> nazwy_przedmiotow[i];
}

cout << endl <<"Teraz wpisz swoje oceny" << endl;

for(int y = 0; y < liczba_przedmiotow; y++)
{
cout << nazwy_przedmiotow[y] << ": ";
cin >> oceny_przedmiotow[y];
if( oceny_przedmiotow[y] > 6 || oceny_przedmiotow[y] < 1 )
{
liczba_przedmiotow++;
y = liczba_przedmiotow;
cout << "Podales nieprawidlowa ocene";
}
else
{
suma += oceny_przedmiotow[y];
}
}
system("CLS");
cout << "Trwa obliczanie sredniej" << endl << endl;
if(liczba_przedmiotow > 1) wynik = suma / liczba_przedmiotow;
if(wynik >= 4.75)
{
cout << "GRATULACJE!!! Twoja srednia wynosi: " << wynik << endl;
cout << "Bedziesz miec swiadectwo z paskiem :)";
}
else if(wynik >= 4.5 && wynik <= 4.74)
{
cout << "Twoja srednia wynosi: " << wynik << endl;
cout << "Do swiadectwa z paskiem duzo ci nie zabraklo :|";
}
else if(wynik >= 2.01 && wynik <= 4.49)
{
cout << "Twoja srednia wynosi: " << wynik << endl;
cout << "Zawsze moglo byc lepiej :)";
}
else
{
cout << "Twoja srednia wynosi: " << wynik << endl;
cout << "Twoja srednia jest bardzo slaba." << endl;
cout << "Na 100% bedziesz powtarzac klase :(";
}
cout << endl << endl << "Programik napisany przez Zepa!!!" << endl << endl << endl;
cout << "Co chcesz teraz robic?" << endl;
cout << "[1] Chce obliczyc srednia od nowa" << endl;
cout << "[0] Wyjscie" << endl << endl;
cout << "Wybieram: ";
cin >> bla;

if(bla >= 1)
{
main(argc, argv);
}
else if(bla == 0)
{
return 0;
}
}


To jest caly kod. Zrobilem cos podobnego i nie dziala. Sprawdzisz?
Odpowiedz

  • +
  • -
fdszpl0 - zdjęcie fdszpl0 13.09.2011

dołącz w nagłówku bibliotekę string
#include <string>
na przyszłość podaj komunikat błędu, nie wiem czy to wszystko rozwiąże bo skompilowałem to oczami
Odpowiedz

  • +
  • -
ZepA*** - zdjęcie ZepA*** 13.09.2011

Z tym stringiem tez nie dziala.

Błędu nie było tylko jak wpisalem liczbe np 7 to program sie wylaczal
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 13.09.2011

bo kod jest bezsensu :D juz kiedys o tym pisalem ze nie powinno sie modyfikowac licznika petli pozatym zamiast for'a tutaj dobra by byla while/while-do

masz cos takiego nie testowalem ale powinno dzialac dodaj sobie tylko nazwy przedmiotow jesli chcesz stala LEN to ilosc przedmiotow mozesz zrobic z tego zmienna i wczytywac ja przez usera:

#include <iostream>

using namespace std;

const int LEN=6;

int main(){
    int tab[LEN];
    
    int x=0;
    int srednia=0;

    while(cin >>tab[x] && tab[x]<7 && tab[x]>0 && x<LEN-1){
		  srednia+=tab[x++];
    }
    srednia+=tab[x];
    cout<<"SREDNIA: "<<float(srednia)/LEN<<endl;
    
    system("pause");
}
Odpowiedz
Zablokowany