Broj negativnih brojeva
Napisati program kojim se prvo učitava broj elemenata niza N(<=100), a zatim N elemenata celobrojnog niza A(<=100) i ispisuje koliko je u njemu negativnih brojeva.
Nizovi su osnovna struktura podataka u C/C++ programiranju, koja omogućava čuvanje više elemenata istog tipa u sekvencijalnom bloku memorije. Kroz rad sa nizovima možete efikasno upravljati kolekcijama podataka, vršiti operacije poput sortiranja, pretraživanja, i agregacije podataka. U ovom delu, prikazani su različiti primeri koji ilustruju rad sa nizovima, od osnovne manipulacije elementima do naprednih algoritama. Pre nego što počnete sa rešavanjem zadataka pročitajte lekciju na strani:Nizovi u JAVI ili ako radite u programskom jeziku C ili C++ onda lekciju na strani Nizovi u C/C++.
Napisati program kojim se prvo učitava broj elemenata niza N(<=100), a zatim N elemenata celobrojnog niza A(<=100) i ispisuje koliko je u njemu negativnih brojeva.
Napisati program kojim se određuje aritmetička sredina pozitivnih vrednosti realnog niza A od N(<=100) elemenata.
Napisati program kojim se prvo učitava broj elemenata niza N(<=100), a zatim N elemenata realnog niza A. Odrediti i ispisati vrednost njegovog:
a) Maksimalnog elementa
b) Minimalnog elementa
Napisati program koji za niz visina učenika nekog odeljenja određuje prosečnu visinu i koliko je učenika imalo natprosečnu visinu.
Meteorološka stanica je za N dana posmatranja formirala tablicu vrednosti atmosferskog pritiska. Napisati program, koji:
a) Učitava niz vrednosti pritisaka
b) Odrećuje maksimalni, minimalni pritisak i redni broj odgovarajućih dana u nizu
c) Odrediti srednju vrednost pritisaka u toku posmatranja
Napisati program koji učitani niz celih brojeva transformiše tako da se svaki element niza pojavljuje tačno jednom, pri čemu se čuva redosled elemenata (redosled njihovog prvog pojavljivanja).
Ulaz
U jednoj liniji standardnog ulaza nalazi se broj elemenata niza N (0<N≤10000), a zatim se, u svakoj od N narednih linija standardnog ulaza, nalazi po jedan član niza.
Izlaz
U svakoj liniji standarnog izlaza ispisuje se po jedan element transformisanog niza.
Primer
Ulaz
10
1
3
5
3
1
5
7
2
3
5
Izlaz
1
3
5
7
2
U autoprevoznom preduzeću pri obradi putnih naloga, za jedan dan formirana su dva niza:
niz S[1 ... N] - pređene kilometraže svakog od N autobusa u toku dana i
niz P[1 ... N] - njihova potrošnja goriva
Napisati program koji:
a) Izračunava ukupan pređeni put i ukupnu potrošnju za sva putovanja
b) izračunava srednji pređeni put po autobusu i srednju potrošnju goriva po autobusu
c) određuje indeks autobusa čija je pređena kilometraža maksimalna(minimalna)
d) određuje za svaki autobus pokazatelj ekonomičnosti - potrošnja u litrima na 100 km
Broj je nepoželjan u nizu celih brojeva ako deli ukupan broj elemenata (npr. u nizu dužine 10 su nepoželjni elementi koji dele broj 10, a to su 1, 2, 5 i 10).
Potrebno je pronaći sve nepoželjne elemente u nizu i ukloniti ih. Nakon toga se broj elemenata može promeniti i neki drugi elementi mogu postati nepoželjni. Postupak se ponavlja dok se ne dobije niz bez nepoželjnih elemenata.
Napiši program koji za dati niz određuje zbir preostalih elemenata, nakon uklanjanja nepoželjnih.Ulaz
Sa standardnog ulaza se unosi broj n (1≤n≤50000), a zatim i n
elemenata niza iz raspona od 1 do 100.
Izlaz
Na standardni izlaz ispisati jedan ceo broj koji predstavlja zbir preostalih elemanata u nizu,
nakon uzastopnog uklanjanja svih nepoželjnih elemenata.
Primer
Ulaz
10
1
2
3
4
5
6
7
8
9
10
Izlaz
24
Prvo se uklanjaju elementi 1, 2, 5 i 10 koji dele dužinu 10, zatim se uklanjaju elementi 3 i 6 koji dele dužinu
6 i na kraju se uklanja element 4, tako da ostaju elementi 7, 8 i 9 čiji je zbir 24.
Napomena: Zadatak je preuzet sa sajta petlje: petlja.org/sr-Latn-RS/biblioteka/r/problemi/Zbirka-stara/ciklicno_pomeranje_za_jedno_mestoNapisati program koji učitava niz celih brojeva a zatim ga transformiše tako što se ciklično pomeraju zadati delovi niza od pozicije p do pozicije q sve dok se ne unesu dve jednake pozicije. Pri tome vršiti ciklično pomeranje udesno ako je p<q, a pomernje ulevo vršiti ako je p>q.
Ulaz
U jednoj liniji standardnog ulaza nalazi se broj elemenata niza n (1<n≤200), a zatim se, u svakoj od n narednih linija standardnog ulaza, nalazi po jedan član niza. U narednim redovima se unose po dva cela broja, p i q (0≤p,q<n), odvojena prazninom dok se ne unese red u kome su brojevi jednaki.
Izlaz
U svakoj liniji standarnog izlaza ispisuje se po jedan element transformisanog niza.
Primer
Ulaz
4
1 2 3 4
2 3
2 0
1 2
0 0
Izlaz
2
1
4
3
Date su koordinate N tačaka u ravni. Translirati tačke tako da im težište bude u koordinatnom početku.Ulaz
U prvoj liniji standardnog ulaza nalazi se prirodan broj n (1≤n≤100). U sledećih n linija nalaze se po dva realna broja, koji predstavljaju x i y koordinate tačaka.
Izlaz
Na standardnom izlazu prikazati koordinate tačaka posle translacije, za svaku tačku u jednoj liniji njenu x pa y koordinatu, koordinate odvojiti jednom prazninom i prikazati ih na dve decimale.
Primer
Ulaz
3
0 0
1 0
2 3
Izlaz
-1.00-1.00
0.00-1.00
1.00 2.00
Napomena: Zadatak sa 1. kruga kvalifikacija SEZONA 2022/2023. Preuzeto sa takprog.petlja.org/osnovnaskola
Nakon izvođenja radova majstor Peri je vraćeno n kutija sa šrafovima. Kutije su korišćene i mogu sadržati različite brojeve šrafova.
Majstor Pera hoće da koristi dve kutije sa najmanjim brojem šrafova. Pomozite majstor Peri da izračuna koliko ukupno šrafova ima u tako izabrane dve kutije.
Ulaz
U prvoj liniji standardnog ulaza unosi se ukupan broj kutija n ( 2 ≤ n ≤ 30).
Zatim se u narednih n linija unose brojevi šrafova u kutijama k i (1≤k i ≤100), redom.
Izlaz
Na standardni izlaz ispisati ceo broj koji predstavlja zbir šrafova u dve kutije sa najmanje šrafova.
Primer 1
Ulaz
5
45
32
9
15
67
Izlaz
24
Primer2
Ulaz
7
764
455
721
231
138
97
333
Izlaz
235
Primer 3
Ulaz
5
28
14
30
15
14
Izlaz
28
Napomena: Zadatak sa 1. kruga kvalifikacija SEZONA 2022/2023. Preuzeto sa takprog.petlja.org/osnovnaskola
Prilikom pripreme za predstojeća takmičenja, sportista svakog dana meri rezultat koji je postigao. Pošto želi da ravnomerno podiže formu, želi da svaki dan rezultat bude sve bolji (veći broj predstavlja bolji rezultat). Za neki dan treninga ćemo reći da je dobar, ako je rezultat postignut tog dana strogo bolji nego prethodnog, a strogo lošiji nego narednog (da bi bio dobar, za prvi dan je dovoljno da je strogo lošiji od narednog, a za poslednji dan da je strogo bolji od prethodnog).
Napiši program koji izračunava broj dobrih dana.
Ulaz:
Sa standardnog ulaza se učitava broj dana n(3 ≤ n ≤ 100) tokom kojih je sportista trenirao, a u
drugom redu rezultati koje je sportista postizao tokom svakog od tih n dana.
Izlaz:
Na standardni izlaz ispisati broj dobrih dana.
Primer 1
Ulaz
6
100 120 130 110 140 150
Izlaz
4
Primer 2
Ulaz
6
10 20 30 40 50 60
Izlaz
6
Učitati broj elemenata niza, a zatim i elemente tog niza. U nizu odrediti poziciju maksimalnog elementa i razmeniti ga sa prvim u nizu.
Primer:
Ulaz:
7
3 5 12 -3 4 2 8
Izlaz
12 5 3 -3 4 2 8
Od niza A dužine n(n<=100) formiraj niz B dobijen izbacivanjem svakog pojavljivanja maksimalnog člana iz niza A. Ispisati formiran niz B.
Primer:
Ulaz:
8
5 15 12 -13 15 2 8 15
Izlaz
5 12 -13 2 8
Dat je niz realnih brojeva. Odrediti:
a) odnos sume elemenata niza, do prvog maksimuma i sume elemenata iza prvog maksimuma
b) proizvod elemenata između maksimalnog i minimalnog elementa
c) aritmetičku sredinu elemenata između poslednjeg maksimalnog i "centralnog". Pretpostavka je da je broj elemenata neparan
NAPOMENA: Zadatak sa 1. kruga kvalifikacija sezona 2022/23. Preuzeto sa dms.rs/informatika-osnovne-skole/
Potrebno predznanje: Podaci u c++, Operatori u C++, Grananje u programu u C/C++, Petlje , Nizovi u jeziku C/C++
Opciono:Maksimalna suma podniza
Dat je niz celih brojeva dužine n. Niz je potrebno preseći na dva dela. Nakon sečenja određuje se koliko postoji parova brojeva takvih da je jedan broj iz levog, a drugi iz desnog dela i da je njihov zbir paran broj. Odrediti maksimalan broj takvih parova koji je moguće dobiti sečenjem niza.
Ulaz
Sa standardnog ulaza se unosi ceo broj n (2≤n≤50000). Zatim se u narednom redu unose elementi niza a i (0≤ai≤100) razdvojeni razmakom.
Izlaz
Na standardni izlaz ispisati jedan ceo broj koji predstavlja traženu vrednost.
Primer 1
Ulaz
8
1 7 3 4 6 5 8 0
Izlaz
7
Objašnjenje: Najveći broj parova dobija se podelom niza na delove 1 7 3 4 6 i 5 8 0. Parovi su(1,5), (7,5), (3,5), (4,8), (4,0), (6,8) i (6,0).
Primer 2
Ulaz
7
1 9 3 11 12 4 8
Izlaz
4Rešenje: Vidi zadatak 12. na web strani:Kvalifikacije za okružna takmičenja
Šta su Višedimenzionalni Nizovi?
Višedimenzionalni nizovi su nizovi koji sadrže više od jedne dimenzije, što znači da se mogu koristiti za predstavljanje više dimenzija podataka. Najčešći primer višedimenzionalnih nizova su dvodimenzionalni nizovi, koji se često koriste za predstavljanje tabela, matrica ili gridova. Višedimenzionalni nizovi mogu imati tri, četiri ili više dimenzija, u zavisnosti od složenosti problema koji se rešava.
Namena Višedimenzionalnih Nizova:
Primeri Višedimenzionalnih Nizova
C++ Primer:
#include <iostream>
int main()
{
// Deklaracija i inicijalizacija dvodimenzionalnog niza 3x3
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// Ispis elemenata matrice red po red
for (int i = 0; i < 3; ++i)
{
for (int j = 0; j < 3; ++j)
std::cout << matrix[i][j] << " ";
std::cout << std::endl;
}
return 0;
}
U ovom primeru, matrix je dvodimenzionalni niz koji se koristi za predstavljanje 3x3 matrice. Svaki element matrice se može pristupiti koristeći dva indeksa: redni i kolonski.
#include <stdio.h>
int main()
{
// Deklaracija i inicijalizacija dvodimenzionalnog niza 3x3
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// Ispis elemenata matrice red po red
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
printf("%d ", matrix[i][j]);
printf("\n");
}
return 0;
}
Java Primer:
public class MultiDimensionalArrayExample {
public static void main(String[] args) {
// Deklaracija i inicijalizacija dvodimenzionalnog niza 3x3
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// Ispis elemenata matrice red po red
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
}
U ovom Java primeru, matrix je takođe dvodimenzionalni niz sa istom funkcionalnošću kao u C++ primeru. Svaki element matrice se pristupa pomoću indeksa za red i kolonu.
Zaključak
Višedimenzionalni nizovi su moćan alat za rad sa kompleksnijim strukturama podataka. Korišćenjem višedimenzionalnih nizova, možete efikasno organizovati i manipulisati podacima u više dimenzija, što je korisno u različitim aplikacijama od naučnih simulacija do grafičkog prikaza.
Više primera o dvodimenzionim nizovima možete naći na sledećoj strani:Matrice primeri
Česta Pitanja:
Šta su Kolekcije u Javi?Kolekcije u Javi su specijalizovane klase koje pružaju različite načine za skladištenje i manipulaciju grupom objekata. One nude bogat skup funkcionalnosti koje omogućavaju fleksibilnije upravljanje podacima u odnosu na tradicionalne nizove. Kolekcije su deo Java Collections Framework (JCF), koji uključuje različite interfejse i klase za rad sa podacima.
Osnovni Tipovi Kolekcija:
Uporedba sa Nizovima:
ZaključakKolekcije u Javi nude značajne prednosti u odnosu na tradicionalne nizove, posebno u pogledu fleksibilnosti i funkcionalnosti. ArrayList i LinkedList su dve popularne implementacije koje nude različite prednosti u zavisnosti od specifičnih potreba aplikacije. Odabir između kolekcija i nizova zavisi od specifičnih zahteva vašeg programa i tipičnih operacija koje obavljate.
ArrayList je dinamički proširiva lista koja omogućava brzi pristup elementima preko indeksa. Evo jednostavnog primera kako koristiti ArrayList za skladištenje i manipulaciju listom brojeva.import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
// Kreiranje ArrayList objekta za skladištenje celobrojnih vrednosti
ArrayList<Integer> numbers = new ArrayList<>();
// Dodavanje elemenata u ArrayList
numbers.add(10);
numbers.add(20);
numbers.add(30);
// Ispis elemenata
System.out.println("Brojevi u ArrayList:");
for (int number : numbers) {
System.out.println(number);
}
// Uklanjanje elementa
numbers.remove(Integer.valueOf(20)); // Uklanja prvi nalaz broja 20
// Provera da li ArrayList sadrži određeni element
if (numbers.contains(30)) {
System.out.println("Lista sadrži broj 30.");
}
// Ispis broja elemenata u ArrayList
System.out.println("Ukupan broj elemenata: " + numbers.size());
}
}
LinkedList je kolekcija koja koristi povezane listi i omogućava brzu manipulaciju elemenata na početku i kraju liste. Evo primera kako koristiti LinkedList za skladištenje i manipulaciju listom stringova.import java.util.LinkedList;
public class LinkedListExample {
public static void main(String[] args) {
// Kreiranje LinkedList objekta za skladištenje stringova
LinkedList<String> names = new LinkedList<>();
// Dodavanje elemenata na početak i kraj liste
names.add("Alice");
names.add("Bob");
names.addFirst("Charlie"); // Dodaje "Charlie" na početak liste
names.addLast("David"); // Dodaje "David" na kraj liste
// Ispis elemenata
System.out.println("Imena u LinkedList:");
for (String name : names) {
System.out.println(name);
}
// Uklanjanje elemenata
names.removeFirst(); // Uklanja prvi element ("Charlie")
names.removeLast(); // Uklanja poslednji element ("David")
// Provera da li LinkedList sadrži određeni element
if (names.contains("Alice")) {
System.out.println("Lista sadrži ime Alice.");
}
// Ispis broja elemenata u LinkedList
System.out.println("Ukupan broj elemenata: " + names.size());
}
}
Objašnjenje:
Oba primera pokrivaju osnovne operacije kao što su dodavanje, uklanjanje, i provera sadržaja elemenata u kolekcijama, što je korisno za razumevanje osnovnih funkcionalnosti ArrayList i LinkedList.
1. Prosečna Temperatura u Nedelji:
2. Obrtanje Redosleda Reči u Rečenici:
3. Najveći i Najmanji Element u Nizu:
4. Matriks Sabiranje:
5. Brojač Ponavljanja Elemenata:
6. Sistem Ocena Studenata:
7. Sortiranje Niza:
Povezani Resursi:
Prethodno
|< Stringovi - primeriSledeće
Sortiranje-primeri>|
0 do n - 1; a[n] je van niza.1. Koji je indeks poslednjeg elementa niza int a[10]?
2. Kako je najbolje postaviti početni maksimum niza?
3. Koliko poređenja treba da se nađe najveći od n elemenata?