C/C++

Член од
4 декември 2008
Мислења
28
Поени од реакции
13
Здраво...:salut:
Дали некој знае како се решава задачава?

Да се креира класа Zbor2, преку креирање на соодветни
header и implementation фајлови, која ќе ги содржи
следните податоци:
• zbor, кој претставува знаковна низа.
Да се дефинира default конструктор, со кој податочниот
член се иницијализира со празна знаковна низа, и
конструктор со 1 аргумент (збор кој е знаковна низа). Да
се дефинираат следните функции членови на класата:
• функција која ја враќа моментната вредност во
податочниот член на овој објект.
• int codePointAt(int index), која го враќа ASCII кодот на
карактерот во дадениот index, при што index може да има
вредности од 0 до должината на zbor. Во случај да index е
помал од 0 или не е помал од должината на zbor, да се
испечати порака за грешка.
• int compareToIgnoreCase(Zbor2 drugZbor), ги споредува
2-та збора, податочниот член на овој објект (zbor) и
drugZbor, лексикографски игнорирајќи ја разликата меѓу
мали и големи букви. Лексикографската споредба на 2 збора
се врши на следниот начин. Ако 2 збора имаат различни
карактери во 1 или повеќе позиции, и нека k e најмалиот
таков индекс, тогаш зборот чиј k-ti карактер има помал
ASCII код (вредност) велиме дека лексикографски претходи
на другиот збор, и обратно за вториот велиме дека
лексикографски следи по првиот збор. Ако 2-та збора имаат
исти карактери, тогаш пократкиот збор лексикографски
претходи на подолгиот.
Резултатот на функцијата е: -1 ако zbor лексикографски
претходи (при што се игнорира разликата меѓу мали и големи
букви) на drugZbor, +1 ако zbor лексикографски следи (при
што се игнорира разликата меѓу мали и големи букви) по
drugZbor, и 0 ако zbor и drugZbor се исти (при што се
игнорира разликата меѓу мали и големи букви).
• boolean contains(Zbor2 drugZbor), враќа true ако и само
ако податочниот член на овој објект (zbor) го содржи во
себе drugZbor, во друг случај враќа false.
• Zbor2 copyValueOf(char[] data, int offset, int count),
враќа објект од класа Zbor2 чиј податочен член претставува
подзбор на специфираната знаковна низа data, и тоа
почнувајќи од позицијата offset, вклучувајќи count број на
карактери (позиции).
Да се креира фајл koristi.cpp, во кој ќе се демонстрира
користењето на штотуку креираната класа Zbor2 и сите
нејзини функции членови. При креирањето на класата
забрането е да се користат готови библиотечни класи и
функции (освен iostream).


Малку е долга...:wink:

 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Ухх... тешко дека некој би се нафатил да објаснува вака, ептен има за објаснување тука.
Едино да почнеш (доколку сеуште не си почнала) да ја решаваш задачата и каде што ќе заглавуваш дел по дел да ја наредиме, ама вака џабе ќе пишувам пост од 100 реченици зашто на крај нема ништо да разбереш. :/

П.С. На дел од функциите кои се наведени горе сорсот можеш на нет да го најдеш. :)
 
A

apidrone

Гостин
Да се напише класа GeoLokacija за опишување на апсолутната географска локација на место на Земјината површина, опишана преку географската должина (double) и географската ширина (double). Да се напише соодветен конструктор, деструктор, set и get методи и да се преоптовари операторот за печатење <<. Потоа, да се напише класа NaselenoMesto, каде се чуваат информации за името (низа од знаци), бројот на жители (цел број) и географската локација (објект од класата GeoLokacija) на населеното место. Да се напише соодветен конструктор, деструктор и set и get методи. Исто така, да се напишат и следните функции:
- double rastojanie (NaselenoMesto &m), за пресметка на растојанието меѓу две населени места
- void prikaziInfo(), за приказ на информациите за населеното место.
Од класата NaselenoMesto да се изведе класата Grad во која дополнително се чува информација дали се работи за главен град (bool). Доколку станува збор за главен град, името треба да се печати со сите големи букви (со помош на функцијата toupper(char)). Да се напише класа Pateka во која се чува динамички алоцирана низа од објекти од класата NaselenoMesto и вкупен број на населени места (цел број). За оваа класа да се напишат конструктор и деструктор. Да се преоптовари операторот +=, за додавање на ново населено место во низата, како и операторот []. Да се напише функција која ќе го печати растојанието меѓу секои две последователни населени места во низата, како и вкупната должина на патеката (збир од должините на сите патеки). Да се напише main функција во која ќе се тестираат класите.

