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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2009, 23:42   #1
HouK
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 16
По умолчанию Формирование массива B из A(pascal,delphi)

2. Дан одномерный целочисленный массив А, состоящий из N элементов и переменные R и D.
• Сформировать массив B из элементов массива A, отличающихся от числа R на величину D.

Сделал следующее. Далее я так понял нада сделать выборку из массива A с условием что элементы выбранные в массив B буду соответствовать условию R+-D, R - вводимое отдельно число, которое лежит в диапозоне массива. D - вводимое отдельно число. В результате при массиве
1 2 11 13 15 20 - Массив А
R=13
D=2
11 15 -Массив Б
но как это написать в коде что то не пойму, помогите плз


Код:
type
  Titem=longint;
  TDar=array of Titem;
var
  j,i:longint;
  n,k:longint;
  A,B:TDar;
  T:Titem;
  R,D:integer;
begin
repeat
    write(rus('Введите кол-во элементов'));
    readln(n);
  until n>0;
  setLength(A,n);
  Write(rus('Введите переменную R = '));
  Readln(R);
  Write(rus('Введите переменную D = '));
  Readln(D);

  i:=low(A);
  randomize;
  repeat
   A[i]:=random(1000);
   inc(i)
  until i>High(A);

  Writeln(rus('Массив А:'));
    if High(A)>=0 then
      for i:=Low(A) to High(A) do
        Write(A[i], ' ') else
          Write(rus('элементов нет'));
  Writeln;
HouK вне форума Ответить с цитированием
Старый 10.12.2009, 08:30   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Круто ты это загнул...
Вот смотри предлагаю на основе твоего:
Код:
type
  Titem=longint;
  TDar=array of Titem;
var
  j,i:longint;
  n,k:longint;
  A,B:TDar;
  T:Titem;
  R,D:integer;
begin
repeat
    write(rus('Введите кол-во элементов'));
    readln(n);
  until n>0;
  setLength(A,n);
  Write(rus('Введите переменную R = '));
  Readln(R);
  Write(rus('Введите переменную D = '));
  Readln(D);

  
  randomize;
  For i:=low(A) to High(A) do begin
   A[i]:=random(1000);
   if abs(a[i]-R)=d then begin
    SetLength(b,length(b)+1);
    b[High(b)]:=a[i];
   end;
  end;

  Writeln(rus('Массив А:'));
      for i:=Low(A) to High(A) do        Write(A[i], ' ');
  Writeln(rus('Массив B:'));
      for i:=Low(b) to High(b) do        Write(b[i], ' ');
  Writeln;
А как функция rus выглядит?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.12.2009, 11:57   #3
HouK
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 16
По умолчанию

Вот то что ты спрашивал

Код:
unit Convector;
interface
function RUS(s:string):string;
implementation		
function RUS(s:string):string;
  var i:longint;
  begin
  for i:=1 to length(s) do
  begin
   if ord(s[i]) in [192..239] then s[i]:=chr(ord(s[i])-64);
   if ord(s[i]) in [240..255] then  s[i]:=chr(ord(s[i])-16);
  end;
  RUS:=s
  end;
end.
спасибо твой код работает.

Последний раз редактировалось HouK; 10.12.2009 в 12:05.
HouK вне форума Ответить с цитированием
Старый 10.12.2009, 12:09   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Угу. Понятно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Turbo Pascal. Формирование и обработка одномерного массива мирЗвонка Помощь студентам 2 04.11.2009 12:17
Формирование отчёта nhfvdfq Microsoft Office Excel 3 25.08.2009 17:43
задача на формирование массива. паскаль Ananim-Pbl6ak Помощь студентам 8 20.03.2009 03:57
Двумерные массивы. Формирование одномерного массива из сумм строк матрицы, кратных числу k (в С++) Fimogen Помощь студентам 3 19.11.2007 07:30