Laboratoria nr 2 program nr 2

Środowisko Microsoft Visual Studio 2008 Express Edition. Stworzenie projektu w Microsoft Visual C++ 2008 Express Edition. Ogólna struktura programu w języku C. Wprowadzanie kodu, kompilacja i uruchamianie programu w Środowisku Visual C++. Sposób zapisu kodu programu. Wyświetlanie tekstów przy użyciu funkcji printf. Najczęściej popełniane błędy i reakcje kompilatora. Program, pokazujące podstawowe funkcje służące do wyprowadzania treści na standardowe wyjście konsolowe. Wprowadzenie do zmiennych, działania na zmiennych oraz wprowadzania danych do programu i operacji na nich. Rozszerzony przykład zawierający funkcje oraz ich prototypy.

#include "stdafx.h"
#include 
#include 
#include "voltage.h"

/**
*
* Program Główny prezentujący funckje C++ wyprowadzania treści na wyjście konsoli.
* Wprowadzanie danych do programu i podstawowe operacje arytmetyczne.
* Liczenie wartości rezystancji oraz uzycie funkcji
*
* @author Marcin Mirończuk
*
*/
int main()
{
	using namespace std;

	float i,u,r,up,down;

	i=u=r=up=down = 0;

	header();

	std::cout << "1. Podaj wartosc pradu I: " << std::endl;
	std::cin >> i;
	std::cout << "Podana przez ciebie wartosc pradu I = " << i << std::endl;

	std::cout << std::endl;

	std::cout << "2. Podaj wartosc rezystancji R: " << std::endl;
	std::cin >> r;
	std::cout << "Podana przez ciebie wartosc rezystancji R = " << r << std::endl;

	std::cout << std::endl;

	std::cout << "3. Wcisnij dowolny klawisz aby obliczyc napiecie na rezystancji" << std::endl;
	
	std::cin.get();
	std::cin.get();

	std::cout << std::endl;

	if(isNegativeValue(i, r)) {
		std::cout << "W zwiazku z tym, ze podane zostaly wartosci ujemne, to przeksztalcam je na wartosci dodatnie" << endl;
		std::cout << std::endl;
		i = abs(i);
		r = abs(r);
	}

	std::cout << "4. Napiecie na rezystancji wynosi: " << std::endl;

	// Obliczenie pola powierzchni
	u = calculateVoltage(r,i);

	std::cout << u;

	std::cout << std::endl;

	std::cout << "5. Podaj o ile chcesz podniesc napiecie: " << std::endl;
	std::cin >> up;
	up = abs(up);
	u += up;

	std::cout << std::endl;
	std::cout << "6. Wartość po podniesieniu napiecia: " << u << std::endl;

	std::cout << "5. Podaj o ile chcesz obnizyc napiecie: " << std::endl;
	std::cin >> down;
	down = abs(down);
	u -= down;

	std::cout << std::endl;
	std::cout << "6. Wartość po podniesieniu napiecia: " << u << std::endl;

	std::cin.get(); 
	std::cin.get(); 
	
	return 0;
}

/**
* Obliczenie wartosci bezwzglednej
*
* @param float x - zmienna podlegajaca zmianie wartosci
* @return float
*/
float abs(float x) {
	if(x < 0) {
		return -1 * x;
	}

	return x;
}

/**
* Naglowki programu
*
* @return void
*/
void header() {
	std::cout << "Program do obliczania napiecia na rezystancji" << std::endl;
	std::cout << "Program wykonał Marcin Mironczuk" << std::endl;
	std::cout << "U - napiecie na rezystorze" << std::endl;
	std::cout << "I - prąd plynacy przez rezystor" << std::endl;
	std::cout << "R - rezystancja" << std::endl;
	std::cout << "U = R*I" << std::endl;
}

/**
* Obliczenie obliczanie napiecia U=R*I
*
* @param float r - wartosc rezystancji
* @param float i - wartosc pradu
* @return float
*/
float calculateVoltage(float r, float i) {
	return r*i;
}

/**
* Sprawdzenie czy wartosc wprowadzona przez uzytkownika rezystancji jest ujemna
*
* @param float x - wartosc rezystancji
* @return boolean
*/
bool isResisorSetNegativeValue(float r) {
	if(r < 0) {
		return true;
	}

	return false;
}

/**
* Sprawdzenie czy wartosc wprowadzona przez uzytkownika pradu jest ujemna
*
* @param float x - wartosc rezystancji
* @return boolean
*/
bool isCurrentSetNegativeValue(float i) {
	if(i < 0) {
		return true;
	}

	return false;
}

/**
* Sprawdzenie czy wartosc wprowadzona przez uzytkownika rezystancji lub pradu jest ujemna
*
* @param float x - wartosc rezystancji
* @return boolean
*/
bool isNegativeValue(float i, float r) {
	if(isResisorSetNegativeValue(r) || isCurrentSetNegativeValue(i)) {
		return true;
	}

	return false;
}

Funkcje nagłówkowe voltage.h

float abs(float x);

void header();

float calculateVoltage(float r, float i);

bool isResisorSetNegativeValue(float r);

bool isCurrentSetNegativeValue(float i);

bool isNegativeValue(float i, float r);

float upVoltage(float u);

float downVoltage(float u);

Skomentuj ten wpis