В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
анна2249
анна2249
29.12.2022 18:45 •  Информатика

Дан целочисленный массив из 20 элементов, в котором записаны значения последовательных результатов измерений. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Напишите программу, которая выполняет выбраковку данных в массиве: заменяет на 0 значения всех элементов, которые отличаются от среднего арифметического всех четных элементов более, чем на половину этого значения. Гарантируется, что хотя бы один чётный положительный элемент в массиве есть. Например, для исходного массива из восьми элементов: 6 1 6 10 11 7 2 9
программа должна вывести (по одному числу в строке) числа
6 0 6 0 0 7 0 9
Язык паскаль

Показать ответ
Ответ:
kwasmarianna
kwasmarianna
25.11.2021 17:07

Const

    n = 12;

var

    i, p: integer;

    a: array[1..n] of integer;

begin

    p := 1;

    for i := 1 to n do

    begin

        a[i] := random(150) - 100;

        write(a[i], ' ');

        if a[i] > 0 then p := p * a[i];

    end;

    writeln;

    writeln('P = ', p);

end.

2)uses crt;

var a:array [1..10] of integer;

i:integer;

begin

clrscr;

randomize;

{генерируем и выводим новый массив}

for i:=1 to 10 do

begin

a[i]:=random(9)+1;

write(a[i]:3);

end;

writeln;

{в цикле проверяем если счетчик i делится на 2 ( признак четности) то либо возводим в степень либо удваиваем}

for i:=1 to 10 do

begin

if (i mod 2=0 ) then a[i]:=a[i]*a[i]

else a[i]:=a[i]*2;

end;

{выводим конечный массив}

for i:=1 to 10 do

write(a[i]:3);

readkey;

end.

3)var arr:array[1..20] of integer;

max,q:integer;

begin

writeln ('ARRAY: ');

for q:=1 to 20 do

begin

arr[q]:=random(80);

write (arr[q]:3);

end;

max:=arr[1];

for q:=2 to 20 do

if arr[q]>max then max:=arr[q];

writeln;

writeln('MAX = ',max);

end.

0,0(0 оценок)
Ответ:
DmitriyGromov
DmitriyGromov
27.04.2023 09:11

"...напечатает сначала 2, потом - 6" -- это значит a=2 и b=6?


про пятеричные записи ничего не понял...  :) И ИМХО к чему такие сложности? И для чего нам комп и программа? Я подправил исходную прогу чтобы она выдавала все числа подходящие по условию

var x,a,b: longint;


begin

   for var i := 999 DownTo 100 do begin

       a := 0;

       b := 1;

       x := i;

       while x>0 do begin

           if x mod 2 > 0 then a := a+1 else b := b+(x mod 5);

           x := x div 5;

       end;

       if (a = 2) and (b = 6) then writeln('x = ', i, ' a = ', a, ' b = ',b);

   end;

end.


прога проводит расчет для всх трехзначных чисел от 999 до 100

итого мы видим что максимальное подходящее число это 960

при необходимости прогу можно переделать чтобы она находила только максимальное число.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота