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

написать программу в C++ Напишите класс, который принимает с клавиатуры оценку ученика(целое число) и проверяет не является ли введённое значение ошибочным.На экран должно выводиться соответствующее текстовое сообщение.


написать программу в C++ Напишите класс, который принимает с клавиатуры оценку ученика(целое число)

Показать ответ
Ответ:
andreiantipov1
andreiantipov1
27.02.2023 17:33
Procedure P(Const A:integer; Var p:integer);
Var
   K:real;
   d:integer;
Begin
if A > 1 then
   if (A = 2)or(A = 3) then p:=p+1
   else
      if A mod 2 <> 0 then
         Begin
         K:=Sqrt(A);
         d:=3;
         While (d<K)and(A mod d <> 0) do
            d:=d+2;
         if A mod d <> 0 then
            Begin
            p:=p+1;
            Write('(простое)')
            End
         End;
End;
Const
   N = 20;
Var
   A:array[1..N] of integer;
   i,k:integer;
Begin
Randomize;
k:=0;
Write('Исходный массив:');
For i:= 1 to N do
    Begin
    A[i]:=random(99)+1;
    Write(' ',A[i]);
    P(A[i],k);
    End;
WriteLn;
WriteLn('Кол-во простых чисел в массиве: ',k);
End.
0,0(0 оценок)
Ответ:
DerekHale23
DerekHale23
19.04.2022 21:28
"Жадный" алгоритм

// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var k:=Arr(1,2,5,10); // номиналы монет
  var m:=ReadArrInteger('Кол-во монет по '+k.JoinIntoString+' руб:',4);
  var n:=ReadInteger('Сумма в купюрах, руб:');
  if m.Zip(k,(p,q)->p*q).Sum<n then begin // нехватка монет
    Writeln('Размен невозможен'); exit
    end;
  var s:=''; // для результатов
  for var i:=k.Length-1 downto 0 do
    if (n>=k[i]) and (m[i]>0) then begin // номинал участвует
      var t:=min(n div k[i],m[i]); // кол-во монет
      n:=n-k[i]*t; // остаток
      if s.Length>0 then s+=', ';
      s+=t+' по '+k[i]+' руб.';
      end;
  if n<>0 then Writeln('Размен невозможен')
  else Writeln(s)
end.

Примеры
Кол-во монет по 1 2 5 10 руб: 350 215 86 130
Сумма в купюрах, руб: 1526
130 по 10 руб., 45 по 5 руб., 1 по 1 руб.

Кол-во монет по 1 2 5 10 руб: 500 146 0 38
Сумма в купюрах, руб: 432
38 по 10 руб., 26 по 2 руб.

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