Forumi


Povratak   PC Ekspert Forum > Računala > Software > Web dizajn, programiranje i ostalo
Ime
Lozinka

Odgovori
 
Uređivanje
Staro 31.05.2007., 20:30   #1
mc_fish
the luda ribetna
 
mc_fish's Avatar
 
Datum registracije: Aug 2004
Lokacija: Riblja mjesta u zagrebu:D
Postovi: 3,947
help

2. Formatirana datoteka "pjesme" sadrži tekstove pjesama. Za svaku pjesmu navedeno je ime i prezime
autora, ime pjesme, te stihovi pjesme. Svaki stih pjesme naveden je u jednom retku. U jednom
retku ne može biti više od 512 znakova.

\n \n ime i prezime autora \n naziv pjesme \n tekst pjesme...

Napisati funkciju koja će vratiti ime i prezime autora, te naziv pjesme koja sadrži najdulji stih.

Citiraj:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
struct pjesme{
char ip[80+1];
char imep[80+1];
char stih[512];
};

int ispis(char ip,char imep,char stih){
int i,d[]={},max,j;
char koi[]={};
struct pjesme p;
FILE *fout;
fout=fopen("pjesme.txt","r");
if(fout==0) return -1;
for(i=1;fscanf(fout,"\n%[^\n]%*c%[^\n]%*c%[^\n\n]%*c",p.ip,p.imep,p.stih)>0;i++){
d[i]=strlen(p.stih);
koi[i]=*p.stih;
printf("\nDuljina stiha %d :%d\n",i,d[i]);
printf("Ime i prezime autora: \n%s\nNaziv pjesme:\n%s\nTekst pjesme:\n%s\n\n\n",p.ip,p.imep,p.stih);
max=d[1];
if(d[i] > max){
j=i;
max=d[i];}
printf("\nNajdulji stih ima %d znakova,\na glasi: %s",max,koi[j]);
}fclose(fout);
}
int main(){
struct pjesme p;
ispis(&p.ip,&p.imep,&p.stih);
getch();
}
ovaklec ovo je prog kojeg sam napisao al mi se cmp rusi...wtf?!kolko ja vidim je sve 5...ili se onaj j brise nakon for petlje...

btw zasto nemrem pisati (printf) unutar if petlje...sam ja puko il je komp oso kvragu?
__________________
blup

mc_fish je offline   Reply With Quote
Staro 01.06.2007., 16:57   #2
Majestic
Devil
 
Majestic's Avatar
 
Datum registracije: Nov 2001
Lokacija: Zagreb
Postovi: 104
nit si ti puko nit je komp oso vragu. uzmi knjigu u ruke i uci ako te zanima programiranje, inace je bolje da postas tekst zadatka i molis dobre duse na ovom forumu da ti ga rijese.

EDIT: prije je puko kompajler
Majestic je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 02.06.2007., 11:51   #3
Majestic
Devil
 
Majestic's Avatar
 
Datum registracije: Nov 2001
Lokacija: Zagreb
Postovi: 104
letimicnim pregledom koda evo par "tipova":

tip 1: int d[]={} - velika greska, pa cak i za samog pocetnika; prilikom deklaracije niza mora se zadati velicina istog

tip 2: kod poziva funkcije ispis(&p.ip,&p.imep,&p.stih) za char tip se ne pise znak & (adresni operator)

tip 3: neznam jel ti struktura koda poremetila kopiranjem, ali svakako pripazi da stavljas razmake i odvajas cjeline; lakse se prati i ispravlja kod

p.s. stavi fajl pjesme tu ako ga imas.
Majestic je offline   Reply With Quote
Staro 02.06.2007., 17:49   #4
mc_fish
the luda ribetna
 
mc_fish's Avatar
 
Datum registracije: Aug 2004
Lokacija: Riblja mjesta u zagrebu:D
Postovi: 3,947
Citiraj:
letimicnim pregledom koda evo par "tipova":
stvarno letis

