Laboratoria nr 7 program nr 1

Instrukcje iteracyjne while i do … while. Przykłady kodu w C/C++.

#include "stdafx.h"
#include <iostream>
#include <cmath>

// Deklaracja stalej okreslajacej maksymalna ilosc rezystorow
const int MAX = 5;

/**
*
* Program Główny prezentujący funckje C++ wyprowadzania treści na wyjście konsoli.
* Wprowadzanie danych do programu i podstawowe operacje arytmetyczne.
* Program do obliczania w petli sumy podanych wartosci rezystorow przez uzytkownika.
*
* @author Marcin Mirończuk
*
*/
int main()
{
	using namespace std;

	// Znak oznaczający komendę
	char komenda = 'd';

	std::cout << "Prosze podac wartosc rezystancji swoich rezystorow. \n";
	std::cout << "Maksymalnie mozna podac " << MAX << " rezystancji <q konczy program>.\n";

	while (komenda != 'q') {
		// licznik petli
		int i = 0;
		double sumaRezystancji = 0;
		double rezystancja = 0;
		double srednia = 0;

		while(i < MAX) {
			std::cout << "Wartosc rezystancji nr. " << i+1 << ": ";
			std::cin >> rezystancja;

			// Zabezpieczenie przed podawaniem liczb ujemnych
			if(rezystancja < 0) {
				rezystancja = abs(rezystancja);
			}

			sumaRezystancji += rezystancja;
			i++;
		}

		std::cout << "Suma podanych przez Ciebie rezystancji wynosi: " << sumaRezystancji << std::endl;
		std::cout << "Srednia rezystancja wynosi: " << sumaRezystancji/MAX << std::endl;
		std::cout << "Czy zakonczyc dzialanie programu? \n";
		std::cin >> komenda;
	}

	return 0;
}

Laboratoria nr 6 program nr 1

Operatory zwiększania (++) i zmniejszania (–). Złożone (skrócone) operatory przypisania. Instrukcja for. Ogólna postać instrukcji for. Zagnieżdżanie pętli for. Instrukcje break, goto, continue. Instrukcje while, do…while. Przykłady kodu w C/C++.

#include "stdafx.h"
#include <iostream>

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

	/** 
	 *	's' - skokowa zmiana wartości napięcia
	 *	'c' - ciągła zmiana wartości napięcia
	*/
	char wybor;

	// Wartośc deklarowana napięcia
	short int napiecie = 0;

	std::cout << "Podaj wartosc napiecia do ustawienia: ";
	std::cin >> napiecie;

	if(napiecie > 12 || napiecie < -12) {
		std::cout << "Zostala podana nieprawidlowa wartosc napiecia. Podaj prawidlowa wartosc" << std::endl;
	} else {
		std::cout << "Jak zmienic napiecie?" << std::endl;
		std::cout << "'s' - skokowa zmiana wartosci napiecia" << std::endl;
		std::cout << "'c' - ciagla zmiana wartosci napiecia" << std::endl;
		std::cout << "Podaj opcje: ";

		std::cin >> wybor;

		switch(wybor) {
			case 's':
				std::cout << "Napiecie zostalo zmienione na " << napiecie << " [V]" << std::endl;
				break;
			case 'c':
				if(napiecie > 0) {
					for(int i = 1; i <= napiecie; i++) {
						std::cout << "Dodatnia zmiana wartosci napiecia na " << i << " [V]" << std::endl;
					}

					std::cout << "Dodatnie napiecie zostalo zmienione na " << napiecie << " [V]" << std::endl;
				} else if (napiecie < 0) {
					for(int i = -1; i >= napiecie; i--) {
						std::cout << "Ujemna zmiana wartosci napiecia na " << i << " [V]" << std::endl;
					}

					std::cout << "Ujemne napiecie zostalo zmienione na " << napiecie << " [V]" << std::endl;
				} else {
					std::cout << "Napiecie zostalo zmienione na " << napiecie << " [V]" << std::endl;
				}

				break;
			default:
				std::cout << "Nieprawidlowa opcja" << std::endl;
				break;
		}
	}

	std::cin.get();
	std::cin.get();

	return 0;
}

