C++ zadatak

poruka: 2
|
čitano: 4.346
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
neaktivan
offline
C++ zadatak

Pozdrav. Na faksu sam dobio zadatak koji ne znam rješiti. Da li netko zna rješenje.

 

Stvorite polje od n tekstova. Pronađite tekst s najviše riječi i kopirajte ga u string T. U stringu T zamijenite svako slovo prve riječi sa znakom “&“. U funkciji sad pronađite sumu ASCII kodova promjenjenog stringa T te u funkciji neq pretvorite dobivenu sumu ASCII kodova u sustav s bazom19. Stvorite jednodimenzionalno dinamičko polje N u koje čete upisati brojeve znakova svake riječi stringa T čija je duljina veća od 2 znaka. Ispišite polje tekstova, promjenjeni string T, dobiveni ekvivalent u sustavu s bazom 19 i dinamičko polje N.

 

#include "stdafx.h"//ukljucene header fajla #include <iostream>//ukljucenje header fajla #include <string.h>//uljucenje header fajla #define redak 100 #define max 100 #define baza 19 using namespace std;//koristenje imenskog prostora std objekta int sad(char suma[])//zaglavlje funkcije sad tipa int sa jednim argumentom {//otvaranje bloka naredbi int rezultat=0;//deklariranje i inicijalizacije varijable na nulu for(int i=0; i<strlen(suma); i++)//prebrojavanje svakog slova string suma if(suma[i]>=97 && suma[i]<=122)//ako se slovo nalazi u ovom intervalu ascii kodova rezultat+=suma[i];//onda ga prebroji varijabli rezultat return rezultat;//vrati reultat preko povratnog tipa }//zatvaranje bloka naredbi void neq(int suma)//zaglavlje funkcije {//otvaranje bloka naredbi if(suma>baza-1)//ako je suma veca od baze -1 onda neq(suma/baza);//onda napravi rekurziju funkcije , pritom sa sumu podjelis sa bazom if(suma%baza>9)//ako je ostatak pri djeljenju veci od 9 cout<<char(suma%baza+55);//onda ispisi slovo else cout<<suma%baza;//ispis ostatak }//zatvaranje bloka void main()//zaglavalje funkcije main tipa void {//otvaranje bloka naredbi funkcije main int n;//deklariranje varijable n char N[redak][max];//deklariarnje 1d polja za unos stringova int brojrazmaka=0;//deklariranje varijable brojrazmaka i inicijalizacija na nulu char T[redak];//deklariranje varijeble tipa char int sumaascii;//deklariranje varijable sumaascii cout<<"Upisite broj rijeci koji zelite unjeti ";//ispis zahtjeva za korisnike cin>>n;//upis vrijednosti u variablu n cin.ignore();//ignoriranje unosa for(int i=0; i<n; i++)//zaglavlje for petlje za upis {//otvaranje bloka naredbi for petlje cout<<"Upisite "<<i+1<<". rijec: "; cin.getline(N[i], max); }//zatvaranje bloka naredbi for(int i=0; i<n; i++) //for petlja {//otvaranje bloka naredbi vanjske for petlje int razmak=0;//deklaracija i inicijalizacija na nulu for(int j=0; j<strlen(N[i]); j++) if(N[i][j]==' ' || j==0)//ako smo naisli na razmak ili ako je i==0(prva rijec) razmak++;//onda razmak uvecaj za 1 if(brojrazmaka<razmak)//ako vrijedi uvjet {//otvaranje bloka naredbi funkcije if brojrazmaka=razmak;//onda brojrazmaka postavi na novu vrijednost strcpy(T, N[i]);//kopiranje u string }//zatvaranje bloka naredbi funkcije if }//zatvaranje vanjske petlje for(int i=0;T[i]!=' ';i++) { T[i]='&'; } sumaascii=sad(T);//slanje vrijednosti u funkciju kdo i pri zavrsetku funckje spreamanje vrijedsnoti u sumaascii cout<<endl<<"Ekvivalent sume u sustavu sa bazom "<<baza<<" je: ";//ispis ekvivalenta neq(sumaascii);//slanje vrijednosti u f-ju i ispisivanje unutar te funckije cout<<endl;//novi red int *H=new int[n];//deklariranje i inicijalizacija dinamickog polja tipa int for(int i=0; i<n; i++) *(H+i)=strlen(N[i]);//pridruzivanje vrijednosti dinamickom polju cout<<endl;// novi red for(int i=0; i<n; i++)//for petlja za ispis vrijednosti dinamickog polja if( strlen(N[i])>2) cout<<i+1<<". Rijec ima "<<*(H+i)<<" znakova."<<endl;//ispis dinamickog polje cout<<endl;//novi red delete []H;//dealokacija dinamickog polja H=0;//preusmjeravanje pokazivaca na nulu cout<<"U stringu se nalazi: "<<T<<endl<<endl;//ispis string for(int i=0; i<n; i++)//for petlja za ispiis cout<<i+1<<". upisana rijec je: "<<N[i]<<endl;//ispis cout<<endl;//novi red }//zatvaranje bloka naredbi funkcije main

 


Ono na čemu sam zapeo je ispis jednodimenzionalnog dinamičkog polja u kojem su upisani brojevi znakova svake riječi stringa T čija je duljina veća od 2 znaka.Meni program ispisuje ukupan broj znakova svakog stringa.

 
0 1 hvala 0
16 godina
neaktivan
offline
C++ zadatak

Pitaj u ovoj temi, vjerojatno će ti prije pomoć.

 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice