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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2011, 20:45   #1
lirikoff
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 24
По умолчанию составить массив случайных чисел Паскаль

Проблема такая - нужно составить массив случайных чисел, в котором каждый элемент меньше 5 будет увеличиваться на 100, а каждый отрицательный увеличиваться в 10 раз

Просто массив случайных чисел я создать могу - примерно
program mas1;

var

a: array [1..10] of integer;

i: integer;

begin

randomize;

for i:=1 to 10 do

begin

a[i]:=random(20);

write('a(', i, ')=', a[i], ' ')

end;

readln

end.
а вот как сделать, чтоб нужные по условию числа увеличивались и уменьшались- не знаю
Просто Паскаь я плохо знаю, подскажите пожалуйста

Последний раз редактировалось lirikoff; 08.02.2011 в 20:50.
lirikoff вне форума Ответить с цитированием
Старый 08.02.2011, 20:52   #2
a9N2k
Заблокирован
 
Регистрация: 01.02.2011
Сообщений: 44
По умолчанию

Код:
Procedure create(n:integer; var a:t);
var i : integer;
begin
randomize;
for i := 1 to n do
    begin
      a[i] := random(201) - 100;
      if a[i] in [0..5] then a[i]:=a[i]+100;
	  if a[i] < 0 then a[i]:=a[i]*100;
	  write(a[i], ' ')
     end;
writeln
end;
a9N2k вне форума Ответить с цитированием
Старый 08.02.2011, 20:53   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Пусть A - массив, о котором вы говорили.

Тогда

Цитата:
в котором каждый элемент меньше 5 будет увеличиваться на 100
Делается так:

Код:
if a[i] < 5 then a[i]:=a[i] + 100;
Цитата:
а каждый отрицательный увеличиваться в 10 раз
так:

Код:
if a[i] < 0 then a[i]:=a[i]*100
На каждой итерации цикла надо проверять оба этих условия
Вадим Мошев вне форума Ответить с цитированием
Старый 08.02.2011, 20:55   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от a9N2k Посмотреть сообщение
Код:
Procedure create(n:integer; var a:t);
var i : integer;
begin
randomize;
for i := 1 to n do
    begin
      a[i] := random(201) - 100;
      if a[i] in [0..5] then a[i]:=a[i]+100;
	  if a[i] < 0 then a[i]:=a[i]*100;
	  write(a[i], ' ')
     end;
writeln
end;
Если вы так напишите, то у вас элементы и РАВНЫЕ 5 тоже увеличатся на 100. По-моему, в задании имелось в виду "строго меньше 5"
Вадим Мошев вне форума Ответить с цитированием
Старый 08.02.2011, 20:56   #5
a9N2k
Заблокирован
 
Регистрация: 01.02.2011
Сообщений: 44
По умолчанию

Цитата:
if a[i] < 5 then a[i]:=a[i] + 100;
А вдруг там отрицательное число? Оно тоже меньше 5.
Даже, если, допустим поменять местами проверку отрицательных и меньше 5, тогда отрицательное число умножится в 10 раз и потом еще +100.
a9N2k вне форума Ответить с цитированием
Старый 08.02.2011, 20:58   #6
a9N2k
Заблокирован
 
Регистрация: 01.02.2011
Сообщений: 44
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Если вы так напишите, то у вас элементы и РАВНЫЕ 5 тоже увеличатся на 100. По-моему, в задании имелось в виду "строго меньше 5"
Ладно, тогда:
if (a[i]>0) and (a[i]<5) then...
Или
if a[i] in [0..4] then...
a9N2k вне форума Ответить с цитированием
Старый 08.02.2011, 21:07   #7
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от a9N2k Посмотреть сообщение
А вдруг там отрицательное число? Оно тоже меньше 5.
Даже, если, допустим поменять местами проверку отрицательных и меньше 5, тогда отрицательное число умножится в 10 раз и потом еще +100.
Но ведь в условии задач ничего не сказано, что тот элемент, который меньше 5, не должен быть отрицателен.

К сожалению, сама задача сформулирована таким образом, что решения - неоднозначны (ИМХО).
Вадим Мошев вне форума Ответить с цитированием
Старый 08.02.2011, 21:16   #8
lirikoff
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 24
По умолчанию

a9N2k и Вадим Мошев
Спасибо за разъяснения! Помогли!
Я тоже заметил, что формулировка несколько туманная, сестра в 10м классе на информатике Паскаль изучает.
lirikoff вне форума Ответить с цитированием
Старый 08.02.2011, 21:20   #9
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Это вы ЕЙ помогали?
Вадим Мошев вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив случайных чисел, сред. ариф. vladxxl Общие вопросы C/C++ 1 27.11.2010 23:52
Генератор случайных ВЕЩЕСТВЕННЫХ чисел (Паскаль) igor_564 Помощь студентам 12 19.11.2010 01:24
Массив случайных чисел и ошибка Invalid pointer operation lobz1k Общие вопросы C/C++ 1 05.06.2010 20:40
Составить программу которая находит индекс числа в массиве случайных чисел MadNikys Помощь студентам 9 03.03.2010 20:52
Двухмерный массив случайных чисел AxisNet Паскаль, Turbo Pascal, PascalABC.NET 4 16.09.2009 10:01