Alex-kustov
?>

Задание 1 ( Приведите общую характеристику языка Паскаль. Какова структура программы на Паскале? Задание 2 ( ). Составить блок-схему алгоритма и программу на Паскале для вычисления функций z. Ввести программу в Паскале, вычислить значения функции и проверить ее для самостоятельно выбранных трех пар значений переменных X и Y. 28.png Задание 3 ( ). Составить блок-схему алгоритма и программу для обработки массива из 20 чисел X=(0, 3;5;68;-3;32;-80;-9;-26;-9;40;36;13;15;28;-0, 7;-36;-0, 3;8;15;-7) при b=5. Вычислить произведение и количество элементов, не равных нулю и меньших b. Задание 4 ( ). Составить программу и блок-схему для вычисления суммы площадей всех квадратов, стороны которых изменяются в цикле от 1 до 10. В отчет включить тексты программ на Паскале, результаты работы в виде скриншотов окна программы с отображением кодов и результатов работы.

Информатика

Ответы

khvorykhphoto

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

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

Локальными называются переменные, объявленные внутри функции и доступные только ей самой. Программный код за пределами функции к ним доступа не имеет. В этом и ошибка, Вы вызываете функцию 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))

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

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Задание 1 ( Приведите общую характеристику языка Паскаль. Какова структура программы на Паскале? Задание 2 ( ). Составить блок-схему алгоритма и программу на Паскале для вычисления функций z. Ввести программу в Паскале, вычислить значения функции и проверить ее для самостоятельно выбранных трех пар значений переменных X и Y. 28.png Задание 3 ( ). Составить блок-схему алгоритма и программу для обработки массива из 20 чисел X=(0, 3;5;68;-3;32;-80;-9;-26;-9;40;36;13;15;28;-0, 7;-36;-0, 3;8;15;-7) при b=5. Вычислить произведение и количество элементов, не равных нулю и меньших b. Задание 4 ( ). Составить программу и блок-схему для вычисления суммы площадей всех квадратов, стороны которых изменяются в цикле от 1 до 10. В отчет включить тексты программ на Паскале, результаты работы в виде скриншотов окна программы с отображением кодов и результатов работы.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

yurick2071488
kamimoza
evageniy79
smalltalkcoffee5
kotocafe45
Валентинович133
abuley
Cannabikh
apetrov54
ВалентиновичСуриковна1104
yaudo47
ykolkova76
albina6580
Anatolii
mospaskrasnogorbukh