одномерный массив, массивы |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
одномерный массив, массивы |
электрик |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
помогиет решить задачу!! срочно, не могу зачет здать!
вот она: Составьте прогу, проверяющую, можно ли, меняя местами элементы одномерного массива А, получить одномерный массив В |
klem4 |
Сообщение
#2
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
сортируешь оба массива, а потом поэлементам сравниваешь соответственные :
a[1] & b[1] a[2] & b[2] ... a[n] & b[n]. если пара не равна, то flag:=false => конец цикла проверки. зы это естественно для массивов А и Б размерности N (одинаковой) Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
электрик |
Сообщение
#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 |
Сообщение
#4
|
Гость |
Выбери любой из методов сортировки отсюда: FAQ: Методы сортировки
, отсортируй по возрастанию оба массива и сравнивай числа с одинаковыми индексами... Что неясно? |
klem4 |
Сообщение
#5
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Сортируешь оба массива по возрастанию(убыванию) на твой вкус, естественно оба или так или так.
далее делаешь примерно так : var Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
электрик |
Сообщение
#6
|
Новичок Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
Цитата(volvo @ 22.05.05 13:43) Выбери любой из методов сортировки отсюда: FAQ: Методы сортировки , отсортируй по возрастанию оба массива и сравнивай числа с одинаковыми индексами... Что неясно? понял как сортировать по возростанию( в тетрадке нашел!!)Но как их сравнивать не очень... |
volvo |
Сообщение
#7
|
Гость |
flag := true; |
электрик |
Сообщение
#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 |
Сообщение
#9
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Цитата(volvo @ 22.05.05 13:55) flag := true; это короче, но и тут лучше while использовать, ведь вовсе не обязательно нужен полный просмотр массива, согласись ;) Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
электрик |
Сообщение
#10
|
Новичок Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
а что обозначают:
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 Пол: Мужской Реальное имя: Андрей Репутация: 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 |
Сообщение
#13
|
Гость |
klem4
специально для тебя: flag := true; и сколько сравнений тебе понадобится? И где ты видел Exit? Кстати, мне как-то все равно, что преподы любят, а что нет. |
электрик |
Сообщение
#14
|
Новичок Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
Цитата(volvo @ 22.05.05 14:37) klem4 специально для тебя: flag := true; и сколько сравнений тебе понадобится? И где ты видел Exit? Кстати, мне как-то все равно, что преподы любят, а что нет. и Как лучше закончить? |
электрик |
Сообщение
#15
|
Новичок Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
короче посидел подумал и вот задача:
Program laba7; Сообщение отредактировано: volvo - |
volvo |
Сообщение
#16
|
Гость |
А ты в курсе, что она неверно оформлена? У тебя ее ни один преподаватель не примет Вот из-за этого:
pol:=pol1(ma,n,m); а pol - глобальная переменная... Нехорошо. Тогда зачем делать это функцией? Оформи, как процедуру. |
электрик |
Сообщение
#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 - |
volvo |
Сообщение
#18
|
Гость |
Ну и смысл? Зачем тебе 2 одинаковые процедуры ввода массива и 2 одинаковые процедуры сортировки? А если у тебя будет 4 массива? Copy+Paste? Для того она и процедура, чтобы выполнять повторяющуюся последовательность действий, а ты при первом же повторе определяешь вторую процедуру Так делай совсем без процедур...
|
электрик |
Сообщение
#19
|
Новичок Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
Цитата(volvo @ 5.06.05 20:24) А ты в курсе, что она неверно оформлена? У тебя ее ни один преподаватель не примет Вот из-за этого: pol:=pol1(ma,n,m); а pol - глобальная переменная... Нехорошо. Тогда зачем делать это функцией? Оформи, как процедуру. а мне и надо функцией |
volvo |
Сообщение
#20
|
Гость |
Ну, тогда и используй функцию по прямому назначению !
... |
Текстовая версия | 15.05.2024 8:40 |