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

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

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

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    2 Asp1r1n
    все перестановки элементов массива у которых элементы могут совпадать
    не является тривиальной задачей
    например 11111 существуеет одна единственная перестановка а не 5! 8))
    ...
    если необходимо найти общее количество перестановок то математически
    находится
    G=N!
    Total=G-F
    где F - это всевозможные перестановки одинаковых!
     
  2. HencH_MaN

    HencH_MaN New Member

    Joined:
    8 Feb 2008
    Messages:
    19
    Likes Received:
    0
    Reputations:
    0
    Посмотрите плз код вот что я написал для своей лабы!!!!
    18. Написать программу, которая находит в каждой строке матрицы F размерности m n максимальный и минимальный элементы и помещает их на место первого и последнего элемента строки соответственно.

    Code:
    #include<iostream>
    #include<alloc.h>
    #include<conio.h>
    using namespace std;
    int main()
    {
    int i,j,x;
    cout<<endl<<"m=";
    int m;
    cin>>m;
    cout<<endl<<"n=";
    int n;
    cin>>n;
    if(m<1||n<1) return -1;
    double**a=new double*[m];
    for(i=0;i<m;i++)
    {
    a[i]=new double[n];
    for(int j=0;j<n;j++)
    {
    cout<<"a["<<i<<"]["<<j<<"]=";
    cin>>a[i][j];
       }
    }
    int k;
    int*b=new int[m];
    int min,l;
    i=0;x=0;
    while(i<m)
    {
    int min=a[i][0],max=a[i][0],l;
    for(int j=1;j<n;++j)
        {
    if (a[i][j]<min) min=a[i][j];
    if (a[i][j]>max) max=a[i][j];
        }
        l=(2*m-i);
        b[l]=max;
        b[i]=min;
        ++i;
        }
         int p;
        for (p=0;p<m;p++){
        cout<<"b["<<p<<"]="<<b[p];}
        getch ();
        return 0;
        }
     
  3. izlesa

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

    Joined:
    3 Jan 2008
    Messages:
    112
    Likes Received:
    32
    Reputations:
    5
    2HencH_MaN
    Уважай тех к кому обращаешься за помощью. Код, который ты привел, просто нечетабелен. Мне реально влом напрягаться, вчитываясь в эту кашу. Раставь нормально отступы, сгруппируй определения и тд. Тебе же самому будет приятно смотреть, на красиво структурированный код.

    Да и в чём собственно вопрос?
     
  4. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    наверно у него утечка памяти 8))) так активно new использует что даже забыл что есть и delete!
     
  5. N1K70

    N1K70 Banned

    Joined:
    2 Jan 2008
    Messages:
    161
    Likes Received:
    76
    Reputations:
    21
    задачи на паскале:

    Code:
    _http://contest.samara.ru/ru/contests/139/
    ps: не для слабонервных ;)
     
  6. lisa99

    lisa99 Banned

    Joined:
    15 Jul 2008
    Messages:
    359
    Likes Received:
    200
    Reputations:
    70
    и что ты этим хотел сказать?
     
  7. HencH_MaN

    HencH_MaN New Member

    Joined:
    8 Feb 2008
    Messages:
    19
    Likes Received:
    0
    Reputations:
    0
    Вопрос в том что упорядочивание не производиться :(
    PHP:
    #include<iostream>
    #include<alloc.h>
    #include<conio.h>
    using namespace std;
    int main()
    {
    int i,j,x;
    cout<<endl<<"m=";
    int m;
    cin>>m;
    cout<<endl<<"n=";
    int n;
    cin>>n;
    if(
    m<1||n<1) return -1;
    double**a=new double*[m];
    for(
    i=0;i<m;i++)
    {
    a[i]=new double[n];
    for(
    int j=0;j<n;j++)
    {
    cout<<"a["<<i<<"]["<<j<<"]=";
    cin>>a[i][j];
       }
    }
    int k;
    int*b=new int[m];
    int min,l;
    i=0;x=0;
    while(
    i<m)
    {
    int min=a[i][0],max=a[i][0],l;
    for(
    int j=1;j<n;++j)
        {
    if (
    a[i][j]<minmin=a[i][j];
    if (
    a[i][j]>maxmax=a[i][j];
        }
        
    l=(2*m-i);
        
    b[l]=max;
        
    b[i]=min;
        ++
    i;
        }
         
    int p;
        for (
    p=0;p<m;p++){
        
    cout<<"b["<<p<<"]="<<b[p];}
        
    getch ();
        return 
    0;
        }
     
    #887 HencH_MaN, 13 Dec 2008
    Last edited: 13 Dec 2008
  8. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    Если кому-нибудь когда-нибудь понадобится построение ПОЛИЗ(польской инверсной записи - парсинг выражений). То вот вам моя его реализация на c#:


    Code:
            public void Parse(string text)
            {
                Stack<char> stack = new Stack<char>(); //рабочкий стек
    
                string ret = ""; //собственно сам полиз
    
                for (int i = 0; i < text.Length; i++)
                {
                    if (text[i] == '(') stack.Push('(');
                    if (char.IsLetter(text[i]) || char.IsDigit(text[i])) ret += text[i];
                    
                    
    
                    if (text[i] == '-'||text[i]=='*'||text[i]=='/'||text[i]=='+')
                    {
                        while (stack.Count!=0 && stack.Peek() != '(') // выталкиваем все с большим приоритетом
                        {
                            char a = stack.Pop(); //вынимаем...
                            if (GetOperationPriory(text[i]) < GetOperationPriory(a)) ret += a;
                        }
                        stack.Push(text[i]);
                    }
    
    
                    if (text[i] == ')')
                    {
                        while(stack.Count!=0&&stack.Peek()!=')')
                        {
                            char k = stack.Pop();
                            if (k != ')'&&k!='(') ret += k;
                        }
                    }
                 }
                 if (stack.Count != 0)
                 {
                     while (stack.Count != 0)
                     {
                         if (stack.Peek() != '(') ret += stack.Pop();
                         else stack.Pop();
                     }
                 }
                 label2.Text = ret;
            
            }
    
    
        private int GetOperationPriory(char sym) //приоритет операций
            {
                if (sym == '+') return 1;
                if (sym == '-') return 2;
                if (sym == '*') return 3;
                if (sym == '/') return 4;
                else return 0;
            }
    
     
  9. criz

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

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    2 HencH_MaN, прогу не компилил, но вроде это
    выводит одну строку из массива, попробуй добавить еще один цикл.
     
    #889 criz, 13 Dec 2008
    Last edited: 13 Dec 2008
  10. izlesa

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

    Joined:
    3 Jan 2008
    Messages:
    112
    Likes Received:
    32
    Reputations:
    5
    2HencH_MaN
    Башка не рабатает, так что вот тебе немножечко моего говнокода;

    На что стоит обратить внимания:
    1. Нет никакой обработки случаев когда malloc возвращает нулевые указатели вместо валидных. Это фигово, но мне влом.
    2. В задании нет указания на то, что надо обменивать элементы - первый с минимальным, последний с максимальным. Так что я сделал затирание максимальным и минимальным значением последнего и первого элемента строки.
    3. Костыли в виде инициализации iMax, iMin максимально и минимально возможными значениями для int сделаны по причине нулевой мотивации облагораживать код и вводить дополнительные if. Так, что если хочешь сделать не машиннозависимый код, то вперёд ^____^

    Code:
    
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void)
    {
    	int iRowsSize, iColsSize, iMin, iMax;
    	int i, j;
    	int **pCol;
    	int *pRow;
    	
    	iRowsSize = iColsSize = 0;
            iMax = 0x80000000;
    	iMin = 0x7FFFFFFF;
    	
    	printf("Input number of rows : ");
    	scanf("%d", &iRowsSize);	
    	printf("Input number of columns :");
    	scanf("%d", &iColsSize);
    
    	pCol = (int **)malloc(iColsSize * sizeof(int **));
    	
    	for(i = 0; i < iColsSize; i++)
    	{
    		pRow = (int *)malloc(iRowsSize * sizeof(int));
    		pCol[i] = pRow;
    		for(j = 0; j < iRowsSize; j++)
    		{
    			printf("Input [%d][%d] element : ", i, j);
    			scanf("%d", &pCol[i][j]);
    		}
    	}
    
    	for(i = 0; i < iColsSize; i++)
    	{
    		for(j = 0; j < iRowsSize; j++)
    		{
    			iMax = (pCol[i][j] > iMax) ? pCol[i][j] : iMax;	
    			iMin = (pCol[i][j] < iMin) ? pCol[i][j] : iMin;
    		}
    		pCol[i][0] = iMin;
    		pCol[i][iRowsSize - 1] = iMax;
    		iMax = 0x80000000;
    		iMin = 0x7FFFFFFF; 
    	}
    
    	for(i = 0; i < iColsSize; i++)
    	{
    		for(j = 0; j < iRowsSize; j++)
    		{
    			printf("[%d][%d] element : %d ", i, j, pCol[i][j]);
    			
    		}
                    free(pCol[i]);
    		printf("\n");
    	}
            free(pCol);
    
    	return 0;
    }
    
     
     
    #890 izlesa, 13 Dec 2008
    Last edited: 13 Dec 2008
  11. HencH_MaN

    HencH_MaN New Member

    Joined:
    8 Feb 2008
    Messages:
    19
    Likes Received:
    0
    Reputations:
    0
    Спасибо,izlesa,помог студенту =)
     
  12. akwaNOX

    akwaNOX New Member

    Joined:
    3 Feb 2005
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    подкиньте плиз, исходник простой программы(любой) написанной на FLTK/FLUID
     
  13. Stern

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

    Joined:
    13 Mar 2007
    Messages:
    75
    Likes Received:
    5
    Reputations:
    0
    Люди помогитее плиииз с http://forum.antichat.ru/showpost.php?p=969281&postcount=823

    надо на с++ :( время в обрез((( осталось
     
  14. jawbreaker

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

    Joined:
    7 Jul 2008
    Messages:
    156
    Likes Received:
    76
    Reputations:
    3
    Stern
    вот тебе первое задание с комментариями а как делать остальные это уже твоя забота
    PHP:
    #include <vector>
    #include <iostream>
    #include <algorithm>
    #include <cstdio>

    #define  SIZE 10

    using namespace std;

    double get_ave(const vector <int> & a// функция считающее среднее значение числа
    {
        
    int sum 0;
        for (
    int i 0a.size(); i++)
        {
            
    sum += a[i];
        }
        return 
    sum / (a.size() + .0); // делим сумму всех чисел на размер массива
    }

    void ShowArray(const vector <int> & a// функция для вывода массива на экран
    {
        
    cout << "Array: ";
        for (
    int i 0a.size(); i++)
        {
            
    cout << "a[i]:" << a[i] << "\n";
        }
    }

    int main()
    {
        
    cout << "Fill random (y/n)?\n";
        
    char ch;
        
    cin >> ch;
        
    vector <inta(SIZE);
        if (
    ch == 'y')
        {
            
    srand(32000);
            for (
    int i 0SIZEi++)
            {
                
    //srand(100);
                
    a[i] = rand() % 100;
            }
        }
        else
        if(
    ch == 'n')
        {
            for (
    int i 0SIZEi++)
            {
                
    cin >> a[i];
            }
        }
        
    ShowArray(a);
        
    int N;
        
    cout << "Enter number!\n";
        
    cin >> N;
        if((
    SIZE) && (>= 0))
        {
            
    a[N] = get_ave(a);
        }
        
    ShowArray(a);
        
    cin.get();
        
    sort(a.begin(), a.end());
        
    ShowArray(a); // выводим отсортированный массив
        
    cin.get();
        return 
    0;
    }
     
    1 person likes this.
  15. SAGib

    SAGib New Member

    Joined:
    23 Sep 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Народ,подскажите по такой трабле:
    Составить блок схему котрая выводит на экран сумму двух чисел,равную числу от 1 до 9 введеному с клавиатуры
    например 6=5+1, 9=4+5... и так от 1 до 9

    З.Ы. заранее благодарен :)
     
    #895 SAGib, 14 Dec 2008
    Last edited: 14 Dec 2008
  16. lisa99

    lisa99 Banned

    Joined:
    15 Jul 2008
    Messages:
    359
    Likes Received:
    200
    Reputations:
    70
    непонятно сформ. условие.
    уточни
     
  17. SAGib

    SAGib New Member

    Joined:
    23 Sep 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Как я понял нужно приложение работающее в консоли,которое при вводе числа от 1 до 9ти выводит сумму этого числа в 2х цифрах т.е. при вводе 6 будет выводится числа 5+1 либо 2+4 и так далее...
    З.Ы. Точнее сказать немогу т.к. меня попросили помоч и я в с++ нешарю
     
    #897 SAGib, 14 Dec 2008
    Last edited: 14 Dec 2008
  18. InfernoNet

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

    Joined:
    7 Nov 2007
    Messages:
    248
    Likes Received:
    228
    Reputations:
    -20
    Задание:
    Заполнить матрицу размерностью n на m (nxm) числами, которые деляться без остатка на число S. Строку с индексом K разделить на число S.
    --
    Заранее спасибо.
     
  19. Sinay

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

    Joined:
    1 Sep 2007
    Messages:
    356
    Likes Received:
    365
    Reputations:
    20
    какой язык или тебе сам алгоритм нужен?
     
  20. MRAK9

    MRAK9 Member

    Joined:
    29 Jul 2007
    Messages:
    115
    Likes Received:
    26
    Reputations:
    0
    НУ ПОЖАЛУЙСТА......HELP!!!!

    задачка... точнее три... для вас это пару пустяков... на паскале:
    1-определить делится ли число N на n нацело
    2-вводим с клавиатуры дробное N и вычисляем среднее арифметическое
    3-найти сумму вводимых с клавиатуры чисел конец ввода число 0
     
    #900 MRAK9, 15 Dec 2008
    Last edited: 15 Dec 2008
Thread Status:
Not open for further replies.