profil

Podstawy programowania w C++ - kilka zadań z rozwiązaniami na instrukcję if i while

drukuj
poleca 84% 406 głosów

Treść
Obrazy
Wideo
Komentarze

Programy napisane w dev.cpp, ale powinny skompilować się na innych komplilatorach. Treść zadań jako komentarz w programie.


ZADANIE 1

#include
using namespace std;
int main()
{
/* PROGRAM KLASYFIKUJĄCY WZROST OSÓB TZN. PYTAJĄCY SIĘ O WZROST W CM
A NASTĘPNIE WYŚWIETLAJĄCY JEDEN Z PODANYCH TEKSTÓW
W ZALEŻNOŚCI OD PRZYNALEŻNOŚCI DO PRZEDZIAŁU WARTOŚCI:
NISKI < 150CM < ŚREDNI < 180CM < WYSOKI */


float wzrost;

cout << "Podaj wzrost w cm: ";
cin >> wzrost;

if (wzrost <= 150)
{
cout << wzrost << " cm to niski wzrost";
}
else if ((wzrost > 150) & (wzrost < 180))
{
cout << wzrost << " cm to sredni wzrost";
}
else
{
cout << wzrost << " cm to wysoki wzrost";
}

char znak;
cin >> znak;
}



ZADANIE 2

#include
using namespace std;
int main()
{
/* PROGRAM WCZYTUJĄCY Z KLAWIATURY DŁUGOŚCI TRZECH ODCINKÓW
I SPRAWDZAJĄCY CZY DA SIĘ Z NICH ZBUDOWAĆ TRÓJKĄT. */


float a, b, c;

cout << "Podaj dlugosc pierwszego odcinka: ";
cin >> a;
while (a <= 0)
{
cout << "Dlugosc boku musi byc wieksza od 0 !!!" << endl;
cout << "Podaj nowa dlugosc: ";
cin >> a;
}

cout << "Podaj dlugosc drugiego odcinka: ";
cin >> b;
while (b <= 0)
{
cout << "Dlugosc boku musi byc wieksza od 0 !!!" << endl;
cout << "Podaj nowa dlugosc: ";
cin >> b;
}

cout << "Podaj dlugosc trzeciego odcinka: ";
cin >> c;
while (c <= 0)
{
cout << "Dlugosc boku musi byc wieksza od 0 !!!" << endl;
cout << "Podaj nowa dlugosc: ";
cin >> c;
}
cout << endl;

if (((a + b) > c) && ((b + c) > a) && ((a + c) > b))
{
cout << "Mozna zbudowac trojkat z tych odcinkow";
}
else
{
cout << "Nie da sie zbudowac trojkata z tych odcinkow";
}

char znak;
cin >> znak;
}



ZADANIE 3