Laboratoria nr 5 program nr 1

Operatory relacyjne (porównania). Operatory logiczne. Wyrażenia logiczne. Przykłady obliczania wartości wyrażeń logicznych. Instrukcja warunkowa if. Zagnieżdżanie if-else. Operator warunkowy ? :. Instrukcja wyboru wielowariantowego switch. Stałe zadeklarowane jako const. Operatory bitowe. Przykłady kodu w C/C++.

#include "stdafx.h"
#include <iostream>

// Biblioteka odpowiedzialna za obsluge znakow. S. Prat str. 261
#include <cctype>

// Biblioteka odpowiedzialna za konwersje http://www.cplusplus.com/reference/clibrary/cstdlib/
#include <stdlib.h>

/**
*
* Program Główny prezentujący funckje C++ wyprowadzania treści na wyjście konsoli.
* Wprowadzanie danych do programu i podstawowe operacje arytmetyczne.
* Program do wybierania osob z podanej listy osob na podstawie zadanego kryterium.
*
* @author Marcin Mirończuk
*
*/
int main()
{
	// Pierwsza litera imienia
	char znak;
	
	// Numer porzadkowy
	int listNumber;

	std::cout << "Lista moich znajomych" << std::endl;
	std::cout << "1. Ala Marciniak" << std::endl;
	std::cout << "2. Genowefa Pigwa" << std::endl;
	std::cout << "3. Aleksander Kłopotek" << std::endl;
	std::cout << "4. Irena Michalska" << std::endl;
	std::cout << "5. Irek Niedzwiedzki" << std::endl;

	std::cout << "Podaj numer porzadkowy z listy znajomych albo pierwsza litere imienia aby zobaczyc telefon kontaktowy" << std::endl;

	// Pobranie znaku z konsoli
	std::cin.get(znak);

	// Sprawdzenie czy wprowadzono znak ktory jest litera
	if(isalpha(znak)) {
		switch (znak) {
			case 'A' :	std::cout << "Twoi znajomi na litera A wraz z numerami telefonow" << std::endl;
						std::cout << "1. Ala Marciniak: telefon 789 876 000" << std::endl;
						std::cout << "2. Aleksander Kłopotek: telefon 423 876 000" << std::endl;
					break;
			case 'G' :
						std::cout << "Twoi znajomi na litera G wraz z numerami telefonow" << std::endl;
						std::cout << "1. Genowefa Pigwa: telefon 789 826 100" << std::endl;
					break;
			case 'I' :
						std::cout << "Twoi znajomi na litera I wraz z numerami telefonow" << std::endl;
						std::cout << "1. Irena Michalska: telefon 789 234 100" << std::endl;
						std::cout << "2. Irek Niedzwiedzki: telefon 146 876 000" << std::endl;
					break;
			default :
					std::cout << "Brak znajomych zaczynajacych sie na podana przez Ciebie litere" << std::endl;
					break;
		}
	}
	// Sprawdzenie czy wprowadzono znak ktory jest liczba dziesietna (0-9)
	else if(isdigit(znak)) {
		// Konwersja znku na int
		listNumber = atoi(&znak);

		switch (listNumber) {
			case 1 :	std::cout << "Twój znajomy z pierwszej pozycji listy kontaktów" << std::endl;
						std::cout << "1. Ala Marciniak: telefon 789 876 000" << std::endl;						
					break;
			case 2 :
						std::cout << "Twój znajomy z drugiej pozycji listy kontaktów" << std::endl;
						std::cout << "1. Genowefa Pigwa: telefon 789 826 100" << std::endl;						
					break;
			case 3 :
						std::cout << "Twój znajomy z trzeciej pozycji listy kontaktów" << std::endl;
						std::cout << "1. Aleksander Kłopotek: telefon 423 876 000" << std::endl;						
					break;
			case 4 :
						std::cout << "Twój znajomy z czwartej pozycji listy kontaktów" << std::endl;
						std::cout << "1. Irena Michalska: telefon 789 234 100" << std::endl;
					break;
			case 5 :
						std::cout << "Twój znajomy z piątej pozycji listy kontaktów" << std::endl;						
						std::cout << "1. Irek Niedzwiedzki: telefon 146 876 000" << std::endl;
					break;
			default :
					std::cout << "Brak znajomych na liscie wedlug podanego przez Ciebie numeru porzadkowego" << std::endl;
					break;
		}
	}
	else {
		std::cout << "Podano niestandardowy znak";
	}

	std::cin.get();
	std::cin.get();

	return 0;
}

Laboratoria nr 4 program nr 1

Operatory relacyjne (porównania). Operatory logiczne. Wyrażenia logiczne. Przykłady obliczania wartości wyrażeń logicznych. Instrukcja warunkowa if. Zagnieżdżanie if-else. Operator warunkowy ? :. Instrukcja wyboru wielowariantowego switch. Stałe zadeklarowane jako const. Operatory bitowe. Przykłady kodu w C/C++.

#include "stdafx.h"
#include <iostream>

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

	float unsigned rezystancja;

	char znak = 's';
	
	while(znak != 'q') {
		std::cout << "Podaj wartosc rezystancji ";
		std::cin >> rezystancja;

		std::cout << "Podana przec Ciebie wartosc rezystancji wynosi " << rezystancja << std::endl;
		std::cout << "Dokonuje klasyfikacji... \n";

		if(rezystancja > 0 && rezystancja < 10.3) {
			std::cout << "Rezystor nalezy do klasy 1 \n";

			if(rezystancja >= 0.1 && rezystancja <= 0.8) {
				std::cout << "Rezystor nalezy do klasy 4 \n";
			}
			else if(rezystancja >= 10.2 && rezystancja <= 10.3) {
				std::cout << "Rezystor nalezy tez do klasy 2 \n";
			}
		}
		else if(rezystancja > 10.3 && rezystancja < 100) {
			std::cout << "Rezystor nalezy tez do klasy 2 \n";
		}
		else if(rezystancja > 132 && rezystancja < 140) {
			std::cout << "Rezystor nalezy tez do klasy 3 \n";
		}
		else {
			std::cout << "Rezystor niesklasyfikowany \n";
		}

		std::cout << "Podaj znak q aby zakonczyc lub jaki kolwiek inny znak aby kontynuowac \n";
		std::cin >> znak;
	}

	std::cin.get();
	std::cin.get();

	return 0;
}

Laboratoria nr 3 program nr 4

Zmienne. Deklaracje zmiennych. Komentarze. Podstawowe typy zmiennych. Nazwy zmiennych. Stałe liczbowe. Operatory arytmetyczne. Operator przypisania. Priorytet operatorów arytmetycznych. Wyrażenia arytmetyczne. Funkcja printf. Funkcja scanf. Stałe i funkcje z pliku nagłówkowego math.h oraz cmath. Przykłady kodu w C/C++.

#include "stdafx.h"
#include <iostream>
#define _USE_MATH_DEFINES
#include <math.h> // lub mozna zastosowac <cmath>

/**
*
* Program Główny prezentujący funckje C++ wyprowadzania treści na wyjście konsoli.
* Wprowadzanie danych do programu i podstawowe operacje arytmetyczne.
* Prezentacja działania zmiennych, definicji stalych w sytulu C.
* Program do obliczania pola powierzchni kola. Wykorzystanie biblioteki math.h (aktualnie dla C++ cmath)
*
* @author Marcin Mirończuk
*
*/
int main()
{
	using namespace std;

	// promien kola
	float r;
	
	// pole kola
	float p;

	// przypisanie promieniowi wartosci 0
	r = 0;

	std::cout << "Program do obliczania pola kola" << std::endl;

	std::cout << "Podaj promien kola ";
	std::cin >> r;

	// obliczanie pola kola. Inaczej mozna zapisac p = PI * r^2
	p = M_PI * r * r;

	std::cout << "Wartosc pola wynosi " << p << std::endl;

	std::cin.get();
	std::cin.get();

	return 0;
}

