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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2009, 15:17   #1
Paksten
Новичок
Джуниор
 
Регистрация: 08.12.2009
Сообщений: 2
По умолчанию паскаль задача на латинский алфавит

Всем привет.
задали такую вот лабу по паскалю , ни как не могу сделать, так как давно на нем не работал, все забыл...
Заполнить два массива размером 20 и 30 элементов случайным образом буквами латинского алфавита. Заполнить третий массив теми буквами, которые входят и в первый и во второй массив, четвертый - оставшимися буквами из первого и второго. Произвести сортировку поученных массивов. ДЛЯ КОНТРОЛЯ результата также сделать распечатку массивов, в том числе исходного.
Paksten вне форума Ответить с цитированием
Старый 08.12.2009, 23:31   #2
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

Код:
const
  Len = 30;

type
  TArray = Array[1..Len] of Char;

procedure Sort(var a: TArray; N: Integer);
var
  I, J: Integer;
  tmp: Char;
begin
  for I := 1 to N - 1 do
    for J := I + 1 to N do
      if a[I] > a[J] then
      begin
        tmp := a[I];
        a[I] := a[J];
        a[J] := tmp;
      end;
end;

procedure Print(a: TArray; N: Integer);
var
  I: Integer;
begin
  for I := 1 to N do
    Write(a[I], ' ');
  WriteLn;
end;

var
  a, b, c, d: TArray;
  I, J, N, M: Integer;
  f: Boolean;

begin
  Randomize;
  for I := 1 to 30 do
  begin
    if I <= 20 then a[I] := Chr(Ord('A') + Random(26));
    b[I] := Chr(Ord('A') + Random(26));
  end;
  N := 0;
  M := 0;
  for I := 1 to 20 do
  begin
    f := false;
    for J := 1 to 30 do
      if a[I] = b[J] then
      begin
        Inc(N);
        c[N] := a[I];
        f := True;
        Break;
      end;
      if not f then
      begin
         Inc(M);
         d[M] := a[I];
      end;
  end;
  WriteLn('First array:');
  Print(a, 20);
  WriteLn('Second array:');
  Print(b, 30);
  WriteLn;
  WriteLn('Result:');
  WriteLn;
  Sort(a, 20);
  Sort(b, 30);
  Sort(c, N);
  Sort(d, M);
  WriteLn('First array:');
  Print(a, 20);
  WriteLn('Second array:');
  Print(b, 30);
  WriteLn('Third array:');
  Print(c, N);
  WriteLn('Fourth array:');
  Print(d, M);
  ReadLn;
  ReadLn;
end.
Alex_FF вне форума Ответить с цитированием
Старый 08.12.2009, 23:58   #3
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

если что-нибудь лишнее в массиве появится, то в Random'e вместо 26 напиши 25.
Alex_FF вне форума Ответить с цитированием
Старый 09.12.2009, 18:19   #4
Paksten
Новичок
Джуниор
 
Регистрация: 08.12.2009
Сообщений: 2
Радость

Большое Спасибо!!!!
Paksten вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПОСТРОИТЬ ЛАТИНСКИЙ КВАДРАТ НА С++ innaa639 Помощь студентам 4 23.11.2009 17:31
Латинский квадрат innaa639 Помощь студентам 1 22.11.2009 22:40
Алфавит Mikimaus Общие вопросы C/C++ 7 17.11.2009 19:15
"Латинский" квадрат. Паскаль SmartStas Помощь студентам 9 19.03.2009 16:37