#include
using namespace std;
int main()
{
/* PROGRAM WPROWADZAJĄCY TRZY LICZBY Z KLAWIATURY A NATĘPNIE WYŚWIETLAJĄCY NA EKRANIE:
- NAJWIĘKSZĄ Z TYCH LICZB
- MEDIANĘ (ŚRODKOWĄ LICZBĘ)
- SEKWENCJĘ TYCH TRZECH LICZB UPORZĄDKOWANĄ ROSNĄCO LUB MALEJĄCO
- INFORMACJĘ CZY PRZYNAJMNIEJ DWIE Z TYCH LICZB MAJĄ IDENTYCZNĄ WARTOŚĆ.
UWZGLĘDNIA PRZYPADKI GDY WSZYSTKIE LICZBY SĄ RÓŻNE ORAZ ŻE MOGĄ WYSTĄPIĆ POWTÓRZENIA. */


float a, b, c;

cout << "Podaj pierwsza liczbe: ";
cin >> a;
cout << "Podaj druga liczbe: ";
cin >> b;
cout << "Podaj trzecia liczbe: ";
cin >> c;
cout << endl;
if ((a == b) && (b == c) && (a == c))
{
cout << "Podales trzy rowne liczby";
}

if ((a == b) && (b != c) && (a != c))
{
cout << "Pierwsza i druga liczba sa sobie rowne" << endl;
cout << "Mediana nie istnieje" << endl;
if (a < c)
{
cout << "Najwieksza z tych liczb to: " << c << endl;
cout << "Liczby uporzadkowane malejaco: " << c << " " << b << " " << a;
}
else
{
cout << "Dwie pierwsze liczby sa sobie rowne i najwieksze: " << a << " = " << b;
cout << "Liczby uporzadkowane malejaco: " << a << " " << b << " " << c;
}
}

if ((b == c) && (a != b) && (a != c))
{
cout << "Druga i trzecia liczba sa sobie rowne" << endl;
cout << "Mediana nie istnieje" << endl;
if (b < a)
{
cout << "Najwieksza z tych liczb to: " << a << endl;
cout << "Liczby uporzadkowane malejaco: " << a << " " << b << " " << c;
}
else
{
cout << "Druga i trzecia liczba sa sobie rowne i najwieksze: " << b << " = " << c << endl;
cout << "Liczby uporzadkowane malejaco: " << b << " " << c << " " << a;
}
}

if ((a == c) && (b != c) && (a != b))
{
cout << "Pierwsza i trzecia liczba sa sobie rowne" << endl;
cout << "Mediana nie istnieje" << endl;
if (a < b)
{
cout << "Najwieksza z tych liczb to: " << b << endl;
cout << "Liczby uporzadkowane malejaco: " << b << " " << a << " " << c;
}
else
{
cout << "Pierwsza i trzecia liczba sa sobie rowne i najwieksze: " << a << " = " << c << endl;
cout << "Liczby uporzadkowane malejaco: " << a << " " << c << " " << b;
}
}

if ((a < b) && (b < c) && (a < c))
{
cout << "Mediana wynosi: " << b << endl;
cout << "Najwieksza z tych liczb to: " << c << endl;
cout << "Liczby uporzadkowane malejaco: " << c << " " << b << " " << a;
}

if ((a < c) && (c < b) && (a < b))
{
cout << "Mediana wynosi: " << c << endl;
cout << "Najwieksza z tych liczb to: " << b << endl;
cout << "Liczby uporzadkowane malejaco: " << b << " " << c << " " << a;
}

if ((b < c) && (c < a) && (b < a))
{
cout << "Mediana wynosi: " << c << endl;
cout << "Najwieksza z tych liczb to: " << a << endl;
cout << "Liczby uporzadkowane malejaco: " << a << " " << c << " " << b;
}

if ((b < a) && (a < c) && (b < c))
{
cout << "Mediana wynosi: " << a << endl;
cout << "Najwieksza z tych liczb to: " << c << endl;
cout << "Liczby uporzadkowane malejaco: " << c << " " << a << " " << b;
}

if ((c < a) && (a < b) && (c < b))
{
cout << "Mediana wynosi: " << a << endl;
cout << "Najwieksza z tych liczb to: " << b << endl;
cout << "Liczby uporzadkowane malejaco: " << b << " " << a << " " << c;
}

if ((c < b) && (b < a) && (c < a))
{
cout << "Mediana wynosi: " << b << endl;
cout << "Najwieksza z tych liczb to: " << a << endl;
cout << "Liczby uporzadkowane malejaco: " << a << " " << b << " " << c;
}

char znak;
cin >> znak;
}



ZADANIE 4

