![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
электрик |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
помогиет решить задачу!! срочно, не могу зачет здать!
вот она: Составьте прогу, проверяющую, можно ли, меняя местами элементы одномерного массива А, получить одномерный массив В |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
сортируешь оба массива, а потом поэлементам сравниваешь соответственные :
a[1] & b[1] a[2] & b[2] ... a[n] & b[n]. если пара не равна, то flag:=false => конец цикла проверки. зы это естественно для массивов А и Б размерности N (одинаковой) Сообщение отредактировано: klem4 - 22.05.2005 13:37 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
электрик |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(klem4 @ 22.05.05 13:36) сортируешь оба массива, а потом поэлементам сравниваешь соответственные : a[1] & b[1] a[2] & b[2] ... a[n] & b[n]. если пара не равна, то flag:=false => конец цикла проверки. зы это естественно для массивов А и Б размерности N (одинаковой) Я чуть тока шарю, но не понятно. Если можно, то поподробнее чуть об алгоритме. |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Выбери любой из методов сортировки отсюда: FAQ: Методы сортировки
, отсортируй по возрастанию оба массива и сравнивай числа с одинаковыми индексами... Что неясно? |
klem4 |
![]()
Сообщение
#5
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Сортируешь оба массива по возрастанию(убыванию) на твой вкус, естественно оба или так или так.
далее делаешь примерно так : var Сообщение отредактировано: klem4 - 22.05.2005 13:47 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
электрик |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(volvo @ 22.05.05 13:43) Выбери любой из методов сортировки отсюда: FAQ: Методы сортировки , отсортируй по возрастанию оба массива и сравнивай числа с одинаковыми индексами... Что неясно? понял как сортировать по возростанию( в тетрадке нашел!!)Но как их сравнивать не очень... |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
flag := true; |
электрик |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(volvo @ 22.05.05 13:55) flag := true; т.е я сортирую потом добавляю ag := true; for i := 1 to n do flag := flag and (a[i] = b[i]); if flag then writeln('Можно') else writeln('Нельзя'); и все |
klem4 |
![]()
Сообщение
#9
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата(volvo @ 22.05.05 13:55) flag := true; это короче, но и тут лучше while использовать, ведь вовсе не обязательно нужен полный просмотр массива, согласись ;) Сообщение отредактировано: klem4 - 22.05.2005 14:03 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
электрик |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
а что обозначают:
flag := true; flag:=false; а то потом препод спрашивать будет |
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Цитата(klem4 @ 22.05.05 13:59) это короче, но и тут лучше while использовать, ведь вовсе не обязательно нужен полный просмотр массива, согласись ;) Нет, не соглашусь... Что, из For нельзя выйти как только Flag = False? Можно. Так почему While? У тебя же все-таки фиксированное количество проходов... |
klem4 |
![]()
Сообщение
#12
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата(volvo @ 22.05.05 14:23) Нет, не соглашусь... Что, из For нельзя выйти как только Flag = False? Можно. Так почему While? У тебя же все-таки фиксированное количество проходов... Да можно, например используя exit... но врядли препод это оценит, они этого не любят, покрайней мере в таких простых ситуациях, где он (exit) вовсе необязателен. ;) а по поводу фиксировонного числа, если у нас в массиве пара тысяч элементов, а уже первая пара не сошлась, то все что будет происходить дальше бессмысленно, так что, электрик, либо exit сувай, либо цикл через while органиовывай :yes: -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#13
|
Гость ![]() |
klem4
специально для тебя: flag := true; и сколько сравнений тебе понадобится? И где ты видел Exit? Кстати, мне как-то все равно, что преподы любят, а что нет. |
электрик |
![]()
Сообщение
#14
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(volvo @ 22.05.05 14:37) klem4 специально для тебя: flag := true; и сколько сравнений тебе понадобится? И где ты видел Exit? Кстати, мне как-то все равно, что преподы любят, а что нет. и Как лучше закончить? |
электрик |
![]()
Сообщение
#15
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
короче посидел подумал и вот задача:
Program laba7; Сообщение отредактировано: volvo - 5.06.2005 17:59 |
volvo |
![]()
Сообщение
#16
|
Гость ![]() |
А ты в курсе, что она неверно оформлена? У тебя ее ни один преподаватель не примет
![]() pol:=pol1(ma,n,m); а pol - глобальная переменная... ![]() |
электрик |
![]()
Сообщение
#17
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
ИЗВИНИТЕ СКИНУЛ НЕ ТУ ЗАДАЧУ:( ТА ЗАДАЧАЧА ВЫДАЕТ СНАЧАЛА ЗАСТАВКУ ,А ПОТОМ СЩИТАЕТ В ВАШЕЙ МАТРИЦЕ ЧИСЛО ПОЛОЖИТЕЛЬНЫХ ЭЛЕМЕНТОВ, ПРИЧЕМ ВСЕ СДЕЛАННО ЧЕРЕЗ ПРОЦЕДУРЫ),А ЭТО ВОТ ТА САМААЯ ЗАДАЧА!!!
Исходный код Program rgz2; uses crt; const n = 10; type t = array[1..n] of integer; v = array[1..n] of integer; var a : t; b : v; flag : boolean; j:integer; procedure massiv(n:integer; var a:t); var j:integer; begin for j:=1 to n do begin writeln( 'ўўҐ¤ЁвҐ',j,'-© н«Ґ¬Ґв 1-Ј® ¬ ббЁў ='); readln(a[j]);end; writeln; end; procedure massiv1(n:integer; var b:v); var j:integer; begin for j:=1 to n do begin writeln( 'ўўҐ¤ЁвҐ',j,'-© н«Ґ¬Ґв 2-Ј® ¬ ббЁў ='); readln(b[j]);end; writeln; end; Procedure bubble(n : integer; var a : t); var i, j, p : integer; begin for i := 2 to n do for j := n downto i do if a[j] < a[j-1] then begin p := a[j]; a[j] := a[j-1]; a[j-1] := p end; writeln('гЇ®а冷зл© Ї®ҐгЎлў Ёо 1 ¬ ббЁў'); for i := 1 to n do write(a[i], ' '); writeln end; Procedure bubble1(n : integer; var b : v); var i, j, p : integer; begin for i := 2 to n do for j := n downto i do if b[j] < b[j-1] then begin p := b[j]; b[j] := b[j-1]; b[j-1] := p end; writeln('гЇ®а冷зл© Ї®ҐгЎлў Ёо 1 ¬ ббЁў'); for i := 1 to n do write(b[i], ' '); writeln end; begin massiv(n, a); massiv1(n, B); bubble(n, a); bubble1(n, B); begin flag:=true; for j:=1 to n do flag:=flag and (a[j]=b[j]); if flag then writeln('yes')else writeln('no'); end; readln; end. KLEM4,А ТЫ ГОВОРИШЬ, ЧТО САМ НЕ РЕШАЮ....ПРОСТО Я ЭЛЕКТРИК В ПРЯМОМ СМЫСЛЕ УЧУСЬ НА ЭЛЕКТРОЭНЕРГЕТИЧЕСКОМ, И НЕ ШАРЮ В ВАШИХ ЯЗЫКАХ, ДА ЕЩЕ ПРЕПОД, НЕ ДАЙ БОГ ВАМ ТАКОГО.... ВОТ И ДОСТАЮ ВАС, ИЗВИНИТЕ КОНЕЧНО.... Вот только кричать не надо... Сообщение отредактировано: volvo - 6.06.2005 10:17 |
volvo |
![]()
Сообщение
#18
|
Гость ![]() |
Ну и смысл? Зачем тебе 2 одинаковые процедуры ввода массива и 2 одинаковые процедуры сортировки? А если у тебя будет 4 массива? Copy+Paste? Для того она и процедура, чтобы выполнять повторяющуюся последовательность действий, а ты при первом же повторе определяешь вторую процедуру
![]() |
электрик |
![]()
Сообщение
#19
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(volvo @ 5.06.05 20:24) А ты в курсе, что она неверно оформлена? У тебя ее ни один преподаватель не примет ![]() pol:=pol1(ma,n,m); а pol - глобальная переменная... ![]() а мне и надо функцией |
volvo |
![]()
Сообщение
#20
|
Гость ![]() |
Ну, тогда и используй функцию по прямому назначению !
... |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 15:32 |