Zahvaljujem se jos jednom za pomoc oko zadatka .... Tekst zadatka cu postaviti opet nakon zavrsenog posla u skoli, da i drugima posluzi kao primjer...Izvinjavam se svima zato sto sam trenutno sklonio tekst u roku 2 dana je nazad..Pozdrav
e jebiga bre...
knjigu u ruke i na posao
Ja sam počeo učit c++ ali ne mogu ti sa ovime pomoći jer još nisam došao do te razine.
Također moj savjet ti je da uzmeš knjigu u ruku i lagano kreni (tako ćeš i naučiti) a ako ti programiranje neće trebati onda pitaj nekoga iz razreda ili nekog poznanika da ti rješi jer mislim da ćeš ovdje jako teško dobiti rješenje iako postoji par duša koje bi ti mogle napisati kod.
To su osnove programiranja. Ništa teško, samo treba upaliti mozak i dati si truda.
Trebaš znati čitati txt datoteku i nekoliko petlji i ifova, koji ispis i to je to.
Koliko ti je hitno? :D
Drugi zadatak (kraci je pa ide prvi):
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define DULJINA_LINIJE 200
int main()
{
char ime[256], rijec[32], linija[DULJINA_LINIJE];
int l=1, n, duljina_l, duljina_r;
FILE *fh;
printf("Unesi ime datoteke: ");
gets(ime);
fh=fopen(ime, "r");
if (!fh)
{
printf("Datoteka \"%s\" ne postoji.\n", ime);
system("pause");
return 1;
}
do
{
printf("Unesi trazenu rijec: ");
gets(rijec);
if (!strlen(rijec))
printf("Rijec ne moze biti prazna!\n");
}
while(!strlen(rijec));
duljina_r=strlen(rijec);
printf("Rijec \"%s\" je pronadena u slijedecim linijama:\n", rijec);
while (!feof(fh))
{
memset(linija, 0, DULJINA_LINIJE);
fgets(linija, DULJINA_LINIJE, fh);
duljina_l=strlen(linija);
for (n=0; n<duljina_l-duljina_r; n++)
{
if (memcmp(rijec, linija+n, duljina_r)==0)
printf("%d\n", l);
}
l++;
}
fclose(fh);
system("pause");
return 0;
}
E bogami, ovaj je dulji. I za razliku od prethodnog, ovdje mi je dosta toga malo nedoreceno u definiciji zadatka, pa sam pretpostavio sto se trazi :D Zadatak je, iako dugacak za pojmove ovog podforuma zapravo dosta trivijalan, malo sam se nagnjavio u funkciji koja racuna interval (do te mjere da je cak i debugger vidio akcije), ali to pripisujem umoru.
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define GODINA 365
int godina[GODINA];
void uplata(char *komanda)
{
int najveca_uplata=0, n;
for (n=0; n<GODINA; n++)
if (godina[n]>najveca_uplata)
najveca_uplata=godina[n];
printf("Najveca uplata je %d\n", najveca_uplata);
return;
}
void isplata(char *komanda)
{
int najveca_isplata=0, n;
for (n=0; n<GODINA; n++)
if (godina[n]<najveca_isplata)
najveca_isplata=godina[n];
printf("Najveca isplata je %d\n", najveca_isplata*-1);
return;
}
void pozitivan(char *komanda)
{
int n, interval=0, trenutni_interval=-1, najdulji_interval=0;
for (n=0; n<GODINA; n++)
{
if (godina[n]<0)
{
if (trenutni_interval!=-1)
if (n-trenutni_interval>najdulji_interval)
najdulji_interval=n-trenutni_interval;
trenutni_interval=-1;
}
else
if (trenutni_interval==-1)
trenutni_interval=n;
}
if (godina[GODINA-1]>0)
if (n-trenutni_interval>najdulji_interval)
najdulji_interval=n-trenutni_interval;
printf("Najdulji interval kada je stanje bilo pozitivno je %d dana.\n", najdulji_interval);
return;
}
void veci(char *komanda)
{
char broj[11];
int n=3;
int Broj=0;
while (!isdigit(komanda[n]))
{
if (!komanda[n])
{
printf("Parametar nije naveden.\n");
return;
}
n++;
}
Broj=atoi(komanda+n);
printf("Dani kada je uplaceno vise od %d:\n", Broj);
for (n=0; n<GODINA; n++)
{
if (godina[n]>Broj)
printf("Dan: %d. Iznos: %d\n", n+1, godina[n]);
}
return;
}
void procitaj()
{
FILE *fh;
memset(godina, 0, sizeof(int)*GODINA);
int redni_broj, stanje;
fh=fopen("promet.txt", "r");
if (!fh)
{
printf("Datoteka \"promet.txt\" ne postoji!\n");
exit(1);
return;
}
while (!feof(fh))
{
fscanf(fh, "%d %d", &redni_broj, &stanje);
if (redni_broj<1 || redni_broj>GODINA)
{
printf("Nevazeci unos u datoteci!\n");
fclose(fh);
exit(1);
}
godina[redni_broj-1]=stanje;
}
fclose(fh);
return;
}
int main()
{
int izvrsi=1, n;
char komanda[50];
procitaj();
while (izvrsi)
{
printf("Unesi komandu\n[uplata] [isplata] [pozitivan] [veci] [0]\n");
gets(komanda);
for (n=0; n<strlen(komanda); n++)
komanda[n]=tolower(komanda[n]);
if (strcmp(komanda, "uplata")==0)
uplata(komanda);
else if (strcmp(komanda, "isplata")==0)
isplata(komanda);
else if (strcmp(komanda, "pozitivan")==0)
pozitivan(komanda);
else if (memcmp(komanda, "veci", 4)==0)
veci(komanda);
else if (strcmp(komanda, "0")==0)
izvrsi=0;
else
printf("Nepoznata komanda.\n");
printf("\n");
}
return 0;
}
E da, nemoj ga zaboraviti "konvertirati" u ekavicu, da se ne bi skuzilo da nije tvoja umotovorina ^^
Srećno xD
EDIT: trostruki post, valjda ce mi modovi progledati kroz prste :) ups...
Rješavanje zadataka ljudima koji su tek jedan dan na forumu i nisu pokazali nikakav trud niti zanimanje da sami pokušaju je najobičnije bacanje vremena. Takvi se ne trude nešto naučiti već samo naći nekoga da za njih rješi zadaću ili seminar.
Vjerojatno, ali rjesavao sam zadatke i puno nezahvalnijima, a i trebala mi je distrakcija da se prestanem vlastitim kodom baviti, glava me vec boli od njega :D
Zar ne bi to bilo jednostavnije napraviti da program sprema u text datoteku samo salda, gdje je prva stavka početni saldo.
Dakle, ako imamo datoteku sa saldima:
500
200
350
-25
750
Dalje računamo po redu:
1. najveća uplata - (u spremljenom int nizu kroz petlju provučemo niz i oduzimamo sljedeći-prethodni, a najveća uplata je najveća pozitivna vrijednost)
2. najveća isplata - (postupak kao za najveću uplatu, a najveća isplata je najveća negativna vrijednost)
3. najdulji interval bez minusa na računu - (proučemo niz kroz petlju i brojačem odredimo interval)
Ali, toliko od mene, neću napisati ni liniju koda dok ne vidim pokušaj, u pravu je profa @Tracer
A dobro, kad već kažeš da želiš učiti, evo ti prilika, naveo si da hoćeš zadatak u C++, pa ga onda i napiši u C++, dakle u C++ ovo bi se najbolje moglo napisati koristeći fstream objekt za čitanje iz datoteke i vector container za spremanje učitanih vrijednosti.
Ovo su natuknice:
#include<iostream>
#include<vector>
#include<fstream>
using namespace std;
int main()
{
ifstream unos; // instanciramo objekt fstream za čitanje
vector<int> saldo; // deklariramo vector container tipa int
int broj;
unos.open("saldo.txt"); // otvaramo datoteku za čitanje
while(!unos.eof()) // čitamo iz datoteke dok ne dođemo do kraja datoteke
{
unos >> broj;
saldo.push_back(int(broj)); // smještamo int vrijednosti u vector saldo koje smo pročitali iz datoteke
}
for(int i=0; i<saldo.size(); i++)
{
cout<< saldo.at(i) << endl; // da bi se ujerili da li smo dobro napravili ispisujemo vector saldo
}
unos.close(); // zatvaramo fstream za našu datoteku
return 0;
}
Ovo ti je link gdje ove stvari možeš naučiti, pa navali sokole.
http://www.cplusplus.com/doc/tutorial/
Zar ne bi to bilo jednostavnije napraviti da program sprema u text datoteku samo salda, gdje je prva stavka početni saldo.
Naravno da bi, ali zadatak nije tako glasio.
čini mi se da su tražili ispis najveće uplate, najveće isplate i intervala bez minusa, ako se to tražilo, dosta su salda.
Da, ali je bilo navedeno da se u datoteci proracun.txt nalazi i redni broj dana u godini i saldo koji se dogodio tog dana.
To bi bilo otprilike u ovom formatu:
1 -324
2 567
6 -15
Pretpostavljam da je redni broj dana u godini zapisan bas iz razloga sto ne moraju biti navedeni svi dani u godini. Ti zadatci uvijek pola toga ostave nedorecenim pa se moras posavjetovati sa kristalnom kuglom da bi shvatio sto profesor u biti zeli. Sto sam ja napravio, procitao cijelu datoteku u polje koje ima clanova koliko i dana u godini, svaki saldo stavio na odgovarajuce mjesto u polju, te onda vadio iz tog polja ono sto se trazi.
Bilo bi puno jednostavnije da je u zadatku pisalo, imas input takav i takav, a moras dobiti takve i takve outpute.
E, onda munjenog zadatka, pari biblijski , "U one dane 50.-tog dana od toga i toga . . ."
Dakle, traže nešto poput ovog: 150.-tog dana u godini završi plus na računu, time prođe doba "debelih krava" koje započe 21.-og dana Godine Gospodnje
Doba debelih krava dakle trajaše 129 dana, Amen.
E da je ovo staviti profi u cout<< ""; 

