М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
horizontal
horizontal
05.02.2023 12:55 •  Информатика

Составить программу на языке Паскаль у=-3х+4 при x<-8
у= 2х^2 + 1, при -8 ≤ х < -5,
6х, при х = -5,
7х – х3, при -5 < х < -2,
3х – 6соsx, при -2 ≤ х < -1,

👇
Открыть все ответы
Ответ:
Lizankanahovicyn
Lizankanahovicyn
05.02.2023
Const
  nm = 50;
  nn = 50;

type
  Mas=array[1..nm,1..nn] of integer;

procedure MatrixInit(var a:Mas;m,n,p,q:integer);
{ Заполнение массива размером m*n
  целыми случайными числами из интервала [p;q] }
var
  i,j,k:integer;
begin
  k:=q-p+1;
  for i:=1 to m do
    for j:=1 to n do a[i,j]:=Random(k)-p
end;

procedure MatrixOutput(var a:Mas;m,n,k:integer);
{ вывод элементов матрицы размера m*n в k позициях }
var
  i,j:integer;
begin
  for i:=1 to m do
  begin for j:=1 to n do Write(a[i,j]:k); Writeln end
end;

function IsFits(var a:Mas;m,col:integer):boolean;
{ функция возвращает true, если колонка col явдяется "подходящей" }
var
  i,max:integer;
  mv:real;
begin
  max:=a[1,col]; mv:=max;
  for i:=2 to m do
  begin
    mv:=mv+a[i,col];
    if max<a[i,col] then max:=a[i,col]
  end;
  mv:=mv/m;
  IsFits:=(max-mv>a[1,col])
end;

procedure ColumnReplace(var a:Mas;m,col:integer);
{ Замена элементов столбца col единицами }
var
  i:integer;
begin
  for i:=1 to m do a[i,col]:=1
end;

var
  P: Mas;
  a,b,m,n,j,k:integer;
  flag:boolean;
begin
  Randomize;
  Write('Введите количество строк и столбцов матрицы: ');
  Read(m,n);
  Write('Укажите минимальное и максимальной значение элементов: ');
  Read(a,b);
  Write('Укажите количество позиций для вывода значения элемента: ');
  Read(k);
  MatrixInit(P,m,n,a,b);
  Writeln('Исходный массив');
  MatrixOutput(P,m,n,k);
  j:=1;
  repeat
    flag:=IsFits(P,m,j);
    if flag then
    begin
      ColumnReplace(P,m,j);
      Writeln('Результирующий массив');
      MatrixOutput(P,m,n,k)
    end
    else Inc(j)
  until flag or (j>n);
  if not flag then
    Writeln('')
end.

Тестовое решение:
Введите количество строк и столбцов матрицы: 5 8
Укажите минимальное и максимальной значение элементов: 0 20
Укажите количество позиций для вывода значения элемента: 3
Исходный массив
 19  7  2 15  2 11  2 15
 12 16  8 14  6  8  1 17
 12 14 10  8  7 19  7  1
  0  9  0  7 18 10  2  5
 18  8  4  9 16 10 14 10
Результирующий массив
 19  7  1 15  2 11  2 15
 12 16  1 14  6  8  1 17
 12 14  1  8  7 19  7  1
  0  9  1  7 18 10  2  5
 18  8  1  9 16 10 14 10
4,5(92 оценок)
Ответ:
Emma190
Emma190
05.02.2023

"...напечатает сначала 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

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

4,8(15 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