Laboratoria nr 3 program nr 3

Zmienne. Deklaracje zmiennych. Komentarze. Podstawowe typy zmiennych. Nazwy zmiennych. Stałe liczbowe. Operatory arytmetyczne. Operator przypisania. Priorytet operatorów arytmetycznych. Wyrażenia arytmetyczne. Funkcja printf. Funkcja scanf. Stałe i funkcje z pliku nagłówkowego math.h oraz cmath. Przykłady kodu w C/C++.

#include "stdafx.h"
#include <iostream>

#define PI 3.14

/**
*
* Program Główny prezentujący funckje C++ wyprowadzania treści na wyjście konsoli.
* Wprowadzanie danych do programu i podstawowe operacje arytmetyczne.
* Prezentacja działania zmiennych, definicji stalych w sytulu C.
* Program do obliczania pola powierzchni kola.
*
* @author Marcin Mirończuk
*
*/
int main()
{
	using namespace std;

	// promien kola
	float r;
	
	// pole kola
	float p;

	// przypisanie promieniowi wartosci 0
	r = 0;

	std::cout << "Program do obliczania pola kola" << std::endl;

	std::cout << "Podaj promien kola ";
	std::cin >> r;

	// obliczanie pola kola. Inaczej mozna zapisac p = PI * r^2
	p = PI * r * r;

	std::cout << "Wartosc pola wynosi " << p << std::endl;

	std::cin.get();
	std::cin.get();

	return 0;
}

Laboratoria nr 3 program nr 2

Zmienne. Deklaracje zmiennych. Komentarze. Podstawowe typy zmiennych. Nazwy zmiennych. Stałe liczbowe. Operatory arytmetyczne. Operator przypisania. Priorytet operatorów arytmetycznych. Wyrażenia arytmetyczne. Funkcja printf. Funkcja scanf. Stałe i funkcje z pliku nagłówkowego math.h oraz cmath. Przykłady kodu w C/C++.

#include "stdafx.h"
#include <iostream> // Biblioteka obslugujace operacje wejscia wyjscia
#include <cmath> // Biblioteka z funkcjami matematycznymi mozna tez zastosowac biblioteke math.h

/**
*
* Program Główny prezentujący funckje C++ wyprowadzania treści na wyjście konsoli.
* Wprowadzanie danych do programu i podstawowe operacje arytmetyczne.
* Prezentacja działania zmiennych, przypisywanie zmiennym wartości z funkcji etc..
*
* @author Marcin Mirończuk
*
*/
int main()
{
	using namespace std; // przestrzen nazw

	double polePowierzchni; // zmienna przechowujaca pole powierzchni

	std::cout << "Podaj powierzchnie swego mieszkania w metrach kwadratowych: ";
	std::cin >> polePowierzchni; // wczytanie pola powierzchni zadanego przez uzytkownika

	double bokKwadratu; // zmienna przechowujaca dlugosc boku kwadratu
	
	bokKwadratu = sqrt(polePowierzchni); // wywolanie funkcji obliczajacej pierwiastek z podanego pola 
										// i zapamietanie wyniku w zmiennej bokKwadratu

	std::cout << "Odpowiada to kwadratowi o boku " << bokKwadratu << " metrow." << std::endl;

	std::cin.get();
	std::cin.get();

	return 0;
}

Laboratoria nr 3 program nr 1

Zmienne. Deklaracje zmiennych. Komentarze. Podstawowe typy zmiennych. Nazwy zmiennych. Stałe liczbowe. Operatory arytmetyczne. Operator przypisania. Priorytet operatorów arytmetycznych. Wyrażenia arytmetyczne. Funkcja printf. Funkcja scanf. Stałe i funkcje z pliku nagłówkowego math.h oraz cmath. Przykłady kodu w C/C++.

