Помощь - Поиск - Пользователи - Календарь
Полная версия: последовательности
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Денис домосед+
Помогите пожалуста решить задачу.Через неделю сдавать надо, а я бум бум в программировании.Хотя бы намекните с чего начать,а то я совсем расклеился отчислять собираются.
Даны натуральное число N и две последовательности A1, A2, …, AN и B1, B2, …, BN. Определить, верно ли, что эти последовательности отличаются только порядком следования элементов.
Федосеев Павел
1. Убедись, что при поэлементном сранении массиов хоть одна пара неодинакова.
2. Отсортируй каждую последовательность.
3. Сравни поэлементно две отсортированные последоательности - они должны быть одинаковы, и тогда пиши на экран слово "верно".
На этом форуме, да и на других форумах есть FAQ, в котором присутствуют куски кода по сортировке, пояснения работы с массивами.
Денис домосед+
а как сравнивать, у меня в этом самый главный вопрос.
Федосеев Павел
А покажи, как ты организовал типы, какие имена у переменных. А то на пальцах элементы массиов не сравнивают.

Или ты не знаешь оператор сравнения и поэтому покинешь место учёбы?
Денис домосед+
понимаешь Павел, учусь на машиностроении, а паскаль вижу в глаза в первые в жизни поэтому трудновато,щас скину что я тут накавырял

Добавлено через 16 мин.
uses crt;
const
n=10;
var
A:array[1..n] of integer;
B:array[1..n] of integer;
i:integer;
begin
randomize;
for i:=1 to n do
begin
A[i]:=random(9)+1;
write(A[i],' ');
end;
writeln();
for i:=1 to n do
begin
B[i]:=random(9)+1;
write(B[i],' ');
end;
readln;
end.


ну вот что то накавырял
Федосеев Павел
Пользуемся кнопками CODE и # в форме ответа для обрамления программы. И ещё форматтерами кода для повышения читабельности (см. здесь) - рекомендую JCF.


program Lab;

uses
crt;

const
n = 10;
var
A: array[1..n] of integer;
B: array[1..n] of integer;
i: integer;
begin
{--------------------------------------
заполнение массивов
--------------------------------------}
randomize;
for i := 1 to n do
begin
A[i] := random(9) + 1;
Write(A[i], ' ');
end;
WriteLn();
for i := 1 to n do
begin
B[i] := random(9) + 1;
Write(B[i], ' ');
end;
readln;
{--------------------------------------
убедимся, что исходные массивы различны
--------------------------------------}
bDifferent:=false;
for i:=1 to n do
if A[i]<>B[i] then
begin
bDifferent:=true;
break;
end;
if not bDifferent then
begin
writeln('Не верно. Обе последовательности идентичны.');
halt;
end;
{--------------------------------------
сортируем обе последовательности
--------------------------------------}
Sort(A);
Sort(B);
{--------------------------------------
проверяем отсортированные последовательности на идентичность
--------------------------------------}
................................
if идентичны then
writeln('Верно. Последовательности отличаются только порядком следования элементов.')
else
writeln('Не верно. Обе последовательности абсолютно различны.');
end.


Сортировку или сам организуй или поищи в FAQ или вообще в интернете.

Основы программирования пригодятся не только в паскале, но и при расчётах в математических пакетах MathCAD, Mathlab, Octvia, SciLab, Wolfram Mathematica.
Денис домосед+
т.е. на месте Sort(A); Sort(B); пишу код на сортировку, а вот потом а[i]=b[i] так?и еще какой вид сортировки посоветуешь?
Федосеев Павел
Цитата
т.е. на месте Sort(A); Sort(B); пишу код на сортировку,

Нет. Оформляешь процедурой, как и в примерах сортировки. А потом дважды (для A и для B) вызываешь.

Цитата
и еще какой вид поиска посоветуешь?

Не понял про поиск.
Денис домосед+
не поиск а сортировку я перепутал))
Федосеев Павел
Если вы изучали какие-нибудь - выбирай на свой вкус. Иначе - сделай хоть наивную сортировку, а для себя ознакомься с теорией алгоритмов сортировки. Потому, что без долгого объяснения - все алгоритмы выглядят, как заклинания.
Можешь начать с "http://ru.wikipedia.org/wiki/Алгоритм_сортировки", продолжить "http://algolist.manual.ru/sort/", "http://rosettacode.org/wiki/Category:Programming_Tasks"
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.