![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.01.2012
Сообщений: 16
|
![]()
Ребят, помогите мне плиз разобраться с ещё двумя задачками. В школе зачёт надо как-то не завалить;(
Дан массив целых чисел (n=20), заполненный случайным образом числами из промежутка [-45;95]. 1 Удалить из него все элементы, кратные 7 и принадлежащие промежутку [a;b]. a, b вводятся с клавиатуры. 2Вставить число k между всеми соседними элементами массива, которые образуют пару элементов с одинаковыми знаками. k вводится с клавиатуры. Язык: паскаль. спасибо! |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 15.11.2008
Сообщений: 577
|
![]() |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 26.01.2012
Сообщений: 16
|
![]() |
![]() |
![]() |
![]() |
#4 | |
Участник клуба
Регистрация: 30.01.2011
Сообщений: 1,578
|
![]() Цитата:
что бы вовсе ничего не получалось - это уже ваша лень...
пишу код не только за печеньки
|
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 26.01.2012
Сообщений: 16
|
![]()
Наработки? Это первая...
var a,b:array [1..100] of integer; k,j,f,a,b,i:integer; begin randomize; readln(a); readln(b); k:=0; for i:=1 to 20 do begin a[i]:=random(140)-45; f:=0; for j:=a to b do if (a[i]=j) and (a[i] mod 7 =0) then f:=1; if f=0 then begin k:=k+1; b[k]:=a[i]; end; end; for i:=1 to k do writeln(b[i]); end. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 15.11.2008
Сообщений: 577
|
![]()
у вас массив заполнен числами из промежутка [-45; 95].
Если элемент массива кратный 7, то присваиваем ему значение не из этого промежутка например 100, А когда выводите, сделайте простую проверку если элемент == 100, то вы его просто не будет выводить на экран. |
![]() |
![]() |
![]() |
#7 | |
Участник клуба
Регистрация: 30.01.2011
Сообщений: 1,578
|
![]()
и как только это ваш компилятор захавал... тут же повторное объявление переменных
Цитата:
Код:
пишу код не только за печеньки
|
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 26.01.2012
Сообщений: 16
|
![]()
Ок, спасибо. Всё получилось)
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 15.11.2008
Сообщений: 577
|
![]()
Для облегчения работы с 2гим задачей создать счетчик (переменную целого типа) и на этапе когда вы элемента массива который кратен 7 присваиваете допустим 100, увеличивайте счетчик на 1.
2. Теперь необходимо создать еще одну переменную (насколько я помню в паскале нельзя создавать переменные в теле программу поэтому необходимо внести правку в соответствующий раздел программы) типа массив с таким же размером начальный массив. Далее необходимо создать еще один цикл в котором проверять элементы существующего массива на то или они == 100. Если текущий элемент массива <> 100 записать его в новый массив. Теперь будем работать с новым массивом. Для начала нам необходимо знать его размер. Размер исходного массива равен 20, размер нового массива будет равняться 20 - счетчик который мы создали на 1шому шагу. Объявляет еще один массив, и инициализирует все элементы значениями которые не входят в ваш промежуток, например 100. Читаем переменную к. Создаем еще один счетчик и присваиваем ему значение 1. Далее опять же в цикле но на этот раз от 1 до размер нового массива (20 - счетчик) В цикле проверяем или ((потчний элемент массива> 0) и (следующий элемент больше 0) или (потчний элемент массива <0) и ( следующий элемент <0)) Если это условие выполняется то в новый массив записываем if (condition) begin newArray [ourNewIndex] = oldArray [i]; inc (ourNewIndex) newArray [ourNewIndex] = k; end; inc (ourNewIndex) Затем создаем финальный цикл, в котором выводим элементы newArray. Но выводим их до тех пор пока не встретите первую элементы равный 100, то есть while (newArray [i] <> 100); Врятли вы что-то поймете из того что я написал но стирать жалко ![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
две задачи | turok2012 | Фриланс | 7 | 15.01.2012 13:49 |
две задачи | vesper182 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 17.12.2011 07:56 |
Две задачи на с++ | likos18 | Помощь студентам | 0 | 15.12.2011 23:30 |
две задачи | metall-nya | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 26.12.2010 04:17 |
две задачи на С++ | ELL | Помощь студентам | 0 | 01.06.2008 01:28 |