Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Transformacija niza, rasporedjivanje brojeva

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Transformacija niza, rasporedjivanje brojeva

[ Pregleda: 3223 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

lammas
djak

Član broj: 142239
Poruke: 66
91.150.101.*



Profil

icon [Zadatak] Transformacija niza, rasporedjivanje brojeva26.03.2008. u 15:31 - pre 194 meseci
Dat je niz A od N različitih celih brojeva (N<=100). Napisati program kojim se niz A transformiše tako da se na prvo mesto postavi najveći element, najveći od preostalih na poslednje mesto, sledeći po veličini na drugo mesto, sledeći na pretposlednje, itd. do sredine niza. Korišćenje pomoćnih nizova nije dozvoljeno. Transformisan niz ispisati.
Primer: Ulaz: n= 5 A: 13, -2, 34, 18, 9 Izlaz: A: 34, 13, -2, 9, 18

Imam okruzno takmicenje iz informatike pa mi je potrebna pomoc
lammas
 
Odgovor na temu

savkic
Igor Savkić

Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: [Zadatak] Transformacija niza, rasporedjivanje brojeva27.03.2008. u 01:14 - pre 194 meseci
> Dat je niz A od N različitih celih brojeva (N<=100). Napisati program kojim se niz A transformiše tako da se na prvo mesto postavi najveći
> element, najveći od preostalih na poslednje mesto, sledeći po veličini na drugo mesto, sledeći na pretposlednje, itd. do sredine niza.
> Korišćenje pomoćnih nizova nije dozvoljeno. Transformisan niz ispisati.
> Primer: Ulaz: n= 5 A: 13, -2, 34, 18, 9 Izlaz: A: 34, 13, -2, 9, 18

Radi iz više prolaza (posebna funkcija), prosledi se mesto na koje treba postaviti nađeni najveći broj (prvo, poslednje, drugo...) u datom opsegu (u prvom krugu čitav niz, u drugom sve osim prvog, u trećem osim prvog i poslednjeg...)

> Imam okruzno takmicenje iz informatike pa mi je potrebna pomoc

Za srednju, pretpostavljam da je ovo zadatak sa nekog od prethodnih takmičenja?
 
Odgovor na temu

srki
Srdjan Mitrovic
Auckland, N.Z.

Član broj: 2237
Poruke: 3654
*.xdsl.xnet.co.nz.



+3 Profil

icon Re: [Zadatak] Transformacija niza, rasporedjivanje brojeva27.03.2008. u 10:53 - pre 194 meseci
Evo nesto sklepano na brzinu a na tebi je da proveris i ispravis greske ako ih ima:

Code:

#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
using namespace std;

int main() {
  vector<int> brojevi;
  int x;

  //procitaj niz (sa ctrl+z ga prekidas)
  while (cin >> x) {
   brojevi.push_back(x);
  }

  //sortiraj u obrnutom redosledu ceo niz
  sort(brojevi.begin(), brojevi.end(), greater<int>());

  for ( vector<int>::iterator i = brojevi.begin() + 1, j = i + 1; 
       j <  brojevi.end();
       ++i , j+=2) {
     swap(*i, *j);
  }

  //sortiraj u normalnom redosledu drugu polovinu niza
  sort(brojevi.begin() + brojevi.size()/2, brojevi.end());

  copy( brojevi.begin(), brojevi.end(), ostream_iterator< int > ( cout, " " ) );

}


Evo ovde mozes online da vidis kako radi a mozes i da sam prepravljas i testiras online:
http://codepad.org/5ifseedb

Ako te mrzi sam da unosis brojeve onda samo umesto koda za unos brojeva ukucaj:
Code:
generate_n(back_inserter(brojevi),10,rand);


Na takmicenjima obavezno koristi vec gotove stvari koje imas u C-u i C++-u kao sto je sortiranje niza, pretraga stringova itd... I u Pascalu takodje imas vec definisan qsort(). Nauci te stvari i onda neces gubiti vreme na implementaciji trivijalnih stvari.
 
Odgovor na temu

lammas
djak

Član broj: 142239
Poruke: 66
79.101.151.*



Profil

icon Re: [Zadatak] Transformacija niza, rasporedjivanje brojeva27.03.2008. u 15:33 - pre 194 meseci
auuu,ipak sam ja pocetnik za ovakav source code.Nego jer zna neko,ili da li je uopste moguce,da ja najveci broj izbrisem iz memorije,odnosno iz niza?
lammas
 
Odgovor na temu

srki
Srdjan Mitrovic
Auckland, N.Z.

Član broj: 2237
Poruke: 3654
*.orionhealth.com.



+3 Profil

icon Re: [Zadatak] Transformacija niza, rasporedjivanje brojeva27.03.2008. u 21:22 - pre 194 meseci
Potrudi se da razumes kod, znacice ti i bices dosta produktivniji i brzi a pravices mnogo manje gresaka jer ne moras da vodis racuna o alokaciji i oslobadjanju memorije.
 
Odgovor na temu

srki
Srdjan Mitrovic
Auckland, N.Z.

Član broj: 2237
Poruke: 3654
*.orionhealth.com.



+3 Profil

icon Re: [Zadatak] Transformacija niza, rasporedjivanje brojeva27.03.2008. u 22:53 - pre 194 meseci
Citat:
Nego jer zna neko,ili da li je uopste moguce,da ja najveci broj izbrisem iz memorije,odnosno iz niza?


Najbolje je da koristis liste.

Code:

list<int> brojevi;

//ubacis brojeve... 

brojevi.remove(max_element(brojevi.begin(), brojevi.end()));   


Ako ne zelis da se petljas sa C++ kodom onda postavi ovo pitanje na http://www.elitesecurity.org/f233-za-pocetnike

[Ovu poruku je menjao srki dana 28.03.2008. u 07:18 GMT+1]
 
Odgovor na temu

lammas
djak

Član broj: 142239
Poruke: 66
77.46.210.*



Profil

icon Re: [Zadatak] Transformacija niza, rasporedjivanje brojeva28.03.2008. u 08:32 - pre 194 meseci
Srki,hvala
lammas
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Transformacija niza, rasporedjivanje brojeva

[ Pregleda: 3223 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.