Pomoc oko rada u Dev C++

goormaster

Početnik
Poruka
6
Ja kao stariji brat ponudim se da pomognem malom burazu oko programiranja, posto on ide na popravni (blago njemu :) ) a veze nema o tome. I tako sad zapadoh i ja u problem jer sam mu ponudio pomoc ,izgleda da nisam vise u programerskoj formi kao nekada :) . Uglavnom uradio sam nesto ali ovo jednostavno nzm, tj znam donekle ali nisam siguran da se to trazi pa vas molim za pomoc oko ovih zadataka. Makar mi postavite neke linkove za slicne zadatke ako nije problem !!!
Unapred se zahvaljujemo :dash:


1. Formirati niz slučajnih brojeva od n elemenata (n ≤ 50). Napisati program koji računa sumu elemenata deljivih sa 12, sortira dati niz po opadajućem ili rastućem poretku, i prikazuje ga na ekranu.

2. Kažemo da je kvadratna matrica magični kvadrat ako je suma brojeva u svakoj vrsti i svakoj koloni jednaka. Napišite program koji učitava prirodni broj n (n<=10) i kvadratnu n x n matricu celih brojeva, proverava je li ona magični kvadrat, te ispisuje odgovarajuću poruku. Elemente matrice formirati od slučajnih brojeva u opsegu od 0 do 9.

3. Napisati program koji će:
a) odrediti pojavljivanje podstringa p u stringu s.
b) odrediti broj reči u stringu.
c) odrediti broj reči u stringu koje pocinju sa 'B'.

4. Napisati program koji učitava niz od n učenika, sortira ih po ocenama ili po prezimenu (u zavisnosti od izabrane opcije) i ispisuje dobijene rezultate. Struktura ucenik treba da sadrži sledeće elemente: ime, prezime i ocena.

5. Napisati program koji čita sadržaj jedne tekstualne datoteke i upisuje ovaj sadržaj u drugu tekstualnu datoteku na sledeći način: svaku reč u posebnom redu. Imena datoteka, kao i sadržaj prve datoteke zadaju se preko tastature

6. Napisati program koji kreira i ažurira sadržaj tekstualne datoteke (prodavnica.txt) sa sledećim podacima: proizvod, proizvodjac, sifra_proizvoda i cena, i prikazuje na ekranu sledeće opcije:
D – dodavanje proizvoda spisku
P – pronalazenje cene na osnovu sifre proizvoda
S – prikaz na ekranu spiska
I – izlaz (sa cuvanjem izmena)
 
Evo resenja prvog zadatka,samo sto sam ovde morao da ukljucim i genericke algoritme i vektore zbog sortiranja niza :)
Kod:
#include <cstdlib>
#include <ctime>
#include <iostream.h>
#include <vector.h>
#include <algorithm>
using namespace std;
int main()
{
    int suma=0;
    srand(time(NULL));
    cout << "Koliko elemenata ce imati niz?" << endl;
    int br;
    cin >> br;
    int niz[br];
    vector<int>vec(br);
    for(int i=0;i<br;i++)
            vec[i]=rand();
    vector<int>::iterator iter=vec.begin();
    vector<int>::iterator kraj=vec.end();
    sort(iter,kraj);
    cout << "Ispis:" << endl;
    for(int i=0;i<br;i++)
    {
            niz[i]=vec[i];
            if(niz[i]%12==0)
            suma=suma+niz[i];
            cout << niz[i] << endl;
    }
    cout << "Suma je " << suma << endl;
    system("PAUSE");
    return 0;
}
 
Evo ti i kod za poslednji zadatak.Pre kompajliranja koda ne zaboravi da napravis jednu txt datoteku sa nazivom prodavnica.I jos jedna napomena,kada prvi put pokrenes program pritisni r kako bi se baza inicijalizovala i program ce se nakon toga odmah zatvoriti.I nakon toga program opet pokreni normalno i sve ce raditi kako treba :)
Kod:
#include <fstream.h>
#include <iostream.h>
#include <cstdlib>
#include <conio.h>
#include <string.h>
#define MAX 200
using namespace std;
int main()
{
    bool pronadjeno;
    string sifra,naziv;
    int c;
    string proizvodi[MAX][2]; //naziv,sifra
    int cena[MAX];
    ifstream ispis("prodavnica.txt");
    for(int i=0;i<MAX;i++)
    {
            ispis >> proizvodi[i][0];
            ispis >> proizvodi[i][1];
            ispis >> cena[i];
    }
    ispis.close();
    char key;
    do
    {
         pronadjeno=false;
         system("cls");
         cout << "MENI" << endl;
         cout << "Resetuj bazu [R](obavezno pri prvom pokretanju programa)" << endl;
         cout << "D  dodavanje proizvoda spisku" << endl;
         cout << "P  pronalazenje cene na osnovu sifre proizvoda" << endl;
         cout << "S  prikaz na ekranu spiska" << endl;
         cout << "I  izlaz (sa cuvanjem izmena)" << endl;
         key=_getch();
         switch(key)
         {
                    case 'r':
                    {
                         ofstream upis("prodavnica.txt");
                         for(int i=0;i<MAX;i++)
                         {
                                 upis << " none " << "none " << '0' << endl;;
                         }
                         upis.close();
                    }
                    break;
                    case 'd':
                         system("cls");
                         cout << "Unesite naziv proizvoda,sifru i njegovu cenu" << endl;
                         cin >> naziv >> sifra >> c;
                         for(int i=0;i<MAX;i++)
                         {
                                 if(proizvodi[i][0]=="none")
                                 {
                                                              proizvodi[i][0]=naziv;
                                                              proizvodi[i][1]=sifra;
                                                              cena[i]=c;
                                                              break;
                                 }
                         }
                         break;
                    case 'p':
                         system("cls");
                         cout << "Unesite sifru proizvoda" << endl;
                         cin >> sifra;
                         for(int i=0;i<MAX;i++)
                         {
                                 if(sifra==proizvodi[i][1])
                                 {
                                                           cout << "Cena: " << cena[i] << endl;
                                                           pronadjeno=true;
                                 }
                         }
                         if(pronadjeno==false)
                         cout << "Proizvod ne postoji" << endl;
                         system("PAUSE");
                         break;
              case 's':
              system("cls");
              cout << "SPISAK:" << endl;
              for(int i=0;i<MAX;i++)
              {
              if(proizvodi[i][0]!="none")
              cout << "sifra: " << proizvodi[i][1] << " naziv: " << proizvodi[i][0] << " cena: " << cena[i] << endl;
              }
              system("PAUSE");
                         break;
                    case 'i':
                         {
                             ofstream upis("prodavnica.txt");
                             for(int i=0;i<MAX;i++)
                             upis << proizvodi[i][0] << " " << proizvodi[i][1] << " " << cena[i] << endl;
                             upis.close();
                         }
                         break;
                    default:
                            cout << "Nepostojeca opcija" << endl;
                            break;
         }
    }
    while(key!='i'&&key!='r');
    return 0;
}
 
Poslednja izmena:
A evo i treceg zadatka:
a)
Kod:
#include <iostream.h>
#include <cstdlib>
#include <string.h>
using namespace std;
int main()
{
    char znak;
    string s,s1;
    cout << "Unesite neki tekst" << endl;
    while((znak=getchar())!=EOF) //sve dok uneseni znak nije jednak CTRL+Z
    {
         s.push_back(znak);
    }
    cout << "Unesite podnisku za pretragu" << endl;
    cin >> s1;
    int poz=s.find(s1);
    if(poz==string::npos)
    cout << "Niska nije pronadjena" << endl;
    else
    cout << "Niska je pronadjena na poziciji " << poz << endl;
    system("PAUSE");
    return 0;
}
b)
Kod:
#include <iostream.h>
#include <cstdlib>
#include <string.h>
#include <ctype.h>
using namespace std;
int main()
{
    char znak,next,prev=' ';
    int br=0;
    string s;
    cout << "Unesite neki tekst" << endl;
    while((znak=getchar())!=EOF) //sve dok uneseni znak nije jednak CTRL+Z
    {
         s.push_back(znak);
    }
    for(int i=0;i<s.size();i++)
    {
            next=s[i];
            if((isspace(prev)||ispunct(prev))&&isalpha(next))
            ++br;
            prev=next;
    }
    cout << "Pronadjeno " << br << " reci" << endl;
    system("PAUSE");
    return 0;
}
c)
Kod:
#include <iostream.h>
#include <cstdlib>
#include <string.h>
#include <ctype.h>
using namespace std;
int main()
{
    char znak,next,prev=' ';
    int br=0;
    string s;
    cout << "Unesite neki tekst" << endl;
    while((znak=getchar())!=EOF) //sve dok uneseni znak nije jednak CTRL+Z
    {
         s.push_back(znak);
    }
    for(int i=0;i<s.size();i++)
    {
            next=s[i];
            if((isspace(prev)||ispunct(prev))&&isalpha(next)&&(next=='b'||next=='B'))
            ++br;
            prev=next;
    }
    cout << "Pronadjeno " << br << " reci koje pocinju sa slovom b" << endl;
    system("PAUSE");
    return 0;
}
 
Hvala ti i za ovaj zadatak Miki. :)

Ma opusteno bilo mi je zadovoljstvo da pomognem nekome,a i nisam imao nekih vecih obaveza. :)
Evo uradio sam ti drugi i peti zadatak. :P
2.
Kod:
#include <iostream.h>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
    cout << "Unesite velicinu kvadratne matrice 1-10: ";
    int n,s1,s2;
    bool mag=true;
    cin >> n;
    if(n>10||n<=0)
    return -1;
    int matrica[n][n];
    srand(time(NULL));
    for(int x=0;x<n;x++)
    {
            for(int y=0;y<n;y++)
            {
             matrica[x][y]=rand()%10;
             cout << matrica[x][y] << " ";
            }
            cout << endl;
    }
    for(int c=0;c<n;c++)
    {
            s1=0;
            for(int x=0;x<n;x++)
            s1=s1+matrica[x][c];
            for(int x=0;x<n;x++)
            {
                    s2=0;
                    for(int y=0;y<n;y++)
                    s2=s2+matrica[x][y];
                    if(s1!=s2)
                    mag=false;
            }
    }
    if(mag==true)
    cout << "Ova matrica je magicna" << endl;
    else
    cout << "Matrica nije magicna" << endl;
    system("PAUSE");
    return 0;
}
5.
Kod:
#include <iostream.h>
#include <cstdlib>
#include <fstream>
#include <string.h>
#include <conio.h>
using namespace std;
int main()
{
    char slovo;
    string nam1,nam2,buf;
    cout << "Unesite naziv prve datoteke u koju cete upisati sadrzaj(sa ekstenzijom,npr dat1.txt)" << endl;
    cin >> nam1;
    cout << "Unesite naziv druge datoteke" << endl;
    cin >> nam2;
    cout << "Ok,a sada unesite vas sadrzaj u prvu datoteku(unos sadrzaja ce biti prekinut kada pritisnete enter" << endl;
    while((slovo=getch())!=13)
    {
     cout << slovo;
     buf.push_back(slovo);
    }
    cout << endl;
    ofstream dat1_o(nam1.c_str());
    dat1_o << buf;
    dat1_o.close();
    ifstream dat1_i(nam1.c_str());
    ofstream dat2_o(nam2.c_str());
    while(!dat1_i.eof())
    {
                        dat1_i >> buf;
                        dat2_o << buf << endl;
    }
    dat1_i.close();
    dat2_o.close();
    system("PAUSE");
    return 0;
}
 
Poslednja izmena:
Evo,posto nemam vremena da odradim sad to u Visual Studiu,nasao sam ti neki kod na netu za kalkulator,ovo mozes da kompajliras bez problema u Dev C++.Ovde je koriscen C++ i FLTK.Znaci pokreni dev C++ i idi a new project.Odaberi onu karticu gde pise GUI i tamo odaberi FLTK.I onda tamo kopiraj ovaj kod i kompajliraj da vidis jel radi :)
PS. Nisam mogao sav kod da postavim ovde u postu pa sam ti to ubacio u txt fajl :)
 

Prilozi

ehhh,,,,,,, miki, miki...... uz tvoju pomoc cemo odskolovati vrhunske programere :D
Bolje pusti da se malo pomuce i da razumeju ceo mehanizam programiranja.

BTW nisam znao da se u skolama koristi Dev C++. Malo cudan izbor.
 
Izgleda da si me pomesao sa nekim, ja nisam nikakva tvoja "sreca". Sto se tice kalkulatora, nesto stvarno nije bilo u redu, ali mi je, uz pomoc nekih koji se razumeju u to bolje od mene, proradilo. Mogu samo da ti kazem da je miki dobio devetku kod mog profe i hvala mu jos jednom:D!!!
 
BTW nisam znao da se u skolama koristi Dev C++. Malo cudan izbor.
Slazem se,ali sam bio u zurbi i morao sam da nadjem neki kod za kalkulator,otkud znam mozda je bilo hitno pa rekoh ae i ja da pomognem koliko mogu :D
A inace u DEV C++ sam radio samo konzolne programe jos dok sam ucio osnove C++ :D
Sada sve GUI aplikacije radim u visual studiu,ili eventualno ako radim C++ GUI sa Qt,onda nadjem neki bolji text editor,tamo sav kod lepo odradim i kasnije to kompajliram. :)
 
Treba mi rjesenje za ova 2 zadatka u c++

*1 Napisati program koji sa tastature ucitava ime neke tekstualne datoteke a zatim prebroji kolkiko se puta pojavljuju pojedina mala I velika slova I sortoira po broju pojavljivanja ((od onih koji se najvise pojavljuju prema onim koji se najmanje pojavljuje)Na ekranu stampati u parovima:Slovo I broj pojavljivanja tog slova.
*2 Napisati program razdvoj koji dobija 4 argumenta iz komandne linije: Ulazna datoteka dve izlazne datoteke I ceo broj k.program treba da iz ulazne datoteke procita brojeve I sve koji su veeci ili jednaki od k upise u prvu izlaznu a sve manje u drugu izlaznu datoteku.

Moze li drugi ovako zapocet

#include <stdio.h>

int main ( int argc, char *argv[] ) {

if ( argc != 1 )
 
Slazem se,ali sam bio u zurbi i morao sam da nadjem neki kod za kalkulator,otkud znam mozda je bilo hitno pa rekoh ae i ja da pomognem koliko mogu :D
A inace u DEV C++ sam radio samo konzolne programe jos dok sam ucio osnove C++ :D
Sada sve GUI aplikacije radim u visual studiu,ili eventualno ako radim C++ GUI sa Qt,onda nadjem neki bolji text editor,tamo sav kod lepo odradim i kasnije to kompajliram. :)

sto se tice editora, toplo ti preporucujem Notepad++ ukoliko ga vec ne koristis. Isprobao sam ih na desetine ali ovaj mi je ubedljivo najbolji
 
Свиђа ми се Notepad++. Могу све боје да му подесим. Могу да увећам. Могу да добијем прелом.

Испробаћемо га како ради са великим фајловима. PSPad код њих уме да забагује.
 

Back
Top