Niestety, nikt nie powie Ci czym jest FluxBB - musisz go poznać sam!
Nie jesteś zalogowany na forum.
#include <iostream>
#include <math.h>
#include <string>
using namespace std;
int silnia(int n);
void rownanie(double a, double b, double c);
int fibo(int i);
void podwojenie(string tekst);
int szukaj(string tekst, char szukana);
string odwroc(string tekst);
void sortuj(double tab[], int rozmiar);
int main()
{
char znak,w;
int liczba,wynik,numer;
double a, b, c;
string lan,napis;
double *tablica;
cout << "Co chcesz zrobic?\n";
cout << "s - oblicz silnie\n";
cout << "r - oblicz pierwiastki rownania kwadratowego\n";
cout << "f - oblicz liczbe Fibonacciego o zadanym numerze\n";
cout << "l - zwroc napis, w ktorym wszystkie litery sa podwojone\n";
cout << "w - podaj ilosc wystapien podanego znaku w podanym tekscie\n";
cout << "o - odwroc ciag znakow podanego napisu\n";
cout << "p - posortuj tablice liczb typu double\n";
cin >> znak;
switch ( znak )
{
case 's':
cout << "Podaj liczbe: ";
cin >> liczba;
wynik=silnia(liczba);
cout << "Silnia liczby " << liczba << " wynosi " << wynik << "\n";
break;case 'r':
cout << "Podaj a: ";
cin >> a;
cout << "Podaj b: ";
cin >> b;
cout << "Podaj c: ";
cin >> c;
rownanie(a, b, c);
break;case 'f':
cout << "Podaj numer ciagu Fibonacciego: ";
cin >> numer;
if(numer<0) cout << "Numer musi byc liczba nieujemna!";
else {wynik = fibo(numer);
cout << "Liczba Fibonacciego dla numeru " << numer << " wynosi: " << wynik << "\n";
}
break;
case 'l':
cout << "Podaj napis: ";
cin.sync();
getline(cin,lan);
podwojenie(lan);
break;
case 'w':
cout << "Podaj tekst: ";
cin.sync();
getline(cin,lan);
cout << "Podaj szukany znak: ";
cin.sync();
cin >> w;
wynik = szukaj(lan,w);
cout << "Znak '" << w << "' w podanym napisie wystapil " << wynik << " razy\n";
break;
case 'o':
cout << "Podaj tekst: ";
cin.sync();
getline(cin,lan);
napis = odwroc(lan);
cout << napis;
break;
case 'p':
cout << "Podaj ilosc elementow tablicy: ";
cin >> liczba;
tablica=new double[liczba];
for(int i=0;i<liczba;i++)
{
cout << "Podaj " << i+1 << " element tablicy: ";
cin >> tablica(i];
}
sortuj(tablica,liczba);
break;
default:
cout << "Podales niepoprawny znak!";
break;
}}
int silnia(int n)
{
int x;
if (n <= 1) return 1;
else
{
x = n*silnia(n - 1);
return x;
}
}
void rownanie(double a, double b, double c)
{
double delta,x1,x2;
delta = b*b - 4 * a*c;
if (delta < 0) cout << "Rownanie nie ma pierwiastkow\n";
else if (delta == 0)
{
x1 = (-b) / (2 * a);
cout << "Rownanie ma jedno rozwiazanie i wynosi ono: " << x1 << "\n";
}
else if (delta > 0)
{
x1 = (-b - pow(delta, 1 / 2)) / 2 * a;
x2 = (-b + pow(delta, 1 / 2)) / 2 * a;
cout << "Rownanie ma dwa rozwiazania i wynosza one: " << x1 << " oraz " << x2 << "\n";
}
}
int fibo(int i)
{
int wynik;
if (i == 0) return 0;
else if (i == 1) return 1;
else if (i > 1) wynik = fibo(i - 1) + fibo(i - 2);
return wynik;}
void podwojenie(string tekst)
{
string pomoc;
for(int i=0; i<tekst.length(); i++)
{
if((tekst.at(i)>='A' && tekst.at(i)<='Z') || (tekst.at(i)>='a' && tekst.at(i)<='z'))
pomoc=pomoc+tekst.at(i)+tekst.at(i);
else pomoc=pomoc+tekst.at(i); //zgodnie z trescia zadania podwojane sa jedynie litery, inne znaki sa tylko przepisane pojedynczo.
}
cout << pomoc;
}
int szukaj(string tekst, char szukana)
{
int wynik=0;
for(int i=0; i<tekst.length(); i++)
{
if(tekst.at(i)==szukana) wynik++;
}
return wynik;
}
string odwroc(string tekst)
{
string wynik;
for(int i=tekst.length()-1; i>=0; i--)
{
wynik=wynik+tekst.at(i);
}
return wynik;
}
void sortuj(double tab[],int rozmiar)
{
for(int j = 0; j < rozmiar - 1; j++)
for(int i = 0; i < rozmiar - 1; i++)
if(tab(i] > tab[i + 1]) swap(tab(i], tab[i + 1]);
cout << "Oto posortowana tablica: ";
for(int i=0;i<rozmiar;i++)
cout << tab(i] <<", ";
}