Помогите пожалуста решить задачу.Через неделю сдавать надо, а я бум бум в программировании.Хотя бы намекните с чего начать,а то я совсем расклеился отчислять собираются. Даны натуральное число N и две последовательности A1, A2, …, AN и B1, B2, …, BN. Определить, верно ли, что эти последовательности отличаются только порядком следования элементов.
Федосеев Павел
18.12.2013 3:47
1. Убедись, что при поэлементном сранении массиов хоть одна пара неодинакова. 2. Отсортируй каждую последовательность. 3. Сравни поэлементно две отсортированные последоательности - они должны быть одинаковы, и тогда пиши на экран слово "верно". На этом форуме, да и на других форумах есть FAQ, в котором присутствуют куски кода по сортировке, пояснения работы с массивами.
Денис домосед+
18.12.2013 22:13
а как сравнивать, у меня в этом самый главный вопрос.
Федосеев Павел
18.12.2013 22:39
А покажи, как ты организовал типы, какие имена у переменных. А то на пальцах элементы массиов не сравнивают.
Или ты не знаешь оператор сравнения и поэтому покинешь место учёбы?
Денис домосед+
19.12.2013 3:22
понимаешь Павел, учусь на машиностроении, а паскаль вижу в глаза в первые в жизни поэтому трудновато,щас скину что я тут накавырял
Добавлено через 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.
ну вот что то накавырял
Федосеев Павел
19.12.2013 10:58
Пользуемся кнопками 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.
Денис домосед+
19.12.2013 21:39
т.е. на месте Sort(A); Sort(B); пишу код на сортировку, а вот потом а[i]=b[i] так?и еще какой вид сортировки посоветуешь?
Федосеев Павел
19.12.2013 21:46
Цитата
т.е. на месте Sort(A); Sort(B); пишу код на сортировку,
Нет. Оформляешь процедурой, как и в примерах сортировки. А потом дважды (для A и для B) вызываешь.
Цитата
и еще какой вид поиска посоветуешь?
Не понял про поиск.
Денис домосед+
19.12.2013 21:50
не поиск а сортировку я перепутал))
Федосеев Павел
20.12.2013 9:39
Если вы изучали какие-нибудь - выбирай на свой вкус. Иначе - сделай хоть наивную сортировку, а для себя ознакомься с теорией алгоритмов сортировки. Потому, что без долгого объяснения - все алгоритмы выглядят, как заклинания. Можешь начать с "http://ru.wikipedia.org/wiki/Алгоритм_сортировки", продолжить "http://algolist.manual.ru/sort/", "http://rosettacode.org/wiki/Category:Programming_Tasks"
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.