Zadania w c

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 RYSUJĄCY NA EKRANIE POZIOMĄ KRESKĘ (ZE ZNAKÓW MINUS)
O DŁUGOŚCI ZADAWANEJ Z KLAWIATURY. */


int dlugosc;

cout << endl << "Podaj dlugosc kreski: ";
cin >> dlugosc;
while (dlugosc < 0)
{
cout << "Dlugosc musi byc wieksza od 0 !!!" << endl;
cout << "Nowa dlugosc: ";
cin >> dlugosc;
}
cout << endl;

for (int i=1; i <= dlugosc; i++)
{
cout << "-";
}

char znak;
cin >> znak;
}



ZADANIE 2

#include 
#include 
using namespace std;
int main()
{
/* PROGRAM WYŚWIETLAJĄCY NA EKRANIE SEKWENCJE KOLEJNYCH LICZB CAŁKOWITYCH
NAJPIERW OD 1 DO 10, A NASTĘPNIE OD 10 DO 1. DO SPOWOLNIENIA OPERACJI WYDRUKU DOWOLNA DODATKOWA PĘTLA. NA ZAKOŃCZENIE JESZCZE JEDNA PĘTLA,
KTÓRA SPOWODUJE, ŻE CAŁY PROCES ODLICZANIA POTÓRZY SIĘ TRZY RAZY. */


float liczba= 3;

for (int k = 1; k <= 3; k++)
{
cout << endl;
cout << endl << "Petla odliczajaca od 1 do 10" << endl;
for (int i = 1; i <= 10; i++)
{
for (int j = 1; j <= 10000000; j++)
{
sqrt(liczba); 
}
cout << i << " ";
}
cout << endl;

cout << endl << "Petla odliczajaca od 10 do 1" << endl;
for (int i = 10; i >= 1; i--)
{
for (int j=1; j <= 10000000; j++)
{
sqrt(liczba); 
}
cout << i << " ";
}
}
cout << endl << "Koniec :)";


char znak;
cin >> znak;
}



ZADANIE 3

#include 
using namespace std;
int main()
{
/* PROGRAM WYŚWIETLAJĄCY NA EKRANIE KOLEJNE 100 LICZB PARZYSTYCH OD ZADANEJ LICZBY */


int pocz;

cout << endl << "Podaj liczbe calkowita od ktorej chcesz zobaczyc liczby parzyste: ";
cin >> pocz;

if ((pocz % 2) == 0)
{
for (int i= pocz+1; i <= pocz + 200; i++)
{
if ((i % 2) == 0)
{
cout << i << " ";


}
else 
{
for (int i= pocz; i <= pocz + 200; i++)
{
if ((i % 2) == 0)
{
cout << i << " ";


}

char znak;
cin >> znak;
}



ZADANIE 4

#include 
using namespace std;
int main()
{
/* PROGRAM WYŚWIETLAJĄCY NA EKRANIE KOLEJNE LICZBY CAŁKOWITE TYPU INT (DO 100),
KTÓRE SĄ PODZIELNE BEZ RESZTY PRZEZ n (GDZIE n JEST ZADAWANE ZKLAWIATURY) */


int n;

cout << endl << "Podaj n: ";
cin >> n;
cout << "Liczby podzielne bez reszty przez " << n << " to:" << endl;

for (int i=0; i <= 100; i++)
{
if ((i % n) == 0)
{
cout << i << " ";
}
}

char znak;
cin >> znak;
}



ZADANIE 5

#include 
using namespace std;
int main()
{
/* PROGRAM WYŚWIETLAJĄCY NA EKRANIE "CHOINKĘ" O WYSOKOŚCI ZADAWANEJ Z KLAWIATURY. 

___* 
__*** 
_***** 
******* 
___#___________ */


int h;

cout << "Wprowadz wysokosc choinki: ";
cin >> h;
cout << endl;

for (int i = 1; i <= h-1; i++)

for (int k = 1 ; k <= h-i-1 ; k++)

cout << " ";
}
for (int j = 1; j <= 2*i-1 ; j++)
{
cout << "*";
}
cout << endl;
}

for (int pien = 1; pien <= h-2; pien++)
{
cout << " ";
}
cout << "#";

char znak;
cin >> znak;
}



ZADANIE 6

#include 
using namespace std;
int main()
{
/* PROGRAM WCZYTUJĄCY KOLEJNE LICZBY Z KLAWIATURY I KOŃCZĄCY SIĘ GDY:
- SUMA TYCH LICZB PRZEKROCZY 100, 
- ILOŚĆ PODANYCH LICZB UJEMNYCH PRZEKROCZY 10, 
- DWIE KOLEJNE PODANE LICZBY BEDĄ MIAŁY IDENTYCZNĄ WARTOŚĆ. */


float tosamo, liczba;
float suma = 0;
int ujemne = 0;
bool obok = false;

do
{
cout << endl << "Podaj liczbe: ";
cin >> liczba;

if (tosamo == liczba)
{
obok = true;
}

suma += liczba;

if (liczba < 0)
{
ujemne++;
}

tosamo = liczba;
}
while ((suma < 100) && (ujemne < 10) && (obok != true));

cout << endl << "Przerwano wczytywanie z powodu: " << endl;
if (suma > 100)
{
cout << "Suma liczb przekroczyla 100." << endl;
}
if (ujemne > 10)
{
cout << "Podales ponad 10 liczb ujemnych." << endl;
}
if (obok == true)
{
cout << "Podales po sobie dwie takie same liczby.";
}

char znak;
cin >> znak;
}



ZADANIE 7

#include 
using namespace std;
int main()
{
/* PROGRAM WCZYTUJĄCY ZNAKI Z KLAWIATURY AŻ DO MOMENTU NACIŚNIĘCIA KLAWISZA 'k'.
W TRAKCIE WCZYTYWANIA NALEŻY ZLICZAĆ ILOŚĆ PODANYCH ZNAKÓW. 
NA ZAKOŃCZENIE NALEŻY WYŚWIETLIĆ INFORMACJE: 
- ILE BYŁO PODANYCH ZNAKÓW (PRZED NACIŚNIĘCIEM 'k') 
- ILE Z TYCH ZNAKÓW BYŁO DUŻYMI LITERAMI. */


char klawisz;
int licznik = 0;
int licznik1 = 0;

cout << "Podawaj klawisze: " << endl;
cout << endl;
while (klawisz != 'k')

cin >> klawisz;
cout << "Wprowadziles: " << klawisz << endl;
licznik++;
if ((klawisz >= 'A') && (klawisz <= 'Z'))
{
licznik1++;
}
}
cout << endl << "Podales " << (licznik-1) << " znakow." << endl;
cout << "Podales " << licznik1 << " duzych liter.";

char znak;
cin >> znak;
}



ZADANIE 8

#include 
using namespace std;
int main()
{
/* PROGRAM WCZYTUJĄCY LICZBY Z KLAWIATURY,
Z JEDNOCZESNYM ZADAWANIEM PYTANIA "CZY KONIEC WPROWADZANIA T/N ?" 
NA ZAKOŃCZENIE PROGRAM POWINIEN WYŚWIETLIĆ WARTOŚĆ: 
ŚREDNIĄ, MAKSYMALNĄ, MINIMALNĄ Z PODANYCH LICZB. */


float liczba;
float min=900000000;
float max= -900000000;
float wynik =0;
int licznik =0;
char klawisz;

do
{
cout << "Wprowadz liczbe: ";
cin >> liczba;
cout << "Czy koniec wprowadzania? t/n" << endl;
cin >> klawisz;

wynik =+ liczba;
licznik++;

if (liczba < min)
{
min = liczba;
}
if (liczba > max)
{
max = liczba;
}
while ((klawisz != 'n') && (klawisz != 't'))
{
cout << "Jesli nie chcesz zakonczyc wprowadzania wcisnij klawisz n !!!" << endl;
cin >> klawisz;
}
}
while (klawisz != 't');

cout << "Skoro napisales t to konczymy" << endl;

cout << endl << "Srednia liczb wynosi: " << (wynik / licznik) << endl;
cout << "Najmniejsza z tych liczb wynosi: " << min << endl;
cout << "Najwieksza z tych liczb wynosi: " << max;

char znak;
cin >> znak;
}



ZADANIE 9

#include 
using namespace std;
int main()
{
/* PROGRAM WYZNACZAJĄCY ITERACYNIE (NUMERYCZNIE) SUMĘ SZEREGU:
1/x + 1/(x^2) + 1/(x^3) + 1/(x^4) + . . . + 1/(x^n). */


float q, x, suma;
int n; 

cout << "Podaj n: ";
cin >> n;
while (n <= 0)
{
cout << "n musi byc dodatnie !!!" << endl;
cout << "Nowe n: ";
cin >> n;
}
cout << endl;
cout << "Podaj x: ";
cin >> x;
cout << endl << "Zatem pierwszy wyraz szeregu wynosi: " << (1/x);
q = (1/x);
cout << endl << "Ostatni wyraz szeregu wynosi: "; 
suma = q;
for (int i = 1; i <= (n-1); i++)
{
q *= (1/x);
suma += q;
}
cout << q;
cout << endl << "Suma wyrazow szeregu wynosi: " << suma;

char znak;
cin >> znak;
}

Zbiór zadań z podstaw programowania w C++

Włodzimierz Gajda

  1. Pierwsze programy

  2. Zamiana jednostek

  3. Pola figur

  4. Działania arytmetyczne

  5. Instrukcja if

  6. Daty

  7. Rysowanie wzorów (for)

  8. Tablice wartości

  9. Rysowanie wzorów (while)

  10. Sumy ciągów

  11. Obliczenia (for, while)

  12. Cyfry liczb

  13. Symulacja pętli

  14. Tablice

  15. Szukanie w tablicy

  16. Prztwarzanie tablic

  17. Elementy o zadanych wartościach

  18. Elementy o zadanych indeksach

  19. Tablice (różności)

  20. Funkcje: wyrażenia

  21. Funkcje: tablice

  22. Rekurencja a iteracja

  23. Wielomiany

  24. Wejście i wyjście

  25. Menu programu

  26. Operacje na plikach

  27. Wskaźniki

  28. Dynamiczna alokacja

  29. Tablice wskaźników

  30. Funkcje i wskaźniki

  31. Wymiana zmiennych

  32. Porównywanie zmiennych

  33. Sortowanie zmiennych

  34. Sortowanie tablicy wsk

  35. Sortowanie tablicy struktur

  36. Klasy bez metod

  37. Klasy z metodami pub.

  38. Klasy, konstruktor

  39. Funkcje wzorcowe

Zadanie 1.1

Napisz program WITAJ, drukujący na ekranie komunikat Witaj.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

cout << "Witaj";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 1.2

Napisz program INICJALY, drukujący na ekranie Twoje inicjały. Program Leszka Iwańskiego powinien wydrukować na ekranie:

LL II

LL II

LL II

LL II

LL II

LLLLLL II

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

cout << "WW WW GGGGGGGGG \n";

cout << "WW WW GG GG \n";

cout << "WW WW GG GG \n";

cout << "WW WW GG GG \n";

cout << "WW WWW WW GG \n";

cout << "WW WW WW WW GG GGGG \n";

cout << "WWWW WWWW GG GG \n";

cout << "WWW WWW .. GG GG .. \n";

cout << "WW WW .. GGGGGGGGG .. \n";

cout <<endl<<endl<<endl<<endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 1.3

Napisz program GWIAZDA, drukujący na ekranie dużą pięcioramienną gwiazdkę narysowaną z gwiazdek *.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

cout << " * \n"

<< " *** \n"

<< " ***** \n"

<< " ******************* \n"

<< " ************** \n"

<< " ********** \n"

<< " *** *** \n"

<< " ** ** \n"

<< endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 1.4

Napisz program BANNER, drukujący na ekranie napis:

# #

# # # # ##### ## #

# # # # # # # #

# # # # # # # #

# # # # # ###### #

# # # # # # # # #

## ## # # # # ####

Zadanie 1.5

Napisz program TABELA KURSÓW, drukujący na ekranie tabelę kursów EURO.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

cout <<"|-----------|"<<endl

<<"|EURO|DOLLAR|"<<endl

<<"|-----------|"<<endl

<<"|3,94| 3,93|"<<endl

<<"|-----------|"<<endl;

cout <<"\n\nDNIA: 2002-11-16"<<endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 1.6

Napisz program CENNIK AUT, drukujący na ekranie tabelkę zawierającą dane dotyczące pięciu samochodów (marka, model oraz cena).

Zadanie 2.1

Napisz program Zamiana cali na centymetry. Program powinien pobrać od użytkownika jedną liczbę rzeczywistą oznaczającą długość wyrażoną w calach (np. 1) po czym wydrukować na ekranie podaną długość po zmianie jednostki długości na centymetry (np. 2,54). Program powinien się ładnie przedstawić tzn. wydrukować na ekranie czytelne informacje kto i kiedy program napisał. Każda drukowana na ekranie oraz wczytywana z klawiatury liczba powinna być poprzedzona odpowiednim opisem (np. PODAJ DŁUGOŚĆ WYRAŻONĄ W CENTYMETRACH DL=).

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float cale,centymetry;

cout << "Program CALE2CENTYMETRY\n"

<< "(C)2002 student\n\n"

<< "Program przelicza dlugosc wyrazona w calach"

<< " na centymetry.\n\n";

cout << "Liczba cali = ";

cin >> cale;

centymetry = cale * 2.54;

cout << "\n\n" << cale << " cali = "<<centymetry<< " cm\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 2.2

Napisz program Zamiana złotówek na dolary. Program ma służyć do przeliczenia kwoty pieniędzy wyrażonej w złotówkach na kwotę dolarów. Bieżący kurs dolara znajdziesz w Internecie.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float zlote,dolary;

cout << "Program KURS WALUT\n"

<< "(C)2002 student\n\n"

<< "Program przelicza kwote"

<< " zadana w dolarach na kwote zadana w zlotych.\n\n";

cout << "Kwota w dolarach: ";

cin >> dolary;

zlote=dolary*4.13;

cout << "\n\n" << dolary << " $ = "<<zlote << " zl\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 2.3

Napisz program przeliczający temperaturę wyrażoną w stopniach Celsjusza na temperaturę wyrażoną w skali Fahrenheita.

Zadanie 2.4

Napisz program przeliczający objętość wyrażoną w litrach na galony.

Zadanie 2.5

Napisz program przeliczający masę wyrażona w kilogramach na funty.

Zadanie 2.6

Napisz program przeliczający wielkość kąta wyrażoną w stopniach na radiany.

Rozwiązanie

#include <iostream>

#include <cstdlib>

#include <cmath>

using namespace std;

int main(int argc, char *argv[])

{

float stopnie,radiany;

cout << "\nProgram STOPNIE -> RADIANY\n"

<< "(C)2002 student\n\n"

<< "Program zamienia miarę kąta wyrażoną "

<< "w stopniach na radiany." << endl << endl;

cout << "Podaj liczbe stopni =";

cin >> stopnie;

//obliczenia

radiany=stopnie * (2*3.14)/360;

cout << "\n\n\n"

<< stopnie << " stopni = " << radiany << " radianów\n\n";

cout << "\n==============================\n";

cout << "sin("<<stopnie<<")="<<sin(radiany)<<"\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 3.1

Napisz program Pole trójkąta. Program powinien pobrać z klawiatury dwie liczby będące długością podstawy i wysokością trójkąta, a następnie wydrukować na ekranie liczbę wyrażającą pole powierzchni danego trójkąta. Program powinien być czytelny dla użytkownika (tzn. powinien przedstawić się oraz każdą liczbę wczytywaną z klawiatury lub drukowaną na ekranie poprzedzić stosownym komunikatem).

Zadanie 3.2

Napisz program Pole kwadratu.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float a,p;

cout << "\nProgram POLE KWADRATU\n"

<< "(C)2002 student\n\n";

cout << "Program oblicza pole powierzchni kwadratu"

<< " o zadanym boku." << endl << endl;

cout << "Podaj dlugosc boku kwadratu a=";

cin >> a;

//obliczenia

p=a*a;

cout << "\n\n\nPole kwadratu o boku a="

<< a << " wynosi P=" << p << "\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 3.3

Napisz program Pole koła.

Zadanie 3.4

Napisz program Pole prostokąta.

Zadanie 3.5

Napisz program Pole rombu.

Zadanie 3.6

Napisz program wyznaczający pole powierzchni n-kąta foremnego.

Zadanie 3.7

Napisz program wyznaczający objętość kuli.

Zadanie 3.8

Napisz program wyznaczający objętość prostopadłościanu.

Zadanie 3.9

Napisz program wyznaczający objętość stożka.

Zadanie 3.10

Napisz program wyznaczający objętość walca.

Zadanie 3.11

Napisz program wyznaczający objętość sześcianu.

Zadanie 4.1

Napisz program SUMA. Program ma wczytać z klawiatury dwie liczby, a następnie policzyć ich sumę. Wynik drukujemy na ekranie. Program powinien być czytelny tj. powinien wydrukować wizytówkę, zaś każdą wczytywaną liczbę i drukowany wynik poprzedzić stosownym komunikatem.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int a,b;

int c;

cout << "Program SUMA" << endl

<< "(C)2002 student" << endl << endl

<< "Program oblicza sume dwoch liczb."<< endl << endl;

cout << "a=";

cin >> a;

cout << "b=";

cin >> b;

c=a+b;

cout << endl << endl;

cout << a << "+" << b << "=" << c;

cout << "\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 4.2

Napisz program RÓŻNICA. Program ma wczytać z klawiatury dwie liczby, a następnie policzyć ich różnicę. Wynik drukujemy na ekranie. Program powinien być czytelny tj. powinien wydrukować wizytówkę, zaś każdą wczytywaną liczbę i drukowany wynik poprzedzić stosownym komunikatem.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int a,b;

int c;

cout << "Program ROZNICA" << endl

<< "(C)2002 student" << endl << endl

<< "Program oblicza roznice dwoch liczb."<< endl << endl;

cout << "a=";

cin >> a;

cout << "b=";

cin >> b;

c=a-b;

cout << endl << endl;

cout << a << "-" << b << "=" << c;

cout << "\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 4.3

Napisz program ILORAZ. Program ma wczytać z klawiatury dwie liczby, a następnie policzyć ich iloraz. Wynik drukujemy na ekranie. Program powinien być czytelny tj. powinien wydrukować wizytówkę, zaś każdą wczytywaną liczbę i drukowany wynik poprzedzić stosownym komunikatem.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float a,b;

float c;

cout << "Program ILORAZ" << endl

<< "(C)2002 student" << endl << endl

<< "Program oblicza iloraz dwoch liczb."<< endl << endl;

cout << "a=";

cin >> a;

cout << "b=";

cin >> b;

c=a/b;

cout << endl << endl;

cout << a << "/" << b << "=" << c;

cout << "\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 4.4

Napisz program ILOCZYN. Program ma wczytać z klawiatury dwie liczby, a następnie policzyć ich iloczyn. Wynik drukujemy na ekranie. Program powinien być czytelny tj. powinien wydrukować wizytówkę, zaś każdą wczytywaną liczbę i drukowany wynik poprzedzić stosownym komunikatem.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int a,b,c;

cout << "Program ILOCZYN" << endl

<< "(C)2002 student" << endl << endl

<< "Program oblicza iloczyn dwoch liczb."<< endl << endl;

cout << "a=";

cin >> a;

cout << "b=";

cin >> b;

c=a*b;

cout << endl << endl;

cout << a << "*" << b << "=" << c;

cout << "\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 4.5

Napisz program ILORAZ CAŁKOWITY. Program ma wczytać z klawiatury dwie liczby, a następnie policzyć iloraz całkowity tych liczb.

Rozwiązanie

#include <iostream>

#include <stdlib.h>

using namespace std;

int main(int argc, char *argv[])

{

int a,b;

int c;

cout << "Program ILORAZ CAŁKOWITY" << endl

<< "(C)2002 student" << endl << endl

<< "Program oblicza iloraz całkowity dwóch liczb."<< endl << endl;

cout << "a=";

cin >> a;

cout << "b=";

cin >> b;

c=a/b;

cout << endl << endl;

cout << a << "/" << b << "=" << c;

cout << "\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 4.6

Napisz program RESZTA Z DZIELENIA. Program ma wczytać z klawiatury dwie liczby, a następnie policzyć resztę z dzielenia pierwszej z liczb przez drugą.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int a,b;

int c;

cout << "Program RESZTA Z DZIELENIA" << endl

<< "(C)2002 student" << endl << endl

<< "Program oblicza resztę z dzielenia dwóch liczb."<< endl << endl;

cout << "a=";

cin >> a;

cout << "b=";

cin >> b;

c=a % b;

cout << endl << endl;

cout << "Reszta z dzielenia "<< a << " przez " << b << " wynosi "

<< c << ".\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 4.7

Napisz program wyznaczający wartość funkcji liniowej y = 2x + 2 w zadanym punkcie.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float x,wynik;

cout << "Program FUNKCJA y=2x+2" << endl

<< "(C)2002 student" << endl << endl

<< "Program wyznacza wartość funkcji y=2x+2 w zadanym punkcie."<< endl << endl;

cout << "x=";

cin >> x;

wynik=2*x+2;

cout << endl << endl;

cout << "Wartosc funkcji y=2*x+2 w punkcie x="<< x << " wynosi y="

<< wynik << ".\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 4.8

Napisz program wyznaczający wartość funkcji liniowej y = ax + b w zadanym punkcie. Wartości współczynników ab należy wczytać z klawiatury.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float a,b,x,wynik;

cout << "Program FUNKCJA y=ax+b" << endl

<< "(C)2002 student" << endl << endl

<< "Program wyznacza wartość funkcji y=ax+b w zadanym punkcie."<< endl << endl;

cout << "wspolczynnik a=";

cin >> a;

cout << "wspolczynnik b=";

cin >> b;

cout << "x=";

cin >> x;

wynik=a*x+b;

cout << endl << endl;

cout << "Wartosc funkcji y=" << a << "*x+" << b<< " punkcie x="<< x << " wynosi y="

<< wynik << ".\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 4.9

Napisz program wyznaczający wartość funkcji kwadratowej y = 2x2 + 2x – 3 w zadanym punkcie.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float a,b,x,wynik;

cout << "Program FUNKCJA KWADRATOWA y=2x^2+2x-3" << endl

<< "(C)2002 student" << endl << endl

<< "Program wyznacza wartość funkcji kwadratowej "

<< "y=2x^2+2x-3... w zadanym punkcie."<< endl << endl;

cout << "x=";

cin >> x;

wynik=2*x*x+2*x-3;

cout << endl << endl;

cout << "Wartosc funkcji y=2x^2+2x-3 w punkcie x="<< x << " wynosi y="

<< wynik << ".\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 4.10

Napisz program wyznaczający wartość funkcji kwadratowej y = ax2 + bx + c w zadanym punkcie. Wartości współczynników abc należy wczytać z klawiatury.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float a,b,c,x,wynik;

cout << "Program FUNKCJA KWADRATOWA y=ax^2+bx+c" << endl

<< "(C)2002 student" << endl << endl

<< "Program wyznacza wartość funkcji kwadratowej "

<< "y=ax^2+bx+c w zadanym punkcie."<< endl << endl;

cout << "x=";

cin >> x;

cout << "a=";

cin >> a;

cout << "b=";

cin >> b;

cout << "c=";

cin >> c;

wynik=a*x*x+b*x+c;

cout << endl << endl;

cout << "Wartosc funkcji y="<<a<<"x^2+"<<b<<"x+"<<c<<

"w punkcie x="<< x << " wynosi y=" <<

wynik << ".\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 4.11

Napisz program wyznaczający wartość funkcji wymiernej y = (x + 2)/(x – 3) w zadanym punkcie.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float x,wynik;

cout << "Program FUNKCJA WYMIERNA y=(x+2)/(x-3)" << endl

<< "(C)2002 student" << endl << endl

<< "Program wyznacza wartość funkcji wymiernej "

<< "y=(x+2)/(x-3) w zadanym punkcie."<< endl << endl;

cout << "x=";

cin >> x;

wynik=(x+2)/(x-3);

cout << endl << endl;

cout << "Wartosc funkcji y=(x+2)/(x-3) "<<

"w punkcie x="<< x << " wynosi y=" <<

wynik << ".\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 4.12

Napisz program wyznaczający wartość funkcji wymiernej y = (ax + b)/(cx + d) w zadanym punkcie. Wartości współczynników abcd należy wczytać z klawiatury.

Rozwiązanie

#include <iostream>

#include <cstdlib>

#include <iomanip>

using namespace std;

int main(int argc, char *argv[])

{

float a,b,c,d,x,wynik;

cout << "Program FUNKCJA WYMIERNA" << endl

<< "(C)2002 student" << endl << endl

<< "Program wyznacza wartość funkcji wymiernej "

<< "y=(ax+b)/(cx+d) w zadanym punkcie."<< endl << endl;

cout << "x=";

cin >> x;

cout << "a=";

cin >> a;

cout << "b=";

cin >> b;

cout << "c=";

cin >> c;

cout << "d=";

cin >> d;

wynik=(a*x+b)/(c*x+d);

cout << endl << endl;

cout << "Wartosc funkcji y=(" << a << "x+" << b << ")/("

<< c << "x+" << d << ") w punkcie x="<< x

<< " wynosi y=" << wynik << ".\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 4.13

Napisz program wyznaczający wartość funkcji:

f(x) = 3*sin x + 1/x - ex +log10 x

w zadanym punkcie.

Rozwiązanie

#include <iostream>

#include <cstdlib>

#include <cmath>

using namespace std;

int main(int argc, char *argv[])

{

float x,wynik;

cout << "Program WARTOSC WYRAZENIA" << endl

<< "(C)2002 student" << endl << endl

<< "Program wyznacza wartość wyrazenia "

<< "y=3 sin x + 1/x - e^x + log_10 x w zadanym punkcie."<< endl << endl;

cout << "x=";

cin >> x;

wynik=3*sin(x) + 1/x - exp(x) + log10 (x);

cout << endl << endl;

cout << "Wartosc wyrazenia \n\ny=3 sin x + 1/x - e^x + log_10 x\n\n"

<< "w punkcie x="<< x

<< " wynosi y=" << wynik << ".\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 5.1

Napisz programy wyznaczające pola figur geometrycznych i objętości brył, które nie przyjmują od użytkownika ujemnych liczb wyrażających długości boków.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float r,P;

cout << "Program oblicza pole kwadratu." << endl

<< "(C)2002 student" << endl << endl

<< "Program oblicza pole kwadratu."

<< "\nDlugosc promienia musi byc liczba dodatnia."<< endl << endl;

cout << "r=";

cin >> r;

if (r>0)

{

P=3.14*r*r;

cout << "\nPole kola o promieniu r="<<r

<< " wynosi P=" << P << ".\n";

}

else

cout <<"\nDlugosc promienia musi byc liczba dodatnia!\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 5.2

Napisz programy wyznaczanie ilorazu dwóch liczb, wartość funkcji wymiernej w punkcie, które nie przyjmują od użytkownika niepoprawnych liczb.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float a,b,wynik;

cout << "Program ILORAZ" << endl

<< "(C)2002 student" << endl << endl

<< "Program oblicza iloraz dwoch liczb."

<< "\nDzielnik musi byc rozny od zera!"<< endl << endl;

cout << "a=";

cin >> a;

cout << "b=";

cin >> b;

if (b!=0)

cout << "\n" << a << " / " << b << " = " << a/b << "\n\n";

else

cout <<"\nDzielnik musi byc rozny od zera!\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 5.3

Napisz program obliczający pierwiastek z zadanej liczby. Program powinien sprawdzić, czy pierwiastkowana liczba jest dodatnia. W przypadku gdy zadana liczba jest ujemna program powinien wydrukować na ekranie komunikat: PIERWIASTEK KWADRATOWY Z LICZBY UJEMNEJ NIE ISTNIEJE.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float x,wynik;

cout << "Program PIERWIASTEK" << endl

<< "(C)2002 student" << endl << endl

<< "Program oblicza pierwiastek kwadratowy z zadanej liczby."

<< "\nPodana liczba musi byc dodatnia!"<< endl << endl;

cout << "x=";

cin >> x;

if (x>=0)

cout << "\n pierwiastek kwadtowy z liczby " << x

<< " wynosi " << sqrt(x) << ".\n\n";

else

cout <<"\nLiczba nie może być ujemna!\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 5.4

Napisz program Czy liczba jest parzysta? pobierający od użytkownika jedną liczbę i drukujący na ekranie jedną z informacji LICZBA JEST PARZYSTA bądź LICZBA JEST NIEPARZYSTA.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int a;

cout << "Program PARZYSTOSC" << endl

<< "(C)2002 student" << endl << endl

<< "Program sprawdza, czy zadana liczba jest parzysta."

<< endl << endl;

cout << "a=";

cin >> a;

if ((a%2) ==0)

cout << "\nLiczba jest parzysta!\n";

else

cout << "\nLiczba jest nie parzysta!\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 5.5

Napisz program Czy liczba a jest podzielna przez b? Program ma pobrać od użytkownika dwie liczby całkowite ab. Jako wynik pracy program ma wydrukować informację mówiącą o tym, czy liczba a jest podzielna przez liczbę b (jeden z tekstów A JEST PODZIELNE PRZEZ B lub A NIE JEST PODZIELNE PRZEZ B).

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int a,b;

cout << "Program PODZIELNOSC" << endl

<< "(C)2002 student" << endl << endl

<< "Program sprawdza, czy zadana liczba a "

<< "jest podzielna przez liczbe b."

<< endl << endl;

cout << "a=";

cin >> a;

cout << "b=";

cin >> b;

if ((a%b) ==0)

cout << "\nLiczba " << a

<<" jest podzielna przez liczbę "<< b <<"\n";

else

cout << "\nLiczba " << a

<<" nie jest podzielna przez liczbę "<< b <<"\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 5.6

Napisz program N-ta potęga, pobierający od użytkownika dwie liczby: x (rzeczywiste) oraz n(naturalne z zakresu od 2 do 7). Program ma drukować na ekranie liczbę xn. (program powinien nie powinien stosować funkcji power() należy użyć zagnieżdżonej instrukcji if).

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int n;

float x;

cout << "Program POTEGA" << endl

<< "(C)2002 student" << endl << endl

<< "Program wyznacza 2,3 lub 4-tą potęgę zadanej liczby x."

<< endl << endl;

cout << "Podaj podstawę potęgi x=";

cin >> x;

cout << "Podaj wykładnik potęgi n=";

cin >> n;

if (n==2)

cout << x << "^2 = " << x*x << "\n";

else

if (n==3)

cout << x << "^3 = " << x*x*x << "\n";

else

if (n==4)

cout << x << "^4 = " << x*x*x*x << "\n";

else

cout << "Wykładnik musi być równy 2, 3 lub 4.\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 5.7

Napisz program, pobierający z klawiatury liczbę całkowitą i mówiącą o tym czy jest ona z przedziału <a;b>.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float x,a,b;

cout << "Program PRZEDZIAŁ" << endl

<< "(C)2002 student" << endl << endl

<< "Program sprawdza, czy zadana liczba "

<< "należy do przedziału (a;b]."

<< "\n\nPrzedział jest prawostronnie domknięty."

<< endl << endl;

cout << "Podaj liczbę x=";

cin >> x;

cout << "Podaj lewy koniec przedziału a=";

cin >> a;

cout << "Podaj prawy koniec przedziału b=";

cin >> b;

cout << "\n\n\n\n";

if ((x>a) && (x<=b))

cout << x << " należy do przedziału ("

<< a << ":" << b << "]\n\n";

else

cout << x << " nie należy do przedziału ("

<< a << ":" << b << "]\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 5.8

Napisz program MAX 2, pobierający od użytkownika dwie liczby i drukujący na ekranie większą z nich.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float l1,l2;

cout << "Program MAX 2" << endl

<< "(C)2002 student" << endl << endl

<< "Program znajduje największą spośród dwóch liczb"

<< endl << endl;

cout << "Podaj piewrszą liczbę = ";

cin >> l1;

cout << "Podaj drugą liczbę = ";

cin >> l2;

cout << "\n\n\nNajwiększą liczbą jest liczba ";

if (l1<l2)

cout << l2;

else

cout << l1;

cout << "\n\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 5.9

Napisz programy MAX 3, MAX 4, MAX 5.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float a,b,c,wieksza,najwieksza;

cout << "Program MAX 3" << endl

<< "(C)2002 student" << endl << endl

<< "Program znajduje największą spośród trzech liczb"

<< endl << endl;

cout << "Podaj piewrszą liczbę = ";

cin >> a;

cout << "Podaj drugą liczbę = ";

cin >> b;

cout << "Podaj trzecią liczbę = ";

cin >> c;

if (a>b)

wieksza=a;

else

wieksza=b;

if (c>wieksza)

najwieksza=c;

else

najwieksza=wieksza;

cout << "\n\nNajwiększą liczbą jest liczba "

<< najwieksza << "\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 5.10

Napisz program wymieniający wartość dwóch zmiennych.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int a,b,rob;

cout << "Program WYMIANA WARTOŚCI ZMIENNYCH" << endl

<< "(C)2002 student" << endl << endl

<< "Program wymienia wartości zmiennych a i b."

<< endl << endl;

cout << "Podaj piewrszą liczbę = ";

cin >> a;

cout << "Podaj drugą liczbę = ";

cin >> b;

//przed wymianą

cout << endl << "====================" << endl

<< "PRZED WYMIANĄ" << endl

<< "a = " << a << endl

<< "b = " << b

<< endl << "====================" << endl << endl;

//teraz wymieniamy wartości

rob=a;

a=b;

b=rob;

//po wymianie

cout << endl << "====================" << endl

<< "PO WYMIANIE" << endl

<< "a = " << a << endl

<< "b = " << b

<< endl << "====================" << endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 5.11

Napisz program SORT 2, pobierający od użytkownika dwie liczby i drukujący na ekranie obie liczby w porządku rosnącym.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int a,b,rob;

cout << "Program SORT2" << endl

<< "(C)2002 student" << endl << endl

<< "Program sortuje rosnąco dwie liczby."

<< endl << endl;

cout << "Podaj piewrszą liczbę = ";

cin >> a;

cout << "Podaj drugą liczbę = ";

cin >> b;

if (a>b)

{

rob=a;

a=b;

b=rob;

}

cout << endl << "====================" << endl

<< "a = " << a << endl

<< "b = " << b

<< endl << "====================" << endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 5.12

Napisz programy SORT 3, SORT 4.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int a,b,c,rob;

cout << "Program SORT3" << endl

<< "(C)2002 student" << endl << endl

<< "Program sortuje malejąco trzy liczby."

<< endl << endl;

cout << "Podaj piewrszą liczbę = ";

cin >> a;

cout << "Podaj drugą liczbę = ";

cin >> b;

cout << "Podaj trzecią liczbę = ";

cin >> c;

//chcemy by a było większe od b

if (a<b)

{

rob=a;

a=b;

b=rob;

}

//teraz wiemy, że

// a > b

if (c>a)

{

//wymiana cykliczna trzech zmiennych

rob=c;

c=b;

b=a;

a=rob;

}

else

if (c>b)

{

rob=b;

b=c;

c=rob;

}

cout << endl << "====================" << endl

<< "a = " << a << endl

<< "b = " << b << endl

<< "c = " << c

<< endl << "====================" << endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 5.13

Napisać program rozwiązujący metodą wyznaczników układ dwóch równań z dwiema niewiadomymi. Zwrócić uwagę na przypadki, kiedy układ jest sprzeczny lub nieoznaczony. Danymi pobieranymi od użytkownika jest sześć liczb reprezentujących równania ax+by=c,dx+ey=f.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float a,b,c;

float d,e,f;

float W,Wx,Wy;

float x,y;

cout << "Program UKŁAD RÓWNAŃ" << endl

<< "(C)2002 student" << endl << endl

<< "Program rozwiązuje układ "

<< "dwóch równań z dwiema niewaidomymi."

<< endl << endl;

cout << "\nWczytywanie pierwszego równania ax+by=c" << endl;

cout << "a = ";

cin >> a;

cout << "b = ";

cin >> b;

cout << "c = ";

cin >> c;

cout << "\nWczytywanie drugiego równania dx+ey=f" << endl;

cout << "d = ";

cin >> d;

cout << "e = ";

cin >> e;

cout << "f = ";

cin >> f;

//W = |a b|

// |d e|

//Wx = |c b|

// |f e|

//Wy = |a c|

// |d f|

W = a*e-d*b;

Wx = c*e-b*f;

Wy = a*f-c*d;

if (W==0)

{

if ((Wx==0) && (Wy==0))

cout << "\nUkład jest nieoznaczony.\n";

else

cout << "\nUkład jest sprzeczny.\n";

}

else

{

x=Wx/W;

y=Wy/W;

cout << "Rozwiązaniem układu są liczby:\n"

<< " x = " << x

<< " y = " << y

<< endl << endl;

}

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 5.14

W poprzednim programie przed rozwiązaniem układu wydrukować na ekranie postać układu. Dla przykładu, dla liczb a=2b=-1c=-1d=0e=-5f=1 powinniśmy wydrukować równania 2x-y=-1 oraz -5y=1

Rozwiązanie

#include <iostream>

#include <cstdlib>

#include <conio.h>

using namespace std;

int main(int argc, char *argv[])

{

float a,b,c;

float d,e,f;

float W,Wx,Wy;

float x,y;

cout << "Program RÓWNANIE" << endl

<< "(C)2002 student" << endl << endl

<< "Program drukuje równanie ax+by=c w ładnej postaci."

<< endl << endl;

cout << "\nWczytywanie równania ax+by=c" << endl;

cout << "a = ";

cin >> a;

cout << "b = ";

cin >> b;

cout << "c = ";

cin >> c;

cout << "\n\n\n";

if (a!=0)

if (a==1)

cout << "x ";

else

cout << a << "x ";

if (b<0)

if (b==-1)

cout << "-y ";

else

cout << b << "y ";

else

if (b>0)

cout << "+" << b << "y " ;

cout << " = " << c << "\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 5.15

Napisać program Trójmian kwadratowy, szukający zer podanego trójmnianu kwadratowego.

Rozwiązanie

#include <iostream>

#include <cstdlib>

#include <conio.h>

using namespace std;

int main(int argc, char *argv[])

{

float a,b,c;

float delta;

float x1,x2;

cout << "Program TRÓJMIAN KWADRATOWY" << endl

<< "(C)2002 student" << endl << endl

<< "Program znajduje zera trójmnianu kwadratowego."

<< endl << endl;

cout << "\nWczytywanie trójmianu ax^2 + bx + c =0" << endl;

cout << "a = ";

cin >> a;

cout << "b = ";

cin >> b;

cout << "c = ";

cin >> c;

if (a==0)

cout << "\nTo nie jest trójmian kwadratowy\n";

else

{

delta = b*b - 4*a*c;

if (delta>0)

{

x1=(-b-sqrt(delta))/(2*a);

x2=(-b+sqrt(delta))/(2*a);

cout << "Trójmian ma dwa miejsca zerowe:" << endl

<< " x1 = " << x1 << endl

<< " x2 = " << x2 << endl;

}

else

if (delta==0)

{

x1=(-b)/(2*a);

cout << "Trójmian jedno miejsce zerowe:" << endl

<< " x0 = " << x1 << endl;

}

else

cout << "\nTrójmian nie ma miejsc zerowych!\n";

}

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 6.1

Napisz program sprawdzający czy podana z klawiatury liczba stanowi poprawny numer miesiąca.

Zadanie 6.2

Napisz program Rok przestępny. Program pobiera z klawiatury numer roku i drukuje na ekranie informacje ROK JEST PRZESTĘPNY lub ROK NIE JEST PRZESTĘPNY.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int rok;

cout << "Program ROK PRZESTĘPNY" << endl

<< "(C)2002 student" << endl << endl

<< "Program podaje czy rok jest przestępny"

<< endl << endl;

cout << "rok = ";

cin >> rok;

if ((rok % 4==0) && ((rok%100!=0)||(rok%400==0 )))

cout << "Rok przestępny\n\n";

else

cout <<"to nie jest rok przestępny\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 6.3

Napisz program Ile zadany miesiąc ma dni?. Danymi programu są dwie liczby: numer roku i numer miesiąca.

Zadanie 6.4

Napisz program Czy data jest poprawna? Program pobiera z klawiatury trzy liczby całkowite oznaczające numer dnia, miesiąca i roku. Jako wynik działania programu na ekranie winien się pojawić komunikat DATA JEST POPRAWNA lub DATA JEST NIEPOPRAWNA. Podana data jest poprawna wtedy i tylko wtedy gdy podany dzień a prawdę można znaleźć w kalendarzu! Daty 1.01.1999 23.07.1934 2.02.2004 są poprawne zaś daty 34.01.1999, -2,100.90, 31.021999, 29.02.1999 (rok 1999 nie jest przestępny!) są niepoprawne.

Zadanie 6.5

Napisać program Ile dni minęło od początku roku? odpowiadający na pytanie ile dni minęło pomiędzy zadaną datą a dniem 1 styczna zadanego roku. Program pobiera od użytkownika trzy liczby całkowite reprezentujących poprawną datę.

Zadanie 6.6

Napisz program Ile dni minęło od dnia do dnia? odpowiadający na pytanie ile dni minęło pomiędzy dwiema zadanymi datami. Program pobiera od użytkownika sześć liczb całkowitych reprezentujących dwie poprawne daty.

Zadanie 6.7

Napisz program Jaki to dzień tygodnia?, pobierający z klawiatury trzy liczby całkowite określające datę i drukujący na ekranie informację o tym jaki to był (jest lub będzie) dzień tygodnia. Na przykład dla danych 26.20.1999 powinniśmy na ekranie zobaczyć komunikatWTOREK.

Zadanie 6.8

Napisz program KALENDARZ, drukujący na ekranie kalendarz na zadany miesiąc.

Zadanie 7.1

Napisz program drukujący na ekranie 19 gwiazdek:

*******************

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int i;

for (i=0;i<19;i++)

cout << "*";

cout << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 7.2

Napisz program drukujący na ekranie wieżę z literek O:

O

OO

OOO

OOOO

OOOOO

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int i,j;

for (i=0;i<5;i++)

{

for (j=0;j<=i;j++)

cout << "X";

cout << endl;

}

cout << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 7.3

Napisz program, drukujący na ekranie prostokąt z literek X. Wysokość i szerokość prostokąta wczytujemy z klawiatury:

XXXXXXXXXX

X X

X X

XXXXXXXXXX

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int i,j;

int szerokosc,wysokosc;

cout << "SZEROKOSC=";

cin >> szerokosc;

cout << "WYSOKOSC=";

cin >> wysokosc;

cout << endl;

for (i=0;i<szerokosc;i++)

cout << "X";

cout << endl;

for (j=0;j<wysokosc-2;j++)

{

cout << "X";

for (i=0;i<szerokosc-2;i++)

cout << " ";

cout << "X";

cout << endl;

}

for (i=0;i<szerokosc;i++)

cout << "X";

cout << endl;

cout << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 7.4

Napisz program, drukujący na ekranie literę A złożoną z literek A. Wielkość litery A wczytujemy z klawiatury.

A

A A

A A

AAAAAAA

A A

A A

Zadanie 7.5

Napisz program, drukujący na ekranie literę L złożoną z literek L. Wielkość litery L (jej szerokość, wysokość i grubość) wczytujemy z klawiatury. Przykładowa litera ma wymiary: grubość=4, wys=11, szer=8.

LLLL

LLLL

LLLL

LLLL

LLLL

LLLL

LLLL

LLLLLLLL

LLLLLLLL

LLLLLLLL

LLLLLLLL

Zadanie 7.6

Napisz program drukujący na ekranie prostokąt z literek X. Wysokość i szerokość prostokąta wczytujemy z klawiatury. Poniższy prostokąt ma wymiary: szer=10, wys=4.

XXXXXXXXXX

XXXXXXXXXX

XXXXXXXXXX

XXXXXXXXXX

Zadanie 7.7

Napisz program drukujący na ekranie trójkąt. Wysokość trójkąta wczytujemy z klawiatury. Poniższy trójkąt ma wysokość wys=5.

X

XXX

XXXXX

XXXXXXX

XXXXXXXXX

Zadanie 7.8

Napisz program drukujący na ekranie trójkąt. Wysokość trójkąta wczytujemy z klawiatury. Poniższy trójkąt ma wysokość wys=5.

X

X X

X X

X X

XXXXXXXXX

Zadanie 7.9

Napisz program drukujący na ekranie trójkąt. Wysokość trójkąta wczytujemy z klawiatury. Poniższy trójkąt ma wysokość wys=5.

X

XX

XXX

XXXX

XXXXX

Zadanie 7.10

Napisz program drukujący na ekranie trójkąt. Wysokość trójkąta wczytujemy z klawiatury. Poniższy trójkąt ma wysokość wys=5.

X

XX

X X

X X

XXXXX

Zadanie 7.11

Napisz program drukujący na ekranie trójkąt. Wysokość trójkąta wczytujemy z klawiatury. Poniższy trójkąt ma wysokość wys=5.

X

XX

XXX

XXXX

XXXXX

Zadanie 7.12

Napisz program drukujący na ekranie trójkąt. Wysokość trójkąta wczytujemy z klawiatury. Poniższy trójkąt ma wysokość wys=5.

X

XX

X X

X X

XXXXX

Zadanie 7.13

Napisz program drukujący na ekranie krzyż. Wysokość krzyżyka wczytujemy z klawiatury. Poniższy krzyż ma wysokość wys=3.

#

#

#

#######

#

#

#

Zadanie 7.14

Napisz program drukujący na ekranie kwadrat. Długość boku kwadratu wczytujemy z klawiatury. Poniższy kwadrat ma bak długości 4.

KKKK

KKKK

KKKK

KKKK

Zadanie 7.15

Napisz program drukujący na ekranie liczby. Wysokość wczytujemy z klawiatury. Oto wydruk dla wysokości h =5:

1

1 2

1 2 3

1 2 3 4

1 2 3 4 5

Zadanie 7.16

Napisz program drukujący na ekranie liczby. Wysokość wczytujemy z klawiatury. Oto wydruk dla wysokości h=5:

1

2 4

3 6 9

4 8 12 14

5 10 15 20 25

Zadanie 7.17

Napisz program drukujący na ekranie liczby. Wysokość wczytujemy z klawiatury. Oto wydruk dla wysokości h=5:

0

3 6

6 9 12

9 12 15 18

12 15 18 21 24

Zadanie 7.18

Napisz program drukujący na ekranie liczby. Wysokość wczytujemy z klawiatury. Oto wydruk dla wysokości h=5:

2,

4,5,

8,9,10,

16,17,18,19,

32,33,34,35,36,

Zadanie 7.19

Napisz program, drukujący na ekranie liczby.

Ilość liczb wczytujemy z klawiatury.

Oto wydruk dla ile = 5:

0, 3, 6, 9, 12

Zadanie 8.1

Napisz program drukujący na ekranie tabliczkę mnożenia do 5:

| 1 2 3 4 5

======================

1 | 1 2 3 4 5

2 | 2 4 6 8 10

3 | 3 6 9 12 15

4 | 4 8 12 14 20

5 | 5 10 15 20 25

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int i,j;

cout << " |";

for (i=1;i<=5;i++)

cout << " " << i;

cout << endl;

for (i=0;i<5*3+2;i++)

cout << "=";

cout << endl;

for (i=1;i<=5;i++)

{

cout << i <<"|";

for (j=1;j<=5;j++)

{

cout << " ";

if (i*j<10)

cout << " ";

cout << i*j;

}

cout << endl;

}

cout << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 8.2

Napisz program drukujący na ekranie potęgi liczby 2 (od potęgi 0 do potęgi 8).

Rozwiązanie

#include <iostream>

#include <cstdlib>

#include <cmath>

using namespace std;

int main(int argc, char *argv[])

{

int i,j;

for (i=0;i<=8;i++)

cout << "2^" << i << "=" << pow(2,i) << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 8.3

Napisz program, drukujący na ekranie wartości logarytmu dziesiętnego dla liczb 1/10, 2/10,...,9/10.

Rozwiązanie

#include <iostream>

#include <cstdlib>

#include <cmath>

using namespace std;

int main(int argc, char *argv[])

{

float i;

for (i=0.1;i<1;i+=0.1)

cout << "log10(" << i << ")=" << log10(i) << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 8.4

Napisz program, drukujący na ekranie tablicę wartość funkcji trygonometrycznych dla kątów 0, 30, 60, 90, 120 stopni.

Rozwiązanie

#include <iostream>

#include <cstdlib>

#include <cmath>

using namespace std;

int main(int argc, char *argv[])

{

int i;

cout << " SIN COS TG CTG\n";

for (i=30;i<=120;i+=30)

{

cout << i << " "

<< sin(i*3.1415/180) << " "

<< cos(i*3.1415/180) << " "

<< tan(i*3.1415/180) << " "

<< 1/tan(i*3.1415/180) << " "

<< endl;

}

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 9.1

Napisz program wczytujący z klawiatury liczbę całkowitą. Program powinien przyjmować jedynie liczbę dodatnią. Jeśli użytkownik poda liczbę ujemną, to powinien zostać poinformowany, że wymagana jest liczba dodatnia i poproszony o kolejną liczbę. Próbę wczytywania liczby powtarzamy dopóty, dopóki użytkownik nie poda liczby poprawnej (dodatniej). Taki sposób zapewnienia poprawności wczytywanych danych nazywać będziemy pętlą zaporową.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int l;

cout << "Program demonstruje użycie pętli zaporowej.\n";

cout << "(C)2003 student\n\n\n";

cout << "Podaj liczbę dodatnią l=";

cin >> l;

while (l<=0)

{

cout << "Podałeś liczbę ujemną!\n\nPodaj liczbę dodatnią l=";

cin >> l;

}

cout << "\n\n";

cout << "====================\n";

cout << "Liczba dodatnia wynosi:" << l << endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 9.2

Wykorzystując pętlę zaporową napisz program, wyznaczający pole dowolnej figury. Program jako dane (długości boków figury) powinien przyjmować wyłącznie liczby dodatnie.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float podstawa,wysokosc,pole;

cout << "Program oblicza pole równoległoboku.\n";

cout << "(C)2003 student\n\n\n";

cout << "Podaj długość podstawy równoległoboku a=";

cin >> podstawa;

cout << "Podaj długość wysokości równoległoboku h=";

cin >> wysokosc;

while ((podstawa<=0) || (wysokosc<=0))

{

cout << "Długości boków muszą być większe od zera!\n\n";

cout << "Podaj długość podstawy równoległoboku a=";

cin >> podstawa;

cout << "Podaj długość wysokości równoległoboku h=";

cin >> wysokosc;

}

pole=wysokosc * podstawa;

cout << "\n\nPole równoloegłoboku o podstawie a=" << podstawa

<< " i wysokości h=" << wysokosc << " wynosi P=" << pole << endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 9.3

Wykorzystując pętlę zaporową napisz program, wyznaczający objętość dowolnej bryły. Program jako dane (długości boków bryły) powinien przyjmować wyłącznie liczby dodatnie.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float podstawa,wysokosc,objetosc;

cout << "Program oblicza objętość ostrosłupa o podstawie kwadratu.\n";

cout << "(C)2003 student\n\n\n";

cout << "Podaj długość podstawy a=";

cin >> podstawa;

cout << "Podaj długość wysokości h=";

cin >> wysokosc;

while ((podstawa<=0) || (wysokosc<=0))

{

cout << "Długości odcinków muszą być większe od zera!\n\n";

cout << "Podaj długość podstawy a=";

cin >> podstawa;

cout << "Podaj długość wysokości h=";

cin >> wysokosc;

}

objetosc =wysokosc * podstawa * podstawa / 3;

cout << "\n\nObjętość ostrosłupa o podstawie a=" << podstawa

<< " i wysokości h=" << wysokosc << " wynosi V=" << objetosc << endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 9.4

Napisz program wyznaczający wartość pierwiastka kwadratowego z liczby. Wprowadzane dane zabezpiecz pętlą zaporową.

Rozwiązanie

#include <iostream>

#include <cstdlib>

#include <cmath>

using namespace std;

int main(int argc, char *argv[])

{

float x;

cout << "Program oblicza pierwiastek kwadratowy z zadanej liczby.\n";

cout << "(C)2003 student\n\n\n";

cout << "Podaj liczbę x=";

cin >> x;

while (x<0)

{

cout << "Liczba nie może być ujemna!\n\n";

cout << "Podaj liczbę x=";

cin >> x;

}

cout << "\n\nPierwiastek kwadratowy z " << x << " wynosi "

<< sqrt(x) << "." << endl << endl ;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 10.1

Napisz program wyznaczający sumę n początkowych liczb parzystych. Liczbę n należy pobrać od użytkownika.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float n,suma,i;

cout << "Program oblicza sumę początkowych liczb parzystych.\n";

cout << "(C)2003 student\n\n\n";

cout << "Podaj liczbę liczb n=";

cin >> n;

suma=0;

for (i=0;i<n;i++)

suma+=2*i;

cout << "\n\nSuma " << n << " początkowych liczb parzystych wynosi " << suma << endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 10.2

Napisz program wyznaczający sumę n początkowych liczb nieparzystych. Liczbę n należy pobrać od użytkownika.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float n,suma,i,x;

cout << "Program oblicza sumę początkowych liczb nieparzystych.\n";

cout << "(C)2003 student\n\n\n";

cout << "Podaj liczbę liczb n=";

cin >> n;

suma=0;

x=-1;

for (i=0;i<n;i++)

{

x+=2;

suma+=x;

}

cout << "\n\nSuma " << n << " początkowych liczb nieparzystych wynosi " << suma << endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 10.3

Napisz program wyznaczający sumę n początkowych liczb nieparzystych. Liczbę n należy pobrać od użytkownika.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

float suma,ulamek;

int i,n;

cout << "Program oblicza sumę ułamków 1/2, 2/3, 3/4 itd.\n";

cout << "(C)2003 student\n\n\n";

cout << "Podaj liczbę ułamków n=";

cin >> n;

suma=0;

for (i=1;i<=n;i++)

{

ulamek = ((float)i) / (i+1);

//ulamek = (1.0 * i) / (i+1);

suma+=ulamek;

}

cout << "\n\nSuma " << n << " początkowych ułamków wynosi " << suma << endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 10.4

Napisz program wyznaczający sumę n początkowych liczb podzielnych przez 7. Liczbę n należy pobrać od użytkownika.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int n,suma,x,ile;

cout << "Program oblicza sumę początkowych liczb podzielnych przez 7.\n";

cout << "(C)2003 student\n\n\n";

cout << "Podaj liczbę liczb n=";

cin >> n;

suma=0;

x=0;

ile=0;

while (ile<n)

{

if ((x % 7) ==0)

{

ile++;

suma+=x;

}

x++;

}

cout << "\n\nSuma " << n << " początkowych liczb podzielnych przez 7 wynosi "

<< suma << endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 10.5

Napisz program wyznaczający sumę n początkowych liczb kończących się cyfrą 1, 2 lub 7. Liczbę n należy pobrać od użytkownika.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int n,suma,x,ile;

cout << "Program oblicza sumę n początkowych liczb kończących się cyfrą 1, 2 lub 7.\n";

cout << "(C)2003 student\n\n\n";

cout << "Podaj liczbę liczb n=";

cin >> n;

suma=0;

x=0;

ile=0;

while (ile<n)

{

if ( ((x % 10) == 1) || ((x % 10) == 2) || ((x % 10) == 7))

{

ile++;

suma+=x;

}

x++;

}

cout << "\n\nSuma " << n <<

" początkowych liczb kończących się cyfrą 1, 2 lub 7 wynosi " <<

suma << endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 10.6

Napisz program wyznaczający sumę n początkowych liczb kończących się liczbą 31, 62 lub 17. Liczbę n należy pobrać od użytkownika.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int n,suma,x,ile;

cout << "Program oblicza sumę n początkowych liczb kończących się liczbą 31, 62 lub 17.\n";

cout << "(C)2003 student\n\n\n";

cout << "Podaj liczbę liczb n=";

cin >> n;

suma=0;

x=0;

ile=0;

while (ile<n)

{

if ( ((x % 100) == 31) || ((x % 100) == 62) || ((x % 100) == 17))

{

ile++;

suma+=x;

}

x++;

}

cout << "\n\nSuma " << n <<

" początkowych liczb kończących się liczbą 31, 62 lub 17 wynosi " <<

suma << endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 10.7

Napisz program wyznaczający sumę n początkowych liczb, których suma cyfr wynosi 100. Liczbę n należy pobrać od użytkownika.

Zadanie 10.8

Napisz program wyznaczający sumę n początkowych liczb, których suma cyfr jest liczbą parzystą. Liczbę n należy pobrać od użytkownika.

Zadanie 10.9

Napisz program wyznaczający sumę n początkowych liczb, których suma cyfr jest liczbą pierwszą. Liczbę n należy pobrać od użytkownika.

Zadanie 10.10

Napisz program wyznaczający sumę n początkowych liczb pierwszych.

Zadanie 11.1

Napisz program wyznaczający n-tą potęgę liczby x. Liczby n oraz x należy pobrać od użytkownika.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int n,i;

float x,wynik;

cout << "Program oblicza potęgę naturalną zadanej liczby.\n";

cout << "(C)2003 student\n\n\n";

cout << "Podaj wykłądnik potęgi n=";

cin >> n;

cout << "Podaj podstawę potęgi x=";

cin >> x;

wynik=1;

for (i=0;i<n;i++)

wynik=wynik*x;

cout << "\n\n" << x << "^" << n << " = " << wynik << endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 11.2

Napisz program wyznaczający wartość n! (n silnia) zadanej liczby n. Liczbę n należy pobrać od użytkownika.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int n,i,silnia;

cout << "Program oblicza n!.\n";

cout << "(C)2003 student\n\n\n";

cout << "Podaj n=";

cin >> n;

silnia=1;

for (i=1;i<=n;i++)

silnia=silnia*i;

cout << "\n\n" << n << "!" << " = " << silnia << endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 11.3

Napisz program wyznaczający NWD (Największy Wspólny Dzielnik) liczb a i b.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int a,b,roba,robb;

cout << "Program oblicza NWD(a,b).\n";

cout << "(C)2003 student\n\n\n";

cout << "a=";

cin >> a;

cout << "b=";

cin >> b;

roba=a;

robb=b;

while (roba != robb)

{

if (roba > robb)

roba = roba-robb;

else

robb = robb-roba;

}

cout << "\n\nNWD(" << a << "," << b << ") = " <<

roba << endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 11.4

Napisz program wyznaczający NWW (Najmniejszą Wspólną Wielokrotną) liczb a i b.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int a,b,roba,robb,nwd,nww;

cout << "Program oblicza NWW(a,b).\n";

cout << "(C)2003 student\n\n\n";

cout << "a=";

cin >> a;

cout << "b=";

cin >> b;

roba=a;

robb=b;

while (roba != robb)

{

if (roba > robb)

roba = roba-robb;

else

robb = robb-roba;

}

nwd=roba;

nww = ( a / nwd ) * b ;

cout << "\n\nNWW(" << a << "," << b << ") = " <<

nww << endl << endl;

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 11.5

Napisz program wyznaczający pierwiastek całkowity zadanej liczby. (Nie stosuj funkcji sqrt(). Użyj wyłącznie pętli i działań arytmetycznych).

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int n,robn,ile,nieparzysta;

cout << "Program oblicza pierwiastek całkowity z zadanej liczby.\n";

cout << "(C)2003 student\n\n\n";

cout << "n=";

cin >> n;

robn=n;

nieparzysta=1;

ile=0;

while (robn>=0)

{

robn-=nieparzysta;

ile++;

nieparzysta+=2;

}

ile--;

cout << "\n\nPierwiastek całkowity z liczby n = "

<< ile << ".\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 11.6

Napisz program stwierdzający, czy zadana liczba n jest pierwsza.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int n,dzielnik;

cout << "Program sprawdza, czy zadana liczba jest pierwsza.\n";

cout << "(C)2003 student\n\n\n";

cout << "Podaj liczbę n=";

cin >> n;

dzielnik=2;

while ( ((n % dzielnik) != 0) && ((dzielnik <= sqrt(n))) )

dzielnik++;

if (dzielnik>sqrt(n))

cout << "\n\nPIERWSZA\n\n";

else

cout << "\n\nZŁOŻONA\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 11.7

Napisz program stwierdzający, czy zadana liczba n jest pierwsza.

Zadanie 12.1

Napisz program wyznaczający liczbę cyfr zadanej liczby.

Zadanie 12.2

Napisz program wyznaczający sumę cyfr liczby.

Zadanie 12.3

Napisz program sumujący cyfry zadanej liczby. Proces sumowania powtarzamy aż do momentu otrzymania liczby jednocyfrowej.

Zadanie 12.4

Napisz program stwierdzający, czy zadana liczba jest palindromem.

Zadanie 12.5

Jaki jest największy palindrom mieszczący się w typie int?

Zadanie 12.6

Wydrukuj na ekranie wszystkie palindromy z zakresu od a do b. Liczby a i b wczytujemy z klawiatury.

Zadanie 12.7

Napisz program, sprawdzający, czy wszystkie cyfry zadanej liczby są parzyste.

Zadanie 12.8

Napisz program, drukujący liczbę w odwrotnej kolejności.

Zadanie 12.9

Napisz program stwierdzający, czy liczba kończy się swoim pierwiastkiem?

Zadanie 12.10

Napisz program drukujący na ekranie wszystkie liczby z zakresu od a do b kończące się swoim pierwiastkiem.

Rozwiązanie

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])

{

int i,n,rob,nieparzysta,pierwiastek,liczbacyfr,potegadziesiatki;

cout << "Program sprawdza, czy liczba kończy się swoim pierwiastkiem.\n";

cout << "(C)2003 student\n\n\n";

cout << "n=";

cin >> n;

pierwiastek=0;

nieparzysta=1;

rob = n;

while (rob>=0)

{

rob -= nieparzysta;

nieparzysta+=2;

pierwiastek++;

}

pierwiastek--;

//cout << "Pierwiastek z liczby " << n << " wynosi " << pierwiastek << "\n\n";

//liczba cyfr pierwiastka

liczbacyfr = 0;

rob=pierwiastek;

while(rob)

{

liczbacyfr++;

rob/=10;

}

//cout << "Liczba cyfr pierwiastka LC=" << liczbacyfr << "\n\n";

//potęga liczby 10

potegadziesiatki=1;

for(i=1;i<=liczbacyfr;i++)

potegadziesiatki*=10;

if (n % potegadziesiatki == pierwiastek)

cout << "\n\nTAK\n\n" << n << " kończy się liczbą " << pierwiastek << "\n\n";

else

cout << "\n\nNIE\n\n" << n << " NIE kończy się liczbą " << pierwiastek << "\n\n";

system("PAUSE");

return 0;

}

pobierz rozwiązanie

Zadanie 12.11

Napisz program drukujący na ekranie zadaną liczbę zastępując jej kolejne cyfry ich kwadratami (dla liczby 127 drukujemy 1449).

Zadanie 12.12

Napisz program drukujący na ekranie zadaną liczbę zastępując jej kolejne cyfry ich sześcianami.

Zadanie 12.13

Napisz program drukujący na ekranie zadaną liczbę zastępując jej kolejne cyfry liczbami powstałymi przez dodanie do cyfr liczby 1 (1598 = 26109).

Zadanie 12.14

Napisz program drukujący na ekranie zadaną liczbę zastępując jej kolejne cyfry liczbami powstałymi przez dodanie do cyfr liczb 1, 2, 3, 4 itd. Do liczby najmniej znaczącej (liczba jedności) dodajemy 1, do liczby dziesiątek dodajemy 2 itd. (1598 = 58119).

Zadanie 12.15

Napisz program drukujący na ekranie zadaną liczbę zastępując jej kolejne cyfry liczbami powstałymi przez następujące działanie:

np. dla 1234 mamy 1234 + (1 4 9 16) = (2 6 12 20) = 2620

Zadanie 12.16

Napisz program znajdujący wszystkie trójki liczb pitagorejskich z zadanego przedziału.

Zadanie 13.1

Co zostanie wydrukowane po wykonaniu pętli:

a = 1;

b = 3;

while (a < b) {

a = 3 * a – 1;

b = 2 * b + 1;

}

cout << a << endl << b;

Rozwiązanie

#include <iostream>

using namespace std;

int main (int arqc, char * argv [])

{

int tab[10], i, n;

for (i = 0; i < 10; i++) {

cout << "Liczba nr: " << i << " =";

cin >> tab[i];

}

for (i = 0; i < 10; i++) {

cout << "Liczba nr: " << i << " =" << tab[i] << endl;

}

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 13.2

Co zostanie wydrukowane po wykonaniu pętli:

a = 21;

b = 3;

while (a != b) {

a = a – 1;

b = b + 1;

}

cout << a << endl << b;

Rozwiązanie

#include <iostream>

using namespace std;

int main (int arqc, char * argv [])

{

int tab[10], i;

for (i = 0; i < 10; i++) {

cout << "Liczba nr: " << i << " =";

cin>> tab[i];

}

for (i = 9; i >= 0; i--) {

cout << "Liczba nr: " << i

<< " =" << tab[i] << endl;

}

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 13.3

Co zostanie wydrukowane po wykonaniu pętli:

a = 1000;

b = 1;

while (a > b) {

a /= 2;

b *= 2;

}

cout << a << endl << b;

Rozwiązanie

#include <iostream>

using namespace std;

int main (int arqc, char * argv [])

{

int tab[30], i, n;

cout << "Ile n= ";

cin >> n;

if (n > 0 && n < 31) {

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =";

cin >> tab[i];

}

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =" << tab[i] << endl;

}

} else {

cout << "Zla liczba\n";

}

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 13.4

Co zostanie wydrukowane po wykonaniu pętli:

a = 81;

b = 9;

while (a != b) {

if (a > b)

a -= b;

else

b -= a;

}

cout << a << endl << b;

Zadanie 14.1

Napisz program wczytujący z klawiatury 10 liczb całkowitych. Wczytane liczby należy wydrukować na ekranie.

Rozwiązanie

#include <iostream>

using namespace std;

int main (int arqc, char * argv [])

{

int tab[100], i, n, max;

cout << "Ile n = ";

cin >> n ;

if (n >= 1 && n <=100) {

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =";

cin >> tab[i];

}

max = tab [ 0 ];

for (i = 1 ; i < n ; i++) {

if (max < tab[i])

max = tab[i];

}

cout << "Max = " << max << endl;

} else {

cout <<"Zla liczba\n";

}

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 14.2

Napisz program wczytujący z klawiatury 10 liczb całkowitych. Wczytane liczby należy wydrukować na ekranie w odwrotnej kolejności.

Rozwiązanie

#include <iostream>

using namespace std;

int main (int arqc, char * argv [])

{

int tab[100], i, n, min;

cout << "Ile n = ";

cin >> n ;

if (n >= 1 && n <= 100) {

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =";

cin >> tab[i];

}

min = tab [ 0 ];

for (i = 1; i < n; i++) {

if (min > tab[i])

min = tab[i];

}

cout << "Min = " << min << endl;

} else {

cout <<"Zla liczba\n";

}

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 14.3

Napisz program wczytujący z klawiatury n liczb całkowitych. Liczbę n należy pobrać z klawiatury. Jeśli wartość n podana przez użytkownika jest liczbą z zakresu od 1 do 30, wówczas program ma wczytać podaną ilość liczb całkowitych, a następnie wczytane liczby wydrukować na ekranie. Jeśli natomiast podana wartość n jest liczbą spoza przedziału [1; 30], wówczas program kończy pracę drukując stosowny komunikat. W zadaniu należy wykorzystać trzydziestoelementową tablicę liczb całkowitych.

Zwrot „program wczytujący z klawiatury n liczb całkowitych” występujący w kolejnych zadaniach należy rozumieć tak jak bieżącym zadaniu. W programie powinna znaleźć się deklaracja tablicy liczb o dowolnym, ale ustalonym wymiarze (np. int tab[82];) oraz zmienna n. Wartość zmiennej n wczytujemy z klawiatury. Jeśli zmienna n podana przez użytkownika jest poprawna (w naszym przykładzie n powinno być większe od 0 i mniejsze od 83) wówczas program realizuje zadanie określone w treści. W przeciwnym razie program kończy pracę wyświetlając komunikat: „Niepoprawne ilość liczb!”

int main(int grac, char *argv[])

{

int tab[137];

int n;

cout << "Podaj ilość liczb n = ";

cin >> n;

if (n > 0 && n < 138) {

// ... przetwarzanie tablicy ...

} else {

cout << "Niepoprawna ilość liczb!";

}

system("Pause");

return 0;

}

Rozwiązanie

#include <iostream>

using namespace std;

int main (int arqc, char * argv [])

{

int tab[100], i, n, max, ilemax;

cout << "Ile n = ";

cin >> n ;

if (n >= 1 && n <= 100) {

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =";

cin >> tab[i];

}

max = tab [ 0 ];

ilemax = 1;

for (i = 1; i < n; i++) {

if (max < tab[i]) {

ilemax = 1;

max = tab[i];

} else if (max == tab[i]) {

ilemax++;

}

}

cout << "Max = " << max << endl;

cout << "Wystapilo " << ilemax << " razy.\n";

} else {

cout <<"Zla liczba\n";

}

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 15.1

Napisz program wczytujący z klawiatury n liczb całkowitych. Program ma znaleźć największą spośród podanych liczb i wydrukować ją na ekranie.

Rozwiązanie

#include <iostream>

using namespace std;

int main (int arqc, char * argv [])

{

int tab[30], i, n;

cout << "Ile n= ";

cin >> n;

if (n > 0 && n < 31) {

//wczytanie

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =";

cin >> tab[i];

}

//przetwarzanie

for (i = 0; i < n; i++) {

tab[i] = tab[i] * tab[i];

}

//wydruk

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =" << tab[i] << endl;

}

} else {

cout << "Zla liczba\n";

}

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 15.2

Napisz program wczytujący z klawiatury n liczb całkowitych. Program ma znaleźć najmniejszą spośród podanych liczb i wydrukować ją na ekranie.

Rozwiązanie

#include <iostream>

using namespace std;

int main (int arqc, char * argv [])

{

int tab[30], i, n;

cout << "Ile n= ";

cin >> n;

if (n > 0 && n < 31) {

//wczytanie

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =";

cin >> tab[i];

}

//przetwarzanie

for (i = 0; i < n; i++) {

tab[i] = tab[i] * tab[i] * tab[i];

}

//wydruk

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =" << tab[i] << endl;

}

} else {

cout << "Zla liczba\n";

}

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 15.3

Napisz program wczytujący z klawiatury n liczb całkowitych. Program ma znaleźć największą spośród podanych liczb oraz wydrukować na ekranie informację mówiącą o tym, ile razy największa liczba wystąpiła w podanym ciągu liczb.

Rozwiązanie

#include <iostream>

using namespace std;

int main (int arqc, char * argv [])

{

int tab[30], i, n;

cout << "Ile n= ";

cin >> n;

if (n > 0 && n < 31) {

//wczytanie

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =";

cin >> tab[i];

}

//przetwarzanie

for (i = 0; i < n; i++) {

tab[i] = tab[i] + 1;

}

//wydruk

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =" << tab[i] << endl;

}

} else {

cout << "Zla liczba\n";

}

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 15.4

Napisz program wczytujący z klawiatury n liczb całkowitych. Program ma znaleźć najmniejszą spośród podanych liczb oraz wydrukować na ekranie informację mówiącą o tym, ile razy najmniejsza liczba wystąpiła w podanym ciągu liczb.

Rozwiązanie

#include <iostream>

using namespace std;

int main (int arqc, char * argv [])

{

int tab[30], i, n;

cout << "Ile n= ";

cin >> n;

if (n > 0 && n < 31) {

//wczytanie

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =";

cin >> tab[i];

}

//przetwarzanie

for (i = 0; i < n; i++) {

tab[i] = tab[i] * 2;

}

//wydruk

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =" << tab[i] << endl;

}

} else {

cout << "Zla liczba\n";

}

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 15.5

Napisz program wczytujący z klawiatury n liczb całkowitych. Program ma znaleźć drugi co do wielkości wyraz podanego ciągu liczb (czyli liczbę mniejszą od największej liczby występującej w ciągu, ale większą od wszystkich pozostałych).

Zadanie 15.6

Napisz program wczytujący z klawiatury n liczb całkowitych. Program ma znaleźć drugi co do wielkości (ciut większy od najmniejszego) wyraz podanego ciągu liczb (czyli liczbę większą od najmniejszej ale mniejszą od każdej innej).

Zadanie 15.7

Ile razy w podanym ciągu liczb wystąpił drugi co do wielkości największy element ciągu?

Zadanie 15.8

Ile razy w podanym ciągu liczb wystąpił drugi co do wielkości najmniejszy element ciągu?

Zadanie 16.1

Napisz program wczytujący ciąg liczb rzeczywistych. Każdą podana liczbę należy podnieść do kwadratu, a następnie wydrukować na ekranie.

Rozwiązanie

#include <iostream>

using namespace std;

int main (int arqc, char * argv [])

{

int tab[30], i, n;

cout << "Ile n= ";

cin >> n;

if (n > 0 && n < 31) {

//wczytanie

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =";

cin >> tab[i];

}

cout << endl << endl;

//przetwarzanie

for (i = 0; i < n; i++) {

if (tab[i] % 2 == 0) {

cout << tab[i] << ", ";

}

}

cout << endl << endl;

} else {

cout << "Zla liczba\n";

}

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 16.2

Napisz program wczytujący ciąg liczb rzeczywistych. Każdą podana liczbę należy podnieść do trzeciej potęgi, a następnie wydrukować na ekranie.

Rozwiązanie

#include <iostream>

using namespace std;

int main (int arqc, char * argv [])

{

int tab[30], i, n;

cout << "Ile n= ";

cin >> n;

if (n > 0 && n < 31) {

//wczytanie

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =";

cin >> tab[i];

}

cout << endl << endl;

//przetwarzanie

for (i = 0; i < n; i++) {

if (tab[i] % 2 == 1) {

cout << tab[i] << ", ";

}

}

cout << endl << endl;

} else {

cout << "Zla liczba\n";

}

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 16.3

Napisz program wczytujący ciąg liczb rzeczywistych. Do każdej podanej liczby należy dodać jeden. Tak otrzymane liczby należy wydrukować na ekranie.

Rozwiązanie

#include <iostream>

using namespace std;

int main (int arqc, char * argv [])

{

int tab[30], i, n;

cout << "Ile n= ";

cin >> n;

if (n > 0 && n < 31) {

//wczytanie

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =";

cin >> tab[i];

}

cout << endl << endl;

//przetwarzanie

for (i = 0; i < n; i++) {

if (tab[i] % 3 == 0) {

cout << tab[i] << ", ";

}

}

cout << endl << endl;

} else {

cout << "Zla liczba\n";

}

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 16.4

Napisz program wczytujący ciąg liczb rzeczywistych. Każdą podaną liczbę należy pomnożyć przez dwa. Tak otrzymane liczby należy wydrukować na ekranie.

Rozwiązanie

#include <iostream>

using namespace std;

int main (int arqc, char * argv [])

{

int tab[30], i, n;

cout << "Ile n= ";

cin >> n;

if (n > 0 && n < 31) {

//wczytanie

for (i = 0; i < n; i++) {

cout << "Liczba nr: " << i << " =";

cin >> tab[i];

}

cout << endl << endl;

//przetwarzanie

for (i = 0; i < n; i++) {

if (tab[i] >= 4 && tab[i] < 15) {

cout << tab[i] << ", ";

}

}

cout << endl << endl;

} else {

cout << "Zla liczba\n";

}

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 17.1

Napisz program wczytujący ciąg liczb całkowitych. Wydrukuj na ekranie kolejno wszystkie parzyste spośród podanych liczb.

Zadanie 17.2

Napisz program wczytujący ciąg liczb całkowitych. Wydrukuj na ekranie kolejno wszystkie nieparzyste spośród podanych liczb.

Zadanie 17.3

Napisz program wczytujący ciąg liczb całkowitych. Wydrukuj na ekranie kolejno wszystkie liczby, które dzielą się przez 3.

Zadanie 17.4

Napisz program wczytujący ciąg liczb rzeczywistych. Wydrukuj na ekranie kolejno wszystkie liczby, które należą do przedziału [4;15).

Zadanie 17.5

Napisz program wczytujący ciąg liczb całkowitych. Wydrukuj na ekranie kolejno wszystkie liczby, które mają wszystkie cyfry parzyste.

Zadanie 17.6

Napisz program wczytujący ciąg liczb całkowitych. Wydrukuj na ekranie kolejno wszystkie liczby, których suma cyfr wynosi 1.

Zadanie 17.7

Napisz program wczytujący ciąg liczb całkowitych. Do liczb parzystych należy dodać 100, a następnie wydrukować wszystkie liczby na ekranie.

Zadanie 17.8

Napisz program wczytujący ciąg liczb rzeczywistych. Liczby ujemne należy zastąpić zerami. Tak otrzymane liczby drukujemy na ekranie.

Zadanie 18.1

Napisz program wczytujący ciąg liczb rzeczywistych. Wydrukuj na ekranie te spośród liczb, których indeks jest liczbą parzystą.

Zadanie 18.2

Napisz program wczytujący ciąg liczb rzeczywistych. Wydrukuj na ekranie te spośród liczb, których indeks jest liczbą będącą kwadratem liczby całkowitej (1, 4, 9, 16 itd.).

Zadanie 19.1

Napisz program generujący ciąg liczb pierwszych od 0 do n metoda sita Eratostanesa.

Rozwiązanie

#include <iostream.h>

#include <cstdlib.h>

using namespace std;

int main(int argc, char* argv[]){

int tab[1000],n,i,j,dzielnik;

cout << "Podaj n=";

cin >> n;

if (n>0 && n<=1001)

{

for (i=2;i<=n;i++)

tab[i-2]=i;

for (i=0;i<=n-3;i++)

{

dzielnik = tab[i];

if (dzielnik > 0)

for (j=i+1;j<n-2;j++)

if (tab[j] % dzielnik == 0)

tab[j] = 0;

}

for (i=0;i<n-2;i++)

if (tab[i] > 0)

cout << tab[i] << endl;

}

else

cout << "\nZła liczba n (1-1001)\n";

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 19.2

Napisz program generujący ciąg n początkowych liczb Fibonacciego..

Zadanie 19.3

Napisz program sortujący wczytane n liczb metodą wyszukiwania kolejnych minimów.

Zadanie 19.4

Napisz program wypełniający tablicę n liczb t[0] ... t[n-1] wartościami:

Zadanie 20.1

Napisz funkcję suma() wyznaczającą sumę dwóch zadanych liczb całkowitych. Napisz program wykorzystujący funkcję suma().

Rozwiązanie

#include <iostream.h>

#include <cstdlib.h>

using namespace std;

int sumaliczb(int a, int b);

int main(int argc, char* argv[])

{

int l1, l2, l3;

cout << "\nProgram SUMA LICZB" << endl

<< "(C)2003 by student" << endl << endl;

cout << "Podaj pierwszą liczbę =";

cin >> l1;

cout << "Podaj drugą liczbę =";

cin >> l2;

l3=sumaliczb(l1,l2);

cout << endl << "SUMA LICZB WYNOSI:" << endl;

cout << l1 << "+" << l2 << "=" << l3 << endl << endl;

system ("Pause");

return 0;

}

int sumaliczb(int a, int b)

{

return a+b;

}

pobierz rozwiązanie

Zadanie 20.2

Napisz funkcję roznica() wyznaczającą różnicę dwóch zadanych liczb całkowitych. Działanie funkcji sprawdź pisząc odpowiedni program.

Rozwiązanie

#include <iostream.h>

#include <cstdlib.h>

using namespace std;

int roznicaliczb(int a, int b);

int main(int argc, char* argv[])

{

int l1, l2, l3;

cout << "\nProgram RÓŻNICA LICZB" << endl

<< "(C)2003 by student" << endl << endl;

cout << "Podaj pierwszą liczbę =";

cin >> l1;

cout << "Podaj drugą liczbę =";

cin >> l2;

l3=roznicaliczb(l1,l2);

cout << endl << "RÓŻNICA LICZB WYNOSI:" << endl;

cout << l1 << "-" << l2 << "=" << l3 << endl << endl;

system ("Pause");

return 0;

}

int roznicaliczb(int a, int b)

{

return a - b;

}

pobierz rozwiązanie

Zadanie 20.3

Napisz funkcję iloczyn() wyznaczającą iloczyn dwóch zadanych liczb całkowitych. Działanie funkcji sprawdź pisząc odpowiedni program.

Rozwiązanie

#include <iostream.h>

#include <cstdlib.h>

using namespace std;

int iloczynliczb(int a, int b);

int main(int argc, char* argv[])

{

int l1, l2, l3;

cout << "\nProgram ILOCZYN LICZB" << endl

<< "(C)2003 by student" << endl << endl;

cout << "Podaj pierwszą liczbę =";

cin >> l1;

cout << "Podaj drugą liczbę =";

cin >> l2;

l3=iloczynliczb(l1,l2);

cout << endl << "ILOCZYN LICZB WYNOSI:" << endl;

cout << l1 << "*" << l2 << "=" << l3 << endl << endl;

system ("Pause");

return 0;

}

int iloczynliczb(int a, int b)

{

return a * b;

}

pobierz rozwiązanie

Zadanie 20.4

Napisz funkcję iloraz() wyznaczającą iloraz dwóch zadanych liczb całkowitych. Działanie funkcji sprawdź pisząc odpowiedni program.

Zadanie 20.5

Napisz funkcję liczby_pitagorejskie(), która ma trzy parametry formalne a, b, c, będące liczbami całkowitymi. Wartością funkcji jest jeden, jeśli zadane liczby są liczbami pitagorejskimi oraz zero w przeciwnym wypadku. Liczby pitagorejskie spełniają warunek:a*a+b*b=c*c.

Rozwiązanie

#include <iostream.h>

#include <cstdlib.h>

using namespace std;

int LiczbyPitagorejskie(int a, int b, int c);

int main(int argc, char* argv[])

{

int i, j, k;

cout << "\nProgram LICZBY PITAGOREJSKIE" << endl

<< "(C)2003 by student" << endl << endl;

cout << "Podaj pierwszą liczbę =";

cin >> i;

cout << "Podaj drugą liczbę =";

cin >> j;

cout << "Podaj trzecią liczbę =";

cin >> k;

if (LiczbyPitagorejskie(i,j,k)==1)

cout << "\nPodane liczby są liczbami pitagorejskimi\n";

else

cout << "\nPodane liczby nie są liczbami pitagorejskimi\n";

system ("Pause");

return 0;

}

int LiczbyPitagorejskie(int a, int b, int c)

{

if ( c > a && c > b) // c jest największe

if ( a * a + b * b == c * c)

return 1;

else

return 0;

else if ( b > a && b > c) // b jest największe

if ( a * a + c * c == b * b)

return 1;

else

return 0;

else if ( a > b && a > c) // a jest największe lub brak największej

if ( b * b + c * c == a * a)

return 1;

else

return 0;

}

pobierz rozwiązanie

Zadanie 20.6

Napisz program wykorzystujący funkcję liczby_pitagorejskie() z poprzedniego zadania. Program ma drukować na ekranie wszystkie trójki liczb pitagorejskich z zakresu od 1 do 10.

Zadanie 20.7

Napisz funkcję, która wyznacza pierwiastek całkowity z zadanej liczby. Zastosuj algorytm odejmowania kolejnych liczb nieparzystych.

Zadanie 20.8

Napisz funkcję, która wyznacza liczbę cyfr zadanej liczby całkowitej.

Rozwiązanie

#include <iostream.h>

#include <cstdlib.h>

using namespace std;

int CzyLiczbaKonczySieSwoimPierwiastkiem(long liczba);

int main(int argc, char * argv[]){

long i;

cout << endl << endl;

for (i=1;i<10000;i++)

if (CzyLiczbaKonczySieSwoimPierwiastkiem(i))

cout << i << endl;

cout << endl << endl;

system("Pause");

return 0;

}

int CzyLiczbaKonczySieSwoimPierwiastkiem(long liczba){

long rob = 0;

long dziesiatki = 10;

while (rob < liczba){

rob = liczba % dziesiatki;

rob = rob * rob;

dziesiatki *= 10;

}

if (rob == liczba)

return 1;

else

return 0;

}

pobierz rozwiązanie

Zadanie 20.9

Napisz funkcję, która stwierdza, czy zadana jako parametr liczba całkowita kończy się swoim pierwiastkiem. Liczby kończące się swoim pierwiastkiem to 25, 625. Wartością funkcji ma być jeden, jeśli liczba spełnia warunek oraz zero w przeciwnym wypadku.

Zadanie 20.10

Napisz program, który wydrukuje na ekranie wszystkie liczby kończące się swoim kwadratem z zakresu 1-10000. Program powinien wykorzystywać funkcję z poprzedniego zadania.

Zadanie 20.11

Napisz funkcję, która stwierdza, czy zadana jako parametr liczba całkowita jest kwadratem pewnej liczby całkowitej. Liczby będące kwadratami liczb całkowitych to 1, 4, 9, 16 itd. Wartością funkcji ma być jeden, jeśli liczba spełnia warunek oraz zero w przeciwnym wypadku.

Zadanie 20.12

Napisz funkcję, która stwierdza, czy zadana jako parametr liczba całkowita jest liczbą pierwszą. Wartością funkcji ma być jeden, jeśli liczba spełnia warunek oraz zero w przeciwnym wypadku.

Zadanie 20.13

Napisz funkcję, która stwierdza, czy zadana jako parametr liczba całkowita jest sześcianem pewnej liczby naturalnej. Wartością funkcji ma być jeden, jeśli liczba spełnia warunek oraz zero w przeciwnym wypadku.

Zadanie 20.14

Napisz funkcję, która wyznacza maksimum z dwóch zadanych liczb całkowitych. Wartością funkcji ma być większa spośród liczb.

Zadanie 20.15

Napisz funkcję, która wymienia wartościami dwie zadane liczby całkowite.

Zadanie 21.1

Napisz funkcję, która posiada trzy parametry formalne. Pierwszym parametrem jest liczba a, drugim tablica liczb tab zaś trzecim — liczba n. Funkcja ma dla zadanej liczy a zwracać w tablicy tab jej kod binarny. Liczba n ma informować o tym, ile elementów tablicy zostało wypełnionych.

Rozwiązanie

#include <iostream.h>

#include <stdlib.h>

void cyfrybinarne(int a, int tab[], int &n);

int main(int argc, char **argv)

{

int liczba , cyfry[30] , n, i;

cout << "Podajliczbe=";

cin >> liczba;

cout << endl << endl;

cyfrybinarne(liczba,cyfry,n);

cout << endl << endl;

cout << endl << liczba << " = ";

for (i=n-1;i>=0;i--)

cout << cyfry[i];

cout << endl << endl;

system("Pause");

return 0;

}

void cyfrybinarne(int a, int tab[], int &n){

n = 0;

do {

tab[n] = a % 2;

a /= 2;

n++;

} while(a > 0);

}

pobierz rozwiązanie

Zadanie 21.2

Napisz funkcję, która znajduje w tablicy element minimalny. Parametrami funkcji mają być tablica oraz liczba elementów tablicy. Wartością funkcji ma być element maksymalny.

Zadanie 21.3

Napisz funkcję, która znajduje w tablicy element maksymalny. Parametrami funkcji mają być: tablica oraz liczba elementów tablicy. Wartością funkcji ma być element maksymalny.

Zadanie 21.4

Napisz funkcję, która sortuje zadaną tablicę liczb całkowitych rosnąco.

Zadanie 21.5

Napisz funkcję, która sortuje zadaną tablicę liczb całkowitych malejąco.

Zadanie 22.1

Napisz funkcję, która wyznacza n-tą (n jest liczba naturalną) potęgę zadanej liczby rzeczywistejx. Funkcja ma wykorzystywać iterację.

Rozwiązanie

#include <iostream.h>

#include <stdlib.h>

float potega_iteracyjna(int n, float x);

int main(int argc, char **argv)

{

int n;

float x;

cout << "\nProgram zawiera implementacje funkcji POTEGA-ITERACYJNA\n\n";

cout << "wyladnik potegi n=";

cin >> n;

cout << "podstawa potegi x=";

cin >> x;

cout << "\n\nLiczba " << x << " po podniesieniu do potegi "

<< n << " daje " << potega_iteracyjna(n,x)

<< endl << endl;

system("Pause");

return 0;

}

float potega_iteracyjna(int n, float x){

int i;

float wynik=1;

for(i=1;i<=n;i++)

wynik *= x;

return wynik;

}

pobierz rozwiązanie

Zadanie 22.2

Napisz funkcję, która wyznacza n-tą (n jest liczba naturalną) potęgę zadanej liczby rzeczywistejx. Funkcja ma wykorzystywać rekurencję.

Rozwiązanie

#include <iostream.h>

#include <stdlib.h>

float potega_rekurencyjna(int n, float x);

int main(int argc, char **argv)

{

int n;

float x;

cout << "\nProgram zawiera implementacje funkcji POTEGA-REKURENCYJNA\n\n";

cout << "wyladnik potegi n=";

cin >> n;

cout << "podstawa potegi x=";

cin >> x;

cout << "\n\nLiczba " << x << " po podniesieniu do potegi "

<< n << " daje " << potega_rekurencyjna(n,x)

<< endl << endl;

system("Pause");

return 0;

}

float potega_rekurencyjna(int n, float x){

float rob;

if (n == 0)

return 1;

else

{

rob = potega_rekurencyjna( n - 1 , x );

return rob * x;

}

}

pobierz rozwiązanie

Zadanie 22.3

Napisz funkcję, która posiada trzy parametry formalne. Pierwszym parametrem jest liczba a, drugim tablica liczb tab zaś trzecim — liczba n. Funkcja ma dla zadanej liczy a zwracać w tablicy tab jej kod Graya. Liczba n ma informować o tym, ile elementów tablicy zostało wypełnionych.

Zadanie 22.4

Napisz funkcję, która wyznacza wartość n! (tj. n silnia), gdzie n jest liczba naturalną. Funkcja ma wykorzystywać iterację.

Rozwiązanie

#include <iostream.h>

#include <stdlib.h>

int silnia_iteracyjna(int n);

int main(int argc, char **argv)

{

int n;

cout << "\nProgram zawiera implementacje funkcji SILNIA-ITERACYJNA\n\n";

cout << "n=";

cin >> n;

cout << "\n\n" << n << "! = "

<< silnia_iteracyjna(n)

<< endl << endl;

system("Pause");

return 0;

}

int silnia_iteracyjna(int n){

int i;

int wynik=1;

for(i=1;i<=n;i++)

wynik *= i;

return wynik;

}

pobierz rozwiązanie

Zadanie 22.5

Napisz funkcję, która wyznacza wartość n! (tj. n silnia), gdzie n jest liczba naturalną). Funkcja ma wykorzystywać rekurencję.

Rozwiązanie

#include <iostream.h>

#include <stdlib.h>

int silnia_rekurencyjna(int n);

int main(int argc, char **argv)

{

int n;

cout << "\nProgram zawiera implementacje funkcji SILNIA-REKURENCYJNA\n\n";

cout << "n=";

cin >> n;

cout << "\n\n" << n << "! = "

<< silnia_rekurencyjna(n)

<< endl << endl;

system("Pause");

return 0;

}

int silnia_rekurencyjna(int n){

int rob;

if (n == 0)

return 1;

else

return n * silnia_rekurencyjna(n-1);

}

pobierz rozwiązanie

Zadanie 23.1

Napisz funkcję, która wyznacza wartość wielomianu w zadanym punkcie. Parametrami funkcji mają być: n — stopień wielomianu (liczba całkowita), tab — tablica współczynników (współczynniki są liczbami rzeczywistymi) oraz x — zadany punkt (liczba rzeczywista). Wartością funkcji ma być wyznaczona wartość wielomianu.

Rozwiązanie

#include <iostream.h>

int main(int argc, char* argv[])

{

int i;

cin >> i;

switch(i){

case 0: cout<< "000";

break;

case 1: cout<< "111";

break;

case 2: cout<< "222";

break;

case 3: cout<< "333";

break;

}//switch

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 23.2

Napisz funkcję, która wyznacza sumę dwóch wielomianów.

Rozwiązanie

#include <iostream.h>

int main(int argc, char* argv[])

{

int odp;

float a;

do{

cout << endl << "Podaj bok kwadratu a=";

cin >> a;

cout << "Pole kwadratu wynosi P=" << a*a << endl;

cout << "Czy chcesz kontynuowa?" << endl;

cout << "0 - nie" << endl

<< "1 - tak" << endl;

cin >> odp;

}while(odp==1);

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 23.3

Napisz funkcję, która wyznacza różnicę dwóch wielomianów.

Rozwiązanie

#include <iostream.h>

int mojemenu();

void polekola();

void polekwadratu();

void poletrapezu();

int main(int argc, char* argv[])

{

int wybor;

wybor=mojemenu();

while (wybor != 0)

{

switch (wybor){

case 1: polekola();

break;

case 2: polekwadratu();

break;

case 3: poletrapezu();

break;

};//switch

wybor=mojemenu();

}

return 0;

}

int mojemenu(){

int odp;

cout << "\n======[ MENU GLOWNE ]======\n"

<< "0 - wyjscje" << endl

<< "1 - pole kola" << endl

<< "2 - pole kwadratu" << endl

<< "3 - pole trapezu" << endl;

cin >> odp;

return odp;

}

void polekola(){

float r;

cout << "\n======[ POLE KOLA ]======\n";

cout << "r=";

cin >> r;

cout << "P=" << 3.14 * r * r;

cout << endl;

}

void polekwadratu(){

float a;

cout << "\n======[ POLE KWADRATU ]======\n";

cout << "a=";

cin >> a;

cout << "P=" << a * a;

cout << endl;

}

void poletrapezu(){

float a,b,h;

cout << "\n======[ POLE TRAPEZU ]======\n";

cout << "a=";

cin >> a;

cout << "b=";

cin >> b;

cout << "h=";

cin >> h;

cout << "P=" << (a + b)*h/2;

cout << endl;

}

pobierz rozwiązanie

Zadanie 23.4

Napisz funkcję, która wyznacza iloczyn dwóch wielomianów.

Zadanie 23.5

Napisz funkcję, która wyznacza pierwszą pochodną wielomianu.

Zadanie 23.6

Napisz funkcję, która wyznacza drugą pochodną wielomianu.

Zadanie 23.7

Napisz funkcję, która wyznacza n-tą pochodną wielomianu.

Rozwiązanie

#include <iostream.h>

int main(int argc, char **argv)

{

char a;

cout << " Nacisnij jeden z klawiszy T,N,R,?" << endl

<< "Uwaga: duże litery są odróżniane od małych!" << endl;

cin >> a;

switch (a)

{

case 'T': cout << "\nTAK\n"; break;

case 'N': cout << "\nNIE\n"; break;

case 'R': cout << "\nRACZEJ NIE\n"; break;

case '?': cout << "\nNIE WIEM\n"; break;

};

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 23.8

Napisz funkcję, która wyznacza iloczyn wielomianu przez liczbą.

Zadanie 24.1

Napisz funkcję wizytowka(), która wyprowadza na ekran informacje o programie.

Rozwiązanie

#include <fstream.h>

#include <stdlib.h>

#include <iostream.h>

int main(int argc, char **argv)

{

ifstream pin;

int rob;

int suma = 0;

cout << "\nSUMA LICZB CAŁKOWITYCH Z PLIKU\n";

pin.open("liczby.txt");

if (!pin){

cout << "\nBLAD OTWARCIA!\n";

system ("Pause");

return 1;

}

while (pin >> rob) {

cout << rob << endl;

suma += rob;

}

cout << "\n\n=========\n"

<< " SUMA = " << suma << "\n\n\n";

pin.close();

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 24.2

Napisz funkcję, która wczytuje wielomian z klawiatury.

Rozwiązanie

#include <fstream.h>

#include <stdlib.h>

#include <iostream.h>

int main(int argc, char **argv)

{

ifstream pin;

float rob;

float suma = 0;

cout << "\nSUMA LICZB Z PLIKU\n";

pin.open("liczby.txt");

if (!pin){

cout << "\nBLAD OTWARCIA!\n";

system ("Pause");

return 1;

}

pin >> rob;

while (pin) {

cout << rob << endl;

suma += rob;

pin >> rob;

}

cout << "\n\n=========\n"

<< " SUMA = " << suma << "\n\n\n";

pin.close();

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 24.3

Napisz funkcję, która drukuje na ekranie wielomian.

Rozwiązanie

#include <fstream.h>

#include <stdlib.h>

#include <iostream.h>

int main(int argc, char **argv)

{

ofstream pout;

int n;

cout << "\nZAPISUJEMY LICZBY DO PLIKU\n";

cout << "\nUWAGA: konieczne zamkniecie pliku!!!\n";

pout.open("liczby.txt");

cout << "n=";

cin >> n;

while (n){

pout << n << " ";

cout << "n=";

cin >> n;

}

pout.close();

system ("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 25.1

Napisz program sprawdzający działanie instrukcji switch. Program powinien wczytać z klawiatury liczbę całkowitą i w zależności od jej wartości wydrukować różne komunikaty (np. jeśli podana liczba wynosi 0 to należy wydrukować tekst komunikat pierwszy, dla liczby 1 drukujemy komunikat drugi zaś dla liczby 2 — Komunikat trzeci).

Rozwiązanie

//ZADANIE 12.1.1

#include <iostream.h>

int main(int argc, char* argv[])

{

int n;

int *wsk;

wsk = &n;

cout << "n=";

cin >> *wsk;

cout << "\n\n-----\n\n";

cout << "n=";

cout << *wsk;

cout << "\n\n-----\n\n";

cout << "n=" << n << endl;

cout << "\n\n-----\n\n";

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 25.2

Napisz program obliczający pole kwadratu. Program ma umożliwiać wielokrotne wykonanie obliczeń. Po każdorazowym wyznaczeniu pola kwadratu program powinien zadać pytanie Czy chcesz powtórzyć? i w zależności od udzielonej przez użytkownika odpowiedzi zakończyć działanie lub powtórzyć obliczenia.

Rozwiązanie

//ZADANIE 12.1.2

#include <iostream.h>

struct TData{

int d,m,r;

};

int main(int argc, char* argv[])

{

TData d;

TData *wsk;

wsk = &d;

cout << "\ndzien=";

cin >> wsk -> d;

cout << "\nmiesiac=";

cin >> wsk->m;

cout << "\nrok=";

cin >> wsk->r;

cout << "\n\n======\n\n";

cout << wsk->d << "-" << wsk->m << "-" << wsk->r << endl;

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 25.3

Napisz program obliczający pola koła, kwadratu oraz trapezu. Program ma zawierać menu drukowane funkcją mojemenu(). Menu programu umożliwia dokonanie wyboru: koniec pracy programu, wyznaczanie pola kwadratu, wyznaczanie pola koła lub wyznaczanie pola trapezu. Program kończy pracę jedynie powinien przypadku, gdy użytkownik wybierze w menu opcję koniec pracy. Jeśli użytkownik wybierze opcję wyznaczania pola dowolnej figury, wówczas po wczytaniu danych oraz dokonaniu obliczeń program powinien ponownie drukować menu.

Rozwiązanie

//ZADANIE 12.1.3

#include <iostream.h>

struct TData{

int d,m,r;

};

struct TStudent{

string imie,nazwisko;

TData ur;

};

int main(int argc, char* argv[])

{

TStudent st;

TStudent *wsk;

wsk = &st;

cout << "\n\nimie=";

cin >> (*wsk).imie;

cout << "\n\nnazwisko=";

cin >> (*wsk).nazwisko;

cout << "\ndata urodzenia";

cout << "\n dzien = ";

cin >> (*wsk).ur.d;

cout << "\n miesiac = ";

cin >> (*wsk).ur.m;

cout << "\n rok = ";

cin >> (*wsk).ur.r;

cout << "\n\n-----\n\n";

cout << (*wsk).imie;

cout << "\n\n-----\n\n";

cout << (*wsk).nazwisko;

cout << "\n\n-----\n\n";

cout << (*wsk).ur.d << "-" << (*wsk).ur.m << "-" << (*wsk).ur.r << endl;

cout << "\n\n-----\n\n";

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 25.4

Napisz program obliczający objętość kuli, sześcianu, prostopadłościanu i stożka. Program ma działać na analogicznie jak program z poprzedniego zadania. Menu programu oferuje dostępne operacje (koniec pracy, wyznaczania objętości kuli, wyznaczanie objętości sześcianu itd.) Program kończy pracę po wybraniu opcji koniec. Za każdym razem, gdy użytkownik wybierze opcję realizującą obliczenia po wykonaniu obliczeń program ma wydrukować menu.

Rozwiązanie

//ZADANIE 12.1.4

#include <iostream.h>

struct TSamochod{

string marka;

string model;

int rocznik;

};

int main(int argc, char* argv[])

{

TSamochod s;

TSamochod *w;

w = &s;

cout << "\n\nmarka=";

cin >> w -> marka;

cout << "\n\nmodel=";

cin >> w -> model;

cout << "\nrocznik=";

cin >> w -> rocznik;

cout << "\n\n-----\n\n";

cout << w -> marka;

cout << "\n\n-----\n\n";

cout << w -> model;

cout << "\n\n-----\n\n";

cout << w -> rocznik;

cout << "\n\n-----\n\n";

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 25.5

Napisz program przeliczający waluty. Kwoty podane w dolarach amerykańskich, euro oraz funtach brytyjskich przeliczamy na kwoty wyrażone w złotówkach. Program ma posiadać menu i działać na zasadach opisanych w poprzednich zadaniach.

Zadanie 25.6

Napisz program kalkulator umożliwiający wykonywanie czterech działań arytmetycznych. Program ma posiadać menu i działać na zasadach opisanych w poprzednich zadaniach.

Zadanie 25.7

Napisz program z menu tak, by zmienna sterująca instrukcji switch była typu char.

Zadanie 25.8

Napisz program zamieniający temperaturę wyrażoną w stopniach Celsjusza na temperaturę wyrażoną w stopniach Fahrenheita zgodnie ze wzorem TC = 5/9(TF-32). Program ma działać podobnie do poprzedniego programu: po każdorazowym wykonaniu obliczeń użytkownik jest pytany Czy powtórzyć obliczenia (T/N)? W przypadku udzielenia odpowiedzi T (litera Tnaciśnięta na klawiaturze) obliczenia są kontynuowane. Jeśli użytkownik naciśnie przycisk Nprogram kończy pracę. Program powinien reagować jedynie na klawisze T oraz N.

Zadanie 25.9

Napisz program przeliczający długości wyrażone w metrach na długości wyrażone w calach, stopach i milach. Program ma posiadać menu podobne jak w poprzednich zadaniach. Zmienna sterująca wyborem w menu ma być typach char. Użytkownik udziela odpowiedzi naciskając jeden z klawiszy:

Zadanie 26.1

Dany jest plik tekstowy liczby.txt, zawierający liczby całkowite i białe znaki (spacje, tabulatory i znaki złamania wiersza). Przykładowa zawartość pliku może wyglądać następująco:

1 -2 3 -4

5

-6

7

-8 9 10

Napisz program, który wydrukuje na ekranie liczby odczytane z pliku oraz policzy ich sumę.

Rozwiązanie

//ZADANIE 12.2.1

#include <iostream.h>

int main(int argc, char* argv[])

{

int *wsk;

wsk = new int;

cout << "n=";

cin >> *wsk;

cout << "\n\n-----\n\n";

cout << "n=";

cout << *wsk;

cout << endl << endl;

delete wsk;

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 26.2

Napisz program, który wczytuje z klawiatury ciąg liczb całkowitych. Liczba zero kończy wczytywanie. Wczytane liczby zapisz do pliku tekstowego liczby.txt. Liczby oddziel znakiem spacji.

Rozwiązanie

//ZADANIE 12.2.2

#include <iostream.h>

struct TData{

int d,m,r;

};

int main(int argc, char* argv[])

{

TData *wsk;

wsk = new TData;

cout << "\ndzien=";

cin >> wsk -> d;

cout << "\nmiesiac=";

cin >> wsk->m;

cout << "\nrok=";

cin >> wsk->r;

cout << "\n\n======\n\n";

cout << wsk->d << "-" << wsk->m << "-" << wsk->r << endl;

delete wsk;

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 27.1

Napisz program definiujący zmienną typu int oraz wskaźnik do zmiennej typu int. Program powinien wczytać z klawiatury wartość i podstawić ją do zmiennej stosując wskaźnik i operator adresu (nie stosuj operatora new).

Rozwiązanie

//ZADANIE 12.3.1

#include <iostream.h>

int main(int argc, char* argv[])

{

int *wsk[10];

//Alokacja

for(int i=0;i<10;i++)

wsk[i] = new int;

//Wczytanie

for(int i=0;i<10;i++){

cout << "liczba nr " << i << " = ";

cin >> *wsk[i];

}

cout << "\n##############################\n";

//Wydruk

for(int i=0;i<10;i++){

cout << "liczba nr " << i << " = " << *wsk[i] << endl;

}

//Zwolnienie pamieci

for(int i=0;i<10;i++)

delete wsk[i];

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 27.2

Napisz program definiujący zmienną typu TData oraz wskaźnik do zmiennej typu TData. Program powinien wczytać z klawiatury wartości pól zmiennej. Zastosuj wskaźnik i operator adresu (nie stosuj operatora new).

Rozwiązanie

//ZADANIE 12.3.2

#include <iostream.h>

struct TData{

int d,m,r;

};

int main(int argc, char* argv[])

{

TData *wsk[5];

//Alokacja

for(int i=0;i<5;i++)

wsk[i] = new TData;

//Wczytanie

for(int i=0;i<5;i++){

cout << "data nr " << i << endl;

cout << "dzien=";

cin >> wsk[i]->d;

cout << "miesiac=";

cin >> wsk[i]->m;

cout << "rok=";

cin >> wsk[i]->r;

}

cout << "\n##############################\n";

//Wydruk

for(int i=0;i<5;i++){

cout << "data nr " << i << " : "

<< wsk[i]->d << "-"

<< wsk[i]->m << "-"

<< wsk[i]->r << endl;

}

//Zwolnienie pamieci

for(int i=0;i<5;i++)

delete wsk[i];

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 27.3

Napisz program definiujący zmienną typu TStudent oraz wskaźnik do zmiennej typu TStudent. Program powinien wczytać z klawiatury wartości pól zmiennej. Zastosuj wskaźnik i operator adresu (nie stosuj operatora new).

Rozwiązanie

//ZADANIE 12.3.3

#include <iostream.h>

struct TData{

int d,m,r;

};

struct TStudent{

string imie,nazwisko;

TData ur;

};

int main(int argc, char* argv[])

{

TStudent *wsk[5];

//Alokacja

for(int i=0;i<5;i++)

wsk[i] = new TStudent;

//Wczytanie

for(int i=0;i<5;i++){

cout << "student nr " << i << endl;

cout << "imie=";

cin >> wsk[i]->imie;

cout << "nazwisko=";

cin >> wsk[i]->nazwisko;

cout << "data urodzenia\ndzien=";

cin >> wsk[i]->ur.d;

cout << "miesiac=";

cin >> wsk[i]->ur.m;

cout << "rok=";

cin >> wsk[i]->ur.r;

}

cout << "\n##############################\n";

//Wydruk

for(int i=0;i<5;i++){

cout << "***student nr " << i << " : "

<< wsk[i]->imie << " "

<< wsk[i]->nazwisko << " ur."

<< wsk[i]->ur.d << "-"

<< wsk[i]->ur.m << "-"

<< wsk[i]->ur.r << endl;

}

//Zwolnienie pamieci

for(int i=0;i<5;i++)

delete wsk[i];

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 27.4

Napisz program definiujący zmienną typu TSamochod oraz wskaźnik do zmiennej typuTSamochod. Program powinien wczytać z klawiatury wartości pól zmiennej. Zastosuj wskaźnik i operator adresu (nie stosuj operatora new).

Rozwiązanie

//ZADANIE 12.3.4

#include <iostream.h>

struct TSamochod{

string marka;

string model;

int rocznik;

};

int main(int argc, char* argv[])

{

TSamochod *wsk[5];

//Alokacja

for(int i=0;i<5;i++)

wsk[i] = new TSamochod;

//Wczytanie

for(int i=0;i<5;i++){

cout << "samochod nr " << i << endl;

cout << "marka=";

cin >> wsk[i]->marka;

cout << "model=";

cin >> wsk[i]->model;

cout << "rok produkcji=";

cin >> wsk[i]->rocznik;

}

cout << "\n##############################\n";

//Wydruk

for(int i=0;i<5;i++){

cout << "***samochod nr " << i << " : "

<< wsk[i]->marka << " "

<< wsk[i]->model << " ur."

<< wsk[i]->rocznik << endl;

}

//Zwolnienie pamieci

for(int i=0;i<5;i++)

delete wsk[i];

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 28.1

Napisz program, który dynamicznie zaalokuje zmienną typu int. Program powinien wczytać z klawiatury wartość i podstawić ją do zaalokowanej zmiennej. Następnie program powinien wydrukować na ekranie wartość zmiennej, po czym zwolnić pamięć i zakończyć działanie.

Rozwiązanie

//ZADANIE 12.4.1.a

#include <iostream.h>

int *UstalInt(void){

int *tmp = new int;

cout << " liczba = ";

cin >> *tmp;

return tmp;

};

int main(int argc, char* argv[])

{

int *wsk;

wsk = UstalInt();

cout << "\n\n-----\n\n";

cout << "n=";

cout << *wsk;

cout << endl << endl;

delete wsk;

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 28.2

Napisz program, który zawiera definicję struktury TData. W programie dynamicznie utwórz zmienną typu TData, następnie wczytaj z klawiatury wartości pól, po czym wczytane informacje wydrukuj na ekranie. Przed zakończeniem programu usuń zmienną operatoremdelete.

Rozwiązanie

//ZADANIE 12.4.1.b

#include <iostream.h>

int *UstalInt(void){

int *tmp = new int;

cout << " liczba = ";

cin >> *tmp;

return tmp;

};

int main(int argc, char* argv[])

{

int *wsk[10];

//Alokacja

for(int i=0;i<10;i++)

wsk[i] = new int;

//Wczytanie

for(int i=0;i<10;i++)

wsk[i] = UstalInt();

cout << "\n##############################\n";

//Wydruk

for(int i=0;i<10;i++){

cout << "liczba nr " << i << " = " << *wsk[i] << endl;

}

//Zwolnienie pamieci

for(int i=0;i<10;i++)

delete wsk[i];

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 28.3

Napisz program, który zawiera definicję struktury TStudent. W programie dynamicznie utwórz zmienną typu TStudent, następnie wczytaj z klawiatury wartości pól, po czym wczytane informacje wydrukuj na ekranie. Przed zakończeniem programu usuń zmienną operatoremdelete.

Rozwiązanie

//ZADANIE 12.4.2.a

#include <iostream.h>

struct TData{

int d,m,r;

};

TData *UstalTData(void){

TData *tmp = new TData;

cout << "Dzien: ";

cin >> tmp -> d;

cout << "Miesiac: ";

cin >> tmp -> m;

cout << "Rok: ";

cin >> tmp -> r;

return tmp;

};

int main(int argc, char* argv[])

{

TData *wsk;

wsk = UstalTData();

cout << "\n\n======\n\n";

cout << wsk->d << "-" << wsk->m << "-" << wsk->r << endl;

delete wsk;

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 28.4

Napisz program, który zawiera definicję struktury TSamochod. W programie dynamicznie utwórz zmienną typu TSamochod, następnie wczytaj z klawiatury wartości pól, po czym wczytane informacje wydrukuj na ekranie. Przed zakończeniem programu usuń zmienną operatorem delete.

Rozwiązanie

//ZADANIE 12.4.2.b

#include <iostream.h>

struct TData{

int d,m,r;

};

TData *UstalTData(void){

TData *tmp = new TData;

cout << "Dzien: ";

cin >> tmp -> d;

cout << "Miesiac: ";

cin >> tmp -> m;

cout << "Rok: ";

cin >> tmp -> r;

return tmp;

};

int main(int argc, char* argv[])

{

TData *wsk[5];

//Alokacja i wczytanie

for(int i=0;i<5;i++)

wsk[i] = UstalTData();

cout << "\n##############################\n";

//Wydruk

for(int i=0;i<5;i++){

cout << "data nr " << i << " : "

<< wsk[i]->d << "-"

<< wsk[i]->m << "-"

<< wsk[i]->r << endl;

}

//Zwolnienie pamieci

for(int i=0;i<5;i++)

delete wsk[i];

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 29.1

Napisz definicję dziesięcioelementowej tablicy wskaźników do liczb całkowitych. Napisz program, który wykorzystując zadeklarowaną tablicę wczytuje z klawiatury dziesięć liczb, a następnie drukuje wczytane liczby na ekranie. Pamiętaj o alokacji i zwolnieniu pamięci operatorami new oraz delete.

Rozwiązanie

#include <iostream.h>

#include <stdlib.h>

void WymianaInt(int *p1, int *p2){

int ptmp;

ptmp = *p1;

*p1 = *p2;

*p2 = ptmp;

}

int main(int argc, char* argv[]){

int z1 = 300, z2 = 666;

int *pa,*pb;

pa = new int(33);

pb = new int(45);

cout << "WARTOSCI PRZED ZMIANA: a = " << *pa << " b = " << *pb << endl << endl;

WymianaInt(pa,pb);

cout << "WARTOSCI PO ZMNINIE: a = " << *pa << " b = " << *pb << endl << endl;

cout << "\n\n================================\n\n";

cout << "WARTOSCI PRZED ZMIANA: z1 = " << z1 << " z2 = " << z2 << endl << endl;

WymianaInt( &z1 , &z2);

cout << "WARTOSCI PO ZMIANIE: z1 = " << z1 << " z2 = " << z2 << endl << endl;

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 29.2

Napisz definicję dziesięcioelementowej tablicy wskaźników do struktur TData. Napisz program, który wykorzystując zadeklarowaną tablicę wczytuje z klawiatury dziesięć dat, a następnie drukuje wczytane daty na ekranie. Pamiętaj o alokacji i zwolnieniu pamięci operatorami neworaz delete.

Rozwiązanie

#include <iostream.h>

#include <stdlib.h>

void WymianaWskInt(int **p1, int **p2){

int *ptmp;

ptmp = *p1;

*p1 = *p2;

*p2 = ptmp;

}

void zmien(int &p1, int &p2){

int ptmp;

ptmp = p1;

p1 = p2;

p2 = ptmp;

}

int main(int argc, char* argv[]){

int *pa,*pb;

pa = new int(33);

pb = new int(45);

cout << "ADRESY PRZED ZMIANA: pa = " << pa << " pb = " << pb << endl << endl;

cout << "WARTOSCI PRZED ZMIANA: a = " << *pa << " b = " << *pb << endl << endl;

WymianaWskInt(&pa,&pb);

cout << "WARTOSCI PO ZMNINIE: a = " << *pa << " b = " << *pb << endl << endl;

cout << "ADRESY PO ZMIANIE: pa = " << pa << " pb = " << pb << endl << endl;

zmien((int)pa , (int)pb);

cout << "WARTOSCI PO ZMNINIE: a = " << *pa << " b = " << *pb << endl << endl;

cout << "ADRESY PO ZMIANIE: pa = " << pa << " pb = " << pb << endl << endl;

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 29.3

Napisz definicję dziesięcioelementowej tablicy wskaźników do struktur TStudent. Napisz program, który wykorzystując zadeklarowaną tablicę wczytuje z klawiatury informacje o dziesięciu studentach, a następnie drukuje wczytane dane na ekranie. Pamiętaj o alokacji i zwolnieniu pamięci operatorami new oraz delete.

Rozwiązanie

#include <iostream.h>

#include <stdlib.h>

struct TData{

int d,m,r;

};

void WymianaTData(TData *p1, TData *p2){

TData ptmp;

ptmp = *p1;

*p1 = *p2;

*p2 = ptmp;

}

void DrukujTData(TData d){

cout << d.d << "-" << d.m << "-" << d.r;

};

int main(int argc, char* argv[]){

TData day1 = {31,12,2003};

TData day2 = {1,11,1999};

cout << "WARTOSCI PRZED ZMIANA: day1 = ";

DrukujTData(day1);

cout << " day2 = ";

DrukujTData(day2);

cout << endl << endl;

WymianaTData(&day1,&day2);

cout << "WARTOSCI PO ZMIANIE: day1 = ";

DrukujTData(day1);

cout << " day2 = ";

DrukujTData(day2);

cout << endl << endl;

cout << "\n\n===================================\n\n";

TData *wd1 = new TData;

wd1 -> d =3;

wd1 -> m =4;

wd1 -> r =2005;

TData *wd2 = new TData;

wd2 -> d =1;

wd2 -> m =1;

wd2 -> r =2000;

cout << "WARTOSCI PRZED ZMIANA: wd1 = ";

DrukujTData(*wd1);

cout << " wd2 = ";

DrukujTData(*wd2);

cout << endl << endl;

WymianaTData(wd1,wd2);

cout << "WARTOSCI PO ZMIANIE: wd1 = ";

DrukujTData(*wd1);

cout << " wd2 = ";

DrukujTData(*wd2);

cout << endl << endl;

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 29.4

Napisz definicję dziesięcioelementowej tablicy wskaźników do struktur TSamochod. Napisz program, który wykorzystując zadeklarowaną tablicę wczytuje z klawiatury informacje o dziesięciu autach, a następnie drukuje wczytane dane na ekranie. Pamiętaj o alokacji i zwolnieniu pamięci operatorami new oraz delete.

Rozwiązanie

#include <iostream.h>

#include <stdlib.h>

struct TData{

int d,m,r;

};

void WymianaTData(TData **p1, TData **p2){

TData *ptmp;

ptmp = *p1;

*p1 = *p2;

*p2 = ptmp;

}

void zmien(int &p1, int &p2){

int ptmp;

ptmp = p1;

p1 = p2;

p2 = ptmp;

}

void DrukujTData(TData d){

cout << d.d << "-" << d.m << "-" << d.r;

};

int main(int argc, char* argv[]){

TData *wd1 = new TData;

wd1 -> d =3;

wd1 -> m =4;

wd1 -> r =2005;

TData *wd2 = new TData;

wd2 -> d =1;

wd2 -> m =1;

wd2 -> r =2000;

cout << "WARTOSCI PRZED ZMIANA: wd1 = ";

DrukujTData(*wd1);

cout << " wd2 = ";

DrukujTData(*wd2);

cout << endl << endl;

WymianaTData(&wd1,&wd2);

cout << "WARTOSCI PO ZMIANIE: wd1 = ";

DrukujTData(*wd1);

cout << " wd2 = ";

DrukujTData(*wd2);

cout << endl << endl;

cout << "\n\n===================================\n\n";

cout << "WARTOSCI PRZED ZMIANA: wd1 = ";

DrukujTData(*wd1);

cout << " wd2 = ";

DrukujTData(*wd2);

cout << endl << endl;

zmien((int)wd1, (int) wd2 );

cout << "WARTOSCI PO ZMIANIE: wd1 = ";

DrukujTData(*wd1);

cout << " wd2 = ";

DrukujTData(*wd2);

cout << endl << endl;

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 30.1

Napisz funkcję UstalLiczbeCalkowita, która zwraca jako wartość wskaźnik do zmiennej typu int. Zadaniem funkcji jest zaalokowanie zmiennej oraz ustalenie jej wartości (wartość zmiennej wczytujemy z klawiatury).

Napisz program spradzający działanie funkcji.

Rozwiązanie

#include <iostream.h>

#include <stdlib.h>

int PorownajInt(int *a, int *b){

return *a - *b;

}

int main(int argc, char* argv[]){

int x = 37, y= 99;

if (PorownajInt(&x,&y) > 0)

cout << endl << x << " jest wieksze od " << y << endl;

else if (PorownajInt(&x,&y) == 0)

cout << endl << x << " jest rowne " << y << endl;

else

cout << endl << x << " jest mniejsze od " << y << endl;

int *w1 = new int (39);

int *w2 = new int (33);

if (PorownajInt(w1,w2) > 0)

cout << endl << *w1 << " jest wieksze od " << *w2 << endl;

else if (PorownajInt(w1,w2) == 0)

cout << endl << *w1 << " jest rowne " << *w2 << endl;

else

cout << endl << *w1 << " jest mniejsze od " << *w2 << endl;

cout << "\n\n===========================\n\n";

for (int i=0;i<5;i++){

x = random(1000);

y = random(1000);

if (PorownajInt(&x,&y) > 0)

cout << endl << x << " jest wieksze od " << y << endl;

else if (PorownajInt(&x,&y) == 0)

cout << endl << x << " jest rowne " << y << endl;

else

cout << endl << x << " jest mniejsze od " << y << endl;

}

cout << endl << endl;

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 30.2

Napisz funkcję UstalDate(), która zwraca jako wartość wskaźnik do zmiennej typu TData. Zadaniem funkcji jest zaalokowanie zmiennej oraz ustalenie wartości jej pól (wartości pól zmiennej wczytujemy z klawiatury).

Napisz program sprawdzający działanie funkcji.

Rozwiązanie

#include <iostream.h>

#include <stdlib.h>

TData {

int d,m,r;

};

int PorownajTData(TData *d1, TData *d2){

if (d1 -> r == d2 -> r) {

if (d1 -> m == d2 -> m) {

return d1 -> d - d2 -> d;

} else

return d1 -> m - d2 -> m;

} else

return d1 -> r - d2 -> r;

}

int main(int argc, char* argv[]){

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 30.3

Napisz funkcję UstalDaneStudenta(), która zwraca jako wartość wskaźnik do zmiennej typuTStudent. Zadaniem funkcji jest zaalokowanie zmiennej oraz ustalenie wartości jej pól (wartości pól zmiennej wczytujemy z klawiatury).

Napisz program testujący działanie funkcji.

Zadanie 30.4

Napisz funkcję UstalDaneSamochodu(), która zwraca jako wartość wskaźnik do zmiennej typuTSamochod. Zadaniem funkcji jest zaalokowanie zmiennej oraz ustalenie wartości jej pól (wartości pól zmiennej wczytujemy z klawiatury).

Napisz program testujący działanie funkcji.

Zadanie 31.1

Napisz funkcję WymianaInt(). Parametrami funkcji mają być dwa wskaźniki do zmiennych typuint. Zadaniem funkcji jest wymiana wartości zmiennych. Program ma fizycznie przesunąć z jednego miejsca pamięci w drugie wartości zmiennych!

Napisz program, który stosując funkcję WymianaInt() wymienia wartościami dwie zmienne automatyczne oraz dwie zmienne dynamiczne. Wartości wszystkich zmiennych wczytaj z klawiatury. Po dokonaniu wymiany wydrukuj wartości zmiennych na ekranie.

Rozwiązanie

#include <iostream.h>

class TData{

public:

int d,m,r;

};

int main(int argc, char* argv[])

{

TData kiedy;

cout << "Dzien: ";

cin >> kiedy.d;

cout << "Miesiac: ";

cin >> kiedy.m;

cout << "Rok: ";

cin >> kiedy.r;

cout << "\n\n=====================================\n\n";

cout << kiedy.r << "-"

<< kiedy.m << "-"

<< kiedy.d << endl << endl;

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 31.2

Napisz funkcję WymianaWskInt(). Parametrami funkcji mają być dwa wskaźniki do wskaźników do zmiennych typu int. Zadaniem funkcji jest wymiana wartości zmiennych. Funkcja ma wymienić wskaźniki do zmiennych, a nie wartości zmiennych. Napisz program, który stosując funkcję WymianaWskInt() wymienia wartościami dwie zmienne dynamiczne. Wartości wszystkich zmiennych wczytaj z klawiatury. Po dokonaniu wymiany wydrukuj wartości zmiennych na ekranie. Czy funkcja WymianaWskInt() może zostać użyta do wymiany wartości zmiennych statycznych?

Funkcja WymianaInt() z poprzedniego zadania jest identyczna z funkcją:

void zmien(int &p1, int &p2){

int ptmp;

ptmp = p1;

p1 = p2;

p2 = ptmp;

}

Funkcje te różnią się jedynie nagłówkiem. W przypadku, gdy parametry p1 oraz p2 są dużymi strukturami wówczas kopiowanie całych struktur może być czasochłonne. Wtedy funkcja te jest nieefektywna (niewydajna).

Funkcja WymianaWskInt() wymienia jedynie wskaźniki do danych. Zatem wymiana danych (bez względu na ich wielkość) zawsze będzie równie wydajna. Niestety funkcji nie można użyć do zmiennych automatycznych. Co więcej, ponieważ wskaźniki są faktycznie zmiennymi typuunsigned long, zatem zamiast tej funkcji możemy stosować powyższą funkcję zmien() (stosując odpowiednio operator rzutowania). Ponadto funkcja zmien() może być użyta do wymiany wskaźników do dowolnego typu. Ewentualna pułapka polega na tym, że nie w każdym kompilatorze C++ wskaźnik musi być zgodny z typem unsigned long.

Rozwiązanie

#include <iostream.h>

class TData{

public:

int d,m,r;

};

int main(int argc, char* argv[])

{

TData *kiedy;

kiedy = new TData;

cout << "Dzien: ";

cin >> kiedy->d;

cout << "Miesiac: ";

cin >> kiedy->m;

cout << "Rok: ";

cin >> kiedy->r;

cout << "\n\n=====================================\n\n";

cout << kiedy->r << "-"

<< kiedy->m << "-"

<< kiedy->d << endl << endl;

delete kiedy;

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 31.3

Napisz funkcję WymianaTData(). Parametrami funkcji mają być dwa wskaźniki do zmiennych typu TData. Zadaniem funkcji jest wymiana wartości zmiennych. Napisz program, który stosując funkcję WymianaTData() wymienia wartościami dwie zmienne statyczne oraz dwie zmienne automatyczne. Wszystkie dane wczytaj z klawiatury. Po dokonaniu wymiany wydrukuj wartości zmiennych na ekranie.

Zadanie 31.4

Napisz funkcję WymianaWskTData(). Parametrami funkcji mają być dwa wskaźniki do wskażników do zmiennych typu TData. Zadaniem funkcji jest wymiana wartości zmiennych. Napisz program, który stosując funkcję WymianaWskTData() wymienia wartościami dwie zmienne dynamiczne. Wszystkie dane wczytaj z klawiatury. Po dokonaniu wymiany wydrukuj wartości zmiennych na ekranie. W programie użyj również funkcji zmien() oraz operatora rzutowania do wymiany zmiennych.

Zadanie 31.5

Napisz funkcję WymianaTStudent(). Parametrami funkcji mają być dwa wskaźniki do zmiennych typu TStudent. Zadaniem funkcji jest wymiana wartości zmiennych. Napisz program, który stosując funkcję WymianaTStudent() wymienia wartościami dwie zmienne automatyczne oraz dwie zmienne dynamiczne. Wszystkie dane wczytaj z klawiatury. Po dokonaniu wymiany wydrukuj wartości zmiennych na ekranie.

Zadanie 31.6

Napisz funkcję WymianaWskTStudent(). Parametrami funkcji mają być dwa wskaźniki do wskaźników do zmiennych typu TStudent. Zadaniem funkcji jest wymiana wartości zmiennych. Napisz program, który stosując funkcję WymianaWskTStudent() wymienia wartościami dwie zmienne dynamiczne. Wszystkie dane wczytaj z klawiatury. Po dokonaniu wymiany wydrukuj wartości zmiennych na ekranie. W programie użyj również funkcji zmien() oraz operatora rzutowania do wymiany zmiennych.

Zadanie 31.7

Napisz funkcję WymianaTSamochod(). Parametrami funkcji mają być dwa wskaźniki do zmiennych typu TSamochod. Zadaniem funkcji jest wymiana wartości zmiennych. Napisz program, który stosując funkcję WymianaTSamochod() wymienia wartościami dwie zmienne automatyczne oraz dwie zmienne dynamiczne. Wszystkie dane wczytaj z klawiatury. Po dokonaniu wymiany wydrukuj wartości zmiennych na ekranie.

Zadanie 31.8

Napisz funkcję WymianaWskTSamochod(). Parametrami funkcji mają być dwa wskaźniki do wskaźników do zmiennych typu TSamochod. Zadaniem funkcji jest wymiana wartości zmiennych. Napisz program, który stosując funkcję WymianaWskTSamochod() wymienia wartościami dwie zmienne dynamiczne. Wszystkie dane wczytaj z klawiatury. Po dokonaniu wymiany wydrukuj wartości zmiennych na ekranie. W programie użyj również funkcji zmien()oraz operatora rzutowania do wymiany zmiennych.

Zadanie 32.1

Napisz funkcję PorownajInt() porównującą wartości dwóch liczb całkowitych. Parametrami funkcji mają być dwa wskaźniki do zmiennych typu int, zaś jej wartością liczba całkowita. Wynik funkcji ma być liczbą mniejszą od zera jeśli pierwsza z liczb jest mniejsza od drugiej, równy zero jeśli liczby są sobie równe lub większa od zera w przypadku, gdy pierwsza liczba jest większa od drugiej. Napisz program, który wykorzystując funkcję PorownajInt() dokona porównania dwóch zmiennych automatycznych oraz dwóch zmiennych dynamicznych. Potrzebne informacje wczytaj z klawiatury, zaś wynik działania obydwu porównań wydrukuj na ekranie.

Rozwiązanie

#include <iostream.h>

class TData{

private:

int d,m,r;

public:

void Wczytaj(void);

void Drukuj(void);

};

void TData::Wczytaj(void){

cout << "Dzien: ";

cin >> d;

cout << "Miesiac: ";

cin >> m;

cout << "Rok: ";

cin >> r;

}

void TData::Drukuj(void){

cout << r << "-" << m << "-" << d << endl;

}

int main(int argc, char* argv[])

{

TData kiedy;

kiedy.Wczytaj();

kiedy.Drukuj();

// cout << kiedy.r; BLAD !!!! pola prywatne są niewidoczne!

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 32.2

Napisz funkcję PorownajTData() porównującą wartości dwóch zmiennych typu TData. Parametrami funkcji mają być dwa wskaźniki do zmiennych typu TData, zaś jej wartością liczba całkowita. Wynik funkcji ma być liczbą mniejszą od zera jeśli pierwsza z dat jest wcześniejsza mniejsza od drugiej, równy zero jeśli daty są sobie równe lub większa od zera w przypadku, gdy pierwsza data jest późniejsza od drugiej. Napisz program, który wykorzystując funkcjęPorownajTData() dokona porównania dwóch zmiennych automatycznych oraz dwóch zmiennych dynamicznych. Potrzebne informacje wczytaj z klawiatury, zaś wynik działania obydwu porównań wydrukuj na ekranie.

Rozwiązanie

#include <iostream.h>

class TData{

private:

int d,m,r;

public:

void Wczytaj(void);

void Drukuj(void);

};

void TData::Wczytaj(void){

cout << "Dzien: ";

cin >> d;

cout << "Miesiac: ";

cin >> m;

cout << "Rok: ";

cin >> r;

}

void TData::Drukuj(void){

cout << r << "-" << m << "-" << d << endl;

}

int main(int argc, char* argv[])

{

TData *kiedy;

kiedy = new TData;

kiedy->Wczytaj();

kiedy->Drukuj();

delete kiedy;

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 32.3

Napisz funkcję PorownajTStudent() porównującą wartości dwóch zmiennych typu TStudent. Parametrami funkcji mają być dwa wskaźniki do zmiennych typu TStudent, zaś jej wartością liczba całkowita. Wynik funkcji ma nas informować o kolejności umieszczenia studentów na liście. Przyjmujemy, że porządek nazwisk na liście jest leksykograficzny. W przypadku identycznych nazwisk bierzemy pod uwagę imiona. Wynik funkcji ma być liczbą mniejszą od zera, jeśli pierwszy ze studentów powinien się znaleźć na liście alfabetycznej przed drugim, równy zero, jeśli imiona i nazwiska studentów są sobie równe lub większa od zera w przypadku, gdy pierwszy ze studentów powinien być umieszczony na liście po drugim studencie. Napisz program, który wykorzystując funkcję PorownajTStudent() dokona porównania dwóch zmiennych automatycznych oraz dwóch zmiennych dynamicznych. Potrzebne informacje wczytaj z klawiatury, zaś wynik działania obydwu porównań wydrukuj na ekranie.

Zadanie 32.4

Napisz funkcję PorownajTStudent2(), porównującą wartości dwóch zmiennych typu TStudent. Parametrami funkcji mają być dwa wskaźniki do zmiennych typu TStudent, zaś jej wartością liczba całkowita. Wynik funkcji ma nas informować o wieku studentów. Wynik funkcji ma być liczbą mniejszą od zera, jeśli pierwszy ze studentów jest młodszy od drugiego, równy zero, jeśli studenci urodzili się tego samego dnia lub większa od zera w przypadku, gdy pierwszy ze studentów jest starszy od drugiego. Napisz program, który wykorzystując funkcjęPorownajTStudent2() dokona porównania dwóch zmiennych automatycznych oraz dwóch zmiennych dynamicznych. Potrzebne informacje wczytaj z klawiatury, zaś wynik działania obydwu porównań wydrukuj na ekranie.

Zadanie 32.5

Napisz funkcję PorownajTSamochod(), porównującą wartości dwóch zmiennych typuTSamochod. Parametrami funkcji mają być dwa wskaźniki do zmiennych typu TSamochod, zaś jej wartością liczba całkowita. Wynik funkcji ma nas informować o porządku leksykograficznym marek samochodów. Wynik funkcji ma być liczbą mniejszą od zera, jeśli marka pierwszego samochodu jest leksykograficznie mniejsza od marki drugiego samochodu. Jeśli marki są identyczne to funkcja powinna zwracać zero. Jeśli pierwsza marka jest leksykograficznie większa od drugiej, wówczas funkcja powinna zwracać wartość większą od zera. Napisz program, który wykorzystując funkcję PorownajTSamochod() dokona porównania dwóch zmiennych automatycznych oraz dwóch zmiennych dynamicznych. Potrzebne informacje wczytaj z klawiatury, zaś wynik działania obydwu porównań wydrukuj na ekranie.

Zadanie 32.6

Napisz funkcję PorownajTSamochod2(), porównującą wartości dwóch zmiennych typuTSamochod. Parametrami funkcji mają być dwa wskaźniki do zmiennych typu TSamochod, zaś jej wartością liczba całkowita. Wynik funkcji ma nas informować o wieku aut. Wynik funkcji ma być liczbą mniejszą od zera, jeśli pierwszy z samochodów jest młodszy od drugiego, równy zero, jeśli samochody są z tego samego rocznika lub większa od zera w przypadku, gdy pierwszy z samochodów jest starszy. Napisz program, który wykorzystując funkcjęPorownajTSamochod() dokona porównania dwóch zmiennych automatycznych oraz dwóch zmiennych dynamicznych. Potrzebne informacje wczytaj z klawiatury, zaś wynik działania obydwu porównań wydrukuj na ekranie.

Zadanie 33.1

Napisz funkcję Sort2Int() porządkującą rosnąco dwie zadane liczby typu int. Parametrami funkcji mają być dwa wskaźniki do zmiennych typu int. Funkcja ma za zadanie umieścić w pierwszym parametrze mniejszą z dwóch wartości, zaś w drugim — większą. Napisz program, który wykorzystując funkcję Sort2Int() dokona sortowania dwóch zmiennych automatycznych oraz dwóch zmiennych dynamicznych. Potrzebne informacje wczytaj z klawiatury, zaś wynik działania (w obydwu przypadkach!) wydrukuj na ekranie. Wykorzystaj funkcje WymianaInt()oraz PorownajInt().

Rozwiązanie

#include <iostream.h>

class TData{

private:

int d,m,r;

public:

//konstruktor domniemany

TData(void); //K1

//konstruktory różniące sie parametrami (przeciążone)

TData(int Ad, int Am, int Ar); //K2

TData(int); //K3

//konstruktor kopiujący

TData(TData &); //K4

//destruktor

~TData(void);

void Wczytaj(void);

void Drukuj(void);

};

void TData::Wczytaj(void){

cout << "Dzien: ";

cin >> d;

cout << "Miesiac: ";

cin >> m;

cout << "Rok: ";

cin >> r;

}

void TData::Drukuj(void){

cout << " " << r << "-" << m << "-" << d << " ";

}

//K1

//Konstruktor domniemany

TData::TData(void){

cout << " Konstruktor K1: ";

d = 29;

m = 2;

r = 2004;

};

//K2

//konstruktory różniące sie parametrami (przeciążone)

TData::TData(int Ad, int Am, int Ar){

cout << " Konstruktor K2: ";

d = Ad;

m = Am;

r = Ar;

};

//K3

//konstruktory różniące sie parametrami (przeciążone)

TData::TData(int roczek){

cout << " Konstruktor K3: ";

d = 1;

m = 1;

r = roczek;

};

//K4

//Konstruktor kopiujący

TData::TData(TData &Ad){

cout << " Konstruktor K4: ";

d = Ad.d;

m = Ad.m;

r = Ad.r;

};

//Destruktor

TData::~TData(void){

cout << " Destruktor ";

}

int main(int argc, char* argv[])

{

//Przykład 1

cout << "\nPrzyklad 1.\n";

TData p1; // wywoła się K1

p1.Drukuj();

cout << endl <<endl;

system("Pause");

//Przykład 2

cout << endl <<endl;

cout << "\nPrzyklad 2.\n";

TData p2(1,9,1793); // wywoła się K2

p2.Drukuj();

cout << endl <<endl;

system("Pause");

//Przykład 3

cout << endl <<endl;

cout << "\nPrzyklad 3.\n";

TData p3(966); // wywoła się K3

p3.Drukuj();

cout << endl <<endl;

system("Pause");

//Przykład 4

cout << endl <<endl;

cout << "\nPrzyklad 4.\n";

TData p4a(966); // wywoła się K3

TData p4b(p4a); // wywoła się K4

p4a.Drukuj();

p4b.Drukuj();

cout << endl <<endl;

system("Pause");

//Przykład 5

cout << endl <<endl;

cout << "\nPrzyklad 5.\n";

TData p5(966); // wywoła się K3

p5.Drukuj();

p5.~TData(); // Wywoła się destruktor

cout << endl <<endl;

system("Pause");

//Przykład 6

if (1){

cout << endl <<endl;

cout << "\nPrzyklad 6.\n";

TData p6(1914); // wywoła się K3

p6.Drukuj();

cout << endl <<endl;

system("Pause");

// tutaj Wywoła się destruktor

}

cout << "\n##### KONIEC #####\n";

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 33.2

Napisz funkcję Sort2TData() porządkującą rosnąco dwie zadane daty. Parametrami funkcji mają być dwa wskaźniki do zmiennych typu TData. Funkcja ma za zadanie umieścić w pierwszym parametrze mniejszą z dwóch wartości, zaś w drugim — większą. Napisz program, który wykorzystując funkcję Sort2TData() dokona sortowania dwóch zmiennych automatycznych oraz dwóch zmiennych dynamicznych. Potrzebne informacje wczytaj z klawiatury, zaś wynik działania (w obydwu przypadkach) wydrukuj na ekranie. Wykorzystaj funkcje WymianaTData()oraz PorownajTData().

Rozwiązanie

#include <iostream.h>

class TData{

private:

int d,m,r;

public:

//konstruktor domniemany

TData(void); //K1

//konstruktory różniące sie parametrami (przeciążone)

TData(int Ad, int Am, int Ar); //K2

TData(int); //K3

//konstruktor kopiujący

TData(TData &); //K4

//destruktor

~TData(void);

void Wczytaj(void);

void Drukuj(void);

};

void TData::Wczytaj(void){

cout << "Dzien: ";

cin >> d;

cout << "Miesiac: ";

cin >> m;

cout << "Rok: ";

cin >> r;

}

void TData::Drukuj(void){

cout << " " << r << "-" << m << "-" << d << " ";

}

//K1

//Konstruktor domniemany

TData::TData(void){

cout << " Konstruktor K1: ";

d = 29;

m = 2;

r = 2004;

};

//K2

//konstruktory różniące sie parametrami (przeciążone)

TData::TData(int Ad, int Am, int Ar){

cout << " Konstruktor K2: ";

d = Ad;

m = Am;

r = Ar;

};

//K3

//konstruktory różniące sie parametrami (przeciążone)

TData::TData(int roczek){

cout << " Konstruktor K3: ";

d = 1;

m = 1;

r = roczek;

};

//K4

//Konstruktor kopiujący

TData::TData(TData &Ad){

cout << " Konstruktor K4: ";

d = Ad.d;

m = Ad.m;

r = Ad.r;

};

//Destruktor

TData::~TData(void){

cout << " Destruktor ";

}

int main(int argc, char* argv[])

{

//Przykład 1

cout << "\nPrzyklad 1.\n";

TData *p1 = new TData; // wywoła się K1

p1 -> Drukuj();

delete p1; //wywoła się destruktor

cout << endl <<endl;

system("Pause");

//Przykład 2

cout << endl <<endl;

cout << "\nPrzyklad 2.\n";

TData *p2 = new TData(1,9,1793); // wywoła się K2

p2 -> Drukuj();

delete p2; //wywoła się destruktor

cout << endl <<endl;

system("Pause");

//Przykład 3

cout << endl <<endl;

cout << "\nPrzyklad 3.\n";

TData *p3=new TData(966); // wywoła się K3

p3 -> Drukuj();

delete p3; //wywoła się destruktor

cout << endl <<endl;

system("Pause");

//Przykład 4

cout << endl <<endl;

cout << "\nPrzyklad 4.\n";

TData *p4a = new TData(966); // wywoła się K3

TData *p4b = new TData(*p4a); // wywoła się K4

p4a -> Drukuj();

p4b -> Drukuj();

cout << endl <<endl;

system("Pause");

//Przykład 5

cout << endl <<endl;

cout << "\nPrzyklad 5.\n";

TData *p5 = new TData (966); // wywoła się K3

p5 -> Drukuj();

p5 -> ~TData(); // Wywoła się destruktor

delete p5; //wywoła się destruktor - po raz drugi

cout << endl <<endl;

system("Pause");

//Przykład 6

if (1){

cout << endl <<endl;

cout << "\nPrzyklad 6.\n";

TData *p6 = new TData(1914); // wywoła się K3

p6 -> Drukuj();

cout << endl <<endl;

system("Pause");

delete p6; //wywoła się destruktor

}

cout << "\n##### KONIEC #####\n";

system("Pause");

return 0;

}

pobierz rozwiązanie

Zadanie 33.3

Napisz funkcję Sort2TStudent() porządkującą rosnąco (tj. alfabetycznie wg nazwisk oraz imion) dwie zmienne zawierające informacje o studentach. Parametrami funkcji mają być dwa wskaźniki do zmiennych typu TStudent. Funkcja ma za zadanie umieścić w pierwszym parametrze mniejszą z dwóch wartości, zaś w drugim — większą. Napisz program, który wykorzystując funkcję Sort2TStudent() dokona sortowania dwóch zmiennych automatycznych oraz dwóch zmiennych dynamicznych. Potrzebne informacje wczytaj z klawiatury, zaś wynik działania (w obydwu przypadkach!) wydrukuj na ekranie. Wykorzystaj funkcjeWymianaTStudent() oraz PorownajTStudent().

Zadanie 33.4

Napisz funkcję Sort2TStudent2() porządkującą rosnąco (pod względem wieku) dwie zmienne zawierające informacje o studentach. Parametrami funkcji mają być dwa wskaźniki do zmiennych typu TStudent. Funkcja ma za zadanie umieścić w pierwszym parametrze mniejszą z dwóch wartości, zaś w drugim — większą. Napisz program, który wykorzystując funkcjęSort2TStudent2() dokona sortowania dwóch zmiennych automatycznych oraz dwóch zmiennych dynamicznych. Potrzebne informacje wczytaj z klawiatury, zaś wynik działania (w obydwu przypadkach) wydrukuj na ekranie. Wykorzystaj funkcje WymianaTStudent() orazPorownajTStudent2().

Zadanie 33.5

Napisz funkcję Sort2TSamochod() porządkującą rosnąco (tj. alfabetycznie pod wg nmarki) dwie zmienne zawierające informacje o samochodach. Parametrami funkcji mają być dwa wskaźniki do zmiennych typu TSamochod. Funkcja ma za zadanie umieścić w pierwszym parametrze mniejszą z dwóch wartości, zaś w drugim — większą. Napisz program, który wykorzystując funkcję Sort2TSamochod() dokona sortowania dwóch zmiennych automatycznych oraz dwóch zmiennych dynamicznych. Potrzebne informacje wczytaj z klawiatury, zaś wynik działania (w obydwu przypadkach) wydrukuj na ekranie. Wykorzystaj funkcje WymianaTSamochod()PorownajTSamochod().

Zadanie 33.6

Napisz funkcję Sort2TSamochod2() porządkującą rosnąco pod względem wieku dwie zmienne zawierające informacje o samochodach. Parametrami funkcji mają być dwa wskaźniki do zmiennych typu TSamochod. Funkcja ma za zadanie umieścić w pierwszym parametrze mniejszą z dwóch wartości, zaś w drugim — większą. Napisz program, który wykorzystując funkcjęSort2TSamochod2() dokona sortowania dwóch zmiennych automatycznych oraz dwóch zmiennych dynamicznych. Potrzebne informacje wczytaj z klawiatury, zaś wynik działania (w obydwu przypadkach) wydrukuj na ekranie. Wykorzystaj funkcje WymianaTSamochod()PorownajTSamochod2().

Zadanie 34.1

Napisz funkcję SortTabWsk() porządkującą rosnąco tablicę wskaźników. Parametrami funkcji mają być:

Rozwiązanie

#include <iostream.h>

template <class T>

T min(T a, T b)

{

if (a<b)

return a;

else

return b;

}

int main(int argc, char* argv[])

{

int a, b;

cout << "Przyklad uzycia funkcji min dla typu int:\n";

cout << "a = ";

cin >> a;

cout << "b = ";

cin >> b;

cout << "MIN( " << a << ',' << b << " ) = "

<< min (a,b) << endl;

string s1, s2;

cout << "Przyklad uzycia funkcji min dla typu string:\n";

cout << "s1 = ";

cin >> s1;

cout << "s2 = ";

cin >> s2;

cout << "MIN( " << s1 << ',' << s2 << " ) = "

<< min(s1, s2) << endl;

system("pause");

return 0;

}

pobierz rozwiązanie

Zadanie 34.2

Napisz program, który wykorzystując funkcję SortTabWsk() posortuje tablicę wskaźników liczb całkowitych. Potrzebne dane wczytaj z klawiatury, zaś wynik działania wydrukuj na ekranie.

Rozwiązanie

#include <iostream.h>

template <class T>

void swap(T &a, T &b){

T tmp;

tmp = a;

a = b;

b = tmp;

}

template <class T>

void sort2(T &a, T &b){

if (a>b)

swap(a,b);

}

int main(int argc, char* argv[])

{

int a, b;

cout << "Przyklad uzycia funkcji sort2 dla typu int:\n";

cout << "a = ";

cin >> a;

cout << "b = ";

cin >> b;

sort2(a,b);

cout << a << endl << b << endl;

string s1, s2;

cout << "Przyklad uzycia funkcji sort2 dla typu string:\n";

cout << "s1 = ";

cin >> s1;

cout << "s2 = ";

cin >> s2;

sort2(s1,s2);

cout << s1 << endl << s2 << endl;

system("pause");

return 0;

}

pobierz rozwiązanie

Zadanie 34.3

Napisz program, który wykorzystując funkcję SortTabWsk() posortuje tablicę wskaźników do zmiennych typu TData. Potrzebne dane wczytaj z klawiatury, zaś wynik działania wydrukuj na ekranie.

Rozwiązanie

#include <iostream>

#include <string>

using namespace std;

template <class T>

T MaxTab(T a[], int ile){

T wynik = a[0];

for(int i=1;i<ile;i++){

if (a[i]>wynik){

wynik = a[i];

}

}

return wynik;

}

int main(int argc, char* argv[])

{

int *tabint;

int n;

cout << "Przyklad dynamicznej alokacji tablicy"

<< " i definicji funkcji wzorcowej\n";

cout << "liczba elementow = ";

cin >> n;

if (n>0) {

tabint = new int[n];

for (int i=0; i<n; i++){

cout << "element " << i << " = ";

cin >> tabint[i];

}

cout << "\n===== MAX = "<< MaxTab(tabint,n) << " ====\n";

delete []tabint;

} else {

cout << "\n\nZbyt mala liczba elementow!\n\n";

}

string *tabstr;

cout << "Uzycie dla typu string\n\n";

cout << "liczba elementow = ";

cin >> n;

if (n>0) {

tabstr = new string[n];

for (int i=0; i<n; i++){

cout << "element " << i << " = ";

cin >> tabstr[i];

}

cout << "\n===== MAX = "<< MaxTab(tabstr,n) << " ====\n";

delete []tabstr;

} else {

cout << "\n\nZbyt mala liczba elementow!\n\n";

}

system("pause");

return 0;

}

pobierz rozwiązanie

Zadanie 34.4

Napisz program, który wykorzystując funkcję SortTabWsk() posortuje tablicę wskaźników do zmiennych typu TStudent. Potrzebne dane wczytaj z klawiatury, zaś wynik działania wydrukuj na ekranie.

Zadanie 34.5

Napisz program, który wykorzystując funkcję SortTabWsk() posortuje tablicę wskaźników do zmiennych typu TSamochod. Potrzebne dane wczytaj z klawiatury, zaś wynik działania wydrukuj na ekranie.

Zadanie 35.1

Napisz funkcję SortTab() porządkującą rosnąco tablicę elementów. Parametrami funkcji mają być:

Zadanie 35.2

Napisz program, który wykorzystując funkcję SortTab posortuje tablicę liczb całkowitych. Potrzebne dane wczytaj z klawiatury, zaś wynik działania wydrukuj na ekranie.

Zadanie 35.3

Napisz program, który wykorzystując funkcję SortTab() posortuje tablicę zmiennych typu TData. Potrzebne dane wczytaj z klawiatury, zaś wynik działania wydrukuj na ekranie.

Zadanie 35.4

Napisz program, który wykorzystując funkcję SortTab() posortuje tablicę zmiennych typuTStudent. Potrzebne dane wczytaj z klawiatury, zaś wynik działania wydrukuj na ekranie.

Zadanie 35.5

Napisz program, który wykorzystując funkcję SortTab() posortuje tablicę zmiennych typuTSamochod. Potrzebne dane wczytaj z klawiatury, zaś wynik działania wydrukuj na ekranie.

Zadanie 36.1

Podaj definicję klasy TData. Niech wszystkie pola klasy będą polami publicznymi. Klasa nie powinna zawierać żadnych metod.

Zadanie 36.2

Napisz program, który definiuje zmienną automatyczną klasy TData. Ustal wartości pól wczytując je z klawiatury. Następnie wydrukuj na ekranie wczytane wartości .

Zadanie 36.3

Napisz program, który definiuje wskaźnik do klasy TData. Program powinien wykonać następujące operacje:

Podane trzy zadania rozwiąż dla innych klas (np. TAdres, TStudent, TTowar itd.)

Zadanie 37.1

Zdefiniuj klasę TData. Niech wszystkie pola klasy będą prywatne, do ustalania wartości pól z klawiatury i drukowania wartości pól na ekranie zaimplementuj bezparametrowe metodyWczytaj(), Drukuj().

Zadanie 37.2

Napisz program, który definiuje zmienną automatyczną klasy TData, a następnie wywołaj metody Wczytaj() oraz Drukuj().

Zadanie 37.3

Napisz program, który tworzy dynamicznie obiekt klasy TData, a następnie wykona operacje:

Podane trzy zadania rozwiąż dla innych pięciu klas (np. TAdres, TStudent, TTowar itd.)

Zadanie 38.1

Zdefiniuj klasę TData. Klasa powinna posiadać:

Zadanie 38.2

Napisz program, który definiuje zmienną automatyczną klasy TData. W programie wywołaj wszystkie metody klasy TData.

Zadanie 38.3

Napisz program, który tworzy dynamicznie obiekt klasy TData. W programie wywołaj wszystkie metody klasy TData.

Podane zadania rozwiąż dla innych pięciu klas (np. TAdres, TStudent, TTowar itd.)

Zadanie 39.1

Napisz funkcję wzorcową min() wyznaczającą minimum dwóch argumentów. Niech funkcja pobiera jako argumenty dwa parametry będące klasami typu T. Zaimplementowaną funkcję wykorzystaj w programie do wyznaczenia minimum z dwóch liczb całkowitych oraz z dwóch napisów. Potrzebne dane pobierz z klawiatury.

Zadanie 39.2

Napisz funkcje wzorcowe swap() oraz sort2(). Zadaniem funkcji swap() jest wymiana wartości dwóch zmiennych, zaś funkcja sort2() powinna sortować dwóch porządku rosnącym dwie zmienne będące jej parametrami. Niech funkcje pobierają jako argumenty parametry będące klasami typu T. Zaimplementowane funkcje wykorzystaj w programie do sortowania zmiennych typu int oraz string. Potrzebne dane pobierz z klawiatury.

Zadanie 39.3

Napisz funkcję wzorcową zwracającą najmniejszy element tablicy. Zaimplementowaną funkcję wykorzystaj w programie do znalezienia najmniejsze liczby w tablicy liczb całkowitych oraz najmniejszego napisu w tablicy napisów. Potrzebne dane pobierz z klawiatury.

Zadanie 39.4

Napisz funkcję wzorcową sortującą tablicę danych. Zaimplementowaną funkcję wykorzystaj w przykładowym programie. Potrzebne dane pobierz z klawiatury.

Zadanie 39.5

Napisz funkcję wzorcową wyznaczającą sumę elementów w tablicy. Zaimplementowaną funkcję wykorzystaj w przykładowym programie. Potrzebne dane pobierz z klawiatury.


Wyszukiwarka

Podobne podstrony:
Zadania z treścia
Prezentacja 2 analiza akcji zadania dla studentow
Przedmiot i zadania dydaktyki 4
zadanie 1 v 002
Przedmiot dzialy i zadania kryminologii oraz metody badan kr
KOLOKWIUM 2 zadanie wg Adamczewskiego na porownawczą 97
CELE I ZADANIA EDUKACJI MEDIALNEJ(1)
ochrona atmosfery zadania
zadania
Przedmiot i zadania dydaktyki 2
Wymogi, cechy i zadania sprawozdawczośći finansowej
ZADANIA PiP Prezentacja Microsoft PowerPoint
1F CWICZENIE zadanie wg Adamczewskiego na porownawczą 97id 18959 ppt
zadania i rozwiazania z przekrojów 2
zadania egzaminacyjne
ZADANIA WÓJTA I STAROSTY W ZARZĄDZANIU KRYZYSOWYM
Motywacja zadaniowa[1]

więcej podobnych podstron