Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 24.03.2013, 17:25   #1 (permalink)
Only
Member
 
Регистрация: 24.03.2013
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Paskal, нужна ваша помощь

Задача: Заполнить одномерный вещественный массив случайными числами; найти такие из них, которые входят в интервал [m, n] (произвольные m и n вводятся с клавиатуры).
Вот что я смог написать (заполнение массива случайными числами), дальше незнаю как описать цикл:
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],' ');

Помогите пожалуйста дописать прграмму, очень нужна ваша помощь.)
Only вне форума   Ответить с цитированием

Старый 24.03.2013, 17:25
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Рекомендую прочитать обсуждаемые темы, наверняка там вы найдете важную информацию

Нужна ваша помощь
Друзья, нужна ваша помощь

Старый 24.03.2013, 17:39   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Only Посмотреть сообщение
Помогите пожалуйста дописать прграмму, очень нужна ваша помощь.)
Да пожалуйста:
Код:
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.
Vladimir_S вне форума   Ответить с цитированием
Старый 24.03.2013, 19:35   #3 (permalink)
Only
Member
 
Регистрация: 24.03.2013
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Что то не работает, точнее работает но выводит числа больше, выходящий, из интервала..
Так же не очень понял запись
a[i]:=random*100; изменил её на:
a[i]:=random(100); пробелма в том что нужно например если мы вводим М-30, а N-10 и число элементов например 5, он ныдавал 5 чисел входящих в интервал от 30 до 10, а прогрмамма выдаёт более большие числа, выходящие из интервала.
Что сделать? как исправить? что то не соображу(
Only вне форума   Ответить с цитированием
Старый 24.03.2013, 19:50   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Only Посмотреть сообщение
Что то не работает, точнее работает но выводит числа больше, выходящий, из интервала..
Естественно, работает и оттестирована, иначе не была бы выложена.
Цитата:
Сообщение от Only Посмотреть сообщение
Так же не очень понял запись a[i]:=random*100; изменил её на: a[i]:=random(100);
Так. Приплыли.
Смотрим условие задачи: "Заполнить одномерный вещественный массив". Так по какому такому праву Вы, сударь, самочинно упрощаете задачу, беря вместо вещественного массива целочисленный? Нет уж, не пойдет: сказано вещественный, значит так тому и быть. А генерация случайных вещественных (real) чисел осуществляется через оператор Random без параметров, возвращающий случайное вещественное число в интервале от 0 до 1. Будучи умноженным на 100, число преобразуется к интервалу от 0 до 100, оставаясь вещественным, как это и требуется в условии задачи.
Цитата:
Сообщение от Only Посмотреть сообщение
пробелма в том что нужно например если мы вводим М-30, а N-10 и число элементов например 5, он ныдавал 5 чисел входящих в интервал от 30 до 10, а прогрмамма выдаёт более большие числа, выходящие из интервала.
Ну так кто же Вас знал, что Вы начнете вводить параметры интервала в албанском порядке, т.е. сначала больший, потом меньший? Я-то рассчитывал на естественный порядок: сначала меньшее, потом большее число, т.е. от m до n. Ну а так конечно ахинея получится. Тогда надо еще ветвление вводить типа "если m>n, то то-то, иначе то-то".
Vladimir_S вне форума   Ответить с цитированием
Старый 24.03.2013, 20:36   #5 (permalink)
Only
Member
 
Регистрация: 24.03.2013
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

хорошо, допустим что так.
Тогда другой вопрос, при вводе m<n выдаётся..
rghost. ru /44739092/image. png
а при вводе m>n выводится то количество элементов которое было введено..
rghost. ru /44739175/image. png
в чём проблема? так же в обоих случаях элементы выходят из заданного промежутка.
В ссылках пришлось поставить пробелы..
Only вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 24.03.2013, 20:53   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Only Посмотреть сообщение
хорошо, допустим что так.
Тогда другой вопрос, при вводе m<n выдаётся..
rghost. ru /44739092/image. png
а при вводе m>n выводится то количество элементов которое было введено..
rghost. ru /44739175/image. png
в чём проблема? так же в обоих случаях элементы выходят из заданного промежутка.
В ссылках пришлось поставить пробелы..
1. Увидеть Ваши картинки я так и не смог. Предлагаю руководствоваться инструкцией, изложенной здесь: Как вставить картинки в свой пост .
2. Ниже приведен результат работы той программы, что я выложил. Первые две строки после ввода данных - исходный массив, третья - результат выборки. Как видите, всё работает и работает правильно. А уж что Вы там в своём коде накосячили, то мне неведомо.
Миниатюры
only.jpg  
Vladimir_S вне форума   Ответить с цитированием
Старый 24.03.2013, 20:58   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Отбой, увидел Ваш результат (один пробел не уничтожил). Так что Вас не устраивает? Вы задаете границы от 3 до 15, и программа находит единственный элемент массива (9.58), в этот интервал попадающий, каковой и выводит на экран. Что не так?
Миниатюры
only_2.jpg  
Vladimir_S вне форума   Ответить с цитированием
Старый 24.03.2013, 21:07   #8 (permalink)
Only
Member
 
Регистрация: 24.03.2013
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Возможно вы просто не до поняли меня, и выводиться должны просто любые числа из этого массива, тоесть на место строки из которой программа выбирает принадлежение числа интервалу, там должны быть все числа принадлежащее ему, вот
Only вне форума   Ответить с цитированием
Старый 24.03.2013, 21:17   #9 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Only Посмотреть сообщение
Возможно вы просто не до поняли меня
Признаться, и до сих пор не понимаю.
Цитата:
Сообщение от Only Посмотреть сообщение
и выводиться должны просто любые числа из этого массива, тоесть на место строки из которой программа выбирает принадлежение числа интервалу, там должны быть все числа принадлежащее ему, вот
Все "числа, принадлежащие интервалу" и выводятся. Или нужно исходную строку уничтожить и обязательно на ее место сажать выборку? Можно, но долго и противно. Или просто исходный массив не выводить? Так чем он мешает?
Vladimir_S вне форума   Ответить с цитированием
Старый 24.03.2013, 21:23   #10 (permalink)
Only
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
Only вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 07:06.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.