Ако некој не го мрзи, нека помага :)
 

good girl

Неискусна!
Член од
1 јули 2009
Мислења
66
Поени од реакции
0
Да се креира Студентски Дневник. За секој Студент да биде дадено Име, Презиме, Број на индекс, поени за редовност, поени од прв колоквиум, поени од втор колоквоум, поени за редовност и поени за семинарска работа. Во дневникот да бидат предвидени опции за: внесување, испис, пресметка на вкупен број поени, и пребаруване по Број на индекс. Програмата да се тестира со податоци од 10 студенти. За секој студентда се пресметува вкупниот број поени, под услов за секој од колоквиумите да има минимум по 41 поен, по Формулата Вкупно поени= поени од редовност+поени за семинарска+( поени од прв колоквоум+поени од втор колоквиум)/2. Кога на некој од колоквиумите нема минимум поени да се исписува знакот “/“, при прегледот.

Еве една задача ве молам за помош :wink:
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Кој дел од задачава неможеш да го направиш или кој не ти е јасен ?

Значи на кратко, ако е вака задачата, ако не ти се бараат класи и структури тогаш класично креирај низи за секој податок (име, презиме бр на поени...) со соодветен податочен тип, полни ги паралелно, а за сите функции ќе се ориентираш по index-от од елементот во низата и тоа би било тоа.
 
Член од
24 јануари 2008
Мислења
1.135
Поени од реакции
140
Programa vo koja se generira spisok na student.Studentite da bidat vneseni kako struktura,sostavena od ime,prezime i broj na bodovi.Da se vnesi broj na student i posle vnesot, da se sortira spisok spored broj na bodovi,po opagacki redosled.
#include <cstdlib>
#include <iostream>
# include <stdio.h>
using namespace std;
// Rabota so povrzani strukituri- stringovi i broevi
// ispis %s % d obrni vnimanie
struct struktura // definiranje na struktura
{
char ime[100];
char prezime[100];
int bodovi;
};
int main(int argc, char *argv[])
{
int n,i,j;
struct struktura spisok[100];
struct struktura pom;
// Vnes na broj elementi
printf("Spisok na kandidati i poeni \n \n");
printf("\n Vnesete broj na kandidati: ");
scanf("%d", &n);
//Vnes na ime, prezime, bodovi i direkten zapis vo
struktura
for (i=0;i<n;i++)
{
printf("\n Vnesi %d ime:", i+1);
scanf("%s", &spisok.ime);
printf(" i prezime:");
scanf("%s", &spisok.prezime);
printf(" i bodovi:");
scanf("%d", &spisok.bodovi);
}
// sortiranje
for(i=0;i<(n-1);i++)
for(j=0;j<(n-1);j++)
if (spisok[j].bodovi<spisok[j+1].bodovi)
{
pom=spisok[j];
spisok[j]=spisok[j+1];
spisok[j+1]=pom;
}
printf("\n Rangiranje na kandidati spored osvoeni poeni
\n");
for (i=0;i<n;i++)
printf("\n%d. [%s %s]: %d \n", i+1, spisok.prezime,
spisok.ime, spisok.bodovi);
getchar();
system("PAUSE");
return EXIT_SUCCESS;
}

За тој што ми ја бараше задачава еве ја постирав тука решена целосно
 
Член од
24 јануари 2008
Мислења
1.135
Поени од реакции
140
ДАли можи некој да постира тука пример за Графичка задача ... нека постира некоја графичка задача има некој доброволец ? :)
 

Адиктус

Дрф.
Член од
26 јануари 2008
Мислења
725
Поени од реакции
33
ДАли можи некој да постира тука пример за Графичка задача ... нека постира некоја графичка задача има некој доброволец ? :)
Пробај со allegro..
Библиотека е, нешто како „Game development“, но има доста работи за графика (bmp фајлови, цртање на геометриски тела и текст)..
http://alleg.sourceforge.net/
http://www.allegro.cc/
 

ZoraNaSlobodata

Чоечко суштество
Член од
5 ноември 2008
Мислења
2.736
Поени од реакции
111
Здраво луѓе, прам нешто со Линкд Листс еве го когдот
Код:
#include <cstdlib>
#include <iostream>
#include <string>


using namespace std;

struct student;

struct student
{
   int index;
   char Ime[15];
   char Prezime[15];
   char predmet[20];
   int prosek;
   student *next;
};

void vnesi(student *a);
void ispis(student *a);
void prebaruvanje();



int main()
{
    student *mystudent = new student;
    
    student *sleden;
          
  int izbor = -1;
  student *pocetok = mystudent;
    
 
          
  while(izbor != 0) 
{    
    cout<<"Pritisnete 1 za vnes na nova lista, 2 za povtoren vnes na student, 3 za ispis "<<endl;
    
    cin>> izbor;
    
    switch(izbor) {
                  
    case 1: 
         vnesi(mystudent);
         
    break;
         
    case 2:
         sleden = new student;
         mystudent->next = sleden;
         vnesi(mystudent);
    cout<<" - - "<<pocetok->Ime<<endl;
         
    break;
    
    case 3:
      ispis(pocetok);
    break;
    
    default :
            
    cout<<"Odberete edna od dadenite opcii "<<endl;
}   

}
    system("PAUSE");
    return 0;
}


void vnesi(student *a)
{    
     a->next = NULL;
     
     cout<<"Vnesi go indeksot "<<endl;
     cin >>a->index;
     cout<<"Vnesi go Imeto "<<endl;
     cin >>a->Ime;
     cout<<"Vnesi go Prezimeto "<<endl;
     cin >>a->Prezime; 
     
}

void ispis(student *a)
{
   
    
   
  //    while((a->next!=0) || (a->next == 0))
  //  {   
        
       cout<<"Indeks "<<a->index<<endl;
       cout<<"Ime    "<<a->Ime<<endl;
       cout<<"Prezime "<<a->Prezime<<endl;
       
   //    if(a == 0)
  //     {
//            break;
          //  a= a->next;
                    
 //      }

  //  }
}
void prebaruvanje()
{}
Проблемот е шо покажувачот poceten go mestam da bidi ednakov na mystudent - ама ко ќе му се смени вредноста(локацијата кон која покажва)на mystudent му се менва и на poceten, па така во функцијата шо ми служи за пребарување неможам да почнам од првиот.
Знам дека е нешто глупо ама ич немам концентрација ми се спие ми се корни, ве молам за помош.
 
Член од
14 јануари 2008
Мислења
1.341
Поени од реакции
162
Ама си се распукал со покажувачиве, прштат на сите страни :) Кажи што сакаш да направиш, т.е. што е задачата.
 
Член од
15 мај 2008
Мислења
947
Поени од реакции
99
Со посебна функција најди по првиот член од поврзаната листа и додели го на pocetok.
 
Член од
15 декември 2009
Мислења
6
Поени од реакции
0
Здраво на сите.Знам дека дека е малце голема програмава но дали ќе може некој да ја реши.задачава ми е за семинарска.фала ви однапред :)
Да се креира класа Zbor1, преку креирање на соодветни
header и implementation фајлови, која ќе ги содржи
следните податоци:
• zbor, кој претставува знаковна низа.
Да се дефинира default конструктор, со кој податочниот
член се иницијализира со празна знаковна низа, и
конструктор со 1 аргумент (збор кој е знаковна низа). Да
се дефинираат следните функции членови на класата:
• функција која ја враќа моментната вредност во
податочниот член на овој објект.
• char charAt(int index), која ја враќа вредноста на
карактерот во дадениот index. Index може да има вредности
од 0 до должината на zbor, т.ш. првиот карактер во zbor е
со индекс 0, вториот со индекс 1, итн. Во случај да index
е помал од 0 или не е помал од должината на zbor, да се
испечати порака за грешка.
• int compareTo(Zbor1 drugZbor), ги споредува 2-та збора,
податочниот член на овој објект (zbor) и drugZbor,
лексикографски базирано на ASCII кодовите на секој
карактер во зборовите. Ако 2 збора имаат различни
карактери во 1 или повеќе позиции, и нека k e најмалиот
таков индекс, тогаш зборот чиј k-ti карактер има помал
ASCII код (вредност) велиме дека лексикографски претходи
на другиот збор, и обратно за вториот велиме дека
лексикографски следи по првиот збор. Ако 2-та збора имаат
исти карактери, тогаш пократкиот збор лексикографски
претходи на подолгиот.
Резултатот на функцијата е: -1 ако zbor лексикографски
претходи на drugZbor, +1 ако zbor лексикографски следи по
drugZbor, и 0 ако zbor и drugZbor се исти.
• Zbor1 concat(Zbor1 drugZbor), враќа објект од класа
Zbor1 чиј податочен член ќе претставува конкатанација на
zbor и drugZbor, т.е. ќе го додаде drugZbor на крајот на
zbor.
• Zbor1 copyValueOf(char data[]), враќа објект од класа
Zbor1 чиј податочен член ја претставува специфираната
знаковна низа data.
Да се креира фајл koristi.cpp, во кој ќе се демонстрира
користењето на штотуку креираната класа Zbor1 и сите
нејзини функции членови. При креирањето на класата
забрането е да се користат готови библиотечни класи и
функции (освен iostream).
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Здраво...:salut:
Дали некој знае како се решава задачава?

Да се креира класа Zbor2, преку креирање на соодветни
header и implementation фајлови, која ќе ги содржи
следните податоци:
• zbor, кој претставува знаковна низа.
Да се дефинира default конструктор, со кој податочниот
член се иницијализира со празна знаковна низа, и
конструктор со 1 аргумент (збор кој е знаковна низа). Да
се дефинираат следните функции членови на класата:
• функција која ја враќа моментната вредност во
податочниот член на овој објект.
• int codePointAt(int index), која го враќа ASCII кодот на
карактерот во дадениот index, при што index може да има
вредности од 0 до должината на zbor. Во случај да index е
помал од 0 или не е помал од должината на zbor, да се
испечати порака за грешка.
• int compareToIgnoreCase(Zbor2 drugZbor), ги споредува
2-та збора, податочниот член на овој објект (zbor) и
drugZbor, лексикографски игнорирајќи ја разликата меѓу
мали и големи букви. Лексикографската споредба на 2 збора
се врши на следниот начин. Ако 2 збора имаат различни
карактери во 1 или повеќе позиции, и нека k e најмалиот
таков индекс, тогаш зборот чиј k-ti карактер има помал
ASCII код (вредност) велиме дека лексикографски претходи
на другиот збор, и обратно за вториот велиме дека
лексикографски следи по првиот збор. Ако 2-та збора имаат
исти карактери, тогаш пократкиот збор лексикографски
претходи на подолгиот.
Резултатот на функцијата е: -1 ако zbor лексикографски
претходи (при што се игнорира разликата меѓу мали и големи
букви) на drugZbor, +1 ако zbor лексикографски следи (при
што се игнорира разликата меѓу мали и големи букви) по
drugZbor, и 0 ако zbor и drugZbor се исти (при што се
игнорира разликата меѓу мали и големи букви).
• boolean contains(Zbor2 drugZbor), враќа true ако и само
ако податочниот член на овој објект (zbor) го содржи во
себе drugZbor, во друг случај враќа false.
• Zbor2 copyValueOf(char[] data, int offset, int count),
враќа објект од класа Zbor2 чиј податочен член претставува
подзбор на специфираната знаковна низа data, и тоа
почнувајќи од позицијата offset, вклучувајќи count број на
карактери (позиции).
Да се креира фајл koristi.cpp, во кој ќе се демонстрира
користењето на штотуку креираната класа Zbor2 и сите
нејзини функции членови. При креирањето на класата
забрането е да се користат готови библиотечни класи и
функции (освен iostream).


Малку е долга...:wink:

Ухх... тешко дека некој би се нафатил да објаснува вака, ептен има за објаснување тука.
Едино да почнеш (доколку сеуште не си почнала) да ја решаваш задачата и каде што ќе заглавуваш дел по дел да ја наредиме, ама вака џабе ќе пишувам пост од 100 реченици зашто на крај нема ништо да разбереш. :/

П.С. На дел од функциите кои се наведени горе сорсот можеш на нет да го најдеш. :)
Цела задача на готово тешко дека некој ќе се нафати да ја решава туку така. :)
 

ZoraNaSlobodata

Чоечко суштество
Член од
5 ноември 2008
Мислења
2.736
Поени од реакции
111
Ама си се распукал со покажувачиве, прштат на сите страни :) Кажи што сакаш да направиш, т.е. што е задачата.
Хахаха.

