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

с задачей, язык Python Напишите две функции: первая принимает одно целое положительное число N и находит сумму всех цифр числа N; вторая принимает число N и считает количество цифр в числе. В ответе выводится разность суммы чисел и количества.

Пример работы программы:

Введите число: 500

Сумма цифр: 5
Кол-во цифр в числе: 3
Разность суммы и кол-ва цифр: 2

number = int(input('Введите число: '))

def suma_number(number):
``suma = 0
``while number > 0:
digit = number % 10
suma = suma + digit
number = number // 10
``print('\nСумма цифр:', suma)

suma_number(number)

def count_number(number):

``countnumber = number
``digitcount = 0
``while countnumber > 0:
digitcount += 1
countnumber = countnumber // 10
``print('Кол-во цифр в числе:', digitcount)

count_number(number)

def differ(suma, digitcount):
``diff = suma - digitcount
``print('Разность суммы и кол-ва цифр:', diff)

differ(suma, digitcount)

👇
Ответ:
mmmmmmiiiiiinnn
mmmmmmiiiiiinnn
16.03.2023

Вы немного не понимаете, что такое локальные переменные.

Давайте объясню.

Локальными называются переменные, объявленные внутри функции и доступные только ей самой. Программный код за пределами функции к ним доступа не имеет. В этом и ошибка, Вы вызываете функцию differ() и применяете переменные, которые находятся в count_number() и suma_number(). Локальные переменные скрыты от других функций.

Чтобы избежать ошибки, как вариант, можно создать глобальную переменную:

1. Пишем перед функцией глоб. переменную

suma = 0

def suma_number(number):

   pass

2. Присваиваем значение глобальной переменной внутри функции с ключевое слово global:

suma = 0

def suma_number(number):

   global suma

   pass

Полная программа:

number = int(input('Введите число: '))

suma = 0

def suma_number(number):

   global suma

   while number > 0:

       digit = number % 10

       suma = suma + digit

       number = number // 10

   print('\nСумма цифр:', suma)

suma_number(number)

digitcount = 0

def count_number(number):

   global digitcount

   countnumber = number

   while countnumber > 0:

       digitcount += 1

       countnumber = countnumber // 10

   print('Кол-во цифр в числе:', digitcount)

count_number(number)

def differ(suma, digitcount):

   diff = suma - digitcount

   print('Разность суммы и кол-ва цифр:', diff)

differ(suma, digitcount)

Можно обойтись и без глоб. переменных:

Когда Вы вызываете функцию differ(), не используйте локальные переменные из других функций, просто вызовите эти функции:

differ(suma_number(number), count_number(number))

Кстати, если задуматься, код можно сделать проще:

def suma_number(a):

   return sum(map(int, list(a)))

def count_number(a):

   return len(a)

def differ(a, b):

   return a - b

n = input('Введите число: ')

print('Сумма цифр:', suma_number(n))

print('Кол-во цифр в числе:', count_number(n))

print('Разность суммы и кол-ва цифр:', differ(suma_number(n), count_number(n)))

Хотя можно и совсем "извращение" сделать без функций в 2 строчки..

n = input('Введите число: ')

print('Сумма цифр:', sum(map(int, list(n))), '\nКол-во цифр в числе:', len(n), '\nРазность суммы и кол-ва цифр:', sum(map(int, list(n))) - len(n))

Это так, пища для размышления.

4,7(3 оценок)
Открыть все ответы
Ответ:
Maria120163
Maria120163
16.03.2023
Не знаю в каком языке программирования конкретно нужно, но в С# код программы в консольном варианте выглядит так
Console.WriteLine("Введите предложение в котором присутствует 2 запятые");      

string a = Console.ReadLine(); //Вводим текст в переменную а

 string []B = a.Split(','); //разбиваем наше предложение на части по запятым и заносим их в массив

Console.WriteLine(""); // просто отделяем результат от остальной массы текста. 

Console.WriteLine(B[1]); //И выводим результат на экран, все знаки между 2 запятыми. 

   Console.ReadLine();
Если нужно могу скинуть готовый фаил программы.
4,7(74 оценок)
Ответ:
wagnercop06s12
wagnercop06s12
16.03.2023
Program Trapez;      {название программы}    
 uses Crt;               {подключаемый модуль}

 var a, b, alfa: real;   {переменные: стороны и угол при основании трапеции}
     h, S: real;           {переменные: высота и площадь}

begin                       {начало}
 ClrScr;                    {очистка экрана}
 repeat                     {цикл ввода}
   Write (' alfa (w grad) = ');      {ввод угла}
   ReadLn(alfa);
   Write (' a = ');    ReadLn(a);  {ввод большей стороны}
   Write (' b = ');    ReadLn(b);  {ввод меньшей стороны}
 until (a>b) and (alfa<>90) ;      {контроль за вводом: надо а>b и alfa<>90}
 alfa:=alfa*pi/180;                    {перевод в радианы}
 h:=(a-b)/2*sin(alfa)/cos(alfa);    {вычисление высоты}
 S:=(a+b)*h/2;                          {вычисление площади}
 WriteLn(' S = ', S:6:2);            {вывод результата}
 ReadLn;                                {ожидание нажатия ENTER}
end.                                       {конец}
4,8(44 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