Randomize, пишу программу

Книга адресована школьникам средних и старших классов, желающим испытать себя в «олимпийских схватках». Может быть полезна студентам-первокурсникам и преподавателям информатики.

Модераторы: Oleg_D, Модераторы

Randomize, пишу программу

Сообщение JetV97 » 04.01.2013 13:51:08

Здравствуйте! Я решил создать программу которая выводила бы рандомные числа.
Код: Выделить всё
var x, y, z : integer;
a : string;
begin
randomize;
repeat
write ('С какого числа начинать? прим. начинать с 0 или с 1:');
readln (x);
write ('До какого числа '' рандромировать''? прим. до 10 или 5, или как вам угодно:');
readln (y);
repeat
z := x + random (y);
writeln (z);
readln;
write ('Если хотите поменять параметры, нажмите 0. Если хотите выйти нажмите 1. если хотите рандомнуть ещё раз нажмите 2. (после ввода нажмите enter)');
readln (a);
if a = '0' then
until;
else
if a = '1' then
break;
else
if a = '2' then
until;
else
writeln ('Чё?');
readln
end.

Не компилируется! Помогите пожалуйста.
JetV97
новенький
 
Сообщения: 11
Зарегистрирован: 29.11.2012 15:28:11
Откуда: Россия, Москва

Re: Randomize, пишу программу

Сообщение Paster Fob » 04.01.2013 16:21:57

JetV97 писал(а):Не компилируется!

Ещё бы!
Перед else ; не должно быть .Нет условия выхода из цикла.Вместо условных операторов лучше применить оператор выбора.
Аватара пользователя
Paster Fob
постоялец
 
Сообщения: 188
Зарегистрирован: 22.02.2011 21:53:36
Откуда: Новосибирск.

Re: Randomize, пишу программу

Сообщение JetV97 » 04.01.2013 16:24:55

Спасибо.
JetV97
новенький
 
Сообщения: 11
Зарегистрирован: 29.11.2012 15:28:11
Откуда: Россия, Москва

Re: Randomize, пишу программу

Сообщение Paster Fob » 04.01.2013 16:47:25

побыстрому накалякал.Посмотри и изменяй как тебе угодно
Код: Выделить всё
var
  i,n,x,y,z:integer;

begin
  randomize;
  write('введите диапозон чисел x..y');
  readln(x,y);
  write('введите кол-во чисел : ');
  readln(n);
  for i:=1 to n do begin
    z:=random(y-x)+1+x;
    writeln(z);
  end;
  readln
end.
Аватара пользователя
Paster Fob
постоялец
 
Сообщения: 188
Зарегистрирован: 22.02.2011 21:53:36
Откуда: Новосибирск.

Re: Randomize, пишу программу

Сообщение JetV97 » 04.01.2013 16:58:12

Спасибо еще раз. Пока вы не написали, я пробовал изменять свою программу. Все вроде правильно, но говорит, что break not' allowed. скажите что тут не так
Код: Выделить всё
var x, y, z : integer;
a, b : string;
begin
randomize;
repeat
write ('С какого числа начинать? прим. начинать с 0 или с 1:');
readln (x);
write ('До какого числа '' рандромировать''? прим. до 10 или 5, или как вам угодно:');
readln (y);
z := x + random (y);
writeln (z);
readln;
write ('Если хотите поменять параметры, нажмите 0. Если хотите выйти нажмите 1. если хотите рандомнуть ещё раз c такими же параметрами оставте поле пустым. (после ввода нажмите enter)');
readln (a);
until a = '0';
if a = '1' then break;
repeat
if a = '' then
z := x + random (y);
writeln (z);
writeln ('Еще разок? Если да, введите 1, оставте поле пустым (не забудте нажать Enter)');
readln (b);
until b = '1'
end.
JetV97
новенький
 
Сообщения: 11
Зарегистрирован: 29.11.2012 15:28:11
Откуда: Россия, Москва

Re: Randomize, пишу программу

Сообщение A.N.Onim » 04.01.2013 17:06:02

Кажется у вас break идёт после цикла:
Код: Выделить всё
until a = '0';
if a = '1' then break;
A.N.Onim
новенький
 
Сообщения: 17
Зарегистрирован: 24.12.2012 00:18:52

Re: Randomize, пишу программу

Сообщение JetV97 » 04.01.2013 17:49:35

Ну... Если '1', то repeat, если '0', то break
JetV97
новенький
 
Сообщения: 11
Зарегистрирован: 29.11.2012 15:28:11
Откуда: Россия, Москва

Re: Randomize, пишу программу

Сообщение sign » 04.01.2013 18:01:45

JetV97, употребляйте отступы. Будет читабельней и ошибки видней.
Переписал (не исправляя и не правя (кроме одного write)) вашу программу:
Код: Выделить всё
var x, y, z : integer;
    a, b : string;
begin
  randomize;
  repeat
    write ('С какого числа начинать? прим. начинать с 0 или с 1:');
    readln (x);
    write ('До какого числа '' рандромировать''? прим. до 10 или 5, или как вам угодно:');
    readln (y);
    z := x + random (y);
    writeln (z);
    readln;
    write('Если хотите поменять параметры, нажмите 0.');
    write('Если хотите выйти нажмите 1.');
    write('Если хотите повторить нажмите Enter)');
    readln (a);
  until a = '0';
  if a = '1' then break;
  repeat
    if a = '' then z := x + random (y);
    writeln (z);
    writeln ('Еще разок? Если да, введите 1, оставте поле пустым (не забудте нажать Enter)');
    readln (b);
  until b = '1'
end.
Последний раз редактировалось sign 05.01.2013 09:30:52, всего редактировалось 1 раз.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Randomize, пишу программу

Сообщение Oleg_D » 04.01.2013 18:09:39

Спасибо, sign, я то же самое хотел предложить, но вы опередили.
В этом случае хорошо видно, что Break расположен за пределами циклов, а это недопустимо.
Oleg_D
постоялец
 
Сообщения: 390
Зарегистрирован: 09.05.2011 11:28:36

Re: Randomize, пишу программу

Сообщение JetV97 » 04.01.2013 18:47:57

Всё, всё понял, огромное спасибо, исправил! Еще раз спасибо!!! :D

Добавлено спустя 17 минут 48 секунд:
Чё-то я сильно накосячил...
JetV97
новенький
 
Сообщения: 11
Зарегистрирован: 29.11.2012 15:28:11
Откуда: Россия, Москва


Вернуться в Книга "Песни о Паскале"

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru