C/C++

Член од
20 декември 2011
Мислења
2
Поени од реакции
0
Ако може помош за семинарска во С++.
Задачата гласи :
ДССП која повикува функција која на влез прима низа од целоброен тип и број на елементи на низата. Функцијата да го печати производот на сите елементи поголеми од 30 со елементот со максимална вредност (максимумот).
Се обидов да го напишам кодот ама неработи ако може некој да помогне.
Благодарам однапред.


#include <cstdlib>
#include <iostream>

using namespace std;

void pecatiRezultat(int niza[], int n)
{
int max=niza[0];

for(int i=1; i<n; i++)
{
if (max < niza
)
{
max = niza;
cout << max;
}
}

int proizvod;

for (int i=1; i<n; i++)
{
if ((niza>=30) && (niza=max))
{
proizvod = niza * max;
cout << proizvod << endl;
}
}
}

int main()
{
int n;
cin >> n;
int niza
;

for (int i=0; i<n; i++)
{
cin >> niza;
}

pecatiRezultat;

system("PAUSE");
return EXIT_SUCCESS;
}
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Другар малце си ги измешал работите ти... и кога постираш код на форумов ставај го во CODE тагови (во едиторот имаш опција за внесување на код).

А кодот еве го:
Код:
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
 
void pecatiRezultat(int n, int niza[], int max)
{
    for(int i=0; i<n; i++)
    {
            if( niza[i] > 30 )
                cout << niza[i] * max << endl;
    }
}
 
 
int main(int argc, char *argv[])
{
    int n = 0, max = 0;
 
    cout << "Vnesete ja 'n': ";
    cin >> n;
 
    int niza[n];
 
    cout << "Vnesuvanje na elementi:" << endl;
    for(int i=0; i<n; i++)
    {
            cin >> niza[i];
            if( max < niza[i] )
                max = niza[i];
    }
 
    pecatiRezultat(n, niza, max);
 
    cout << endl;
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
значи овој код максимаалниот елемент го бара во main функцијата, ако треба во pecatiRezultat смени го тоа :)
 
Член од
20 декември 2011
Мислења
2
Поени од реакции
0
Другар малце си ги измешал работите ти... и кога постираш код на форумов ставај го во CODE тагови (во едиторот имаш опција за внесување на код).

А кодот еве го:
Код:
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
 
void pecatiRezultat(int n, int niza[], int max)
{
    for(int i=0; i<n; i++)
    {
            if( niza[i] > 30 )
                cout << niza[i] * max << endl;
    }
}
 
 
int main(int argc, char *argv[])
{
    int n = 0, max = 0;
 
    cout << "Vnesete ja 'n': ";
    cin >> n;
 
    int niza[n];
 
    cout << "Vnesuvanje na elementi:" << endl;
    for(int i=0; i<n; i++)
    {
            cin >> niza[i];
            if( max < niza[i] )
                max = niza[i];
    }
 
    pecatiRezultat(n, niza, max);
 
    cout << endl;
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
значи овој код максимаалниот елемент го бара во main функцијата, ако треба во pecatiRezultat смени го тоа :)
Почетник сум во C++ и не се снаоѓам добро околу кодовите , инаку max треба во pecatiRezultat да биде ама ќе го средам тоа :). Фала за помошта
 
Член од
11 декември 2011
Мислења
51
Поени од реакции
19
може ли некој да ми препорача некој професор/ка што дава приватни часови по програмирање во C? итно е...
 
Г

Грејвдигер

Гостин
Задачава работи, али друго ми е проблемов... али факинг 02:32 е, па да си прашам дали некој пократок начин за да се транспонира матрица? Занемарете ги функциите за запишување во датотека... ми треба само за транспонирањево... ме мрзи да ги бришам сеа. :)

Не ми е никаков проблем плус двапати да го ископирам for-от, али ако има пократко и подобро решение би завршило работа. Фала.


Код:
#include <stdio.h>
#define MAX 100
 
int main() {
    FILE *dat;
    int a[MAX][MAX], b[MAX][MAX];
    int i, j, m, n;
 
    if((dat = fopen("fajl.txt", "w")) == NULL) {
        printf("Ne moze da se zapise.");
        exit(-1);
    }
 
    printf("Vnesi broj na redici: ");
    scanf("%d", &m);
    printf("Vnesi broj na koloni: ");
    scanf("%d", &n);
 
    for(i = 1; i <= m; i++) {
        for(j = 1; j <= n; j++) {
            printf("a[%d][%d] = ",i,j);
            scanf("%d", &a[i][j]);
        }
    }
        for(i = 1; i <= m; i++) {
        for(j = 1; j <= n; j++) {
            b[i][j] = a[j][i];
        }
    }
    printf("\n");
    for(i=1;i<=m;i++) {
        for(j=1;j<=n;j++) {
                printf("b[%d][%d] = %d \n", i,j, b[i][j]);
                fprintf(dat, "b[%d][%d] = %d \n", i,j,b[i][j]);
        }
    }
fclose(dat);
}
 

Mind In Motion

Smirking Revenge
Член од
29 мај 2007
Мислења
816
Поени од реакции
46
Задачава работи, али друго ми е проблемов... али факинг 02:32 е, па да си прашам дали некој пократок начин за да се транспонира матрица? Занемарете ги функциите за запишување во датотека... ми треба само за транспонирањево... ме мрзи да ги бришам сеа. :)

Не ми е никаков проблем плус двапати да го ископирам for-от, али ако има пократко и подобро решение би завршило работа. Фала.


Код:
        for(i = 1; i <= m; i++) {
        for(j = 1; j <= n; j++) {
            b[i][j] = a[j][i];
        }
    }
    printf("\n");
    for(i=1;i<=m;i++) {
        for(j=1;j<=n;j++) {
                printf("b[%d][%d] = %d \n", i,j, b[i][j]);
                fprintf(dat, "b[%d][%d] = %d \n", i,j,b[i][j]);
}
Ако ти се бара да покажеш дека си работел на случајот постапно тогаш остајја како што ти е сеа ако не

Код:
  for(i = 1; i <= m; i++) {
        for(j = 1; j <= n; j++) {
            b[i][j] = a[j][i];
              printf("b[%d][%d] = %d \n", i,j, b[i][j]);
                fprintf(dat, "b[%d][%d] = %d \n", i,j,b[i][j]);
        }
    }
И пошто сум Nazi, првиот индекс во алоцираната меморија за низа е 0 а не 1, чисто ради good practice. Би ти дал 20 наместо 25 поени. :P
 
Г

Грејвдигер

Гостин
Ако ти се бара да покажеш дека си работел на случајот тогаш остајја како што ти е сеа ако не

Код:
  for(i = 1; i <= m; i++) {
        for(j = 1; j <= n; j++) {
            b[i][j] = a[j][i];
              printf("b[%d][%d] = %d \n", i,j, b[i][j]);
                fprintf(dat, "b[%d][%d] = %d \n", i,j,b[i][j]);
        }
    }
И пошто сум Nazi, првиот индекс во алоцираната меморија за низа е 0 а не 1, чисто ради good practice. Би ти дал 20 наместо 25 поени. :P
Онака си решавам, пошто утре полагам па запишување/читање од датотеки вежбав. Инаку мање битно како ми е пишано, важно е да функционира. Фала.... ја имав све стаено у еден for циклус и при транспонирањето една колона ми остануваше празна т.е го пополнуваше со 0 пошто при броењето ја лапнуваше.

Го ставам 1 за да не ми ги дава како a[0][1], a[0][2], ... туку да ми иде 11, 12... полесно ми е за пратење. :)
 
Член од
17 декември 2010
Мислења
19
Поени од реакции
1
moze mala pomosh so datoteki?

1.da se napise programa za dadena tekstualna datoteka na ekran ke gi ispecati rednite broevi na redovite vo datotekata koi imaat povece od 5 golemi bukvi.imeto na datotekata se zadava od komandnata linija.


2.da se napise programa koja ke procita datoteka so ime vlez.programata treba da go ispecati brojot na redovi,brojot na znaci i brojit na prazni mesta vo datotekata.


2.1da se napise programa koja ke procita datoteka so ime vlez.programata treba da go ispecati brojot na recenici vo datotekata.recenicite zavrsuvaat na nekoj od znacite:'.','?','!'.isto taka treba da ispecati i broj na znaci vo najdolgata recenica.


3.da se napise programa koja za dadena tekstualna datoteka ke go najde prosecniot broj na pojavuvanje na samoglaskite vo recenicite i ke go otpecati vo druga datoteka.pritoa site recenici megjusebno se odvoeni so tocka.imeto na vleznata i izleznata datoteka se zadavaat od komandna linija.


4.da se napise programa koja ke gi izbroi zborovite od tekstualna datoteka (cie ime se zadava kako prv argument pri povikuvanje na programata) koi go sodrzat znakot koj se vnesuva kako vtor argument pri povikuvanje na programata.zborovite se odeleni so 1 prazno mesto.broenjeto na zborovite vo datotekata koi go ispolnuvaat uslovot da se realizira vo posebna funkcija koja prima 2 argumenti(pokazuvac kon datotekata i znakoj koj se prebaruva) i vraca rezultat cel broj(brojot na zborovi koi go sodrzat znakot).na kraj na programata da se ispecati rezultatot od povikot na funkcijata.
 
Член од
5 јуни 2008
Мислења
3.632
Поени од реакции
5.724


На кој начин можам да ги печатам само тие што се означени?
i - редици, j-колони, матрица [n x n]
1. елементи над главна дијагонала се оние за кои j>i, a под неа се оние за кои i>j.
2. елементи над спoредна дијагонала се оние за кои i+j < n, а под неа се оние за кои i+j > n
Ќе си направиш во двата for циклуси еден услов кој истовремено ќе проверува дали елементот е над главна дијагонала И под споредна дијагонала (за елементите од десно) и уште еден if кој ќе ги двои само елементите кои се под главна дијагонала И над споредна дијагонала (елементите од лево).
10-ката зоштоти е заокружена? И таа се печати?
 
M

Mr.InF3ction

Гостин
i - редици, j-колони, матрица [n x n]
1. елементи над главна дијагонала се оние за кои j>i, a под неа се оние за кои i>j.
2. елементи над спoредна дијагонала се оние за кои i+j < n, а под неа се оние за кои i+j > n
Ќе си направиш во двата for циклуси еден услов кој истовремено ќе проверува дали елементот е над главна дијагонала И под споредна дијагонала (за елементите од десно) и уште еден if кој ќе ги двои само елементите кои се под главна дијагонала И над споредна дијагонала (елементите од лево).
10-ката зоштоти е заокружена? И таа се печати?
Фала многу за одговорот. После ми текна дека можам така да ги селектирам..завршив работа но заборавив дека тука сум прашал.
Инаку десетката е заукрежена бидејќи според задачата треба да ги печати сите тие елементи што се поголеми од последниот елемент и се наоѓаат во левиот или десниот триаголник.
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
@ne mi e jasno, a кој дел не ти е јасен... пробба ли нешто да решиш сам ?
Пошо од една страна не е работата јас или некој друг да ти ги реши ти само copy-paste, а од друга страна ептен ми е мука да пишувам код :/

Еве ти хинт ако може така да кажам:
- Читање на датотеки
- Карактерите ќе ги сопредуваш според ASCII (C++ ASCII Tutorial), празните карактери ќе ги споредуваш со со isspace и ако се работи за C++ можеш да ја користиш класата string во комбинација со size_t за пребарување на карактер во низа од знаци, а за зборовите можеш да ја користиш stringstream класата.

Пробај почни сам да решаваш па каде што ќе заглавуваш ќе пробаме да ја наредиме. :)
 
Член од
17 декември 2010
Мислења
19
Поени од реакции
1
@ne mi e jasno, a кој дел не ти е јасен... пробба ли нешто да решиш сам ?
Пошо од една страна не е работата јас или некој друг да ти ги реши ти само copy-paste, а од друга страна ептен ми е мука да пишувам код :/

Еве ти хинт ако може така да кажам:
- Читање на датотеки
- Карактерите ќе ги сопредуваш според ASCII (C++ ASCII Tutorial), празните карактери ќе ги споредуваш со со isspace и ако се работи за C++ можеш да ја користиш класата string во комбинација со size_t за пребарување на карактер во низа од знаци, а за зборовите можеш да ја користиш stringstream класата.

Пробај почни сам да решаваш па каде што ќе заглавуваш ќе пробаме да ја наредиме. :)


se soglasuvam so tebe.
probav sama no nesto slabo mi odi pa zatoa pobarav pomos
 
Г

Грејвдигер

Гостин
Прва задача
Со fgetc ќе идеш карактер по карактер и кога ќе наиде на голема буква (најдобро ти е процедура да искуцаш за тоа) да има некој бројчаш шо ќе го зголемува. А тука ќе имаш и променлива што ќе брои кој ред е и ако е исполнет условот ќе го печати бројот на редот.

Втора задача
Оваа е уште полесна. Ако наиде на \n - ред++, на знаци (ќе ги изнаредиш у кејс сите или со or... мислам дека нема готова функција за броење на специјални знаци) - znaci++, isspace - prazno++.

Втора.еден задача
Тука ќе имаш една променлива што ќе гледа дали си во реченица и кога ќе наиде на знак да брои и да го памти (првата реченица кога ќе ја заврши, таа ќе има максимум знаци и си споредува натама...). Ако наидеш на „.“, „?“ или „!“ - ред++. На крај испишуваш у некоја датотека со fprintf.

Трета задача
Како кај првата идеш со fgetc и имаш функција која ќе испитува дали буквата е самогласка и некоја променлива што ќе се зголемува за секое пронаоѓање на самогласка. На крај сметаш број_на_самогласки/5 и со fprintf ја испишуваш вредноста у датотеката.

Четврта задача
Пак идеш како кај претходните, само споредуваш со името на променливата што ја прима вредноста и ќе имаш друга променлива што ќе ти означува дали си во збор или не си и трета што ќе ти ги брои зборовите кои го содржат тој знак.

Не се некои комплицирани задачи, ме мрзи да пишам кодови сега и страшно ми се спие. У принцип се ти е објаснето, само треба да знаеш сега у код да го искуцаш ова... Ај добра ноќ сеа. :)

// Се изморив куцајки
 
Член од
12 април 2010
Мислења
491
Поени од реакции
143
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
char text[100],zbor[20];
int i,j,brojac=0;
printf("Vnesi text: ");
gets(text);
printf("Vnesi zbor: ");
scanf("%s",zbor);
for(i=0;i<strlen(text)-1;i++)
{
brojac=0;
for(j=0;j<strlen(zbor);j++)
{
while(zbor[j]==text&&i<strlen(text))
{
i++;
j++;
brojac++;

}
}
if(brojac==strlen(zbor))
printf("Pocetokot e so index broj %d\n",i-brojac);

}


if(brojac==0)
printf("Zborot ne postoi");


system("PAUSE");
return 0;
}
Ова е задачата ми треба:
Објаснување
Се дава детален опис за тоа како работи предложениот програм, и тоа генерално како е замислен алгоритамот, и линија по линија што прави програмот.



Комплексност
Се проценува времето на извршување на предложениот програм, и се дава проценка на редот на комплексноста на програмот.

Фала ви!
 

Kajgana Shop

На врв Bottom