Skocz do zawartości


micryb93

Rejestracja: 16 cze 2007
OFFLINE Ostatnio: 18 06 2007 15:01
-----

Moje tematy

Schemat blokowy

16 06 2007 - 16:36

Witam!Dołączona grafika
Czy mógłby mi ktoś zrobić schemat blokowy do takiego łatwego programu. Treść kodu zamieszczam poniżej. Lub ew. jeśli ktoś wie to jak tworzy się takie coś żeby można było rozgałęzić na 4 warianty. Proszę o szybką odp. Pozdrawiam
Kod programu:
#include <iostream>
#include <iomanip.h>
#include <cstdio>

using namespace std;

typedef struct
{
	int licznik, mianownik;
} ulamek;

void dodawanie(ulamek a, ulamek b)
{
	ulamek wynik, nowe_a, nowe_b;
	int wsp;

	if (a.mianownik!=b.mianownik)
	{
		//wspolny mianownik
		wsp = a.mianownik * b.mianownik;
		nowe_a.licznik = wsp / a.mianownik * a.licznik;
		nowe_b.licznik = wsp / b.mianownik * b.licznik;
		nowe_a.mianownik = nowe_b.mianownik = wsp;
	} else
	{
		nowe_a = a;
		nowe_b = b;
		wsp = a.mianownik;
	}

	wynik.licznik = nowe_a.licznik + nowe_b.licznik;
	wynik.mianownik = wsp;

	cout << "wynik: " << endl << endl;
	cout << setw(5) << a.licznik << "	" << setw(5) << b.licznik << "	 " << setw(5) << wynik.licznik << endl;
	cout << "------ + ------ = ------" << endl;
	cout << setw(5) << a.mianownik << "	" << setw(5) << b.mianownik << "	 " << setw(5) << wynik.mianownik << endl;

}


void odejmowanie(ulamek a, ulamek b)
{
	ulamek wynik, nowe_a, nowe_b;
	int wsp;

	if (a.mianownik!=b.mianownik)
	{
		//wspolny mianownik
		wsp = a.mianownik * b.mianownik;
		nowe_a.licznik = wsp / a.mianownik * a.licznik;
		nowe_b.licznik = wsp / b.mianownik * b.licznik;
		nowe_a.mianownik = nowe_b.mianownik = wsp;
	} else
	{
		nowe_a = a;
		nowe_b = b;
		wsp = a.mianownik;
	}

	wynik.licznik = nowe_a.licznik - nowe_b.licznik;
	wynik.mianownik = wsp;

	cout << "wynik: " << endl << endl;
	cout << setw(5) << a.licznik << "	" << setw(5) << b.licznik << "	 " << setw(5) << wynik.licznik << endl;
	cout << "------ - ------ = ------" << endl;
	cout << setw(5) << a.mianownik << "	" << setw(5) << b.mianownik << "	 " << setw(5) << wynik.mianownik << endl;

}

void mnozenie(ulamek a, ulamek b)
{
	ulamek wynik;

	wynik.licznik = a.licznik * b.licznik;
	wynik.mianownik = a.mianownik * b.mianownik;

	cout << "wynik: " << endl << endl;
	cout << setw(5) << a.licznik << "	" << setw(5) << b.licznik << "	 " << setw(5) << wynik.licznik << endl;
	cout << "------ * ------ = ------" << endl;
	cout << setw(5) << a.mianownik << "	" << setw(5) << b.mianownik << "	 " << setw(5) << wynik.mianownik << endl;
}

void dzielenie(ulamek a, ulamek b)
{
	ulamek wynik;

	wynik.licznik = a.licznik * b.mianownik;
	wynik.mianownik = a.mianownik * b.licznik;

	cout << "wynik: " << endl << endl;
	cout << setw(5) << a.licznik << "	" << setw(5) << b.licznik << "   " << setw(5) << wynik.licznik << endl;
	cout << "------ / ------ = ------" << endl;
	cout << setw(5) << a.mianownik << "	" << setw(5) << b.mianownik << "   " << setw(5) << wynik.mianownik << endl;
}

int main()
{
	ulamek a, b;
	int k;
	char bufor[256];

	do {
		cout << "wybierz dzialanie: " << endl
			 << "1. dodawanie" << endl
			 << "2. odejmowanie " << endl
			 << "3. mnozenie " << endl
			 << "4. dzielenie " << endl << endl;

		cout << "wybor: ";
		cin >> k;
		cout << endl;
	} while ((k<1 || k>4));



	do {
		fflush(stdin);

		cout << "podaj pierwsza liczbe: ";
		gets(bufor);
		cout << endl;
		sscanf(bufor, "%d / %d ", &a.licznik, &a.mianownik);

		if (a.mianownik==0) cout << "mianownik musi byc rozny od zera!" << endl << endl;
		else
		{
			cout << setw(5) << a.licznik << endl;
			cout << "------" << endl;
			cout << setw(5) << a.mianownik << endl;
			cout << endl;
		}

	} while (a.mianownik==0);

	do {
		fflush(stdin);
		cout << "podaj druga liczbe: ";
		gets(bufor);
		cout << endl;
		sscanf(bufor, "%d / %d ", &b.licznik, &b.mianownik);

		if (b.mianownik==0) cout << "mianownik musi byc rozny od zera!" << endl << endl;
		else
		{
			cout << setw(5) << b.licznik << endl;
			cout << "------" << endl;
			cout << setw(5) << b.mianownik << endl;
			cout << endl << endl;
		}
	} while (b.mianownik==0);

	switch (k)
	{
		case 1: dodawanie(a, b); break;
		case 2: odejmowanie(a, b); break;
		case 3: mnozenie(a, b); break;
		case 4: dzielenie(a, b); break;
	}
	system("PAUSE");
	return 0;
}