.
Отговор в тема
Резултати от 1 до 6 от общо 6
  1. #1

    Функции и низове..?

    Ще съм благодарен ако някой може спешно да ми помогне със следната задача по информатика:
    "Да се състави функция, която в даден низ отстранява ненужните интервали, като оставя само по един интервал
    , ако някъде има повече последователни интервала и връща новополучения низ.Напишете главна функция, която се обръща към тази за всеки от n въведени низа"
    Благодаря предварително. smoke.gif

  2. #2
    Мега фен Аватара на Chacho
    Регистриран на
    Nov 2006
    Мнения
    15 573
    Е напиши на какъв език програмирате.

    Един начин за реализация е да направиш помощна функция, която изтрива даден елемент от низа с индекс i:

    Триене(низ, индекс)

    Фактически в нея ще направиш един цикъл от индекса+1 до края на низа да премества елементите с 1 назад и последният елемент ще го правиш нулевият.

    Ползвайки тази функция, функцията за чистене на интервали ще я напишеш, като ще обхождаш низа по символи и ако срещнеш два поредни интервала (да кажем с индекс1 и индекс2), ще изпълняваш Триене(низ, индекс2), докато елементите с индекс1 и индекс2 станат различни (с други думи, докато след известен брой триения на интервали не стигнеш буква).

    Последната част е в главната програма да въвеждаш n на брой низове, като при всяко едно въвеждане отново да изпълняваш функцията за чистене на интервали.

    Ако напишеш езика за програмиране, може и да се пробвам да я разпиша. Поздрави!
    Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.

  3. #3
    Първо Благодаря ти много...иначе почти не разбирам за какво ми говориш, защото ме няма никак в информатиката, а езикът е С++.
    Ще се радвам ако ми отговориш тази вечер...
    Мерси

  4. #4
    #include<iostream>
    #include<string.h>
    using namespace std;
    void clean(char c,int n)
    {int i=0;
    while(!'\0')
    {if(strcmp(c[i],' ')&&strcmp(c[i+1],' ')
    while(!'\0')
    strcpy(c[i+1],c[i+2]);}
    int main()
    {char c[50];
    int n;
    cin.getline(c,50,'.');
    n=strlen(c);
    clean(c,n);
    cout<<c<<endl;
    system("pause");
    return 0;}
    може би е тъй

  5. #5
    Мега фен Аватара на Chacho
    Регистриран на
    Nov 2006
    Мнения
    15 573
    Гледам, че вече е написана, но ето все пак и от мен един вариант:

    #include <iostream>
    #include <string.h>
    #include <stdio.h>
    #include <conio.h>
    using namespace std;

    void Triene(char c[50], int in)
    {
    int i;

    for(i=in; i<strlen(c)-1; i++)
    {
    c[i]=c[i+1];
    }




    }

    void Chistene(char c[50])
    {
    int i;
    for(i=0; i<strlen(c)-1; i++)
    {
    while (c[i]==' ' && c[i+1]==' ')
    {
    Triene(c, i+1);
    }
    }
    }

    int main()
    {
    char st[50];
    int i, n, j;
    cout<<"How many strings do you want to enter:";
    cin>>n;
    for (i=1; i<=n; i++)
    {
    cout<<"\n\nEnter the string "<<i<<":";
    j=0;
    do
    {
    //std::cin.ignore(std::numeric_limits<std::streamsiz e>::max(), '\n');
    st[j]=getche();
    j++;
    }
    while (st[j-1]!='\r');
    st[j]='\0';
    Chistene(st);
    cout<<"\n\nThe new string is:\n";
    cout<<st;
    }
    cout<<"\nPress enter to exit.\n";
    std::cin.ignore(std::numeric_limits<std::streamsiz e>::max(), '\n');
    std::cin.get();
    }
    Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.

  6. #6
    Благодарая много и на двамата.Дано имате много успехи в бъдеще..

Правила за публикуване

  • Вие не можете да публикувате теми
  • Вие не можете да отговаряте в теми
  • Вие не можете да прикачвате файлове
  • Вие не можете да редактирате мненията си