24.03.2013, 17:25 | #1 (permalink) |
Member
Регистрация: 24.03.2013
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Paskal, нужна ваша помощь
Вот что я смог написать (заполнение массива случайными числами), дальше незнаю как описать цикл: program t3; var a: array[1..100] of integer; i,k,m,n:integer; begin writeln('vvedite m'); readln(m); writeln('vvedite n'); readln(n); writeln('vvedite kol-vo elementov'); readln(k); for i:=1 to k do begin a[i]:=random(100); write(a[i],' '); Помогите пожалуйста дописать прграмму, очень нужна ваша помощь.) |
24.03.2013, 17:25 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Рекомендую прочитать обсуждаемые темы, наверняка там вы найдете важную информацию Нужна ваша помощь Друзья, нужна ваша помощь |
24.03.2013, 17:39 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Да пожалуйста:
Код:
var a: array[1..100] of real; i,k,m,n:integer; begin write('vvedite m '); readln(m); write('vvedite n '); readln(n); write('vvedite kol-vo elementov '); readln(k); Randomize; for i:=1 to k do begin a[i]:=random*100; write(a[i]:8:2); end; writeln; writeln; for i:=1 to k do if (a[i]>m) and (a[i]<n) then write(a[i]:8:2); readln end. |
24.03.2013, 19:35 | #3 (permalink) |
Member
Регистрация: 24.03.2013
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Что то не работает, точнее работает но выводит числа больше, выходящий, из интервала..
Так же не очень понял запись a[i]:=random*100; изменил её на: a[i]:=random(100); пробелма в том что нужно например если мы вводим М-30, а N-10 и число элементов например 5, он ныдавал 5 чисел входящих в интервал от 30 до 10, а прогрмамма выдаёт более большие числа, выходящие из интервала. Что сделать? как исправить? что то не соображу( |
24.03.2013, 19:50 | #4 (permalink) | ||
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Цитата:
Смотрим условие задачи: "Заполнить одномерный вещественный массив". Так по какому такому праву Вы, сударь, самочинно упрощаете задачу, беря вместо вещественного массива целочисленный? Нет уж, не пойдет: сказано вещественный, значит так тому и быть. А генерация случайных вещественных (real) чисел осуществляется через оператор Random без параметров, возвращающий случайное вещественное число в интервале от 0 до 1. Будучи умноженным на 100, число преобразуется к интервалу от 0 до 100, оставаясь вещественным, как это и требуется в условии задачи.Ну так кто же Вас знал, что Вы начнете вводить параметры интервала в албанском порядке, т.е. сначала больший, потом меньший? Я-то рассчитывал на естественный порядок: сначала меньшее, потом большее число, т.е. от m до n. Ну а так конечно ахинея получится. Тогда надо еще ветвление вводить типа "если m>n, то то-то, иначе то-то". |
||
24.03.2013, 20:36 | #5 (permalink) |
Member
Регистрация: 24.03.2013
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
хорошо, допустим что так.
Тогда другой вопрос, при вводе m<n выдаётся.. rghost. ru /44739092/image. png а при вводе m>n выводится то количество элементов которое было введено.. rghost. ru /44739175/image. png в чём проблема? так же в обоих случаях элементы выходят из заданного промежутка. В ссылках пришлось поставить пробелы.. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
24.03.2013, 20:53 | #6 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
2. Ниже приведен результат работы той программы, что я выложил. Первые две строки после ввода данных - исходный массив, третья - результат выборки. Как видите, всё работает и работает правильно. А уж что Вы там в своём коде накосячили, то мне неведомо. |
|
24.03.2013, 20:58 | #7 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Отбой, увидел Ваш результат (один пробел не уничтожил). Так что Вас не устраивает? Вы задаете границы от 3 до 15, и программа находит единственный элемент массива (9.58), в этот интервал попадающий, каковой и выводит на экран. Что не так?
|
24.03.2013, 21:07 | #8 (permalink) |
Member
Регистрация: 24.03.2013
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Возможно вы просто не до поняли меня, и выводиться должны просто любые числа из этого массива, тоесть на место строки из которой программа выбирает принадлежение числа интервалу, там должны быть все числа принадлежащее ему, вот
|
24.03.2013, 21:17 | #9 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Признаться, и до сих пор не понимаю.Все "числа, принадлежащие интервалу" и выводятся. Или нужно исходную строку уничтожить и обязательно на ее место сажать выборку? Можно, но долго и противно. Или просто исходный массив не выводить? Так чем он мешает?
|
24.03.2013, 21:23 | #10 (permalink) |
Member
Регистрация: 24.03.2013
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Тоесть сейчас при вводе количества элементов =4 выдаёт 4 значения: 38.08 53.98 9.58 44.56
а дложно выводиться любые 4 числа из интервала от m до n. Например если m=3, n=15, количество элементов=4 программа должна вывести числа нипример 4 9 13 5 |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|