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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2011, 22:05   #1
godness
Новичок
Джуниор
 
Регистрация: 27.10.2011
Сообщений: 2
По умолчанию Сформировать и распечатать массив из четных двухзначных чисел.

Собственно сабж. Ребят помогите пожалуйста.
Сформировать и распечатать массив из четных двухзначных чисел.
Код:
program chet;
   const n=98;
   var A:array[0..98] of integer;
   i:byte;
begin
   for i:=1 to n do A[i]:=random(40)+(-49);
   writeln('chetnie chisla');
   for i:=1 to n do write (A[i]*2,' ');
end.
пробую так но появляются числа с минусом или же однозначные
godness вне форума Ответить с цитированием
Старый 27.10.2011, 22:52   #2
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Код:
for i:=0 to n-1 do 
  begin
    A[i]:=random(45)*2+10;
    A[i]:=A[i]-2*byte(a[i]=100);
  end;
В Вашем случае массив обїявлен с 0..98 а заполянется с 1-го элемента. Значение нулевого элемента = "удивительно"
весь код:
Код:
program chet;
   const n=98;
   var A:array[1..n] of integer;
   i:byte;
begin
   for i:=1 to n do 
    begin
     A[i]:=random(45)*2+10;
     A[i]:=A[i]-2*byte(a[i]=100);
    end;

   writeln('chetnie chisla');
     for i:=1 to n do write (A[i],' ');
end.
95% сбоев и ошибок приложений, находится в полу метрах от монитора

Последний раз редактировалось JUDAS; 27.10.2011 в 22:56.
JUDAS вне форума Ответить с цитированием
Старый 27.10.2011, 22:53   #3
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Попробуй так


Код:
program chet;
Uses crt;
   const n=98;
   var A:array[0..98] of integer;
   i:integer;
begin
   clrscr;
   for i:=1 to n do A[i]:=abs(random(40)+(-49));
   writeln('chetnie chisla');
   for i:=1 to n do
   if a[i] mod 2 =0 then write (A[i]*2,' ');
end.
Неуверен что правильно конечно.
Люблю на ты.Я человек простой

Последний раз редактировалось Leshii; 27.10.2011 в 22:57.
Leshii вне форума Ответить с цитированием
Старый 27.10.2011, 22:58   #4
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Код:
 if a[i] mod 2 =0 then write (A[i]*2,' ');
Чётные будут только отображаться, а ему нужно чтобы заполнялось чётными.
Пусть берёт код с моего предыдущего поста )
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 27.10.2011, 23:04   #5
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

А, понял.)
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 27.10.2011, 23:15   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

godness, а поясните мне, плиз, а с чего Вы взяли,
что массив нужно заполнить СЛУЧАЙНЫМИ числами?

может быть, в массиве должны оказаться ВСЕ двухзначные чётные числа?!
Код:
program chet;
const N = 45;
var A:array[1..N] of integer;
   i:integer;
begin
   for i:=1 to n do
     A[i] := (i-1)*2+10;

   WriteLn('Полученный массив:');
   for i:=1 to n do
     Write(A[i]:3,' ');
   WriteLn;
   readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.10.2011, 00:28   #7
godness
Новичок
Джуниор
 
Регистрация: 27.10.2011
Сообщений: 2
По умолчанию

Цитата:
Сообщение от JUDAS Посмотреть сообщение
Код:
for i:=0 to n-1 do 
  begin
    A[i]:=random(45)*2+10;
    A[i]:=A[i]-2*byte(a[i]=100);
  end;
В Вашем случае массив обїявлен с 0..98 а заполянется с 1-го элемента. Значение нулевого элемента = "удивительно"
весь код:
Код:
program chet;
   const n=98;
   var A:array[1..n] of integer;
   i:byte;
begin
   for i:=1 to n do 
    begin
     A[i]:=random(45)*2+10;
     A[i]:=A[i]-2*byte(a[i]=100);
    end;

   writeln('chetnie chisla');
     for i:=1 to n do write (A[i],' ');
end.
не работает. A[i]:=A[i]-2*byte(a[i]=100); - byte boolean
Serge_Bliznykov
перед этой задачей проходили рандомною функцию, запись в массив не проходили.
разве -20, -40 нечетные числа?
godness вне форума Ответить с цитированием
Старый 28.10.2011, 10:58   #8
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

godness, эту строку:
A[i]:=A[i]-2*byte(a[i]=100);
- выкинь совсем, она не нужна и никогда ничего не будет делать - и тогда прога будет работать.
Отрицательные, конечно, тоже четные, но обычно в подобных задачах они не имеются в виду. Если хочешь их тоже, то строку заполения поменяй так:

Код:
     A[i]:= (random(45)*2+10)*(random(2)*2-1);
Но вообще я согласен с Serge_Blizenkov - очень может быть, что имеется в виду простое заполнение по порядку, а не случайно.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 28.10.2011, 14:08   #9
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Цитата:
- выкинь совсем, она не нужна и никогда ничего не будет делать - и тогда прога будет работать.
TinMan, сколько цифр будет в результате если random(45)=45 ?
Справка
Цитата:
Функция Random генерирует случайные числа. Это могут быть числа с плавающей запятой числами в диапазоне:

0 <= Number <1.0

или целые числа в диапазоне:

0 <= Number
источник http://www.delphibasics.ru/Random.php
95% сбоев и ошибок приложений, находится в полу метрах от монитора

Последний раз редактировалось JUDAS; 28.10.2011 в 14:14.
JUDAS вне форума Ответить с цитированием
Старый 28.10.2011, 20:51   #10
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Я вообще не знаю, что они там имели в виду. Любое неотрицательное целое, что ли?..
Цитата:
или целые числа в диапазоне:
0 <= Number
Явная же ошибка (недописанное выражение). Видимо, писавший это сам не был уверен - строгое неравенство или нет - хотел уточнить потом, да забыл..

Вообще, рекомендую пользоваться первоисточниками, а не левыми пересказами.
Цитата:
Random
Generate random number
...
Description
Random returns a random number larger or equal to 0 and strictly less than L. If the argument L is omitted, a Real number between 0 and 1 is returned. (0 included, 1 excluded)
http://www.freepascal.org/docs-html/...em/random.html

И потом, JUDAS, зачем применять такую странную конструкцию (которая не везде и пройдет) вместо того, чтоб просто уменьшить значение диапазона на 1?
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать матрицу A[1..N,1..N] из целых чисел. Сформировать одномерный массив, элементы которого - максимал spezzA Помощь студентам 2 24.11.2010 19:29
Сформировать линейный массив из отрицательных чисел. Bikborppp Помощь студентам 0 28.10.2010 16:28
Сформировать и напечатать множество всех четных чисел , не входящих в массив. Makcumqa Помощь студентам 1 18.03.2010 05:59
из четных чисел исходного массива сформировать новый массив sanya006 Помощь студентам 3 11.11.2009 19:14
Сформировать и вывести на экран массив вещественных чисел K={ki}, i=1..b NitriNKa Помощь студентам 3 18.04.2009 15:38