Круговой массив |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Круговой массив |
-Dima- |
Сообщение
#1
|
Гость |
Одномерный массив А считать круговым, т.е. после последнего элемента следует снова первый. Из данного кругового массива последовательно удалить в массив С каждый третий элемент. Удаление происходит, пока в массиве А не останется два элемента.
Помогите с решением задачи. |
мисс_граффити |
Сообщение
#2
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
Поиск: ключевые слова "казнь", "считалочка"
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Гость |
Сообщение
#3
|
Гость |
Одномерный массив А считать круговым, т.е. после последнего элемента следует снова первый. Из данного кругового массива последовательно удалить в массив С каждый третий элемент. Удаление происходит, пока в массиве А не останется два элемента. Помогите с решением задачи. uses crt; const max_len = 255; type TArray = array [1..max_len] of Integer; procedure Fill(var arr: TArray; n: Integer); var i: Integer; begin for i := 1 to n do arr[i] := i; end; procedure Print(const arr: TArray; const n: Integer); var i: Integer; begin writeln; for i := 1 to n do write(arr[i]:3); writeln; end; procedure Del(var arr: TArray; var n: Integer; const p: Integer); var i: Integer; begin for i := p to n - 1 do arr[i] := arr[i + 1]; n := n - 1; end; function GetNext(var arr: TArray; var n: Integer; var p: Integer; shift: Integer): Integer; var tShift: Integer; begin if p + shift <= n then begin p := p + shift; end else begin tShift := shift - (n - p); p := 0; while (tShift > n) do tShift := tShift - n; p := tShift; end; Del(arr, n, p); GetNext := p; Dec(p); end; procedure GetSequence(arr: TArray; n, shift: Integer); var p: Integer; begin p := 0; while (n > 0) do begin GetNext(arr, n, p, shift); Print(arr, n); end; end; var a: TArray; n, shift: Integer; begin clrscr; write('N = '); readln(n); write('Shift = '); readln(shift); Fill(a, n); clrscr; Print(a, n); GetSequence(a, n, shift); readln; end. Помогите исправить этот код программы под программу, условие которой описано выше. |
Текстовая версия | 6.11.2024 18:48 |