Ljudi, moze pomoc?
treba program za racunanje kvadrata i korijena.. kvadrat bez problema, ali me korijen muci
#include <stdio.h>
#include <math.h>
void main()
{
int a, b, c;
printf("Unesite broj a\n");
scanf("%d", &a);
printf("a = %d\n", a);
b = a * a;
printf("Kvadrat broja a je %d.\n", b);
c = sqrt (a);
printf("Korijen broja a je %d.\n", c);
}
bez boldanog dijela radi, sa boldanim dijelom javlja gresku, kako sad napravit korijen?
Zato što korijen toga broja nije integer nego float!
Stavi:
printf("Korijen broja a je %f.\n", c);
Zato što korijen toga broja nije integer nego float!
Stavi:
printf("Korijen broja a je %f.\n", c);
skuzio, hvala :D
#include<stdio.h>#include<math.h>int main(){float a;scanf("%f",&a);printf("%.2f", sqrt(a));return 0;}
Ovo kod mene radi, samo zaokruži decimale.
Mitsuoka,
umjesto
void main()
{
}
piši
int main()
{
return 0;
}
Takav je standard. 90% kompilera će ti dati warnning. I još nešto, slobodno stavi printf("%g",sqrt(a));
Bolji je output.
Normalno da će dati, kakva je logika da se main funkcija deklariše kao void?
Int je cjeli broj, a vraćanjem 0 se OS-u govori da je program uspješno završe, a drugi broj naznačava run-time error.
radim onako kako radimo na faksu, tako da necu mijenjat nista, ionako sam sva 3 programa uspio napravit i pokrenit... tako da e
radim onako kako radimo na faksu, tako da necu mijenjat nista, ionako sam sva 3 programa uspio napravit i pokrenit... tako da e
Džaba, reci profesoru da je to nepravilno, ti koristi kako smo ti mi rekli, jer mi nikad negriješimo
.
Ma, ok je, samo profesori rade krivo, pa i vi.
Evo pa gledaj .
Ta tema je završila u Bugu desetljeća.
Inače, kao što su i tamo rekli, void main je nepravilno, kao i iostream.h u C++.
Ma, ok je, samo profesori rade krivo, pa i vi.
Evo pa gledaj .
da samo sto je to srednja, a ovo faks....
ja se vodim teorijom da ima razloga zasto je ovako, a i u skriptama je tako...
https://elearning.fesb.hr/file.php/176/Skripta_za_laboratorijske_vjezbe.pdf tako da ja radim po skriptama... (ne znam mozete li otvorit bez logina)
sve radi meni, i profesorima kad im predam domaci, ionako mi je to sporedni predmet.
