Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 11.04.2013, 03:09   #1 (permalink)
Taranov
Новичок
 
Регистрация: 05.04.2013
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите с перебором на Паскале

Рад всех приветствовать!

Столкнулся с такой задачей. Есть одномерный массив m, который формируется определенным образом.
m = [8, 4, 4, 2, 2, 2, 2]. Дальше мы задаем параметр x от 1 до n-4 (n = 8). Задача сводится к перебору всех возможных сочетаний из элементов массива по x.

Например, x=2. Перебор осуществляем по два элемента. Получаем: (8,4) (8,4) (4,4) (4,2) (2,2) (8,2) и т.д. всего 21 сочетание. Это бином Ньютона. Программа должна складывать числа из каждого сочетания и формировать новый одномерный массив размером 1x21. 8+4=12, 8+4=12, 4+4=8 и т.д.

Например, x=3. Перебор по три элемента. Получаем (8,4,4) (8,4,2) (8,2,2) и т.д. всего 35 сочетаний. Дальше складываем: 8+4+4=16, 8+4+2=14 и т.д. Формируем из этих чисел массив размером 1x35.

Исходник:

Код:
VAR 	m: array of real;
        a,b,n,y,i,j,x: integer;

BEGIN
        a:=2; b:=2; n:=a*b+a+2; y:=2*a*b;

        Write('x= ');
        ReadLn(x);

        Setlength(m,n-1);

        // Формируем массив
        j:=1;
        m[j]:=8;

        for i:=1 to a do
            begin
              j:=j+1;
              m[j]:=(1/a)*y;
            end;

        for i:=1 to a*b do
            begin
              j:=j+1;
              m[j]:=(1/(a*b))*y;
            end;

        // Выводим массив
        for j:=1 to n-1 do write(m[j]:3:0);
        WriteLn;
        ReadLn
END.
Taranov вне форума   Ответить с цитированием

Старый 11.04.2013, 03:09
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Проблема уже обсуждалась, рекомендую прочитать информацию по этим ссылкам

Помогите с программой на Паскале
Помогите с программой на паскале
Помогите с задачей на Паскале
Помогите с программой на Паскале
Помогите с задачами на фри Паскале

Старый 21.04.2013, 17:07   #2 (permalink)
Taranov
Новичок
 
Регистрация: 05.04.2013
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Есть предложения?
Taranov вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 22:10.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.