Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 14

Работа с массивами.

23.05.2010, 08:13. Показов 1391. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую.

Возникли две задачки по делфи, решения к которым найти так и не смог.

1) В массиве A=(a1, а2, ..., аn) удалить последнюю группу
положительных элементов. Группой называется подряд идущие элементы
одного знака, число которых больше или равно 2.

{ не могу понять... как сделать так, что бы именно последнюю группу, если с конца через цикл, то там муть с переменными получается, что в итоге ничего не получается. попытки вложить в переменные massEnd и massBegin границы нужной группы ни к чему не приводят... вообще каким образом сеё задача решается? }

2) Дана матрица A(n×m). Получить матрицу, получающуюся из
данной: перестановкой столбцов: первого с последним, второго с
предпоследним и т. д.

{ здесь ни малейшей идеи.... }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.05.2010, 08:13
Ответы с готовыми решениями:

Работа с массивами
Найти произведение всех чисел заданного массива меньших 50 и сложить с произведением всех чисел массива, больших 100.

Работа с массивами!
1. Составить прогу. генерирующую массив содержащий только те элементы одномерного массива А(т) , что будет удовлетворять условию, корни...

Работа с одномерными массивами....
№1.Подсчитать сумму элементов находящихся между макс.и мин.элементами массива... Массив:целочисленный. №2.Дан массив вещественных...

6
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
23.05.2010, 09:40
Цитата Сообщение от Self-suicide Посмотреть сообщение
1) В массиве A=(a1, а2, ..., аn) удалить последнюю группу
положительных элементов. Группой называется подряд идущие элементы
одного знака, число которых больше или равно 2.
1) перебираете массив с последнего элемента к началу.
2) как только встретился неположительный элемент, останавливаете перебор.
3) если индекс перебора остановился на последнем или предпоследнем элементе - задача решения не имеет
4) в противном случае обрубаем конец массива начиная с встреченного неположительного элемента + 1 позиция
0
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 14
23.05.2010, 10:49  [ТС]
одно но. числа генерируются случайно и нужная группа может быть посередине, между отрицательными числами.
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
23.05.2010, 11:53
Цитата Сообщение от Self-suicide Посмотреть сообщение
одно но. числа генерируются случайно и нужная группа может быть посередине, между отрицательными числами.
что ж, алгоритм усложняется, но не сильно:
1. перебираем массив с конца
2. если текущий элемент положительный - запоминаем его индекс в переменную
3. продолжаем перебор, пока не встретится отрицательный элемент (в этом случае прерываем перебор) или будет достигнуто начало.
4. Анализируем индекс последнего перебранного элемента и запомненный индекс в переменной на шаге 2:
если переменная на шаге 2 заполнена и если индекс последнего перебранного элемента не равен той переменной, то соответсвенно мы имеем индексы начала и конца последовательности. Удалить этот кусок - дело техники.

Алгоритм еще усложнится, если по условию нужно пропускать единичные положительные элементы, окруженные отрицательными, либо примыкающие одной из сторон к краю массива.
0
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 14
23.05.2010, 12:57  [ТС]
Данная суть мне уже была понятна, но в том то и вопрос, как реализовать это на дэлфи.
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
23.05.2010, 16:10
каждый из 4-х шагов алгоритма реализуется на delphi одной, максимум двумя строчками кода.
что именно не ясно?
покажите ваши попытки, а мы скорректируем.
0
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 14
24.05.2010, 08:46  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
type arr=array[1..40] of integer;
 
var
  a:arr;
  i,j,n,posie,posib: byte;
  group,posend: boolean;
  maxi: integer;
 
begin
  {$R+}
 
  n:= 40;
  randomize;
  for i:=1 to n do
    begin
    a[i]:=-50+random(100);
    write(a[i]:4);
    end;
  writeln;
 
  i:=40;
  posie:=0;
  posib:=0;
  group:=false;
  posend:=false;
 
 
  for i:=n-1 downto 1 do
    begin
 
    if (a[i]>0) AND (a[i+1] > 0) then
      begin
 
         { в комментах это второй способ, который я пробывал и который так же не работает  if posend=false then
             begin
              posie:=a[i+1];
               posend:=true;
                end;
 
          if group=false then
              begin
                posib:=a[i];
                  end;
 
      if a[i] <=  0 then
        group:=true;           }
 
        for j:=i to n-1 do
         { a[j]:=a[j+1];      }
         a[j]:=0;
 
                end;        
 
      end;
 
    {  for i:=posib to posie do
            a[i]:=0;                }
 
      for i:=1 to n do
         write(a[i]:4);
      
readln;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.05.2010, 08:46
Помогаю со студенческими работами здесь

Работа с многомерными массивами
Привет всем. Нужна ваша помощь. Помогите разобраться с заданием. Не могу никак его понять Задание: Мне не нужна помощь с...

Delphi работа с массивами
Всем привет.Помогите разобраться, пробовал кодить мало что выходит, в некоторых моментах допускаю ошибки. Delphi 7 А) Пусть дана...

Работа с одномерными массивами
1. Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка . Найти сумму положительных элементов,...

Работа с таймером и динамическими массивами
var Form1: TForm1; reg,r:TRegExpr; col, t,x:integer; myTele:array of string; myTVTime:array of string; procedure...

Работа с массивами
Проверьте, правильное ли решение? Условие: Разместите на форме четыре таблицы StringGrid - две матрицы (начальная и измененная, каждый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru