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

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

Thread Status:
Not open for further replies.
  1. G.R.O.M

    G.R.O.M New Member

    Joined:
    7 Oct 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    ребята, нужна помощь
    очень нужно сделать блок-схему для такого задания


    Заранье спасибо
     
  2. Fender75

    Fender75 New Member

    Joined:
    14 Nov 2013
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Всем доброго времени суток, требуется помощь в решении задачи на c++

    ЗАДАЧА 7. Решить задачу 5, но с учётом вложенности скобок одного вида.

    ЗАДАЧА 5. Проверить правильность расстановок скобок в скобочном выражении,
    использующем скобки вида: “(”, “)”, “{”, “}”, “[”, “]”. Требование
    вложенности скобок разного вида не учитывать, т. е., например,
    выражения “({})[]” и “([{()}]}” – правильны
     
  3. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84

    Решение задачи 5 и 7 в одном флаконе:
    PHP:
    #include <iostream>
    #include <string>
    #include <vector>
    #include <algorithm>
    #include <stdexcept>

    class bracket_exception : public std::runtime_error
    {
    public:
        
    bracket_exception(const std::stringmessage)
            :
    std::runtime_error(message)
        {
        }
    };

    class 
    bracket
    {
    public:
        
    bracket(char openchar close)
            :
    open_(open), close_(close)
        {
        }

        
    char get_open() const
        {
            return 
    open_;
        }

        
    char get_close() const
        {
            return 
    close_;
        }

    private:
        
    char open_close_;
    };

    class 
    expression_checker
    {
    public:
        
    typedef std::vector<bracketbracket_list;

    public:
        
    explicit expression_checker(const bracket_listavailable_brackets)
            :
    brackets_(available_brackets)
        {
        }

        
    void check_string(const std::stringstrbool only_similar_brackets_can_nestbool ignore_unknown_characters) const
        {
            
    std::vector<bracketopened_brackets;
            for(
    std::string::const_iterator it str.begin(); it != str.end(); ++it)
            {
                
    char current = *it;

                
    bracket_list::const_iterator br_it =
                    
    std::find_if(brackets_.begin(), brackets_.end(), open_bracket_finder(current));

                if(
    br_it == brackets_.end())
                {
                    
    br_it std::find_if(brackets_.begin(), brackets_.end(), close_bracket_finder(current));
                    if(
    br_it == brackets_.end())
                    {
                        if(
    ignore_unknown_characters)
                            continue;

                        throw 
    bracket_exception("Unknown character in expression: " std::string(1current));
                    }

                    if(!
    opened_brackets.empty() && opened_brackets.back().get_close() == current)
                    {
                        
    opened_brackets.pop_back();
                        continue;
                    }
                    else
                    {
                        throw 
    bracket_exception("Unmatched bracket: " std::string(1current));
                    }
                }

                if(
    only_similar_brackets_can_nest)
                {
                    if(!
    opened_brackets.empty() && opened_brackets.back().get_open() != current)
                        throw 
    bracket_exception("Only similar brackets can nest");
                }

                
    opened_brackets.push_back(*br_it);
            }

            if(!
    opened_brackets.empty())
                throw 
    bracket_exception("Some brackets are open");
        }

    private:
        
    struct open_bracket_finder
        
    {
        public:
            
    explicit open_bracket_finder(char open)
                :
    open_(open)
            {
            }

            
    bool operator()(const bracketitem) const
            {
                return 
    item.get_open() == open_;
            }

        private:
            
    char open_;
        };

        
    struct close_bracket_finder
        
    {
        public:
            
    explicit close_bracket_finder(char close)
                :
    close_(close)
            {
            }

            
    bool operator()(const bracketitem) const
            {
                return 
    item.get_close() == close_;
            }

        private:
            
    char close_;
        };

        const 
    bracket_list brackets_;
    };

    void check_brackets(const expression_checker::bracket_listavailable_brackets,
        const 
    std::vector<std::string>& samplesbool only_similar_brackets_can_nest)
    {
        const 
    expression_checker checker(available_brackets);

        for(
    std::vector<std::string>::const_iterator it samples.begin(); it != samples.end(); ++it)
        {
            try
            {
                
    checker.check_string(*itonly_similar_brackets_can_nesttrue);
                
    std::cout << "\"" << (*it) << "\" OK!" << std::endl;
            }
            catch(const 
    bracket_exceptione)
            {
                
    std::cerr << "\"" << (*it) << "\" error: " << e.what() << std::endl;
            }
        }
    }

    int main()
    {
        
    std::vector<std::stringsamples;
        
    samples.push_back("({})[]");
        
    samples.push_back("{[{()}]}");
        
    samples.push_back("[][]{{}}((()))");
        
    samples.push_back("([{()}]}");
        
    samples.push_back("([{()}]))");
        
    samples.push_back("()[{([)}]");
        
    samples.push_back("[[[");
        
        
    //Доступные скобки
        
    expression_checker::bracket_list available_brackets;
        
    available_brackets.push_back(bracket('('')'));
        
    available_brackets.push_back(bracket('['']'));
        
    available_brackets.push_back(bracket('{''}'));

        
    //Проверяем скобки по заданию 5 (любые могут быть вложенными)
        
    std::cout << "Task 5" << std::endl;
        
    check_brackets(available_bracketssamplesfalse);
        
    std::cout << std::endl << "Task 7" << std::endl;
        
    //Проверяем скобки по заданию 7 (только одинаковые могут быть вложенными)
        
    check_brackets(available_bracketssamplestrue);

        return 
    0;
    }
     
  4. Pashtet123

    Pashtet123 New Member

    Joined:
    19 Nov 2013
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Добрый вечер!!Помогите решить задание))Ничего не получается((

    4. Решить задачу 2, дополнительно найдя порядковый номер первой скобки,
    нарушающей правильность расстановки скобок.

    2. Написать программу, которая определяет, является ли скобочное
    выражение правильным. Примеры правильных скобочных выражений: (),
    (())(), ()(), ((())) и неправильных: )(, ())((), (, )))), ((()). Указание:
    рассматриваем последовательно каждый символ заданной строки слева
    направо. Если очередной символ – левая скобка, то размещаем ее в стеке,
    если правая – то извлекаем элемент из стека (это обязательно должна
    быть левая скобка). После рассмотрения всей строки, если выражение
    правильно, стек должен оказаться пустым.
     
  5. Vlad3d

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

    Joined:
    18 Jan 2008
    Messages:
    47
    Likes Received:
    54
    Reputations:
    -1
    Pashtet123
    Писал в блокноте на планшете


    Code:
    program skobki;
    const
     N = 50;
    var
     stack: array[1..N] of char;
     ind,i: integer;
     str: string;
     correct: boolean;
     
    procedure push(symb: char);
    begin
    	stack[ind] := symb;
    	inc(ind);
    end;
    
    function pop:Char;
    begin
    	dec(ind);
    	Result := stack[ind];
    end;
    
    function isEmpty:Boolean;
    begin
    	if ind = 1 then Result := true else Result := false;
    end;
     
    begin
    	ind := 1;
    	Readln(str);
    	correct := true;
    	for i:= 1 to length(str) do
    	begin
    		if str[i] = '(' then push(str[i]); 
    		if str[i] = ')' then
    		begin
    			if not isEmpty then pop else 
    			 begin
    			  correct := false;
    			  WriteLn('incorrect');
    			 end;
    		end;
    	end;
    	if correct then WriteLn('correct');
    	readln;
    end.
     
  6. Pashtet123

    Pashtet123 New Member

    Joined:
    19 Nov 2013
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Помогите еще одну задачку решить!!!!Плиззз

    Дан массив целых чисел. Выяснить, совпадает ли количество
    отрицательных чисел с положительными. Если нет, определить
    количество несовпадений.
     
  7. fl47590

    fl47590 Member

    Joined:
    15 Nov 2013
    Messages:
    54
    Likes Received:
    8
    Reputations:
    0
    C#
    Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                int[] numbers = { 0, 1, -2, 3, 4, 5, 6 };
    
                var numNegative =
                    from num in numbers
                    where num < 0
                    select num;
    
                var numPositive =
                    from num in numbers
                    where num > 0
                    select num;
    
                if (numNegative.Count() == numPositive.Count()) {
                    Console.WriteLine("equal");
                }
                else {
                    Console.WriteLine("Unequal. {0} diffs", Math.Abs(numNegative.Count() - numPositive.Count()));
                }
            }
        }
    }
    
     
    #4287 fl47590, 20 Nov 2013
    Last edited: 21 Nov 2013
  8. Pashtet123

    Pashtet123 New Member

    Joined:
    19 Nov 2013
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Помогите пжалста)

    Реализовать рекурсивную функцию, которая
    возвращает сумму n последних элементов массива
     
  9. Pashtet123

    Pashtet123 New Member

    Joined:
    19 Nov 2013
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    И вот эта задачка очень нужна!!

    Реализовать рекурсивную функцию, которая возвращает значение true, если натуральное число, поступившее на вход программы,
    является простым, и, значение false в противном случае. Указание:
    натуральное число (кроме 1) является простым, если оно делится без
    остатка только на 1 и на самое себя
     
  10. alex7776

    alex7776 New Member

    Joined:
    18 Nov 2013
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Требуется вывести на экран меню, состоящее из следующих пунктов:
    1. ввод матрицы с клавиатуры,
    2. ввод матрицы из файла,
    3. вычисление характеристики,
    4. преобразование матрицы,
    5. печать матрицы,
    6. выход.
    и обеспечить его функционирование.
    Внутри программы характеристика оформляется в виде метода с передачей параметров по значению, который возвращает значение булевского типа; преобразование в виде метода с передачей параметров по ссылке. Необходимо отслеживать, был ли произведен ввод данных до выбора пунктов меню, которые обрабатывают матрицу.



    А задание к этому меню следующее:
    Средние арифметические значения элементов всех столбцов матрицы с нечетными номерами равны.
    Преобразование. Получить новую матрицу В, элемент bij которой равен произведению элементов akl исходной матрицы, где k меняется от i до n, а l – от 1 до j.
     
  11. JuvelirSanya

    JuvelirSanya New Member

    Joined:
    28 Nov 2013
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    На C#

    Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication24
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.Title = "";
                Console.Write("Введите количество элементов массива: ");
                int n = int.Parse(Console.ReadLine());
                Console.WriteLine("");
                int[] Array;
                Array = new int[n];
                Random rand = new Random();
                Console.WriteLine("");
                Console.Write("Элементы массива: ");
                for (int i = 0; i < Array.Length; i++)
                {
                    Array[i] = rand.Next(-100, 100);
                    Console.Write("{0}, ", Array[i]);
                }
                Console.WriteLine("");
                Console.Write("\b\b ");
                Console.WriteLine("");
                int plus = 0;
                int minus = 0;
                for (int i = 0; i < Array.Length; i++)
                {
                    Console.BackgroundColor = ConsoleColor.Blue;
                    if (Array[i] < 0) {minus++;}
                    else {plus++;}
                }
                int digit = Math.Abs(plus - minus);
                if (minus != plus) { Console.Write("Разница: "+ digit+ " Положительные: " + plus +" Отрицательные: "  + minus); }
                Console.Write("\b\b ");
                Console.ReadLine();
    
            }
        }
    }

    Конечно, решение уже есть, но пусть будет как альтернатива кода выше.
     
  12. alex7776

    alex7776 New Member

    Joined:
    18 Nov 2013
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Задача следующая: в пространстве задано некоторое множество точек. Выбрать из них такие четверки точек, которые лежат в одной плоскости.
     
  13. fl47590

    fl47590 Member

    Joined:
    15 Nov 2013
    Messages:
    54
    Likes Received:
    8
    Reputations:
    0
    Замечу, что в логике присутствует ошибка: нельзя инкрементировать plus по условию "неотрицательное число", т.к. тогда к положительным отнесется и число 0, что будет неверным.
     
  14. fl47590

    fl47590 Member

    Joined:
    15 Nov 2013
    Messages:
    54
    Likes Received:
    8
    Reputations:
    0
    Натолкну на мысль: как считать коэффициенты к уравнению плоскости написано здесь - http://algolist.manual.ru/maths/geom/equation/plane.php.
    Алгоритм будет такой (возможно, он не идеален, но работать будет):
    0. Удалить все дубли точек, если таковые есть.
    1. Перебирать все тройки.
    2. Выбрав очередную тройку, перебрать все точки (кроме точек этой тройки), подставляя их поочередно в полученное уравнение плоскости.
    3. Если уравнение выполнилось, то, значит, точка принадлежит плоскости: взять текущую тройку + текущую точку, записать в результирующий массив четверок.
    4. Удалить дубли четверок (или делать это выше в п. 3).
    5. Отдать результат пользователю.
     
  15. xeonx86

    xeonx86 New Member

    Joined:
    6 May 2012
    Messages:
    43
    Likes Received:
    1
    Reputations:
    0
    паскаль

    Всем здравствуйте!
    У меня такая проблема нужно ввести двумерный массив на паскале состоящий только из 0 1 2 потом упорядочить таким образом что бы сначала шли 0 потом 1 потом 2 ! т.е по возрастанию. никак не пойму как это сделать дополнительного массива создавать нельзя ! не могли бы вы объяснить как сделать не только пример программы но и на словах что бы я понял !
     
  16. tux

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

    Joined:
    26 Mar 2009
    Messages:
    423
    Likes Received:
    231
    Reputations:
    67
    Можно использовать простейшее "сортировка пузырьком". Тут и массив один и в учебниках есть и в гугле. :)
    А делать лабу или домашку тут вряд ли кто будет...
     
  17. Zen1T21

    Zen1T21 Member

    Joined:
    13 Jan 2013
    Messages:
    158
    Likes Received:
    37
    Reputations:
    2
    Разве что только за плату, 403819435 если что)
     
  18. bross

    bross New Member

    Joined:
    29 Sep 2012
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Друзья, требуется сделать задачку на паскале. С меня печеньки, благодарности, символические денюжки. Пишите в аську 385774231, кто что хочет

    Пользователь вводит два вещественных числа: a и q, а также целое число n. Для
    вычисления характеристик геометрической прогрессии (a – первый член, q –
    знаменатель, n – номер искомого члена прогрессии) составить функцию, которая
    получает введенные числа в качестве параметров. Функция находит n-й член и сумму
    первых n членов прогрессии и возвращает их в качестве двух других параметров.
    Результат, который возвращает сама функция, должен позволять отслеживать
    следующие случаи (зависящие от значений введенных чисел): неположительный номер
    n, возрастающая или убывающая прогрессия, все члены прогрессии равны (вырожденный
    случай).
     
    #4298 bross, 15 Dec 2013
    Last edited: 16 Dec 2013
  19. SekirBoshka

    SekirBoshka Member

    Joined:
    25 May 2012
    Messages:
    78
    Likes Received:
    28
    Reputations:
    0

    Могу скинуть на С++ одномерный массив упорядочивание от 0 до 2 ..можешь чуток доработать будет двумерный..
     
  20. vitaxa94

    vitaxa94 New Member

    Joined:
    22 Jun 2010
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Ребята. Нужна помощь.
    Нужно передать файл, расположенный на рабочей станции, на которой
    выполняется сервер, на рабочую станцию​​, на которой выполняется клиент. С помощью механизма MailSlot. Буду очень благодарен!!!
     
Thread Status:
Not open for further replies.