PDA

Pogledaj cijelu verziju : C++



debeli1975
02-02-2011, 11:52
imali smo ovu vjezbu da napravimo u visiu, a sad bi trebali u c-u
posto ja pojma nemam programirat u c-u, trebam pomoc da mi netko rijesi, i napise neko kratko objasnjenje komandi. profesor ce me pitat da nesto promjenim (vjerojatno da program ispise maksimalnu vrijednost umjesto minimalne), pa da znam i kak se to radi


Nacrtajte dijagram toka za program koji će pronaći i ispisati najmanju vrijednost (minimum) u zadanom intervalu brojeva.

Brojevi koji se pretražuju ne unose se kao ulazne vrijednosti već pretpostavite da su na neki drugi način pohranjeni u programu u obliku polja određenog naziva, na primjer vrijednost[i]. Elementima polja dakle pristupate pomoću indeksa polja (i u primjeru polja vrijednost[i]). Čitanje na primjer trećeg člana polja i upisivanje u varijablu x piše se kao x = vrijednost[2]S(polja u računalstvu se broje od nultog člana).

Pretpostavite za potrebe ovog zadatka da polje ima najviše 1000 članova pohranjenih od vrijednost[0]Sdo vrijednost[999]. Vrijednosti članova polja su slučajne cijelobrojne vrijednosti između 0 i 65535.

Krajnje vrijednosti se zadaju na način da program pita korisnika koja je početna vrijednosti, a zatim i koja je završna vrijednost. Vrijednosti su cijeli brojevi i predstavljaju indekse unutar kojih pretražujete polje.

Ukoliko korisnik zada završnu vrijednost manju od početne, ispisuje se poruka o kraju rada i program prestaje s radom. U suprotnom se nakon ispisa vrijednosti porgram vraća na početak i izvršava ponovo.

cham3leon
02-02-2011, 12:20
C ili C++? Ovaj prvi znam i mislim da bih znao ovo, ali C++ nikad nisam ni tako.

debeli1975
02-02-2011, 12:46
Pri izradi programa možete rabiti programski jezik po želji, ali samo ako ćete seminar prezentirati na vlastitom prijenosnom računalu... bla bla bla ... morate rabiti neku okolinu koja je tamo instalirana: DevC++, SmallBasic ili Visual Studio (VB, ili C/C++). Razlog je taj što tijekom obrane seminara morate samostalno napraviti manju intervenciju u programu i pokazati da možete rekreirati potrebne izvršne datoteke i pokrenuti promijenjenu inačicu programa.

Edi Sm187
02-02-2011, 19:08
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int vrijednost[1000], i, dg, gg, min; /*definicija varijabli*/
srand((unsigned)time(NULL)); /*inicijaliziranje "klice" za rand funkciju*/
for(i=0; i<1000; i++)
vrijednost[i]=rand(); /*inicijalizacija polja, ovo se moze, po tekstu zadatka, zanemariti*/

printf("Upisite krajnje vrijednosti pretrazivanja: ");
scanf("%d %d", &dg, &gg);
if(dg>gg) printf("\nGreska! Gornja granica je manja od donje!\n" ); /*uvjet: ako je gornja granica manja od donje ispisuje se poruka*/
else/*a ako ne kreni traziti najmanju vrijednost u zadanom intervalu (od dg-tog do gg-tog broja, sto znaci od clana sa [dg-1]Sindeksom do clana polja sa [gg-1]Sindeksom)*/
{
min=vrijednost[dg-1];/*varijablu min treba inicijalizirati, to se moglo napraviti postavljajuci je na neku maksimalnu vrijednost, no najcesce se varijabli pridruzuje 1. clan polja(intervala, u ovom slucaju)*/
for(i=dg;i<gg; i++)/*setanje po polju, krecemo od 2. clana intervala, posto smo prvog vec pridruzili minimumu, pa ga ne treba provjeravati*/
if(vrijednost[i]<min) min=vrijednost[i];/*uvjet: ako je trenutna vrijednost intervala manja od spremljene u varijabli min trenutnu vrijednost spremi u varijablu min*/
printf("\nNajmanja vrijednost u zadanom intervalu je %d.\n", min);/*kad zavrsi s prelaskom polja, ispisi najmanju vrijednost*/
}
system("pause");
return 0;
}

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int vrijednost[1000], i, dg, gg, min;
srand((unsigned)time(NULL));
for(i=0; i<1000; i++)
vrijednost[i]=rand();

printf("Upisite krajnje vrijednosti pretrazivanja: ");
scanf("%d %d", &dg, &gg);
if(dg>gg) printf("\nGreska! Gornja granica je manja od donje!\n" );
else
{
min=vrijednost[dg-1];
for(i=dg;i<gg; i++)
if(vrijednost[i]<min) min=vrijednost[i];
printf("\nNajmanja vrijednost u zadanom intervalu je %d.\n", min);
}
system("pause");
return 0;
}
Ako nešto nije jasno, slobodno pitaj.

U programu sam inicijalizirao polje pomoću funkcije rand() koja daje vrijednosti do 32767, a ne do 65k koliko piše u zadatku. U zadatku se traži da se pretpostavi polje, pa bi tebi bilo najvažnije proučiti dio programa nakon praznog reda, polje je inicijalizirano tek tako da program radi.

Poslije for petlje bi se inače trebao otvoriti novi blok naredbi sa vitičastim zagradama pa bi to izgledalo ovako:


for(i=0; i<1000; i++)
{
---naredbe---
}

No kad se u bloku nalazi jedna naredba, što je ovdje u oba slučaja slučaj (lol), zagrade se mogu izostaviti.

I da, sve što je napisano ovako /*teksttekst*/ su komentari i slobodno ih možeš pobrisati.
system("pause") generira poruku i čeka bilokakav unos s tipkovnice.