Citiraj:
tip 1: int d[]={} - velika greska, pa cak i za samog pocetnika; prilikom deklaracije niza mora se zadati velicina istog
kao 1. nisam pocetnik(pocetnici koriste string stlib conio itd lajberije tj headere??mislim da ne...isto tako ne rade s datotekama vec printf scanf...doduse fscanf i fprintf nije isto necemo ulazit u neformatirane datoteke i ostale binarne nakupine 0 i 1)
kao 2. deklaracije je integare polja a ne stringa/niza necemo ulaziti u vose dim. polja!inace tako dobivamo mogucnost NE punjenja/rezerviranja meme bezveze...drugim rijecima fora trik

Citiraj:
tip 2: kod poziva funkcije ispis(&p.ip,&p.imep,&p.stih) za char tip se ne pise znak & (adresni operator)
za svaki tip se pise osim za polja! jer je ujedno nulti index pocetak polja tj adresa...zato netreba tamo &

Citiraj:
tip 3: neznam jel ti struktura koda poremetila kopiranjem, ali svakako pripazi da stavljas razmake i odvajas cjeline; lakse se prati i ispravlja kod
da lakse se prati al kad c/p napravis svi tabulatori odu k' vragu...enivejz i meni se cini da je kompajler...

Citiraj:
p.s. stavi fajl pjesme tu ako ga imas.
ups sry zaboravio...btw na pocetku ti pise zadatak u tekstualnom obliku....pa si iz njega mogo i zakljucit format

enivejz tnx na pomoci jos javlja gresku a nemrem biti 1000% siher(999% jesam ) je mi je to za ocjenu -_-
a uz to i cura ima isti zadatak...ne zelim ostat bez jaja
Attached Files
File Type: txt pjesme.txt‎ (173 byte, 185 views)
__________________
blup

mc_fish je offline   Reply With Quote
Staro 02.06.2007., 17:54   #5
mc_fish
the luda ribetna
 
mc_fish's Avatar
 
Datum registracije: Aug 2004
Lokacija: Riblja mjesta u zagrebu:D
Postovi: 3,947
khm edita nema hehe

enivejz vidim da nisam bio jasan oko &...

daklec:svaka varijablja(izuzevsi polja) trebaju imati doticni operator radi pohranjivanja(rezrviranja) meme za isti...dok kod polja nulti index pokazuje na pocetak polja ilitiga pocetnu adresu

je da tamo ne treba doc...al sam ga stavio iz reda radi(ne smeta)
__________________
blup

mc_fish je offline   Reply With Quote
Staro 02.06.2007., 18:45   #6
Majestic
Devil
 
Majestic's Avatar
 
Datum registracije: Nov 2001
Lokacija: Zagreb
Postovi: 104
Lightbulb

ne, ne, ma sad mi je sve jasno. nadam se da ces dobit ocjenu sukladnu sa iskazanim znanjem.
Majestic je offline   Reply With Quote
Staro 02.06.2007., 19:09   #7
mc_fish
the luda ribetna
 
mc_fish's Avatar
 
Datum registracije: Aug 2004
Lokacija: Riblja mjesta u zagrebu:D
Postovi: 3,947
Citiraj:
Autor Majestic Pregled postova
ne, ne, ma sad mi je sve jasno. nadam se da ces dobit ocjenu sukladnu sa iskazanim znanjem.
muahzaha wanabe cinik

os pomoc il ne?! sa mojim znanjem imam 5 a ti?

btw sam da znas

za ispis(&p.ip,&p.imep,&p.stih); treba pisati tocno ispis(*p.ip,*p.imep,*p.stih);

intagare u pointer joj joj sam zasluzio 2?



dakle da prevedem tvoje rijeci...NEMAS POJMA
__________________
blup

mc_fish je offline   Reply With Quote
Staro 02.06.2007., 19:23   #8
immortal
Kernel panic
 
Datum registracije: Jan 2006
Lokacija: Zg
Postovi: 522
Program mora biti u C-u ili može biti i u C++-u?
Kolko sam shvatio zadatak, ispisati se treba samo ime autora i ime pjesme one pjesme s najvećim stihom, a tvoj program ispisuje svakog autora, pjesmu i stih... I u zadatku piše da pjesma može imati više stihova. Znači treba učitati ime pjesme, autora i odredi duljinu najvećeg stiha za tu pjesmu (pa tako do kraja fajla) i onda na kraju ispisati samo autora i pjesmu s najduljim stihom.
__________________
Keyboard error or no keyboard present
Press F1 to continue, DEL to enter SETUP
immortal je offline   Reply With Quote
Staro 02.06.2007., 19:38   #9
mc_fish
the luda ribetna
 
