Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
swillrocker
328 / 117 / 114
Регистрация: 09.04.2011
Сообщений: 243
1

Получить упорядоченную по невозрастанию последовательность длины n+m из членов исходных

19.05.2011, 18:31. Просмотров 984. Ответов 3
Метки нет (Все метки)

Даны две упорядоченные по невозрастанию последовательности a(1..m) и b(1..n) . Получить упорядоченную по невозрастанию последовательность длины n+m из членов данных последовательностей.

(Разбить задачу на подзадачи таким образом, чтобы решение каждой подзадачи описывалось подпрограммой, а основная программа состояла бы из последовательности вызовов подпрограмм)

Pascal
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
Program lab4rr;
const
  m=3;
  n=4;
type
  TA = array [1..m] of integer;
  TB = array [1..n] of integer;
  TC = array [1..m+n] of integer;
procedure someproc(a:TA;b:TB;var c:TC);
var
  i:integer;
  ixA,ixB:integer;
begin
  ixA:=1;
  ixB:=1;
  for i := 1 to m+n do
    if (a[ixA]>b[ixB]) or (ixB>n) then
      begin
        c[i]:=a[ixA];
        inc(ixA)
      end
    else
      begin
        c[i]:=b[ixB];
        inc(ixB)
      end
end;
var
  a:TA;
  b:TB;
  c:TC;
  i:integer;
begin
  a[1]:=3;
  a[2]:=2;
  a[3]:=1;
  b[1]:=8;
  b[2]:=5;
  b[3]:=3;
  b[4]:=1;
  someproc(a,b,c);
  writeln;
  for i := 1 to m+n do
    write(c[i],',');
  writeln;
  readln;
end.
Программа работает, но не для всех последовательностей.
Например при a=12 11 10 и b=4 3 2 1 происходит выход за границы.
Исправьте пожалуйста, буду чрезмерно благодарен.
Да и ввод нужно сделать с клавиатуры, а не так:

Pascal
1
2
3
4
5
6
7
8
begin
  a[1]:=3;
  a[2]:=2;
  a[3]:=1;
  b[1]:=8;
  b[2]:=5;
  b[3]:=3;
  b[4]:=1;
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2011, 18:31
Ответы с готовыми решениями:

Получить упорядоченную по невозрастанию последовательность
Даны две последовательности. Получить упорядоченную по невозрастанию последовательность, состоящую...

Получить упорядоченную по невозрастанию последовательность
Даны две упорядоченные по невозрастанию последовательности a(1..m) и b(1..n) . Получить...

Получить упорядоченную по невозрастанию последовательность, состоящую из тех членов первой последовательности, которых нет во второй
кот Бегемот, а на Паскале можешь первую задачу написать?

Получить упорядоченную по невозрастанию последовательность, состоящую из тех членов первой последовательности, которых нет во второй
Даны две последовательности. Получить упорядоченную по невозрастанию последовательность, состоящую...

Получить упорядоченную по убыванию последовательность, состоящую из всех различных членов исходной
Дана целочисленная последовательность. Получить упорядоченную по убыванию последовательность ,...

3
sannee
Просто хороший человек
368 / 161 / 21
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 4
19.05.2011, 20:29 2
Твой алгоритм некорректный.
В данной задаче ничего сложного нет. Все что нужно сделать это:
1. Перегнать данных два массива в одни массив.
2. Отсортировать массив по убыванию. (смотри методы сортировки массивов)
1
swillrocker
328 / 117 / 114
Регистрация: 09.04.2011
Сообщений: 243
19.05.2011, 20:38  [ТС] 3
Цитата Сообщение от sannee Посмотреть сообщение
Твой алгоритм некорректный.
В данной задаче ничего сложного нет. Все что нужно сделать это:
1. Перегнать данных два массива в одни массив.
2. Отсортировать массив по убыванию. (смотри методы сортировки массивов)
Это уже другой вариант программы... В начальном варианте примерно так и делал, но там было много ошибок и начал снова другим путем.
Могли бы вы написать ваш вариант первого пункта (процедурой) ?
1
sannee
Просто хороший человек
368 / 161 / 21
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 4
19.05.2011, 21:09 4
Лучший ответ Сообщение было отмечено как решение

Решение

Вот полностью рабочая программа, только без процедур и функций. Честно говоря, нет времени этот код переписывать.



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
uses crt;
var
  a:array [1..9999] of integer;
  b: array [1..9999] of integer;
  c: array [1..9999] of integer;
  max, max1, max2: integer;
 temp,i,change:integer;
begin
 
clrscr;
 writeln('ўўҐ¤ЁвҐ ¤«Ё*г ЇҐаў®© Ї®б«Ґ¤.:');
 readln(max1);
 writeln('ўўҐ¤ЁвҐ ¤«Ё*г ўв®а®© Ї®б«Ґ¤.:');
 readln(max2);
 max:=max1+max2;
  writeln('ўўҐ¤ЁвҐ ЇҐаўго Ї®б«Ґ¤®ў.:');
  for i:=1 to max1 do
  begin
  readln(a[i]);
  c[i]:=a[i];
  end;
   writeln('ўўҐ¤ЁвҐ ўв®аго Ї®б«Ґ¤®ў.:');
  for i:=1 to max2  do
  begin
  readln(b[i]);
  c[i+max1]:=b[i];
  end;
  writeln;
  change:=-1;
  while change<>0 do
  begin
    change:=0;
    for i:=2 to max do
      if c[i]>c[i-1] then
      begin
        inc(change);
        temp:=c[i-1];
        c[i-1]:=c[i];
        c[i]:=temp
      end
  end;
  writeln('१г«мв*в:');
  for i:=1 to max do
    write(c[i],' ');
  writeln
end.
3
19.05.2011, 21:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2011, 21:09

Получить упорядоченную последовательность чисел, встречающихся в массиве более двух раз
Не могу написать прогу(...Дан массивы x целых чисел получить упорядоченную последовательность чисел...

Получить упорядоченную по возрастанию последовательность из чисел, которые встречаются в массиве не менее двух раз
Дан массив целых чисел. Получить упорядоченную по возрастанию последовательность из чисел, которые...

Получить упорядоченную последовательность чисел, встречающихся в данном массиве не менее 2 раз (нужна блок-схема)
Может кто-нибудь блок схему для кода написать? Вот сама задача: . Дан массив целых чисел....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru