MathPro

Avatar mojlogin
Moderator
Witam, napisałem program, który potrafi:

-Sprawdzić, w której ćwiartce znajduje się dany koordynat

-Obliczyć pole danej figury płaskiej

-Oblicz obwód danej figury płaskiej

-Zamienić jednostki (może działać błędnie)

Program oczywiście konsolowy, ale w czasie rozwijania programu mam zamiar dodać GUI.

Chciałbym żebyście podali propozycje, co może się znaleźć w programie, gdyż poziom 1 gimnazjum nie jest zaskakujący

Download:

Linux
Windows

Avatar krysztal
Narazie powiem że jest troche bugów:
-Program nie wie co robić jak wprowadzę jakąś niezaprogramowaną akcję, albo zrobie coś dziwnego i się crashuje (1)(2)(3)
-Program crashuje się sam z siebie
-Coś takiego się dzieje, że jak uruchamiam go z eksploratora, to dzieje się coś dziwnego
-Polskie znaczki się sypią
-Przelicznik cm->dm jest błędny
-"Naciśnij dowolny klawisz"
-Wersja dla Linuxa sie nie exekuje(Exec format error)

Pozatym wszystko fajnie, działaj dalej, ponaprawiaj błędy i stwórz program lepszy niż wolfram alpha ;)

Avatar mojlogin
Moderator
Dziękuję za opinię, tak to już jest, gdy nie używa się debugera. Postaram się naprawić błędy, ale teraz wolę się skupić na dodawaniu do programu nowych funkcji, bo te nie powalają

Avatar CreativeSnake
Fajny prosty i przydatny programik. A może obliczanie kątów? Dość obszerny temat, ale można byłoby to zrobić.
___
Gdybyście widzieli jak moje programy bały się tego programu :
Zdjęcie użytkownika CreativeSnake w temacie MathPro Najpierw Chrome, które mnie okłamuje i twierdzi, że to złośliwy plik, a zaraz potem po pobraniu Avast! ruszył się do skanowania. Oczywiście nic nie wykrył co nie zmienia faktu jak negatywnie nastawiły się w stosunku do MathPro ;d

Avatar
Konto usunięte
CreativeSnake pisze:
Fajny prosty i przydatny programik. A może obliczanie kątów? Dość obszerny temat, ale można byłoby to zrobić.
___
Gdybyście widzieli jak moje programy bały się tego programu :
Zdjęcie użytkownika Konto usunięte w temacie MathPro Najpierw Chrome, które mnie okłamuje i twierdzi, że to złośliwy plik, a zaraz potem po pobraniu Avast! ruszył się do skanowania. Oczywiście nic nie wykrył co nie zmienia faktu jak negatywnie nastawiły się w stosunku do MathPro ;d

Chrome był zawsze "nadpobudliwy", gdyż każdy "mało popularny" plik który potencjalnie może zawierać wirusa jest uznawany za "groźny".
To że !Avast wykonał skan nie jest dziwne, jego zadaniem jest chronić twój komputer, więc wykonał go "tak dla pewności".

Avatar gelo1238
Moderator
Przeskanowałem na www.virustotal.com/pl/ i tylko 1 antywirus coś tam odnalazł w windowsowej wersji.

Avatar mojlogin
Moderator
gelo1238 pisze:
Przeskanowałem na www.virustotal.com/pl/ i tylko 1 antywirus coś tam odnalazł w windowsowej wersji.

