Podstawy programowania w C++ - kilka programów z rozwiązaniami na tablice statyczne.
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 UMOŻLIWIAJĄCY WCZYTANIE A NASTĘPNIE WYŚWIETLANIE KILKU (NP. 10)
LICZB RZECZYWISTYCH PRZECHOWYWANYCH W TABLICY.
PODCZAS WCZYTYWANIA I PRZEGLĄDANIA NALEŻY WYŚWIETLAĆ TEKSTY POMOCNICZE
INFORMUJĄCE O NUMERZE WPROWADZANEGO/WYŚWIETLANEGO ELEMENTU NP.
Tab[1] = 12.0
Tab[2] = -1.0
Tab[3] = ....... */
const int n = 10;
float tab[n];
cout << "Wprowadz elementy tablicy " << n << "-elementowej:" << endl;
for (int i = 0; i < n; i++)
{
cout << "tab[" << i << "] = ";
cin >> tab[i];
}
cout << endl << "Teraz wyswietlamy wprowadzone elementy tablicy: " << endl;
for (int i = 0; i < n; i++)
{
cout << "tab[" << i << "] = " << tab[i] << endl;
}
char znak;
cin >> znak;
}
ZADANIE 2
#include
using namespace std;
int main()
{
/* ROZBUDOWANIE PROGRAMU Z ZADANIA 1 (WCZYTYWANIE) O ZESTAW OPERACJI REALIZUJĄCYCH PROSTE OBLICZENIA STATYSTYCZNE DLA DANYCH ZAPISANYCH W TABLICY:
- SUMA ELEMENTÓW
- WARTOŚĆ ŚREDNIA
- WARTOŚCI EKSTREMALNE (MINIMUM, MAKSIMUM)
- ZLICZANIE ELEMENTÓW (NP. UJEMNYCH, ZEROWYCH I DODATNICH) */
const int n = 10;
float tab[n];
float suma = 0;
float min, max;
int ujemne = 0, dodatnie = 0, zerowe = 0;
cout << "Wprowadz elementy tablicy " << n << "-elementowej:" << endl;
for (int i = 0; i < n; i++)
{
cout << "tab[" << i << "] = ";
cin >> tab[i];
}
min = tab[0];
max = tab[0];
for (int i = 0; i < n; i++)
{
suma += tab[i];
if (tab[i] < min)
{
min = tab[i];
}
if (tab[i] > max)
{
max = tab[i];
}
if (tab[i] > 0)
{
dodatnie++;
}
if (tab[i] < 0)
{
ujemne++;
}
if (tab[i] == 0)
{
zerowe++;
}
}
cout << endl << "Suma elementow tablicy wynosi: " << suma << endl;
cout << "Srednia elementow tablicy wynosi: " << (suma / n) << endl;
cout << endl << "Najmniejszy element tablicy to: " << min << endl;
cout << "Najwiekszy element tablicy to: " << max << endl;
cout << endl << "W tablicy jest " << dodatnie << " elementow dodatnich." << endl;
cout << "W tablicy jest " << ujemne << " elementow ujemnych." << endl;
cout << "W tablicy jest " << zerowe << " elementow zerowych." << endl;
char znak;
cin >> znak;
}
ZADANIE 3
#include
using namespace std;
int main()
{
/* PROGRAM DEFINIUJĄCY N-ELEMENTOWĄ TABLICĘ LICZB CAŁKOWITYCH,
A NATĘPNIE INICJUJĄCY JEJ ZAWARTOŚĆ LOSOWYMI LICZBAMI Z PRZEDZIAŁU OD –30 DO 50. */
const int n = 10;
int tab[n];
cout << "Wylosowana tablica wynosi: " << endl;
for (int i = 0; i < n; i++)
{
tab[i] = (rand() % 80) - 30;
cout << "tab[" << i << "]= " << tab[i] << endl;
}
char znak;
cin >> znak;
}
ZADANIE 4
#include
using namespace std;
int main()
{
/* ALGORYTM, KTÓRY PRZESUNIE ZAWARTOŚĆ N-ELEMENTOWEJ TABLICY CYKLICZNIE O JEDNĄ POZYCJĘ „W GÓRĘ". (TZN. PIERWSZY ELEMENT NA MIEJSCE DRUGIEGO, DRUGI NA TRZECI, ..., OSTATNI NA PIERWSZY). */
const int n = 10;
char tab[n];
char tab1[n];
cout << "Wprowadz dane typu char do " << n << "-elementowej tablicy: " << endl;
for (int i = 0; i < n; i++)
{
cout << "tab[" << i << "]= ";
cin >> tab[i];
}
for (int i = 0; i < n-1; i++)
{
tab1[i+1] = tab[i];
tab1[0] = tab[n-1];
}
cout << endl << "Tablica przesunieta o jedna pozycje wyglada nastepujaco: " << endl;
for (int i = 0; i < n; i++)
{
cout << "tab przesunieta[" << i << "]= " << tab1[i] << endl;
}
char znak;
cin >> znak;
}
ZADANIE 5
#include
using namespace std;
int main()
{
/* PROGRAM, KTÓRY WCZYTUJE DANE Z KLAWIATURY DO 10-CIO ELEMENTOWEJ
TABLICY LICZB DOUBLE, A NASTĘPNIE SPRAWDZA:
- CZY TE LICZBY SĄ UPORZĄDKOWANE ROSNĄCO LUB MALEJĄCO,
- CZY ELEMENTY TABLICY MAJĄ SYMETRYCZNĄ ZAWARTOŚĆ
(TZN. PIERWSZY ELEMENT RÓWNY OSTATNIEMU, DRUGI RÓWNY PRZEDOSTATNIEMU, ITD. )
- CZY W TABLICY WYSTĘPUJE CHOCIAŻ JEDNO POWTÓRZENIE WARTOŚCI. */
const int n = 10;
double tab[n];
bool rosnie = false, maleje = false, symetryczna = false, powtorzenie = false;
cout << "Podaj elementy tablicy: " << endl;
for (int i = 0; i < n; i++)
{
cout << "tab[" << i << "]= ";
cin >> tab[i];
}
cout << endl;
for (int i = 0; i < n-1; i++)
{
if (tab[i] < tab[i+1])
{
rosnie = true;
}
else
{
rosnie = false;
break;
}
}
if (rosnie == true)
{
cout << "Podales tablice w ktorej elementy sa uporzadkowane rosnaco." << endl;
}
for (int i = 0; i < n-1; i++)
{
if (tab[i] > tab[i+1])
{
maleje = true;
}
else
{
maleje = false;
break;
}
}
if (maleje == true)
{
cout << "Podales tablice w ktorej elementy sa uporzadkowane malejaco." << endl;
}
for (int i = 0; i < n; i++)
{
if (tab[i] == tab[n-1-i])
{
symetryczna = true;
}
else
{
symetryczna = false;
break;
}
}
if (symetryczna == true)
{
cout << "Twoja tablica jest symetryczna." << endl;
}
for (int i = 0; i < n; i++)
{
for (int j = 1; j < n-i; j++)
{
if (tab[i] != tab[n-j])
{
powtorzenie = false;
}
else
{
powtorzenie = true;
break;
}
}
if (powtorzenie == true)
{
break;
}
}
if (powtorzenie == true)
{
cout << "We wprowadzonej tablicy powtarzaja sie elementy.";
}
if ((rosnie == false) && (symetryczna == false) && (powtorzenie == false) && (maleje == false))
{
cout << "Tablica podana przez Ciebie nie odznacza sie niczym szczegolnym.";
}
char znak;
cin >> znak;
}