Neki zadaci iz programiranja, moja rjesenja u c++ TEMA

Pozorište, slikarstvo, škola, fakultet, istraživanja, izumi.

Moderator: Krokodil Behko

Post Reply
User avatar
ElTriconi
Đulaga
Đ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

Post by ElTriconi » 27 Apr 2021, 17:31

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 :jupi
Sehara mi puna blaga
Al ne haje moja draga 🤗😊

User avatar
ElTriconi
Đulaga
Đ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

Post by ElTriconi » 27 Apr 2021, 17:42

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
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.

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.

Code: 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;
}
Prolazi svaki od cetri slucaja 🙃
Sehara mi puna blaga
Al ne haje moja draga 🤗😊

User avatar
ElTriconi
Đulaga
Đ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

Post by ElTriconi » 27 Apr 2021, 17:53

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
Malo drukciji zadatak, jednostavniji je jer se ne mora gledati pozicija da bi se desetice, stotice i to pravilno odradilo.

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.

Code: 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;
    
}
Prolaze 4 od 4 slucaja :jutarnja
Sehara mi puna blaga
Al ne haje moja draga 🤗😊

User avatar
Melek
Deer Hunter
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

Post by Melek » 27 Apr 2021, 17:54

Što se Triconja zado u kod :hm
Weak people revenge.
Strong people forgive.
Intelligent people ignore.

User avatar
Chloe
Žena za sva vremena
Ž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

Post by Chloe » 27 Apr 2021, 18:04

Triconja, nemoj me izazivati... :julia
:srce ... You are my sunshine, my only sunshine ... :srce

User avatar
ElTriconi
Đulaga
Đ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

Post by ElTriconi » 27 Apr 2021, 18:10

Chloe wrote: 27 Apr 2021, 18:04 Triconja, nemoj me izazivati... :julia
Sto, jel i ti uz kafu i na putu kucas? :jutarnja
Sehara mi puna blaga
Al ne haje moja draga 🤗😊

User avatar
Chloe
Žena za sva vremena
Ž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

Post by Chloe » 27 Apr 2021, 18:18

ElTriconi wrote: 27 Apr 2021, 18:10
Chloe wrote: 27 Apr 2021, 18:04 Triconja, nemoj me izazivati... :julia
Sto, jel i ti uz kafu i na putu kucas? :jutarnja
Neee, srećom nemam vremena.... A ju u šali ne smijem probati... :spavanje
:srce ... You are my sunshine, my only sunshine ... :srce

User avatar
ElTriconi
Đulaga
Đ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

Post by ElTriconi » 01 May 2021, 11:34

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 🙈
Title: 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
1. Unos podataka u kontejner
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 🤗😊

User avatar
Koteljubi_kadnisamtu
Inventar foruma
Inventar foruma
Posts: 6784
Joined: 17 Apr 2020, 03:03
Has thanked: 2636 times
Been thanked: 1208 times
Status: Offline

Re: Neki zadaci iz programiranja, moja rjesenja u c++ TEMA

Post by Koteljubi_kadnisamtu » 01 May 2021, 11:47

:hm Hm znas ti i normalno pricati :apl
👌🌚

User avatar
ElTriconi
Đulaga
Đ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

Post by ElTriconi » 01 May 2021, 12:43

koteljubi_kadnisamtu wrote: 01 May 2021, 11:47 :hm Hm znas ti i normalno pricati :apl
Ne moram se vele ni trudit, prirodno normalno pricam :jutarnja
Sehara mi puna blaga
Al ne haje moja draga 🤗😊

User avatar
shark-attack
Inventar foruma
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

Post by shark-attack » 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

User avatar
ElTriconi
Đulaga
Đ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

Post by ElTriconi » 01 May 2021, 15:53

shark-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"
Vidis, mogo bih i c# koristit 🤔
Sehara mi puna blaga
Al ne haje moja draga 🤗😊

User avatar
shark-attack
Inventar foruma
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

Post by shark-attack » 01 May 2021, 16:13

ElTriconi wrote: 01 May 2021, 15:53
shark-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"
Vidis, mogo bih i c# koristit 🤔
ako imash poteshkoca sa 'debug -ingom" mozda ti je lakshi "pyton" ..probaj
KIAORA

User avatar
ElTriconi
Đulaga
Đ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

Post by ElTriconi » 01 May 2021, 16:15

shark-attack wrote: 01 May 2021, 16:13
ElTriconi wrote: 01 May 2021, 15:53

Vidis, mogo bih i c# koristit 🤔
ako imash poteshkoca sa 'debug -ingom" mozda ti je lakshi "pyton" ..probaj
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.

Nije los python, nesto sam i to zagledo, svidja mi se njegova jednostavnost :jutarnja
Sehara mi puna blaga
Al ne haje moja draga 🤗😊

User avatar
shark-attack
Inventar foruma
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

Post by shark-attack » 01 May 2021, 16:24

ElTriconi wrote: 01 May 2021, 16:15
shark-attack wrote: 01 May 2021, 16:13
ako imash poteshkoca sa 'debug -ingom" mozda ti je lakshi "pyton" ..probaj
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.

Nije los python, nesto sam i to zagledo, svidja mi se njegova jednostavnost :jutarnja
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).
KIAORA

User avatar
Rum
Sebijin pulen
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

Post by Rum » 23 Jan 2022, 16:46

Trico vidi malog :aplauzz

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 💚

Post Reply

Return to “Kultura, umjetnost, edukacija, nauka”

Who is online

Users browsing this forum: No registered users and 1 guest