C/C++

M

Mr.InF3ction

Гостин
Forever_alone
Main функцијата ? па само ќе ја повикаш функцијтаа со некој број како влезен параметар. :icon_lol:

PHP:
#include <stdio.h>
 
int funkcija(unsigned int broj){
    if(broj<=0)
        return 0;
 
    return broj%10 + (funkcija(broj/100));
}
 
int main(int argc, const char * argv[])
{
    printf("%d",funkcija([SIZE=11px][FONT=lucida grande][COLOR=#333333]35987594[/COLOR][/FONT][/SIZE]);
 
}
 
Член од
5 јануари 2008
Мислења
2.806
Поени од реакции
3.062
Програма која за дадена текстуална датотека ќе го најде просечниот број на појавувања на самогласките во речениците и ќе го отпечати во друга датотека.
Притоа сите реченици меѓусебно се одвоени со точка. Името на влезната и излезната датотека се задаваат од командна линија, а доколку не се зададени да се испечати начин на употреба на програмата.


Во задачава колку што сфатив првата датотека е за читање текст, втората за читање и пишување број.
Ако може некој да ми го поправи кодот кај што ми е грешно : \

PHP:
#include<stdio.h>
int samoglaska(char c)
{
    if(c=='A' || c=='E' || c=='I' || c=='O' || c=='U' || c=='a' || c=='e' || c=='i' || c=='o' || c=='u')
    return 1;
    else return 0;
}
void pecati(FILE *pd)
{
    int i;
    for(;;)
    {
        if((i=fgetc(pd))==EOF)
        break;
        putchar(i);
    }
}
void kopiraj(FILE *pd,FILE *pd1)
{
    int i,max,br=0,rec=0,s=0,prosek;
    for(;;)
    {
        if((i=fgetc(pd))==EOF)
        break;
        if(samoglaska(i))
        br++;
        else if(i=='.')
          {
              rec++;
              s+=br;
              br=0;
          }
    }
    prosek=s/rec;
    fputc(prosek,pd1);
 
}
int main(int argc,char *argv[])
{
    FILE *pd,*pd1;
    if(argc==1)
    {
        printf("Upatstvo: %s ime_na_datoteka\n",argv[0]);
        return (-1);
    }
    if(argc!=3)
    {
        printf("\greska pri pustanej na aplikacija\n");
        exit(1);
    }
    if((pd=fopen(argv[1],"r"))==NULL)
    {
        printf("Greska");
        exit(1);
    }
      if((pd1=fopen(argv[2],"wb+"))==NULL)
    {
        printf("\n Greska vo kreiranjeto datoteka.\n");
        exit(1);
    }
    pecati(pd);
    rewind(pd);
    kopiraj(pd,pd1);
    rewind(pd1);
    printf("\n Ova se iskopiralo vo vtorata datoteka %s: \n",argv[2]);
    pecati(pd1);
    fclose(pd);
    fclose(pd1);
    system("pause");
    return 0;
 
}
 
Член од
5 јануари 2008
Мислења
2.806
Поени од реакции
3.062
Дечки ако некој знае горнаа задача да ми каже што да поправам .. :\
--- надополнето: 20 август 2012 во 17:22 ---
 
Член од
19 август 2012
Мислења
2
Поени од реакции
1
Дечки ај ако може помош за оваа задача?
Да се напише програма која од непознат број на цели броеви кои се внесуваат преку тастатура ќе ги испише броевите кои се деливи со претходно внесениот број.
фала :)
 
Член од
5 јануари 2008
Мислења
2.806
Поени од реакции
3.062
елементите на главна дијагонала и споредна да си ги заменат своите места (матрици).
Ја решив по мое, дали може да ми одземат бодови зошто вака е решена ?
направив две низи една со елементи од главна една со елементи од споредна и после само ги ставив обратно во матрицата :D
PHP:
#include<stdio.h>
int main()
{
    int a[100][100],g[100],s[100],sp,n,i,j,p,k=0,pom,t=0;
    printf("Vnesi dimenzija na kvadratnata \n" );
    scanf("%d",&n);
    printf("Vnesi ja matricata\n ");
    for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    {
        printf("a[%d,%d]=",i,j);
        scanf("%d",&a[i][j]);
    }
    for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    {
        if(i==j)
        {
            g[k]=a[i][j];
            k++;
        }
        if(i+j==n-1)
        {
            s[t]=a[i][j];
            t++;
        }
    }
    t=0;k=0;
        for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        {
            if(i==j)
            {
            a[i][j]=s[t];
            t++;
            }
            if(i+j==n-1)
            {
                a[i][j]=g[k];
                k++;
            }
 
        }
 
        printf("matricata so smeneti mesta izgleda vaka :\n");
        for(i=0;i<n;i++)
        {
            printf("\n");
        for(j=0;j<n;j++)
        printf("%d\t",a[i][j]);
        }
        system("pause");
        return 0;
}
 
Член од
10 јули 2012
Мислења
87
Поени од реакции
54
елементите на главна дијагонала и споредна да си ги заменат своите места (матрици).
Ја решив по мое, дали може да ми одземат бодови зошто вака е решена ?
направив две низи една со елементи од главна една со елементи од споредна и после само ги ставив обратно во матрицата :D
Никој не може да ти каже дали би ти земале бодови. Тоа ти треба нај добро да знаеш каков критериум ти има професорот. Иначе и на овој начин добиваш точна задача, али мислам дека макс бодови не би добил (мое мислење). Задачиве се многу лесни, ако некој не знае да ги реши на никаков начин, стварно не е за поминување. Али за нај високата оцена, веројатно ќе го бараат нај елементарниот начин.

Еве конкретно во твојов пример ти користиш уште две низи и уште два вложени циклуса кој се непотребни, а се што ти треба е само еден циклус. Нешто од овој тип:

Код:
int matrix[100][100];
int matrix_len;
int temp;
...
for(int i = 0; i < matrix_len; i++)
        {
                temp = matrix[i][i];
                matrix[i][i] = matrix[matrix_len-i-1][matrix_len-i-1];
                matrix[matrix_len-i-1][matrix_len-i-1] = temp;
        }
--- надополнето: 20 август 2012 во 22:36 ---
Дечки ај ако може помош за оваа задача?
Да се напише програма која од непознат број на цели броеви кои се внесуваат преку тастатура ќе ги испише броевите кои се деливи со претходно внесениот број.
фала :)
Код:
int n;
cout << "Kolku broevi? << endl;
cin >> n;
int arr[] = new int [n];
cout << "Vnesi gi broevite << endl;
for(int i = 0; i < n; i++)
        cin >> arr[i];

cout << "Broj za proverka na delivost: ";
int num;
cin >> num; // Предходно внесен број!?

for(int i = 0; i < n; i++)
        if( arr[i] % num == 0 )
                cout << arr[i] << endl;
Нешто вака ?
 
Член од
7 август 2012
Мислења
57
Поени од реакции
3
Код:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MAX 81
int main (int argc, char *argv[])
{
    int vozbor=0, broj_zborovi=0;
    char red[MAX],*c;
    FILE *vlezna, *izlezna;
    if(argc<3)
    {
            printf("Upotreba %s [ime_vlezna_dadoteka] [ime_izlezna_dadoteka]\n",argv[0]);
            return -1;
    }
    if((vlezna=fopen(argv[1],"r"))==NULL)
    {
        printf("Dadotekata %s ne se otvara.\n",argv[1]);
        return -1;
    }
    if((izlezna=fopen(argv[2],"w"))==NULL)
    {
        printf("Dadotekata %s ne se otvara.\n",argv[2]);
        return -1;
    }
 
    while(( fgets(red,MAX,vlezna) )!=EOF)
    {
        c=red;
        vozbor=0;
        broj_zborovi=0;
            while(*c!='\0')
            {
                if(isalnum(*c))
                {
                    if(!vozbor)
                    vozbor=1;
                }
                else if(vozbor)
                {
                    vozbor=0;
                    broj_zborovi++;
                }
                c++;
            }
            if(vozbor)
            broj_zborovi++;
            fprintf(izlezna,"%d %s",broj_zborovi,red);
            }
 
 
 
    fclose(vlezna);
    fclose(izlezna);
    return 0;
 
}
Како да ја отворам сега дадотекава од командна линија, дали ја знае некој постапката.
Ми го испечатува само тоа што е во првиот if услов.
 
Член од
25 јануари 2009
Мислења
45
Поени од реакции
2
Да се напише програма којашто за влезна матрица Ам*н ќе ја преуреди така што колоните и се во растечки редослед во однос на максималниот елемент на колоната.
Пример: 1 2 3 4 1 Излезна:4 2 1 1 3
8 6 6 3 3 3 6 3 8 6
0 3 9 2 7 2 3 7 0 9
8 6 9 4 7 4 6 7 8 9
 
Член од
10 јули 2012
Мислења
87
Поени од реакции
54
Да се напише програма којашто за влезна матрица Ам*н ќе ја преуреди така што колоните и се во растечки редослед во однос на максималниот елемент на колоната.
Потполно истата задача ја има пишано и OutOfReality некаде 4-5 листа наназад.
 

HeRbEs

-WandereR-
Член од
21 јуни 2005
Мислења
766
Поени од реакции
272
Дечки ај ве молам за помош.Значи дадена е низа од броеви,и сега да се испечати низата така што непарните броеви ќе бидат први ,а парните после нив.Програмата да се изработи во C.
 
Член од
7 август 2012
Мислења
57
Поени од реакции
3
Ми треба мислење за некои предмети што се учат на ФИНКИ.
Каква е тежината на предметиве: интернет програмирање, визуелно програмирање и напредни бази на податоци :)
 
Член од
10 јули 2012
Мислења
87
Поени од реакции
54
Дечки ај ве молам за помош.Значи дадена е низа од броеви,и сега да се испечати низата така што непарните броеви ќе бидат први ,а парните после нив.Програмата да се изработи во C.
Програмата би требало да ти ги печати прво непарните од почеток до крај и после да се враќа обратно и ти ги печати парните(од последниот па назад). Ќе тие пишам и меин метод колку да ја пробаш одма.

Код:
#include <stdio.h>
 
 
void Print(int *arr, int len, int i)
{
    if(i >= len)
    {
        return;
    }
    else
    {
        if(arr[i] % 2 == 1)
        {
            printf("%d\n",arr[i]);
            Print(arr,len, i+1);
        }
        else
        {
            Print(arr,len,i+1);
            printf("%d\n",arr[i]);
        }
    }
}
int main()
{
    int arr[10] = {1,2,3,4,5,6,7,8,9,10};
    Print(arr,10,0);
}
 
B

Besy

Гостин
Да се направи програма која од постоечки текст документ(во овај документ во секоја линија има по една кратка реченица, на крајот од реченицата нема точка) да нарави нов текст документ со следниве измени:
Да не е секоја реченица во нова линија
Помеѓу сите реченици да додади запирка (,)
Односно наместо речениците да се оделни со нова линија, треба да се оделени со ,
 
M

Mr.InF3ction

Гостин
Besy a да кажеше за ц или ц++..и што не ти е јасно,.
Задачата е лесна затоа пробај прво сам, види до каде ќе можеш па ако заглавиш постирај кодот тука и ќе помогнеме. :)
 

Kajgana Shop

На врв Bottom