Вака, сакам да напрам Linked List шо ќе ми служи за евиденција на студенти со помош на структурата студент struct student(индекс, име, презиме, ...).

Е сега имам две функци - за внес на нов студент и за испис на цела листа. student *Mystudent mi e покажувач шо го доделвам да покажва на првиот објект а вториот пок.student *pocetok го mestam da bidi = na mystudent.Со то (се надевам) дека тие двата покажват на ист објект.

Е сега - како шо при внесвањето на нови членој(креирањето на нови објекти) mystudent ја менва локацијата кон која покажва, така и pocetok ја менва.А колку шо знам од c++ ова не треба да се случи.
 
Член од
14 јануари 2008
Мислења
1.341
Поени од реакции
162
Вака. Основно правило во Ц кога праќаш параметар во функција е следново: доколку имаш намера да ја смениш вредноста на параметрот, ја праќаш неговата адреса, во спротивно ја праќаш неговата вредност.

Е сега, погледни како го праќаш ти покажувачот mystydent. Ти всушност ја праќаш вредноста од покажувачот, а воедно сакаш да ја промениш. Така да тоа не чини.

Погледни го следниов код:

Код:
void vnesi(student **a)
{    


         student *nov = new student;
         nov->next = NULL;
         cout<<"Vnesi go indeksot "<<endl;
         cin >>nov->index;
         cout<<"Vnesi go Imeto "<<endl;
         cin >>nov->Ime;
         cout<<"Vnesi go Prezimeto "<<endl;
         cin >>nov->Prezime; 

// Клучниот дел 

         if((*a)->next == NULL){
              nov->next = (*a);
             (*a) = nov;
             return;
         }
         nov->next = (*a)->next;
         (*a)->next = nov;
     
}
На ваков начин примаш адреса од покажувачот, значи покажувач на покажувач, и затоа во овој случај можеш да ја промениш вредноста на покажувачот (вредност на покажувач не е исто што и вредност на која што истиот покажува).

Ова е класичен Ц-стил. Може да се реши поелегантно, доколку направиш структура која во себе ке ја содржи главата на листата и со тоа ке ги избегнеш двојните покажувачи.

Код:
struct Lista{
    student *lista;
};
Еве ти го погрдиот кодот.

Код:
#include <cstdlib>
#include <iostream>
#include <string>


using namespace std;

struct student;

struct student
{
   int index;
   char Ime[15];
   char Prezime[15];
   char predmet[20];
   int prosek;
   student *next;
};

void vnesi(student **a);
void ispis(student *a);
void prebaruvanje();
void brisi(student **a);



int main()
{
    student *pocetok = new student;
    pocetok->next = NULL;

    int izbor = -1;
    
 
          
  while(izbor != 0) 
  {    
    cout<<"Pritisnete 1 za vnes na nova lista, 2 za povtoren vnes na student, 3 za ispis "<<endl;
    cin>> izbor;    
 
    switch(izbor) {
    case 1: 

         brisi(&pocetok);
         pocetok = new student;
         pocetok->next = NULL; 
         vnesi(&pocetok);
         break;
         
    case 2:        
         vnesi(&pocetok);           
         break;
    
    case 3:
        ispis(pocetok);
        break;
    
    default :            
        cout<<"Odberete edna od dadenite opcii "<<endl;
}   

}
    system("PAUSE");
    return 0;
}


void vnesi(student **a)
{    


         student *nov = new student;
         nov->next = NULL;
         cout<<"Vnesi go indeksot "<<endl;
         cin >>nov->index;
         cout<<"Vnesi go Imeto "<<endl;
         cin >>nov->Ime;
         cout<<"Vnesi go Prezimeto "<<endl;
         cin >>nov->Prezime; 
         if((*a)->next == NULL){
              nov->next = (*a);
             (*a) = nov;
             return;
         }
         nov->next = (*a)->next;
         (*a)->next = nov;
     
}

void ispis(student *a)
{

      while(a->next != NULL){
          cout << a->index << endl;
          cout << a->Ime << endl;
          cout << a->Prezime << endl;
          
          a = a->next;
      }
          
       
}
void brisi(student **a)
{
     if((*a)->next == NULL){
         delete (*a);
         return;
     }
     else
         brisi(&((*a)->next));
}

void prebaruvanje()
{}
 

Kajgana Shop

На врв Bottom