Zamena mesta
Učitati dva cela broja X i Y. Napraviti funkciju koja menja mesta dve celobrojne promenljive. Upotrebiti ovu funkciju i zameniti vrednosti promenljivama X i Y.
Da biste pročitali članak o rekurzivnim funkcijama pređite na stranu: Rekurzivni algoritmi
Učitati dva cela broja X i Y. Napraviti funkciju koja menja mesta dve celobrojne promenljive. Upotrebiti ovu funkciju i zameniti vrednosti promenljivama X i Y.
Napraviti funkciju koja određuje da li je neki broj prost. Uneti prirodan broj i ispitati da li je prost.
Učitati n. Zatim učitati niz od n elemenata. Napraviti posebnu metodu za njegovo ispisivanje. Koristeći tu metodu ispisati elemente niza na ekranu.
Učitati niz od n elemenata. Broj n, kao i elemente niza unosi korisnik. Napraviti metodu koja prepisuje iz početnog niza parne elemente. Iskoristiti napravljenu metodu da biste iz početnog niza izdvojili parne elemente.
Uneti proizvoljan tekst sa tastature. Napraviti posebnu funkcija koja broji prosleđeni karakter. Iskoristiti funkciju za određivanje broja ponavljanja slova "p" u unetom tekstu.
Napraviti funkciju koja racuna faktorijel broja n. Unutar glavne funkcije ucitati n i iskoristiti prethodnu napravljenju funkciju za izracunavanje faktorijela tog broja.
Sabrati sve faktorijele od 1 do n, n unosi korisnik
Mihajlo je zaposlen honorarno i za svoj rad ostvaruje zaradu na dnevnom nivou. Datume i vrednost zarade toga dana on zapisuje u svoju svesku jer o tome vodi evidenciju. Napraviti program koji će pomoći Mihajlu da za učitane vrednosti datuma sa zaradom koje se unose tako da se u jednom redu može učitati po jedan datum sa dnevnom zaradom. Napraviti funkciju koja iz prosleđenog niza dnevne zarade izdvaja datume i zarade u dva posebna niza u kojima se ovi podaci definišu, datum kao string, a zarada kao realan broj. Datum se unosi u formatu dd_mm__gggg(datum, mesec,godina)
Primer:
Ulaz:
12_2_2021 2045.33
23_8_2021 1034.66
15_4_2021 1567.99
Izlaz:
Niz1:
12.02.2021
23.08.2021
15.04.2021
Niz2:
2045.31
1034.66
1567.99
Napraviti metodu(funkciju) za logovanje korisnika na osnovu unošenja korisničkog imena i lozinke. Dozvoliti korisniku da najviše 3 puta pokuša unošenje lozinke. Metoda treba da da odgovor da li je korisnik uspešno ulogovan ili nije. Funkciju pozvati iz glavne (main) metode. Ako metoda vrati da je korisnik ulogovan, onda ispisati poruku: "Korisnik je uspešno ulogovan", u suprotnom napisati "Korisnik nije uspešno ulogovan". Poznato je da je tačna kombinacija korisničkog imena i lozinke: admin korisnik.
Primer:
Ulaz:
Uneste vaše korisničko ime i šifru:
"Mika"
"korisnik1"
Ponovite unos netačna lozinka
"admin"
"korisnik"
Izlaz:
Korisnik je uspešno ulogovan
Napraviti funkciju koja određuje maksimum dva cela broja koji su prosleđeni kao parametri funkcije.
Učitati dva cela broja i odrediti njihov maksimum koristeći prethodno definisanu funkciju.
Napraviti funkciju koja ispituje da li je broj koji joj je prosleđen kao parametar, prost.
Učitati ceo broj i odrediti da li je prost koristeći prethodno definisanu funkciju.
Više o prostim brojevima pročitajte na web strani: Prosti brojevi i faktorizacija
Napisati funkciju koja ispisuje bitove od x sa leva na desno.
Napisati funkciju kojom se ispisuje količnik prirodnih brojeva M/N na k decimala
Napisati program kojim se za date prirodne brojeve n,k,p izračunava
S=Cnk-Cnk+1 +..+(-1)p*Cnk+p,
po formuli za računanje kombinacija
Napisati funkciju koja izveštava da li je na poziciji poz, argumenta funkcije(parametra) X nalazi 1.Pozicije bitova su numerisane, s desna ulevo, počev od pozicije 1.
Ako je broj M1 dobijen od broja M zapisom njegovih cifara u inverznom poretku, napisati program kojim se štampaju svi parovi trocifrenih brojeva(a,b) koji imaju svojstvo: Ako je A*B=C, to je A1*B1=C1. Na primer:
312 * 221 = 68952
213 * 122 = 25986
Ako S(n) označava zbir cifara u dekadnom zapisu broja n, odrediti n takav da je najbliži manji broj od 2003, za koji važi jednakost:
n+S(n)+S(S(n))+S(S(S(n)))+S(S(....S(n)....)=2003
U jednoj državi, u reformističkom rasploženju, izmenjen je redosled velikih slova alfabeta na sledeći način:
"MILOSCGRABDEFHJKNPQTUVWXYZ"
a) Napisati funkciju koja prema novom poretku slova poredi dva stringa
b) testirati funkciju tako što će se niz imena novoimenovanih ambasadora štampati u poretku definisanom po novom alfabetu
Napišite funkciju u C jeziku koja pomera sve elemente niza za jedno mesto ulevo (ciklična rotacija). Funkcija treba da modifikuje niz in-place i pri tome poslednji element treba da postane prethodno prvi element.
ciklus_levo koja prima parametre int A[] i int n.ciklus_levo i zatim prikažite rezultat pozivom pomoćne funkcije stampaj_niz.Kratko objašnjenje zadatka:
Cilj je da demonstrirate kako se niz menja direktno u funkciji (prosleđivanjem pokazivača na prvi element) i da razumete jednostavnu algoritamsku operaciju pomeranja elemenata (O(n) vremenska složenost).
Napišite C program koji sortira niz celih brojeva koristeći standardni
Bubble Sort algoritam. Implementirajte funkciju
bubble_sort koja prima niz i njegovu dužinu i sortira elemente
in-place. U main-u pročitajte veličinu niza, učitajte elemente,
pozovite sortiranje i prikažite rezultat.
bubble_sort(int A[], int n).stampaj_niz za ispis niza.Kratko objašnjenje zadatka:
Bubble sort poredi susedne parove i, po potrebi, ih zamenjuje tako da se najveći element "izbubbles" na kraj u jednoj iteraciji. Ponoviti postupak dok niz nije sortiran. Algoritam je jednostavan za implementaciju (stabilan), ali ima vremensku složenost O(n²).
#include <stdio.h>
/* Pomoćna funkcija za ispis niza */
void stampaj_niz(int A[], int n)
{
for (int i = 0; i < n; i++)
printf("%d ", A[i]);
printf("\n");
}
/* Bubble sort sa zastavicom: ako u prolazu nema zamena, niz je sortiran */
void bubble_sort(int A[], int n)
{
for (int prolaz = 0; prolaz < n - 1; prolaz++)
{
int bilo_zamena = 0;
for (int i = 0; i < n - prolaz - 1; i++)
{
if (A[i] > A[i + 1]) /* susedi u pogrešnom redosledu */
{
int temp = A[i];
A[i] = A[i + 1];
A[i + 1] = temp;
bilo_zamena = 1;
}
}
if (!bilo_zamena) /* niz je već sortiran */
break;
}
}
int main()
{
int n;
scanf("%d", &n);
int niz[n]; /* niz promenljive dužine (C99) */
for (int i = 0; i < n; i++)
scanf("%d", &niz[i]);
bubble_sort(niz, n);
stampaj_niz(niz, n);
return 0;
}
swapped kako bismo prekinuli izvođenje ako je u celom prolazu
bilo nula zamena — to znači da je niz već sortiran i možemo ranije izaći.
temp).
temp i flag).
Proširenje (opciono): Implementirajte verziju koja sortira u opadajućem redosledu ili koja vraća broj prolaza potrebnih za sortiranje.
Napišite program u C koji implementira funkciju koja obrće elemente celobrojnog niza in-place. Funkcija treba da zameni elemente tako da prvi postane poslednji, drugi postane pretposlednji itd. U main-u pročitajte veličinu niza, unesite elemente, pozovite funkciju za obrtanje i prikažite rezultat.
obrni_niz(int A[], int n) koja menja niz direktno.obrni_niz i zatim ispišite niz pomoću stampaj_niz.Kratko objašnjenje zadatka:
Cilj je demonstrirati manipulaciju elementima niza korišćenjem dva indeksa (levo/desno) i zamenu elemenata dok se ne pređu. Algoritam radi in-place sa O(1) dodatne memorije i vremenskom složenošću O(n).
#include <stdio.h>
void stampaj_niz(int A[], int n)
{
for (int i = 0; i < n; i++)
printf("%d ", A[i]);
printf("\n");
}
/* Obrće niz na licu mesta: menja prvi sa poslednjim, drugi sa pretposlednjim... */
void obrni_niz(int A[], int n)
{
int levo = 0, desno = n - 1;
while (levo < desno)
{
int tmp = A[levo];
A[levo] = A[desno];
A[desno] = tmp;
levo++;
desno--;
}
}
int main()
{
int n;
scanf("%d", &n);
int niz[n];
for (int i = 0; i < n; i++)
scanf("%d", &niz[i]);
obrni_niz(niz, n);
stampaj_niz(niz, n);
return 0;
}
obrni_niz koristi dva indeksa: levo počinje od nultog indeksa, a desno od poslednjeg elementa.
tmp,
zatim pomeramo levo++ i desno--. Time je zagarantovano da svaki par bude zamenjen samo jednom.
n <= 1 funkcija odmah vraća jer nema promena; ako je n veoma veliko razmotrite korišćenje dinamičke alokacije umesto VLA radi portabilnosti.
Proširenje (opciono): Napišite verziju koja vraća novi alocirani niz (ne menja original), ili generičku funkciju koja obrće niz tipa void* pomoću funkcije za zamenu elemenata (korisno za rad sa drugim tipovima).
Prethodno
|< Matrice primeriSledeće
Algoritmi-primeri >|
void mora u svakom slučaju da vrati vrednost naredbom return.main, u C++-u koristi referencu (int &x), a u C-u pokazivač.jeProst(n), zbirCifara(n).1. Šta je povratni tip funkcije koja samo ispisuje tekst?
2. Funkcija void uvecaj(int x) { x++; } se pozove sa uvecaj(a), gde je a = 5. Koliko je a posle poziva?
3. Kada je bolje deo programa izdvojiti u funkciju?