Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2008, 14:32   #1
Liver
Пользователь
 
Регистрация: 09.12.2008
Сообщений: 10
По умолчанию Помогите с массивами

1) Результатом соревнований по прыжкам в длину представлены списком фамилий и результатов в порядке занятых мест. Задача сводится к упорядочению результатов в порядке убывания, но при выполнении перестановки в массиве результатов нужно представлять соответствующие элименты в массиве фамилий. Для сортировки использовать любой метод.
2) В массиве 30 элиментов целого типа. Найти и напечатать максимальный среди последних 10 элиментов и его индекс.
Liver вне форума Ответить с цитированием
Старый 16.12.2008, 14:47   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
const n=30;
var a:array[1..n] of integer;
     i,max:integer;
begin
randomize;
for i:=1 to n do
  a[i]:=random(100);
max:=20;
for i:= 21 to n do
 if a[i]>a[max] then max:=i;
writeln(a[max],' ',max); 
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 16.12.2008, 14:59   #3
VoRTeX
Пользователь
 
Аватар для VoRTeX
 
Регистрация: 07.02.2007
Сообщений: 21
По умолчанию

1.
Код:
type
    rec=record
              fam:string;
              res:word;
    end;
    list=array[1..100] of rec;
var
   a:list;
   i, j:byte;
   temp:rec;
begin
     a[1].fam:='petrov'; a[1].res:=432;
     a[2].fam:='ivanov'; a[2].res:=234;
     a[3].fam:='sidorov'; a[3].res:=534;
     for i:=1 to 3 do
     for j:=i+1 to 3 do
     if a[i].res<a[j].res then
     begin
          temp:=a[i];
          a[i]:=a[j];
          a[j]:=temp;
     end;
     for i:=1 to 3 do
     Writeln(a[i].fam, a[i].res);
     Readln;
end.
VoRTeX вне форума Ответить с цитированием
Старый 16.12.2008, 15:16   #4
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
но при выполнении перестановки в массиве результатов нужно представлять соответствующие элименты в массиве фамилий. Для сортировки использовать любой метод.
ТО есть нужно 2 массива

Код:
uses crt;
const n=100;
var a:array[1..n] of real;
    Surname:array[1..n] of string[20];
    i,j,x:integer;
    t:string;
    temp:real;

begin
x:=0;
repeat
inc(x);
clrscr;
writeln('Input surname');
readln(Surname[x]);
writeln('Input result');
readln(a[x]);
if x<>n then writeln('Continue(y/n)?')
until (readkey='n')or(x=n);
  for i:=2 to x do
    for j:=x downto i do
      if a[j-1]<a[j] then
        begin
          Temp:=a[j-1];
          t:=Surname[j-1];
          a[j-1]:=a[j];
          Surname[j-1]:=Surname[j];
          a[j]:=temp;
          Surname[j]:=t;
        end;
writeln('---------------');
for i:=1 to x do
 begin
  write(a[i]:4:3);write('--');write(Surname[i]);
  writeln;
 end;

end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 16.12.2008, 15:28   #5
VoRTeX
Пользователь
 
Аватар для VoRTeX
 
Регистрация: 07.02.2007
Сообщений: 21
По умолчанию

Цитата:
Сообщение от alex_fcsm Посмотреть сообщение
ТО есть нужно 2 массива
Не обязательно. Можно сделать массив записей, как я сделал в предыдущем посте.
VoRTeX вне форума Ответить с цитированием
Старый 16.12.2008, 15:32   #6
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
Подмигивание

Я понимаю что лучше делать массив записей, но в условии упоминается 2 массива.

P.S. И вообще там сначала про список говорится
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 16.12.2008, 15:38   #7
VoRTeX
Пользователь
 
Аватар для VoRTeX
 
Регистрация: 07.02.2007
Сообщений: 21
По умолчанию

Но все же использование массива записей эффективней, так вместо двух присваиваний, нужно делать одно. Оптимизация кода
VoRTeX вне форума Ответить с цитированием
Старый 16.12.2008, 15:45   #8
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

В УСЛОВИИ 2 Массива - если Вы не выполните условие то причем здесь оптимизация. Сначала нужно выполнить условие а затем оптимизировать(например использовать более быструю сортировку)
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с массивами!!! VILLIREX Помощь студентам 10 24.06.2009 17:54
помогите с массивами slivochny Общие вопросы C/C++ 7 21.11.2008 12:57
помогите с массивами Ibmsystem Помощь студентам 1 21.04.2008 08:10
Помогите с массивами Юль_кА Паскаль, Turbo Pascal, PascalABC.NET 2 10.04.2008 08:39