Neki zadaci iz programiranja, moja rjesenja u c++ TEMA
Moderator: Krokodil Behko
- ElTriconi
- Đulaga
- Posts: 36819
- Joined: 24 Mar 2019, 14:13
- Mood:
- Has thanked: 23101 times
- Been thanked: 4498 times
- Status: Offline
Neki zadaci iz programiranja, moja rjesenja u c++ TEMA
Ovdje cu postavljati neke zadatke iz programiranja i moja rjesenja. Nekad sam skino ide dcoder i svidilo mi se sto ima custih zadataka, kad nedje putujem ili na kafi kad sam nesto i rjesavam.
Svaki zadatak se moze odraditi na n nacina, moj nacin nije jedini ispravan i svako rjesenje ima dosta nedostataka jer u dcoderu unos prilikom testiranja je jako ogranicen. U normalnim uslovima ova rjesenja ne bi radila kad bi se samo kopirao kod, potrebno je dosta dorade i filtracije samih unosa. Dcoder daje unos tipa broj, znak a prosjecan korisnik ce ako moze glavom lupit po tastaturi da nesto unese i ako se to detaljno ne filtrira program ce davati neocekivane rezultate ako ista i da.
Nacin rjesavanja zadataka, kako ja to radim. Prvo procitam zadatak. Onda u glavi skontam neki algoritam, naravno ako je nesto kompleksnije sto trazi kretanje po nizu onda je potrebna olovka. Kad se nesto i skonta onda razmislim koji cu kontejner koristiti, volim vektor i string jer su dosta fleksibilni, imaju dosta funkcija za unos i brisanje, ne moram brinuti o pokazivacima i ne moram praviti sam svoje tipove i praviti funkcije da bi nesto funkcionisalo. Onda krenem kucati sami kod, to radim u cetri koraka:
1. Unos informacija
2. Spremanje informacija u format koji odgovara funkcijama ili dijelu koda za obradu
3. Obrada informacija
4. Ispis informacija
Dok pisem kod nakon svake funkcije ili koraka radim provjeru, ta provjera oduzme najvise vremena jer nekad program nece da se kompajlira, sintaksa me zeza jer kucam na mobitelu. Onda ganjam rubne slucajeve koji su po mom misljenju moguci u problemu, prepravke,.ispravke i n kompajliranja i unosa. Tek onda kod ide na analizu, tj. pustim da sam progam daje ulaz i gledam koliko je slucajeva proslo. Ne prodje jedan, vracaj se na kod, citaj sve, mentalno odradjivaj svaku liniju koda, olovka papir, pisi, kucaj...
I na kraju kad sve radi, drago ti
Svaki zadatak se moze odraditi na n nacina, moj nacin nije jedini ispravan i svako rjesenje ima dosta nedostataka jer u dcoderu unos prilikom testiranja je jako ogranicen. U normalnim uslovima ova rjesenja ne bi radila kad bi se samo kopirao kod, potrebno je dosta dorade i filtracije samih unosa. Dcoder daje unos tipa broj, znak a prosjecan korisnik ce ako moze glavom lupit po tastaturi da nesto unese i ako se to detaljno ne filtrira program ce davati neocekivane rezultate ako ista i da.
Nacin rjesavanja zadataka, kako ja to radim. Prvo procitam zadatak. Onda u glavi skontam neki algoritam, naravno ako je nesto kompleksnije sto trazi kretanje po nizu onda je potrebna olovka. Kad se nesto i skonta onda razmislim koji cu kontejner koristiti, volim vektor i string jer su dosta fleksibilni, imaju dosta funkcija za unos i brisanje, ne moram brinuti o pokazivacima i ne moram praviti sam svoje tipove i praviti funkcije da bi nesto funkcionisalo. Onda krenem kucati sami kod, to radim u cetri koraka:
1. Unos informacija
2. Spremanje informacija u format koji odgovara funkcijama ili dijelu koda za obradu
3. Obrada informacija
4. Ispis informacija
Dok pisem kod nakon svake funkcije ili koraka radim provjeru, ta provjera oduzme najvise vremena jer nekad program nece da se kompajlira, sintaksa me zeza jer kucam na mobitelu. Onda ganjam rubne slucajeve koji su po mom misljenju moguci u problemu, prepravke,.ispravke i n kompajliranja i unosa. Tek onda kod ide na analizu, tj. pustim da sam progam daje ulaz i gledam koliko je slucajeva proslo. Ne prodje jedan, vracaj se na kod, citaj sve, mentalno odradjivaj svaku liniju koda, olovka papir, pisi, kucaj...
I na kraju kad sve radi, drago ti
Sehara mi puna blaga
Al ne haje moja draga
Al ne haje moja draga
- ElTriconi
- Đulaga
- Posts: 36819
- Joined: 24 Mar 2019, 14:13
- Mood:
- Has thanked: 23101 times
- Been thanked: 4498 times
- Status: Offline
Re: Neki zadaci iz programiranja, moja rjesenja u c++ TEMA
Malo je zeznuto jer je potrebno na neki nacin izvrsiti promjenu unosa uz dosta slucajeva. Cilj je svaki broj gledati sam za sebe, odrediti velicinu broja. Potrebno je naci nacin kako svaki pojedinacni broj prebaciti u rijec. Ja sam za to koristio vektor, mapu i string.Title: Word Numbers Ultimate!
Problem: Since his last hiccup, Wade has now decided to move up the ladder and decided to convert a number to its actual word form denoting positions using 'thousand', 'million', 'billion', etc. Again, he is unable to convert a number in its word form. Help Wade to convert a number to its word form. For example, the word form of 198 would 'one hundred ninety eight'.
Input: A single integer N
Output: Print the word form of the number with all letters in lowercase English alphabets.
Example:
200 : two hundred
4192384: four million one hundred ninety two thousand three hundred eighty four
Constraints: 0 ≤ N ≤ 10^10
Sample Input: 567434
Sample Output:
five hundred sixty seven thousand four hundred thirty four
Link: https://code.dcoder.tech/challenges/alg ... s-ultimate
1. Unosim broj, tip je unsigned long int zbog malo vecih brojeva definisanih u zadatku
2. Broj saljem u vektor tako da svaka cifra postaje element vektora
3. U funkciji sam definisao mapu i inicijalizovo na vrijednosti koje su unikatne za pojedine brojeve koji su potrebni u zadatku. Svaki broj uz neke uslove prolazi kroz petlju i trazi u mapi odgovarajuci element i taj element koristi za ispis rezultata
4. Ispis rezultata radim u istoj funkciji, nisam odradio nista konkretno nego samo rokaj zilha.
Prolazi svaki od cetri slucajaCode: Select all
#include <iostream> #include <vector> #include <string> #include <map> //Compiler version g++ 6.3.0 std::vector<int> broj_u_niz(unsigned long int broj){ std::vector<int> vektor, pravi; int unos; while(broj){ vektor.push_back(broj % 10); broj /= 10; } for(int i = vektor.size() - 1; i >= 0; i--){ pravi.push_back(vektor[i]); } return pravi; } void vektor_u_broj(std::vector<int> vektor){ int broj(0); bool test(false); std::map<int, std::string> prvi{ {1, "one"}, {2, "two"}, {3, "three"}, {4, "four"}, {5, "five"}, {6, "six"}, {7, "seven"}, {8, "eight"}, {9, "nine"}, {10, "ten"}, {11, "eleven"}, {12, "twelve"}, {13, "thirteen"}, {14, "fourteen"}, {15, "fifteen"}, {16, "sixteen"}, {17, "seventeen"}, {18, "eighteen"}, {19, "nineteen"}, {20, "twenty"}, {30, "thirty"}, {40, "forty"}, {50, "fifty"}, {60, "sixty"}, {70, "seventy"}, {80, "eighty"}, {90, "ninety"}, {100, "hundred"}}, drugi{ {1, "thousand"}, {2, "million"}, {3, "billion"}}; for(int i = 0; i < vektor.size(); i++){ if((vektor.size() - 1 - i) % 3){ if((vektor.size() - 1 - i) % 3 == 2 && vektor[i]){ test = true; std::cout << prvi.find(vektor[i]) -> second << " " << prvi.find(100) -> second << " "; } if((vektor.size() - 1 - i) % 3 == 1 && vektor[i]){ test = true; if(vektor[i] == 1) broj = vektor[i]; else{ std::cout << prvi.find(vektor[i] * 10) -> second << " "; } } } else{ if(broj){ std::cout << prvi.find(broj * 10 + vektor[i]) -> second << " "; broj = 0; } else if(vektor[i]){ test = true; //std::cout << "0\n"; std::cout << prvi.find(vektor[i]) -> second << " "; } if((vektor.size() - 1 - i) / 3 > 0 && test) std::cout << drugi.find((vektor.size() - 1 - i) / 3) -> second << " "; test = false; //broj = 0; } } //std::cout << prvi.find(vektor[0])->second; } int main() { unsigned long int broj; std::vector<int> vektor; std::cin >> broj; if(broj){ vektor = broj_u_niz(broj); vektor_u_broj(vektor); } else std::cout << "zero"; //for(auto x : vektor) std::cout << x << std::endl; }
Sehara mi puna blaga
Al ne haje moja draga
Al ne haje moja draga
- ElTriconi
- Đulaga
- Posts: 36819
- Joined: 24 Mar 2019, 14:13
- Mood:
- Has thanked: 23101 times
- Been thanked: 4498 times
- Status: Offline
Re: Neki zadaci iz programiranja, moja rjesenja u c++ TEMA
Malo drukciji zadatak, jednostavniji je jer se ne mora gledati pozicija da bi se desetice, stotice i to pravilno odradilo.Title: Number to Word
Problem: Wade has now yet again decided to practice conversion between numbers and words. This time, he needs to convert a number in its word form to its numerical form. For example, "four hundred sixty seven" gets converted to 467.
Please help Wade in accomplishing his task. The word form will follow US System (billions, millions, etc.) not Indian System(crores or lakhs).
NOTE : The words in the string maybe in capitalized form or in lowercase or mixed.
Input: A string representing the word form of a number.
Output: Print the numerical form of the number represented by the string.
Constraints: 3 ≤ string.length ≤ 100
The represented number will be less than one hundred billion
Sample Input: Four thousand two hundred sixty nine
Sample Output:
4269
Link: https://code.dcoder.tech/challenges/alg ... er-to-word
1. Unos radim pomocu getline, cin >> na stringu unosi podatak do prvog praznog mjesta ili znaka zavrsetka reda.
2. String saljem u funkciju da svaku rijec ubaci u vektor
3. U funkciji obrade idem pojedinacno kroz svaki element niza i uporedjujem elemente sa elementima mape uz neke uslove i nakon petlje dobijem broj.
4. Ispisujem broj, broj je long long int zbog uslova zadatka.
Prolaze 4 od 4 slucajaCode: Select all
#include <iostream> #include <string> #include <vector> #include <map> //Compiler version g++ 6.3.0 void pozvano(){ std::cout << std::endl << "Pozvano" << std::endl; } std::vector<std::string> unos_u_rijeci(std::string recenica){ std::vector<std::string> rijeci; std::string rijec; int pozicija; rijec.clear(); rijeci.clear(); for(int i = 0; i < recenica.size() + 1; i++){ if(recenica[i] != ' ' || recenica[i] != '\n' || recenica[i] != '\0'){ for(int j = i; ; j++){ if(recenica[j] == ' ' || recenica[j] == '\n' || recenica[j] == '\0'){ i = j; //pozvano(); break; } rijec.push_back(recenica[j]); } if(rijec.size()) rijeci.push_back(rijec); rijec.clear(); } if(recenica[i] == '\n' || recenica[i] == '\0') break; } return rijeci; } void velika_mala(std::vector<std::string> &rijeci){ for(int i = 0; i < rijeci.size(); i++){ for(int j = 0; j < rijeci[i].size(); j++){ if(rijeci[i][j] >= 'A' && rijeci[i][j] <= 'Z') rijeci[i][j] += 'a' - 'A'; } } } void recenica_u_brojeve(std::vector<std::string> vektor){ std::string rijec; long long int suma(0), temp(0); std::map<std::string, int> mapa{ {"one", 1}, {"two", 2}, {"three", 3}, {"four", 4}, {"five", 5}, {"six", 6}, {"seven", 7}, {"eight", 8}, {"nine", 9}, {"ten", 10}, {"eleven", 11}, {"twelve", 12}, {"thirteen", 13}, {"fourteen", 14}, {"fifteen", 15}, {"sixteen", 16}, {"seventeen", 17}, {"eighteen", 18}, {"nineteen", 19}, {"twenty", 20}, {"thirty", 30}, {"forty", 40}, {"fifty", 50}, {"sixty", 60}, {"seventy", 70}, {"eighty", 80}, {"ninety", 90}, {"hundred", 100}, {"thousand", 1000}, {"million", 1000000}, {"billion", 1000000000}, {"zero", 0}}; for(int i = 0; i < vektor.size(); i++){ if(vektor[i] != "hundred" && vektor[i] != "thousand" && vektor[i] != "million" && vektor[i] != "billion"){ //pozvano(); temp += mapa.find(vektor[i]) -> second; } else if(vektor[i] == "hundred") temp *= mapa.find(vektor[i]) -> second; else{ suma += temp * mapa.find(vektor[i]) -> second; //std::cout << temp << " " << mapa.find(vektor[i]) -> second; temp = 0; } if(i == vektor.size() - 1 && temp){ suma += temp; } } std::cout << suma; } int main() { std::vector<std::string> vektor; std::string unos; std::getline(std::cin, unos); //std::cout << unos << std::endl; vektor = unos_u_rijeci(unos); velika_mala(vektor); recenica_u_brojeve(vektor); //for(auto x : vektor) std::cout << x << std::endl; }
Sehara mi puna blaga
Al ne haje moja draga
Al ne haje moja draga
- Melek
- Deer Hunter
- Posts: 29042
- Joined: 20 Jun 2013, 23:18
- Has thanked: 3593 times
- Been thanked: 2420 times
- Status: Offline
Re: Neki zadaci iz programiranja, moja rjesenja u c++ TEMA
Što se Triconja zado u kod
Weak people revenge.
Strong people forgive.
Intelligent people ignore.
Strong people forgive.
Intelligent people ignore.
- Chloe
- Žena za sva vremena
- Posts: 102580
- Joined: 18 Dec 2015, 11:40
- Has thanked: 2951 times
- Been thanked: 3054 times
- Status: Offline
Re: Neki zadaci iz programiranja, moja rjesenja u c++ TEMA
Triconja, nemoj me izazivati...
... You are my sunshine, my only sunshine ...
- ElTriconi
- Đulaga
- Posts: 36819
- Joined: 24 Mar 2019, 14:13
- Mood:
- Has thanked: 23101 times
- Been thanked: 4498 times
- Status: Offline
Re: Neki zadaci iz programiranja, moja rjesenja u c++ TEMA
Sto, jel i ti uz kafu i na putu kucas?
Sehara mi puna blaga
Al ne haje moja draga
Al ne haje moja draga
- Chloe
- Žena za sva vremena
- Posts: 102580
- Joined: 18 Dec 2015, 11:40
- Has thanked: 2951 times
- Been thanked: 3054 times
- Status: Offline
Re: Neki zadaci iz programiranja, moja rjesenja u c++ TEMA
Neee, srećom nemam vremena.... A ju u šali ne smijem probati...
... You are my sunshine, my only sunshine ...
- ElTriconi
- Đulaga
- Posts: 36819
- Joined: 24 Mar 2019, 14:13
- Mood:
- Has thanked: 23101 times
- Been thanked: 4498 times
- Status: Offline
Re: Neki zadaci iz programiranja, moja rjesenja u c++ TEMA
Ovaj zadatak pokazuje kad se pretvorba tipa ne odradi kako treba da nemas napretka nekolke dane
Zadatak je veoma jednostavan a ja sam ga pokusavao nulirati par mjeseci, nema na koje nacine nisam isprobavao a rjesenje je bilo samo pravilno odraditi konverziju iz double u int
2. Sabiranje elemenata niza i djeljenje sume sa brojem elemenata
3. Koristenje konverzije na pametan nacin
4. Ispis rezultata
Zadatak je veoma jednostavan a ja sam ga pokusavao nulirati par mjeseci, nema na koje nacine nisam isprobavao a rjesenje je bilo samo pravilno odraditi konverziju iz double u int
1. Unos podataka u kontejnerTitle: The closest to Average
Problem: You are given an array, you have to find the closest integer to its average, look it has to be closest,not just the truncated version of the average.
Input: First line contains n , number of elements of array, next line contains n integer separated by a space, which are elements of the array.
Output: Print output according to given condition.See Sample output.
Constraints: 1≤n≤100
1≤ element of array ≤ 1000
Sample Input: 2
10 15
Sample Output:
12
Link: https://code.dcoder.tech/challenges/alg ... to-average
2. Sabiranje elemenata niza i djeljenje sume sa brojem elemenata
3. Koristenje konverzije na pametan nacin
4. Ispis rezultata
Code: Select all
#include <iostream>
#include <vector>
//Compiler version g++ 6.3.0
int main()
{
int velicina;
double unos, sredina;
std::vector<int> vektor;
std::cin >> velicina;
for(int i = 0; i < velicina; i++){
std::cin >> unos;
vektor.push_back(unos);
}
unos = 0;
for(auto x : vektor) unos += x;
sredina = unos / velicina;
if(2 * sredina <= 2 * int(sredina) + 1){
std::cout << int(sredina);
}
else std::cout << int(sredina) + 1;
}
Sehara mi puna blaga
Al ne haje moja draga
Al ne haje moja draga
- Koteljubi_kadnisamtu
- Inventar foruma
- Posts: 6784
- Joined: 17 Apr 2020, 03:03
- Has thanked: 2636 times
- Been thanked: 1208 times
- Status: Offline
- ElTriconi
- Đulaga
- Posts: 36819
- Joined: 24 Mar 2019, 14:13
- Mood:
- Has thanked: 23101 times
- Been thanked: 4498 times
- Status: Offline
Re: Neki zadaci iz programiranja, moja rjesenja u c++ TEMA
Ne moram se vele ni trudit, prirodno normalno pricam
Sehara mi puna blaga
Al ne haje moja draga
Al ne haje moja draga
- shark-attack
- Inventar foruma
- Posts: 6164
- Joined: 25 Mar 2019, 09:04
- Has thanked: 17 times
- Been thanked: 402 times
- Status: Offline
Re: Neki zadaci iz programiranja, moja rjesenja u c++ TEMA
a shto c ++, lakshe ti je c# koristiti ako josh nisi "u formi"
koristi originalni K&R, na vrh svega OOP "lejerse"
koristi originalni K&R, na vrh svega OOP "lejerse"
KIAORA
- ElTriconi
- Đulaga
- Posts: 36819
- Joined: 24 Mar 2019, 14:13
- Mood:
- Has thanked: 23101 times
- Been thanked: 4498 times
- Status: Offline
Re: Neki zadaci iz programiranja, moja rjesenja u c++ TEMA
Vidis, mogo bih i c# koristitshark-attack wrote: ↑01 May 2021, 13:27 a shto c ++, lakshe ti je c# koristiti ako josh nisi "u formi"
koristi originalni K&R, na vrh svega OOP "lejerse"
Sehara mi puna blaga
Al ne haje moja draga
Al ne haje moja draga
- shark-attack
- Inventar foruma
- Posts: 6164
- Joined: 25 Mar 2019, 09:04
- Has thanked: 17 times
- Been thanked: 402 times
- Status: Offline
Re: Neki zadaci iz programiranja, moja rjesenja u c++ TEMA
ako imash poteshkoca sa 'debug -ingom" mozda ti je lakshi "pyton" ..probajElTriconi wrote: ↑01 May 2021, 15:53Vidis, mogo bih i c# koristitshark-attack wrote: ↑01 May 2021, 13:27 a shto c ++, lakshe ti je c# koristiti ako josh nisi "u formi"
koristi originalni K&R, na vrh svega OOP "lejerse"
KIAORA
- ElTriconi
- Đulaga
- Posts: 36819
- Joined: 24 Mar 2019, 14:13
- Mood:
- Has thanked: 23101 times
- Been thanked: 4498 times
- Status: Offline
Re: Neki zadaci iz programiranja, moja rjesenja u c++ TEMA
Programirao sam u basic, pascal, c i c++. Nema neke velke razlike izmedju jezika, bitno je samo da je algoritam smislen, sve se moze na isto docerat.shark-attack wrote: ↑01 May 2021, 16:13ako imash poteshkoca sa 'debug -ingom" mozda ti je lakshi "pyton" ..probaj
Nije los python, nesto sam i to zagledo, svidja mi se njegova jednostavnost
Sehara mi puna blaga
Al ne haje moja draga
Al ne haje moja draga
- shark-attack
- Inventar foruma
- Posts: 6164
- Joined: 25 Mar 2019, 09:04
- Has thanked: 17 times
- Been thanked: 402 times
- Status: Offline
Re: Neki zadaci iz programiranja, moja rjesenja u c++ TEMA
payton j jednostavan i ne morash ("kros" sa c#)e dobar za neke druge stvari..(ako ne mislish slati viruse..etc (heehe) i pazi ako to hocesh..nemoj ostajat "otvoren",, na svaku tvoju "remote" komandu ....ko zna "uletit ce u tvoju komandu" (real time)..da se ne zeznesh...(komanda preko komande).ElTriconi wrote: ↑01 May 2021, 16:15Programirao sam u basic, pascal, c i c++. Nema neke velke razlike izmedju jezika, bitno je samo da je algoritam smislen, sve se moze na isto docerat.shark-attack wrote: ↑01 May 2021, 16:13
ako imash poteshkoca sa 'debug -ingom" mozda ti je lakshi "pyton" ..probaj
Nije los python, nesto sam i to zagledo, svidja mi se njegova jednostavnost
KIAORA
- Rum
- Sebijin pulen
- Posts: 95668
- Joined: 17 Oct 2010, 17:29
- Mood:
- Has thanked: 33875 times
- Been thanked: 20661 times
- Contact:
- Status: Offline
Re: Neki zadaci iz programiranja, moja rjesenja u c++ TEMA
Trico vidi malog
Pozdrav,
Ja sam Toni Dumancic aka Toni.Dev
Developer sa 14 godina koji kodira od svoje desete.
Moj portofolio se sastoji od velikog crypto projekta koji je pravljen u RUSTU od nule, Te od malo manjih projekata kao crypto botovi, p2p chatovi…
https://toni-d-e-v.github.io/
Pozdrav,
Ja sam Toni Dumancic aka Toni.Dev
Developer sa 14 godina koji kodira od svoje desete.
Moj portofolio se sastoji od velikog crypto projekta koji je pravljen u RUSTU od nule, Te od malo manjih projekata kao crypto botovi, p2p chatovi…
https://toni-d-e-v.github.io/
Neka si nam Živa I Zdrava Sultanija
Who is online
Users browsing this forum: No registered users and 1 guest