C/C++

  • Креатор на темата Креатор на темата Драган
  • Време на започнување Време на започнување
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]);
 
}
 
Програма која за дадена текстуална датотека ќе го најде просечниот број на појавувања на самогласките во речениците и ќе го отпечати во друга датотека.
Притоа сите реченици меѓусебно се одвоени со точка. Името на влезната и излезната датотека се задаваат од командна линија, а доколку не се зададени да се испечати начин на употреба на програмата.


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

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;
 
}
 
Дечки ако некој знае горнаа задача да ми каже што да поправам .. :\
--- надополнето: 20 август 2012 во 17:22 ---
 
Дечки ај ако може помош за оваа задача?
Да се напише програма која од непознат број на цели броеви кои се внесуваат преку тастатура ќе ги испише броевите кои се деливи со претходно внесениот број.
фала :)
 
елементите на главна дијагонала и споредна да си ги заменат своите места (матрици).
Ја решив по мое, дали може да ми одземат бодови зошто вака е решена ?
направив две низи една со елементи од главна една со елементи од споредна и после само ги ставив обратно во матрицата :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;
}
 
елементите на главна дијагонала и споредна да си ги заменат своите места (матрици).
Ја решив по мое, дали може да ми одземат бодови зошто вака е решена ?
направив две низи една со елементи од главна една со елементи од споредна и после само ги ставив обратно во матрицата :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;

Нешто вака ?
 
Код:
#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 услов.
 
Да се напише програма којашто за влезна матрица Ам*н ќе ја преуреди така што колоните и се во растечки редослед во однос на максималниот елемент на колоната.
Пример: 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
 
Да се напише програма којашто за влезна матрица Ам*н ќе ја преуреди така што колоните и се во растечки редослед во однос на максималниот елемент на колоната.

Потполно истата задача ја има пишано и OutOfReality некаде 4-5 листа наназад.
 
Дечки ај ве молам за помош.Значи дадена е низа од броеви,и сега да се испечати низата така што непарните броеви ќе бидат први ,а парните после нив.Програмата да се изработи во C.
 
Ми треба мислење за некои предмети што се учат на ФИНКИ.
Каква е тежината на предметиве: интернет програмирање, визуелно програмирање и напредни бази на податоци :)
 
Дечки ај ве молам за помош.Значи дадена е низа од броеви,и сега да се испечати низата така што непарните броеви ќе бидат први ,а парните после нив.Програмата да се изработи во 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);
}
 
Да се направи програма која од постоечки текст документ(во овај документ во секоја линија има по една кратка реченица, на крајот од реченицата нема точка) да нарави нов текст документ со следниве измени:
Да не е секоја реченица во нова линија
Помеѓу сите реченици да додади запирка (,)
Односно наместо речениците да се оделни со нова линија, треба да се оделени со ,
 
Besy a да кажеше за ц или ц++..и што не ти е јасно,.
Задачата е лесна затоа пробај прво сам, види до каде ќе можеш па ако заглавиш постирај кодот тука и ќе помогнеме. :)
 

Kajgana Shop

Back
На врв Bottom