1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
| электрик |
22.05.2005 13:31
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
помогиет решить задачу!! срочно, не могу зачет здать!
вот она: Составьте прогу, проверяющую, можно ли, меняя местами элементы одномерного массива А, получить одномерный массив В |
| klem4 |
22.05.2005 13:36
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
сортируешь оба массива, а потом поэлементам сравниваешь соответственные :
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";'
|
| электрик |
22.05.2005 13:42
Сообщение
#3
|
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
Цитата(klem4 @ 22.05.05 13:36) сортируешь оба массива, а потом поэлементам сравниваешь соответственные : a[1] & b[1] a[2] & b[2] ... a[n] & b[n]. если пара не равна, то flag:=false => конец цикла проверки. зы это естественно для массивов А и Б размерности N (одинаковой) Я чуть тока шарю, но не понятно. Если можно, то поподробнее чуть об алгоритме. |
| volvo |
22.05.2005 13:43
Сообщение
#4
|
|
Гость |
Выбери любой из методов сортировки отсюда: FAQ: Методы сортировки
, отсортируй по возрастанию оба массива и сравнивай числа с одинаковыми индексами... Что неясно? |
| klem4 |
22.05.2005 13:46
Сообщение
#5
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Сортируешь оба массива по возрастанию(убыванию) на твой вкус, естественно оба или так или так.
далее делаешь примерно так : var Сообщение отредактировано: klem4 - 22.05.2005 13:47 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
| электрик |
22.05.2005 13:49
Сообщение
#6
|
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
Цитата(volvo @ 22.05.05 13:43) Выбери любой из методов сортировки отсюда: FAQ: Методы сортировки , отсортируй по возрастанию оба массива и сравнивай числа с одинаковыми индексами... Что неясно? понял как сортировать по возростанию( в тетрадке нашел!!)Но как их сравнивать не очень... |
| volvo |
22.05.2005 13:55
Сообщение
#7
|
|
Гость |
flag := true; |
| электрик |
22.05.2005 13:58
Сообщение
#8
|
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
Цитата(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 |
22.05.2005 13:59
Сообщение
#9
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Цитата(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";'
|
| электрик |
22.05.2005 14:03
Сообщение
#10
|
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
а что обозначают:
flag := true; flag:=false; а то потом препод спрашивать будет |
| volvo |
22.05.2005 14:23
Сообщение
#11
|
|
Гость |
Цитата(klem4 @ 22.05.05 13:59) это короче, но и тут лучше while использовать, ведь вовсе не обязательно нужен полный просмотр массива, согласись ;) Нет, не соглашусь... Что, из For нельзя выйти как только Flag = False? Можно. Так почему While? У тебя же все-таки фиксированное количество проходов... |
| klem4 |
22.05.2005 14:28
Сообщение
#12
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Цитата(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 |
22.05.2005 14:37
Сообщение
#13
|
|
Гость |
klem4
специально для тебя: flag := true; и сколько сравнений тебе понадобится? И где ты видел Exit? Кстати, мне как-то все равно, что преподы любят, а что нет. |
| электрик |
22.05.2005 14:44
Сообщение
#14
|
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
Цитата(volvo @ 22.05.05 14:37) klem4 специально для тебя: flag := true; и сколько сравнений тебе понадобится? И где ты видел Exit? Кстати, мне как-то все равно, что преподы любят, а что нет. и Как лучше закончить? |
| электрик |
5.06.2005 16:19
Сообщение
#15
|
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
короче посидел подумал и вот задача:
Program laba7; Сообщение отредактировано: volvo - 5.06.2005 17:59 |
| volvo |
5.06.2005 20:24
Сообщение
#16
|
|
Гость |
А ты в курсе, что она неверно оформлена? У тебя ее ни один преподаватель не примет
pol:=pol1(ma,n,m); а pol - глобальная переменная... |
| электрик |
5.06.2005 20:25
Сообщение
#17
|
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
ИЗВИНИТЕ СКИНУЛ НЕ ТУ ЗАДАЧУ:( ТА ЗАДАЧАЧА ВЫДАЕТ СНАЧАЛА ЗАСТАВКУ ,А ПОТОМ СЩИТАЕТ В ВАШЕЙ МАТРИЦЕ ЧИСЛО ПОЛОЖИТЕЛЬНЫХ ЭЛЕМЕНТОВ, ПРИЧЕМ ВСЕ СДЕЛАННО ЧЕРЕЗ ПРОЦЕДУРЫ),А ЭТО ВОТ ТА САМААЯ ЗАДАЧА!!!
Исходный код 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 |
5.06.2005 20:33
Сообщение
#18
|
|
Гость |
Ну и смысл? Зачем тебе 2 одинаковые процедуры ввода массива и 2 одинаковые процедуры сортировки? А если у тебя будет 4 массива? Copy+Paste? Для того она и процедура, чтобы выполнять повторяющуюся последовательность действий, а ты при первом же повторе определяешь вторую процедуру
|
| электрик |
6.06.2005 6:36
Сообщение
#19
|
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
Цитата(volvo @ 5.06.05 20:24) А ты в курсе, что она неверно оформлена? У тебя ее ни один преподаватель не примет pol:=pol1(ma,n,m); а pol - глобальная переменная... а мне и надо функцией |
| volvo |
6.06.2005 10:16
Сообщение
#20
|
|
Гость |
Ну, тогда и используй функцию по прямому назначению !
... |
![]() ![]() |
|
Текстовая версия | 15.12.2025 19:03 |