#include
using namespace std;
int main()
{
/* PROGRAM WCZYTUJĄCY Z KLAWIATURY DWIE DATY KALENDARZOWE
(ZAPISYWANE ZA POMOCĄ TRZECH LICZB CAŁKOWITYCH: DZIEŃ, MIESIĄC, ROK)
I SPRAWDZAJĄCY CZY PIERWSZA DATA JEST WCZEŚNIEJSZA OD DRUGIEJ. */


int dzien1, dzien2, miesiac1, miesiac2, rok1, rok2;

cout << "Podaj parametry pierwszej daty w liczbach" << endl;
cout << "dzien: ";
cin >> dzien1;
while ((dzien1 < 0) || (dzien1 > 31))
{
cout << "Miesiac ma najwyzej 31 dni !!!" << endl;
cout << "Podaj nowy dzien: ";
cin >> dzien1;
}
cout << "miesiac: ";
cin >> miesiac1;
while ((miesiac1 < 0) || (miesiac1 > 12))
{
cout << "Rok ma najwyzej 12 miesiecy !!!" << endl;
cout << "Podaj nowy miesiac: ";
cin >> miesiac1;
}
cout << "rok: ";
cin >> rok1;
while (rok1 < 0)
{
cout << "Rok jest liczba dodatnia !!!" << endl;
cout << "Podaj nowy rok: ";
cin >> rok1;
}

cout << endl << "Podaj parametry drugiej daty w liczbach" << endl;
cout << "dzien: ";
cin >> dzien2;
while ((dzien2 < 0) || (dzien2 > 31))
{
cout << "Miesiac ma najwyzej 31 dni !!!" << endl;
cout << "Podaj nowy dzien: ";
cin >> dzien2;
}
cout << "miesiac: ";
cin >> miesiac2;
while ((miesiac2 < 0) || (miesiac2 > 12))
{
cout << "Rok ma najwyzej 12 miesiecy !!!" << endl;
cout << "Podaj nowy miesiac: ";
cin >> miesiac2;
}
cout << "rok: ";
cin >> rok2;
while (rok2 < 0)
{
cout << "Rok jest liczba dodatnia !!!" << endl;
cout << "Podaj nowy rok: ";
cin >> rok2;
}
cout << endl;

if (rok1 < rok2)
{
cout << "Pierwsza data jest wczesniejsza";
}
else if (rok2 < rok1)
{
cout << "Druga data jest wczesniejsza";
}
else
{
if (miesiac1 < miesiac2)
{
cout << "Pierwsza data jest wczesniejsza";
}
else if (miesiac2 < miesiac1)
{
cout << "Druga data jest wczesniejsza";
}
else
{
if (dzien1 < dzien2)
{
cout << "Pierwsza data jest wczesniejsza";
}
else if (dzien2 < dzien1)
{
cout << "Druga data jest wczesniejsza";
}
else
{
cout << "Obie daty sa takie same :) ";
}
}
}

char znak;
cin >> znak;
}



ZADANIE 5 - NIESKOŃCZONE (NIE DZIAŁAJĄ STRZAŁKI, KLAWISZE FUNKCYJNE, ESC I NIEKTÓRE INNE KLAWISZE)

#include
#include
using namespace std;
int main()
{
/* PROGRAM KLASYFIKUJĄCY KLAWISZE NACISKANE NA KLAWIATURZE DO MOMENTU NASIŚNIĘCIA ESC I WYŚWIETLAJĄCY JEDEN Z NAPISÓW:
- MAŁA LITERA
- DUŻA LITERA
- CYFRA
- KLAWISZ ENTER
- KLAWISZ ESC
- STRZAŁKA W LEWO
- STRZAŁKA W PRAWO
- KLAWISZ FUNKCYJNY F1
- INNY KLAWISZ
DO POBIERANIA KODU KLAWISZA WYKORZYSTANA JEST FUNKCJA getch() Z BIBLIOTEKI */


int i;
int klawisz=0;

while (klawisz != 27)
{
klawisz = getch();
if ((klawisz >= 97) && (klawisz <= 122))
{
cout << "Mala litera" << endl;
}
else if ((klawisz >= 48) && (klawisz <= 57))
{
cout << "cyfra" << endl;
}
else if ((klawisz >= 65) && (klawisz <= 90))
{
cout << "Duza litera" << endl;
}
else if (klawisz == 0)
{
// klawisz = getch();
//if (klawisz == 77)
// {

cout << "Klawisz F1" << endl;
//}
}
else if (klawisz == 13)
{
cout << "ENTER" << endl;
}
else
{
cout << "Inny znak" << endl;
}
}


char znak;
cin >> znak;
}


Polecasz? Tak Nie
Komentarze (2) Brak komentarzy
16.5.2011 (13:26)

1. Zamiast if ... if ... if ... używaj lepiej if ... else if ... else. Zawszeć to mniejsza złożoność.
2. W zad. 4 skopałeś trochę, np. można wpisać datę 30 lutego, 31 kwietnia itp.
CookieMonster

24.4.2009 (20:10)

else if (klawisz == 0)



Nie 0 tylko -32 :)

Funkcja getch() nie jest standardową funkcją - w niektórych kompilatorach może nie być całej biblioteki conio. Nie powinno się jej używać w zadaniach, chyba że zlecający nam zadania określił odpowiedni system i kompilator.

O ile pamiętam powinno się używać getchar(), ale oczywiście jest haczyk, po naciśnięciu klawisza trzeba nacisnąć enter. To powoduję dużo błędów

To takie tylko przypomnienie.