#include "stdafx.h"
#include <stdio.h> // Biblioteka odpowiedzialna za obsluge wejscia wyjscia
#include <conio.h>
#include <cmath>	// Biblioteka z funkcjami matematycznymi

/**
*
* Program Główny prezentujący funckje C wyprowadzania treści na wyjście konsoli.
* Wprowadzanie danych do programu i podstawowe operacje arytmetyczne.
* Liczenie pola powierzchni prostokata.
*
* @author Marcin Mirończuk
*
*/
int main()
{
	// Krawedz a
	float a;

	// Krawedz b
	float b;

	// Pole powierzchni
	float p;

	// Przypisanie wartośći 0 do zmiennych a,b,p
	a = b = p = 0;

	printf("Program do obliczania pola powierzchni prostokąta\n");
	printf("Program wykonał Marcin Mironczuk\n");
	printf("P - Pole powierzchni\n");
	printf("a - dlugosc pierwszej krawedzi\n");
	printf("b - dlugosc drugiej krawedzi\n");
	printf("P = a*b\n");

	// Wprowadzanie i czytanie dlugosci krawedzi a
	printf("1. Podaj dlugosc krawedzi a: \n");
	scanf("%f", &a);
	printf("Podana przez ciebie dlugosc krawedzi a = %f", a);

	printf("\n");

	// Wprowadzanie i czytanie dlugosci krawedzi b
	printf("2. Podaj dlugosc krawedzi b: \n");
	scanf("%f", &b);
	printf("Podana przez ciebie dlugosc krawedzi b = %f", b);

	printf("\n");

	printf("3. Wcisnij dowolny klawisz aby obliczyc pole powierzchni\n");
	
	getch();

	printf("\n");

	printf("4. Pole powierzchni prostokata P wynosi: \n");

	// Obliczenie pola powierzchni
	p = a*b;

	printf("%f", p);

	getch(); 
	
	return 0;
}

Laboratoria nr 3 program nr 2

Zmienne. Deklaracje zmiennych. Komentarze. Podstawowe typy zmiennych. Nazwy zmiennych. Stałe liczbowe. Operatory arytmetyczne. Operator przypisania. Priorytet operatorów arytmetycznych. Wyrażenia arytmetyczne. Funkcja printf. Funkcja scanf. Stałe i funkcje z pliku nagłówkowego math.h oraz cmath. Przykłady kodu w C/C++.

/** Niezbedne dolaczenie bibliotek **/
#include "stdafx.h"
#include <iostream> // Biblioteka obslugujace operacje wejscia wyjscia
#include <cmath> // Biblioteka z funkcjami matematycznymi mozna tez zastosowac biblioteke math.h

/**
*
* Program Główny prezentujący funckje C++ wyprowadzania treści na wyjście konsoli.
* Wprowadzanie danych do programu i podstawowe operacje arytmetyczne.
* Prezentacja działania zmiennych, przypisywanie zmiennym wartości z funkcji etc..
*
* @author Marcin Mirończuk
*
*/
int main()
{
	using namespace std; // przestrzen nazw

	double polePowierzchni; // zmienna przechowujaca pole powierzchni

	std::cout << "Podaj powierzchnie swego mieszkania w metrach kwadratowych: ";
	std::cin >> polePowierzchni; // wczytanie pola powierzchni zadanego przez uzytkownika

	double bokKwadratu; // zmienna przechowujaca dlugosc boku kwadratu
	
	bokKwadratu = sqrt(polePowierzchni); // wywolanie funkcji obliczajacej pierwiastek z podanego pola 
										// i zapamietanie wyniku w zmiennej bokKwadratu

	std::cout << "Odpowiada to kwadratowi o boku " << bokKwadratu << " metrow." << std::endl;

	std::cin.get();
	std::cin.get();

	return 0;
}

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);