2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Паскаль. Задача на одномерные массивы. Нужна помощь.
Сообщение21.02.2010, 11:30 
Помогите пожалуйста решить такую задачу:
Даны натуральное число n, целые числа A1..A25 и B1..Bn.
Среди A1..A25 и B1..Bn нет повторяющихся.
Получить все члены последовательности B1..Bn.

ЗЫ и если можно, с комментариями. Очень хочу сам понять как это делается :)

 
 
 
 Re: Паскаль. Задача на одномерные массивы. Нужна помощь.
Сообщение21.02.2010, 11:44 
Начните с внятной формулировки задачи. Если $B_i$ даны, то какую последовательность искать?

 
 
 
 Re: Паскаль. Задача на одномерные массивы. Нужна помощь.
Сообщение21.02.2010, 11:47 
Эм. Ну мне кажется так - генерируются массивы случайным образом, потом программа должна заменить повторяющиеся элементы массива и вывести нам его уже без одинаковых. Вроде так.

 
 
 
 Re: Паскаль. Задача на одномерные массивы. Нужна помощь.
Сообщение21.02.2010, 12:06 
Если кажется правильно, то у вас уже есть наметки алгоритма.
1. сгенерить массивы
2. найти повторяющиеся
3. вывести остальные

в чем конкретно проблема?

 
 
 
 Re: Паскаль. Задача на одномерные массивы. Нужна помощь.
Сообщение21.02.2010, 12:21 
Я думаю что в 3ем пункте надо не просто вывести остальные, а заменить одинаковые на другие. А потом уже вывести. Проблема в замене.
Сейчас написал кое-что. Вроде как нужно - среди двух массивов повторяющиеся прога заменяет, а вот в самих массивах повторяющиеся есть.
Вот код:

uses CRT;
const n=25;
type myarray = array[1..25] of integer;
myarray1= array[1..n] of integer;
var a:myarray;
b:myarray1;

procedure Init(var a,b:myarray);
var i,j:integer;
begin
randomize;
for i:=1 to 25 do
a[i]:=random(100);
for j:=1 to n do
b[j]:=random(100);
for i:=1 to 25 do
for j:=1 to n do
if a[i]=b[j] then b[j]:=random(100);
end;

procedure Print(a,b:myarray);
var i,j:integer;
begin
for i:=1 to 25 do
Write(a[i]:5);
Writeln;
Writeln;
Writeln;
for j:=1 to n do
Write(b[j]:5);
end;

begin
Init(a,b);
Print(a,b);
end.

Что туда добавить надо чтобы вообще повторяющихся не было?
И вообще - правильно я все сделал?

 
 
 
 Re: Паскаль. Задача на одномерные массивы. Нужна помощь.
Сообщение21.02.2010, 14:45 
1. Где отступы?
2. Где подсветка синтаксиса?

 
 
 
 Re: Паскаль. Задача на одномерные массивы. Нужна помощь.
Сообщение03.03.2010, 16:27 
2A_Killer
Возможно вам будет полезно заглянуть в тему Помогите решить задачу по паскалю на тему файлы.

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group