172 lines
4.2 KiB
C++
Raw Permalink Normal View History

2025-11-06 11:57:42 +01:00
/*
Autor: Mateusz Słodkowicz
Grupa: D3
Numer Indeksu: 167675
*/
#include <cmath>
#include <cstddef>
#include <cstdlib>
#include <iostream>
#include <string>
using std::size_t;
using std::string;
void wczytajDane(int tab[], size_t roz);
void losujDane(int tab[], size_t roz);
void wypiszDane(int tab[], size_t roz);
int minimum(int tab[], size_t roz, unsigned int &ile);
double srednia(int tab[], size_t roz);
double odchylenie(int tab[], size_t roz);
int main()
{
// Zadanie 1
{
const size_t roz = 9;
int A[roz] = {0};
std::cout << "Zadanie 1\n";
wczytajDane(A, roz);
std::cout << "Elementy w tablicy: ";
wypiszDane(A, roz);
unsigned int ile;
int min = minimum(A, roz, ile);
std::cout << "Najmniejszy element to " << min << " i powtarza sie " << ile
<< ((ile == 1) ? " raz\n" : " razy\n");
}
// Zadanie 2
{
srand(time(NULL));
const size_t roz = 15;
int X[roz] = {0};
losujDane(X, roz);
std::cout << "\nZadanie 2\n"
<< "Elementy w tablicy: ";
wypiszDane(X, roz);
std::cout << "Srednia elementow to: " << srednia(X, roz)
<< "\nOdchylenie standardowe od sredniej to: " << odchylenie(X, roz) << std::endl;
}
// Zadanie 3
{
const string nazwy[] = {"Lagodny", "Ostry", "Kwasny", "Slodki", "Pikantny"};
const size_t roz = sizeof(nazwy) / sizeof(string);
int sprzedane[roz] = {0};
std::cout << "\nZadanie 3\n";
for (size_t i = 0; i < roz; ++i)
{
do
{
std::cout << "Wprowadz ilosc sprzedanych pojemnikow dla \"Sos " << nazwy[i] << "\": ";
std::cin >> sprzedane[i];
if (sprzedane[i] < 0)
std::cout << "Blad! Wprowadz liczbe nieujemna\n";
} while (sprzedane[i] < 0);
}
std::cout << "\nSprzedane pojemniki\n";
int lacznie = 0;
for (size_t i = 0; i < roz; ++i)
{
lacznie += sprzedane[i];
std::cout << "\"Sos " << nazwy[i] << "\": " << sprzedane[i] << "\n";
}
std::cout << "Lacznie: " << lacznie;
int min = sprzedane[0];
int max = sprzedane[0];
for (size_t i = 1; i < roz; ++i)
{
if (sprzedane[i] > max)
{
max = sprzedane[i];
}
if (sprzedane[i] < min)
{
min = sprzedane[i];
}
}
std::cout << "\nNajwiecej sprzedanych: ";
for (size_t i = 0; i < roz; ++i)
{
if (sprzedane[i] == max)
std::cout << "\"Sos " << nazwy[i] << "\" ";
}
std::cout << "w ilosci " << max << "\nNajmniej sprzedanych: ";
for (size_t i = 0; i < roz; ++i)
{
if (sprzedane[i] == min)
std::cout << "\"Sos " << nazwy[i] << "\" ";
}
std::cout << "w ilosci " << min << std::endl;
}
return 0;
}
void wczytajDane(int tab[], size_t roz)
{
for (size_t i = 0; i < roz; ++i)
{
std::cout << "Podaj element tablicy o indeksie " << i << ": ";
std::cin >> tab[i];
}
}
void losujDane(int tab[], size_t roz)
{
for (size_t i = 0; i < roz; ++i)
{
tab[i] = (rand() % 26) + 5;
}
}
void wypiszDane(int tab[], size_t roz)
{
for (size_t i = 0; i < roz; ++i)
{
std::cout << tab[i] << ((i != roz - 1) ? ", " : "\n");
}
}
int minimum(int tab[], size_t roz, unsigned int &ile)
{
ile = 1;
int min = tab[0];
for (size_t i = 1; i < roz; ++i)
{
if (tab[i] < min)
{
ile = 1;
min = tab[i];
}
else if (tab[i] == min)
++ile;
}
return min;
}
double srednia(int tab[], size_t roz)
{
int suma = 0;
for (size_t i = 0; i < roz; ++i)
{
suma += tab[i];
}
return double(suma) / double(roz);
}
double odchylenie(int tab[], size_t roz)
{
double sr = srednia(tab, roz);
double sigma = 0, tmp = 0;
for (size_t i = 0; i < roz; ++i)
{
tmp = double(tab[i]) - sr;
sigma += tmp * tmp;
}
return std::sqrt(sigma / roz);
}