Programerski zadaci i problemi

Teme koje se tiču programiranja

Moderator: Urednik

Post Reply

Povremen korisnik
Povremen korisnik
offline

Posts: 11
Joined: 06 Apr 2012, 10:37

Post Napisano: 06 Apr 2012, 11:27


U ovoj temi mozete postaviti neki zadatak ili problem koji je zanimljiv za resavanje. Potom mi zajednicki dajemo svoja resenja i tako dobijemo jednu zanimljivu zbirku programerskih problema :)

evo ja cu poceti sa jednim jednostavnim zadatkom :)

napisati konzolni program gde se unosi broj n a u narednih n redova se unose 2 broja koja su kordinate neke tacke

program treba da ispise koja od tih tacaka je najbliza tacki cije su kordinate 0,0

primer :
input:

Code: Select all

3
14 56
1 2 
3 7
output: 
2
Objasnjenje: tacka (1,2) je najbliza tacki 0,0 pa program ispisuje redni broj te tacke (u ovom slucaju 2)

Uzivajte :)

Resenje:

Code: Select all

#include <iostream>
#include <cmath>

using namespace std;

class tacka 
{
	int x,y; 

public: 
	tacka() 
	{
		x = 0; 
		y = 0; 
	}
	void unos() 
	{
		cin >> x >> y; 
	}
	int dijagonala() 
	{
		return sqrt(x*x + y*y);
	}
};

int main(int argc, char* argv[]) {
	
	int n; 
	cin >> n; 
	tacka a[n];
	for (int j = 0; j<n; j++) 
	{
		a[j].unos(); 
	}
	int mind = a[0].dijagonala(); 
	int mi = 1;
	for (int i = 0; i<n; i++) 
	{
		if (a[i].dijagonala() < mind) 
		{
			mind = a[i].dijagonala();
			mi = i + 1;
		}
	}
	cout << mi << endl;

	return 0;
}
Ako neko ima bolje resenje neka postavi :)

P.S. Molim ne stavljajte domace zadatke iz skole itd... Poenta je da postavite problem koji ste vi resili a zelite da vidite i resenja drugih



Povremen korisnik
Povremen korisnik
offline

Posts: 16
Joined: 10 Feb 2012, 18:52

Post Napisano: 10 Apr 2012, 15:07


Code: Select all

#!/usr/bin/env ruby                                                                                                 
                                                                                                                    
mint,mind=nil,nil                                                                                                   
                                                                                                                    
gets.to_i.times do |i|                                                                                              
  x,y=gets.to_i, gets.to_i                                                                                          
                                                                                                                    
  tmp=Math.sqrt(x*x+y*y)                                                                                            
  if mind.nil?                                                                                                      
    mind,mint=tmp,i                                                                                                 
  end                                                                                                               
  if tmp<mind                                                                                                       
    mind,mint=tmp,i                                                                                                 
  end                                                                                                               
end                                                                                                                 
                                                                                                                    
puts mint+1



Povremen korisnik
Povremen korisnik
offline

Posts: 12
Joined: 18 Jan 2012, 15:58

Post Napisano: 22 May 2012, 14:05


Moj pokusaj sa awk-om:

Code: Select all

#!/usr/bin/awk -f

function f(){
	return sqrt($1*$1+$2*$2)
}
NR==1{ a=f(); p=NR; next }

{ f()<a ? p=NR : "" }

END{ print "Pozicija: "p }
Evo ja cu sledeci za malo mozganja.
Napisati sto kraci program koji ce od niza (trazeni unos) "seq 1 28" od 28 brojeva napraviti matricu od 4 kolone:

Code: Select all

Trazeni izlaz:

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
21 22 23 24
25 26 27 28



Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 178
Joined: 29 Jan 2012, 18:39
Location: Novi Sad (Beočin)

Post Napisano: 23 May 2012, 12:19


Pa zar i ovde rekurzija? :huh:
Salim se malo :beer:
Open your source open your mind



Povremen korisnik
Povremen korisnik
offline

Posts: 11
Joined: 06 Apr 2012, 10:37

Post Napisano: 14 Jul 2012, 02:03


Evo mog rešenja za matrice :)

Code: Select all

 
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
	for (int i = 1; i<=28; i++) 
	{
		cout << i << " "; 
		if (i%4 == 0) cout << endl; 
	}
	return 0;
}

P.S. Možda nisam dobro razumeo zadatak. Voleo bih da vidim i vaša rešenja. Nisam dobro razumeo jel ima neki input ili ovako staticki ? ????



Povremen korisnik
Povremen korisnik
offline

Posts: 12
Joined: 18 Jan 2012, 15:58

Post Napisano: 22 Jul 2012, 11:50


Input je izlaz komande "seq 1 28". Znaci treba biti: seq 1 28 | tvoj_program.

Vise sam isao na neko shell resenje nego bas programersko, u smislu C, C++... ali sve je dozvoljeno. Hteo sam da pokazem kako recimo awk programi mogu biti veoma kratki i po nekad kripticni. Evo resenja za awk:

Code: Select all

$ seq 1 28 | awk 'ORS=NR%4?FS:RS'

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
21 22 23 24
25 26 27 28



Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 699
Joined: 08 May 2007, 12:39
Location: Banja Luka

Post Napisano: 22 Jul 2012, 22:44


:grin:

Code: Select all

$ seq 1 28 | ruby -e "STDIN.read.lines { |i| print i.to_i % 4 == 0 ? i : \"#{i.chomp} \" }"
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
21 22 23 24
25 26 27 28



Povremen korisnik
Povremen korisnik
offline

Posts: 12
Joined: 18 Jan 2012, 15:58

Post Napisano: 28 Jul 2012, 21:14


Pa postavi ti nesto sada. ;)



Povremen korisnik
Povremen korisnik
offline

Posts: 11
Joined: 06 Apr 2012, 10:37

Post Napisano: 30 Aug 2012, 18:55


Evo jednog zanimljivog zadatka :)

Napisati program koji ima input prvo 2 prirodna broja koja su broj redova i broj kolona matrice, onda za svaki red i za svaku kolonu se unosi broj 0 ili 1 a onda program ispisuje broj kvadratica oblikovanih sa 4 jedinice

Prmer:
Input:
5 5
1 1 0 1 1
1 1 0 1 1
0 0 1 1 0
0 0 1 1 0
Output: 3



offline

Posts: 1
Joined: 17 Sep 2012, 11:20

Post Napisano: 17 Sep 2012, 11:33


Moze pomoc oko ovog zadatka nikako da ga pocnem :

"Imamo N stupaca koji se sastoje od M kvadratića. Ukupan broj kvadratića na svim stupcima je djeljiv
sa brojem stupaca N.
Napisati program koji računa koliko je potrebno premještanja kvadratića tako da svaki stupac ima isti
broj kvadratića.
Primjer izvršavanja:
Ulaz:
6
5 2 4 1 7 5
Izlaz:
5
Napomena: U programu je neophodno implementirati f-ju koja racuna koliko kvadratica treba imati svaki stupac da bi bili pojednako visoki : int brKvadratica(int *brKvadraticaPoStupcu, int N) "


Post Reply

Who is online

Users browsing this forum: No registered users and 7 guests