Предмет: Информатика, автор: slyg1213

Напечатать на экране N различных целых чисел из интервала [1..99], используя функцию Random. Помогите срочно плиз!

Ответы

Автор ответа: Аноним
0
Ну держи с функцией Random.

ЗАДАЧА Random(): ЦЕЛ;
УКАЗ
  ВОЗВРАТ УЗК(ВШИРЦЕЛ(Матем.случ() * 98)) + 1
КОН Random;

ОТ сч := 1 ДО N ВЫП
  Вывод.ЧЦел("%d ", Random(), 0, 0, 0)
КОН
Автор ответа: Аноним
0
Не просил. Зато он просил РАЗЛИЧНЫЕ n чисел, а Ваше решение их НЕ ГАРАНТИРУЕТ
Автор ответа: Аноним
0
Да, но в таком случае, я думаю, он бы написал "n неповторяющихся случайных чисел". Хотя, строго говоря, "различные" это и подразумевают, согласен.
Автор ответа: Аноним
0
Можно написать так:
Автор ответа: Аноним
0
ПЕР
уже_было: РЯД N ИЗ ЦЕЛ;

ЗАДАЧА Random(счётчик: ЦЕЛ): ЦЕЛ;
ПЕР
случ_число, сч: ЦЕЛ;
было: КЛЮЧ;
УКАЗ
случ_число := УЗК(ВШИРЦЕЛ(Матем.случ() * 98)) + 1;
ПОВТОРЯТЬ
было := ОТКЛ;
КОЛЬЦО
ОТ сч := 0 ДО счётчик - 1 ВЫП
ЕСЛИ уже_было[сч] = число ТО было := ВКЛ; ВЫХОД КОН
КОН
КОН;
ЕСЛИ было ТО
УВЕЛИЧИТЬ(число);
ЕСЛИ число > 99 ТО число := 1 КОН
КОН
ДО НЕ было;
ВОЗВРАТ число
КОН Random;

ЕСЛИ N > 99 ТО СТОП(0) КОН;

ОТ сч := 0 ДО N - 1 ВЫП
Вывод.ЧЦел("%d ", Random(сч), 0, 0, 0)
КОН
Автор ответа: Аноним
0
В последнем цикле опечатка, надо:
уже_было[сч] := Random(сч);
Вывод.ЧЦел("%d ", уже_было[сч], 0, 0, 0)
Автор ответа: Аноним
0
const N = 99;
var  i, j, t: integer; 
 flag: boolean; 
 mas: array[1..N]of integer;
begin 
randomize; 
 i := 0; 
while i < N do  
 begin   
 t := Random(1, 99); 
   flag := true; 
  for j := 1 to i do 
    if t = mas[j] then
 begin   
    flag := false;
Break     
end;   
 if flag then begin 
    i := i + 1;
mas[i] := t   
 end
  end; 
 for i := 1 to N do
 write(mas[i], ' ')
end.
Автор ответа: Аноним
0
Ваше решение их НЕ ГАРАНТИРУЕТ, что все числа будут РАЗЛИЧНЫМИ
Автор ответа: Аноним
0
Опечатка: "их" - вычеркнуть
Похожие вопросы
Предмет: Математика, автор: mirexkate
Предмет: Химия, автор: yana15661975