Студентам с лабораторными сюда (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 20 Jun 2007.

Thread Status:
Not open for further replies.
  1. Qny

    Qny New Member

    Joined:
    11 May 2012
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Нужна помощь!
    Дана таблица. Составить алгоритм, находящий в ней произведение всех элементов, значения которых больше 10 (обработка одномерного массива:). Числа записаны в ячейках. Нужно взять 5 любых чисел.
     
    #4021 Qny, 14 May 2012
    Last edited: 14 May 2012
  2. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1

    А чем тебе предложение pcacer не нравиться? Бери и пользуйся.
     
  3. Qny

    Qny New Member

    Joined:
    11 May 2012
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    То что предложил pcacer не подходит к тому что нужно((
    Помогите тогда с другим заданием пожалуйста...
    Составить программу, в которой организованы следующие действия: сортировка массива слов по алфавиту; выборка из массива слов, начинающихся с гласных; выборка из массива слов, начинающихся с согласных. Эти действия оформлены в подпрограммах. Обеспечить пользователю возможность выбирать нужную ему подпрограмму через интерфейс управления.
     
    #4023 Qny, 15 May 2012
    Last edited: 15 May 2012
  4. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Что-нибудь типа
    Code:
    #include <iostream>
    #include <algorithm>
    #include <iterator>
    #include <vector>
    #include <string>
    #include <set>
    
    #include <clocale>
    
    const static char vowels[] = {'у','е','ы','а','о','э','я','и','ю','ё'};
    std::set<char> vowel_list(vowels, vowels + sizeof(vowels));
    
    void sort_array(std::vector<std::string> &vec)
    {
        std::sort(vec.begin(), vec.end());
    }
    
    bool is_vowel_(std::string & s)
    {
        return vowel_list.find(s.c_str()[0]) == vowel_list.end();
    }
    
    bool is_consonant_(std::string & s)
    {
        return !is_vowel_(s);
    }
    
    void get_vowel_words(std::vector<std::string> &vec)
    {
        std::vector<std::string> result;
        result.resize(vec.size());
    
        std::remove_copy_if(vec.begin(), vec.end(), result.begin(), is_vowel_);
    
        vec = result;
    }
    
    void get_consonant_words(std::vector<std::string> &vec)
    {
        std::vector<std::string> result;
        result.resize(vec.size());
    
        std::remove_copy_if(vec.begin(), vec.end(), result.begin(), is_consonant_);
    
        vec = result;
    }
    
    int main()
    {
        int cmd;
        std::vector<std::string> list, result;
        
        setlocale(LC_CTYPE, ".1251");
    
        list.push_back(std::string("вася"));
        list.push_back(std::string("ашот"));
        list.push_back(std::string("равшан"));
    
    
        std::cout<<"Начальный массив:"<<std::endl;
        for(std::vector<std::string>::const_iterator it = list.begin(); it != list.end(); ++it)
        {
            std::cout<<'\t'<<(*it)<<std::endl;
        }
    
        std::cout<<std::endl
                <<"Действие:"<<std::endl
                <<"0 - отсортировать;"<<std::endl
                <<"1 - слова, начинающиеся на гласные;"<<std::endl
                <<"2 - --//-- на согласные"<<std::endl;
    
        std::cin>>cmd;
    
        switch(cmd)
        {
            case 0:
                sort_array(list);
            break;
            case 1:
                get_vowel_words(list);
            break;
            case 2:
                get_consonant_words(list);
            break;
    
            default:
                std::cout<<"Действие не определено"<<std::endl;
                return EXIT_FAILURE;
        }
    
    
        std::cout<<std::endl<<"Результирующий массив:"<<std::endl;
        for(std::vector<std::string>::const_iterator it = list.begin(); it != list.end(); ++it)
        {
            std::cout<<'\t'<<(*it)<<std::endl;
        }
    
        
    
        return EXIT_SUCCESS;
    }
    
    Компилировать не пробовал
     
    _________________________
  5. DEMONTER

    DEMONTER New Member

    Joined:
    10 May 2012
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    нужно решить такую задачку
    (DELPHI) но что то тяго у меня с нею, помогите :rolleyes:
    Сформировать целочисленную квадратную матрицу А порядка n,
    элементы которой рассчитываются по формуле Aij=min(i,j,n-i+1,n-j+1), i,j=1..n
     
  6. little_Kate

    little_Kate New Member

    Joined:
    13 Nov 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Помогите пожалуйста с задачей. с++

    Нужно определить число ветвей от корня до вершины с заданным элементом. Вывести часть дерева от вершины до данного элемента на экран.
    напишите пожалуйста только функцию, которая будет это выполнять.остальной код уже написала:
    #include "stdafx.h"

    #include <iostream>
    using namespace std;

    struct TREE
    {
    int d;
    TREE *left;
    TREE *rigth;
    };

    void first (TREE *&,int );
    TREE* search (TREE *, int );
    void find (TREE *, TREE *&, int );
    void add (TREE *, int );
    void print_tree (TREE * );
    void print_tree_level (TREE *, int );
    void del_tree (TREE *&top);



    void main( void )
    {
    int b[ ] = {20, 10, 8, 12, 30, 25, 34, 22};
    TREE *top;
    first(top, b[0]);
    for (int i = 1; i < 8; i++)
    add (top, b);
    cout<<" initial tree ";
    print_tree (top);
    cout<< endl<<endl;
    cout<<" the tree by levels: ";
    print_tree_level(top,0);
    cout<<endl;



    del_tree(top) ;
    system ("pause");
    }

    void first (TREE *&top, int d)
    {
    top = new TREE;
    top -> d = d;
    top -> left = top -> rigth = NULL;
    }


    TREE* search(TREE *top, int d)
    {
    TREE *pv = top, *ppv;
    while (pv)
    { ppv = pv;
    if (d < pv -> d)
    pv = pv -> left;
    else
    pv = pv -> rigth;
    }
    return ppv;
    }



    void find(TREE *top, TREE *&p, int d)
    {
    if (top)
    {
    p = top;
    if (d < top -> d )
    find(top -> left, p, d);
    else
    find(top -> rigth, p, d);
    }
    else
    p = NULL;
    }


    void add (TREE *top, int d)
    {
    TREE *ppv,*pnew = new TREE;
    pnew -> d = d;
    pnew -> left= NULL;
    pnew -> rigth = NULL;
    ppv = search(top, d);
    if (d < ppv -> d)
    ppv -> left = pnew;

    else
    ppv -> rigth = pnew;

    }

    void print_tree (TREE * top)
    {
    if (top)
    {
    print_tree (top -> left);
    cout << top -> d << " ";
    print_tree(top -> rigth);
    }
    }


    void print_tree_level(TREE * top, int level)
    {
    if (top)
    {
    print_tree_level (top -> left, level + 1);
    for (int i = 0; i < level; i++)
    cout <<" ";
    cout << top ->d <<endl;
    print_tree_level(top -> rigth, level + 1);

    }
    }


    void del_tree (TREE *&top)
    {
    if (top)
    {
    del_tree (top -> left);
    del_tree(top -> rigth);
    delete top;
    top = NULL;
    }
     
  7. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    Code:
    program Project1;
    
    {$APPTYPE CONSOLE}
    
    uses
      SysUtils;
    type
      MinMat=array[1..4]of Integer;
    const M=20;
    var
      Matrix:array[1..M,1..M]of Integer;
      N,i,j,x:Integer;
      MinMat1:MinMat;
      function Min(const A:MinMat): Integer;
      var i:Integer;
      begin
        Result:=32767;
        for i:=1 to 4 do
          if a[i]<Result then
            Result:=a[i];
      end;
    begin
      { TODO -oUser -cConsole Main : Insert code here }
      repeat
        Writeln('Vvedite M, ne bolshe '+IntToStr(M));
        Readln(N);
      until (N<=M)and(N>0);
      for j:=1 to N do
        for i:=1 to N do
        begin
          MinMat1[1]:=i;
          MinMat1[2]:=j;
          MinMat1[3]:=n-i+1;
          MinMat1[4]:=n-j+1;
          Matrix[i,j]:=Min(MinMat1);
        end;
      for j:=1 to N do
      begin
        for i:=1 to N do
        begin
          Write(IntToStr(Matrix[i,j]));
        end;
        Writeln;
      end;
      Readln;
    end.
    
     
  8. DEMONTER

    DEMONTER New Member

    Joined:
    10 May 2012
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0

    Спс)
    После долгих разборов, проект успехов не увенчался.
    Препод сказал что нужно начинать так:
    var
    matr:array [1..10, 1..10] of integer;
    i,j,n:integer;
    minmat:array[1..4] of integer;
    begin
    for j:=1 to N do
    for i:=1 to N do
    MinMat[1]:=i;
    MinMat[2]:=j;
    MinMat[3]:=n-i+1;
    MinMat[4]:=n-j+1;

    а вот дальше что надо?
     
  9. Xak93

    Xak93 New Member

    Joined:
    9 Apr 2010
    Messages:
    85
    Likes Received:
    2
    Reputations:
    0
    Помогите написать программу на си/си++, которая с помощью move to(x,y) и line to(x,y) рисует американский флаг, причем количество звезд, линий, ширина линий, размер звезд и цвет задается пользователем.
     
  10. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    тут написана какая-то ерунда.
     
  11. DEMONTER

    DEMONTER New Member

    Joined:
    10 May 2012
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    блин почему тогда ему не понравился твой метод...
    а можешь свой код в виде проекта скинуть
     
    #4031 DEMONTER, 18 May 2012
    Last edited: 19 May 2012
  12. gerty92

    gerty92 New Member

    Joined:
    26 Nov 2011
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Задачка на С++
    найти по каждому столбцу матрицы A[m,n] максимальный и минимальный элементы и поменять их местами. Для формирования матрицы использовать динамический массив(вот с этим массивом то я и не могу разобраться=(((((( )
     
  13. R1ze007

    R1ze007 New Member

    Joined:
    7 Mar 2011
    Messages:
    34
    Likes Received:
    0
    Reputations:
    0
    Задание :
    Даны уравнения кривых:
    1. 3*(0.5/(x+1)+1)
    2. 2.5*x - 9.5
    3. x/5 (x>0)
    Вычислить их пересечение методом хорд и посчитать площадь, получившейся трапеции, формулой прямоугольников.

    Должны быть функции : root (f, a, b, eps) и integral (f, a, b, eps)
    Вот, что получилось у меня, но не идет, что надо поправить ?

    #include<stdio.h>
    #include<math.h>

    double F_1 (double x) {
    return 2.5*x - 9.5;
    }

    double F_2 (double x) {
    return 3*(0.5/(x+1)+1);
    }

    double F_3 (double x) {
    return 5/x;
    }

    double F1 (double x) {
    return (-2.5*x*x +10*x +11)/(x+1);
    }

    double F2 (double x) {
    return 2.5*x*x -9.5*x -5;
    }

    double F3 (double x) {
    return (3*x*x +8*x +0.5)/(x+1);
    }

    double F1_p (double x) {
    return -3/(x*x*x +3*x*x +3*x +1);
    }

    double F2_p (double x) {
    return 5.0;
    }

    double F3_p (double x) {
    return 9/(x*x*x +3*x*x +3*x +1);
    }

    double root (double (*F)(double), double (*F_p)(double), double a, double b, double eps) {
    double x1;
    double x2;
    double c;
    if ( F(a)*F_p(a)>0)
    {
    x1=b;
    c=a;
    }
    else
    {
    x1=a;
    c=b;
    }
    while ( F_p(x1)>eps )
    {
    x2=x1- F(x1)*(x1-c)/ (F(x1)-F(c));
    x1=x2;
    }
    return x1;
    }

    double integral(double (*F)(double), double a, double b, double eps) ){
    double sum=0.0, h;
    int i;
    int n=1;

    while (eps!=1) {
    eps=eps*10;
    n=n*10;
    }

    printf ("N: %d", n);

    h = (b-a)/n;
    for(i=1; i <= n; i++)
    {
    sum = sum + F( a + h * (i - 0.5) );
    }
    sum = sum * h;

    return sum;
    }


    int main () {
    double x_per1, x_per2, x_per3;
    double a1, a2, a3;
    double a=-2.5;
    double b=5.0;

    x_per1=root(F1, F1_p, a,b, 0.001);
    x_per2=root(F2, F2_p, a,b, 0.001);
    x_per3=root(F3, F3_p, a,b, 0.001);

    a1=integral(F_1, x_per1, x_per2, 0.001);
    a2=integral(F_3, x_per3, x_per1, 0.001);
    a3=integral(F_2, x_per3, x_per2, 0.001);

    sum=a1+a3-a2;

    printf ("Rezults:\n");
    printf ("First: %lf\n", x_per1);
    printf ("Second: %lf\n", x_per2);
    printf ("Third: %lf\n", x_per3);
    printf ("Sum: %lf\n", sum);
    }
     
  14. M_Roman

    M_Roman New Member

    Joined:
    13 Mar 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    нужно решить задание на паскале. помогите
    Создать класс вектор на плоскости, поля класса — координаты векто-
    ра. Методы класса: вычисление длины вектора, вывод характеристик вектора. В
    классе предусмотреть методы перегрузки операций: сложение, скалярное и век-
    торное произведение векторов.
     
  15. Ins

    Ins New Member

    Joined:
    21 Aug 2010
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Нужно "Реализовать различные методы сортировки" на C++/C#
    Бюджет. icq 98652007
     
  16. _Alexandr_

    _Alexandr_ New Member

    Joined:
    6 May 2011
    Messages:
    25
    Likes Received:
    0
    Reputations:
    0
    Всем доброго времени суток.
    Препод нам контрольную дал,
    там в одном из вопросов
    написать листинг
    программы,которая бы
    считывала текстовый
    файл,определяла в какой
    кодировке текст, затем
    перекодировал в одну из трех
    кодировок, какую именно
    указывает пользователь. И
    сохраняет и перезаписывает
    текстовый файл,с тем же
    содержимым но в другой
    кодировке. Помогите кто
    может. Если потребуется
    вознаграждение.то без
    проблем в течении недели-
    другой (пока "пенсию"
    вышлют ) если что пишите в
    аську 578328777 Чуть не
    забыл, язык С++
     
  17. Ivan123

    Ivan123 New Member

    Joined:
    21 Nov 2011
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    Прошу закометнтировать:)

    Всем привет! такая просьба, напишите комментарий к каждой строчке пожалуйста)
    Заранее спасибо!
    Code:
    #include<iostream.h>
    #include<string.h>
    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    #pragma warning(disable: 4996)
    #define word unsigned int
    int i, j, n, p, xn, xk;
    int flag[11];
    word c[11][11], l[11];
    char s[80], path[80][11];
    int min(int n)
    {
             int i, result;
             for(i=0;i<n;i++)
                       if(!(flag[i])) result=i;
             for(i=0;i<n;i++)
                       if((l[result]>l[i])&&(!flag[i])) result=i;
             return result;
    }
    word minim(word x, word y)
    {
             if(x<y) return x;
             return y;
    }
    void main()
    {
             cout<<"Введите количество точек: ";
             cin>>n;
             for(i=0;i<n;i++)
                       for(j=0;j<n;j++) c[i][j]=0;
             for(i=0;i<n;i++)
                       for(j=i+1;j<n;j++)
                       {
                           cout<<"Введите растояние от  x"<<i+1<<" до x"<<j+1<<": ";
                           cin>>c[i][j];
                       }
             cout<<"   ";
             for(i=0;i<n;i++) cout<<"    X"<<i+1;
             cout<<endl<<endl;
             for(i=0;i<n;i++)
             {
                       printf("X%d",i+1);
                       for(j=0;j<n;j++)
                       {
                                printf("%6d",c[i][j]);
                                c[j][i]=c[i][j];
                       }
                       printf("\n\n");
             }
             for(i=0;i<n;i++)
                       for(j=0;j<n;j++)
                                if(c[i][j]==0) c[i][j]=65535; //бесконечность
             cout<<"Введите начальную точку: ";
             cin>>xn;
             cout<<"Введите конечную точку: ";
             cin>>xk;
             xk--;
             xn--;
             if(xn==xk)
             {
                       cout<<"Начальная и конечная точки совпадают."<<endl;
                       getch();
                       return;
             }
             for(i=0;i<n;i++)
             {
                       flag[i]=0;
                       l[i]=65535;
             }
             l[xn]=0;
             flag[xn]=1;
             p=xn;
             itoa(xn+1,s,10);
                       for(i=1;i<=n;i++)
                       {
                                strcpy(path[i],"X");
                                strcat(path[i],s);
                       }
                       do
                       {
                                for(i=0;i<n;i++)
                                          if((c[p][i]!=65535)&&(!flag[i])&&(i!=p))
                                          {
                                                   if(l[i]>l[p]+c[p][i])
                                                   {
                                                            itoa(i+1,s,10);
                                                            strcpy(path[i+1],path[p+1]);
                                                            strcat(path[i+1],"-X");
                                                            strcat(path[i+1],s);
                                                   }
                                                   l[i]=minim(l[i],l[p]+c[p][i]);
                                          }
                                p=min(n);
                                flag[p]=1;
                       }
                       while(p!=xk);
             if(l[p]!=65535)
             {
                       cout<<"Путь: "<<path[p+1]<<endl;
                       cout<<"Длинна пути: "<<l[p]<<endl;
             }
             else
                       cout<<"Такого пути не существует!"<<endl;
             getch();
    }
    
    
     
  18. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    Code:
    program p1;
    const n = 10; //размерность массива
    var a: array[1..n] of integer;
          i, tmp: integer;
    begin
    randomize;
    for i:=1 to n do
    a[i]:=random(100)-50; //генерируем массив
    for i:=1 to n do write(a[i]:4); //вывод массива
    for i:=1 to n div 2 do
    begin
         tmp:=a[n-i+1];
         a[n-i+1]:=a[i];
         a[i]:=tmp;
    end;
    for i:=1 to n do write(a[i]:4); //вывод массива
    readln;
    end.
    
    Code:
    program p2;
    var a,b,c: real;
          i:integer;
    begin
    for i:=1 to 15 do begin
         a:=random(100)-50;
         b:=random(100)-50;
         c:=a[i]*b[i];
         writeln('a',i,'=',a[i]);
         writeln('b',i,'=',b[i]);
         writeln('a',i,'*b',i,'=',c[i]);
    end;
    readln;
    end.
    
     
    #4038 patcher, 27 May 2012
    Last edited: 27 May 2012
    1 person likes this.
  19. «DEXTER»

    «DEXTER» Member

    Joined:
    20 Jul 2011
    Messages:
    7
    Likes Received:
    20
    Reputations:
    0
    выручайте плиз) паскаль
     
    #4039 «DEXTER», 27 May 2012
    Last edited: 28 May 2012
  20. RexTiam

    RexTiam Member

    Joined:
    2 Nov 2009
    Messages:
    117
    Likes Received:
    45
    Reputations:
    5
    вот задача "Сколько раз повторяется в тексте каждое слово, которое встречается в нём?" 19:57:09
    Обрабатываемый в программе текст должен содержать несколько строк. Но массив строк не формировать, то есть в оперативной памяти хранить одну обрабатываемую строку. Оперативную память резервируем для одной строки. Вводим строку, анализируем её и на её место вводим новую строку
    +цветной вывод


    Вижуал си )
     
Thread Status:
Not open for further replies.