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

Напишите программу на любом языке, главное уточните какой

ограничение времени 1 секунда

ограничение памяти 32mb

ввод matrix.in

вывод matrix.out

фирма по производству новых многоэлементных электронных матриц запускает новую линию, комплектуя ее узлом проверки готовой матрицы. узел засвечивает матрицу, подает напряжение на ее ячейки и считывает показания коэффициентов преломления каждой ячейки в виде цифр от 0 до 9. из этих показаний формируется таблица и записывается в файл. для оценки качества матрицы используется суммы коэффициентов преломления по каждой строке матрицы, а также количество сумм с максимальным значением из всех сумм коэффициентов по данной матрице. напишите программу, определяющую требуемые характеристики матрицы по имеющейся таблице коэффициентов преломления.

формат ввода

в первой строке входного файла matrix.in записано два натуральных числа, не превышающих 1024 - количество строк прямоугольной матрицы и количество ячеек в каждой строке. в последующих строках записаны без пробелов коэффициенты преломления.

формат вывода

в файл matrix.out следует вывести суммы коэффициентов преломления по одному в строке. последней строкой файла следует вывести количество сумм с максимальным значением из всех сумм коэффициентов по данной матрице. таким образом, в файле должно быть записано столько чисел, из скольких строк состоит электронная матрица, плюс одно число.

пример

ввод вывод

5 5 14

73022 25

95308 26

59282 18

55332 26

21797 2

Показать ответ
Ответ:
666Default666
666Default666
12.10.2022 21:34

При определении значений подобных функций переменная y вычисляется по-разному (по разным формулам) в зависимости от значения x.

Такие задачи решаются с конструкции условного оператора if - else. Поскольку в данном случае мы имеем три условия (x > 0, x = 0 и x < 0), то потребуется использование еще вложенной конструкции if - else, т. к. в языке Pascal нет оператора множественного ветвления (оператор case в данном случае не подходит).

В языке программирования Паскаль (да и в других тоже) желательно вложенные конструкции if - else помещать во внешнюю ветку else, а не if. Так проще не запутаться.

Таким образом, алгоритм вычисления значения функции может быть таким:

Если x > 0, то у = x - 2

Иначе (ниже идет вложенная конструкция)

Если x = 0, то y = 0

Иначе y = |x|.

В последнем пункте можно опустить оператор if с проверкой, что x < 0, так как если ход выполнения программы дошел до этого пункта, то x уже другим быть и не может (варианты, когда он больше или равен нулю, уже были исключены).

Для определения модуля (абсолютного значения) переменной можно использовать встроенную функцию abs() языка Pascal. В данном случае можно обойтись и без нее: поскольку уже известно, что x отрицателен, то, чтобы получить положительное число (модуль), нужно его умножить на -1.

var

   x, y: integer;

 

begin

   write ('x = ');

   readln (x);

 

   if x > 0 then

       y := x - 2

   else

       if x = 0 then

           y := 0

       else

           y := abs(x);

 

   writeln ('y = ', y);

 

end.

Объяснение:

0,0(0 оценок)
Ответ:
maxtigr24
maxtigr24
25.12.2022 03:36
1)
var i,a:Integer;
begin
a:= 1;
while a<>0 do
begin
Read(a);
i+=a;
end;
WriteLn(i=10);
end.

2) Можно через double. Но после 170! уже бесконечность.
var n:Integer;
var b:double;
begin
b:=1;
Read(n);
for var i:= 1 to n do
b*=i;
WriteLn('factorial '+n+' = '+b);
end.

3) Работает как и с числами так и со строками.
var arr:array of char;
var a:String;
var first,last:Integer;
begin
Read(a);
arr:= a.ToCharArray();
for var i:= 0 to arr.Length-1 do
begin
first:=Pos(arr[i], a);
last:=Pos(arr[i], a,first+1);
if (first>0) and (last > 0) and (first<>last) then
begin
first:=99;
break;
end;
end;
if first = 99 then
WriteLn('Содержит. Это число '+arr[last-1])
else
WriteLn('Несодержит.');
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота