Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Zadatak 1:
- //TP 2018/2019: Tutorijal 4, Zadatak 1
- #include <iostream>
- #include <cstdlib>
- int Cifre(long long int broj, int &cMin, int &cMax) {
- cMin = std::abs(broj % 10);
- cMax = std::abs(broj % 10);
- broj /= 10;
- int brojac = 1;
- while (broj) {
- int c = std::abs(broj % 10);
- if (c > cMax) cMax = c;
- if (c < cMin) cMin = c;
- broj /= 10;
- brojac++;
- }
- return brojac;
- }
- int main () {
- long long int broj;
- int cMin, cMax;
- std::cout << "Unesite broj: ";
- std::cin >> broj;
- int brojCifara = Cifre(broj, cMin, cMax);
- std::cout << "Broj " << broj << " ima " << brojCifara << " cifara, najveca je "
- << cMax << " a najmanja " << cMin << "." << std::endl;
- return 0;
- }
- ---------------------------------------------------------------------------------------------------------------------------------------
- Zadatak 2:
- //TP 2018/2019: Tutorijal 4, Zadatak 2
- #include <iostream>
- #include <string>
- void IzvrniString(std::string &s) {
- int i = 0, j = s.length() - 1;
- while (i < j) {
- char tmp = s.at(i);
- s.at(i) = s.at(j);
- s.at(j) = tmp;
- i++; j--;
- }
- }
- int main () {
- std::string s;
- std::cout << "Unesi string: ";
- std::getline(std::cin, s);
- IzvrniString(s);
- std::cout << "Izvrnuti string je: " << s << std::endl;
- return 0;
- }
- ---------------------------------------------------------------------------------------------------------------------------------------
- Zadatak 3:
- //TP 2018/2019: Tutorijal 4, Zadatak 3
- #include <iostream>
- #include <vector>
- #include <string>
- using Stringovi = std::vector<std::string>;
- void PretvoriUMala(std::string &str) {
- for (char &s : str)
- if (s >= 'A' && s <= 'Z')
- s += 'a' - 'A';
- }
- void IzdvojiKrajnjeRijeci(Stringovi &niz, std::string &prva, std::string &zadnja) {
- if (!niz.size()) {
- prva = "";
- zadnja = "";
- return;
- }
- prva = "z";
- zadnja = "a";
- for (int i = 0; i < niz.size(); i++) {
- std::string tmp = niz.at(i);
- std::string tmpMin = prva;
- std::string tmpMax = zadnja;
- PretvoriUMala(tmp);
- PretvoriUMala(tmpMin);
- PretvoriUMala(tmpMax);
- if (tmp < tmpMin)
- prva = niz.at(i);
- if (tmp > tmpMax)
- zadnja = niz.at(i);
- }
- }
- void ZadrziDuplikate(Stringovi &stringovi) {
- std::vector<int> brojaci(stringovi.size());
- for (int i = 0; i < brojaci.size(); i++)
- for (int j = i + 1; j < brojaci.size(); j++)
- if (stringovi.at(i) == stringovi.at(j))
- brojaci.at(i)++;
- for (int i = 0; i < stringovi.size(); i++)
- if (brojaci.at(i) != 1) {
- for (int j = i; j < stringovi.size() - 1; j++) {
- stringovi.at(j) = stringovi.at(j + 1);
- brojaci.at(j) = brojaci.at(j + 1);
- }
- i--;
- stringovi.resize(stringovi.size() - 1);
- }
- }
- int main () {
- int brojRijeci;
- std::cout << "Koliko zelite unijeti rijeci: ";
- std::cin >> brojRijeci;
- std::cin.ignore(10000, '\n');
- Stringovi nizRijeci(brojRijeci);
- std::cout << "Unesite rijeci:" << std::endl;
- for (int i = 0; i < brojRijeci; i++)
- std::cin >> nizRijeci.at(i);
- std::string prva, posljednja;
- IzdvojiKrajnjeRijeci(nizRijeci, prva, posljednja);
- std::cout << "Prva rijec po abecednom poretku je: " << prva << std::endl;
- std::cout << "Posljednja rijec po abecednom poretku je: " << posljednja << std::endl;
- ZadrziDuplikate(nizRijeci);
- std::cout << "Rijeci koje se ponavljaju su: ";
- for(std::string &s : nizRijeci)
- std::cout << s << " ";
- return 0;
- }
- ---------------------------------------------------------------------------------------------------------------------------------------
- Zadatak 4:
- //TP 2018/2019: Tutorijal 4, Zadatak 4
- #include <iostream>
- #include <cmath>
- #include <string>
- template <typename Broj>
- void UnosBroja(const std::string &poruka, const std::string &error, Broj &broj) {
- for (;;) {
- Broj tmp;
- std::cout << poruka << std::endl;
- std::cin >> tmp;
- if (!std::cin || std::cin.peek() != '\n') {
- std::cout << error << std::endl;
- std::cin.clear();
- std::cin.ignore(10000, '\n');
- }
- else {
- broj = tmp;
- return;
- }
- }
- }
- int main () {
- double baza;
- int eksponent;
- UnosBroja("Unesite bazu: ", "Neispravan unos, pokusajte ponovo...", baza);
- UnosBroja("Unesite cjelobrojni eksponent: ", "Neispravan unos, pokusajte ponovo...", eksponent);
- double tmp = baza;
- for (int i = 1; i < std::abs(eksponent); i++)
- baza *= tmp;
- if (eksponent > 0)
- std::cout << tmp << " na " << eksponent << " iznosi " << baza;
- else if (eksponent == 0)
- std::cout << tmp << " na " << eksponent << " iznosi " << 1;
- else
- std::cout << tmp << " na " << eksponent << " iznosi " << 1/baza;
- return 0;
- }
- ---------------------------------------------------------------------------------------------------------------------------------------
- Zadatak 5:
- //TP 2018/2019: Tutorijal 4, Zadatak 5
- #include <iostream>
- #include <vector>
- #include <string>
- template <typename Kolekcija>
- Kolekcija Presjek(Kolekcija &k1, Kolekcija &k2) {
- Kolekcija presjek;
- for (int i = 0; i < k1.size(); i++)
- for (int j = 0; j < k2.size(); j++) {
- bool nalaziSe = false;
- for (int k = 0; k < presjek.size(); k++)
- if (k1.at(i) == presjek.at(k)) {
- nalaziSe = true;
- break;
- }
- if (k2.at(j) == k1.at(i) && !nalaziSe)
- presjek.push_back(k1.at(i));
- }
- return presjek;
- }
- int main () {
- std::cout << "Test za realne brojeve..." << std::endl;
- int vel;
- std::cout << "Unesite broj elemenata prvog vektora: ";
- std::cin >> vel;
- std::vector<double> v1(vel);
- std::cout << "Unesite elemente prvog vektora: ";
- for (int i = 0; i < vel; i++)
- std::cin >> v1.at(i);
- std::cout << "Unesite broj elemenata drugog vektora: ";
- std::cin >> vel;
- std::vector<double> v2(vel);
- std::cout << "Unesite elemente drugog vektora: ";
- for (int i = 0; i < vel; i++)
- std::cin >> v2.at(i);
- std::vector<double> presjek = Presjek(v1, v2);
- std::cout << "Zajednicki elementi su: ";
- for (double &x : presjek)
- std::cout << x << " ";
- std::cout << std::endl << "Test za stringove..." << std::endl;
- std::cout << "Unesite broj elemenata prvog vektora: ";
- std::cin >> vel;
- std::vector<std::string> s1(vel);
- std::cout << "Unesite elemente prvog vektora (ENTER nakon svakog unosa): ";
- std::cin >> std::ws;
- for (int i = 0; i < vel; i++)
- std::getline(std::cin, s1.at(i));
- std::cout << "Unesite broj elemenata drugog vektora: ";
- std::cin >> vel;
- std::vector<std::string> s2(vel);
- std::cout << "Unesite elemente drugog vektora (ENTER nakon svakog unosa): ";
- std::cin >> std::ws;
- for (int i = 0; i < vel; i++)
- std::getline(std::cin, s2.at(i));
- auto s3 = Presjek(s1, s2);
- std::cout << "Zajednicki elementi su:" << std::endl;
- for (std::string &s : s3)
- std::cout << s << std::endl;
- return 0;
- }
- ---------------------------------------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement