Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Паскаль
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 22.04.2018, 18:17   #1
furymaxim
Пользователь
 
Регистрация: 25.11.2017
Сообщений: 21
Репутация: 10
По умолчанию Указание первоначального адреса элемента массива

Был дан массив из 3-х разрядных чисел,необходимо было найти суммы цифр каждого числа и выстроить их по убыванию с указанием их первоначальных адресов. например,в начале было число 526 ,стоял на 5ом месте исходного массива, сумма его цифр 13, он получился самым большим в новом массиве,но мы должны указать его начальное место,то есть "был на 5ом месте исходного массива"

Код:

program;
const n=10;
Type MyType=record
   number:integer;
   indexPrev:byte;
end;
Type ArrMyType = array[1..n] of MyType;
var
 i,j: integer;
 a:array[1..n] of MyType;
 
function f(x:integer):integer;
var
  d,s: integer;
begin
  s:=0;
  while x > 0 do
   begin
    d:= x mod 10;
    s:= s + d;
    x:= x div 10;
   end;
   f:=s;
end;

procedure swap(var x,y: integer);
   var t: integer;
 begin
    t := x;
    x := y;
    y := t
 end; 
 

begin
writeln('Исходный массив');
for i:=1 to n do
  begin
    a[i].number:=random(100)+500;
    a[i].indexPrev:=i; 
    write(i,' эл. = ',a[i].number,' ');
  end;
writeln;
writeln('Cумма цифр в числе,без сортировки');  
for i:=1 to n do
 a[i].number := f(a[i].number);
for i:=1 to n do
  write(' y ',i,' эл. = ',a[i].number, ' ');
//метод пузырька  
for i:=1 to n-1 do
 for j:=i+1 to n do
  if a[i].number < a[j].number then
   swap(a[i].number,a[j].number); 
writeln;   
writeln('Новый массив');
for i:=1 to n do
write(a[i].number,' ','первоначальный адрес = '); //???
end.


Как вывести первоначальный адрес?
furymaxim вне форума   Ответить с цитированием
Старый 23.04.2018, 21:46   #2
ViktorR
Профессионал
 
Регистрация: 23.10.2010
Сообщений: 1,164
Репутация: 603
По умолчанию

Например, перед сортировкой, создай второй массив с порядковым номером, или используй двумерный: второй столбец - это порядковый номер элемента.
В процессе сортировки обрабатывай обе компоненты - либо второй массив, либо второй столбец...
__________________
Как-то так, ...
ViktorR вне форума   Ответить с цитированием
Ответ

Опции темы

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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++.Определите среднее значение элементов массива Х(20). Найдите индекс элемента массива, наиболее близкого к среднему значению. dunhill55 Помощь студентам 1 16.12.2012 19:02
Адреса элементов динамического массива меняются... Altera Общие вопросы Delphi 6 07.09.2009 07:31
Обновление первоначального состояния формы street-walker Общие вопросы Delphi 2 13.05.2009 00:07
PHP: использование элемента массива как массива Sudia Помощь студентам 1 20.02.2009 21:48
Указание точного адреса файла на диске Vladya Помощь студентам 4 04.11.2008 21:48


21:10.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru