Skocz do zawartości


Zdjęcie

Schemat blokowy


  • Zamknięty Temat jest zamknięty
3 odpowiedzi w tym temacie

#1 micryb93

micryb93

    Nowy

  • 2 postów

Napisano 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;
}


  • 0

#2 Aman

Aman

    Windows 98/XP/Vista/Ubuntu

  • 955 postów

Napisano 17 06 2007 - 14:13

Te rozgałęzienie na 4 warianty to zapewne chodzi ci o funkcje switch. schemat tego bedzie wyglądać tak:

Załączone miniatury

  • schemat.jpg

  • 0

#3 micryb93

micryb93

    Nowy

  • 2 postów

Napisano 18 06 2007 - 15:03

Dzięki a mógłbyś zrobić ten schemat cały tak jak powinnien wyglądać :P
  • 0

#4 Aman

Aman

    Windows 98/XP/Vista/Ubuntu

  • 955 postów

Napisano 20 06 2007 - 15:07

Cały schemat w załączniku

Załączone pliki


  • 0

Zobacz więcej tematów z tagiem: schemat blokowy



Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych