Problem z wymyśleniem sposobu.
Napisane: wtorek, 28 maja 2013, 22:45
Cześć! Mam do Was proźbę otóż pisze program "pitagoras" który liczy przyprostokątną/przeciwprostokątną i następnie rysuje trójkąt prostokątny o bokach takich jakie podaliśmy (no i oczywiście jaki obliczył
) Pytanie moje jest takie: Czy możecie mi nakreślić mniejwięcej jak powinno wyglądać rysowanie trójkąta, ponieważ ja napisałem, ale to niestety źle działa
. NIE CHODZI MI OCZYWIŚCIE O KOD! Ja po prostu chciałbym abyście mi pomogli wymyślić sposób działania
.
A oto dotychczasowy kod (kod zawiera wiele "śmieci" tzn. są tam w komentarzach jakieś moje testy itp. ;]):



A oto dotychczasowy kod (kod zawiera wiele "śmieci" tzn. są tam w komentarzach jakieś moje testy itp. ;]):
Code: Zaznacz cały
#include <iostream>
#include "stdlib.h"
#include "math.h"
using namespace std;
float a;
float b;
float c;
short jednostka;
const char sharp = '#';
int obliczPrzeciwprostokatna();
int obliczPrzyprostokatna(short);
void draw();
void drawSideB();
void drawSideA();
void drawSideC();
int main()
{
short select;
bool yes = false;
cout << "Witaj w programie 'Pitagoras'. Co bedziesz chcial obliczyc ?" << endl;
cout << "1. Przypostokatna (podstawa) [wpisz 1]" << endl;
cout << "2. Przyprostokatna (bok) [wpisz 2]" << endl;
cout << "3. Przeciwprostokatna [wpisz 3]" << endl;
cin >> select;
do{
if(select == 3)
{
obliczPrzeciwprostokatna();
yes = true;
}
else if (select == 1 || select == 2)
{
obliczPrzyprostokatna(select);
yes = true;
}
else
{
system("cls");
cout << "Sprobuj jeszcze raz :)" << endl;
cout << "1. Przypostokatna (podstawa) [wpisz 1]" << endl;
cout << "2. Przyprostokatna (bok) [wpisz 2]" << endl;
cout << "3. Przeciwprostokatna [wpisz 3]" << endl;
cin >> select;
}
}while(!(yes));
cout << endl << endl;
system("pause");
return 0;
}
//Function oblicz przeciwprostokatna
int obliczPrzeciwprostokatna()
{
system("cls");
cout << "Podaj podstawe (a)";
cin >> a;
cout << endl;
cout << "Podaj bok (b)";
cin >> b;
cout << endl;
float tmp;
tmp = a * a + b * b;
c = sqrt(tmp);
int rC = (int)c;
float pole = a * b / 2;
cout << "Przeciwprostokatna to: " << c << endl;
cout << "Pole tego trojkata to: " << pole << endl;
cout << "Teraz podaj jednostke (np. ile # ma sie skladac na cm): ";
cin >> jednostka;
cin.ignore();
draw();
}
//Function oblicz przyprostokatna
int obliczPrzyprostokatna(short select)
{
system("cls");
if(select == 1)
{
cout << "Podaj bok (b)";
cin >> b;
cout << endl;
cout << "Podaj przeciwprostokatna (c)";
cin >> c;
cout << endl;
float tmp;
if (b < c)
tmp = c * c - b * b;
else
tmp = b * b - c * c;
a = sqrt(tmp);
cout << "Przyprostokatna tego trojkata to: " << a << endl;
}
else
{
system("cls");
cout << "Podaj podstawe (a)";
cin >> a;
cout << endl;
cout << "Podaj przeciwprostokatna (c)";
cin >> c;
cout << endl;
float tmp;
if (a < c)
tmp = c * c - a * a;
else
tmp = a * a - c * c;
b = sqrt(tmp);
cout << "Przyprostokatna tego trojkata to: " << b << endl;
}
float pole = a * b / 2;
cout << "Pole tego trojkata to: " << pole << endl;
cout << "Teraz podaj jednostke (np. ile # ma sie skladac na cm): ";
cin >> jednostka;
cin.ignore();
draw();
}
//Function draw
void draw()
{
int ileA = jednostka * a;
int ileB = jednostka * b;
int ileC = jednostka * c;
const char space = 32;
for (int i = 0; i < ileB; i++)
{
cout << sharp;
//if(i != 0 || i != 1)
for (int j = 0; j < i; j++)
cout << space;
if (i == 0)
cout << endl;
else
cout << sharp << endl;
}
for(int j = 0; j <= ileA-1; j++)
cout << sharp;
/*drawSideB();
drawSideA();
drawSideC();
*/
}
//Function drawSideA
/*
void drawSideA()
{
int ile = jednostka * a;
for (int i = 0; i < ile; i++)
cout << sharp;
}
//Function drawSideB
void drawSideB()
{
int ile = jednostka * b;
for(int i = 0; i < ile-1; i++)
{
cout << sharp << endl;
}
}
//Function drawSideC
void drawSideC()
{
int ile = jednostka * c;
char space = 32;
for(int i = 0; i < ile-1; i++)
{
for (int j = 0; j < i; j++)
cout << space;
cout << sharp << endl;
}
}
*/