Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2011, 21:56   #1
tabanga
Пользователь
 
Регистрация: 10.01.2011
Сообщений: 10
По умолчанию Random

Ребят, а не подскажите, возможно ли при использовании функции random, чтобы не было конкретного диапазона чисел?
tabanga вне форума Ответить с цитированием
Старый 10.01.2011, 21:58   #2
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

А какой "конкретный" диапазон сейчас?
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 10.01.2011, 22:02   #3
tabanga
Пользователь
 
Регистрация: 10.01.2011
Сообщений: 10
По умолчанию

m[i]:=random(20)-20*random;
tabanga вне форума Ответить с цитированием
Старый 10.01.2011, 22:06   #4
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

И? В чём вопрос то?
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 10.01.2011, 22:08   #5
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

ты нарушаешь логику случайного числа
NiCola999 вне форума Ответить с цитированием
Старый 10.01.2011, 22:17   #6
tabanga
Пользователь
 
Регистрация: 10.01.2011
Сообщений: 10
По умолчанию

Задание такое: Пользователь вводит число с клавиатуры, в заданном массиве найти все числа, меньше вводимого числа и посчитать их среднее арифметическое.

При вводе числа -20 начинает ругаться

PHP код:
Program massiv;
var 
m:array [1..20of real;
b,s,ar:real;
i,k:integer;
begin
Randomize
;
for 
i:=1 to 20 do begin
                  m
[i]:=random(20)-20*random;
                  
write (m[i]:2:3,' ');
                  
end;
Writeln;
Begin
k
:=0;
s:=0;
ar:=0;
writeln(' Введите число ');
Readln (b);
for 
i:=1 to 20 do begin
                  
if m[i]<b then
                                begin
                                Writeln 
(' Число меньше вводимого числа ',m[i]:2:3);
                                
k:=k+1;
                                
s:=s+m[i];
                                
end;
                  
end;
ar:=s/k;
Writeln (' Среднее арифметическое ',ar:2:3);
end;
end
tabanga вне форума Ответить с цитированием
Старый 10.01.2011, 23:14   #7
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Понятно почему падает! У вас в массиве нет числа которое меньше -20! Поэтому к = 0!
Отсюда деление на 0! Сами понимаете!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 10.01.2011, 23:19   #8
tabanga
Пользователь
 
Регистрация: 10.01.2011
Сообщений: 10
По умолчанию

Hacker19_90 Это понятно, а не подскажите, как можно исправить программу, чтобы можно было вести любое число?
tabanga вне форума Ответить с цитированием
Старый 10.01.2011, 23:22   #9
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Код:
Program massiv;
uses crt;
var m:array [1..20] of real;
b,s,ar:real;
i,k:integer;
begin
clrscr;
Randomize;
for i:=1 to 20 do begin
                  m[i]:=random(20)-20;
                  write (m[i]:2:3,' ');
                  end;
Writeln;
k:=0;
s:=0;
ar:=0;
writeln(' Введите число ');
Readln (b);
for i:=1 to 20 do begin
                  if m[i]<b then
                                begin
                                Writeln (' Число меньше вводимого числа ',m[i]:2:3);
                                k:=k+1;
                                s:=s+m[i];
                                end;
                  end;
if k = 0 then writeln ('Таких элементов нет!')
else
begin
    ar:=s/k;
    Writeln (' Среднее арифметическое ',ar:2:3);
end;
ReadKey;
end.
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303

Последний раз редактировалось Hacker19_90; 10.01.2011 в 23:40.
Hacker19_90 вне форума Ответить с цитированием
Старый 10.01.2011, 23:32   #10
tabanga
Пользователь
 
Регистрация: 10.01.2011
Сообщений: 10
По умолчанию

Hacker19_90 Спасибо, но вот интересно, нельзя сделать так, чтобы рандомное заполнение массива не ограничивалось на 20, чтобы можно было ввести любое число?
tabanga вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
random в С++ Swool Общие вопросы C/C++ 21 18.02.2012 21:55
Random() Alest Общие вопросы Delphi 2 12.06.2010 00:42
random Syltan Общие вопросы C/C++ 1 24.05.2010 11:08
Random ZET78 C++ Builder 5 23.05.2010 09:36