mc_fish's Avatar
 
Datum registracije: Aug 2004
Lokacija: Riblja mjesta u zagrebu:D
Postovi: 3,947
daj mici ovo ko je iskljucio edit i delete...tor opet prckas
__________________
blup

mc_fish je offline   Reply With Quote
Staro 02.06.2007., 19:40   #10
mc_fish
the luda ribetna
 
mc_fish's Avatar
 
Datum registracije: Aug 2004
Lokacija: Riblja mjesta u zagrebu:D
Postovi: 3,947
trebo bi mi c al c++isto moze...da moze biti vise stihova(al u jednom redu) npr

\n\nhladno pivo\nnije sve tako sivo\nnije sve bla bla bla stihovi\n\nneki drugi autor


inace mene sam zanima kak iz fajla ono sto procitam sa svojim fscanf(fout,"\n%[^\n]%*c%[^\n]%*c%[^\n\n]%*c",p.ip,p.imep,p.stih)

smjestim u string...the only problem, jednostavno vec 2 dana blokiram naime kanio sam nes tipa

for(i=1;fscanf(fout,"\n%[^\n]%*c%[^\n]%*c%[^\n\n]%*c",p.ip,p.imep,p.stih)>0;i++){
d[i]=strlen(p.stih);
koi[i]=kopiraj na index "i" cijeli fscanf
max=d[1];
if(d[i]>max){
max=d[i];
j=i; pa ovdje jednostavno svaki max izmjenim sa j...ilitiga kad upisem printf koi[j] baci mi max string tj naziv bla bla bla
}


moja ideja eh sad kao sto rekoh blokiram i nikak da mi padne napamet nesto pametno
__________________
blup

mc_fish je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 03.06.2007., 17:18   #11
mc_fish
the luda ribetna
 
mc_fish's Avatar
 
Datum registracije: Aug 2004
Lokacija: Riblja mjesta u zagrebu:D
Postovi: 3,947
Citiraj:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

int main ( int argv, char *argc ) {

char imeAutora[70+1];
char imePjesme[100+1];
char stih[512+1];
char imeAutoraMax[70+1]="";
char imePjesmeMax[100+1]="";
char stihMax[512+1]="";

FILE *file;
char fileName[ ] = "pjesme.txt";

int counter = 0, counter2 = 0;

if ( ( file = fopen ( fileName, "r" ) ) == NULL ) {
printf ( "\n File missing ! " );
getche ( );
exit ( 1 );
}

while ( fscanf ( file, "%*c%*c%70[^\n]%*c%100[^\n]%*c", imeAutora,
imePjesme ) == 2 ) {

if ( counter == 0 ) {
strcat (imeAutoraMax, imeAutora );
strcat (imePjesmeMax, imePjesme );
}

while ( fscanf( file, "%512[^\n]%*c", stih ) == 1 ) {
if ( counter2 == 0 ) {
strcat ( stihMax, stih );
}
if ( strlen ( stih ) > strlen ( stihMax ) ) {
strcpy ( imeAutoraMax, imeAutora );
strcpy ( imePjesmeMax, imePjesme );
strcpy ( stihMax, stih );
}
counter2++;
}

counter++;
}

printf ( "\n Ime datoteke: %s", fileName );
printf ( "\n Ime autora: %s\n\n Ime pjesme: %s", imeAutoraMax , imePjesmeMax);

getche ( );
fclose ( file );

return 0;
}

evo ak nekog zanima uspjedoh nakon puno salica kava
__________________
blup

mc_fish je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Odgovori



Pravila postanja
Vi ne možete otvarati nove teme
Vi ne možete pisati odgovore
Vi ne možete uploadati priloge
Vi ne možete uređivati svoje poruke

BB code je Uključeno
Smajlići su Uključeno
[IMG] kod je Uključeno
HTML je Isključeno

Idi na