A co dokładnie ? Bo kod raczej nie ingeruje w system (co najwyżej wykorzystuje polecenia Batch'a)

Avatar Jejowicz
gelo1238 pisze:
Skany(screeny)

Nooo dużo widać, nie tak się robi screeny pionowej przewijalnej strony.

Avatar
Konto usunięte
gelo1238 pisze:
Skany(screeny)

Nie łatwiej było po prostu dać link do wyników?

Avatar krysztal
Z tego co się obeznałem na ich stronie (http://viruslist.rising.com.cn), nie ma żadnej informacji na temat takiego wirusa, więc bardzo prawdopodobne że to jest false positive...

translate.google.pl/translate?hl=pl&sl=zh-CN&tl=pl&u=http%3A%2F%2Fviruslist.rising.com.cn%2Fsv.asp%3Fq%3DSpyware.Gen2!6.10EE

Pozatym Baidu international, od którego jak dobrze rozumiem wywodzi się ten cały rising, nic nie wykrył.

Avatar
Konto usunięte
Wirusa pewnie nie ma. Raz napisałem w C++ kalkulator na dodawanie, to wykazało mi w tym wirusa.
360 Total Security wykrył trojana.

Avatar Jejowicz
Ehhh, po co w ogóle bawić się w pierdyliardy skanerów? Wystarczy użyć kilku najlepszych, chociażby AVG, G-Data, Kaspersky, Bitdefender i F-Secure na przykład. Starczy, pomniejsze programiki ochronne nie wyłapią nic więcej.

Avatar mojlogin
Moderator
Do matematyków:

Co proponujecie dodać do programu ? Oprócz obliczania miar kątów, tak jak zaproponował jeden z użytkowników.

Avatar
Konto usunięte
Objętość, twierdzenie Pitagorasa, liczenie pola trójkąta równobocznego z boku.

Avatar
Konto usunięte
Będzie to rozwijane? Daj kod źródłowy.

Avatar mojlogin
Moderator
Tak będzie, chociaż aktualnie się rozleniwiłem

Kod źródłowy:

#include <iostream> //input - output - stream - biblitoteka uzywana do cin
#include <string> //Biblioteka uzywana do zmiennej string, ktora przechowuje tekst
#include <stdio.h> //Biblioteka uzywana do cin.get();

using namespace std; //Uzywanie przestrzeni nazw std

int x, y; //Zmienne koordynatow
int liczba1, liczba2; //Zmienne
string znak; //Kolejna zmienna
int wybor; //Zmienna uzywana do instrukcji switch
int a, b, c, d, h, d1, d2, dlugosc, wynik; //Wazne zmienne

void Menu();
void Wspolrzedne();
void Kalkulator();
void MenuObliczaniePola();
void PoleKwadratu();
void PoleDeltoidu();
void PoleProstokatu();
void PoleRownolegloboku();
void PoleTrapezu();
void PoleTrojkata();
void PoleKola();
void MenuObliczanieObwodu();
void ObwodDeltoidu();
void ObwodKwadratu();
void ObwodProstokatu();
void ObwodRownolegloboku();
void ObwodTrapezu();
void ObwodTrojkata();
void MenuJednostki();
void MenuJednostkiDlugosci();
void MenuJednostkiMasy();
void Milimetry();
void Centymetry();
void Decymetry();
void Metry();
void Kilometry();

void Menu() //Menu programu, w którym wybieramy opcje
{
cout<<"MathPro"<<endl;
cout<<endl;
cout<<endl;
cout<<"[1]Obliczanie pola"<<endl;
cout<<endl;
cout<<"[2]Wspolrzedne"<<endl;
cout<<endl;
cout<<"[3]Obliczanie obwodu"<<endl;
cout<<endl;
cout<<"[4]Jednostki"<<endl;
cout<<endl;
cout<<"[5]Wyjscie"<<endl;
cin >> wybor;
switch(wybor)
{
case 1:
MenuObliczaniePola();
break;
case 2:
Wspolrzedne();
break;
case 3:
MenuObliczanieObwodu();
break;
case 4:
MenuJednostki();
break;
default:
cout<<"Zamykanie programu"<<endl;
}
}

void Wspolrzedne() //Funkcja odpowiedzialna za wspolrzedne
{
cout<<"Podaj wspolrzedna x:";
cin >> x;
cout<<"Podaj wspolrzedna y:";
cin >> y;
if(x > 0 && y > 0)
{
cout<<"Punkt znajduje sie w 1 cwiartce"<<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

if(x < 0 && y > 0)
{
cout<<"Punkt znajduje sie w 2 cwiartce"<<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

if(x < 0 && y < 0)
{
cout<<"Punkt znajduje sie w 3 cwiartce"<<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

if(x > 0 && y < 0)
{
cout<<"Punkt znajduje sie w 4 cwiartce"<<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

}

void MenuObliczaniePola() //Menu do wyboru figury plaskiej
{
cout<<"[1]Pole kwadratu"<<endl;
cout<<endl;
cout<<"[2]Pole prostokątu"<<endl;
cout<<endl;
cout<<"[3]Pole rownolegloboku"<<endl;
cout<<endl;
cout<<"[4]Pole trojkata"<<endl;
cout<<endl;
cout<<"[5]Pole trapezu"<<endl;
cout<<endl;
cout<<"[6]Pole deltoidu"<<endl;
cout<<endl;
cout<<"[7]Pole kola"<<endl;
cout<<endl;
cin >> wybor;
switch(wybor)
{
case 1:
PoleKwadratu();
break;
case 2:
PoleProstokatu();
break;
case 3:
PoleRownolegloboku();
break;
case 4:
PoleTrojkata();
break;
case 5:
PoleTrapezu();
break;
case 6:
PoleDeltoidu();
break;
case 7:
PoleKola();
break;
}
}

void MenuJednostki() //Menu do wyboru jednostek
{
cout << "[1]Jednostki dlugosci"<<endl;
cout << "[2]Jednostki masy"<<endl;
cin >> wybor;
switch(wybor)
{
case 1:
MenuJednostkiDlugosci();
break;
case 2:
MenuJednostkiMasy();
break;
}
}

void MenuJednostkiDlugosci() //Menu do wyboru jednostek dlugosci
{
cout << "Jednostki dlugosci:"<<endl;
cout << endl;
cout << "[1]Milimetry (mm)"<<endl;
cout << "[2]Centymetry (cm)"<<endl;
cout << "[3]Decymetry (dm)"<<endl;
cout << "[4]Metry (m)"<<endl;
cout << "[5]Kilometry (km)"<<endl;
cin >> wybor;
switch(wybor)
{
case 1:
Milimetry();
break;
case 2:
Centymetry();
break;
case 3:
Decymetry();
break;
case 4:
Metry();
break;
case 5:
Kilometry();
break;
}
}

void MenuJednostkiMasy() //Menu do wybierania jednostek masy
{
cout << "Jednostki masy:"<<endl;
cout << endl;
cout << "[1]Gram (g)"<<endl;
cout << "[2]Dekagram (dag)"<<endl;
cout << "[3]Kilogram (kg)"<<endl;
cout << "[4]Tona (t)"<<endl;
cout << "Ta funkcja nie jest jeszcze zaprogramowana, nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}
void PoleKwadratu()
{
cout<<"Podaj wartosc a:";
cin >> a;
cout << a * a <<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

void PoleProstokatu() //Pole prostokatu
{
cout << "Podaj wartosc a:";
cin >> a;
cout << "Podaj wartosc b:";
cin >> b;
cout << a * b <<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

void PoleRownolegloboku() //Pole rownolegloboku
{
cout<<"Podaj wartosc a:";
cin >> a;
cout <<"Podaj wartosc h:";
cin >> h;
cout << a * h <<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

void PoleTrojkata() //Pole trojkata
{
cout<<"Podaj wartosc a:";
cin >> a;
cout<<"Podaj wartosc h:";
cin >> h;
cout << a * h / 2 <<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

void PoleTrapezu() //Pole trapezu
{
cout << "Podaj wartosc a:";
cin >> a;
cout << "Podaj wartosc b:";
cin >> b;
cout << "Podaj wartosc h:";
cin >> h;
cout << (a+b)*h /2 <<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

void PoleDeltoidu()
{
cout << "Podaj wartosc d1:";
cin >> d1;
cout << "Podaj wartosc d2:";
cin >> d2;
cout << d1 * d2 <<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

void PoleKola() //Pole kola, nie dziala
{
cout << "Podaj promien kola (r):";
cin >> a;
cout << "Podaj teeee, bo nie wiem jak to nazwac:";
cin >> b;
cout << a * ( b * b ) << endl;
cin.get();
cin.get();
Menu();
}

void MenuObliczanieObwodu() //Menu do wyboru figury plaskiej
{
cout<<"[1]Obwod kwadratu"<<endl;
cout<<"[2]Obwod prostokatu"<<endl;
cout<<"[3]Obwod rownolegloboku"<<endl;
cout<<"[4]Obwod trojkata"<<endl;
cout<<"[5]Obwod trapezu"<<endl;
cout<<"[6]Obwod deltoidu"<<endl;
cin >> wybor;
switch(wybor)
{
case 1:
ObwodKwadratu();
break;
case 2:
ObwodProstokatu();
break;
case 3:
ObwodRownolegloboku();
break;
case 4:
ObwodTrojkata();
break;
case 5:
ObwodTrapezu();
break;
case 6:
ObwodDeltoidu();
break;
}
}

void ObwodKwadratu() //Obwod kwadratu
{
cout<<"Podaj wartosc a:";
cin >> a;
cout << 4 * a <<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

void ObwodProstokatu() //Obwod prostokatu
{
cout<<"Podaj wartosc a:";
cin >> a;
cout << "Podaj wartosc b:";
cin >> b;
cout << 2*a + 2*b <<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

void ObwodRownolegloboku() //Obwod rownolegloboku
{
cout<<"Podaj wartosc a:";
cin >> a;
cout << "Podaj wartosc b:";
cin >> b;
cout << 2*a + 2*b <<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}
void ObwodTrojkata() //Obwod trojkata
{
cout << "Podaj wartosc a:";
cin >> a;
cout << "Podaj wartosc b:";
cin >> b;
cout << "Podaj wartosc c:";
cin >> c;
cout << a + b + c <<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

void ObwodTrapezu() //Obwod trapezu
{
cout << "Podaj wartosc a:";
cin >> a;
cout << "Podaj wartosc b:";
cin >> b;
cout << "Podaj wartosc c:";
cin >> c;
cout << "Podaj wartosc d:";
cin >> d;
cout << a + b + c + d <<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

void ObwodDeltoidu() //Obwod deltoidu
{
cout<<"Podaj wartosc a:";
cin >> a;
cout << "Podaj wartosc b:";
cin >> b;
cout << 2*a + 2*b <<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

void Centymetry() //Centymetry
{
cout << "Podaj dlugosc w cm:";
cin >> dlugosc;
cout << dlugosc << "cm to:"<<endl;
cout << dlugosc * 0.01 << "m"<<endl;
cout << dlugosc * 0.00001 << "km"<<endl;
cout << dlugosc * 10 << "dm"<<endl;
cout << dlugosc * 10 << "mm"<<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

void Milimetry() //Milimetry
{
cout<<"Podaj dlugosc w mm:";
cin >> dlugosc;
cout << dlugosc << "mm to:"<<endl;
cout << dlugosc*0.001 << "m"<<endl;
cout << dlugosc*0.000001 << "km"<<endl;
cout << dlugosc*100 << "dm"<<endl;
cout << dlugosc*0.1 << "cm"<<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

void Decymetry() //Decymetry (dziala zle)
{
cout <<"Podaj dlugosc w dm:";
cin >> dlugosc;
cout << dlugosc << "dm to:"<<endl;
cout << dlugosc*10 << "m"<<endl;
cout << dlugosc*10000 << "km"<<endl;
cout << dlugosc*0.10 << "cm"<<endl;
cout << dlugosc*0.01 << "mm"<<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

void Metry() //Metry
{
cout <<"Podaj dlugosc w m:";
cin >> dlugosc;
cout << dlugosc << "m to:"<<endl;
cout << dlugosc*0.001 << "km"<<endl;
cout << dlugosc*0.10 << "dm"<<endl;
cout << dlugosc*100 << "cm"<<endl;
cout << dlugosc*1000 << "mm"<<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}
void Kilometry() //Kilometry
{
cout <<"Podaj dlugosc w km:";
cin >> dlugosc;
cout << dlugosc << "km to:"<<endl;
cout << dlugosc*1000 << "m"<<endl;
cout << dlugosc*10000 << "dm"<<endl;
cout << dlugosc*100000 << "cm"<<endl;
cout << dlugosc*1000000 << "mm"<<endl;
cout << "Nacisnij dowolny klawisz, aby powrocic do menu"<<endl;
cin.get();
cin.get();
Menu();
}

int main()
{
Menu();
}

Avatar
Konto usunięte
Dzięki
Na twoim profilu widziałem, że używasz CodeBlocks
Tobie też nie chce skompilować void main() ?

Avatar TheOrzeszek
O pisiorke, to bardziej skomplikowane niż moja zabawa z c++ (napisałem logowanie do bankomatu ;_;)

I MIAŁ TAK ZA**BISTY KOD ŻE TWÓJ PRZY NIM BLEDNIE


#include <iostream>
using namespace std;
string login, haslo;
int main()
{
cout << "Podaj login: ";
cin>> login;
cout << "Podaj haslo: ";
cin>> haslo
;if(login=="derp")
{
cout<< "Poprawny login"<<endl;
}
else
{
cout<< "Niepoprawny login"<<endl;
}
if (haslo=="derp")
{
cout << "poprawne haslo"<< endl;
}
else
{
cout << "Niepoprawne haslo" << endl;
}
return 0;
}

taki ku*wa długi, v: może znowu bym coś zrobił w c++ ;^; ale musiał bym sobie przypomnieć co wszystko robi.

Avatar JTay_
Dla zachęty możesz dodać część z dodawaniem hasła.

Avatar TheOrzeszek
Byćmoże kiedyś. ;-;

Avatar
Konto usunięte
A ja mam takie pytanie do Mateusza, gdy pobrałem twój program to konsola ładnie się czyściła po wybraniu opcji w menu. Ale jak sam skompilowałem, to wszystko zostawało. Jak ty to zrobiłeś?
PS. Po wykonaniu jakiegokolwiek programu zwraca mi, że proces zwraca zero i czas wykonywania programu. Tak samo, w twojej kompilacji tego nie było.

Avatar krysztal
Możliwe że formatowanie na jeja mogło coś rozwalić. mojlogin, wrzuc to zrodlo na jakiegos pastebina czy cos i podaj linka :)

Avatar mojlogin
Moderator
Dzięki za propozycję ! Nie dość, że formatuje, to kod podświetla jak w C++

pastebin.com/ZW26BVjA

Avatar TheOrzeszek
500 równych linijek kodu ;c; ile zajęło Ci programowanie tego?

Avatar mojlogin
Moderator
TheOrzeszek pisze:
500 równych linijek kodu ;c; ile zajęło Ci programowanie tego?

2 dni, bo wymyślałem co dodać do programu.

Avatar
Konto usunięte
Odpowiesz na moje pytania? pls

Avatar mojlogin
Moderator
emru1 pisze:
Odpowiesz na moje pytania? pls

Pracujesz w Code Blocks tak ? Podczas kompilacji program zwraca takie informacje, a czyszczenie ekranu...Dokładnie nie pamiętam, ale na Linuksie używałem specjalnych znaków ASCII, a pod Windows zwyczajne system("cls");

A ten kod jest z wersji 0.2, bo w niej chciałem zmienić metodę czyszczenia ekranu. (Tak, nie zachowałem poprzedniego kodu) zaraz to poprawie, dajcie mi kilka minut.

EDIT: kod poprawiony, wszystko działa tak jak w wersji 0.1

Avatar
Konto usunięte
Nie kompiluje, błąd z polem koła.
Wystarczy wywalić to z kodu i działa.

Avatar mojlogin
Moderator
emru1 pisze:
Nie kompiluje, błąd z polem koła.
Wystarczy wywalić to z kodu i działa.

Bożee, ale jestem zorganizowany.

Już poprawiłem.

Avatar
Konto usunięte
Dalej nie kompiluje pola koła

Avatar mojlogin
Moderator
emru1 pisze:
Dalej nie kompiluje pola koła

Zdjęcie użytkownika mojlogin w temacie MathPro

Już poprawiłem.

Avatar
Konto usunięte
Dobra, kij z tym.

Avatar mojlogin
Moderator
Już działa ._. (A raczej powinno)

Avatar J2319
ESET NOD32 nic nie wykrył :L
Windows Smart Screen już tak.

Avatar
Konto usunięte
Mi wykrywa wirusa w programie, który wyświetla "Dzień dobry". Jak coś piszę, to muszę antywirusa wyłączać.

Avatar
Konto usunięte
@refresh

Avatar
Konto usunięte
Kolejny Refresh

Avatar
Konto usunięte
Ten program ma 2 miesiące i może coś zmieniłeś, ale proponuje dodać obliczanie poszczególnych boków w trójkącie, coś z objętościami i przybliżenia, jak coś mi jeszcze wpadnie do głowy to napiszę :D

Odpowiedź

Pokaż znaczniki BBCode, np. pogrubienie tekstu

Dodaj zdjęcie z dysku

Dodaj nowy temat Dołącz do grupy +
Avatar Kubox123456
Właściciel: Kubox123456
Grupa posiada 6588 postów, 587 tematów i 325 członków

Opcje grupy KZ - Kompute...

Sortowanie grup

Grupy

Popularne

Wyszukiwarka tematów w grupie KZ - Komputerowo Zaawansowani