Помогите пожалуйста решить задачу. Объясните максимально для тупых.
Составить программу обработки массива К, состоящего из 20 элементов. Заполнить массив случайными числами в диапазоне от -5 до 25. Все элементы массива К, значения которых находятся в интервале от -3 до 19 возвести в куб. Измененный массив вывести на экран.
Другие языки программирования и технологии
Программирование в Паскале
Простая программа выглядит примерно так:
program Massiv; {Имя программы}
var {От слова variable — переменная}
{Здесь объявляем переменные}
begin
{Основная программа. Здесь пишем команды, которые надо выполнить}
end.
Для решения задачи нам понадобится массив K из 20 элементов (пусть это будут целые числа). Поэтому объявим такую переменную:
K: array [1..20] of integer;
Также нам понадобится переменная цикла, которую мы будем использовать для перебора элементов массива в качестве индекса (номера) этих элементов:
i: integer;
Теперь будем писать основную программу.
Для начала подготовим генератор случайных чисел:
Randomize;
Затем при помощи цикла переберем все элементы массива K и зададим им случайные значения:
for i:=1 to 20 do {Следующая строчка будет выполнена для i=1, затем для i=2, i=3, …, i=20}
K[i]:=Random(31)-5;
Что здесь происходит? Нам нужно целое случайное число.
Функция Random(q) возвращает целое число от 0 и выше, но меньше q.
То есть всего может быть q вариантов: 0, 1, 2, 3, …, q−1.
Нам нужно число от −5 до 25. Это:
• 5 вариантов меньше нуля (−5, −4, −3, −2, −1),
• 25 вариантов больше нуля (1, 2, …, 25),
• собственно 0.
Всего 31 вариант.
Поэтому я написал Random(31).
Но Random(31) выдаст число от 0 до 30!
А если мы из него вычтем 5, то получим число от (0 − 5) до (30 − 5), или от −5 до 25.
То, что нужно.
Массив готов! При желании можем его вывести:
for i:=1 to 20 do
Write(K[i], ' ');
WriteLn;
В цикле идет вывод элемента с индексом i и одного пробела при помощи процедуры Write. После цикла переводим курсор на новую строчку при помощи процедуры WriteLn.
Теперь нам надо возвести в куб все элементы от −3 до 19.
Заводим еще один цикл и в нем проверяем. Если число входит в этот диапазон (больше или равно 3, но меньше или равно 19), тогда переписываем его в массиве, заменяя его на его куб (третью степень — грубо говоря, куб числа q равен q * q * q):
for i:=1 to 20 do
if (K[i] >= -3) and (K[i] <= 19) then
K[i] := K[i] * K[i] * K[i];
Массив обработали, теперь можно снова его вывести:
for i:=1 to 20 do
Write(K[i], ' ');
WriteLn;
Готово!
program Massiv; {Имя программы}
var {От слова variable — переменная}
{Здесь объявляем переменные}
begin
{Основная программа. Здесь пишем команды, которые надо выполнить}
end.
Для решения задачи нам понадобится массив K из 20 элементов (пусть это будут целые числа). Поэтому объявим такую переменную:
K: array [1..20] of integer;
Также нам понадобится переменная цикла, которую мы будем использовать для перебора элементов массива в качестве индекса (номера) этих элементов:
i: integer;
Теперь будем писать основную программу.
Для начала подготовим генератор случайных чисел:
Randomize;
Затем при помощи цикла переберем все элементы массива K и зададим им случайные значения:
for i:=1 to 20 do {Следующая строчка будет выполнена для i=1, затем для i=2, i=3, …, i=20}
K[i]:=Random(31)-5;
Что здесь происходит? Нам нужно целое случайное число.
Функция Random(q) возвращает целое число от 0 и выше, но меньше q.
То есть всего может быть q вариантов: 0, 1, 2, 3, …, q−1.
Нам нужно число от −5 до 25. Это:
• 5 вариантов меньше нуля (−5, −4, −3, −2, −1),
• 25 вариантов больше нуля (1, 2, …, 25),
• собственно 0.
Всего 31 вариант.
Поэтому я написал Random(31).
Но Random(31) выдаст число от 0 до 30!
А если мы из него вычтем 5, то получим число от (0 − 5) до (30 − 5), или от −5 до 25.
То, что нужно.
Массив готов! При желании можем его вывести:
for i:=1 to 20 do
Write(K[i], ' ');
WriteLn;
В цикле идет вывод элемента с индексом i и одного пробела при помощи процедуры Write. После цикла переводим курсор на новую строчку при помощи процедуры WriteLn.
Теперь нам надо возвести в куб все элементы от −3 до 19.
Заводим еще один цикл и в нем проверяем. Если число входит в этот диапазон (больше или равно 3, но меньше или равно 19), тогда переписываем его в массиве, заменяя его на его куб (третью степень — грубо говоря, куб числа q равен q * q * q):
for i:=1 to 20 do
if (K[i] >= -3) and (K[i] <= 19) then
K[i] := K[i] * K[i] * K[i];
Массив обработали, теперь можно снова его вывести:
for i:=1 to 20 do
Write(K[i], ' ');
WriteLn;
Готово!
На Питоне как-то так
import random
K = []
i = 0
while i < 20:
n = random.randint(-5, 25)
K.append(n)
i += 1
print K
i = 0
while i < len(K):
if K[i] >= -3 and K[i] <= 19:
K[i] = K[i]**3
i += 1
print K
import random
K = []
i = 0
while i < 20:
n = random.randint(-5, 25)
K.append(n)
i += 1
print K
i = 0
while i < len(K):
if K[i] >= -3 and K[i] <= 19:
K[i] = K[i]**3
i += 1
print K
for i:=1 to 20 do a[i]=random(31)-5;
for i:=1 to 20 do if a[i]<=19 and a[i]>=-3 then a[i]:=a[i]*a[i]*a[i];
for i:=1 to 20 do write( a[i] );
readln;
for i:=1 to 20 do if a[i]<=19 and a[i]>=-3 then a[i]:=a[i]*a[i]*a[i];
for i:=1 to 20 do write( a[i] );
readln;
Бахтияр Махмудов
опечатки убрал
Ох, солнышко.
Максимально объясню)
Массив это последовательность, в которую можем записать любые числа.
Вот так создаем массив с 20-ю элементами var K:array[1..20] of integer;
Теперь сюды нужно нужно всё записать и посчитать.
Используем цикл, но до него создадим переменную.
Var i:integer;
for i:1 to 20 do
begin // Всё, что напишем между begin и end выполнится 20 раз
K[i]:= random( 30 ) - 5; // эта фукция генерирует число от 0 до 30, пс 0-5 30-5 есть -5 и 25
if (k[i]>= -3) and (k[i]<=19) then k[i]:=k[i]*k[i]; // Сразу тут же проверяем условие
Writeln(K[i]); // И выводим соответственно
end;
Максимально объясню)
Массив это последовательность, в которую можем записать любые числа.
Вот так создаем массив с 20-ю элементами var K:array[1..20] of integer;
Теперь сюды нужно нужно всё записать и посчитать.
Используем цикл, но до него создадим переменную.
Var i:integer;
for i:1 to 20 do
begin // Всё, что напишем между begin и end выполнится 20 раз
K[i]:= random( 30 ) - 5; // эта фукция генерирует число от 0 до 30, пс 0-5 30-5 есть -5 и 25
if (k[i]>= -3) and (k[i]<=19) then k[i]:=k[i]*k[i]; // Сразу тут же проверяем условие
Writeln(K[i]); // И выводим соответственно
end;
Похожие вопросы
- Помощь по информатике. 9 класс. Программирование .Язык Паскаль. Ветвление
- Информатика, программирование на Паскале
- Программирование на Паскале Помогите, пожалуйста , написать программу на паскале
- Задание_Кто соображает в программировании на паскале? Надо написать небольшую программу, а я в предмете плохо понимаю))
- Помогите с программированием на Паскаль!
- задача по программированию, ТУРБО ПАСКАЛЬ.
- Недавно начал изучать программирование с паскаля.Помогите сделать программу которой я ввел бы 3 числа или больше а она
- Язык программирования Фри Паскаль, какой оператор применить? см. далее
- программирование в паскале
- Программирование на Паскале