Есть программа:
const n=20;
var a:array[1..n] of integer;
i,k2,k3,k4,k5:integer;
begin
randomize;
writeln;
k2:=0; k3:=0; k4:=0; k5:=0;
for i:=1 to n do
begin
a[i]:=2+random(4);
write(a[i]:2);
if a[i]=2 then k2:=k2+1
else if a[i]=3 then k3:=k3+1
else if a[i]=4 then k4:=k4+1
else k5:=k5+1;
end;
writeln;
write('2=',k2,' 3=',k3,' 4=',k4,' 5=',k5);
end.
Что значит a[i]:=2+random(4);
write(a[i]:2);? Откуда взялась двойка в первой строке, почему рандом прибавляют, а в скобках четверка? И почему мы выводи а, равняющееся двум, а не два плюс рандом?
Почему, когда мы выводим каждую переменную, то прибавляем единицу: then k3:=k3+1 ?
Школы
Объясните в программе Паскаль, откуда взялись строки.
1. Что значит a[i]:=2+random(4);
Функция random(q) выдает случайное целое число от нуля и выше.
random(4) выдает 0, 1, 2 или 3.
2+random(4) - это, соответственно, 2, 3, 4 или 5.
Чтобы числа каждый раз были новые, перед этим вызывается функция randomize.
2. write(a[i]:2) - выводим число a[i], выделяя под него два знакоместа на экране.
Если a[i] однозначное (скажем, 8), то выводится "_8", где "_" - пробел.
Если a[i] двузначное или еще больше, то оно выводится как обычно.
Такой способ вывода позволяет выравнивать числа, чтобы они шли в столбик.
_4
_8
16
32
3. then k3:=k3+1 - мне кажется, программа заполняет массив и считает, сколько в нем двоек, троек, четверок и пятерок. Для каждого найденного числа увеличивается один из четырех счетчиков: k2 - счетчик двоек, k3 - счетчик троек и так далее.
4. И почему мы в начале пишем, что n - константа, которая равна 20?
Это имеет смысл, потому что число 20 как размер массива используется в нескольких местах.
Мы объявляем массив размером 20 и запускаем цикл от 1 до 20.
Если ты захочешь сделать массив размером 1000, то нужно будет заменить оба числа 20 на 1000.
А здесь не нужно: у нас есть константа, меняем ее в одном месте. Очень удобно.
Функция random(q) выдает случайное целое число от нуля и выше.
random(4) выдает 0, 1, 2 или 3.
2+random(4) - это, соответственно, 2, 3, 4 или 5.
Чтобы числа каждый раз были новые, перед этим вызывается функция randomize.
2. write(a[i]:2) - выводим число a[i], выделяя под него два знакоместа на экране.
Если a[i] однозначное (скажем, 8), то выводится "_8", где "_" - пробел.
Если a[i] двузначное или еще больше, то оно выводится как обычно.
Такой способ вывода позволяет выравнивать числа, чтобы они шли в столбик.
_4
_8
16
32
3. then k3:=k3+1 - мне кажется, программа заполняет массив и считает, сколько в нем двоек, троек, четверок и пятерок. Для каждого найденного числа увеличивается один из четырех счетчиков: k2 - счетчик двоек, k3 - счетчик троек и так далее.
4. И почему мы в начале пишем, что n - константа, которая равна 20?
Это имеет смысл, потому что число 20 как размер массива используется в нескольких местах.
Мы объявляем массив размером 20 и запускаем цикл от 1 до 20.
Если ты захочешь сделать массив размером 1000, то нужно будет заменить оба числа 20 на 1000.
А здесь не нужно: у нас есть константа, меняем ее в одном месте. Очень удобно.
Свеrчo_Ok :))
Спасибо огромное! А эта же программа подходит для решения задачи: В классе 20 учеников писали диктант по русскому языку. Напишите программу, напишите программу подсчитывающую кол-во двоек, троек, четверок и пятёрок, полученных за диктант?
Похожие вопросы
- Помогите написать сочинение для школьника. "Откуда взялось зло". Нужно сочинение именно про зло.
- Скажите пожалуйста, сколько нечётных чисел в треугольнике Паскаля на 32 строке
- Помогите пожалуйста! Откуда взялись выражения : "держать ушки на макушке" и "герой не моего романа"
- А Вы помните откуда взялся персонаж Вася Пупкин? Вопрос ИМЕННО в ОБРАЗОВАНИЕ!!!
- откуда взялось имя Лиса Патрикеевна
- откуда взялись названия океанов
- этимология слова город или откуда взялось это слово плиз помогите
- Пмогите с диктантом по русскому языку откуда эти строки? ..(
- Откуда взялась нефть?
- Как написать программу???? Нужно в паскале