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
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;
}
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;
}
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;
}
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;
}
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).
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=).
#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;
}
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.
#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;
}
Napisz program przeliczający temperaturę wyrażoną w stopniach Celsjusza na temperaturę wyrażoną w skali Fahrenheita.
Napisz program przeliczający objętość wyrażoną w litrach na galony.
Napisz program przeliczający masę wyrażona w kilogramach na funty.
Napisz program przeliczający wielkość kąta wyrażoną w stopniach na radiany.
#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;
}
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).
Napisz program Pole kwadratu.
#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;
}
Napisz program Pole koła.
Napisz program Pole prostokąta.
Napisz program Pole rombu.
Napisz program wyznaczający pole powierzchni n-kąta foremnego.
Napisz program wyznaczający objętość kuli.
Napisz program wyznaczający objętość prostopadłościanu.
Napisz program wyznaczający objętość stożka.
Napisz program wyznaczający objętość walca.
Napisz program wyznaczający objętość sześcianu.
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.
#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;
}
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.
#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;
}
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.
#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;
}
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.
#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;
}
Napisz program ILORAZ CAŁKOWITY. Program ma wczytać z klawiatury dwie liczby, a następnie policzyć iloraz całkowity tych liczb.
#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;
}
Napisz program RESZTA Z DZIELENIA. Program ma wczytać z klawiatury dwie liczby, a następnie policzyć resztę z dzielenia pierwszej z liczb przez drugą.
#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;
}
Napisz program wyznaczający wartość funkcji liniowej y = 2x + 2 w zadanym punkcie.
#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;
}
Napisz program wyznaczający wartość funkcji liniowej y = ax + b w zadanym punkcie. Wartości współczynników a, b należy wczytać z klawiatury.
#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;
}
Napisz program wyznaczający wartość funkcji kwadratowej y = 2x2 + 2x – 3 w zadanym punkcie.
#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;
}
Napisz program wyznaczający wartość funkcji kwadratowej y = ax2 + bx + c w zadanym punkcie. Wartości współczynników a, b, c należy wczytać z klawiatury.
#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;
}
Napisz program wyznaczający wartość funkcji wymiernej y = (x + 2)/(x – 3) w zadanym punkcie.
#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;
}
Napisz program wyznaczający wartość funkcji wymiernej y = (ax + b)/(cx + d) w zadanym punkcie. Wartości współczynników a, b, c, d należy wczytać z klawiatury.
#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;
}
Napisz program wyznaczający wartość funkcji:
f(x) = 3*sin x + 1/x - ex +log10 x
w zadanym punkcie.
#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;
}
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.
#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;
}
Napisz programy wyznaczanie ilorazu dwóch liczb, wartość funkcji wymiernej w punkcie, które nie przyjmują od użytkownika niepoprawnych liczb.
#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;
}
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.
#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;
}
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.
#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;
}
Napisz program Czy liczba a jest podzielna przez b? Program ma pobrać od użytkownika dwie liczby całkowite a, b. 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).
#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;
}
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).
#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;
}
Napisz program, pobierający z klawiatury liczbę całkowitą i mówiącą o tym czy jest ona z przedziału <a;b>.
#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;
}
Napisz program MAX 2, pobierający od użytkownika dwie liczby i drukujący na ekranie większą z nich.
#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;
}
Napisz programy MAX 3, MAX 4, MAX 5.
#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;
}
Napisz program wymieniający wartość dwóch zmiennych.
#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;
}
Napisz program SORT 2, pobierający od użytkownika dwie liczby i drukujący na ekranie obie liczby w porządku rosnącym.
#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;
}
Napisz programy SORT 3, SORT 4.
#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;
}
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.
#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;
}
W poprzednim programie przed rozwiązaniem układu wydrukować na ekranie postać układu. Dla przykładu, dla liczb a=2, b=-1, c=-1, d=0, e=-5, f=1 powinniśmy wydrukować równania 2x-y=-1 oraz -5y=1
#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;
}
Napisać program Trójmian kwadratowy, szukający zer podanego trójmnianu kwadratowego.
#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;
}
Napisz program sprawdzający czy podana z klawiatury liczba stanowi poprawny numer miesiąca.
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.
#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;
}
Napisz program Ile zadany miesiąc ma dni?. Danymi programu są dwie liczby: numer roku i numer miesiąca.
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.
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ę.
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.
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.
Napisz program KALENDARZ, drukujący na ekranie kalendarz na zadany miesiąc.
Napisz program drukujący na ekranie 19 gwiazdek:
*******************
#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;
}
Napisz program drukujący na ekranie wieżę z literek O:
O
OO
OOO
OOOO
OOOOO
#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;
}
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
#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;
}
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
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
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
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
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
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
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
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
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
Napisz program drukujący na ekranie krzyż. Wysokość krzyżyka wczytujemy z klawiatury. Poniższy krzyż ma wysokość wys=3.
#
#
#
#######
#
#
#
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
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
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
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
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,
Napisz program, drukujący na ekranie liczby.
Ilość liczb wczytujemy z klawiatury.
Oto wydruk dla ile = 5:
0, 3, 6, 9, 12
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
#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;
}
Napisz program drukujący na ekranie potęgi liczby 2 (od potęgi 0 do potęgi 8).
#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;
}
Napisz program, drukujący na ekranie wartości logarytmu dziesiętnego dla liczb 1/10, 2/10,...,9/10.
#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;
}
Napisz program, drukujący na ekranie tablicę wartość funkcji trygonometrycznych dla kątów 0, 30, 60, 90, 120 stopni.
#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;
}
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ą.
#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;
}
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.
#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;
}
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.
#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;
}
Napisz program wyznaczający wartość pierwiastka kwadratowego z liczby. Wprowadzane dane zabezpiecz pętlą zaporową.
#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;
}
Napisz program wyznaczający sumę n początkowych liczb parzystych. Liczbę n należy pobrać od użytkownika.
#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;
}
Napisz program wyznaczający sumę n początkowych liczb nieparzystych. Liczbę n należy pobrać od użytkownika.
#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;
}
Napisz program wyznaczający sumę n początkowych liczb nieparzystych. Liczbę n należy pobrać od użytkownika.
#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;
}
Napisz program wyznaczający sumę n początkowych liczb podzielnych przez 7. Liczbę n należy pobrać od użytkownika.
#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;
}
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.
#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;
}
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.
#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;
}
Napisz program wyznaczający sumę n początkowych liczb, których suma cyfr wynosi 100. Liczbę n należy pobrać od użytkownika.
Napisz program wyznaczający sumę n początkowych liczb, których suma cyfr jest liczbą parzystą. Liczbę n należy pobrać od użytkownika.
Napisz program wyznaczający sumę n początkowych liczb, których suma cyfr jest liczbą pierwszą. Liczbę n należy pobrać od użytkownika.
Napisz program wyznaczający sumę n początkowych liczb pierwszych.
Napisz program wyznaczający n-tą potęgę liczby x. Liczby n oraz x należy pobrać od użytkownika.
#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;
}
Napisz program wyznaczający wartość n! (n silnia) zadanej liczby n. Liczbę n należy pobrać od użytkownika.
#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;
}
Napisz program wyznaczający NWD (Największy Wspólny Dzielnik) liczb a i b.
#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;
}
Napisz program wyznaczający NWW (Najmniejszą Wspólną Wielokrotną) liczb a i b.
#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;
}
Napisz program wyznaczający pierwiastek całkowity zadanej liczby. (Nie stosuj funkcji sqrt(). Użyj wyłącznie pętli i działań arytmetycznych).
#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;
}
Napisz program stwierdzający, czy zadana liczba n jest pierwsza.
#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;
}
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;
}
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:
do każdej cyfry dodać jej kwadrat,
wynik wydzielić modulo 10.
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.
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;
#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;
}
Co zostanie wydrukowane po wykonaniu pętli:
a = 21;
b = 3;
while (a != b) {
a = a – 1;
b = b + 1;
}
cout << a << endl << b;
#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;
}
Co zostanie wydrukowane po wykonaniu pętli:
a = 1000;
b = 1;
while (a > b) {
a /= 2;
b *= 2;
}
cout << a << endl << b;
#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;
}
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;
Napisz program wczytujący z klawiatury 10 liczb całkowitych. Wczytane liczby należy wydrukować na ekranie.
#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;
}
Napisz program wczytujący z klawiatury 10 liczb całkowitych. Wczytane liczby należy wydrukować na ekranie w odwrotnej kolejności.
#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;
}
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;
}
#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;
}
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.
#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;
}
Napisz program wczytujący z klawiatury n liczb całkowitych. Program ma znaleźć najmniejszą spośród podanych liczb i wydrukować ją na ekranie.
#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;
}
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.
#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;
}
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.
#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;
}
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).
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).
Ile razy w podanym ciągu liczb wystąpił drugi co do wielkości największy element ciągu?
Ile razy w podanym ciągu liczb wystąpił drugi co do wielkości najmniejszy element ciągu?
Napisz program wczytujący ciąg liczb rzeczywistych. Każdą podana liczbę należy podnieść do kwadratu, a następnie wydrukować na ekranie.
#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;
}
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.
#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;
}
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.
#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;
}
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.
#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;
}
Napisz program wczytujący ciąg liczb całkowitych. Wydrukuj na ekranie kolejno wszystkie parzyste spośród podanych liczb.
Napisz program wczytujący ciąg liczb całkowitych. Wydrukuj na ekranie kolejno wszystkie nieparzyste spośród podanych liczb.
Napisz program wczytujący ciąg liczb całkowitych. Wydrukuj na ekranie kolejno wszystkie liczby, które dzielą się przez 3.
Napisz program wczytujący ciąg liczb rzeczywistych. Wydrukuj na ekranie kolejno wszystkie liczby, które należą do przedziału [4;15).
Napisz program wczytujący ciąg liczb całkowitych. Wydrukuj na ekranie kolejno wszystkie liczby, które mają wszystkie cyfry parzyste.
Napisz program wczytujący ciąg liczb całkowitych. Wydrukuj na ekranie kolejno wszystkie liczby, których suma cyfr wynosi 1.
Napisz program wczytujący ciąg liczb całkowitych. Do liczb parzystych należy dodać 100, a następnie wydrukować wszystkie liczby na ekranie.
Napisz program wczytujący ciąg liczb rzeczywistych. Liczby ujemne należy zastąpić zerami. Tak otrzymane liczby drukujemy na ekranie.
Napisz program wczytujący ciąg liczb rzeczywistych. Wydrukuj na ekranie te spośród liczb, których indeks jest liczbą parzystą.
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;
}
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:
od 0 do n-1,
od 7 do n+6,
ciągiem 4, 8, 12, 16, ...,
ciągiem 1, 2, 4, 8, 16, ...,
2,3,4,....,n+1.
Napisz funkcję suma() wyznaczającą sumę dwóch zadanych liczb całkowitych. Napisz program wykorzystujący funkcję suma().
#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;
}
Napisz funkcję roznica() wyznaczającą różnicę dwóch zadanych liczb całkowitych. Działanie funkcji sprawdź pisząc odpowiedni program.
#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;
}
Napisz funkcję iloczyn() wyznaczającą iloczyn dwóch zadanych liczb całkowitych. Działanie funkcji sprawdź pisząc odpowiedni program.
#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;
}
Napisz funkcję iloraz() wyznaczającą iloraz dwóch zadanych liczb całkowitych. Działanie funkcji sprawdź pisząc odpowiedni program.
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.
#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;
}
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.
Napisz funkcję, która wyznacza pierwiastek całkowity z zadanej liczby. Zastosuj algorytm odejmowania kolejnych liczb nieparzystych.
Napisz funkcję, która wyznacza liczbę cyfr zadanej liczby całkowitej.
#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;
}
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.
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.
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.
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.
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.
Napisz funkcję, która wyznacza maksimum z dwóch zadanych liczb całkowitych. Wartością funkcji ma być większa spośród liczb.
Napisz funkcję, która wymienia wartościami dwie zadane liczby całkowite.
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.
#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);
}
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.
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.
Napisz funkcję, która sortuje zadaną tablicę liczb całkowitych rosnąco.
Napisz funkcję, która sortuje zadaną tablicę liczb całkowitych malejąco.
Napisz funkcję, która wyznacza n-tą (n jest liczba naturalną) potęgę zadanej liczby rzeczywistejx. Funkcja ma wykorzystywać iterację.
#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;
}
Napisz funkcję, która wyznacza n-tą (n jest liczba naturalną) potęgę zadanej liczby rzeczywistejx. Funkcja ma wykorzystywać rekurencję.
#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;
}
}
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.
Napisz funkcję, która wyznacza wartość n! (tj. n silnia), gdzie n jest liczba naturalną. Funkcja ma wykorzystywać iterację.
#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;
}
Napisz funkcję, która wyznacza wartość n! (tj. n silnia), gdzie n jest liczba naturalną). Funkcja ma wykorzystywać rekurencję.
#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);
}
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.
#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;
}
Napisz funkcję, która wyznacza sumę dwóch wielomianów.
#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;
}
Napisz funkcję, która wyznacza różnicę dwóch wielomianów.
#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;
}
Napisz funkcję, która wyznacza iloczyn dwóch wielomianów.
Napisz funkcję, która wyznacza pierwszą pochodną wielomianu.
Napisz funkcję, która wyznacza drugą pochodną wielomianu.
Napisz funkcję, która wyznacza n-tą pochodną wielomianu.
#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;
}
Napisz funkcję, która wyznacza iloczyn wielomianu przez liczbą.
Napisz funkcję wizytowka(), która wyprowadza na ekran informacje o programie.
#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;
}
Napisz funkcję, która wczytuje wielomian z klawiatury.
#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;
}
Napisz funkcję, która drukuje na ekranie wielomian.
#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;
}
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;
}
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;
}
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;
}
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;
}
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:
W — wyjście z programu,
C — przeliczamy metry na cale,
S — przeliczamy metry na stopy,
M — przeliczamy metry na mile.
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ę.
//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;
}
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.
//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;
}
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).
//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;
}
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).
//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;
}
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).
//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;
}
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).
//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;
}
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.
//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;
}
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.
//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;
}
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.
//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;
}
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.
//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;
}
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.
#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;
}
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.
#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;
}
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.
#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;
}
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.
#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;
}
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.
#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;
}
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.
#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;
}
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.
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.
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.
#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;
}
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.
#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;
}
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.
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.
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.
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.
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.
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.
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.
#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;
}
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.
#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;
}
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.
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.
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.
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.
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().
#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;
}
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().
#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;
}
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().
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().
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().
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ć:
tablica do posortowania,
liczba elementów tablicy,
wskaźnik do procedury porównującej dwa elementy tablicy.
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;
}
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;
}
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;
}
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ć:
tablica do posortowania,
liczba elementów tablicy,
rozmiar elementu tablicy,
wskaźnik do procedury porównującej dwa elementy tablicy.
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:
dynamiczne utworzenie zmiennej,
wczytanie wartości pól z klawiatury,
wydrukowanie wartości pól na ekranie,
usunięcie zmiennej z pamięci.
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:
dynamiczne utworzenie zmiennej,
wczytanie wartości pól z klawiatury,
wydrukowanie wartości pól na ekranie,
usunięcie zmiennej z pamięci.
Podane trzy zadania rozwiąż dla innych pięciu klas (np. TAdres, TStudent, TTowar itd.)
Zadanie 38.1
Zdefiniuj klasę TData. Klasa powinna posiadać:
konstruktor kopiujący,
konstruktor domniemany,
dwa dodatkowe konstruktory różniące się parametrami,
destruktor.
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.)
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.
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.
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.
Napisz funkcję wzorcową sortującą tablicę danych. Zaimplementowaną funkcję wykorzystaj w przykładowym programie. Potrzebne dane pobierz z klawiatury.
Napisz funkcję wzorcową wyznaczającą sumę elementów w tablicy. Zaimplementowaną funkcję wykorzystaj w przykładowym programie. Potrzebne dane pobierz z klawiatury.