16
maj
Autor: Marcin kategoria: C/C++ | Tagi :c/c++, programowanie w c, przykładowe programy | Brak komentarzy
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;
}
16
maj
Autor: Marcin kategoria: C/C++ | Tagi :c/c++, programowanie w c, przykładowe programy | Brak komentarzy
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;
}
16
maj
Autor: Marcin kategoria: C/C++ | Tagi :c/c++, programowanie w c, przykładowe programy | Brak komentarzy
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;
}
16
maj
Autor: Marcin kategoria: C/C++ | Tagi :c/c++, programowanie w c, przykładowe programy | Brak komentarzy
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;
}
16
maj
Autor: Marcin kategoria: C/C++ | Tagi :c/c++, programowanie w c, przykładowe programy | Brak komentarzy
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;
}
16
maj
Autor: Marcin kategoria: C/C++ | Tagi :c/c++, programowanie w c, przykładowe programy | Brak komentarzy
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;
}
16
maj
Autor: Marcin kategoria: Ogólne zapiski kusownika it-yka | Tagi :c/c++, programowanie w c, przykładowe programy | Brak komentarzy
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;
}
15
maj
Autor: Marcin kategoria: C/C++ | Tagi :c/c++, programowanie w c, przykładowe programy | Brak komentarzy
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;
}
15
maj
Autor: Marcin kategoria: C/C++ | Tagi :: C/C++ | Tagi :c/c++, programowanie w c, przykładowe programy | Brak komentarzy
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;
}
13
maj
Autor: Marcin kategoria: C/C++ | Tagi :c/c++, programowanie w c, przykładowe programy | Brak komentarzy
Ś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);